drg_cms 0.6.1.5 → 0.6.1.11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (69) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +203 -24
  3. data/app/assets/fonts/ibm-plex-sans-300.woff2 +0 -0
  4. data/app/assets/fonts/ibm-plex-sans-400.woff2 +0 -0
  5. data/app/assets/fonts/ibm-plex-sans-500.woff2 +0 -0
  6. data/app/assets/fonts/ibm-plex-sans-600.woff2 +0 -0
  7. data/app/assets/fonts/ibm-plex-sans-700.woff2 +0 -0
  8. data/app/assets/fonts/ibm-plex-sans-italic.woff2 +0 -0
  9. data/app/assets/javascripts/drg_cms/drg_cms.js +253 -106
  10. data/app/assets/stylesheets/drg_cms/drg_cms.css +670 -521
  11. data/app/assets/stylesheets/drg_cms_application.css +1 -1
  12. data/app/assets/stylesheets/drg_cms_cms.css +1 -4
  13. data/app/controllers/cmsedit_controller.rb +33 -211
  14. data/app/controllers/dc_application_controller.rb +98 -22
  15. data/app/controllers/dc_common_controller.rb +9 -22
  16. data/app/controls/browse_models_control.rb +18 -27
  17. data/app/controls/cmsedit_control.rb +129 -0
  18. data/app/controls/dc_help_control.rb +1 -1
  19. data/app/controls/dc_page_control.rb +0 -1
  20. data/app/controls/dc_poll_result_control.rb +1 -1
  21. data/app/controls/dc_report.rb +2 -2
  22. data/app/controls/design_element_settings_control.rb +1 -1
  23. data/app/forms/all_options.yml +25 -7
  24. data/app/forms/cms_menu.yml +24 -24
  25. data/app/forms/dc_browse_fields.yml +13 -9
  26. data/app/forms/dc_browse_models.yml +24 -2
  27. data/app/forms/dc_poll_result_export.yml +1 -1
  28. data/app/forms/dc_site.yml +2 -5
  29. data/app/forms/dc_steps_template.yml +51 -0
  30. data/app/helpers/cms_common_helper.rb +73 -6
  31. data/app/helpers/cms_edit_helper.rb +275 -159
  32. data/app/helpers/cms_helper.rb +152 -59
  33. data/app/helpers/cms_index_helper.rb +220 -172
  34. data/app/helpers/dc_application_helper.rb +40 -67
  35. data/app/models/concerns/dc_page_concern.rb +1 -1
  36. data/app/models/concerns/dc_site_concern.rb +9 -3
  37. data/app/models/dc_filter.rb +30 -22
  38. data/app/models/dc_journal.rb +2 -2
  39. data/app/models/dc_json_ld.rb +19 -42
  40. data/app/models/dc_part.rb +19 -9
  41. data/app/models/dc_site.rb +0 -1
  42. data/app/models/drgcms_form_fields/drgcms_field.rb +10 -4
  43. data/app/models/drgcms_form_fields/link_to.rb +1 -1
  44. data/app/models/drgcms_form_fields/multitext_autocomplete.rb +5 -5
  45. data/app/models/drgcms_form_fields/readonly.rb +4 -1
  46. data/app/models/drgcms_form_fields/select.rb +10 -9
  47. data/app/models/drgcms_form_fields/text_autocomplete.rb +20 -12
  48. data/app/models/drgcms_form_fields/text_with_select.rb +1 -0
  49. data/app/renderers/dc_common_renderer.rb +20 -3
  50. data/app/renderers/dc_part_renderer.rb +1 -1
  51. data/app/renderers/dc_poll_renderer.rb +1 -1
  52. data/app/views/cmsedit/_edit_stuff.html.erb +12 -12
  53. data/app/views/cmsedit/_form.html.erb +19 -12
  54. data/app/views/cmsedit/edit.html.erb +10 -6
  55. data/app/views/cmsedit/index.html.erb +5 -3
  56. data/app/views/cmsedit/login.html.erb +1 -1
  57. data/app/views/cmsedit/new.html.erb +9 -5
  58. data/app/views/dc_common/_help.html.erb +1 -0
  59. data/app/views/dc_common/paste_clipboard.html.erb +1 -1
  60. data/app/views/layouts/cms.html.erb +3 -5
  61. data/config/locales/drgcms_en.yml +7 -1
  62. data/config/locales/drgcms_sl.yml +7 -1
  63. data/config/locales/kaminari.yml +1 -1
  64. data/drg_cms.gemspec +2 -2
  65. data/lib/drg_cms/version.rb +1 -1
  66. data/lib/drg_cms.rb +4 -4
  67. metadata +16 -10
  68. data/app/views/cmsedit/__remove_edit_stuff.js.erb +0 -6
  69. data/app/views/cmsedit/__show.html.erb +0 -21
@@ -81,12 +81,26 @@ end
81
81
  # Translation is provided by lang.helpers.label.table_name.field_name locale. If
82
82
  # translation is not found method will capitalize field_name and replace '_' with ' '.
83
83
  ############################################################################
84
- def t_name(field_name, default='')
84
+ def t_label_for_field(field_name, default='')
85
85
  c = t("helpers.label.#{@form['table']}.#{field_name}", default)
86
86
  c = field_name.capitalize.gsub('_',' ') if c.match( 'translation missing' )
87
87
  c
88
88
  end
89
89
 
90
+ ############################################################################
91
+ # Returns label for field translated to current locale for usage browser header.
92
+ # Translation is provided by lang.helpers.label.table_name.field_name locale. If
93
+ # not found method will look in standard drgcms translations.
94
+ #
95
+ ############################################################################
96
+ def t_label_for_column(options)
97
+ label = options['caption'] || options['label']
98
+ label = (options['name'] ? "helpers.label.#{@form['table']}.#{options['name']}" : '') if label.nil?
99
+ label = t(label) if label.match(/\./)
100
+ label = t("drgcms.#{options['name']}") if label.match('helpers.') # standard field names like created_by, updated_at
101
+ label
102
+ end
103
+
90
104
  ###########################################################################
91
105
  # When select field is used on form options for select can be provided by
92
106
  # helpers.label.table_name.choices4_name locale. This is how select
@@ -213,13 +227,14 @@ end
213
227
 
214
228
  ############################################################################
215
229
  # Return html code for icon presenting boolean value. Icon is a picture of checked or unchecked box.
230
+ # If second parameter (fiel_name) is ommited value is supplied as first parameter.
216
231
  #
217
232
  # Parameters:
218
233
  # [value] Boolean.
219
234
  #
220
235
  # Example:
221
236
  # # usage from program
222
- # dc_icon4_boolean(some_value)
237
+ # dc_icon4_boolean(document, field_name)
223
238
  #
224
239
  # # usage from form description
225
240
  # columns:
@@ -227,16 +242,17 @@ end
227
242
  # name: active
228
243
  # eval: dc_icon4_boolean
229
244
  ############################################################################
230
- def dc_icon_for_boolean(value=false)
231
- dc_dont?(value, true) ? fa_icon('square-o lg') : fa_icon('check-square-o lg')
245
+ def dc_icon_for_boolean(document = false, field_name = nil)
246
+ value = field_name.nil? ? document : document[field_name]
247
+ dc_dont?(value, true) ? fa_icon('check_box_outline_blank md-18') : fa_icon('check_box-o md-18')
232
248
  end
233
249
 
234
250
  ############################################################################
235
251
  #
236
252
  ############################################################################
237
- def dc_icon4_boolean(value=false) #nodoc
253
+ def dc_icon4_boolean(document = false, field_name = false) #nodoc
238
254
  #dc_deprecate('dc_icon4_boolean will be deprecated. Use dc_icon_for_boolean instead.')
239
- dc_icon_for_boolean(value)
255
+ dc_icon_for_boolean(document, field_name)
240
256
  end
241
257
 
242
258
  ############################################################################
@@ -372,4 +388,55 @@ def dc_help_body
372
388
  (params[:type] == 'index' ? @help['index'] : @help['form']).html_safe
373
389
  end
374
390
 
391
+ ############################################################################
392
+ # Will return code for help button if there is any help text available for the form.
393
+ ############################################################################
394
+ def dc_help_button(result_set)
395
+ type = result_set.nil? ? 'form' : 'index'
396
+ form_name = CmsHelper.form_param(params) || CmsHelper.table_param(params)
397
+ url = url_for(controller: :dc_common, action: :help, type: type, f: form_name)
398
+ html = %(<div class="dc-help-icon dc-link-ajax" data-url=#{url}>#{fa_icon('question-circle')}</div>)
399
+ return html if type == 'form'
400
+
401
+ # check if index has any help available
402
+ help_file_name = @form['help'] || @form['extend'] || form_name
403
+ help_file_name = DcApplicationController.find_help_file(help_file_name)
404
+ if help_file_name
405
+ help = YAML.load_file(help_file_name)
406
+ return html if help['index']
407
+ end
408
+ ''
409
+ end
410
+
411
+ ############################################################################
412
+ # Will return html code for steps menu when form with steps is processed.
413
+ ############################################################################
414
+ def dc_steps_menu_get(parent)
415
+ yaml = @form['form']['steps']
416
+ return '' unless yaml
417
+
418
+ html = %(<ul id="dc-steps-menu"><h2>#{t('drgcms.steps')}</h2>)
419
+ control = @form['control'] ? @form['control'] : @form['table']
420
+ parms = { controller: 'cmsedit', action: 'run', control: "#{control}.steps",
421
+ table: CmsHelper.table_param(params),
422
+ form_name: CmsHelper.form_param(params),
423
+ id: @record.id }
424
+
425
+ yaml.sort.each_with_index do |data, i|
426
+ n = i + 1
427
+ step = data.last # it's an array
428
+ url = case params[:step].to_i
429
+ when n + 1 then url_for(parms.merge({ step: n + 1, next_step: n}))
430
+ when n then url_for(parms.merge({ step: n, next_step: n}))
431
+ when n - 1 then url_for(parms.merge({ step: n - 1, next_step: n}))
432
+ else
433
+ ''
434
+ end
435
+ _class = url.present? ? 'dc-link-ajax' : ''
436
+ _class << (params[:step].to_i == n ? ' active' : '')
437
+ html << %(<li class="#{_class}" data-url="#{url}">#{step['title']}</li>)
438
+ end
439
+ html << '</ul>'
440
+ end
441
+
375
442
  end