app/assets/javascripts/loft/asset-item.coffee in loft-0.1.2 vs app/assets/javascripts/loft/asset-item.coffee in loft-0.1.5

- old
+ new

@@ -9,14 +9,48 @@ # ----------------------------------------------------------------------------- # Loft Asset Item # ----------------------------------------------------------------------------- class @LoftAssetItem extends Item constructor: (@module, @path, @object, @config) -> - @$el =$ "<div class='item asset asset-#{ @object.type }' data-id='#{ @object._id }' data-title=''></div>" + @$el =$ "<div class='item asset asset-#{ @object.type }' data-id='#{ @object._id }'></div>" @render() + # PRIVATE =============================================== + + _bind_name_input: -> + @$nameInput.on 'blur', (e) => @_update_name_if_changed() + @$nameInput.on 'keyup', (e) => + if e.keyCode == 13 then $(e.target).blur() + if e.keyCode == 27 then @_cancel_name_change() + + + _edit_name: (e) -> + @$el.addClass('edit-name') + @$nameInput.focus().select() + + + _cancel_name_change: -> + @$el.removeClass('edit-name') + name = @$title.html() + @$nameInput.val(name) + + + _update_name_if_changed: -> + @$el.removeClass('edit-name') + name = @$nameInput.val() + + if name == @$title.html() then return + @$title.html(name) + + @config.arrayStore.update @object._id, { '[name]': name }, + onSuccess: (object) => + onError: (errors) => # process errors + + + # PUBLIC ================================================ + render: -> @$el.html('').removeClass('item-folder has-subtitle has-thumbnail') @_render_title() @_render_subtitle() @@ -38,49 +72,18 @@ @$checkbox.append(@$checkboxInput) @$el.prepend(@$checkbox) # input for assets name - name = @$el.attr('data-title') + name = @$title.text() @$name =$ "<div class='asset-name'></div>" @$nameInput =$ "<input type='text' value='#{ name }' />" @$name.append @$nameInput @$title.before @$name @_bind_name_input() # handler for asset name change on title click @$title.on 'click', (e) => @_edit_name(e) - - - _bind_name_input: -> - @$nameInput.on 'blur', (e) => @_update_name_if_changed() - @$nameInput.on 'keyup', (e) => - if e.keyCode == 13 then $(e.target).blur() - if e.keyCode == 27 then @_cancel_name_change() - - - _edit_name: (e) -> - @$el.addClass('edit-name') - @$nameInput.focus().select() - - - _cancel_name_change: -> - @$el.removeClass('edit-name') - name = @$title.html() - @$nameInput.val(name) - - - _update_name_if_changed: -> - @$el.removeClass('edit-name') - name = @$nameInput.val() - - if name == @$title.html() then return - @$title.html(name) - - @config.arrayStore.update @object._id, { '[name]': name }, - onSuccess: (object) => - onError: (errors) => # process errors -