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.
Files changed (131) hide show
  1. checksums.yaml +5 -5
  2. data/Gemfile +0 -0
  3. data/Rakefile +4 -4
  4. data/app/{engine2actions.coffee → actions.coffee} +341 -215
  5. data/app/app.coffee +0 -0
  6. data/app/app.css +17 -0
  7. data/app/engine2.coffee +158 -208
  8. data/app/modal.coffee +138 -0
  9. data/bower.json +4 -2
  10. data/conf/message.yaml +5 -0
  11. data/conf/message_pl.yaml +7 -2
  12. data/config.coffee +24 -12
  13. data/engine2.gemspec +8 -8
  14. data/lib/engine2.rb +12 -10
  15. data/lib/engine2/action.rb +1338 -133
  16. data/lib/engine2/action/array.rb +189 -0
  17. data/lib/engine2/{meta/decode_meta.rb → action/decode.rb} +52 -21
  18. data/lib/engine2/action/delete.rb +64 -0
  19. data/lib/engine2/action/form.rb +16 -0
  20. data/lib/engine2/{meta/infra_meta.rb → action/infra.rb} +123 -89
  21. data/lib/engine2/action/link.rb +117 -0
  22. data/lib/engine2/action/list.rb +333 -0
  23. data/lib/engine2/action/save.rb +28 -0
  24. data/lib/engine2/action/view.rb +8 -0
  25. data/lib/engine2/action_node.rb +221 -0
  26. data/lib/engine2/core.rb +175 -87
  27. data/lib/engine2/handler.rb +14 -13
  28. data/lib/engine2/model.rb +85 -43
  29. data/lib/engine2/models/Files.rb +4 -1
  30. data/lib/engine2/models/UserInfo.rb +6 -3
  31. data/lib/engine2/post_bootstrap.rb +4 -3
  32. data/lib/engine2/pre_bootstrap.rb +10 -6
  33. data/lib/engine2/scheme.rb +107 -65
  34. data/lib/engine2/templates.rb +41 -6
  35. data/lib/engine2/type_info.rb +51 -23
  36. data/lib/engine2/version.rb +2 -1
  37. data/package.json +22 -16
  38. data/public/favicon.ico +0 -0
  39. data/public/img/ajax-loader-dark.gif +0 -0
  40. data/public/img/ajax-loader.gif +0 -0
  41. data/views/fields/blob.slim +1 -1
  42. data/views/fields/bs_select.slim +2 -2
  43. data/views/fields/bsselect_picker.slim +4 -4
  44. data/views/fields/bsselect_picker_opt.slim +5 -5
  45. data/views/fields/checkbox.slim +4 -4
  46. data/views/fields/checkbox_button.slim +6 -0
  47. data/views/fields/checkbox_buttons.slim +3 -3
  48. data/views/fields/checkbox_buttons_opt.slim +3 -3
  49. data/views/fields/currency.slim +2 -2
  50. data/views/fields/date.slim +4 -4
  51. data/views/fields/date_range.slim +9 -9
  52. data/views/fields/date_time.slim +9 -9
  53. data/views/fields/datetime.slim +8 -8
  54. data/views/fields/decimal.slim +1 -1
  55. data/views/fields/decimal_date.slim +3 -3
  56. data/views/fields/decimal_time.slim +3 -3
  57. data/views/fields/email.slim +3 -3
  58. data/views/fields/file_store.slim +11 -11
  59. data/views/fields/input_text.slim +4 -4
  60. data/views/fields/integer.slim +1 -1
  61. data/views/fields/list_bsmselect.slim +20 -0
  62. data/views/fields/list_bsselect.slim +5 -5
  63. data/views/fields/list_bsselect_opt.slim +6 -6
  64. data/views/fields/list_buttons.slim +1 -1
  65. data/views/fields/list_buttons_opt.slim +2 -2
  66. data/views/fields/list_mbuttons.slim +9 -0
  67. data/views/fields/list_mbuttons_opt.slim +11 -0
  68. data/views/fields/list_mselect.slim +12 -0
  69. data/views/fields/list_select.slim +4 -4
  70. data/views/fields/list_select_opt.slim +5 -5
  71. data/views/fields/password.slim +4 -4
  72. data/views/fields/radio_checkbox.slim +3 -3
  73. data/views/fields/scaffold.slim +2 -2
  74. data/views/fields/scaffold_picker.slim +5 -5
  75. data/views/fields/select_picker.slim +3 -3
  76. data/views/fields/select_picker_opt.slim +4 -4
  77. data/views/fields/text_area.slim +4 -3
  78. data/views/fields/time.slim +5 -4
  79. data/views/fields/typeahead_picker.slim +12 -9
  80. data/views/index.slim +3 -3
  81. data/views/infra/index.slim +0 -0
  82. data/views/infra/inspect.slim +41 -10
  83. data/views/modals/close_m.slim +0 -0
  84. data/views/modals/confirm_m.slim +0 -0
  85. data/views/modals/empty_m.slim +0 -0
  86. data/views/modals/menu_m.slim +1 -1
  87. data/views/modals/yes_no_m.slim +0 -0
  88. data/views/panels/menu_m.slim +1 -1
  89. data/views/scaffold/confirm.slim +0 -0
  90. data/views/scaffold/fields.slim +6 -4
  91. data/views/scaffold/form.slim +1 -1
  92. data/views/scaffold/form_collapse.slim +4 -3
  93. data/views/scaffold/form_tabs.slim +3 -2
  94. data/views/scaffold/list.slim +0 -0
  95. data/views/scaffold/message.slim +0 -0
  96. data/views/scaffold/search.slim +4 -4
  97. data/views/scaffold/search_collapse.slim +8 -7
  98. data/views/scaffold/search_tabs.slim +6 -5
  99. data/views/scaffold/view.slim +2 -2
  100. data/views/scaffold/view_collapse.slim +5 -4
  101. data/views/scaffold/view_tabs.slim +4 -3
  102. data/views/search_fields/bsmselect_picker.slim +4 -4
  103. data/views/search_fields/bsselect_picker.slim +4 -4
  104. data/views/search_fields/checkbox.slim +3 -3
  105. data/views/search_fields/checkbox2.slim +5 -5
  106. data/views/search_fields/checkbox_buttons.slim +3 -3
  107. data/views/search_fields/date.slim +20 -0
  108. data/views/search_fields/date_range.slim +8 -8
  109. data/views/search_fields/decimal_date_range.slim +5 -5
  110. data/views/search_fields/input_text.slim +2 -2
  111. data/views/search_fields/integer.slim +1 -1
  112. data/views/search_fields/integer_range.slim +2 -2
  113. data/views/search_fields/list_bsmselect.slim +4 -4
  114. data/views/search_fields/list_bsselect.slim +4 -4
  115. data/views/search_fields/list_buttons.slim +2 -2
  116. data/views/search_fields/list_mbuttons.slim +12 -0
  117. data/views/search_fields/list_select.slim +3 -3
  118. data/views/search_fields/scaffold_picker.slim +2 -2
  119. data/views/search_fields/select_picker.slim +3 -3
  120. data/views/search_fields/typeahead_picker.slim +8 -7
  121. metadata +53 -48
  122. data/lib/engine2/meta.rb +0 -1216
  123. data/lib/engine2/meta/array_meta.rb +0 -82
  124. data/lib/engine2/meta/delete_meta.rb +0 -60
  125. data/lib/engine2/meta/form_meta.rb +0 -15
  126. data/lib/engine2/meta/link_meta.rb +0 -134
  127. data/lib/engine2/meta/list_meta.rb +0 -281
  128. data/lib/engine2/meta/save_meta.rb +0 -50
  129. data/lib/engine2/meta/view_meta.rb +0 -7
  130. data/public/__sinatra__/404.png +0 -0
  131. data/public/__sinatra__/500.png +0 -0
@@ -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: options[:optional] ? "fields/list_select_opt" : "fields/list_select",
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
@@ -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::app}/store/upload"
219
- info[:store][:files] ||= "#{Engine2::app}/store/files"
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 list_select name, list
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
- info[:list] = case list
312
- when Hash
313
- list.to_a
314
- else
315
- raise E2Error.new("type '#{list.class}' not supported for list_select modifier for field #{name}")
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
- info[:validations][:list_select] = true
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
@@ -1,7 +1,8 @@
1
1
  # coding: utf-8
2
+ # frozen_string_literal: true
2
3
 
3
4
  module Engine2
4
- MAJOR, MINOR, TINY = [1, 0, 4]
5
+ MAJOR, MINOR, TINY = [1, 0, 9]
5
6
  VERSION = [MAJOR, MINOR, TINY].join('.').freeze
6
7
  def self.version
7
8
  VERSION
@@ -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
- "angular": "^1.5.8",
12
- "angular-animate": "^1.5.8",
13
- "angular-cookies": "^1.5.8",
14
- "angular-local-storage": "0.1.5",
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-route": "^1.5.8",
17
- "angular-sanitize": "^1.5.8",
18
- "angular-ui-tree": "2.22.1",
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
- "font-awesome": "~4.7.0",
22
- "lodash": "~4.17.0",
23
- "ng-file-upload": "12.2.12"
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": "~1.8.0",
28
- "brunch": "^2.9.1",
33
+ "bower": "^1.8.8",
34
+ "brunch": "^2.10.0",
29
35
  "clean-css-brunch": "^2.0.0",
30
- "coffee-script-brunch": "^2.1.0",
31
- "copycat-brunch": "^1.1.0",
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",
File without changes
File without changes
File without changes
@@ -12,7 +12,7 @@ e2-action action="[f + '_blob_store!']"
12
12
  div
13
13
  input [
14
14
  type="file"
15
- ng-disabled="info.disabled"
15
+ ng-disabled="field.disabled"
16
16
  ng-file-select="action.select($files)"
17
17
  ]
18
18
 
@@ -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="info.render.resource"
5
+ select-resource="field.render.resource"
6
6
  bs-select=""
7
- ng-disabled="info.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="[info.assoc, 'list']"
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="info.disabled"
9
- ng-class="info.render.class"
8
+ ng-disabled="field.disabled"
9
+ ng-class="field.render.class"
10
10
  class="form-control input-sm"
11
11
 
12
- data-animation="{{::info.render.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="[info.assoc, 'list']"
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="info.disabled"
10
- ng-class="info.render.class"
9
+ ng-disabled="field.disabled"
10
+ ng-class="field.render.class"
11
11
  class="form-control"
12
12
 
13
- data-animation="{{::info.render.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="info.disabled || !action.selected" ng-click="action.reset()"
20
+ a.btn.btn-default ng-disabled="field.disabled || !action.selected" ng-click="action.reset()"
21
21
  span.glyphicon.glyphicon-remove
@@ -1,11 +1,11 @@
1
1
  .col-lg-1
2
2
  .checkbox
3
3
  input [
4
- ng-init="action.record[f] = action.record[f] || info.render.false_value"
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="{{::info.render.true_value}}"
8
- ng-false-value="{{::info.render.false_value}}"
9
- ng-disabled="info.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] = info.render.false_value)" ng-model="action.record[f]" e2-field=""
3
- a.btn.btn-default ng-class="action.record[f] === info.render.true_value && 'active'" ng-click="action.record[f] = info.render.true_value" ng-disabled="info.disabled"
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] === info.render.false_value && 'active'" ng-click="action.record[f] = info.render.false_value" ng-disabled="info.disabled"
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] === info.render.true_value && 'active'" ng-click="action.record[f] = info.render.true_value" ng-disabled="info.disabled"
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] === info.render.false_value && 'active'" ng-click="action.record[f] = info.render.false_value" ng-disabled="info.disabled"
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="info.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
@@ -4,7 +4,7 @@
4
4
  type="text"
5
5
  ng-model="action.record[f]"
6
6
  class="form-control"
7
- ng-disabled="info.disabled"
7
+ ng-disabled="field.disabled"
8
8
  e2-field=""
9
9
  ]
10
- span.input-group-addon ng-bind="info.render.symbol"
10
+ span.input-group-addon ng-bind="field.render.symbol"
@@ -4,13 +4,13 @@
4
4
  type="text"
5
5
  class="form-control"
6
6
  ng-model="value"
7
- ng-disabled="info.disabled"
7
+ ng-disabled="field.disabled"
8
8
 
9
- data-date-format="{{::info.render.format}}"
10
- data-animation="{{::info.render.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="{{::info.render.model_format}}"
13
+ e2-model-format="{{::field.render.model_format}}"
14
14
  data-autoclose="1"
15
15
 
16
16
  e2-force-view-value=""