engine2 1.0.4 → 1.0.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/Gemfile +0 -0
- data/Rakefile +4 -4
- data/app/{engine2actions.coffee → actions.coffee} +341 -215
- data/app/app.coffee +0 -0
- data/app/app.css +17 -0
- data/app/engine2.coffee +158 -208
- data/app/modal.coffee +138 -0
- data/bower.json +4 -2
- data/conf/message.yaml +5 -0
- data/conf/message_pl.yaml +7 -2
- data/config.coffee +24 -12
- data/engine2.gemspec +8 -8
- data/lib/engine2.rb +12 -10
- data/lib/engine2/action.rb +1338 -133
- data/lib/engine2/action/array.rb +189 -0
- data/lib/engine2/{meta/decode_meta.rb → action/decode.rb} +52 -21
- data/lib/engine2/action/delete.rb +64 -0
- data/lib/engine2/action/form.rb +16 -0
- data/lib/engine2/{meta/infra_meta.rb → action/infra.rb} +123 -89
- data/lib/engine2/action/link.rb +117 -0
- data/lib/engine2/action/list.rb +333 -0
- data/lib/engine2/action/save.rb +28 -0
- data/lib/engine2/action/view.rb +8 -0
- data/lib/engine2/action_node.rb +221 -0
- data/lib/engine2/core.rb +175 -87
- data/lib/engine2/handler.rb +14 -13
- data/lib/engine2/model.rb +85 -43
- data/lib/engine2/models/Files.rb +4 -1
- data/lib/engine2/models/UserInfo.rb +6 -3
- data/lib/engine2/post_bootstrap.rb +4 -3
- data/lib/engine2/pre_bootstrap.rb +10 -6
- data/lib/engine2/scheme.rb +107 -65
- data/lib/engine2/templates.rb +41 -6
- data/lib/engine2/type_info.rb +51 -23
- data/lib/engine2/version.rb +2 -1
- data/package.json +22 -16
- data/public/favicon.ico +0 -0
- data/public/img/ajax-loader-dark.gif +0 -0
- data/public/img/ajax-loader.gif +0 -0
- data/views/fields/blob.slim +1 -1
- data/views/fields/bs_select.slim +2 -2
- data/views/fields/bsselect_picker.slim +4 -4
- data/views/fields/bsselect_picker_opt.slim +5 -5
- data/views/fields/checkbox.slim +4 -4
- data/views/fields/checkbox_button.slim +6 -0
- data/views/fields/checkbox_buttons.slim +3 -3
- data/views/fields/checkbox_buttons_opt.slim +3 -3
- data/views/fields/currency.slim +2 -2
- data/views/fields/date.slim +4 -4
- data/views/fields/date_range.slim +9 -9
- data/views/fields/date_time.slim +9 -9
- data/views/fields/datetime.slim +8 -8
- data/views/fields/decimal.slim +1 -1
- data/views/fields/decimal_date.slim +3 -3
- data/views/fields/decimal_time.slim +3 -3
- data/views/fields/email.slim +3 -3
- data/views/fields/file_store.slim +11 -11
- data/views/fields/input_text.slim +4 -4
- data/views/fields/integer.slim +1 -1
- data/views/fields/list_bsmselect.slim +20 -0
- data/views/fields/list_bsselect.slim +5 -5
- data/views/fields/list_bsselect_opt.slim +6 -6
- data/views/fields/list_buttons.slim +1 -1
- data/views/fields/list_buttons_opt.slim +2 -2
- data/views/fields/list_mbuttons.slim +9 -0
- data/views/fields/list_mbuttons_opt.slim +11 -0
- data/views/fields/list_mselect.slim +12 -0
- data/views/fields/list_select.slim +4 -4
- data/views/fields/list_select_opt.slim +5 -5
- data/views/fields/password.slim +4 -4
- data/views/fields/radio_checkbox.slim +3 -3
- data/views/fields/scaffold.slim +2 -2
- data/views/fields/scaffold_picker.slim +5 -5
- data/views/fields/select_picker.slim +3 -3
- data/views/fields/select_picker_opt.slim +4 -4
- data/views/fields/text_area.slim +4 -3
- data/views/fields/time.slim +5 -4
- data/views/fields/typeahead_picker.slim +12 -9
- data/views/index.slim +3 -3
- data/views/infra/index.slim +0 -0
- data/views/infra/inspect.slim +41 -10
- data/views/modals/close_m.slim +0 -0
- data/views/modals/confirm_m.slim +0 -0
- data/views/modals/empty_m.slim +0 -0
- data/views/modals/menu_m.slim +1 -1
- data/views/modals/yes_no_m.slim +0 -0
- data/views/panels/menu_m.slim +1 -1
- data/views/scaffold/confirm.slim +0 -0
- data/views/scaffold/fields.slim +6 -4
- data/views/scaffold/form.slim +1 -1
- data/views/scaffold/form_collapse.slim +4 -3
- data/views/scaffold/form_tabs.slim +3 -2
- data/views/scaffold/list.slim +0 -0
- data/views/scaffold/message.slim +0 -0
- data/views/scaffold/search.slim +4 -4
- data/views/scaffold/search_collapse.slim +8 -7
- data/views/scaffold/search_tabs.slim +6 -5
- data/views/scaffold/view.slim +2 -2
- data/views/scaffold/view_collapse.slim +5 -4
- data/views/scaffold/view_tabs.slim +4 -3
- data/views/search_fields/bsmselect_picker.slim +4 -4
- data/views/search_fields/bsselect_picker.slim +4 -4
- data/views/search_fields/checkbox.slim +3 -3
- data/views/search_fields/checkbox2.slim +5 -5
- data/views/search_fields/checkbox_buttons.slim +3 -3
- data/views/search_fields/date.slim +20 -0
- data/views/search_fields/date_range.slim +8 -8
- data/views/search_fields/decimal_date_range.slim +5 -5
- data/views/search_fields/input_text.slim +2 -2
- data/views/search_fields/integer.slim +1 -1
- data/views/search_fields/integer_range.slim +2 -2
- data/views/search_fields/list_bsmselect.slim +4 -4
- data/views/search_fields/list_bsselect.slim +4 -4
- data/views/search_fields/list_buttons.slim +2 -2
- data/views/search_fields/list_mbuttons.slim +12 -0
- data/views/search_fields/list_select.slim +3 -3
- data/views/search_fields/scaffold_picker.slim +2 -2
- data/views/search_fields/select_picker.slim +3 -3
- data/views/search_fields/typeahead_picker.slim +8 -7
- metadata +53 -48
- data/lib/engine2/meta.rb +0 -1216
- data/lib/engine2/meta/array_meta.rb +0 -82
- data/lib/engine2/meta/delete_meta.rb +0 -60
- data/lib/engine2/meta/form_meta.rb +0 -15
- data/lib/engine2/meta/link_meta.rb +0 -134
- data/lib/engine2/meta/list_meta.rb +0 -281
- data/lib/engine2/meta/save_meta.rb +0 -50
- data/lib/engine2/meta/view_meta.rb +0 -7
- data/public/__sinatra__/404.png +0 -0
- data/public/__sinatra__/500.png +0 -0
data/lib/engine2/templates.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
# coding: utf-8
|
2
|
+
# frozen_string_literal: true
|
2
3
|
|
3
4
|
module Engine2
|
4
5
|
BS_ANIMATION ||= "am-flip-x" # "am-fade"
|
@@ -62,8 +63,13 @@ module Engine2
|
|
62
63
|
end
|
63
64
|
|
64
65
|
def list_select length, options = {}
|
66
|
+
template = if options[:multiple]
|
67
|
+
"fields/list_mselect"
|
68
|
+
else
|
69
|
+
options[:optional] ? "fields/list_select_opt" : "fields/list_select"
|
70
|
+
end
|
65
71
|
options.merge({
|
66
|
-
template:
|
72
|
+
template: template,
|
67
73
|
length: length
|
68
74
|
})
|
69
75
|
end
|
@@ -76,12 +82,26 @@ module Engine2
|
|
76
82
|
})
|
77
83
|
end
|
78
84
|
|
85
|
+
def list_bsmselect length, options = {}
|
86
|
+
options.merge({
|
87
|
+
template: "fields/list_bsmselect",
|
88
|
+
length: length,
|
89
|
+
animation: BS_ANIMATION
|
90
|
+
})
|
91
|
+
end
|
92
|
+
|
79
93
|
def list_buttons options = {}
|
80
94
|
options.merge({
|
81
95
|
template: options[:optional] ? "fields/list_buttons_opt" : "fields/list_buttons"
|
82
96
|
})
|
83
97
|
end
|
84
98
|
|
99
|
+
def list_mbuttons options = {}
|
100
|
+
options.merge({
|
101
|
+
template: options[:optional] ? "fields/list_mbuttons_opt" : "fields/list_mbuttons"
|
102
|
+
})
|
103
|
+
end
|
104
|
+
|
85
105
|
def select_picker options = {}
|
86
106
|
options.merge({
|
87
107
|
template: options[:optional] ? "fields/select_picker_opt" : "fields/select_picker"
|
@@ -108,8 +128,8 @@ module Engine2
|
|
108
128
|
})
|
109
129
|
end
|
110
130
|
|
111
|
-
def typeahead_picker
|
112
|
-
{template: "fields/typeahead_picker", animation: BS_ANIMATION}
|
131
|
+
def typeahead_picker options = {}
|
132
|
+
{template: "fields/typeahead_picker", length: 20, limit: 10, min_length: 0, animation: BS_ANIMATION}.merge(options)
|
113
133
|
end
|
114
134
|
|
115
135
|
def email length
|
@@ -138,6 +158,10 @@ module Engine2
|
|
138
158
|
})
|
139
159
|
end
|
140
160
|
|
161
|
+
def checkbox_button options = {}
|
162
|
+
{template: "fields/checkbox_button"}.merge(options)
|
163
|
+
end
|
164
|
+
|
141
165
|
def radio_checkbox
|
142
166
|
{template: "fields/radio_checkbox"}
|
143
167
|
end
|
@@ -162,6 +186,13 @@ module Engine2
|
|
162
186
|
})
|
163
187
|
end
|
164
188
|
|
189
|
+
def date_picker options = {}
|
190
|
+
options.merge({
|
191
|
+
template: "search_fields/date",
|
192
|
+
animation: BS_ANIMATION
|
193
|
+
})
|
194
|
+
end
|
195
|
+
|
165
196
|
def integer_range
|
166
197
|
{template: "search_fields/integer_range"}
|
167
198
|
end
|
@@ -190,8 +221,8 @@ module Engine2
|
|
190
221
|
})
|
191
222
|
end
|
192
223
|
|
193
|
-
def typeahead_picker
|
194
|
-
{template: "search_fields/typeahead_picker", animation: BS_ANIMATION}
|
224
|
+
def typeahead_picker options = {}
|
225
|
+
{template: "search_fields/typeahead_picker", limit: 10, min_length: 0, animation: BS_ANIMATION}.merge(options)
|
195
226
|
end
|
196
227
|
|
197
228
|
# def checkbox_search true_v = "1", false_v = "0"
|
@@ -221,9 +252,13 @@ module Engine2
|
|
221
252
|
{template: "search_fields/list_buttons"}
|
222
253
|
end
|
223
254
|
|
255
|
+
def list_mbuttons
|
256
|
+
{template: "search_fields/list_mbuttons"}
|
257
|
+
end
|
258
|
+
|
224
259
|
def decimal_date
|
225
260
|
{template: "search_fields/decimal_date_range", animation: BS_ANIMATION}
|
226
261
|
end
|
227
262
|
end
|
228
263
|
end
|
229
|
-
end
|
264
|
+
end
|
data/lib/engine2/type_info.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# coding: utf-8
|
2
|
+
# frozen_string_literal: true
|
2
3
|
|
3
4
|
module Engine2
|
4
|
-
|
5
5
|
class TypeInfo
|
6
6
|
def initialize model
|
7
7
|
@model = model
|
@@ -73,6 +73,15 @@ module Engine2
|
|
73
73
|
end
|
74
74
|
end
|
75
75
|
|
76
|
+
def boolean field, true_value = true, false_value = false
|
77
|
+
modify_field field do |info|
|
78
|
+
info[:type] = :boolean
|
79
|
+
info[:true_value] = true_value
|
80
|
+
info[:false_value] = false_value
|
81
|
+
info[:validations][:boolean] = true
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
76
85
|
def date_field field, format, model_format
|
77
86
|
define_field field, :date do |info|
|
78
87
|
info[:format] = format
|
@@ -83,6 +92,13 @@ module Engine2
|
|
83
92
|
|
84
93
|
def time_field field, format, model_format
|
85
94
|
define_field field, :time do |info|
|
95
|
+
end
|
96
|
+
time field, format, model_format
|
97
|
+
end
|
98
|
+
|
99
|
+
def time field, format, model_format
|
100
|
+
modify_field field do |info|
|
101
|
+
info[:type] = :time
|
86
102
|
info[:format] = format
|
87
103
|
info[:model_format] = model_format
|
88
104
|
info[:validations][:time] = true
|
@@ -215,8 +231,8 @@ module Engine2
|
|
215
231
|
info[:multiple] = multiple
|
216
232
|
info[:table] = table
|
217
233
|
info[:store] = store
|
218
|
-
info[:store][:upload] ||= "#{Engine2::
|
219
|
-
info[:store][:files] ||= "#{Engine2::
|
234
|
+
info[:store][:upload] ||= "#{Engine2::SETTINGS[:path]}/store/upload"
|
235
|
+
info[:store][:files] ||= "#{Engine2::SETTINGS[:path]}/store/files"
|
220
236
|
info[:transaction] = true
|
221
237
|
end
|
222
238
|
end
|
@@ -227,6 +243,12 @@ module Engine2
|
|
227
243
|
end
|
228
244
|
end
|
229
245
|
|
246
|
+
def length field, len
|
247
|
+
modify_field field do |info|
|
248
|
+
info[:length] = len
|
249
|
+
end
|
250
|
+
end
|
251
|
+
|
230
252
|
def date_range from, to
|
231
253
|
depends_on(from, to)
|
232
254
|
modify_field from do |info|
|
@@ -244,15 +266,6 @@ module Engine2
|
|
244
266
|
end
|
245
267
|
end
|
246
268
|
|
247
|
-
def boolean field, true_value = 1, false_value = 0
|
248
|
-
modify_field field do |info|
|
249
|
-
info[:type] = :boolean
|
250
|
-
info[:true_value] = true_value
|
251
|
-
info[:false_value] = false_value
|
252
|
-
info[:validations][:boolean] = true
|
253
|
-
end
|
254
|
-
end
|
255
|
-
|
256
269
|
def currency field, symbol = LOCS[:currency_symbol]
|
257
270
|
modify_field field do |info|
|
258
271
|
info[:type] = :currency
|
@@ -294,27 +307,43 @@ module Engine2
|
|
294
307
|
end
|
295
308
|
end
|
296
309
|
|
297
|
-
def star_to_many_field assoc_name
|
310
|
+
def star_to_many_field assoc_name, schemes = Schemes::STMF_LINK
|
298
311
|
assoc = @model.one_to_many_associations[assoc_name] || @model.many_to_many_associations[assoc_name]
|
299
312
|
raise E2Error.new("'*_to_many' association '#{assoc_name}' not found for model '#{@model}'") unless assoc
|
300
313
|
define_field assoc_name, :string do |info|
|
301
314
|
info[:type] = :star_to_many_field
|
315
|
+
info[:schemes] = schemes
|
302
316
|
info[:keys] = assoc[:keys]
|
303
317
|
info[:assoc_name] = assoc_name
|
304
|
-
info[:transaction] = true
|
318
|
+
info[:transaction] = true
|
305
319
|
end
|
306
320
|
end
|
307
321
|
|
308
|
-
def
|
322
|
+
def list_select_bits values
|
323
|
+
values.each_with_index.map{|a, i|[1 << i, a]}.to_h
|
324
|
+
end
|
325
|
+
|
326
|
+
def list_select name, options
|
309
327
|
modify_field name do |info|
|
310
328
|
info[:type] = :list_select
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
329
|
+
values = options[:values]
|
330
|
+
|
331
|
+
if options[:multiselect]
|
332
|
+
info[:multiselect] = true
|
333
|
+
case info[:otype]
|
334
|
+
when :string
|
335
|
+
info[:separator] = options[:separator] || ';'
|
336
|
+
info[:validations].delete(:string_length)
|
337
|
+
when :integer
|
338
|
+
info[:validations].delete(:integer)
|
339
|
+
end
|
340
|
+
info[:max_length] = options[:max_length] || 3
|
341
|
+
info[:max_length_html] = options[:max_length_html] || LOCS[:list_select_selected]
|
316
342
|
end
|
317
|
-
|
343
|
+
|
344
|
+
raise E2Error.new("type '#{values.class}' not supported for list_select modifier for field #{name}") unless values.is_a?(Hash)
|
345
|
+
info[:values] = values.to_a
|
346
|
+
info[:validations][:list_select] = true unless values.empty?
|
318
347
|
end
|
319
348
|
end
|
320
349
|
|
@@ -340,6 +369,5 @@ module Engine2
|
|
340
369
|
info[:sequence] = seq_name
|
341
370
|
end
|
342
371
|
end
|
343
|
-
|
344
372
|
end
|
345
|
-
end
|
373
|
+
end
|
data/lib/engine2/version.rb
CHANGED
data/package.json
CHANGED
@@ -2,33 +2,39 @@
|
|
2
2
|
"name": "engine2",
|
3
3
|
"description": "engine2",
|
4
4
|
"version": "1.0.0",
|
5
|
+
"license": "MIT",
|
5
6
|
"scripts": {
|
6
|
-
"postinstall": "bower install",
|
7
|
+
"postinstall": "bower install --allow-root",
|
7
8
|
"dev": "brunch w",
|
8
9
|
"build": "brunch build --production"
|
9
10
|
},
|
10
11
|
"dependencies": {
|
11
|
-
"
|
12
|
-
"
|
13
|
-
"angular
|
14
|
-
"angular-
|
12
|
+
"@uirouter/angularjs": "1.0.23",
|
13
|
+
"@uirouter/core": "6.0.1",
|
14
|
+
"angular": "^1.8.0",
|
15
|
+
"angular-animate": "^1.8.0",
|
16
|
+
"angular-cookies": "^1.8.0",
|
17
|
+
"angular-drag-and-drop-lists": "^2.1.0",
|
18
|
+
"angular-load": "^0.5.0",
|
19
|
+
"angular-local-storage": "^0.7.0",
|
15
20
|
"angular-motion": "^0.4.0",
|
16
|
-
"angular-
|
17
|
-
"angular-
|
18
|
-
"
|
19
|
-
"bootstrap": "^3.3.0",
|
21
|
+
"angular-sanitize": "^1.8.0",
|
22
|
+
"angular-ui-tree": "^2.22.0",
|
23
|
+
"bootstrap": "^3.4.1",
|
20
24
|
"bootstrap-additions": "0.3.1",
|
21
|
-
"
|
22
|
-
"
|
23
|
-
"
|
25
|
+
"fork-awesome": "^1.1.7",
|
26
|
+
"json-to-pretty-yaml": "1.2.2",
|
27
|
+
"lodash": "^4.17.15",
|
28
|
+
"ng-file-upload": "^12.2.0",
|
29
|
+
"push.js": "^1.0.12"
|
24
30
|
},
|
25
31
|
"devDependencies": {
|
26
32
|
"auto-reload-brunch": "^2.7.1",
|
27
|
-
"bower": "
|
28
|
-
"brunch": "^2.
|
33
|
+
"bower": "^1.8.8",
|
34
|
+
"brunch": "^2.10.0",
|
29
35
|
"clean-css-brunch": "^2.0.0",
|
30
|
-
"coffee-script-brunch": "^2.
|
31
|
-
"copycat-brunch": "^1.1.
|
36
|
+
"coffee-script-brunch": "^2.10.2",
|
37
|
+
"copycat-brunch": "^1.1.1",
|
32
38
|
"css-brunch": "^2.6.1",
|
33
39
|
"javascript-brunch": "^2.0.0",
|
34
40
|
"ng-annotate-brunch": "^1.7.2",
|
data/public/favicon.ico
CHANGED
File without changes
|
File without changes
|
data/public/img/ajax-loader.gif
CHANGED
File without changes
|
data/views/fields/blob.slim
CHANGED
data/views/fields/bs_select.slim
CHANGED
@@ -2,9 +2,9 @@
|
|
2
2
|
select [
|
3
3
|
ng-model="action.record[f]"
|
4
4
|
bs-options="v.id as v.value for v in values"
|
5
|
-
select-resource="
|
5
|
+
select-resource="field.render.resource"
|
6
6
|
bs-select=""
|
7
|
-
ng-disabled="
|
7
|
+
ng-disabled="field.disabled"
|
8
8
|
class="form-control input-sm"
|
9
9
|
e2-field=""
|
10
10
|
]
|
@@ -1,15 +1,15 @@
|
|
1
|
-
e2-action action="[
|
1
|
+
e2-action action="[field.assoc, 'list']"
|
2
2
|
.col-lg-7.col-md-8.col-sm-12
|
3
3
|
button.btn.btn-default.btn-sm [
|
4
4
|
type="button"
|
5
5
|
ng-model="action.selected"
|
6
6
|
bs-options="v.id as v.value for v in action.values"
|
7
7
|
ng-change="action.change()"
|
8
|
-
ng-disabled="
|
9
|
-
ng-class="
|
8
|
+
ng-disabled="field.disabled"
|
9
|
+
ng-class="field.render.class"
|
10
10
|
class="form-control input-sm"
|
11
11
|
|
12
|
-
data-animation="{{::
|
12
|
+
data-animation="{{::field.render.animation}}"
|
13
13
|
data-placeholder="..."
|
14
14
|
data-html="true"
|
15
15
|
bs-select=""
|
@@ -1,4 +1,4 @@
|
|
1
|
-
e2-action action="[
|
1
|
+
e2-action action="[field.assoc, 'list']"
|
2
2
|
.col-lg-7.col-md-12.col-sm-12
|
3
3
|
.input-group.input-group-sm
|
4
4
|
button.btn.btn-default.btn-sm [
|
@@ -6,16 +6,16 @@ e2-action action="[info.assoc, 'list']"
|
|
6
6
|
ng-model="action.selected"
|
7
7
|
bs-options="v.id as v.value for v in action.values"
|
8
8
|
ng-change="action.change()"
|
9
|
-
ng-disabled="
|
10
|
-
ng-class="
|
9
|
+
ng-disabled="field.disabled"
|
10
|
+
ng-class="field.render.class"
|
11
11
|
class="form-control"
|
12
12
|
|
13
|
-
data-animation="{{::
|
13
|
+
data-animation="{{::field.render.animation}}"
|
14
14
|
data-placeholder="..."
|
15
15
|
data-html="true"
|
16
16
|
bs-select=""
|
17
17
|
e2-field=""
|
18
18
|
]
|
19
19
|
.input-group-btn
|
20
|
-
a.btn.btn-default ng-disabled="
|
20
|
+
a.btn.btn-default ng-disabled="field.disabled || !action.selected" ng-click="action.reset()"
|
21
21
|
span.glyphicon.glyphicon-remove
|
data/views/fields/checkbox.slim
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
.col-lg-1
|
2
2
|
.checkbox
|
3
3
|
input [
|
4
|
-
ng-init="action.record[f] = action.record[f] ||
|
4
|
+
ng-init="action.record[f] = action.record[f] || field.render.false_value"
|
5
5
|
type="checkbox"
|
6
6
|
ng-model="action.record[f]"
|
7
|
-
ng-true-value="{{::
|
8
|
-
ng-false-value="{{::
|
9
|
-
ng-disabled="
|
7
|
+
ng-true-value="{{::field.render.true_value}}"
|
8
|
+
ng-false-value="{{::field.render.false_value}}"
|
9
|
+
ng-disabled="field.disabled"
|
10
10
|
e2-field=""
|
11
11
|
]
|
@@ -0,0 +1,6 @@
|
|
1
|
+
.col-lg-12
|
2
|
+
.div ng-init="(action.record[f] === null || action.record[f] === undefined) && (action.record[f] = field.render.false_value)" ng-model="action.record[f]" e2-field=""
|
3
|
+
a.btn.btn-default.btn-sm ng-show="action.record[f] === field.render.true_value" ng-class="action.record[f] === field.render.true_value && 'active'" ng-click="action.record[f] = field.render.false_value" ng-disabled="field.disabled"
|
4
|
+
span.glyphicon.glyphicon-check
|
5
|
+
a.btn.btn-default.btn-sm ng-show="action.record[f] === field.render.false_value" ng-click="action.record[f] = field.render.true_value" ng-disabled="field.disabled"
|
6
|
+
span.glyphicon.glyphicon-unchecked
|
@@ -1,6 +1,6 @@
|
|
1
1
|
.col-lg-12
|
2
|
-
.btn-group.btn-group-sm ng-init="(action.record[f] === undefined) && (action.record[f] =
|
3
|
-
a.btn.btn-default ng-class="action.record[f] ===
|
2
|
+
.btn-group.btn-group-sm ng-init="(action.record[f] === null || action.record[f] === undefined) && (action.record[f] = field.render.false_value)" ng-model="action.record[f]" e2-field=""
|
3
|
+
a.btn.btn-default ng-class="action.record[f] === field.render.true_value && 'active'" ng-click="action.record[f] = field.render.true_value" ng-disabled="field.disabled"
|
4
4
|
span.glyphicon.glyphicon-check
|
5
|
-
a.btn.btn-default ng-class="action.record[f] ===
|
5
|
+
a.btn.btn-default ng-class="action.record[f] === field.render.false_value && 'active'" ng-click="action.record[f] = field.render.false_value" ng-disabled="field.disabled"
|
6
6
|
span.glyphicon.glyphicon-unchecked
|
@@ -1,8 +1,8 @@
|
|
1
1
|
.col-lg-12
|
2
2
|
.btn-group.btn-group-sm ng-model="action.record[f]" e2-field=""
|
3
|
-
a.btn.btn-default ng-class="action.record[f] ===
|
3
|
+
a.btn.btn-default ng-class="action.record[f] === field.render.true_value && 'active'" ng-click="action.record[f] = field.render.true_value" ng-disabled="field.disabled"
|
4
4
|
span.glyphicon.glyphicon-check
|
5
|
-
a.btn.btn-default ng-class="action.record[f] ===
|
5
|
+
a.btn.btn-default ng-class="action.record[f] === field.render.false_value && 'active'" ng-click="action.record[f] = field.render.false_value" ng-disabled="field.disabled"
|
6
6
|
span.glyphicon.glyphicon-unchecked
|
7
|
-
a.btn.btn-default ng-class="(action.record[f] === null || action.record[f] === undefined) && 'active'" ng-click="action.record[f] = null" ng-disabled="
|
7
|
+
a.btn.btn-default ng-class="(action.record[f] === null || action.record[f] === undefined) && 'active'" ng-click="action.record[f] = null" ng-disabled="field.disabled"
|
8
8
|
span.glyphicon.glyphicon-off
|
data/views/fields/currency.slim
CHANGED
data/views/fields/date.slim
CHANGED
@@ -4,13 +4,13 @@
|
|
4
4
|
type="text"
|
5
5
|
class="form-control"
|
6
6
|
ng-model="value"
|
7
|
-
ng-disabled="
|
7
|
+
ng-disabled="field.disabled"
|
8
8
|
|
9
|
-
data-date-format="{{::
|
10
|
-
data-animation="{{::
|
9
|
+
data-date-format="{{::field.render.format}}"
|
10
|
+
data-animation="{{::field.render.animation}}"
|
11
11
|
bs-datepicker=""
|
12
12
|
e2-datepicker=""
|
13
|
-
e2-model-format="{{::
|
13
|
+
e2-model-format="{{::field.render.model_format}}"
|
14
14
|
data-autoclose="1"
|
15
15
|
|
16
16
|
e2-force-view-value=""
|