Sha256: 8dbe5937e18481e668a3790641d51e5deb45d8755ea85f54758755dace928ed3

Contents?: true

Size: 1.5 KB

Versions: 5

Compression:

Stored size: 1.5 KB

Contents

# //= require material_raingular/directives/destroy/directive
class MrDestroyModel extends AngularLinkModel
  REGEXP: /^\s*(.*?)\s+in\s+(.*?)(?:\s+track\s+by\s+([\s\S]+?))?$/
    # 1: model name
    # 2: collection name
    # 3: track by value
  @inject(
    '$parse'
    'factoryName'
    '$timeout'
  )
  initialize: ->
    @_setForm()
    @$element.bind 'click', @destroy
  @register(Directives.MrDestroy)

  destroy: =>
    return if @$attrs.disabled || @form.disabled
    @$timeout =>
      @_list().drop(@_model())
    factory = @$injector.get(@_options().factory || @factoryName(@_matchedExpression()[1]))
    factory.destroy {id: @_model().id}, @_callBack

  _callBack: (data)   => @$controller[1]?.evaluate(data)
  _model:             -> @$controller[0].$viewValue
  _list:              -> @_options().list || @$scope.$eval(@_matchedExpression()[2].split('|')[0])
  _options:           -> @$scope.$eval(@$attrs.mrOptions || '{}')
  _matchedExpression: -> @_repeatStatement().match(@REGEXP)
  _repeatStatement:   -> @_repeatElement().getAttribute('ng-repeat') || @_repeatElement().getAttribute('md-virtual-repeat')
  _repeatElement: ->
    repeatElement = @$element[0]
    until repeatElement.hasAttribute('ng-repeat') || repeatElement.hasAttribute('md-virtual-repeat')
      repeatElement = repeatElement.parentElement
      break if !repeatElement
    repeatElement
  _setForm: ->
    @form = @$element[0]
    until @form.nodeName == 'FORM' || !@form
      @form = @form.parentNode
      break if !@form
    @form ||= @$element[0]

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
material_raingular-0.2.7 lib/assets/javascripts/material_raingular/directives/destroy/linkmodel.coffee
material_raingular-0.2.6.3 lib/assets/javascripts/material_raingular/directives/destroy/linkmodel.coffee
material_raingular-0.2.6.2 lib/assets/javascripts/material_raingular/directives/destroy/linkmodel.coffee
material_raingular-0.2.6.1 lib/assets/javascripts/material_raingular/directives/destroy/linkmodel.coffee
material_raingular-0.2.6 lib/assets/javascripts/material_raingular/directives/destroy/linkmodel.coffee