drg_cms 0.6.1.5 → 0.6.1.11

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 (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