Sha256: 7c33226c2b5c228cd7b654c7483ea3eab7b536384653ccdf55e015cae41ed7c6

Contents?: true

Size: 1.23 KB

Versions: 10

Compression:

Stored size: 1.23 KB

Contents

#= require ../view
#= require ultimate/improves/typed-fields

Ultimate.Backbone.Observers ||= {}

class Ultimate.Backbone.Observers.TypedFields extends Ultimate.Backbone.View

  selector: "input:text[data-data-type], input:text[data-regexp-mask]"

  events: ->
    "keypress   selector": "onKeyPress"
    "change     selector": "onChange"
    "paste      selector": "onPasteOrDrop"
    "drop       selector": "onPasteOrDrop"

  viewOptions: ["selector"]

  onKeyPress: (event) ->
    if event.metaKey
      @onPasteOrDrop event
      return true
    return true  unless event.charCode
    jField = $(event.currentTarget)
    oldValue = jField.val()
    newValue = oldValue.substring(0, @selectionStart) + String.fromCharCode(event.charCode) + oldValue.substring(@selectionEnd)
    return false  unless jField.getRegExpMask().test(newValue)
    jField.data "value", newValue

  onChange: (event) ->
    jField = $(event.currentTarget)
    if jField.getRegExpMask().test(jField.val())
      jField.data "value", jField.val()
    else
      jField.val jField.data("value")

  onPasteOrDrop: (event) ->
    setTimeout ( -> $(event.currentTarget).trigger "change", arguments ), 100



Ultimate.createJQueryPlugin? "typedFields", Ultimate.Backbone.Observers.TypedFields

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
ultimate-base-0.6.0 app/assets/javascripts/ultimate/backbone/views/typed-fields.js.coffee
ultimate-base-0.5.0.0 app/assets/javascripts/ultimate/backbone/views/typed-fields.js.coffee
ultimate-base-0.4.1.0 app/assets/javascripts/ultimate/backbone/views/typed-fields.js.coffee
ultimate-base-0.4.0.1 app/assets/javascripts/ultimate/backbone/views/typed-fields.js.coffee
ultimate-base-0.4.0.0 app/assets/javascripts/ultimate/backbone/views/typed-fields.js.coffee
ultimate-base-0.3.5.0 app/assets/javascripts/ultimate/backbone/views/typed-fields.js.coffee
ultimate-base-0.3.4.0 app/assets/javascripts/ultimate/backbone/views/typed-fields.js.coffee
ultimate-base-0.3.3.0 app/assets/javascripts/ultimate/backbone/views/typed-fields.js.coffee
ultimate-base-0.3.2.1 app/assets/javascripts/ultimate/backbone/views/typed-fields.js.coffee
ultimate-base-0.3.2 app/assets/javascripts/ultimate/backbone/views/typed-fields.js.coffee