drg_cms 0.5.52.16 → 0.6.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (133) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/drg_cms/drg_cms.js +446 -144
  3. data/app/assets/javascripts/drg_cms/jstree.min.js +6 -6
  4. data/app/assets/javascripts/drg_cms_application.js +1 -1
  5. data/app/assets/stylesheets/drg_cms/drg_cms.css +625 -243
  6. data/app/assets/stylesheets/drg_cms/jstree.css +6 -12
  7. data/app/assets/stylesheets/drg_cms/select-multiple.css +18 -12
  8. data/app/assets/stylesheets/drg_cms_cms.css +1 -1
  9. data/app/controllers/cmsedit_controller.rb +536 -331
  10. data/app/controllers/dc_application_controller.rb +380 -117
  11. data/app/controllers/dc_common_controller.rb +105 -14
  12. data/app/{controllers → controls}/browse_models_control.rb +0 -0
  13. data/app/controls/dc_help_control.rb +126 -0
  14. data/app/{controllers → controls}/dc_page_control.rb +24 -8
  15. data/app/controls/dc_poll_result_control.rb +88 -0
  16. data/app/controls/dc_report.rb +225 -0
  17. data/app/{controllers → controls}/design_element_settings_control.rb +0 -0
  18. data/app/forms/all_options.yml +50 -9
  19. data/app/forms/cms_menu.yml +28 -18
  20. data/app/forms/dc_ad.yml +11 -22
  21. data/app/forms/dc_big_table.yml +1 -0
  22. data/app/forms/dc_big_table_value.yml +1 -0
  23. data/app/forms/dc_category.yml +2 -1
  24. data/app/forms/dc_design.yml +20 -16
  25. data/app/forms/dc_filter.yml +3 -6
  26. data/app/forms/dc_help_1.yml +109 -0
  27. data/app/forms/dc_journal.yml +3 -1
  28. data/app/forms/dc_json_ld.yml +59 -0
  29. data/app/forms/dc_key_value.yml +32 -0
  30. data/app/forms/dc_link.yml +1 -1
  31. data/app/forms/dc_menu.yml +2 -0
  32. data/app/forms/dc_menu_item.yml +2 -0
  33. data/app/forms/dc_page.yml +3 -5
  34. data/app/forms/dc_part.yml +1 -0
  35. data/app/forms/dc_piece.yml +1 -0
  36. data/app/forms/dc_poll.yml +19 -9
  37. data/app/forms/dc_poll_item.yml +2 -1
  38. data/app/forms/dc_poll_result.yml +83 -0
  39. data/app/forms/dc_poll_result_export.yml +35 -0
  40. data/app/forms/dc_seo.yml +33 -0
  41. data/app/forms/dc_simple_menu.yml +2 -0
  42. data/app/forms/dc_site.yml +4 -12
  43. data/app/forms/dc_user.yml +27 -11
  44. data/app/forms/dc_user_role.yml +3 -0
  45. data/app/forms/json_ld_schema.yml +168 -0
  46. data/app/helpers/cms_common_helper.rb +376 -0
  47. data/app/helpers/cms_edit_helper.rb +506 -0
  48. data/app/helpers/cms_helper.rb +268 -0
  49. data/app/helpers/cms_index_helper.rb +576 -0
  50. data/app/helpers/dc_application_helper.rb +183 -271
  51. data/app/models/concerns/dc_page_concern.rb +40 -6
  52. data/app/models/concerns/dc_policy_rule_concern.rb +20 -8
  53. data/app/models/concerns/dc_seo_concern.rb +66 -0
  54. data/app/models/concerns/dc_site_concern.rb +67 -44
  55. data/app/models/concerns/dc_user_concern.rb +62 -21
  56. data/app/models/dc_design.rb +30 -18
  57. data/app/models/dc_filter.rb +22 -13
  58. data/app/models/dc_json_ld.rb +152 -0
  59. data/app/models/dc_key_value.rb +48 -0
  60. data/app/models/dc_key_value_store.rb +1 -0
  61. data/app/models/dc_memory.rb +8 -1
  62. data/app/models/dc_page.rb +0 -1
  63. data/app/models/dc_permission.rb +49 -9
  64. data/app/models/dc_policy.rb +25 -14
  65. data/app/models/dc_policy_role.rb +22 -11
  66. data/app/models/dc_poll.rb +39 -19
  67. data/app/models/{drgcms_form_fields/drgcms_form_fields.rb → dc_poll_result.rb} +23 -2
  68. data/app/models/dc_temp.rb +140 -0
  69. data/app/models/dc_user_role.rb +2 -2
  70. data/app/models/drgcms_form_fields.rb +14 -6
  71. data/app/models/drgcms_form_fields/action.rb +61 -0
  72. data/app/models/drgcms_form_fields/check_box.rb +3 -0
  73. data/app/models/drgcms_form_fields/comment.rb +8 -4
  74. data/app/models/drgcms_form_fields/date_picker.rb +11 -9
  75. data/app/models/drgcms_form_fields/date_select.rb +1 -1
  76. data/app/models/drgcms_form_fields/{date_time_picker.rb → datetime_picker.rb} +12 -10
  77. data/app/models/drgcms_form_fields/datetime_select.rb +1 -1
  78. data/app/models/drgcms_form_fields/drgcms_field.rb +55 -9
  79. data/app/models/drgcms_form_fields/embedded.rb +26 -16
  80. data/app/models/drgcms_form_fields/file_field.rb +52 -0
  81. data/app/models/drgcms_form_fields/file_select.rb +2 -2
  82. data/app/models/drgcms_form_fields/hash_field.rb +90 -0
  83. data/app/models/drgcms_form_fields/hidden_field.rb +1 -1
  84. data/app/models/drgcms_form_fields/html_field.rb +1 -1
  85. data/app/models/drgcms_form_fields/link_to.rb +2 -2
  86. data/app/models/drgcms_form_fields/method.rb +66 -0
  87. data/app/models/drgcms_form_fields/multitext_autocomplete.rb +23 -14
  88. data/app/models/drgcms_form_fields/number_field.rb +15 -6
  89. data/app/models/drgcms_form_fields/radio.rb +96 -0
  90. data/app/models/drgcms_form_fields/readonly.rb +2 -2
  91. data/app/models/drgcms_form_fields/select.rb +92 -29
  92. data/app/models/drgcms_form_fields/text_area.rb +1 -1
  93. data/app/models/drgcms_form_fields/text_autocomplete.rb +29 -17
  94. data/app/models/drgcms_form_fields/text_field.rb +1 -1
  95. data/app/models/drgcms_form_fields/text_with_select.rb +6 -3
  96. data/app/models/drgcms_form_fields/tree_select.rb +29 -10
  97. data/app/{helpers → renderers}/dc_ad_renderer.rb +0 -0
  98. data/app/{helpers → renderers}/dc_big_menu_renderer.rb +1 -0
  99. data/app/{helpers → renderers}/dc_captcha_renderer.rb +0 -0
  100. data/app/{helpers → renderers}/dc_common_renderer.rb +0 -0
  101. data/app/{helpers → renderers}/dc_gallery_renderer.rb +1 -0
  102. data/app/{helpers → renderers}/dc_menu_renderer.rb +11 -4
  103. data/app/{helpers → renderers}/dc_page_renderer.rb +1 -0
  104. data/app/{helpers → renderers}/dc_part_renderer.rb +5 -4
  105. data/app/{helpers → renderers}/dc_piece_renderer.rb +1 -1
  106. data/app/{helpers → renderers}/dc_poll_renderer.rb +84 -48
  107. data/app/{helpers → renderers}/dc_renderer.rb +1 -0
  108. data/app/{helpers → renderers}/dc_simple_menu_renderer.rb +1 -0
  109. data/app/views/cmsedit/{remove_edit_stuff.js.erb → __remove_edit_stuff.js.erb} +0 -0
  110. data/app/views/cmsedit/{show.html.erb → __show.html.erb} +0 -0
  111. data/app/views/cmsedit/_edit_stuff.html.erb +4 -25
  112. data/app/views/cmsedit/_form.html.erb +4 -3
  113. data/app/views/cmsedit/_result.html.erb +2 -3
  114. data/app/views/cmsedit/edit.html.erb +4 -1
  115. data/app/views/cmsedit/index.html.erb +7 -1
  116. data/app/views/cmsedit/new.html.erb +3 -1
  117. data/app/views/dc_common/_help.html.erb +8 -0
  118. data/app/views/layouts/models.html.erb +2 -1
  119. data/config/locales/drgcms_en.yml +26 -3
  120. data/config/locales/drgcms_sl.yml +31 -5
  121. data/config/locales/models_en.yml +66 -18
  122. data/config/locales/models_sl.yml +71 -20
  123. data/drg_cms.gemspec +3 -3
  124. data/lib/drg_cms.rb +63 -1
  125. data/lib/drg_cms/version.rb +2 -2
  126. data/lib/generators/new_drg_form/new_drg_form_generator.rb +9 -2
  127. data/lib/tasks/database.rake +6 -56
  128. metadata +81 -63
  129. data/app/assets/stylesheets/drg_cms/__jquery-ui.css +0 -339
  130. data/app/helpers/application_helper.rb +0 -2
  131. data/app/helpers/cmsedit_helper.rb +0 -885
  132. data/app/models/dc_dummy.rb +0 -102
  133. data/test/fixtures/drg_cms_test_data.rb +0 -87
@@ -0,0 +1,225 @@
1
+ #--
2
+ # Copyright (c) 2020+ Damjan Rems
3
+ #
4
+ # Permission is hereby granted, free of charge, to any person obtaining
5
+ # a copy of this software and associated documentation files (the
6
+ # "Software"), to deal in the Software without restriction, including
7
+ # without limitation the rights to use, copy, modify, merge, publish,
8
+ # distribute, sublicense, and/or sell copies of the Software, and to
9
+ # permit persons to whom the Software is furnished to do so, subject to
10
+ # the following conditions:
11
+ #
12
+ # The above copyright notice and this permission notice shall be
13
+ # included in all copies or substantial portions of the Software.
14
+ #
15
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17
+ # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
19
+ # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
20
+ # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
21
+ # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22
+ #++
23
+
24
+ ######################################################################
25
+ # Common methods required by reports
26
+ ######################################################################
27
+ module DcReport
28
+ attr_accessor :report_id
29
+ attr_accessor :bulk
30
+
31
+ ######################################################################
32
+ # Clear result if params[:clear] is 'yes' when form is first displayed
33
+ ######################################################################
34
+ def dc_new_record
35
+ DcTemp.clear(temp_key) unless params[:clear].to_s == 'no'
36
+ end
37
+
38
+ ######################################################################
39
+ # If exists, set report section as form, so it can be used to display result.
40
+ ######################################################################
41
+ def dc_update_form
42
+ return unless @form && @form['report'] && params[:table] == 'dc_temp'
43
+
44
+ @form = @form['report']
45
+ end
46
+
47
+ ######################################################################
48
+ # Print to PDF action
49
+ ######################################################################
50
+ def print
51
+ begin
52
+ pdf_do
53
+ rescue Exception => e
54
+ dc_dump_exception(e)
55
+ render json: { msg_error: t('drgcms.runtime_error') } and return
56
+ end
57
+
58
+ pdf_file = "tmp/dokument-#{Time.now.to_i}.pdf"
59
+ @pdf.render_file Rails.root.join('public', pdf_file)
60
+
61
+ render json: print_response(pdf_file)
62
+ end
63
+
64
+ ######################################################################
65
+ # Export data do excel action
66
+ ######################################################################
67
+ def export
68
+ export_to_excel( temp_key )
69
+ end
70
+
71
+ ######################################################################
72
+ # Default filter to select data for result.
73
+ ######################################################################
74
+ def data_filter
75
+ params['clear'].to_s == 'yes' ? DcTemp.where(key: false) : DcTemp.where(key: temp_key).order_by(order: 1)
76
+ end
77
+
78
+ private
79
+
80
+ ######################################################################
81
+ # Will create response message for print action. Response consists of
82
+ # opening pdf file in new browser tab and additional print_message if defined.
83
+ ######################################################################
84
+ def print_response(pdf_file)
85
+ response = { window: "/#{pdf_file}" }
86
+ response.merge!(report_message) if respond_to?(:report_message, true)
87
+ response
88
+ end
89
+
90
+ ######################################################################
91
+ # Temp key consists of report name and user's id. Key should be added
92
+ # to every dc_temp document and is used to define data, which belongs
93
+ # to current user.
94
+ ######################################################################
95
+ def temp_key
96
+ "#{@report_id}-#{session[:user_id]}"
97
+ end
98
+
99
+ ######################################################################
100
+ # Initialize report. Set report_id internal variable and initialize bulk
101
+ # for bulk saving data to dc_temp collection.
102
+ ######################################################################
103
+ def init_report(id)
104
+ @report_id = id
105
+ @bulk = []
106
+ end
107
+
108
+ ######################################################################
109
+ # Check if all send fields are blank.
110
+ ######################################################################
111
+ def all_blank?(*fields)
112
+ fields.each {|e| e.blank? ? true : (break false) }
113
+ end
114
+
115
+ ######################################################################
116
+ # Will write bulk data to dc_temp collection.
117
+ ######################################################################
118
+ def bulk_write(doc, the_end = false)
119
+ if doc.nil? || doc.class == TrueClass
120
+ the_end = true
121
+ else
122
+ @bulk << doc
123
+ end
124
+
125
+ if (the_end && @bulk.size > 0) || @bulk.size > 100
126
+ DcTemp.collection.insert_many(@bulk)
127
+ @bulk = []
128
+ end
129
+ end
130
+
131
+ ######################################################################
132
+ # Export data to Excel
133
+ ######################################################################
134
+ def export_to_excel(report_id)
135
+ read_drg_form if @form.blank?
136
+ # use report options if present
137
+ columns = (@form['report'] ? @form['report'] : @form)['result_set']['columns'].sort
138
+
139
+ n, workbook = 0, Spreadsheet::Workbook.new
140
+ excel = workbook.create_worksheet(name: report_id)
141
+ # header
142
+ columns.each_with_index do |column, i|
143
+ caption = column.last['caption'] || column.last['label']
144
+ label = t(caption)
145
+ excel[n, i] = label.match('translation missing') ? caption : label
146
+ end
147
+
148
+ data_filter.each do |doc|
149
+ n += 1
150
+ columns.each_with_index do |column, i|
151
+ value = doc[column.last['name']].to_s.gsub('<br>', ";")
152
+ value = value.gsub(/\<\/strong\>|\<strong\>|\<\/b\>|\<b\>/, '')
153
+ excel[n, i] = value
154
+ end
155
+ end
156
+ workbook.write Rails.root.join("public/tmp/#{report_id}.xls")
157
+ dc_render_ajax(operation: :window, value: "/tmp/#{report_id}.xls")
158
+ end
159
+
160
+ ############################################################################
161
+ # Returns html code for displaying date/time formatted by strftime. Will return '' if value is nil.
162
+ #
163
+ # Parameters:
164
+ # [value] Date/DateTime/Time.
165
+ # [format] String. strftime format mask. Defaults to locale's default format.
166
+ ############################################################################
167
+ def dc_format_date_time(value, format = nil)
168
+ return '' if value.nil?
169
+
170
+ format ||= value.class == Date ? t('date.formats.default') : t('time.formats.default')
171
+ value.strftime(format)
172
+ end
173
+
174
+ ##############################################################################
175
+ # Initialize PDF document for print
176
+ ##############################################################################
177
+ def pdf_init(opts={})
178
+ opts[:margin] ||= [30,30,30,30]
179
+ opts[:page_size] ||= 'A4'
180
+
181
+ pdf = Prawn::Document.new(opts)
182
+ pdf.font_size = opts[:font_size] if opts[:font_size]
183
+
184
+ pdf.encrypt_document( owner_password: :random,
185
+ permissions: { print_document: true,
186
+ modify_contents: false,
187
+ copy_contents: false,
188
+ modify_annotations: false })
189
+ pdf.font_families.update(
190
+ 'Arial' => { normal: Rails.root.join('public', 'arial.ttf'),
191
+ bold: Rails.root.join('public', 'arialbd.ttf') }
192
+ )
193
+ pdf.font 'Arial'
194
+ pdf
195
+ end
196
+
197
+ ################################################################################
198
+ # Prints out single text (or object) on report.
199
+ #
200
+ # @param [Object] txt : Text or object. Result of to_s method of the object is
201
+ # @param [Hash] opts
202
+ ###############################################################################
203
+ def pdf_text(txt, opts={})
204
+ box_opts = {}
205
+ ypos = @pdf.cursor
206
+ xpos = opts.delete(:atx) || 0
207
+ box_opts.merge!(single_line: (opts.delete(:single_line) || true))
208
+ box_opts.merge!(at: (opts.delete(:at) || [xpos, ypos]))
209
+ box_opts.merge!(width: opts[:width]) if opts[:width]
210
+ box_opts.merge!(align: opts[:align]) if opts[:align]
211
+ box_opts.merge!(inline_format: opts[:inline_format]) if opts[:inline_format]
212
+
213
+ @pdf.text_box(txt.to_s, box_opts)
214
+ end
215
+
216
+ ################################################################################
217
+ # Skip line on report
218
+ #
219
+ # @param [Integer] skip . Number of lines to skip. Default 1.
220
+ ###############################################################################
221
+ def pdf_skip(skip = 1)
222
+ @pdf.text('<br>' * skip, inline_format: true)
223
+ end
224
+
225
+ end
@@ -3,13 +3,21 @@
3
3
  extend: form_name
4
4
  table: table_name
5
5
  title: Some title
6
+ title:
7
+ text: Dynamicaly defined title
8
+ eval: SomeClass.title_method
6
9
  controls: controls_file
7
10
  readonly: 1
8
11
  permissions:
9
12
  can_view: role_name
13
+
14
+ script: "
15
+ javascript code
16
+ "
10
17
 
11
18
  index:
12
19
  filter: name, id as text_field
20
+
13
21
  actions: standard
14
22
 
15
23
  actions:
@@ -18,6 +26,7 @@ index:
18
26
  3: sort
19
27
 
20
28
  actions:
29
+ standard: yes
21
30
  1:
22
31
  type: new
23
32
  caption: Alternative caption
@@ -47,11 +56,21 @@ result_set:
47
56
  footer: custom_footer
48
57
  actions_width: 100
49
58
  per_page: 10
59
+ select_fields: id,name
60
+ deny_fields: body,email
61
+
62
+ dblclick:
63
+ table: model_name
64
+ form_name: form_name
65
+ readonly: 1
66
+ action: show
67
+ window_close: 1 (close), 2 (history.back)
68
+
50
69
  table_style: 'color: green;'
51
70
  table_class: tclass
52
71
  tr_style: 'color: green;'
53
72
  tr_class: trclass
54
- tr_class:
73
+ tr_style:
55
74
  eval: "document['result'] < 0 ? 'color: red;' : 'color: #000;'"
56
75
 
57
76
  actions: standard
@@ -67,6 +86,8 @@ result_set:
67
86
  type: delete
68
87
  title: Delete it
69
88
  icon: delete.png
89
+ icon: arrow-left
90
+ icon: home
70
91
  4:
71
92
  type: link
72
93
  caption: Caption
@@ -82,6 +103,7 @@ result_set:
82
103
  name: name
83
104
  eval: dc_name4_id,dc_site,name
84
105
  width: 10%
106
+ width: none || hidden
85
107
  align: right (center)
86
108
  style: 'color: red;'
87
109
  td_class: class-name
@@ -92,6 +114,7 @@ result_set:
92
114
  3:
93
115
  name: valid_from
94
116
  format: '%d.%m.%Y'
117
+ format: N2
95
118
  4:
96
119
  name: active
97
120
  eval: dc_icon4_boolean
@@ -104,8 +127,7 @@ form:
104
127
  title:
105
128
  edit: Title for edit
106
129
  show: Title for show
107
- labels_pos: top
108
-
130
+ labels_pos: top
109
131
 
110
132
  actions: standard
111
133
  actions: none
@@ -117,6 +139,7 @@ form:
117
139
  action: action
118
140
  method: (get),put,post
119
141
  caption: ajax_call
142
+ control: control_name.method_to_call
120
143
  when_new: false
121
144
  5:
122
145
  type: window
@@ -149,6 +172,8 @@ form:
149
172
 
150
173
  tabs:
151
174
  tab1:
175
+ caption: my_caption
176
+ caption: helpers.label.table.tab1
152
177
 
153
178
  10:
154
179
  name: name
@@ -171,7 +196,13 @@ form:
171
196
  eval: ModelName.choices4_site
172
197
  eval: dc_big_table 'key-name'
173
198
  html:
174
- include_blank: true
199
+ include_blank: true
200
+ 90:
201
+ name: kats
202
+ type: multitext_autocomplete
203
+ search: dc_category.name
204
+ with_new: model_name
205
+ size: 30
175
206
 
176
207
  40:
177
208
  name: operation
@@ -199,8 +230,8 @@ form:
199
230
  100:
200
231
  name: css
201
232
  type: text_area
202
- html:
203
- size: 100x20
233
+ size: 100x20
234
+
204
235
 
205
236
  110:
206
237
  name: active
@@ -210,20 +241,26 @@ form:
210
241
  10:
211
242
  name: form
212
243
  type: text_area
244
+ size: 100x50
213
245
  html:
214
- size: 100x50
215
- style: 'font-family:courier;'
246
+ style: 'font-family:courier;'
216
247
 
217
248
  tab3:
218
249
  20:
219
250
  name: dc_poll_items
220
251
  type: embedded
252
+ load: default,delay,always
221
253
  form_name: dc_poll_item
222
254
  html:
223
255
  height: 800
224
256
  20:
225
257
  name: odhod
226
- type: datetime_picker
258
+ type: datetime_picker
259
+ 20:
260
+ name: gender
261
+ type: radio
262
+ inline: true
263
+
227
264
  40:
228
265
  name: customer_id
229
266
  type: text_autocomplete
@@ -232,10 +269,14 @@ form:
232
269
  field: custumer_name
233
270
  method: search
234
271
  with_new: customer
272
+ is_id: false
235
273
  size: 50
236
274
  50:
237
275
  name: kats
238
276
  type: tree_select
239
277
  eval: "DcCategory.choices4_categories(@parent.dc_get_site)"
278
+ multiple: true
279
+ parent_disabled: true
280
+ parent_opened: true
240
281
  style: 'max-height: 300px'
241
282
 
@@ -45,38 +45,42 @@ menu:
45
45
  50:
46
46
  caption: helpers.label.dc_piece.tabletitle
47
47
  controller: cmsedit
48
- icon: puzzle-piece lg
48
+ icon: puzzle-piece lg
49
49
  table: dc_piece
50
50
  60:
51
51
  caption: helpers.label.dc_link.tabletitle
52
52
  controller: cmsedit
53
- icon: link lg
53
+ icon: link lg
54
54
  table: dc_link
55
55
  70:
56
56
  caption: helpers.label.dc_menu.tabletitle
57
57
  controller: cmsedit
58
- icon: th-list lg
58
+ icon: th-list lg
59
59
  table: dc_menu
60
60
  80:
61
61
  caption: helpers.label.dc_simple_menu.tabletitle
62
62
  controller: cmsedit
63
- icon: ellipsis-h lg
63
+ icon: ellipsis-h lg
64
64
  table: dc_simple_menu
65
65
  90:
66
66
  caption: helpers.label.dc_category.tabletitle
67
67
  controller: cmsedit
68
- icon: list lg
68
+ icon: list lg
69
69
  table: dc_category
70
-
71
70
  100:
72
71
  caption: helpers.label.dc_poll.tabletitle
73
72
  controller: cmsedit
74
- icon: list-alt lg
73
+ icon: list-alt lg
75
74
  table: dc_poll
76
75
  110:
76
+ caption: helpers.label.dc_poll_result.tabletitle
77
+ controller: cmsedit
78
+ icon: database lg
79
+ table: dc_poll_result
80
+ 120:
77
81
  caption: helpers.label.dc_ad.tabletitle
78
82
  controller: cmsedit
79
- icon: money lg
83
+ icon: money lg
80
84
  table: dc_ad
81
85
 
82
86
  11_system_menu:
@@ -86,52 +90,58 @@ menu:
86
90
  10:
87
91
  caption: helpers.label.dc_user.tabletitle
88
92
  controller: cmsedit
89
- icon: users lg
93
+ icon: users lg
90
94
  table: dc_user
91
95
  20:
92
96
  caption: helpers.label.dc_policy_role.tabletitle
93
97
  controller: cmsedit
94
- icon: user-secret lg
98
+ icon: user-secret lg
95
99
  table: dc_policy_role
96
100
  30:
97
101
  caption: helpers.label.dc_permission.tabletitle
98
102
  controller: cmsedit
99
- icon: shield lg
103
+ icon: shield lg
100
104
  table: dc_permission
101
105
  40:
102
106
  caption: helpers.label.dc_folder_permission.tabletitle
103
107
  controller: cmsedit
104
- icon: shield lg
108
+ icon: shield lg
105
109
  table: dc_folder_permission
106
110
  60:
107
111
  caption: helpers.label.dc_big_table.tabletitle
108
112
  controller: cmsedit
109
- icon: table lg
113
+ icon: table lg
110
114
  table: dc_big_table
111
115
  70:
112
116
  caption: helpers.label.dc_key_value_store.tabletitle
113
117
  controller: cmsedit
114
- icon: list lg
118
+ icon: list lg
115
119
  table: dc_key_value_store
116
120
  80:
117
121
  caption: helpers.label.dc_filter.tabletitle
118
122
  controller: cmsedit
119
- icon: filter lg
123
+ icon: filter lg
120
124
  table: dc_filter
121
125
  90:
122
126
  caption: helpers.label.dc_removed_url.tabletitle
123
127
  controller: cmsedit
124
- icon: trash-o lg
128
+ icon: trash-o lg
125
129
  table: dc_removed_url
130
+ 400:
131
+ caption: drgcms.dc_help.title
132
+ controller: cmsedit
133
+ icon: question-circle lg
134
+ table: dc_temp
135
+ form_name: dc_help_1
126
136
  500:
127
137
  caption: helpers.label.dc_journal.tabletitle
128
138
  controller: cmsedit
129
- icon: undo lg
139
+ icon: history lg
130
140
  table: dc_journal
131
141
 
132
142
  600:
133
143
  caption: drgcms.browse_collections
134
144
  controller: cmsedit
135
- icon: table lg
145
+ icon: table lg
136
146
  table: dc_memory
137
147
  form_name: dc_browse_models