luca 0.8.3 → 0.8.06

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG CHANGED
@@ -1,16 +1,3 @@
1
1
  0.7.3:
2
2
  - Models being loaded by the FormView will now call
3
- beforeFormLoad methods if they exist on those models
4
-
5
- 0.8.1
6
- - Adds many style fixes for GridView
7
- - Fixes style conflicts for Bootstrap grid-* css selectors
8
- - Adds getForm() and getModel() methods to Luca.Field classes that belong to a form
9
-
10
- 0.8.2
11
- - Adds checkbox group field component ( thanks nick desteffen )
12
-
13
- 0.8.3
14
- - Stop mixing in underscore.string onto the global underscore object
15
- - the ctype property used to create objects from hashes, can now be named 'type'
16
- - Adds Luca.util.classify function for converting strings into class names
3
+ beforeFormLoad methods if they exist on those models
data/Guardfile CHANGED
@@ -5,23 +5,18 @@ javascript_path = File.join( assets_path, 'javascripts' )
5
5
  stylesheets_path = File.join( assets_path, 'stylesheets' )
6
6
 
7
7
  unless ENV['TEST_MODE']
8
- unless ENV['SKIP_JAVASCRIPTS']
9
- guard 'sprockets2', :clean=>false, :assets_path => javascript_path, :sprockets => App.sprockets, :precompile=>[/^luca-ui.+(coffee|js)$/], :digest => false, :gz => false do
10
- watch(%r{^src/.+$})
11
- watch(%r{^spec/.+$})
12
- end
8
+ guard 'sprockets2', :clean=>false, :assets_path => javascript_path, :sprockets => App.sprockets, :precompile=>[/^luca-ui.+(coffee|js)$/], :digest => false, :gz => false do
9
+ watch(%r{^src/.+$})
10
+ watch(%r{^spec/.+$})
13
11
  end
14
12
 
15
- unless ENV['SKIP_STYLESHEETS']
16
- guard 'sprockets2', :clean=>false, :assets_path => stylesheets_path, :sprockets => App.sprockets, :precompile=>[/^luca-ui.+(scss|css)$/], :digest => false, :gz => false do
17
- watch(%r{^src/stylesheets/.+$})
18
- end
13
+ guard 'sprockets2', :clean=>false, :assets_path => stylesheets_path, :sprockets => App.sprockets, :precompile=>[/^luca-ui.+(scss|css)$/], :digest => false, :gz => false do
14
+ watch(%r{^src/stylesheets/.+$})
19
15
  end
20
16
  end
21
17
 
22
- unless ENV['COMPILE_MODE']
23
- guard 'jasmine' do
24
- watch(%r{src/(.+)\.coffee}) {|m| "spec/#{ m[1] }_spec.coffee" }
25
- watch(%r{spec/(.+)_spec\.coffee})
26
- end
18
+ # TODO: Couldn't detect phantomjs
19
+ guard 'jasmine' do
20
+ watch(%r{src/(.+)\.coffee}) {|m| "spec/#{ m[1] }_spec.coffee" }
21
+ watch(%r{spec/(.+)_spec\.coffee})
27
22
  end
@@ -1,6 +1,6 @@
1
1
  module Luca
2
2
  module Rails
3
- VERSION = "0.8.3"
3
+ VERSION = "0.8.06"
4
4
  end
5
5
  end
6
6
 
@@ -24,10 +24,9 @@ Luca.components.CollectionLoaderView = Luca.components.Template.extend
24
24
  loaded = @manager.loadedCollectionsCount()
25
25
  total = @manager.totalCollectionsCount()
26
26
  progress = parseInt((loaded / total) * 100)
27
- collectionName = _.string.titleize( _.string.humanize( name ) )
28
27
 
29
28
  @modalContainer().find('.progress .bar').attr("style", "width: #{progress}%;")
30
- @modalContainer().find('.message').html("Loaded #{ collectionName }...")
29
+ @modalContainer().find('.message').html("Loaded #{ _(name).chain().humanize().titleize().value() }...")
31
30
 
32
31
  @manager.bind "all_collections_loaded", ()=>
33
32
  @modalContainer().find('.message').html("All done!")
@@ -93,15 +93,8 @@ Luca.components.FormView = Luca.core.Container.extend
93
93
  _( @components ).each (component)->
94
94
  component.container = container
95
95
 
96
- afterComponents: ()->
97
- Luca.core.Container::afterComponents?.apply(@, arguments)
98
- @eachField (field)=>
99
- field.getForm = ()=> @
100
- field.getModel = ()=> @currentModel()
101
-
102
96
  render: ()->
103
97
  $( @container ).append( @$el )
104
- @
105
98
 
106
99
  wrapper: ()->
107
100
  @$el.parents('.luca-ui-form-view-wrapper')
@@ -115,9 +108,6 @@ Luca.components.FormView = Luca.core.Container.extend
115
108
  toolbar = Luca.util.lazyComponent(toolbar)
116
109
  toolbar.render()
117
110
 
118
- eachField: (iterator)->
119
- _( @getFields() ).map( iterator )
120
-
121
111
  getField: (name)->
122
112
  _( @getFields('name', name) ).first()
123
113
 
@@ -200,8 +190,8 @@ Luca.components.FormView = Luca.core.Container.extend
200
190
 
201
191
  skip = false
202
192
  skip = true if options.skip_buttons and field.ctype is "button_field"
203
- skip = true if options.reject_blank is true and _.string.isBlank(value)
204
- skip = true if field.input_name is "id" and _.string.isBlank(value)
193
+ skip = true if options.reject_blank is true and _.isBlank(value)
194
+ skip = true if field.input_name is "id" and _.isBlank(value)
205
195
 
206
196
  memo[ key ] = value unless skip is true
207
197
 
@@ -182,7 +182,6 @@ Luca.core.Container = Luca.View.extend
182
182
  console.log "Error Rendering Component #{ component.name || component.cid }", component
183
183
  console.log e.message
184
184
  console.log e.stack
185
- throw e unless Luca.silenceRenderErrors? is true
186
185
 
187
186
  #### Container Activation
188
187
  #
data/src/core/view.coffee CHANGED
@@ -141,7 +141,7 @@ _.extend Luca.View.prototype,
141
141
  parts = eventId.split(':')
142
142
  prefix = parts.shift()
143
143
 
144
- parts = _( parts ).map (p)-> _.string.capitalize(p)
144
+ parts = _( parts ).map (p)-> _.capitalize(p)
145
145
  fn = prefix + parts.join('')
146
146
 
147
147
  @bind eventId, ()=> @[fn].apply @, arguments if @[fn]
data/src/framework.coffee CHANGED
@@ -1,17 +1,19 @@
1
+ _.mixin( _.string )
2
+
1
3
  window.Luca =
2
- VERSION: "0.8.3"
4
+ VERSION: "0.8.06"
3
5
  core: {}
4
6
  containers: {}
5
7
  components: {}
6
8
  modules: {}
7
- util: {}
8
9
  fields: {}
9
- component_cache:
10
- cid_index: {}
11
- name_index: {}
10
+ util: {}
12
11
  registry:
13
12
  classes: {}
14
13
  namespaces:["Luca.containers","Luca.components"]
14
+ component_cache:
15
+ cid_index: {}
16
+ name_index: {}
15
17
 
16
18
 
17
19
  # let's use the Twitter 2.0 Bootstrap Framework
@@ -56,18 +58,12 @@ Luca.cache = (needle, component)->
56
58
  Luca.component_cache.cid_index[ lookup_id ]
57
59
 
58
60
  # Takes an string like "deep.nested.value" and an object like window
59
- # and returns the value of window.deep.nested.value. useful for defining
60
- # references on objects which don't yet exist, as strings, which get
61
- # evaluated at runtime when such references will be available
61
+ # and returns the value of window.deep.nested.value
62
62
  Luca.util.nestedValue = (accessor, source_object)->
63
63
  _( accessor.split(/\./) ).inject (obj,key)->
64
64
  obj = obj?[key]
65
65
  , source_object
66
66
 
67
- # turns a word like form_view into FormView
68
- Luca.util.classify = (string="")->
69
- _.string.camelize( _.string.capitalize( string ) )
70
-
71
67
  # Lookup a component in the Luca component registry
72
68
  # by it's ctype identifier. If it doesn't exist,
73
69
  # check any other registered namespace
@@ -76,18 +72,16 @@ Luca.registry.lookup = (ctype)->
76
72
 
77
73
  return c if c?
78
74
 
79
- className = Luca.util.classify(ctype)
75
+ className = _.camelize _.capitalize( ctype )
80
76
 
81
77
  parents = _( Luca.registry.namespaces ).map (namespace)-> Luca.util.nestedValue(namespace, (window || global))
82
78
 
83
79
  _.first _.compact _( parents ).map (parent)-> parent[className]
84
80
 
85
- # one of the main benefits of Luca is the ability to structure your app as
86
- # large blocks of JSON configuration. In order to convert an object into
87
- # a Luca component, we lookup the object's class by converting its ctype / type
88
- # property into a class that has been registered in the component registry
81
+ # creates a new object from a hash with a ctype property
82
+ # matching something in the Luca registry
89
83
  Luca.util.lazyComponent = (config)->
90
- ctype = config.ctype || config.type
84
+ ctype = config.ctype
91
85
 
92
86
  componentClass = Luca.registry.lookup( ctype )
93
87
 
@@ -102,7 +96,7 @@ Luca.register = (component, constructor_class)->
102
96
  exists = Luca.registry.classes[component]
103
97
 
104
98
  if exists?
105
- console.log "Can not register component with the signature #{ component }. Already exists"
99
+ throw "Can not register component with the signature #{ component }. Already exists"
106
100
  else
107
101
  Luca.registry.classes[component] = constructor_class
108
102
 
@@ -125,7 +125,7 @@ class Luca.CollectionManager
125
125
  @get(key) || @create(key,collectionOptions,initialModels,false)
126
126
 
127
127
  guessCollectionClass: (key)->
128
- classified = Luca.util.classify( key )
128
+ classified = _( key ).chain().capitalize().camelize().value()
129
129
  guess = (@collectionNamespace || (window || global) )[ classified ]
130
130
  guess ||= (@collectionNamespace || (window || global) )[ "#{classified}Collection" ]
131
131
  guess
@@ -1,20 +1,22 @@
1
1
  (function() {
2
2
 
3
+ _.mixin(_.string);
4
+
3
5
  window.Luca = {
4
- VERSION: "0.8.3",
6
+ VERSION: "0.8.06",
5
7
  core: {},
6
8
  containers: {},
7
9
  components: {},
8
10
  modules: {},
9
- util: {},
10
11
  fields: {},
11
- component_cache: {
12
- cid_index: {},
13
- name_index: {}
14
- },
12
+ util: {},
15
13
  registry: {
16
14
  classes: {},
17
15
  namespaces: ["Luca.containers", "Luca.components"]
16
+ },
17
+ component_cache: {
18
+ cid_index: {},
19
+ name_index: {}
18
20
  }
19
21
  };
20
22
 
@@ -57,16 +59,11 @@
57
59
  }, source_object);
58
60
  };
59
61
 
60
- Luca.util.classify = function(string) {
61
- if (string == null) string = "";
62
- return _.string.camelize(_.string.capitalize(string));
63
- };
64
-
65
62
  Luca.registry.lookup = function(ctype) {
66
63
  var c, className, parents;
67
64
  c = Luca.registry.classes[ctype];
68
65
  if (c != null) return c;
69
- className = Luca.util.classify(ctype);
66
+ className = _.camelize(_.capitalize(ctype));
70
67
  parents = _(Luca.registry.namespaces).map(function(namespace) {
71
68
  return Luca.util.nestedValue(namespace, window || global);
72
69
  });
@@ -77,7 +74,7 @@
77
74
 
78
75
  Luca.util.lazyComponent = function(config) {
79
76
  var componentClass, constructor, ctype;
80
- ctype = config.ctype || config.type;
77
+ ctype = config.ctype;
81
78
  componentClass = Luca.registry.lookup(ctype);
82
79
  if (!componentClass) {
83
80
  throw "Invalid Component Type: " + ctype + ". Did you forget to register it?";
@@ -90,7 +87,7 @@
90
87
  var exists;
91
88
  exists = Luca.registry.classes[component];
92
89
  if (exists != null) {
93
- return console.log("Can not register component with the signature " + component + ". Already exists");
90
+ throw "Can not register component with the signature " + component + ". Already exists";
94
91
  } else {
95
92
  return Luca.registry.classes[component] = constructor_class;
96
93
  }
@@ -269,14 +266,6 @@
269
266
  Luca.templates || (Luca.templates = {});
270
267
  Luca.templates["fields/button_field_link"] = function(obj){var __p=[],print=function(){__p.push.apply(__p,arguments);};with(obj||{}){__p.push('<a class=\'btn ', input_class ,'\'>\n '); if(icon_class.length) { __p.push('\n <i class=\'', icon_class ,'\'></i>\n '); } __p.push('\n ', input_value ,'\n</a>\n');}return __p.join('');};
271
268
  }).call(this);
272
- (function() {
273
- Luca.templates || (Luca.templates = {});
274
- Luca.templates["fields/checkbox_array"] = function(obj){var __p=[],print=function(){__p.push.apply(__p,arguments);};with(obj||{}){__p.push('<div class=\'form-horizontal\'>\n <div class=\'control-group\'>\n <label for=\'', input_id ,'\'>\n ', label ,'\n </label>\n <div class=\'controls\'></div>\n </div>\n</div>\n');}return __p.join('');};
275
- }).call(this);
276
- (function() {
277
- Luca.templates || (Luca.templates = {});
278
- Luca.templates["fields/checkbox_array_item"] = function(obj){var __p=[],print=function(){__p.push.apply(__p,arguments);};with(obj||{}){__p.push('<label for=\'', input_id ,'\'>\n <input id=\'', input_id ,'\' name=\'', input_name ,'\' type=\'checkbox\' value=\'', value ,'\' />\n ', label ,'\n</label>\n');}return __p.join('');};
279
- }).call(this);
280
269
  (function() {
281
270
  Luca.templates || (Luca.templates = {});
282
271
  Luca.templates["fields/checkbox_field"] = function(obj){var __p=[],print=function(){__p.push.apply(__p,arguments);};with(obj||{}){__p.push('<label for=\'', input_id ,'\'>\n ', label ,'\n <input name=\'', input_name ,'\' style=\'', inputStyles ,'\' type=\'checkbox\' value=\'', input_value ,'\' />\n</label>\n'); if(helperText) { __p.push('\n<p class=\'helper-text help-block\'>\n ', helperText ,'\n</p>\n'); } __p.push('\n');}return __p.join('');};
@@ -447,7 +436,7 @@
447
436
  parts = eventId.split(':');
448
437
  prefix = parts.shift();
449
438
  parts = _(parts).map(function(p) {
450
- return _.string.capitalize(p);
439
+ return _.capitalize(p);
451
440
  });
452
441
  fn = prefix + parts.join('');
453
442
  return _this.bind(eventId, function() {
@@ -924,8 +913,7 @@
924
913
  } catch (e) {
925
914
  console.log("Error Rendering Component " + (component.name || component.cid), component);
926
915
  console.log(e.message);
927
- console.log(e.stack);
928
- if ((Luca.silenceRenderErrors != null) !== true) throw e;
916
+ return console.log(e.stack);
929
917
  }
930
918
  });
931
919
  },
@@ -1107,7 +1095,7 @@
1107
1095
 
1108
1096
  CollectionManager.prototype.guessCollectionClass = function(key) {
1109
1097
  var classified, guess;
1110
- classified = Luca.util.classify(key);
1098
+ classified = _(key).chain().capitalize().camelize().value();
1111
1099
  guess = (this.collectionNamespace || (window || global))[classified];
1112
1100
  guess || (guess = (this.collectionNamespace || (window || global))["" + classified + "Collection"]);
1113
1101
  return guess;
@@ -1,20 +1,22 @@
1
1
  (function() {
2
2
 
3
+ _.mixin(_.string);
4
+
3
5
  window.Luca = {
4
- VERSION: "0.8.3",
6
+ VERSION: "0.8.06",
5
7
  core: {},
6
8
  containers: {},
7
9
  components: {},
8
10
  modules: {},
9
- util: {},
10
11
  fields: {},
11
- component_cache: {
12
- cid_index: {},
13
- name_index: {}
14
- },
12
+ util: {},
15
13
  registry: {
16
14
  classes: {},
17
15
  namespaces: ["Luca.containers", "Luca.components"]
16
+ },
17
+ component_cache: {
18
+ cid_index: {},
19
+ name_index: {}
18
20
  }
19
21
  };
20
22
 
@@ -57,16 +59,11 @@
57
59
  }, source_object);
58
60
  };
59
61
 
60
- Luca.util.classify = function(string) {
61
- if (string == null) string = "";
62
- return _.string.camelize(_.string.capitalize(string));
63
- };
64
-
65
62
  Luca.registry.lookup = function(ctype) {
66
63
  var c, className, parents;
67
64
  c = Luca.registry.classes[ctype];
68
65
  if (c != null) return c;
69
- className = Luca.util.classify(ctype);
66
+ className = _.camelize(_.capitalize(ctype));
70
67
  parents = _(Luca.registry.namespaces).map(function(namespace) {
71
68
  return Luca.util.nestedValue(namespace, window || global);
72
69
  });
@@ -77,7 +74,7 @@
77
74
 
78
75
  Luca.util.lazyComponent = function(config) {
79
76
  var componentClass, constructor, ctype;
80
- ctype = config.ctype || config.type;
77
+ ctype = config.ctype;
81
78
  componentClass = Luca.registry.lookup(ctype);
82
79
  if (!componentClass) {
83
80
  throw "Invalid Component Type: " + ctype + ". Did you forget to register it?";
@@ -90,7 +87,7 @@
90
87
  var exists;
91
88
  exists = Luca.registry.classes[component];
92
89
  if (exists != null) {
93
- return console.log("Can not register component with the signature " + component + ". Already exists");
90
+ throw "Can not register component with the signature " + component + ". Already exists";
94
91
  } else {
95
92
  return Luca.registry.classes[component] = constructor_class;
96
93
  }
@@ -269,14 +266,6 @@
269
266
  Luca.templates || (Luca.templates = {});
270
267
  Luca.templates["fields/button_field_link"] = function(obj){var __p=[],print=function(){__p.push.apply(__p,arguments);};with(obj||{}){__p.push('<a class=\'btn ', input_class ,'\'>\n '); if(icon_class.length) { __p.push('\n <i class=\'', icon_class ,'\'></i>\n '); } __p.push('\n ', input_value ,'\n</a>\n');}return __p.join('');};
271
268
  }).call(this);
272
- (function() {
273
- Luca.templates || (Luca.templates = {});
274
- Luca.templates["fields/checkbox_array"] = function(obj){var __p=[],print=function(){__p.push.apply(__p,arguments);};with(obj||{}){__p.push('<div class=\'form-horizontal\'>\n <div class=\'control-group\'>\n <label for=\'', input_id ,'\'>\n ', label ,'\n </label>\n <div class=\'controls\'></div>\n </div>\n</div>\n');}return __p.join('');};
275
- }).call(this);
276
- (function() {
277
- Luca.templates || (Luca.templates = {});
278
- Luca.templates["fields/checkbox_array_item"] = function(obj){var __p=[],print=function(){__p.push.apply(__p,arguments);};with(obj||{}){__p.push('<label for=\'', input_id ,'\'>\n <input id=\'', input_id ,'\' name=\'', input_name ,'\' type=\'checkbox\' value=\'', value ,'\' />\n ', label ,'\n</label>\n');}return __p.join('');};
279
- }).call(this);
280
269
  (function() {
281
270
  Luca.templates || (Luca.templates = {});
282
271
  Luca.templates["fields/checkbox_field"] = function(obj){var __p=[],print=function(){__p.push.apply(__p,arguments);};with(obj||{}){__p.push('<label for=\'', input_id ,'\'>\n ', label ,'\n <input name=\'', input_name ,'\' style=\'', inputStyles ,'\' type=\'checkbox\' value=\'', input_value ,'\' />\n</label>\n'); if(helperText) { __p.push('\n<p class=\'helper-text help-block\'>\n ', helperText ,'\n</p>\n'); } __p.push('\n');}return __p.join('');};
@@ -447,7 +436,7 @@
447
436
  parts = eventId.split(':');
448
437
  prefix = parts.shift();
449
438
  parts = _(parts).map(function(p) {
450
- return _.string.capitalize(p);
439
+ return _.capitalize(p);
451
440
  });
452
441
  fn = prefix + parts.join('');
453
442
  return _this.bind(eventId, function() {
@@ -924,8 +913,7 @@
924
913
  } catch (e) {
925
914
  console.log("Error Rendering Component " + (component.name || component.cid), component);
926
915
  console.log(e.message);
927
- console.log(e.stack);
928
- if ((Luca.silenceRenderErrors != null) !== true) throw e;
916
+ return console.log(e.stack);
929
917
  }
930
918
  });
931
919
  },
@@ -1107,7 +1095,7 @@
1107
1095
 
1108
1096
  CollectionManager.prototype.guessCollectionClass = function(key) {
1109
1097
  var classified, guess;
1110
- classified = Luca.util.classify(key);
1098
+ classified = _(key).chain().capitalize().camelize().value();
1111
1099
  guess = (this.collectionNamespace || (window || global))[classified];
1112
1100
  guess || (guess = (this.collectionNamespace || (window || global))["" + classified + "Collection"]);
1113
1101
  return guess;
@@ -1775,13 +1763,12 @@
1775
1763
  setupBindings: function() {
1776
1764
  var _this = this;
1777
1765
  this.manager.bind("collection_loaded", function(name) {
1778
- var collectionName, loaded, progress, total;
1766
+ var loaded, progress, total;
1779
1767
  loaded = _this.manager.loadedCollectionsCount();
1780
1768
  total = _this.manager.totalCollectionsCount();
1781
1769
  progress = parseInt((loaded / total) * 100);
1782
- collectionName = _.string.titleize(_.string.humanize(name));
1783
1770
  _this.modalContainer().find('.progress .bar').attr("style", "width: " + progress + "%;");
1784
- return _this.modalContainer().find('.message').html("Loaded " + collectionName + "...");
1771
+ return _this.modalContainer().find('.message').html("Loaded " + (_(name).chain().humanize().titleize().value()) + "...");
1785
1772
  });
1786
1773
  return this.manager.bind("all_collections_loaded", function() {
1787
1774
  _this.modalContainer().find('.message').html("All done!");
@@ -1941,89 +1928,6 @@
1941
1928
 
1942
1929
  Luca.register("button_field", "Luca.fields.ButtonField");
1943
1930
 
1944
- }).call(this);
1945
- (function() {
1946
-
1947
- Luca.fields.CheckboxArray = Luca.core.Field.extend({
1948
- template: "fields/checkbox_array",
1949
- events: {
1950
- "click input": "clickHandler"
1951
- },
1952
- initialize: function(options) {
1953
- this.options = options != null ? options : {};
1954
- _.extend(this, this.options);
1955
- _.extend(this, Luca.modules.Deferrable);
1956
- _.bindAll(this, "populateCheckboxes", "clickHandler", "_updateModel");
1957
- Luca.core.Field.prototype.initialize.apply(this, arguments);
1958
- this.input_id || (this.input_id = _.uniqueId('field'));
1959
- this.input_name || (this.input_name = this.name);
1960
- this.label || (this.label = this.name);
1961
- this.valueField || (this.valueField = "id");
1962
- this.displayField || (this.displayField = "name");
1963
- return this.selectedItems = [];
1964
- },
1965
- afterInitialize: function(options) {
1966
- this.options = options != null ? options : {};
1967
- try {
1968
- this.configure_collection();
1969
- } catch (e) {
1970
- console.log("Error Configuring Collection", this, e.message);
1971
- }
1972
- return this.collection.bind("reset", this.populateCheckboxes);
1973
- },
1974
- afterRender: function() {
1975
- var _ref, _ref2;
1976
- if (((_ref = this.collection) != null ? (_ref2 = _ref.models) != null ? _ref2.length : void 0 : void 0) > 0) {
1977
- return this.populateCheckboxes();
1978
- } else {
1979
- return this.collection.trigger("reset");
1980
- }
1981
- },
1982
- clickHandler: function(event) {
1983
- var checkbox;
1984
- checkbox = event.target;
1985
- if (checkbox.checked) {
1986
- this.selectedItems.push(checkbox.value);
1987
- } else {
1988
- if (this.selectedItems.indexOf(checkbox.value) !== -1) {
1989
- this.selectedItems = _.without(this.selectedItems, [checkbox.value]);
1990
- }
1991
- }
1992
- return this._updateModel();
1993
- },
1994
- populateCheckboxes: function() {
1995
- var controls,
1996
- _this = this;
1997
- controls = $(this.el).find('.controls');
1998
- controls.empty();
1999
- this.selectedItems = this.getModel().get(this.name);
2000
- this.collection.each(function(model) {
2001
- var input_id, label, value;
2002
- value = model.get(_this.valueField);
2003
- label = model.get(_this.displayField);
2004
- input_id = _.uniqueId('field');
2005
- controls.append(Luca.templates["fields/checkbox_array_item"]({
2006
- label: label,
2007
- value: value,
2008
- input_id: input_id,
2009
- input_name: _this.input_name
2010
- }));
2011
- if (_this.selectedItems.indexOf(value) !== -1) {
2012
- return _this.$("#" + input_id).attr("checked", "checked");
2013
- }
2014
- });
2015
- return $(this.container).append(this.$el);
2016
- },
2017
- _updateModel: function() {
2018
- var attributes;
2019
- attributes = {};
2020
- attributes[this.name] = this.selectedItems;
2021
- return this.getModel().set(attributes);
2022
- }
2023
- });
2024
-
2025
- Luca.register("checkbox_array", "Luca.fields.CheckboxArray");
2026
-
2027
1931
  }).call(this);
2028
1932
  (function() {
2029
1933
 
@@ -2431,24 +2335,8 @@
2431
2335
  return component.container = container;
2432
2336
  });
2433
2337
  },
2434
- afterComponents: function() {
2435
- var _ref,
2436
- _this = this;
2437
- if ((_ref = Luca.core.Container.prototype.afterComponents) != null) {
2438
- _ref.apply(this, arguments);
2439
- }
2440
- return this.eachField(function(field) {
2441
- field.getForm = function() {
2442
- return _this;
2443
- };
2444
- return field.getModel = function() {
2445
- return _this.currentModel();
2446
- };
2447
- });
2448
- },
2449
2338
  render: function() {
2450
- $(this.container).append(this.$el);
2451
- return this;
2339
+ return $(this.container).append(this.$el);
2452
2340
  },
2453
2341
  wrapper: function() {
2454
2342
  return this.$el.parents('.luca-ui-form-view-wrapper');
@@ -2465,9 +2353,6 @@
2465
2353
  return toolbar.render();
2466
2354
  });
2467
2355
  },
2468
- eachField: function(iterator) {
2469
- return _(this.getFields()).map(iterator);
2470
- },
2471
2356
  getField: function(name) {
2472
2357
  return _(this.getFields('name', name)).first();
2473
2358
  },
@@ -2547,8 +2432,8 @@
2547
2432
  key = field.input_name || field.name;
2548
2433
  skip = false;
2549
2434
  if (options.skip_buttons && field.ctype === "button_field") skip = true;
2550
- if (options.reject_blank === true && _.string.isBlank(value)) skip = true;
2551
- if (field.input_name === "id" && _.string.isBlank(value)) skip = true;
2435
+ if (options.reject_blank === true && _.isBlank(value)) skip = true;
2436
+ if (field.input_name === "id" && _.isBlank(value)) skip = true;
2552
2437
  if (skip !== true) memo[key] = value;
2553
2438
  return memo;
2554
2439
  }, {});