backboneAX 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/backboneAX/version.rb +1 -1
- data/lib/backboneAX.rb +0 -5
- data/vendor/assets/javascripts/bx/pool/{poolable.js.coffee → base.js.coffee} +1 -1
- data/vendor/assets/javascripts/bx/pool/poolable/array.js.coffee +1 -1
- data/vendor/assets/javascripts/bx/pool/poolable/collection.js.coffee +1 -1
- data/vendor/assets/javascripts/bx/pool/poolable/hash.js.coffee +1 -1
- data/vendor/assets/javascripts/bx/pool/poolable/model.js.coffee +1 -1
- data/vendor/assets/javascripts/bx/router/base.js.coffee +0 -15
- data/vendor/assets/javascripts/bx/view/base.js.coffee +192 -1
- data/vendor/assets/javascripts/bx.js.coffee +1 -47
- metadata +5 -9
- data/lib/backboneAX/bootstrap_view.rb +0 -185
- data/vendor/assets/javascripts/bx/pool/pool.js.coffee +0 -13
- data/vendor/assets/javascripts/bx/view/bx_form.js.coffee +0 -87
- data/vendor/assets/javascripts/bx/view/bx_template.js.coffee +0 -104
data/lib/backboneAX/version.rb
CHANGED
data/lib/backboneAX.rb
CHANGED
@@ -1,16 +1 @@
|
|
1
1
|
class Bx.Router.Base extends Backbone.Router
|
2
|
-
|
3
|
-
navigate: (path, triggerRoutes) ->
|
4
|
-
if !path? || path.length == 0
|
5
|
-
path = $.cookie("redirect")
|
6
|
-
|
7
|
-
if !path? || path.length == 0
|
8
|
-
path = '/'
|
9
|
-
|
10
|
-
super(path, triggerRoutes)
|
11
|
-
|
12
|
-
setRedirect: (path) ->
|
13
|
-
$.cookie("redirect", path, 1)
|
14
|
-
|
15
|
-
resetRedirect: () ->
|
16
|
-
$.cookie("redirect", "")
|
@@ -3,6 +3,7 @@ class Bx.View.Base extends Backbone.View
|
|
3
3
|
constructor: (options) ->
|
4
4
|
super(options)
|
5
5
|
@_views = []
|
6
|
+
|
6
7
|
# allow overriding of the "contructed" method
|
7
8
|
@constructed(options) if @constructed?
|
8
9
|
|
@@ -10,10 +11,11 @@ class Bx.View.Base extends Backbone.View
|
|
10
11
|
super()
|
11
12
|
_.each @_views, (view) ->
|
12
13
|
view.remove()
|
14
|
+
|
13
15
|
# allow overriding of the "removed" method
|
14
16
|
@removed() if @removed?
|
15
17
|
|
16
|
-
|
18
|
+
# CHILD VIEWS
|
17
19
|
createView: (klass, options = {}) ->
|
18
20
|
view = new klass(options)
|
19
21
|
@_views.push(view)
|
@@ -24,3 +26,192 @@ class Bx.View.Base extends Backbone.View
|
|
24
26
|
@_views = _.reject @_views, (object) ->
|
25
27
|
object == view
|
26
28
|
return null
|
29
|
+
|
30
|
+
# SET TEMPLATE VALUES
|
31
|
+
setTemplate: (model, $scope = null) ->
|
32
|
+
fields = if $scope? then $("*[data-setter]", $scope) else @$("*[data-setter]")
|
33
|
+
_.each fields, (field) =>
|
34
|
+
$field = $(field)
|
35
|
+
setters= $field.attr("data-setter").split(";");
|
36
|
+
_.each setters, (setter) =>
|
37
|
+
setdata = setter.split(',')
|
38
|
+
setdata.push("text") if (setdata.length == 1 )
|
39
|
+
switch $.trim(setdata[1])
|
40
|
+
when "id"
|
41
|
+
@setTemplateId($.trim(setdata[0]), model, $scope, $field)
|
42
|
+
when "text"
|
43
|
+
@setTemplateText($.trim(setdata[0]), model, $scope, $field)
|
44
|
+
when "date"
|
45
|
+
@setTemplateDate($.trim(setdata[0]), model, $scope, $field)
|
46
|
+
when "bool"
|
47
|
+
@setTemplateBool($.trim(setdata[0]), model, $scope, $field)
|
48
|
+
when "array"
|
49
|
+
@setTemplateArray($.trim(setdata[0]), model, $scope, $field)
|
50
|
+
when "show"
|
51
|
+
@setTemplateShow($.trim(setdata[0]), model, $scope, $field)
|
52
|
+
when "hide"
|
53
|
+
@setTemplateHide($.trim(setdata[0]), model, $scope, $field)
|
54
|
+
when "img"
|
55
|
+
@setTemplateImg($.trim(setdata[0]), model, $scope, $field)
|
56
|
+
when "href"
|
57
|
+
@setTemplateHref($.trim(setdata[0]), model, $scope, $field)
|
58
|
+
else
|
59
|
+
@setTemplateText($.trim(setdata[0]), model, $scope, $field)
|
60
|
+
|
61
|
+
setTemplateId: (fieldName, model, $scope, $field) ->
|
62
|
+
value = if @_isModel(model) then model.get(fieldName) else model
|
63
|
+
field = if $field? then $field else if $scope? then $("##{fieldName}", $scope) else @$("##{fieldName}")
|
64
|
+
|
65
|
+
field.attr(id, value)
|
66
|
+
|
67
|
+
setTemplateText: (fieldName, model, $scope, $field) ->
|
68
|
+
value = if @_isModel(model) then model.get(fieldName) else model
|
69
|
+
field = if $field? then $field else if $scope? then $("##{fieldName}", $scope) else @$("##{fieldName}")
|
70
|
+
|
71
|
+
field.html(value)
|
72
|
+
|
73
|
+
setTemplateDate: (fieldName, model, $scope, $field) ->
|
74
|
+
value = if @_isModel(model) then model.getDate(fieldName) else model
|
75
|
+
field = if $field? then $field else if $scope? then $("##{fieldName}", $scope) else @$("##{fieldName}")
|
76
|
+
|
77
|
+
field.html(value)
|
78
|
+
|
79
|
+
setTemplateBool: (fieldName, model, $scope, $field) ->
|
80
|
+
value = if @_isModel(model) then model.get(fieldName) else model
|
81
|
+
field = if $field? then $field else if $scope? then $("##{fieldName}", $scope) else @$("##{fieldName}")
|
82
|
+
|
83
|
+
if value == true
|
84
|
+
field.addClass('truthy').removeClass('falsy')
|
85
|
+
else
|
86
|
+
field.addClass('falsy').removeClass('truthy')
|
87
|
+
|
88
|
+
setTemplateArray: (fieldName, model, $scope, $field) ->
|
89
|
+
values = if @_isModel(model) then model.get(fieldName) else model
|
90
|
+
field = if $field? then $field else if $scope? then $("##{fieldName}", $scope) else @$("##{fieldName}")
|
91
|
+
|
92
|
+
result = ""
|
93
|
+
if values?
|
94
|
+
_.each values, (value)->
|
95
|
+
if result.length > 0 then result += ", "
|
96
|
+
result += value
|
97
|
+
|
98
|
+
field.html(result)
|
99
|
+
|
100
|
+
setTemplateShow: (fieldName, model, $scope, $field) ->
|
101
|
+
value = if @_isModel(model) then model.get(fieldName) else model
|
102
|
+
field = if $field? then $field else if $scope? then $("##{fieldName}", $scope) else @$("##{fieldName}")
|
103
|
+
|
104
|
+
field.toggle(value == true)
|
105
|
+
if value == true
|
106
|
+
field.removeClass('hide')
|
107
|
+
else
|
108
|
+
field.addClass('hide')
|
109
|
+
|
110
|
+
setTemplateHide: (fieldName, model, $scope, $field) ->
|
111
|
+
value = if @_isModel(model) then model.get(fieldName) else model
|
112
|
+
field = if $field? then $field else if $scope? then $("##{fieldName}", $scope) else @$("##{fieldName}")
|
113
|
+
|
114
|
+
field.toggle(value != true)
|
115
|
+
if value == true
|
116
|
+
field.addClass('hide')
|
117
|
+
else
|
118
|
+
field.removeClass('hide')
|
119
|
+
|
120
|
+
setTemplateImg: (fieldName, model, $scope, $field) ->
|
121
|
+
value = if @_isModel(model) then model.get(fieldName) else model
|
122
|
+
field = if $field? then $field else if $scope? then $("##{fieldName}", $scope) else @$("##{fieldName}")
|
123
|
+
|
124
|
+
field.attr('src', value)
|
125
|
+
|
126
|
+
setTemplateHref: (fieldName, model, $scope, $field) ->
|
127
|
+
value = if @_isModel(model) then model.get('id') else model
|
128
|
+
field = if $field? then $field else if $scope? then $("##{fieldName}", $scope) else @$("##{fieldName}")
|
129
|
+
|
130
|
+
field.attr('href', "##{value}")
|
131
|
+
|
132
|
+
# SET & GET FORM FIELDS
|
133
|
+
formSetText: (fieldName, model) ->
|
134
|
+
value = if @_isModel(model) then model.get(fieldName) else model
|
135
|
+
field = @$("##{fieldName}")
|
136
|
+
|
137
|
+
field.attr('value', value)
|
138
|
+
|
139
|
+
formGetText: (fieldName, model) ->
|
140
|
+
field = @$("##{fieldName}")
|
141
|
+
value = field.attr('value')
|
142
|
+
|
143
|
+
if model?
|
144
|
+
options = {}
|
145
|
+
options[fieldName] = value
|
146
|
+
model.set(options, {silent: true})
|
147
|
+
return value
|
148
|
+
|
149
|
+
formSetDate: (fieldName, model) ->
|
150
|
+
value = if @_isModel(model) then model.getDate(fieldName) else model
|
151
|
+
field = @$("##{fieldName}")
|
152
|
+
|
153
|
+
field.attr('value', value)
|
154
|
+
|
155
|
+
formSetSelect: (fieldName, model) ->
|
156
|
+
value = if @_isModel(model) then model.get(fieldName) else model
|
157
|
+
field = @$("##{fieldName}")
|
158
|
+
|
159
|
+
field.find("option").removeAttr('selected')
|
160
|
+
field.find("option[value='#{value}']").attr('selected', true)
|
161
|
+
|
162
|
+
formGetSelect: (fieldName, model) ->
|
163
|
+
field = @$("##{fieldName}")
|
164
|
+
value = field.find('option:selected').val()
|
165
|
+
|
166
|
+
if model?
|
167
|
+
options = {}
|
168
|
+
options[fieldName] = value
|
169
|
+
model.set(options, {silent: true})
|
170
|
+
return value
|
171
|
+
|
172
|
+
formSetSelectMultiple: (fieldName, model) ->
|
173
|
+
values = if @_isModel(model) then model.get(fieldName) else model
|
174
|
+
field = @$("##{fieldName}")
|
175
|
+
|
176
|
+
field.find("option").removeAttr('selected')
|
177
|
+
if values?
|
178
|
+
_.each values, (value) ->
|
179
|
+
field.find("option[value='#{value}']").attr('selected', true)
|
180
|
+
|
181
|
+
formGetSelectMultiple: (fieldName, model) ->
|
182
|
+
field = @$("##{fieldName}")
|
183
|
+
|
184
|
+
values = []
|
185
|
+
_.each field.find('option'), (option) ->
|
186
|
+
if $(option).is(':selected')
|
187
|
+
values.push($(option).val())
|
188
|
+
|
189
|
+
if model?
|
190
|
+
options = {}
|
191
|
+
options[fieldName] = values
|
192
|
+
model.set(options, {silent: true})
|
193
|
+
return values
|
194
|
+
|
195
|
+
formSetCheckbox: (fieldName, model) ->
|
196
|
+
value = if @_isModel(model) then model.get(fieldName) else model
|
197
|
+
field = @$("##{fieldName}")
|
198
|
+
|
199
|
+
if value == true
|
200
|
+
field.attr('checked', true)
|
201
|
+
else
|
202
|
+
field.removeAttr('checked')
|
203
|
+
|
204
|
+
formGetCheckbox: (fieldName, model) ->
|
205
|
+
field = @$("##{fieldName}")
|
206
|
+
value = field.is(':checked')
|
207
|
+
|
208
|
+
if model?
|
209
|
+
options = {}
|
210
|
+
options[fieldName] = value
|
211
|
+
model.set(options, {silent: true})
|
212
|
+
return value
|
213
|
+
|
214
|
+
# MODEL OR VALUE
|
215
|
+
_isModel: (model) ->
|
216
|
+
model? && typeof(model) == 'object'
|
217
|
+
|
@@ -2,54 +2,8 @@
|
|
2
2
|
#= require_tree ./bx
|
3
3
|
|
4
4
|
window.Bx =
|
5
|
+
Pool: {}
|
5
6
|
Model: {}
|
6
7
|
Collection: {}
|
7
8
|
Router: {}
|
8
9
|
View: {}
|
9
|
-
|
10
|
-
Bx.manageErrors = () ->
|
11
|
-
$(document).ajaxError (event, response) ->
|
12
|
-
if (response.status == 200)
|
13
|
-
# ignore it
|
14
|
-
else if (response.status == 401)
|
15
|
-
errorResponse = $.parseJSON(response.responseText)
|
16
|
-
error = errorResponse.error
|
17
|
-
Bx.ModelPool.get('alert').set
|
18
|
-
importance: "error"
|
19
|
-
header: "Login Required"
|
20
|
-
message: error ? "Invalid Login Details"
|
21
|
-
fields: {
|
22
|
-
email: ""
|
23
|
-
password: ""
|
24
|
-
}
|
25
|
-
window.router.navigate('/login', true)
|
26
|
-
|
27
|
-
else if (response.status == 403)
|
28
|
-
errorResponse = $.parseJSON(response.responseText)
|
29
|
-
error = errorResponse.error
|
30
|
-
Bx.ModelPool.get('alert').set
|
31
|
-
importance: "error"
|
32
|
-
header: "Access Denied"
|
33
|
-
message: error ? ""
|
34
|
-
fields: {
|
35
|
-
email: ""
|
36
|
-
password: ""
|
37
|
-
}
|
38
|
-
window.router.navigate('/', true)
|
39
|
-
|
40
|
-
else if (response.status == 404)
|
41
|
-
Bx.ModelPool.get('alert').set
|
42
|
-
importance: "error"
|
43
|
-
header: "Server Error"
|
44
|
-
# document.write(response.responseText)
|
45
|
-
|
46
|
-
else if (response.status == 302)
|
47
|
-
redirectResponse = $.parseJSON(response.responseText)
|
48
|
-
window.router.navigate(redirectResponse.redirect, true)
|
49
|
-
|
50
|
-
else if (response.status != 500)
|
51
|
-
error = $.parseJSON(response.responseText)
|
52
|
-
Bx.ModelPool.get('alert').set(error)
|
53
|
-
|
54
|
-
else if (response.status == 500)
|
55
|
-
document.write(response.responseText)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: backboneAX
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-02
|
12
|
+
date: 2012-03-02 00:00:00.000000000Z
|
13
13
|
dependencies: []
|
14
14
|
description: backbone Application Extensions for cleaner application development
|
15
15
|
email:
|
@@ -23,7 +23,6 @@ files:
|
|
23
23
|
- Rakefile
|
24
24
|
- backboneAX.gemspec
|
25
25
|
- lib/backboneAX.rb
|
26
|
-
- lib/backboneAX/bootstrap_view.rb
|
27
26
|
- lib/backboneAX/engine.rb
|
28
27
|
- lib/backboneAX/version.rb
|
29
28
|
- vendor/assets/javascripts/bx.js.coffee
|
@@ -31,16 +30,13 @@ files:
|
|
31
30
|
- vendor/assets/javascripts/bx/collection/paginate.js.coffee
|
32
31
|
- vendor/assets/javascripts/bx/lib/date.js.coffee
|
33
32
|
- vendor/assets/javascripts/bx/model/base.js.coffee
|
34
|
-
- vendor/assets/javascripts/bx/pool/
|
35
|
-
- vendor/assets/javascripts/bx/pool/poolable.js.coffee
|
33
|
+
- vendor/assets/javascripts/bx/pool/base.js.coffee
|
36
34
|
- vendor/assets/javascripts/bx/pool/poolable/array.js.coffee
|
37
35
|
- vendor/assets/javascripts/bx/pool/poolable/collection.js.coffee
|
38
36
|
- vendor/assets/javascripts/bx/pool/poolable/hash.js.coffee
|
39
37
|
- vendor/assets/javascripts/bx/pool/poolable/model.js.coffee
|
40
38
|
- vendor/assets/javascripts/bx/router/base.js.coffee
|
41
39
|
- vendor/assets/javascripts/bx/view/base.js.coffee
|
42
|
-
- vendor/assets/javascripts/bx/view/bx_form.js.coffee
|
43
|
-
- vendor/assets/javascripts/bx/view/bx_template.js.coffee
|
44
40
|
homepage: https://github.com/dougochris/backboneAX
|
45
41
|
licenses: []
|
46
42
|
post_install_message:
|
@@ -55,7 +51,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
55
51
|
version: '0'
|
56
52
|
segments:
|
57
53
|
- 0
|
58
|
-
hash:
|
54
|
+
hash: -2919583512465015939
|
59
55
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
60
56
|
none: false
|
61
57
|
requirements:
|
@@ -64,7 +60,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
64
60
|
version: '0'
|
65
61
|
segments:
|
66
62
|
- 0
|
67
|
-
hash:
|
63
|
+
hash: -2919583512465015939
|
68
64
|
requirements: []
|
69
65
|
rubyforge_project: backboneAX
|
70
66
|
rubygems_version: 1.8.10
|
@@ -1,185 +0,0 @@
|
|
1
|
-
module BackboneAX
|
2
|
-
module BootstrapView
|
3
|
-
|
4
|
-
def bx_breadcrumbs(links, button = nil)
|
5
|
-
content_tag(:ul, '', {class: 'breadcrumb'}) do
|
6
|
-
out = []
|
7
|
-
links.each_with_index do |value, index|
|
8
|
-
if index < links.length - 1
|
9
|
-
out << content_tag(:li) do
|
10
|
-
safe_join [content_tag(:a, value[1], {id: value[0]}), content_tag(:span, '/', {class: 'divider'})]
|
11
|
-
end
|
12
|
-
else
|
13
|
-
out << content_tag(:li, value[1])
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
unless button.nil?
|
18
|
-
out << content_tag(:a, button[:title], button.except(:title).reverse_merge({class: ['btn', 'btn-success']}))
|
19
|
-
end
|
20
|
-
|
21
|
-
out << content_tag(:div, '', {class: 'clear'})
|
22
|
-
|
23
|
-
safe_join out
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
#FORMS
|
28
|
-
|
29
|
-
def bx_form_horontal(title = nil, form_id = nil, &block)
|
30
|
-
capture_haml do
|
31
|
-
haml_tag(:form, {class: 'form-horizontal', id: form_id}) do
|
32
|
-
haml_tag(:fieldset) do
|
33
|
-
haml_tag(:legend, title) unless title.nil?
|
34
|
-
yield() if block_given?
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
def bx_form_inline(title = nil, form_id = nil, &block)
|
41
|
-
capture_haml do
|
42
|
-
haml_tag(:form, {class: 'form-inline', id: form_id}) do
|
43
|
-
haml_tag(:fieldset) do
|
44
|
-
haml_tag(:legend, title) unless title.nil?
|
45
|
-
yield() if block_given?
|
46
|
-
end
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
#FIELDS
|
52
|
-
|
53
|
-
def bx_field_hidden(field_id)
|
54
|
-
capture_haml do
|
55
|
-
haml_tag(:div, {class: 'hide'}) do
|
56
|
-
haml_tag(:input, {type: 'hidden', id: field_id})
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
def bx_field_text(field_id, options = {})
|
62
|
-
capture_haml do
|
63
|
-
haml_tag(:input, options.slice(:class).merge({id: field_id}))
|
64
|
-
end
|
65
|
-
end
|
66
|
-
|
67
|
-
def bx_field_textarea(field_id, options = {})
|
68
|
-
capture_haml do
|
69
|
-
haml_tag(:textarea, options.slice(:class, :rows).merge({id: field_id}))
|
70
|
-
end
|
71
|
-
end
|
72
|
-
|
73
|
-
def bx_field_file(field_id, options = {})
|
74
|
-
capture_haml do
|
75
|
-
haml_tag(:input, options.slice(:class, :rows).merge({id: field_id, type: 'file'}))
|
76
|
-
end
|
77
|
-
end
|
78
|
-
|
79
|
-
def bx_field_select(field_id, items ={}, options = {})
|
80
|
-
capture_haml do
|
81
|
-
haml_tag(:select, options.slice(:class, :multiple).merge({id: field_id})) do
|
82
|
-
items.each do |key, value|
|
83
|
-
haml_tag(:option, value, {value: key})
|
84
|
-
end
|
85
|
-
end
|
86
|
-
end
|
87
|
-
end
|
88
|
-
|
89
|
-
#BUTTONS
|
90
|
-
def bx_btn(title, field_id, options = {})
|
91
|
-
capture_haml do
|
92
|
-
haml_tag(:a, {class: ['btn', options[:class]], id: field_id}) do
|
93
|
-
haml_tag(:i, '', {class: options[:icon]}) if options[:icon]
|
94
|
-
haml_concat(title)
|
95
|
-
end
|
96
|
-
end
|
97
|
-
end
|
98
|
-
|
99
|
-
def bx_btn_primary(title, field_id, options = {})
|
100
|
-
bx_btn(title, field_id, options.merge(class: 'btn-primary'))
|
101
|
-
end
|
102
|
-
|
103
|
-
def bx_btn_info(title, field_id, options = {})
|
104
|
-
bx_btn(title, field_id, options.merge(class: 'btn-info'))
|
105
|
-
end
|
106
|
-
|
107
|
-
def bx_btn_success(title, field_id, options = {})
|
108
|
-
bx_btn(title, field_id, options.merge(class: 'btn-success'))
|
109
|
-
end
|
110
|
-
|
111
|
-
def bx_btn_warning(title, field_id, options = {})
|
112
|
-
bx_btn(title, field_id, options.merge(class: 'btn-warning'))
|
113
|
-
end
|
114
|
-
|
115
|
-
def bx_btn_danger(title, field_id, options = {})
|
116
|
-
bx_btn(title, field_id, options.merge(class: 'btn-danger'))
|
117
|
-
end
|
118
|
-
|
119
|
-
def bx_btn_cancel(field_id = :cancel)
|
120
|
-
bx_btn('Cancel', field_id)
|
121
|
-
end
|
122
|
-
|
123
|
-
def bx_btn_save(field_id = :save)
|
124
|
-
bx_btn('Cancel', field_id, {class: 'btn-primary'})
|
125
|
-
end
|
126
|
-
|
127
|
-
def bx_btn_dropdown(title, options = {}, &block)
|
128
|
-
capture_haml do
|
129
|
-
haml_tag(:div, {class: 'btn-group'}) do
|
130
|
-
haml_tag(:a, {class: ['btn', 'dropdown-toggle', options[:class]], 'data-toggle' => 'dropdown'}) do
|
131
|
-
haml_tag(:i, '', {class: options[:icon]}) if options[:icon]
|
132
|
-
haml_concat(title)
|
133
|
-
haml_tag(:span, '', {class: :caret})
|
134
|
-
end
|
135
|
-
haml_tag(:ul, {class: 'dropdown-menu'}) do
|
136
|
-
yield if block_given?
|
137
|
-
end
|
138
|
-
end
|
139
|
-
end
|
140
|
-
end
|
141
|
-
|
142
|
-
#CONTROL_GROUP_FIELDS
|
143
|
-
def bx_cg_text(label, field_id, options = {})
|
144
|
-
bx_cg_group(label, field_id, options) do
|
145
|
-
haml_tag(:input, options.slice(:class).merge({id: field_id}))
|
146
|
-
end
|
147
|
-
end
|
148
|
-
|
149
|
-
def bx_cg_textarea(label, field_id, options = {})
|
150
|
-
bx_cg_group(label, field_id, options) do
|
151
|
-
haml_tag(:textarea, options.slice(:class, :rows).merge({id: field_id}))
|
152
|
-
end
|
153
|
-
end
|
154
|
-
|
155
|
-
def bx_cg_file(label, field_id, options = {})
|
156
|
-
bx_cg_group(label, field_id, options) do
|
157
|
-
haml_tag(:input, options.slice(:class, :rows).merge({id: field_id, type: 'file'}))
|
158
|
-
end
|
159
|
-
end
|
160
|
-
|
161
|
-
def bx_cg_select(label, field_id, items ={}, options = {})
|
162
|
-
bx_cg_group(label, field_id, options) do
|
163
|
-
haml_tag(:select, options.slice(:class, :multiple).merge({id: field_id})) do
|
164
|
-
items.each do |key, value|
|
165
|
-
haml_tag(:option, value, {value: key})
|
166
|
-
end
|
167
|
-
end
|
168
|
-
end
|
169
|
-
end
|
170
|
-
|
171
|
-
protected
|
172
|
-
def bx_cg_group(label, field_id, options = {}, &block)
|
173
|
-
capture_haml do
|
174
|
-
haml_tag(:div, {class: 'control-group'}) do
|
175
|
-
haml_tag(:label, label, {class: 'control-label', for: field_id})
|
176
|
-
haml_tag(:div, {class: 'controls'}) do
|
177
|
-
yield() if block_given?
|
178
|
-
haml_tag(:span, options[:help], {class: 'help-inline'}) unless options[:help].blank?
|
179
|
-
end
|
180
|
-
end
|
181
|
-
end
|
182
|
-
end
|
183
|
-
|
184
|
-
end
|
185
|
-
end
|
@@ -1,13 +0,0 @@
|
|
1
|
-
class Bx.Pool
|
2
|
-
@fill: (datasets)->
|
3
|
-
_.each datasets, (e) ->
|
4
|
-
if e.dataset && e.dataset.model
|
5
|
-
Bx.ModelPool.get(e.dataset.model).set(JSON.parse($(e).text()), {silent: true})
|
6
|
-
else if e.dataset && e.dataset.collection
|
7
|
-
Gec.CollectionPool.get(e.dataset.collection).reset(JSON.parse($(e).text()))
|
8
|
-
else if e.dataset && e.dataset.array
|
9
|
-
data = Bx.ArrayPool.get(e.dataset.array)
|
10
|
-
$.extend(data, JSON.parse($(e).text()))
|
11
|
-
else if e.dataset && e.dataset.hash
|
12
|
-
data = Bx.HashPool.get(e.dataset.hash)
|
13
|
-
$.extend(data, JSON.parse($(e).text()))
|
@@ -1,87 +0,0 @@
|
|
1
|
-
_.extend Backbone.View.prototype,
|
2
|
-
|
3
|
-
formSetText: (fieldName, model) ->
|
4
|
-
value = if @_isModel(model) then model.get(fieldName) else model
|
5
|
-
field = @$("##{fieldName}")
|
6
|
-
|
7
|
-
field.attr('value', value)
|
8
|
-
|
9
|
-
formGetText: (fieldName, model) ->
|
10
|
-
field = @$("##{fieldName}")
|
11
|
-
value = field.attr('value')
|
12
|
-
|
13
|
-
if model?
|
14
|
-
options = {}
|
15
|
-
options[fieldName] = value
|
16
|
-
model.set(options, {silent: true})
|
17
|
-
return value
|
18
|
-
|
19
|
-
formSetDate: (fieldName, model) ->
|
20
|
-
value = if @_isModel(model) then model.getDate(fieldName) else model
|
21
|
-
field = @$("##{fieldName}")
|
22
|
-
|
23
|
-
field.attr('value', value)
|
24
|
-
|
25
|
-
formSetSelect: (fieldName, model) ->
|
26
|
-
value = if @_isModel(model) then model.get(fieldName) else model
|
27
|
-
field = @$("##{fieldName}")
|
28
|
-
|
29
|
-
field.find("option").removeAttr('selected')
|
30
|
-
field.find("option[value='#{value}']").attr('selected', true)
|
31
|
-
|
32
|
-
formGetSelect: (fieldName, model) ->
|
33
|
-
field = @$("##{fieldName}")
|
34
|
-
value = field.find('option:selected').val()
|
35
|
-
|
36
|
-
if model?
|
37
|
-
options = {}
|
38
|
-
options[fieldName] = value
|
39
|
-
model.set(options, {silent: true})
|
40
|
-
return value
|
41
|
-
|
42
|
-
formSetSelectMultiple: (fieldName, model) ->
|
43
|
-
values = if @_isModel(model) then model.get(fieldName) else model
|
44
|
-
field = @$("##{fieldName}")
|
45
|
-
|
46
|
-
field.find("option").removeAttr('selected')
|
47
|
-
if values?
|
48
|
-
_.each values, (value) ->
|
49
|
-
field.find("option[value='#{value}']").attr('selected', true)
|
50
|
-
|
51
|
-
formGetSelectMultiple: (fieldName, model) ->
|
52
|
-
field = @$("##{fieldName}")
|
53
|
-
|
54
|
-
values = []
|
55
|
-
_.each field.find('option'), (option) ->
|
56
|
-
if $(option).is(':selected')
|
57
|
-
values.push($(option).val())
|
58
|
-
|
59
|
-
if model?
|
60
|
-
options = {}
|
61
|
-
options[fieldName] = values
|
62
|
-
model.set(options, {silent: true})
|
63
|
-
return values
|
64
|
-
|
65
|
-
formSetCheckbox: (fieldName, model) ->
|
66
|
-
value = if @_isModel(model) then model.get(fieldName) else model
|
67
|
-
field = @$("##{fieldName}")
|
68
|
-
|
69
|
-
if value == true
|
70
|
-
field.attr('checked', true)
|
71
|
-
else
|
72
|
-
field.removeAttr('checked')
|
73
|
-
|
74
|
-
formGetCheckbox: (fieldName, model) ->
|
75
|
-
field = @$("##{fieldName}")
|
76
|
-
value = field.is(':checked')
|
77
|
-
|
78
|
-
if model?
|
79
|
-
options = {}
|
80
|
-
options[fieldName] = value
|
81
|
-
model.set(options, {silent: true})
|
82
|
-
return value
|
83
|
-
|
84
|
-
#private methods
|
85
|
-
_isModel= (model) ->
|
86
|
-
model? && typeof(model) == 'object'
|
87
|
-
|
@@ -1,104 +0,0 @@
|
|
1
|
-
_.extend Backbone.View.prototype,
|
2
|
-
_isModel: (model) ->
|
3
|
-
model? && typeof(model) == 'object'
|
4
|
-
|
5
|
-
setTemplate: (model, $scope = null) ->
|
6
|
-
fields = if $scope? then $("*[data-setter]", $scope) else @$("*[data-setter]")
|
7
|
-
_.each fields, (field) =>
|
8
|
-
$field = $(field)
|
9
|
-
setters= $field.attr("data-setter").split(";");
|
10
|
-
_.each setters, (setter) =>
|
11
|
-
setdata = setter.split(',')
|
12
|
-
setdata.push("text") if (setdata.length == 1 )
|
13
|
-
switch $.trim(setdata[1])
|
14
|
-
when "id"
|
15
|
-
@setTemplateId($.trim(setdata[0]), model, $scope, $field)
|
16
|
-
when "text"
|
17
|
-
@setTemplateText($.trim(setdata[0]), model, $scope, $field)
|
18
|
-
when "date"
|
19
|
-
@setTemplateDate($.trim(setdata[0]), model, $scope, $field)
|
20
|
-
when "bool"
|
21
|
-
@setTemplateBool($.trim(setdata[0]), model, $scope, $field)
|
22
|
-
when "array"
|
23
|
-
@setTemplateArray($.trim(setdata[0]), model, $scope, $field)
|
24
|
-
when "show"
|
25
|
-
@setTemplateShow($.trim(setdata[0]), model, $scope, $field)
|
26
|
-
when "hide"
|
27
|
-
@setTemplateHide($.trim(setdata[0]), model, $scope, $field)
|
28
|
-
when "img"
|
29
|
-
@setTemplateImg($.trim(setdata[0]), model, $scope, $field)
|
30
|
-
when "href"
|
31
|
-
@setTemplateHref($.trim(setdata[0]), model, $scope, $field)
|
32
|
-
else
|
33
|
-
@setTemplateText($.trim(setdata[0]), model, $scope, $field)
|
34
|
-
|
35
|
-
setTemplateId: (fieldName, model, $scope, $field) ->
|
36
|
-
value = if @_isModel(model) then model.get(fieldName) else model
|
37
|
-
field = if $field? then $field else if $scope? then $("##{fieldName}", $scope) else @$("##{fieldName}")
|
38
|
-
|
39
|
-
field.attr(id, value)
|
40
|
-
|
41
|
-
setTemplateText: (fieldName, model, $scope, $field) ->
|
42
|
-
value = if @_isModel(model) then model.get(fieldName) else model
|
43
|
-
field = if $field? then $field else if $scope? then $("##{fieldName}", $scope) else @$("##{fieldName}")
|
44
|
-
|
45
|
-
field.html(value)
|
46
|
-
|
47
|
-
setTemplateDate: (fieldName, model, $scope, $field) ->
|
48
|
-
value = if @_isModel(model) then model.getDate(fieldName) else model
|
49
|
-
field = if $field? then $field else if $scope? then $("##{fieldName}", $scope) else @$("##{fieldName}")
|
50
|
-
|
51
|
-
field.html(value)
|
52
|
-
|
53
|
-
setTemplateBool: (fieldName, model, $scope, $field) ->
|
54
|
-
value = if @_isModel(model) then model.get(fieldName) else model
|
55
|
-
field = if $field? then $field else if $scope? then $("##{fieldName}", $scope) else @$("##{fieldName}")
|
56
|
-
|
57
|
-
if value == true
|
58
|
-
field.addClass('truthy').removeClass('falsy')
|
59
|
-
else
|
60
|
-
field.addClass('falsy').removeClass('truthy')
|
61
|
-
|
62
|
-
setTemplateArray: (fieldName, model, $scope, $field) ->
|
63
|
-
values = if @_isModel(model) then model.get(fieldName) else model
|
64
|
-
field = if $field? then $field else if $scope? then $("##{fieldName}", $scope) else @$("##{fieldName}")
|
65
|
-
|
66
|
-
result = ""
|
67
|
-
if values?
|
68
|
-
_.each values, (value)->
|
69
|
-
if result.length > 0 then result += ", "
|
70
|
-
result += value
|
71
|
-
|
72
|
-
field.html(result)
|
73
|
-
|
74
|
-
setTemplateShow: (fieldName, model, $scope, $field) ->
|
75
|
-
value = if @_isModel(model) then model.get(fieldName) else model
|
76
|
-
field = if $field? then $field else if $scope? then $("##{fieldName}", $scope) else @$("##{fieldName}")
|
77
|
-
|
78
|
-
field.toggle(value == true)
|
79
|
-
if value == true
|
80
|
-
field.removeClass('hide')
|
81
|
-
else
|
82
|
-
field.addClass('hide')
|
83
|
-
|
84
|
-
setTemplateHide: (fieldName, model, $scope, $field) ->
|
85
|
-
value = if @_isModel(model) then model.get(fieldName) else model
|
86
|
-
field = if $field? then $field else if $scope? then $("##{fieldName}", $scope) else @$("##{fieldName}")
|
87
|
-
|
88
|
-
field.toggle(value != true)
|
89
|
-
if value == true
|
90
|
-
field.addClass('hide')
|
91
|
-
else
|
92
|
-
field.removeClass('hide')
|
93
|
-
|
94
|
-
setTemplateImg: (fieldName, model, $scope, $field) ->
|
95
|
-
value = if @_isModel(model) then model.get(fieldName) else model
|
96
|
-
field = if $field? then $field else if $scope? then $("##{fieldName}", $scope) else @$("##{fieldName}")
|
97
|
-
|
98
|
-
field.attr('src', value)
|
99
|
-
|
100
|
-
setTemplateHref: (fieldName, model, $scope, $field) ->
|
101
|
-
value = if @_isModel(model) then model.get('id') else model
|
102
|
-
field = if $field? then $field else if $scope? then $("##{fieldName}", $scope) else @$("##{fieldName}")
|
103
|
-
|
104
|
-
field.attr('href', "##{value}")
|