Sha256: 912934d4a2c5ae1738f3d6b5c159ccca9b90c1556dabca851fdbaa0e9ec0ab1d

Contents?: true

Size: 1.18 KB

Versions: 16

Compression:

Stored size: 1.18 KB

Contents

class Locomotive.Models.EditableElement extends Backbone.Model

  toJSONForSave: ->
    _.tap {}, (hash) =>
      for key, value of @.toJSON()
        hash[key] = value if _.include(['id', 'source', 'content', 'remove_source'], key)

      if @get('type') == 'EditableFile'
        delete hash['content']
      else
        delete hash['source']

class Locomotive.Models.EditableElementsCollection extends Backbone.Collection

  model: Locomotive.Models.EditableElement

  blocks: ->
    names = _.uniq(@map (editable, index) -> editable.get('block_name'))
    _.tap [], (list) =>
      _.each names, (name, index) ->
        list.push name: name, index: index

  by_block: (name) ->
    @filter (editable) -> editable.get('block_name') == name

  find_similar: (editable) ->
    @find (_editable) ->
      editable.get('block') == _editable.get('block') &&
      editable.get('slug')  == _editable.get('slug') &&
      editable.get('type')  == _editable.get('type')

  update_content_from: (collection) ->
    collection.each (element) =>
      _element = @find_similar(element)
      _element.set('content', element.get('content')) if _element

  toJSONForSave: ->
    @map (model) => model.toJSONForSave()

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
locomotive_cms-2.5.7 app/assets/javascripts/locomotive/models/editable_element.js.coffee
locomotive_cms-2.5.6 app/assets/javascripts/locomotive/models/editable_element.js.coffee
locomotive_cms-2.5.6.rc2 app/assets/javascripts/locomotive/models/editable_element.js.coffee
locomotive_cms-2.5.6.rc1 app/assets/javascripts/locomotive/models/editable_element.js.coffee
locomotive_cms-2.5.5 app/assets/javascripts/locomotive/models/editable_element.js.coffee
locomotive_cms-2.5.4 app/assets/javascripts/locomotive/models/editable_element.js.coffee
locomotive_cms-2.5.3 app/assets/javascripts/locomotive/models/editable_element.js.coffee
locomotive_cms-2.5.2 app/assets/javascripts/locomotive/models/editable_element.js.coffee
locomotive_cms-2.5.1 app/assets/javascripts/locomotive/models/editable_element.js.coffee
locomotive_cms-2.5.0 app/assets/javascripts/locomotive/models/editable_element.js.coffee
locomotive_cms-2.5.0.rc3 app/assets/javascripts/locomotive/models/editable_element.js.coffee
locomotive_cms-2.5.0.rc2 app/assets/javascripts/locomotive/models/editable_element.js.coffee
locomotive_cms-2.5.0.rc1 app/assets/javascripts/locomotive/models/editable_element.js.coffee
locomotive_cms-2.4.1 app/assets/javascripts/locomotive/models/editable_element.js.coffee
locomotive_cms-2.4.0 app/assets/javascripts/locomotive/models/editable_element.js.coffee
locomotive_cms-2.3.1 app/assets/javascripts/locomotive/models/editable_element.js.coffee