luca 0.8.06 → 0.8.59

Sign up to get free protection for your applications and to get access to all the features.
Files changed (51) hide show
  1. data/CHANGELOG +32 -1
  2. data/Guardfile +14 -9
  3. data/app.rb +1 -0
  4. data/assets/javascripts/sandbox/config.coffee +1 -1
  5. data/assets/javascripts/sandbox/views/pages/pages_controller.coffee +6 -0
  6. data/lib/luca/rails/version.rb +1 -1
  7. data/spec/framework_spec.coffee +33 -1
  8. data/src/components/application.coffee +1 -3
  9. data/src/components/base_toolbar.coffee +5 -6
  10. data/src/components/collection_inspector.coffee +2 -0
  11. data/src/components/collection_loader_view.coffee +7 -6
  12. data/src/components/controller.coffee +3 -1
  13. data/src/components/development_console.coffee +7 -4
  14. data/src/components/fields/button_field.coffee +2 -5
  15. data/src/components/fields/checkbox_array.coffee +64 -0
  16. data/src/components/fields/checkbox_field.coffee +7 -10
  17. data/src/components/fields/file_upload_field.coffee +3 -6
  18. data/src/components/fields/hidden_field.coffee +4 -10
  19. data/src/components/fields/select_field.coffee +15 -18
  20. data/src/components/fields/text_area_field.coffee +5 -8
  21. data/src/components/fields/text_field.coffee +7 -14
  22. data/src/components/fields/type_ahead_field.coffee +4 -6
  23. data/src/components/form_button_toolbar.coffee +4 -4
  24. data/src/components/form_view.coffee +24 -10
  25. data/src/components/grid_view.coffee +80 -42
  26. data/src/components/record_manager.coffee +21 -22
  27. data/src/components/template.coffee +6 -8
  28. data/src/containers/card_view.coffee +2 -4
  29. data/src/containers/column_view.coffee +10 -12
  30. data/src/containers/modal_view.coffee +7 -9
  31. data/src/containers/panel_view.coffee +4 -4
  32. data/src/containers/split_view.coffee +3 -5
  33. data/src/containers/tab_view.coffee +3 -2
  34. data/src/containers/viewport.coffee +2 -3
  35. data/src/core/container.coffee +4 -4
  36. data/src/core/field.coffee +14 -13
  37. data/src/core/model.coffee +1 -1
  38. data/src/core/view.coffee +12 -3
  39. data/src/framework.coffee +134 -17
  40. data/src/managers/collection_manager.coffee +1 -1
  41. data/src/stylesheets/components/development_console.scss +5 -0
  42. data/src/templates/fields/checkbox_array.luca +5 -0
  43. data/src/templates/fields/checkbox_array_item.luca +4 -0
  44. data/vendor/assets/javascripts/luca-ui-base.js +155 -43
  45. data/vendor/assets/javascripts/luca-ui-spec.js +385 -133
  46. data/vendor/assets/javascripts/luca-ui.js +344 -132
  47. data/vendor/assets/javascripts/luca-ui.min.js +3 -3
  48. data/vendor/assets/stylesheets/luca-ui-bootstrap.css +4 -1
  49. data/vendor/assets/stylesheets/luca-ui-spec.css +4 -1
  50. data/vendor/assets/stylesheets/luca-ui.css +4 -1
  51. metadata +6 -2
@@ -1,4 +1,5 @@
1
- Luca.components.FormView = Luca.core.Container.extend
1
+ _.component("Luca.components.FormView").extends('Luca.core.Container').with
2
+
2
3
  tagName: 'form'
3
4
 
4
5
  className: 'luca-ui-form-view'
@@ -93,8 +94,15 @@ Luca.components.FormView = Luca.core.Container.extend
93
94
  _( @components ).each (component)->
94
95
  component.container = container
95
96
 
97
+ afterComponents: ()->
98
+ Luca.core.Container::afterComponents?.apply(@, arguments)
99
+ @eachField (field)=>
100
+ field.getForm = ()=> @
101
+ field.getModel = ()=> @currentModel()
102
+
96
103
  render: ()->
97
104
  $( @container ).append( @$el )
105
+ @
98
106
 
99
107
  wrapper: ()->
100
108
  @$el.parents('.luca-ui-form-view-wrapper')
@@ -108,6 +116,9 @@ Luca.components.FormView = Luca.core.Container.extend
108
116
  toolbar = Luca.util.lazyComponent(toolbar)
109
117
  toolbar.render()
110
118
 
119
+ eachField: (iterator)->
120
+ _( @getFields() ).map( iterator )
121
+
111
122
  getField: (name)->
112
123
  _( @getFields('name', name) ).first()
113
124
 
@@ -147,7 +158,7 @@ Luca.components.FormView = Luca.core.Container.extend
147
158
  @trigger "after:load:#{ (if @current_model.isNew() then "new" else "existing")}", @, @current_model
148
159
 
149
160
  reset: ()->
150
- @loadModel( @current_model )
161
+ @loadModel( @current_model ) if @current_model?
151
162
 
152
163
  clear: ()->
153
164
  @current_model = if @defaultModel? then @defaultModel() else undefined
@@ -178,9 +189,7 @@ Luca.components.FormView = Luca.core.Container.extend
178
189
 
179
190
  @syncFormWithModel() unless options.silent? is true
180
191
 
181
- getValues: (options)->
182
- options ||= {}
183
-
192
+ getValues: (options={})->
184
193
  options.reject_blank = true unless options.reject_blank?
185
194
  options.skip_buttons = true unless options.skip_buttons?
186
195
 
@@ -189,9 +198,16 @@ Luca.components.FormView = Luca.core.Container.extend
189
198
  key = field.input_name || field.name
190
199
 
191
200
  skip = false
201
+
202
+ # don't include the values of buttons in our values hash
192
203
  skip = true if options.skip_buttons and field.ctype is "button_field"
193
- skip = true if options.reject_blank is true and _.isBlank(value)
194
- skip = true if field.input_name is "id" and _.isBlank(value)
204
+
205
+ # if the value is blank and we are passed reject_blank in the options
206
+ # then we should not include this field in our hash. however, if the
207
+ # field is setup to send blanks, then we will send this value anyway
208
+ if _.string.isBlank( value )
209
+ skip = true if options.reject_blank and !field.send_blanks
210
+ skip = true if field.input_name is "id"
195
211
 
196
212
  memo[ key ] = value unless skip is true
197
213
 
@@ -230,6 +246,4 @@ Luca.components.FormView = Luca.core.Container.extend
230
246
  @current_model?.set( @getValues() )
231
247
 
232
248
  setLegend: (@legend)->
233
- $('fieldset legend', @el).first().html(@legend)
234
-
235
- Luca.register 'form_view', 'Luca.components.FormView'
249
+ $('fieldset legend', @el).first().html(@legend)
@@ -1,12 +1,25 @@
1
- Luca.components.GridView = Luca.View.extend
1
+ _.component('Luca.components.GridView').extend('Luca.View').with
2
+
2
3
  autoBindEventHandlers: true
3
4
 
4
5
  events:
5
- "dblclick .luca-ui-g-row" : "double_click_handler"
6
- "click .luca-ui-g-row": "click_handler"
6
+ "dblclick table tbody tr" : "double_click_handler"
7
+ "click table tbody tr": "click_handler"
7
8
 
8
9
  className: 'luca-ui-g-view'
9
10
 
11
+ rowClass: "luca-ui-g-row"
12
+
13
+ wrapperClass: "luca-ui-g-view-wrapper"
14
+
15
+ # add whatever additional container classes you want
16
+ # to be applied to the wrapper here
17
+ additionalWrapperClasses: []
18
+
19
+ # add additional style declarations to the wrapper if you like
20
+ # these will be added by jquery.css and accept the same syntax
21
+ wrapperStyles: {}
22
+
10
23
  scrollable: true
11
24
 
12
25
  emptyText: 'No Results To display.'
@@ -15,49 +28,62 @@ Luca.components.GridView = Luca.View.extend
15
28
  # or any combination of these, split up by space
16
29
  tableStyle: 'striped'
17
30
 
31
+ # we have to specify height to make the scrollable table portion work
32
+ defaultHeight: 285
33
+
34
+ # unless we specify the width ourselves
35
+ # the width of the grid will automatically be set to the width of the container
36
+ # and if it can't be determined, then it will be set to the default
37
+ defaultWidth: 756
38
+
39
+ # the grid should never outgrow its container
40
+ maxWidth: undefined
41
+
42
+ # hooks is configuration sugar
43
+ # the before:grid:render trigger
44
+ # will automatically fire the
45
+ # beforeGridRender function
18
46
  hooks:[
19
- "before:grid:render",
20
- "before:render:header",
21
- "before:render:row",
22
- "after:grid:render",
23
- "row:double:click",
24
- "row:click",
47
+ "before:grid:render"
48
+ "before:render:header"
49
+ "before:render:row"
50
+ "after:grid:render"
51
+ "row:double:click"
52
+ "row:click"
25
53
  "after:collection:load"
26
54
  ]
27
55
 
28
- rowClass: "luca-ui-g-row"
29
-
30
56
  initialize: (@options={})->
31
57
  _.extend @, @options
32
58
  _.extend @, Luca.modules.Deferrable
33
59
 
34
60
  Luca.View::initialize.apply( @, arguments )
35
61
 
36
- _.bindAll @, "double_click_handler", "click_handler"
37
-
38
62
  @configure_collection()
39
63
 
40
64
  @collection.bind "reset", (collection) =>
41
65
  @refresh()
42
66
  @trigger "after:collection:load", collection
43
67
 
68
+ # if a model changes, then we will update the row's contents
69
+ # by rerendering that row's cells
70
+ @collection.bind "change", (model)=>
71
+ rowEl = @getRowEl( model.id || model.get('id') || model.cid )
72
+ cells = @render_row(model, @indexOf(model), cellsOnly: true )
73
+ $( rowEl ).html( cells )
74
+
44
75
  beforeRender: ()->
45
76
  @trigger "before:grid:render", @
46
77
 
47
- @$el.addClass 'scrollable-g-view' if @scrollable
48
-
49
78
  @$el.html Luca.templates["components/grid_view"]()
50
79
 
51
- @table = $('table.luca-ui-g-view', @el)
52
- @header = $("thead", @table)
53
- @body = $("tbody", @table)
54
- @footer = $("tfoot", @table)
80
+ @table = @$ 'table.luca-ui-g-view'
81
+ @header = @$ "thead"
82
+ @body = @$ "tbody"
83
+ @footer = @$ "tfoot"
84
+ @wrapper = @$ ".#{ @wrapperClass }"
55
85
 
56
- if Luca.enableBootstrap
57
- @table.addClass('table')
58
-
59
- _( @tableStyle?.split(" ") ).each (style)=>
60
- @table.addClass("table-#{ style }")
86
+ @applyCssClasses()
61
87
 
62
88
  @setDimensions() if @scrollable
63
89
 
@@ -69,6 +95,18 @@ Luca.components.GridView = Luca.View.extend
69
95
 
70
96
  $(@container).append @$el
71
97
 
98
+ applyCssClasses: ()->
99
+ @$el.addClass 'scrollable-g-view' if @scrollable
100
+
101
+ _( @additionalWrapperClasses ).each (containerClass)=>
102
+ @wrapper?.addClass( containerClass )
103
+
104
+ if Luca.enableBootstrap
105
+ @table.addClass('table')
106
+
107
+ _( @tableStyle?.split(" ") ).each (style)=>
108
+ @table.addClass("table-#{ style }")
109
+
72
110
  toolbarContainers:(position="bottom")->
73
111
  $(".toolbar-container.#{ position }", @el)
74
112
 
@@ -78,24 +116,21 @@ Luca.components.GridView = Luca.View.extend
78
116
  toolbar.container = @toolbarContainers( toolbar.position )
79
117
  toolbar.render()
80
118
 
81
- defaultWidth: 756
82
- defaultHeight: 285
83
-
84
119
  setDimensions: (offset)->
85
120
  @height ||= @defaultHeight
86
121
 
87
- $('.luca-ui-g-view-body', @el).height( @height )
88
- $('tbody.scrollable', @el).height( @height - 23 )
122
+ @$('.luca-ui-g-view-body').height( @height )
123
+ @$('tbody.scrollable').height( @height - 23 )
89
124
 
90
125
  @container_width = do => $(@container).width()
91
126
 
92
- @width = if @container_width > 0 then @container_width else @defaultWidth
93
- @width = _([@width, (@maxWidth || @width)]).max()
127
+ @width ||= if @container_width > 0 then @container_width else @defaultWidth
94
128
 
95
- #@width += offset if offset
129
+ # don't let the grid outgrow its maxWidth
130
+ @width = _([@width, (@maxWidth || @width)]).max()
96
131
 
97
- $('.luca-ui-g-view-body', @el).width( @width )
98
- $('.luca-ui-g-view-body table', @el).width( @width )
132
+ @$('.luca-ui-g-view-body').width @width
133
+ @$('.luca-ui-g-view-body table').width @width
99
134
 
100
135
  @setDefaultColumnWidths()
101
136
 
@@ -103,8 +138,8 @@ Luca.components.GridView = Luca.View.extend
103
138
  difference = newWidth - @width
104
139
  @width = newWidth
105
140
 
106
- $('.luca-ui-g-view-body', @el).width( @width )
107
- $('.luca-ui-g-view-body table', @el).width( @width )
141
+ @$('.luca-ui-g-view-body').width( @width )
142
+ @$('.luca-ui-g-view-body table').width( @width )
108
143
 
109
144
  if @columns.length > 0
110
145
  distribution = difference / @columns.length
@@ -131,7 +166,6 @@ Luca.components.GridView = Luca.View.extend
131
166
 
132
167
  @padLastColumn()
133
168
 
134
-
135
169
  lastColumn: ()->
136
170
  @columns[ @columns.length - 1 ]
137
171
 
@@ -175,7 +209,7 @@ Luca.components.GridView = Luca.View.extend
175
209
  getRowEl: (id)->
176
210
  @$ "[data-record-id=#{ id }]", 'table'
177
211
 
178
- render_row: (row,row_index)->
212
+ render_row: (row,row_index, options={})->
179
213
  rowClass = @rowClass
180
214
 
181
215
  model_id = if row?.get and row?.attributes then row.get('id') else ''
@@ -190,11 +224,17 @@ Luca.components.GridView = Luca.View.extend
190
224
 
191
225
  "<td style='#{ style }' class='column-#{ col_index }'>#{ display }</td>"
192
226
 
227
+ return cells if options.cellsOnly
228
+
193
229
  altClass = ''
194
230
  if @alternateRowClasses
195
231
  altClass = if row_index % 2 is 0 then "even" else "odd"
196
232
 
197
- @body?.append("<tr data-record-id='#{ model_id }' data-row-index='#{ row_index }' class='#{ rowClass } #{ altClass }' id='row-#{ row_index }'>#{ cells }</tr>")
233
+ content = "<tr data-record-id='#{ model_id }' data-row-index='#{ row_index }' class='#{ rowClass } #{ altClass }' id='row-#{ row_index }'>#{ cells }</tr>"
234
+
235
+ return content if options.contentOnly is true
236
+
237
+ @body?.append(content)
198
238
 
199
239
  cell_renderer: (row, column, columnIndex )->
200
240
  if _.isFunction column.renderer
@@ -218,6 +258,4 @@ Luca.components.GridView = Luca.View.extend
218
258
  @trigger "row:click", @, record, rowIndex
219
259
 
220
260
  $(".#{ @rowClass }", @body ).removeClass('selected-row')
221
- me.addClass('selected-row')
222
-
223
- Luca.register "grid_view","Luca.components.GridView"
261
+ me.addClass('selected-row')
@@ -1,6 +1,6 @@
1
1
  # The RecordManager is a high level component which incorporates
2
2
  # a filterable grid, and an editor form responsible for editing
3
- # the records in that grid.
3
+ # the records in that grid.
4
4
  #
5
5
  # it provides convenience methods for accesing those components.
6
6
  #
@@ -8,9 +8,8 @@
8
8
  # which work together. inter-component communication should be handled
9
9
  # by parent containers, and not individual components, which should
10
10
  # usually not be aware of other components.
11
-
12
- # Work in progress
13
- Luca.components.RecordManager = Luca.containers.CardView.extend
11
+ _.component('Luca.components.RecordManager')
12
+ .extend('Luca.containers.CardView').with
14
13
 
15
14
  events:
16
15
  "click .record-manager-grid .edit-link" : "edit_handler"
@@ -19,12 +18,12 @@ Luca.components.RecordManager = Luca.containers.CardView.extend
19
18
  "click .add-button" : "add_handler"
20
19
  "click .refresh-button" : "filter_handler"
21
20
  "click .back-to-search-button" : "back_to_search_handler"
22
-
21
+
23
22
  record_manager: true
24
23
 
25
24
  initialize: (@options={})->
26
25
  Luca.containers.CardView::initialize.apply @, arguments
27
-
26
+
28
27
  throw "Record Managers must specify a name" unless @name
29
28
 
30
29
  _.bindAll @, "add_handler", "edit_handler", "filter_handler", "reset_filter_handler"
@@ -32,7 +31,7 @@ Luca.components.RecordManager = Luca.containers.CardView.extend
32
31
  _.extend @components[0][0], @filterConfig if @filterConfig
33
32
  _.extend @components[0][1], @gridConfig if @gridConfig
34
33
  _.extend @components[1][0], @editorConfig if @editorConfig
35
-
34
+
36
35
  @bind "after:card:switch", () =>
37
36
  @trigger("activation:search", @) if @activeCard is 0
38
37
  @trigger("activation:editor", @) if @activeCard is 1
@@ -47,7 +46,7 @@ Luca.components.RecordManager = Luca.containers.CardView.extend
47
46
  ]
48
47
  ,
49
48
  ctype: 'form_view'
50
- ]
49
+ ]
51
50
 
52
51
  getSearch: (activate=false, reset=true)->
53
52
  @activate(0) if activate is true
@@ -74,7 +73,7 @@ Luca.components.RecordManager = Luca.containers.CardView.extend
74
73
  beforeRender: ()->
75
74
  @$el.addClass("#{ @resource }-manager")
76
75
  Luca.containers.CardView::beforeRender?.apply @, arguments
77
-
76
+
78
77
  @$el.addClass("#{ @resource } record-manager")
79
78
  @$el.data('resource', @resource)
80
79
 
@@ -87,18 +86,18 @@ Luca.components.RecordManager = Luca.containers.CardView.extend
87
86
  # components are responsible for component communication.
88
87
  #
89
88
  # child components should not be aware of other components
90
- # in the layout. Their parents should be responsible for
89
+ # in the layout. Their parents should be responsible for
91
90
  # controlling how they interact. listening to events on one,
92
91
  # changing state, inducing effects in the others
93
92
  afterRender: ()->
94
- Luca.containers.CardView::afterRender?.apply @, arguments
93
+ Luca.containers.CardView::afterRender?.apply @, arguments
95
94
 
96
95
  manager = @
97
96
  grid = @getGrid()
98
97
  filter = @getFilter()
99
98
  editor = @getEditor()
100
99
  collection = @getCollection()
101
-
100
+
102
101
  # when a row is double clicked on the grid
103
102
  # then we edit that row
104
103
  grid.bind "row:double:click", (grid,model,index)->
@@ -111,7 +110,7 @@ Luca.components.RecordManager = Luca.containers.CardView.extend
111
110
 
112
111
  editor.bind "after:submit", ()=>
113
112
  $('.form-view-body', @el).spin(false)
114
-
113
+
115
114
  editor.bind "after:submit:fatal_error", ()=>
116
115
  $('.form-view-flash-container', @el ).append "<li class='error'>There was an internal server error saving this record. Please contact developers@benchprep.com to report this error.</li>"
117
116
  $('.form-view-body', @el).spin(false)
@@ -119,10 +118,10 @@ Luca.components.RecordManager = Luca.containers.CardView.extend
119
118
  editor.bind "after:submit:error", (form, model, response)=>
120
119
  _( response.errors ).each (error)=>
121
120
  $('.form-view-flash-container', @el ).append "<li class='error'>#{ error }</li>"
122
-
121
+
123
122
  editor.bind "after:submit:success", (form, model, response)=>
124
123
  $('.form-view-flash-container', @el).append "<li class='success'>Successfully Saved Record</li>"
125
-
124
+
126
125
  model.set( response.result )
127
126
  form.loadModel( model )
128
127
 
@@ -132,13 +131,13 @@ Luca.components.RecordManager = Luca.containers.CardView.extend
132
131
  $('.form-view-flash-container li.success', @el).fadeOut(1000)
133
132
  $('.form-view-flash-container', @el).html('')
134
133
  , 4000
135
-
134
+
136
135
  filter.eachComponent (component)=>
137
136
  try
138
137
  component.bind "on:change", @filter_handler
139
138
  catch e
140
139
  undefined
141
-
140
+
142
141
  firstActivation: ()->
143
142
  @getGrid().trigger "first:activation", @, @getGrid()
144
143
  @getFilter().trigger "first:activation", @, @getGrid()
@@ -149,16 +148,16 @@ Luca.components.RecordManager = Luca.containers.CardView.extend
149
148
  grid = @getGrid()
150
149
  filter = @getFilter()
151
150
  editor = @getEditor()
152
-
151
+
153
152
  # refresh the select fields in the filter
154
153
  filter.clear()
155
154
 
156
155
  grid.applyFilter()
157
-
156
+
158
157
  manageRecord: (record_id)->
159
158
  model = @getCollection().get(record_id)
160
159
  return @loadModel(model) if model
161
-
160
+
162
161
  console.log "Could Not Find Model, building and fetching"
163
162
 
164
163
  model = @buildModel()
@@ -186,7 +185,7 @@ Luca.components.RecordManager = Luca.containers.CardView.extend
186
185
  createModel: ()->
187
186
  @loadModel(@buildModel())
188
187
 
189
- ##### DOM Event Handlers
188
+ ##### DOM Event Handlers
190
189
  reset_filter_handler: (e)->
191
190
  @getFilter().clear()
192
191
  @getGrid().applyFilter( @getFilter().getValues() )
@@ -197,7 +196,7 @@ Luca.components.RecordManager = Luca.containers.CardView.extend
197
196
  edit_handler: (e)->
198
197
  me = my = $( e.currentTarget )
199
198
  record_id = my.parents('tr').data('record-id')
200
-
199
+
201
200
  if record_id
202
201
  model = @getGrid().collection.get( record_id )
203
202
 
@@ -1,4 +1,7 @@
1
- Luca.components.Template = Luca.View.extend
1
+ _.component('Luca.components.Template').extends('Luca.View').with
2
+
3
+ templateContainer: "Luca.templates"
4
+
2
5
  initialize: (@options={})->
3
6
  Luca.View::initialize.apply @, arguments
4
7
  throw "Templates must specify which template / markup to use" unless @template or @markup
@@ -6,14 +9,9 @@ Luca.components.Template = Luca.View.extend
6
9
  if _.isString(@templateContainer)
7
10
  @templateContainer = eval("(window || global).#{ @templateContainer }")
8
11
 
9
- templateContainer: "Luca.templates"
10
-
11
12
  beforeRender: ()->
12
- @templateContainer = JST if _.isUndefined( @templateContainer)
13
+ @templateContainer = JST if _.isUndefined( @templateContainer)
13
14
  @$el.html(@markup || @templateContainer[ @template ](@options) )
14
15
 
15
16
  render: ()->
16
- $(@container).append( @$el )
17
-
18
-
19
- Luca.register "template", "Luca.components.Template"
17
+ $(@container).append( @$el )
@@ -1,4 +1,4 @@
1
- Luca.containers.CardView = Luca.core.Container.extend
1
+ _.component("Luca.containers.CardView").extends("Luca.core.Container").with
2
2
  componentType: 'card_view'
3
3
 
4
4
  className: 'luca-ui-card-view-wrapper'
@@ -88,6 +88,4 @@ Luca.containers.CardView = Luca.core.Container.extend
88
88
 
89
89
 
90
90
  if _.isFunction(callback)
91
- callback.apply @, [@,previous,current]
92
-
93
- Luca.register 'card_view', "Luca.containers.CardView"
91
+ callback.apply @, [@,previous,current]
@@ -1,4 +1,4 @@
1
- Luca.containers.ColumnView = Luca.core.Container.extend
1
+ _.component('Luca.containers.ColumnView').extends('Luca.core.Container').with
2
2
  componentType: 'column_view'
3
3
 
4
4
  className: 'luca-ui-column-view'
@@ -8,34 +8,34 @@ Luca.containers.ColumnView = Luca.core.Container.extend
8
8
  initialize: (@options={})->
9
9
  Luca.core.Container::initialize.apply @, arguments
10
10
  @setColumnWidths()
11
-
11
+
12
12
  componentClass: 'luca-ui-column'
13
13
 
14
14
  containerTemplate: "containers/basic"
15
15
 
16
16
  appendContainers: true
17
17
 
18
- autoColumnWidths: ()->
18
+ autoColumnWidths: ()->
19
19
  widths = []
20
20
 
21
- _( @components.length ).times ()=>
21
+ _( @components.length ).times ()=>
22
22
  widths.push( parseInt( 100 / @components.length ) )
23
23
 
24
24
  widths
25
25
 
26
26
  setColumnWidths: ()->
27
- @columnWidths = if @layout?
28
- _( @layout.split('/') ).map((v)-> parseInt(v) )
29
- else
27
+ @columnWidths = if @layout?
28
+ _( @layout.split('/') ).map((v)-> parseInt(v) )
29
+ else
30
30
  @autoColumnWidths()
31
31
 
32
32
  @columnWidths = _( @columnWidths ).map (val)-> "#{ val }%"
33
-
33
+
34
34
  beforeComponents: ()->
35
35
  @debug "column_view before components"
36
36
  _( @components ).each (component)->
37
37
  component.ctype ||= "panel_view"
38
-
38
+
39
39
  beforeLayout: ()->
40
40
  @debug "column_view before layout"
41
41
 
@@ -43,6 +43,4 @@ Luca.containers.ColumnView = Luca.core.Container.extend
43
43
  @components[index].float = "left"
44
44
  @components[index].width = width
45
45
 
46
- Luca.core.Container::beforeLayout?.apply @, arguments
47
-
48
- Luca.register 'column_view', "Luca.containers.ColumnView"
46
+ Luca.core.Container::beforeLayout?.apply @, arguments
@@ -1,4 +1,4 @@
1
- Luca.containers.ModalView = Luca.core.Container.extend
1
+ _.component('Luca.containers.ModalView').extends('Luca.core.Container').with
2
2
  componentType: 'modal_view'
3
3
 
4
4
  className: 'luca-ui-modal-view'
@@ -22,18 +22,18 @@ Luca.containers.ModalView = Luca.core.Container.extend
22
22
  opacity: 80
23
23
  onOpen: (modal)->
24
24
  @onOpen.apply @
25
- @onModalOpen.apply modal, [modal, @]
26
- onClose: (modal)->
25
+ @onModalOpen.apply modal, [modal, @]
26
+ onClose: (modal)->
27
27
  @onClose.apply @
28
28
  @onModalClose.apply modal, [modal, @]
29
-
29
+
30
30
  modalOptions: {}
31
31
 
32
32
  initialize: (@options={})->
33
33
  Luca.core.Container::initialize.apply @,arguments
34
34
  @setupHooks(@hooks)
35
35
 
36
- _( @defaultModalOptions ).each (value,setting) => @modalOptions[ setting ] ||= value
36
+ _( @defaultModalOptions ).each (value,setting) => @modalOptions[ setting ] ||= value
37
37
 
38
38
  @modalOptions.onOpen = _.bind( @modalOptions.onOpen, @)
39
39
  @modalOptions.onClose = _.bind( @modalOptions.onClose, @)
@@ -66,7 +66,7 @@ Luca.containers.ModalView = Luca.core.Container.extend
66
66
  object.container = @el
67
67
  object
68
68
 
69
- afterInitialize: ()->
69
+ afterInitialize: ()->
70
70
  @$el.hide()
71
71
  @render() if @renderOnInitialize
72
72
 
@@ -80,6 +80,4 @@ Luca.containers.ModalView = Luca.core.Container.extend
80
80
  @$el.modal( @modalOptions )
81
81
 
82
82
  hide: ()->
83
- @trigger "before:hide", @
84
-
85
- Luca.register "modal_view","Luca.containers.ModalView"
83
+ @trigger "before:hide", @
@@ -1,13 +1,13 @@
1
- Luca.containers.PanelView = Luca.core.Container.extend
1
+ _.component('Luca.containers.PanelView').extends('Luca.core.Container').with
2
2
  className: 'luca-ui-panel'
3
3
 
4
4
  initialize: (@options={})->
5
5
  Luca.core.Container::initialize.apply @, arguments
6
-
6
+
7
7
  afterLayout: ()->
8
8
  if @template
9
9
  contents = ( Luca.templates || JST )[ @template ]( @ )
10
- @$el.html(contents)
10
+ @$el.html(contents)
11
11
 
12
12
  render: ()->
13
13
  $(@container).append @$el
@@ -19,5 +19,5 @@ Luca.containers.PanelView = Luca.core.Container.extend
19
19
  @$el.css(property,value)
20
20
 
21
21
 
22
-
22
+
23
23
 
@@ -1,12 +1,10 @@
1
- Luca.containers.SplitView = Luca.core.Container.extend
1
+ _.component('Luca.containers.SplitView').extends('Luca.core.Container').with
2
2
  layout: '100'
3
3
 
4
4
  componentType: 'split_view'
5
5
 
6
6
  containerTemplate: 'containers/basic'
7
7
 
8
- className: 'luca-ui-split-view'
9
-
10
- componentClass: 'luca-ui-panel'
8
+ className: 'luca-ui-split-view'
11
9
 
12
- Luca.register 'split_view', "Luca.containers.SplitView"
10
+ componentClass: 'luca-ui-panel'
@@ -1,4 +1,5 @@
1
- Luca.containers.TabView = Luca.containers.CardView.extend
1
+ _.component('Luca.containers.TabView').extends('Luca.containers.CardView').with
2
+
2
3
  events:
3
4
  "click ul.nav-tabs li" : "select"
4
5
 
@@ -23,7 +24,7 @@ Luca.containers.TabView = Luca.containers.CardView.extend
23
24
  @bind "after:card:switch", @highlightSelectedTab
24
25
 
25
26
  activeTabSelector: ()->
26
- @tabSelectors().eq( @activeCard )
27
+ @tabSelectors().eq( @activeCard || @activeTab || @activeItem )
27
28
 
28
29
  prepareLayout: ()->
29
30
  @card_containers = _( @cards ).map (card, index)=>
@@ -1,4 +1,5 @@
1
- Luca.containers.Viewport = Luca.containers.CardView.extend
1
+ _.component('Luca.containers.Viewport').extend('Luca.containers.CardView').with
2
+
2
3
  activeItem: 0
3
4
 
4
5
  className: 'luca-ui-viewport'
@@ -7,10 +8,8 @@ Luca.containers.Viewport = Luca.containers.CardView.extend
7
8
 
8
9
  initialize: (@options={})->
9
10
  Luca.core.Container::initialize.apply(@, arguments)
10
-
11
11
  $('html,body').addClass('luca-ui-fullscreen') if @fullscreen
12
12
 
13
13
  render: ()->
14
- console.log "Rendering Viewport"
15
14
  @$el.addClass('luca-ui-viewport')
16
15