luca 0.8.06 → 0.8.59

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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