engine2 1.0.4 → 1.0.9
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.
- 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=""
|