Sha256: a0935ae9438db3a2795a7ab326633107305310f138113dd3d518b6fa35ad1392
Contents?: true
Size: 1.27 KB
Versions: 2
Compression:
Stored size: 1.27 KB
Contents
showInput = (element, showOrHide, valueAccessor) -> el = $(element) editable = el.next() button = editable.next() editable.toggle(!showOrHide) el.toggle(showOrHide) val = ko.utils.unwrapObservable valueAccessor() if showOrHide button.text 'Done' el.val val else button.text 'Edit' editable.text val toggle = (element, valueAccessor) -> showingInput = not editing(element) showInput element, showingInput, valueAccessor updateValue = (element, valueAccessor) -> valueAccessor()( $(element).val() ) editing = (element) -> $(element).is(':visible') ko.bindingHandlers.inplace = init: (element, valueAccessor) -> val = ko.utils.unwrapObservable valueAccessor() editable = $("<span class='editable-content' />").insertAfter(element) button = $("<a href='#' class='inline-button'>Edit</a>").insertAfter editable showInput element, false, valueAccessor button.closest('form').submit -> updateValue element, valueAccessor if editing(element) showInput element, false, valueAccessor button.click (e) -> e.preventDefault() if editing element updateValue element, valueAccessor else toggle element, valueAccessor update: (element, valueAccessor) -> showInput element, false, valueAccessor
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
knockout-rails-0.0.3 | lib/assets/javascripts/knockout/bindings/inplace.js.coffee |
knockout-rails-0.0.2 | lib/assets/javascripts/knockout/bindings/inplace.js.coffee |