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.
- data/CHANGELOG +32 -1
- data/Guardfile +14 -9
- data/app.rb +1 -0
- data/assets/javascripts/sandbox/config.coffee +1 -1
- data/assets/javascripts/sandbox/views/pages/pages_controller.coffee +6 -0
- data/lib/luca/rails/version.rb +1 -1
- data/spec/framework_spec.coffee +33 -1
- data/src/components/application.coffee +1 -3
- data/src/components/base_toolbar.coffee +5 -6
- data/src/components/collection_inspector.coffee +2 -0
- data/src/components/collection_loader_view.coffee +7 -6
- data/src/components/controller.coffee +3 -1
- data/src/components/development_console.coffee +7 -4
- data/src/components/fields/button_field.coffee +2 -5
- data/src/components/fields/checkbox_array.coffee +64 -0
- data/src/components/fields/checkbox_field.coffee +7 -10
- data/src/components/fields/file_upload_field.coffee +3 -6
- data/src/components/fields/hidden_field.coffee +4 -10
- data/src/components/fields/select_field.coffee +15 -18
- data/src/components/fields/text_area_field.coffee +5 -8
- data/src/components/fields/text_field.coffee +7 -14
- data/src/components/fields/type_ahead_field.coffee +4 -6
- data/src/components/form_button_toolbar.coffee +4 -4
- data/src/components/form_view.coffee +24 -10
- data/src/components/grid_view.coffee +80 -42
- data/src/components/record_manager.coffee +21 -22
- data/src/components/template.coffee +6 -8
- data/src/containers/card_view.coffee +2 -4
- data/src/containers/column_view.coffee +10 -12
- data/src/containers/modal_view.coffee +7 -9
- data/src/containers/panel_view.coffee +4 -4
- data/src/containers/split_view.coffee +3 -5
- data/src/containers/tab_view.coffee +3 -2
- data/src/containers/viewport.coffee +2 -3
- data/src/core/container.coffee +4 -4
- data/src/core/field.coffee +14 -13
- data/src/core/model.coffee +1 -1
- data/src/core/view.coffee +12 -3
- data/src/framework.coffee +134 -17
- data/src/managers/collection_manager.coffee +1 -1
- data/src/stylesheets/components/development_console.scss +5 -0
- data/src/templates/fields/checkbox_array.luca +5 -0
- data/src/templates/fields/checkbox_array_item.luca +4 -0
- data/vendor/assets/javascripts/luca-ui-base.js +155 -43
- data/vendor/assets/javascripts/luca-ui-spec.js +385 -133
- data/vendor/assets/javascripts/luca-ui.js +344 -132
- data/vendor/assets/javascripts/luca-ui.min.js +3 -3
- data/vendor/assets/stylesheets/luca-ui-bootstrap.css +4 -1
- data/vendor/assets/stylesheets/luca-ui-spec.css +4 -1
- data/vendor/assets/stylesheets/luca-ui.css +4 -1
- metadata +6 -2
data/CHANGELOG
CHANGED
@@ -1,3 +1,34 @@
|
|
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
|
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
|
17
|
+
|
18
|
+
0.8.4
|
19
|
+
- Fixes bug in development console
|
20
|
+
- Colorizes Development Console
|
21
|
+
- Introduces Luca.template helper to find template by regex in Luca.templates
|
22
|
+
or window.JST. Optionally compiling the template if you pass variables to it.
|
23
|
+
- Introduces Luca.View.applyStyles which delegates to @$el.css
|
24
|
+
|
25
|
+
0.8.5
|
26
|
+
- Luca.define() can be used to extend components, and retain references
|
27
|
+
to the inheritance chain. Components defined this way will have
|
28
|
+
_className attributes as well as _superClass() references. This
|
29
|
+
allows for introspection of components as well as advanced
|
30
|
+
querying of the Luca Component Cache
|
31
|
+
|
32
|
+
_ Added _.component as an alias to Luca.define
|
33
|
+
|
34
|
+
- All Luca components have been migrated over to the new Luca.define() API
|
data/Guardfile
CHANGED
@@ -5,18 +5,23 @@ 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
|
-
|
9
|
-
|
10
|
-
|
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
|
11
13
|
end
|
12
14
|
|
13
|
-
|
14
|
-
|
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
|
15
19
|
end
|
16
20
|
end
|
17
21
|
|
18
|
-
|
19
|
-
guard 'jasmine' do
|
20
|
-
|
21
|
-
|
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
|
22
27
|
end
|
data/app.rb
CHANGED
@@ -1,4 +1,6 @@
|
|
1
1
|
Sandbox.views.PagesController = Luca.components.Controller.extend
|
2
|
+
# the main component is the tab view which
|
3
|
+
# has its own individual demos
|
2
4
|
components:[
|
3
5
|
ctype: 'tab_view'
|
4
6
|
name: 'pages_tab_view'
|
@@ -27,6 +29,10 @@ Sandbox.views.PagesController = Luca.components.Controller.extend
|
|
27
29
|
ctype: 'development_console'
|
28
30
|
name: 'development_console'
|
29
31
|
title: "Development Console"
|
32
|
+
,
|
33
|
+
ctype: "collection_inspector"
|
34
|
+
name: "collection_inspector"
|
35
|
+
title: "Collection Inspector"
|
30
36
|
]
|
31
37
|
]
|
32
38
|
|
data/lib/luca/rails/version.rb
CHANGED
data/spec/framework_spec.coffee
CHANGED
@@ -70,4 +70,36 @@ describe "The Luca Framework", ->
|
|
70
70
|
expect( Luca.isBackboneModel({}) ).toEqual false
|
71
71
|
|
72
72
|
|
73
|
-
describe
|
73
|
+
describe "Luca Component Definition", ->
|
74
|
+
beforeEach ->
|
75
|
+
Luca.define("Luca.random.ComponentDefinition").extends("Luca.View").with
|
76
|
+
property: "value"
|
77
|
+
|
78
|
+
it "should create the namespace for us", ->
|
79
|
+
expect( Luca.random ).toBeDefined()
|
80
|
+
|
81
|
+
it "should automatically register the namespace in the registry", ->
|
82
|
+
expect( Luca.registry.namespaces ).toContain 'Luca.random'
|
83
|
+
|
84
|
+
it "should automatically register the component in the registry", ->
|
85
|
+
expect( Luca.registry.lookup("component_definition") ).toBeDefined()
|
86
|
+
|
87
|
+
it "should reference the name of the extending class", ->
|
88
|
+
instance = new Luca.random.ComponentDefinition
|
89
|
+
expect( instance._className ).toEqual "Luca.random.ComponentDefinition"
|
90
|
+
|
91
|
+
it "should reference the extended class", ->
|
92
|
+
instance = new Luca.random.ComponentDefinition
|
93
|
+
expect( instance._superClass() ).toEqual Luca.View
|
94
|
+
|
95
|
+
it "should reference the name of the extended class", ->
|
96
|
+
instance = new Luca.random.ComponentDefinition
|
97
|
+
expect( instance._superClass()._className ).toEqual 'Luca.View'
|
98
|
+
|
99
|
+
it "should use the backbone.extend functionality properly", ->
|
100
|
+
instance = new Luca.random.ComponentDefinition
|
101
|
+
expect( instance.property ).toEqual "value"
|
102
|
+
|
103
|
+
it "should alias to _.component", ->
|
104
|
+
proxy = _.component('Luca.random.ComponentDefition')
|
105
|
+
expect( proxy.with ).toBeDefined()
|
@@ -1,4 +1,4 @@
|
|
1
|
-
Luca.Application
|
1
|
+
_.component('Luca.Application').extends('Luca.containers.Viewport').with
|
2
2
|
|
3
3
|
components:[
|
4
4
|
ctype: 'controller'
|
@@ -61,10 +61,8 @@ Luca.Application = Luca.containers.Viewport.extend
|
|
61
61
|
# sort of data processing, whatever your application requires to run outside
|
62
62
|
# of the views
|
63
63
|
boot: ()->
|
64
|
-
console.log "Sup?"
|
65
64
|
@trigger "ready"
|
66
65
|
|
67
|
-
|
68
66
|
# delegate to the collection manager's get or create function.
|
69
67
|
# use App.collection() to create or access existing collections
|
70
68
|
collection: ()->
|
@@ -1,16 +1,15 @@
|
|
1
|
-
Luca.components.Toolbar
|
1
|
+
_.component('Luca.components.Toolbar').extends('Luca.core.Container').with
|
2
|
+
|
2
3
|
className: 'luca-ui-toolbar'
|
3
|
-
|
4
|
+
|
4
5
|
position: 'bottom'
|
5
6
|
|
6
7
|
initialize: (@options={})->
|
7
8
|
Luca.core.Container::initialize.apply @, arguments
|
8
9
|
|
9
10
|
prepareComponents: ()->
|
10
|
-
_( @components ).each (component)=>
|
11
|
+
_( @components ).each (component)=>
|
11
12
|
component.container = @el
|
12
13
|
|
13
14
|
render: ()->
|
14
|
-
$(@container).append(@el)
|
15
|
-
|
16
|
-
Luca.register "toolbar", "Luca.components.Toolbar"
|
15
|
+
$(@container).append(@el)
|
@@ -2,8 +2,10 @@
|
|
2
2
|
# You can provide your own template for the collection loader modal
|
3
3
|
# if you want to. Default implementation uses twitter bootstrap modal and
|
4
4
|
# progress bar (http://twitter.github.com/bootstrap/). You template
|
5
|
-
# should
|
6
|
-
Luca.components.CollectionLoaderView
|
5
|
+
# should contain `progress`, `bar` and `message` classes
|
6
|
+
_.component('Luca.components.CollectionLoaderView')
|
7
|
+
.extends('Luca.components.Template').with
|
8
|
+
|
7
9
|
className: 'luca-ui-collection-loader-view'
|
8
10
|
|
9
11
|
template: "components/collection_loader_view"
|
@@ -24,14 +26,13 @@ Luca.components.CollectionLoaderView = Luca.components.Template.extend
|
|
24
26
|
loaded = @manager.loadedCollectionsCount()
|
25
27
|
total = @manager.totalCollectionsCount()
|
26
28
|
progress = parseInt((loaded / total) * 100)
|
29
|
+
collectionName = _.string.titleize( _.string.humanize( name ) )
|
27
30
|
|
28
31
|
@modalContainer().find('.progress .bar').attr("style", "width: #{progress}%;")
|
29
|
-
@modalContainer().find('.message').html("Loaded #{
|
32
|
+
@modalContainer().find('.message').html("Loaded #{ collectionName }...")
|
30
33
|
|
31
34
|
@manager.bind "all_collections_loaded", ()=>
|
32
35
|
@modalContainer().find('.message').html("All done!")
|
33
36
|
_.delay ()=>
|
34
37
|
@modalContainer().modal('hide')
|
35
|
-
, 400
|
36
|
-
|
37
|
-
Luca.register "collection_loader_view","Luca.components.CollectionLoaderView"
|
38
|
+
, 400
|
@@ -1,5 +1,7 @@
|
|
1
|
-
Luca.components.DevelopmentConsole
|
1
|
+
_.component('Luca.components.DevelopmentConsole').extends('Luca.View').with
|
2
|
+
|
2
3
|
name: "development_console"
|
4
|
+
|
3
5
|
className: 'luca-ui-development-console'
|
4
6
|
|
5
7
|
initialize: (@options={})->
|
@@ -34,11 +36,12 @@ Luca.components.DevelopmentConsole = Luca.View.extend
|
|
34
36
|
|
35
37
|
returnValue: (val)->
|
36
38
|
return "undefined" unless val?
|
37
|
-
val?.toString()
|
39
|
+
val?.toString() || ""
|
38
40
|
|
39
41
|
parseLine: (line)->
|
40
|
-
|
42
|
+
line = _.string.strip(line)
|
41
43
|
line = line.replace(/^return/,' ')
|
44
|
+
|
42
45
|
"return #{ line }"
|
43
46
|
|
44
47
|
commandHandle: (line)->
|
@@ -53,4 +56,4 @@ Luca.components.DevelopmentConsole = Luca.View.extend
|
|
53
56
|
if error.message.match /circular structure to JSON/
|
54
57
|
return ret.toString()
|
55
58
|
|
56
|
-
error.toString()
|
59
|
+
error.toString()
|
@@ -1,5 +1,4 @@
|
|
1
|
-
Luca.fields.ButtonField
|
2
|
-
form_field: true
|
1
|
+
_.component('Luca.fields.ButtonField').extends('Luca.core.Field').with
|
3
2
|
|
4
3
|
readOnly: true
|
5
4
|
|
@@ -36,6 +35,4 @@ Luca.fields.ButtonField = Luca.core.Field.extend
|
|
36
35
|
@icon_class = "icon-#{ @icon_class }" if @icon_class.length and !@icon_class.match(/^icon-/)
|
37
36
|
@icon_class += " icon-white" if @white
|
38
37
|
|
39
|
-
setValue: ()-> true
|
40
|
-
|
41
|
-
Luca.register "button_field", "Luca.fields.ButtonField"
|
38
|
+
setValue: ()-> true
|
@@ -0,0 +1,64 @@
|
|
1
|
+
_.component('Luca.fields.CheckboxArray').extends('Luca.core.Field').with
|
2
|
+
|
3
|
+
template: "fields/checkbox_array"
|
4
|
+
|
5
|
+
events:
|
6
|
+
"click input" : "clickHandler"
|
7
|
+
|
8
|
+
initialize: (@options={})->
|
9
|
+
_.extend @, @options
|
10
|
+
_.extend @, Luca.modules.Deferrable
|
11
|
+
_.bindAll @, "populateCheckboxes", "clickHandler", "_updateModel"
|
12
|
+
|
13
|
+
Luca.core.Field::initialize.apply @, arguments
|
14
|
+
|
15
|
+
@input_id ||= _.uniqueId('field')
|
16
|
+
@input_name ||= @name
|
17
|
+
@label ||= @name
|
18
|
+
@valueField ||= "id"
|
19
|
+
@displayField ||= "name"
|
20
|
+
@selectedItems = []
|
21
|
+
|
22
|
+
afterInitialize: (@options={})->
|
23
|
+
try
|
24
|
+
@configure_collection()
|
25
|
+
catch e
|
26
|
+
console.log "Error Configuring Collection", @, e.message
|
27
|
+
|
28
|
+
@collection.bind "reset", @populateCheckboxes
|
29
|
+
|
30
|
+
afterRender: ()->
|
31
|
+
if @collection?.models?.length > 0
|
32
|
+
@populateCheckboxes()
|
33
|
+
else
|
34
|
+
@collection.trigger("reset")
|
35
|
+
|
36
|
+
clickHandler: (event)->
|
37
|
+
checkbox = event.target
|
38
|
+
if checkbox.checked
|
39
|
+
@selectedItems.push(checkbox.value)
|
40
|
+
else
|
41
|
+
if @selectedItems.indexOf(checkbox.value) isnt -1
|
42
|
+
@selectedItems = _.without(@selectedItems, [checkbox.value])
|
43
|
+
|
44
|
+
@_updateModel()
|
45
|
+
|
46
|
+
populateCheckboxes: ()->
|
47
|
+
controls = $(@el).find('.controls')
|
48
|
+
controls.empty()
|
49
|
+
unless _.isUndefined(@getModel())
|
50
|
+
@selectedItems = @getModel().get(@name)
|
51
|
+
|
52
|
+
@collection.each (model)=>
|
53
|
+
value = model.get(@valueField)
|
54
|
+
label = model.get(@displayField)
|
55
|
+
input_id = _.uniqueId('field')
|
56
|
+
controls.append(Luca.templates["fields/checkbox_array_item"]({label: label, value: value, input_id: input_id, input_name: @input_name}))
|
57
|
+
@$("##{input_id}").attr("checked", "checked") unless @selectedItems.indexOf(value) is -1
|
58
|
+
|
59
|
+
$(@container).append(@$el)
|
60
|
+
|
61
|
+
_updateModel: ()->
|
62
|
+
attributes = {}
|
63
|
+
attributes[@name] = @selectedItems
|
64
|
+
@getModel().set(attributes)
|
@@ -1,21 +1,20 @@
|
|
1
|
-
Luca.fields.CheckboxField
|
2
|
-
form_field: true
|
1
|
+
_.component('Luca.fields.CheckboxField').extends('Luca.core.Field').with
|
3
2
|
|
4
3
|
events:
|
5
4
|
"change input" : "change_handler"
|
6
5
|
|
7
6
|
change_handler: (e)->
|
8
7
|
me = my = $(e.currentTarget)
|
9
|
-
|
8
|
+
|
10
9
|
@trigger "on:change", @, e
|
11
|
-
|
10
|
+
|
12
11
|
if me.checked is true
|
13
12
|
@trigger "checked"
|
14
13
|
else
|
15
14
|
@trigger "unchecked"
|
16
15
|
|
17
16
|
className: 'luca-ui-checkbox-field luca-ui-field'
|
18
|
-
|
17
|
+
|
19
18
|
template: 'fields/checkbox_field'
|
20
19
|
|
21
20
|
hooks: ["checked","unchecked"]
|
@@ -27,8 +26,8 @@ Luca.fields.CheckboxField = Luca.core.Field.extend
|
|
27
26
|
Luca.core.Field::initialize.apply @, arguments
|
28
27
|
|
29
28
|
afterInitialize: ()->
|
30
|
-
@input_id ||= _.uniqueId('field')
|
31
|
-
@input_name ||= @name
|
29
|
+
@input_id ||= _.uniqueId('field')
|
30
|
+
@input_name ||= @name
|
32
31
|
@input_value ||= 1
|
33
32
|
@label ||= @name
|
34
33
|
|
@@ -36,6 +35,4 @@ Luca.fields.CheckboxField = Luca.core.Field.extend
|
|
36
35
|
@input.attr('checked', checked)
|
37
36
|
|
38
37
|
getValue:()->
|
39
|
-
@input.attr('checked') is true
|
40
|
-
|
41
|
-
Luca.register "checkbox_field", "Luca.fields.CheckboxField"
|
38
|
+
@input.attr('checked') is true
|
@@ -1,5 +1,4 @@
|
|
1
|
-
Luca.fields.FileUploadField
|
2
|
-
form_field: true
|
1
|
+
_.component('Luca.fields.FileUploadField').extends('Luca.core.Field').with
|
3
2
|
|
4
3
|
template: 'fields/file_upload_field'
|
5
4
|
|
@@ -7,9 +6,7 @@ Luca.fields.FileUploadField = Luca.core.Field.extend
|
|
7
6
|
Luca.core.Field::initialize.apply @, arguments
|
8
7
|
|
9
8
|
afterInitialize: ()->
|
10
|
-
@input_id ||= _.uniqueId('field')
|
11
|
-
@input_name ||= @name
|
9
|
+
@input_id ||= _.uniqueId('field')
|
10
|
+
@input_name ||= @name
|
12
11
|
@label ||= @name
|
13
12
|
@helperText ||= ""
|
14
|
-
|
15
|
-
Luca.register "file_upload_field", "Luca.fields.FileUploadField"
|
@@ -1,5 +1,4 @@
|
|
1
|
-
Luca.fields.HiddenField
|
2
|
-
form_field: true
|
1
|
+
_.component('Luca.fields.HiddenField').extends('Luca.core.Field').with
|
3
2
|
|
4
3
|
template: 'fields/hidden_field'
|
5
4
|
|
@@ -7,12 +6,7 @@ Luca.fields.HiddenField = Luca.core.Field.extend
|
|
7
6
|
Luca.core.Field::initialize.apply @, arguments
|
8
7
|
|
9
8
|
afterInitialize: ()->
|
10
|
-
@input_id ||= _.uniqueId('field')
|
11
|
-
@input_name ||= @name
|
9
|
+
@input_id ||= _.uniqueId('field')
|
10
|
+
@input_name ||= @name
|
12
11
|
@input_value ||= @value
|
13
|
-
@label ||= @name
|
14
|
-
|
15
|
-
Luca.register "hidden_field", "Luca.fields.HiddenField"
|
16
|
-
|
17
|
-
|
18
|
-
|
12
|
+
@label ||= @name
|
@@ -1,9 +1,8 @@
|
|
1
|
-
Luca.fields.SelectField
|
2
|
-
form_field: true
|
1
|
+
_.component('Luca.fields.SelectField').extends('Luca.core.Field').with
|
3
2
|
|
4
3
|
events:
|
5
4
|
"change select" : "change_handler"
|
6
|
-
|
5
|
+
|
7
6
|
hooks:[
|
8
7
|
"after:select"
|
9
8
|
]
|
@@ -17,16 +16,16 @@ Luca.fields.SelectField = Luca.core.Field.extend
|
|
17
16
|
blankValue: ''
|
18
17
|
|
19
18
|
blankText: 'Select One'
|
20
|
-
|
19
|
+
|
21
20
|
initialize: (@options={})->
|
22
21
|
_.extend @, @options
|
23
22
|
_.extend @, Luca.modules.Deferrable
|
24
23
|
_.bindAll @, "change_handler", "populateOptions", "beforeFetch"
|
25
24
|
|
26
25
|
Luca.core.Field::initialize.apply @, arguments
|
27
|
-
|
28
|
-
@input_id ||= _.uniqueId('field')
|
29
|
-
@input_name ||= @name
|
26
|
+
|
27
|
+
@input_id ||= _.uniqueId('field')
|
28
|
+
@input_name ||= @name
|
30
29
|
@label ||= @name
|
31
30
|
@retainValue = true if _.isUndefined @retainValue
|
32
31
|
|
@@ -43,7 +42,7 @@ Luca.fields.SelectField = Luca.core.Field.extend
|
|
43
42
|
|
44
43
|
@collection.bind "before:fetch", @beforeFetch
|
45
44
|
@collection.bind "reset", @populateOptions
|
46
|
-
|
45
|
+
|
47
46
|
# if the select field is configured with a data property
|
48
47
|
# then parse that data into the proper format. either
|
49
48
|
# an array of objects with the valueField and displayField
|
@@ -57,7 +56,7 @@ Luca.fields.SelectField = Luca.core.Field.extend
|
|
57
56
|
|
58
57
|
hash
|
59
58
|
|
60
|
-
|
59
|
+
|
61
60
|
afterRender: ()->
|
62
61
|
@input = $('select', @el)
|
63
62
|
|
@@ -65,7 +64,7 @@ Luca.fields.SelectField = Luca.core.Field.extend
|
|
65
64
|
@populateOptions()
|
66
65
|
else
|
67
66
|
@collection.trigger("reset")
|
68
|
-
|
67
|
+
|
69
68
|
setValue: (value)->
|
70
69
|
@currentValue = value
|
71
70
|
Luca.core.Field::setValue.apply @, arguments
|
@@ -74,18 +73,18 @@ Luca.fields.SelectField = Luca.core.Field.extend
|
|
74
73
|
@resetOptions()
|
75
74
|
|
76
75
|
change_handler: (e)->
|
77
|
-
@trigger "on:change", @, e
|
78
|
-
|
76
|
+
@trigger "on:change", @, e
|
77
|
+
|
79
78
|
resetOptions: ()->
|
80
79
|
@input.html('')
|
81
|
-
|
80
|
+
|
82
81
|
if @includeBlank
|
83
82
|
@input.append("<option value='#{ @blankValue }'>#{ @blankText }</option>")
|
84
83
|
|
85
84
|
|
86
85
|
populateOptions: ()->
|
87
86
|
@resetOptions()
|
88
|
-
|
87
|
+
|
89
88
|
if @collection?.each?
|
90
89
|
@collection.each (model) =>
|
91
90
|
value = model.get( @valueField )
|
@@ -93,8 +92,6 @@ Luca.fields.SelectField = Luca.core.Field.extend
|
|
93
92
|
selected = "selected" if @selected and value is @selected
|
94
93
|
option = "<option #{ selected } value='#{ value }'>#{ display }</option>"
|
95
94
|
@input.append( option )
|
96
|
-
|
97
|
-
@trigger "after:populate:options", @
|
98
|
-
@setValue( @currentValue )
|
99
95
|
|
100
|
-
|
96
|
+
@trigger "after:populate:options", @
|
97
|
+
@setValue( @currentValue )
|
@@ -1,5 +1,4 @@
|
|
1
|
-
Luca.fields.TextAreaField
|
2
|
-
form_field: true
|
1
|
+
_.component('Luca.fields.TextAreaField').extends('Luca.core.Field').with
|
3
2
|
|
4
3
|
events:
|
5
4
|
"keydown input" : "keydown_handler"
|
@@ -16,8 +15,8 @@ Luca.fields.TextAreaField = Luca.core.Field.extend
|
|
16
15
|
|
17
16
|
Luca.core.Field::initialize.apply @, arguments
|
18
17
|
|
19
|
-
@input_id ||= _.uniqueId('field')
|
20
|
-
@input_name ||= @name
|
18
|
+
@input_id ||= _.uniqueId('field')
|
19
|
+
@input_name ||= @name
|
21
20
|
@label ||= @name
|
22
21
|
@input_class ||= @class
|
23
22
|
@inputStyles ||= "height:#{ @height };width:#{ @width }"
|
@@ -27,7 +26,7 @@ Luca.fields.TextAreaField = Luca.core.Field.extend
|
|
27
26
|
|
28
27
|
getValue: ()->
|
29
28
|
$( @field() ).val()
|
30
|
-
|
29
|
+
|
31
30
|
field: ()->
|
32
31
|
@input = $("textarea##{ @input_id }", @el)
|
33
32
|
|
@@ -38,6 +37,4 @@ Luca.fields.TextAreaField = Luca.core.Field.extend
|
|
38
37
|
me = my = $( e.currentTarget )
|
39
38
|
|
40
39
|
focus_handler: (e)->
|
41
|
-
me = my = $( e.currentTarget )
|
42
|
-
|
43
|
-
Luca.register "text_area_field", "Luca.fields.TextAreaField"
|
40
|
+
me = my = $( e.currentTarget )
|
@@ -1,6 +1,4 @@
|
|
1
|
-
Luca.fields.TextField
|
2
|
-
form_field: true
|
3
|
-
|
1
|
+
_.component('Luca.fields.TextField').extends('Luca.core.Field').with
|
4
2
|
events:
|
5
3
|
"keydown input" : "keydown_handler"
|
6
4
|
"blur input" : "blur_handler"
|
@@ -13,15 +11,15 @@ Luca.fields.TextField = Luca.core.Field.extend
|
|
13
11
|
_.bindAll @, "keydown_handler", "blur_handler", "focus_handler"
|
14
12
|
Luca.core.Field::initialize.apply @, arguments
|
15
13
|
|
16
|
-
@input_id ||= _.uniqueId('field')
|
17
|
-
@input_name ||= @name
|
14
|
+
@input_id ||= _.uniqueId('field')
|
15
|
+
@input_name ||= @name
|
18
16
|
@label ||= @name
|
19
17
|
@input_class ||= @class
|
20
18
|
|
21
19
|
if @prepend
|
22
|
-
@$el.addClass('input-prepend')
|
20
|
+
@$el.addClass('input-prepend')
|
23
21
|
@addOn = @prepend
|
24
|
-
|
22
|
+
|
25
23
|
if @append
|
26
24
|
@$el.addClass('input-append')
|
27
25
|
@addOn = @append
|
@@ -33,11 +31,6 @@ Luca.fields.TextField = Luca.core.Field.extend
|
|
33
31
|
|
34
32
|
focus_handler: (e)->
|
35
33
|
me = my = $( e.currentTarget )
|
36
|
-
|
37
|
-
change_handler: (e)->
|
38
|
-
@trigger "on:change", @, e
|
39
|
-
|
40
|
-
|
41
|
-
Luca.register "text_field", "Luca.fields.TextField"
|
42
|
-
|
43
34
|
|
35
|
+
change_handler: (e)->
|
36
|
+
@trigger "on:change", @, e
|
@@ -1,10 +1,8 @@
|
|
1
|
-
Luca.fields.TypeAheadField
|
2
|
-
form_field: true
|
3
|
-
|
1
|
+
_.component('Luca.fields.TypeAheadField').extends('Luca.fields.TextField').with
|
4
2
|
className: 'luca-ui-field'
|
5
3
|
|
6
4
|
afterInitialize: ()->
|
7
|
-
@input_id ||= _.uniqueId('field')
|
8
|
-
@input_name ||= @name
|
5
|
+
@input_id ||= _.uniqueId('field')
|
6
|
+
@input_name ||= @name
|
9
7
|
@label ||= @name
|
10
|
-
|
8
|
+
|
@@ -1,10 +1,12 @@
|
|
1
|
-
Luca.components.FormButtonToolbar
|
1
|
+
_.component('Luca.components.FormButtonToolbar')
|
2
|
+
.extends('Luca.components.Toolbar').with
|
3
|
+
|
2
4
|
className: 'luca-ui-form-toolbar form-actions'
|
3
5
|
|
4
6
|
position: 'bottom'
|
5
7
|
|
6
8
|
includeReset: false
|
7
|
-
|
9
|
+
|
8
10
|
render: ()->
|
9
11
|
$(@container).append(@el)
|
10
12
|
|
@@ -22,5 +24,3 @@ Luca.components.FormButtonToolbar = Luca.components.Toolbar.extend
|
|
22
24
|
ctype: 'button_field'
|
23
25
|
label: 'Reset'
|
24
26
|
class: 'btn reset-button'
|
25
|
-
|
26
|
-
Luca.register "form_button_toolbar", "Luca.components.FormButtonToolbar"
|