material_raingular 0.2.5 → 0.2.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5f214ce783246db52946da67e8381c835d0b4da0
4
- data.tar.gz: 0967d56bcdb0a1b08ad7110c42ea16411a624b8d
3
+ metadata.gz: c40f07d0a41e9e977d2f0741e78dc032cb6b255c
4
+ data.tar.gz: 5cb872737925795da991f4cc2b7272a32b5f7480
5
5
  SHA512:
6
- metadata.gz: 80b0323f2fc9b445653a58412df33f75b225235bdcc101bf9aed9ea0be1c78fb28ea474080b681783995cdb8994cdb4b0d3df1ef224208934c539393fd68872e
7
- data.tar.gz: db786aa0dfdcc5b068424ab5a5f932625859707433df7214f56c1412d0cdb8a8d87af1dc739b62ab87bf801e331f016622434318d76de8f80aacffc6b28f9a28
6
+ metadata.gz: 14915454e93d749722bd13aebbdecc5baea09465b2fb7732cb74b36913a4104d2aee5d4f6fcab2861e8af0130c20c51bdaef4bc7b26c09d22a782ade0bd31f0a
7
+ data.tar.gz: 4e9ae92aeb2cdcb49434b85c854dd0895eaecf484f51e68e3c09ce6a52a124050a0223583e3c50a667d2231585a3d41bdbb00e418bb3a59ef9efe6dcc4dadbd5
@@ -43,9 +43,13 @@ Array.prototype.sum = ->
43
43
  total += parseFloat(i) if i
44
44
  total
45
45
  Array.prototype.includes = (entry)->
46
- unless (entry || {}).hasOwnProperty('id')
46
+ return @.indexOf(entry) > -1 unless entry
47
+ if entry instanceof Date
48
+ (@.map (obj) -> obj.toDateString()).includes(entry.toDateString())
49
+ else if entry.hasOwnProperty('id')
50
+ return @.pluck('id').includes(entry.id)
51
+ else
47
52
  return @.indexOf(entry) > -1
48
- @.pluck('id').includes(entry.id)
49
53
  Array.prototype.drop = (entry)->
50
54
  if (entry || {}).hasOwnProperty('id')
51
55
  index = @.pluck('id').indexOf(entry.id)
@@ -0,0 +1,4 @@
1
+ class Directives.MrCreate extends AngularDirective
2
+ restrict: 'A'
3
+ require: '?mrCallback'
4
+ @register(MaterialRaingular.app)
@@ -0,0 +1,54 @@
1
+ # //= require material_raingular/directives/create/directive
2
+ class MrCreateModel extends AngularLinkModel
3
+ @inject(
4
+ '$injector'
5
+ '$timeout'
6
+ 'factoryName'
7
+ '$parse'
8
+ )
9
+
10
+ initialize: ->
11
+ @$element.bind 'click', @create
12
+ @CallbackCtrl = @$controller
13
+ create: ($event) =>
14
+ factory = @_parentFactory()?['create_' + @_modelName().singularize()] || @_factory().create
15
+ factory @_params(), (data) =>
16
+ @CallbackCtrl.evaluate(data) if @CallbackCtrl
17
+ @$timeout =>
18
+ if @_isCollection()
19
+ @_models().last().push(data)
20
+ else
21
+ @_parentModel()[@_modelName()] = data
22
+
23
+ #Private
24
+ _modelPieces: ->
25
+ @$attrs.mrCreate.split(/\.|\[/).map (piece) =>
26
+ if piece.includes(']') then @$scope.$eval(piece.replace(/\]/,'')) else piece
27
+ _models: ->
28
+ models = [@$scope]
29
+ for piece,index in @_modelPieces()
30
+ models.push @$parse(piece)(models[index])
31
+ models
32
+ _modelName: ->
33
+ @$attrs.mrModelName || @_modelPieces().last()
34
+ _model: ->
35
+ @_models().last()
36
+ _parentModelName: ->
37
+ @_modelPieces()[@_modelPieces().length - 2]
38
+ _parentModel: ->
39
+ @_models()[@_models().length - 2]
40
+ _factory: ->
41
+ @$injector.get @factoryName(@_modelName()).singularize()
42
+ _parentFactory: ->
43
+ return unless @_parentModelName()
44
+ @$injector.get @factoryName(@_parentModelName()).singularize()
45
+ _params: ->
46
+ params={}
47
+ params[@_modelName().singularize()] = {}
48
+ if @_parentModelName()
49
+ params[@_modelName().singularize()][@_parentModelName().singularize() + '_id'] = @_parentModel().id
50
+ params[@_parentModelName().singularize() + '_id'] = @_parentModel().id
51
+ params
52
+ _isCollection: ->
53
+ @_modelName().pluralize() == @_modelName()
54
+ @register(Directives.MrCreate)
@@ -25,11 +25,12 @@ class MrDestroyModel extends AngularLinkModel
25
25
  _model: -> @$controller[0].$viewValue
26
26
  _list: -> @_options().list || @$scope.$eval(@_matchedExpression()[2].split('|')[0])
27
27
  _options: -> @$scope.$eval(@$attrs.mrOptions || '{}')
28
- _matchedExpression: -> @_repeatElement().getAttribute('ng-repeat').match(@REGEXP)
28
+ _matchedExpression: -> @_repeatStatement().match(@REGEXP)
29
+ _repeatStatement: -> @_repeatElement().getAttribute('ng-repeat') || @_repeatElement().getAttribute('md-virtual-repeat')
29
30
  _repeatElement: ->
30
31
  repeatElement = @$element[0]
31
- until repeatElement.hasAttribute 'ng-repeat'
32
- repeatElement = repeatElement.parentNode
32
+ until repeatElement.hasAttribute('ng-repeat') || repeatElement.hasAttribute('md-virtual-repeat')
33
+ repeatElement = repeatElement.parentElement
33
34
  break if !repeatElement
34
35
  repeatElement
35
36
  _setForm: ->
@@ -48,7 +48,7 @@ class DirectiveModels.MrUpdateModel extends AngularLinkModel
48
48
  _type: -> @$attrs.type
49
49
  _tagName: -> @$element[0].tagName
50
50
  _modelName: -> @$attrs.ngModel
51
- _modelVal: -> @$parse(@$attrs.ngModel)
51
+ _modelVal: -> @ngModelCtrl.$modelValue
52
52
  _isInput: -> @_tagName() == 'INPUT'
53
53
  _funcName: ->
54
54
  return 'textarea' if @_tagName() == 'TEXTAREA'
@@ -15,8 +15,7 @@ class @MaterialModalModel extends AngularScopedModel
15
15
  @[key] = args[index]
16
16
  for key in @constructor.$locals || []
17
17
  @$scope[key] = @[key]
18
- @$scope.hide = @$mdDialog.hide
19
- @$scope.cancel = @$mdDialog.hide
18
+ @$scope.hide = @$scope.cancel = @$scope.close = @$mdDialog.hide
20
19
 
21
20
  # Bind all functions not begining with _ to scope
22
21
  for key, val of @constructor.prototype
@@ -1,3 +1,3 @@
1
1
  module MaterialRaingular
2
- VERSION = "0.2.5"
2
+ VERSION = "0.2.6"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: material_raingular
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.5
4
+ version: 0.2.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Moody
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-11-09 00:00:00.000000000 Z
11
+ date: 2016-11-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -105,6 +105,8 @@ files:
105
105
  - lib/assets/javascripts/material_raingular.js.coffee
106
106
  - lib/assets/javascripts/material_raingular/directives/callback/controller.coffee
107
107
  - lib/assets/javascripts/material_raingular/directives/callback/directive.coffee
108
+ - lib/assets/javascripts/material_raingular/directives/create/directive.coffee
109
+ - lib/assets/javascripts/material_raingular/directives/create/linkmodel.coffee
108
110
  - lib/assets/javascripts/material_raingular/directives/destroy/directive.coffee
109
111
  - lib/assets/javascripts/material_raingular/directives/destroy/linkmodel.coffee
110
112
  - lib/assets/javascripts/material_raingular/directives/update/directive.coffee