drg_cms 0.6.1.6 → 0.6.1.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 (47) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +203 -24
  3. data/app/assets/javascripts/drg_cms/drg_cms.js +183 -95
  4. data/app/assets/stylesheets/drg_cms/drg_cms.css +542 -509
  5. data/app/assets/stylesheets/drg_cms_application.css +1 -1
  6. data/app/assets/stylesheets/drg_cms_cms.css +1 -4
  7. data/app/controllers/cmsedit_controller.rb +25 -103
  8. data/app/controllers/dc_common_controller.rb +6 -5
  9. data/app/controls/browse_models_control.rb +15 -26
  10. data/app/controls/cmsedit_control.rb +125 -0
  11. data/app/controls/dc_help_control.rb +1 -1
  12. data/app/controls/dc_page_control.rb +0 -1
  13. data/app/controls/dc_poll_result_control.rb +1 -1
  14. data/app/controls/dc_report.rb +1 -1
  15. data/app/forms/all_options.yml +1 -1
  16. data/app/forms/cms_menu.yml +24 -24
  17. data/app/forms/dc_browse_fields.yml +13 -9
  18. data/app/forms/dc_poll_result_export.yml +1 -1
  19. data/app/helpers/cms_common_helper.rb +7 -5
  20. data/app/helpers/cms_edit_helper.rb +52 -45
  21. data/app/helpers/cms_helper.rb +76 -40
  22. data/app/helpers/cms_index_helper.rb +180 -139
  23. data/app/helpers/dc_application_helper.rb +37 -43
  24. data/app/models/concerns/dc_page_concern.rb +1 -1
  25. data/app/models/dc_filter.rb +30 -22
  26. data/app/models/dc_json_ld.rb +1 -1
  27. data/app/models/dc_part.rb +19 -9
  28. data/app/models/drgcms_form_fields/drgcms_field.rb +10 -4
  29. data/app/models/drgcms_form_fields/link_to.rb +1 -1
  30. data/app/models/drgcms_form_fields/multitext_autocomplete.rb +5 -5
  31. data/app/models/drgcms_form_fields/readonly.rb +3 -0
  32. data/app/models/drgcms_form_fields/select.rb +8 -7
  33. data/app/models/drgcms_form_fields/text_autocomplete.rb +2 -2
  34. data/app/renderers/dc_part_renderer.rb +1 -1
  35. data/app/renderers/dc_poll_renderer.rb +1 -1
  36. data/app/views/cmsedit/_edit_stuff.html.erb +12 -12
  37. data/app/views/cmsedit/login.html.erb +1 -1
  38. data/app/views/dc_common/paste_clipboard.html.erb +1 -1
  39. data/config/locales/drgcms_en.yml +2 -1
  40. data/config/locales/drgcms_sl.yml +2 -1
  41. data/config/locales/kaminari.yml +1 -1
  42. data/drg_cms.gemspec +1 -1
  43. data/lib/drg_cms/version.rb +1 -1
  44. data/lib/drg_cms.rb +4 -4
  45. metadata +4 -5
  46. data/app/views/cmsedit/__remove_edit_stuff.js.erb +0 -6
  47. data/app/views/cmsedit/__show.html.erb +0 -21
@@ -9,6 +9,6 @@
9
9
  * compiled file, but it's generally better to create a new file per style scope.
10
10
  *
11
11
  *= require drg_cms/drg_cms
12
- *= require font-awesome
12
+ *= require drg_material_icons
13
13
 
14
14
  */
@@ -14,9 +14,6 @@
14
14
  *= require drg_cms/jstree
15
15
 
16
16
  *= require jquery-ui/all
17
-
18
- *= require font-awesome
17
+ *= require drg_material_icons
19
18
  */
20
19
 
21
- /* Required for link buttons to look alike */
22
- .dc-link a, .dc-link-submit input {font-weight: 600; }
@@ -99,7 +99,7 @@ end
99
99
  ########################################################################
100
100
  # Filter action.
101
101
  ########################################################################
102
- def filter
102
+ def _filter
103
103
  index
104
104
  end
105
105
 
@@ -128,12 +128,10 @@ end
128
128
  # Login can be called directly with url http://site.com/cmsedit/login
129
129
  ########################################################################
130
130
  def login
131
- if params[:id] == 'test' then set_test_site
132
- elsif params[:ok] then render action: 'login', layout: 'cms'
133
- else
134
- session[:edit_mode] = 0
135
- render action: 'login', layout: 'cms'
136
- end
131
+ return set_test_site if params[:id] == 'test'
132
+
133
+ session[:edit_mode] = 0 if !params[:ok]
134
+ render action: 'login', layout: 'cms'
137
135
  end
138
136
 
139
137
  ########################################################################
@@ -259,12 +257,9 @@ def duplicate_document(source)
259
257
  end
260
258
 
261
259
  ########################################################################
262
- # Create (or duplicate) action. Action is also used for turning filter on.
260
+ # Create (or duplicate) action.
263
261
  ########################################################################
264
262
  def create
265
- # abusing create for turning filter on
266
- return index if params[:filter].to_s == 'on'
267
-
268
263
  # not authorized
269
264
  unless dc_user_can(DcPermission::CAN_CREATE)
270
265
  flash[:error] = t('drgcms.not_authorized')
@@ -439,7 +434,7 @@ def run
439
434
  control_name, method_name = params[:control].split('.')
440
435
  if method_name.nil?
441
436
  method_name = control_name
442
- control_name = params[:table]
437
+ control_name = CmsHelper.table_param(params)
443
438
  end
444
439
  # extend with control methods
445
440
  extend_with_control_module(control_name)
@@ -476,7 +471,7 @@ def can_process_run
476
471
  response = send(:dc_can_process)
477
472
  return response unless response.class == Array
478
473
  else
479
- response = [DcPermission::CAN_VIEW, params[:table] || 'dc_memory']
474
+ response = [DcPermission::CAN_VIEW, CmsHelper.table_param(params) || 'dc_memory']
480
475
  end
481
476
  dc_user_can *response
482
477
  end
@@ -569,19 +564,19 @@ end
569
564
  # Read DRG form into @form object. Subroutine of check_authorization.
570
565
  ########################################################################
571
566
  def read_drg_form
572
- table_name = decamelize_type(params[:table].strip)
573
- @tables = table_name.split(';').inject([]) { |r,v| r << [(v.classify.constantize rescue nil), v] }
567
+ table_name = decamelize_type(CmsHelper.table_param(params).strip)
568
+ @tables = table_name.split(';').inject([]) { |r, v| r << [(v.classify.constantize rescue nil), v] }
574
569
 
575
570
  # split ids passed when embedded document
576
571
  ids = params[:ids].to_s.strip.downcase
577
572
  @ids = ids.split(';').inject([]) { |r,v| r << v }
578
573
 
579
574
  # form_name defaults to last table specified
580
- form_name = params[:form_name] || @tables.last[1]
575
+ form_name = CmsHelper.form_param(params) || @tables.last[1]
581
576
  @form_js = ''
582
577
 
583
578
  # dynamically generated form
584
- @form = if params[:form_name] == 'method'
579
+ @form = if CmsHelper.form_param(params) == 'method'
585
580
  dc_eval_class_method(params[:form_method], params)
586
581
  else
587
582
  form_file_name = dc_find_form_file(form_name)
@@ -621,7 +616,7 @@ end
621
616
  ############################################################################
622
617
  def extend_with_control_module(control_name = @form['controls'] || @form['control'])
623
618
  # May include embedded forms so ; => _
624
- control_name ||= params[:table].gsub(';','_')
619
+ control_name ||= CmsHelper.table_param(params).gsub(';','_')
625
620
  control_name += '_control' unless control_name.match(/control$|report$/i)
626
621
  # p '************', control_name
627
622
  controls = load_controls_module(control_name)
@@ -642,9 +637,10 @@ end
642
637
  # load DRG form.
643
638
  ############################################################################
644
639
  def check_authorization
645
- params[:table] ||= params[:form_name]
640
+ params[:table] ||= params[:t] || CmsHelper.form_param(params)
646
641
  # Only show menu
647
642
  return login if params[:id].in?(%w(login logout test))
643
+
648
644
  table = params[:table].to_s.strip.downcase
649
645
  set_default_guest_user_role if session[:user_roles].nil?
650
646
  # request shouldn't pass
@@ -872,23 +868,12 @@ end
872
868
  ########################################################################
873
869
  # Will check and set sorting options for current result set. Subroutine of index method.
874
870
  ########################################################################
875
- def check_sort_options() #:nodoc:
871
+ def check_sort_options #:nodoc:
876
872
  table_name = @tables.first[1]
877
- old_sort = session[table_name][:sort].to_s
878
- sort, direction = old_sort.split(' ')
873
+ return if session[table_name][:sort].nil? || @records.class != Mongoid::Criteria
879
874
 
880
- if params['sort']
881
- # reverse sort if same selected
882
- if params['sort'] == sort
883
- direction = (direction == '1') ? '-1' : '1'
884
- end
885
- direction ||= '1'
886
- sort = params[:sort]
887
- session[table_name][:sort] = "#{params['sort']} #{direction}"
888
- session[table_name][:page] = 1
889
- end
890
- @records.sort( sort => direction.to_i ) if session[table_name][:sort] && @records.class == Mongoid::Criteria
891
- params['sort'] = nil # otherwise there is problem with other links
875
+ sort, direction = session[table_name][:sort].split(' ')
876
+ @records = @records.order_by( sort => direction.to_i )
892
877
  end
893
878
 
894
879
  ########################################################################
@@ -914,82 +899,20 @@ def user_sort_options(model) #:nodoc:
914
899
  { field.to_sym => direction.to_i }
915
900
  end
916
901
 
917
- ########################################################################
918
- # Will set session[table_name][:filter] and save last filter settings to session.
919
- # subroutine of check_filter_options.
920
- ########################################################################
921
- def set_session_filter(table_name)
922
- # models that can not be filtered (for now)
923
- return if %w(dc_temp dc_memory).include?(params[:table])
924
- # clear filter
925
- if params[:filter] == 'off'
926
- session[table_name][:filter] = nil
927
- return
928
- end
929
- # field_name should exist on set filter condition
930
- return if params[:filter_oper] && params[:filter_field].blank?
931
-
932
- filter_value = if params[:filter_value].nil?
933
- #NIL indicates that no filtering is needed
934
- '#NIL'
935
- else
936
- if params[:filter_value].class == String and params[:filter_value][0] == '@'
937
- # Internal value. Remove leading @ and evaluate expression
938
- expression = DcInternals.get(params[:filter_value])
939
- eval(expression) rescue nil
940
- else
941
- # No filter when empty
942
- params[:filter_value] == '' ? '#NIL' : params[:filter_value]
943
- end
944
- end
945
- # if filter field parameter is omitted then just set filter value
946
- session[table_name][:filter] =
947
- if params[:filter_field].nil?
948
- saved = YAML.load(session[table_name][:filter])
949
- saved['value'] = filter_value
950
- saved.to_yaml
951
- else
952
- # as field defined. Split name and alternative input field
953
- field = if params[:filter_field].match(' as ')
954
- params[:filter_input] = params[:filter_field].split(' as ').last.strip
955
- params[:filter_field].split(' as ').first.strip
956
- else
957
- params[:filter_field]
958
- end
959
-
960
- {'field' => field,
961
- 'operation' => params[:filter_oper],
962
- 'value' => filter_value,
963
- 'input' => params[:filter_input],
964
- 'table' => table_name }.to_yaml
965
- end
966
- # must be. Otherwise kaminari includes parames on paging links
967
- params[:filter] = nil
968
- params[:filter_id] = nil
969
- params[:filter_oper] = nil
970
- params[:filter_input] = nil
971
- params[:filter_field] = nil
972
- end
973
-
974
902
  ########################################################################
975
903
  # Will check and set current filter options for result set. Subroutine of index method.
976
904
  ########################################################################
977
- def check_filter_options() #:nodoc:
978
- table_name = @tables.first[1]
979
- model = @tables.first[0]
905
+ def check_filter_options #:nodoc:
906
+ table_name = CmsHelper.table_param(params).strip.split(';').first.underscore
907
+ model = table_name.classify.constantize
980
908
  session[table_name] ||= {}
981
909
  # page is set
982
910
  session[table_name][:page] = params[:page] if params[:page]
983
- # new filter is applied
984
- if params[:filter]
985
- set_session_filter(table_name)
986
- session[table_name][:page] = 1
987
- end
988
911
  # if data model has field dc_site_id ensure that only documents which belong to the site are selected.
989
912
  site_id = dc_get_site._id if dc_get_site
990
913
 
991
914
  # don't filter site if no dc_site_id field or user is ADMIN
992
- site_id = nil if !model.method_defined?('dc_site_id') or dc_user_can(DcPermission::CAN_ADMIN)
915
+ site_id = nil if !model.method_defined?('dc_site_id') || dc_user_can(DcPermission::CAN_ADMIN)
993
916
  site_id = nil if session[table_name][:filter].to_s.match('dc_site_id')
994
917
 
995
918
  if @records = DcFilter.get_filter(session[table_name][:filter])
@@ -999,7 +922,7 @@ def check_filter_options() #:nodoc:
999
922
  end
1000
923
  process_select_and_deny_fields
1001
924
  # pagination if required
1002
- per_page = (@form['result_set']['per_page'] || 30).to_i
925
+ per_page = (@form['result_set']['per_page'] || 25).to_i
1003
926
  @records = @records.page(session[table_name][:page]).per(per_page) if per_page > 0
1004
927
  end
1005
928
 
@@ -1035,7 +958,7 @@ def process_collections #:nodoc
1035
958
  process_select_and_deny_fields
1036
959
  # pagination but only if not already set
1037
960
  unless (@form['table'] == 'dc_memory' || @records.options[:limit])
1038
- per_page = (@form['result_set']['per_page'] || 30).to_i
961
+ per_page = (@form['result_set']['per_page'] || 25).to_i
1039
962
  @records = @records.page(params[:page]).per(per_page) if per_page > 0
1040
963
  end
1041
964
  elsif form_filter != 'dc_filter'
@@ -1079,5 +1002,4 @@ def process_in_memory #:nodoc
1079
1002
  false
1080
1003
  end
1081
1004
 
1082
-
1083
1005
  end
@@ -217,8 +217,9 @@ def copy_clipboard
217
217
  format.json { dc_render_ajax(operation: 'window', url: request.url ) }
218
218
 
219
219
  format.html do
220
- doc = dc_find_document(params[:table], params[:id], params[:ids])
221
- text = "<br><br>[#{params[:table]},#{params[:id]},#{params[:ids]}]<br>"
220
+ table = CmsHelper.table_param(params)
221
+ doc = dc_find_document(table, params[:id], params[:ids])
222
+ text = "<br><br>[#{table},#{params[:id]},#{params[:ids]}]<br>"
222
223
  render plain: text + doc.as_document.to_json
223
224
  end
224
225
  end
@@ -266,7 +267,7 @@ end
266
267
  # document.
267
268
  ########################################################################
268
269
  def add_json_ld_schema
269
- edited_document = DcJsonLd.find_document_by_ids(params[:table], params[:ids])
270
+ edited_document = DcJsonLd.find_document_by_ids(CmsHelper.table_param(params), params[:ids])
270
271
  yaml = YAML.load_file( dc_find_form_file('json_ld_schema') )
271
272
  schema_data = yaml[params[:schema]]
272
273
  # Existing document
@@ -282,11 +283,11 @@ end
282
283
  # Will provide help data
283
284
  ########################################################################
284
285
  def help
285
- form_name = params[:form_name] || params[:table]
286
+ form_name = CmsHelper.form_param(params) || CmsHelper.table_param(params)
286
287
  @form = form_name ? YAML.load_file(dc_find_form_file(form_name)) : {}
287
288
  return render json: {} if @form.nil?
288
289
 
289
- help_file_name = @form['help'] || @form['extend'] || params[:form_name] || params[:table]
290
+ help_file_name = @form['help'] || @form['extend'] || form_name
290
291
  help_file_name = find_help_file(help_file_name)
291
292
  @help = YAML.load_file(help_file_name) if help_file_name
292
293
  # no auto generated help on index action
@@ -1,4 +1,3 @@
1
- #encoding: utf-8
2
1
  #--
3
2
  # Copyright (c) 2014+ Damjan Rems
4
3
  #
@@ -26,31 +25,19 @@
26
25
  #
27
26
  ######################################################################
28
27
  module BrowseModelsControl
29
- include DcApplicationHelper
30
-
31
- #########################################################################
32
- # Determine model class from filename.
33
- #########################################################################
34
- def determine_model(path)
35
- path =~ /(.*)\/(.*).rb/
36
- begin
37
- $2.camelize.constantize
38
- $2
39
- rescue Exception # it happends
40
- nil
41
- end
42
- end
43
28
 
44
29
  #########################################################################
45
30
  # Return array of all models found in application.
46
31
  #########################################################################
47
- def all_collections()
32
+ def all_collections
48
33
  collections = []
49
34
  DrgCms.paths(:forms).each do |path|
50
35
  models_dir = File.expand_path("../models", path)
51
- Dir["#{models_dir}/*.rb"].each do |model_file|
52
- collection_name = determine_model(model_file)
53
- collections << collection_name if collection_name
36
+ Dir["#{models_dir}/*.rb"].each do |model_file|
37
+ model_file =~ /(.*)\/(.*).rb/
38
+ # check if model exists
39
+ collection = $2.camelize.constantize.new rescue nil
40
+ collections << collection.class.to_s.underscore if collection&.respond_to?(:_id)
54
41
  end
55
42
  end
56
43
  collections.sort
@@ -59,10 +46,10 @@ end
59
46
  ######################################################################
60
47
  # List all collections
61
48
  ######################################################################
62
- def collections()
49
+ def collections
63
50
  @records = []
64
51
  all_collections.each do |collection|
65
- @records << {'id' => collection, 'description' => t("helpers.label.#{collection}.tabletitle") }
52
+ @records << DcMemory.new({'id' => collection, 'description' => t("helpers.label.#{collection}.tabletitle") })
66
53
  end
67
54
  @records
68
55
  end
@@ -70,7 +57,7 @@ end
70
57
  ######################################################################
71
58
  # List field definition for single model
72
59
  ######################################################################
73
- def all_fields()
60
+ def all_fields
74
61
  @records = []
75
62
  model = params[:id].classify.constantize
76
63
  document = model.new
@@ -80,12 +67,13 @@ def all_fields()
80
67
  description = I18n.t("helpers.label.#{params[:id]}.#{attribute_name}") if description.match('missing:')
81
68
  description = attribute_name if description.match('missing:')
82
69
 
83
- @records << {'collection' => params[:id],
70
+ @records << DcMemory.new({id: attribute_name,
71
+ 'collection' => params[:id],
84
72
  'field' => attribute_name,
85
73
  'type' => options[:type],
86
74
  'description' => description,
87
75
  '_default' => options[:default]
88
- }
76
+ })
89
77
  end
90
78
  # embedded documents
91
79
  document.embedded_relations.each do |a_embedded|
@@ -94,11 +82,12 @@ def all_fields()
94
82
  description = I18n.t("helpers.label.#{params[:id]}.#{embedded.key}") if description.match('missing:')
95
83
  description = embedded.key if description.match('missing:')
96
84
 
97
- @records << {'collection' => params[:id],
85
+ @records << DcMemory.new({ id: embedded.key,
86
+ 'collection' => params[:id],
98
87
  'field' => embedded.key,
99
88
  'type' => 'Embedded:' + embedded.class_name,
100
89
  'description' => description
101
- }
90
+ })
102
91
  end
103
92
 
104
93
  @records
@@ -0,0 +1,125 @@
1
+ #--
2
+ # Copyright (c) 2022+ 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 controls for cms controller
26
+ ######################################################################
27
+ module CmseditControl
28
+
29
+ ######################################################################
30
+ # Clear current form filter
31
+ ######################################################################
32
+ def filter_off
33
+ table_name = CmsHelper.table_param(params).strip.split(';').first.underscore
34
+ session[table_name][:filter] = nil
35
+ session[table_name][:page] = 1
36
+ url = url_for( controller: 'cmsedit', t: table_name, f: CmsHelper.form_param(params))
37
+
38
+ render json: { url: url }
39
+ end
40
+
41
+ ######################################################################
42
+ # Set current form filter
43
+ ######################################################################
44
+ def filter_on
45
+ table_name = CmsHelper.table_param(params).strip.split(';').first.underscore
46
+ session[table_name][:page] = 1
47
+ set_session_filter(table_name)
48
+ url = url_for( controller: 'cmsedit', t: table_name, f: CmsHelper.form_param(params))
49
+
50
+ render json: { url: url }
51
+ end
52
+
53
+ ########################################################################
54
+ # Will check and set sorting options for current result set. Subroutine of index method.
55
+ ########################################################################
56
+ def sort
57
+ return if params['sort'].nil?
58
+
59
+ table_name = CmsHelper.table_param(params).strip.split(';').first.underscore
60
+ old_sort = session[table_name][:sort].to_s
61
+ sort, direction = old_sort.split(' ')
62
+ # reverse sort if same selected
63
+ direction = (direction == '1') ? '-1' : '1' if params['sort'] == sort
64
+ direction ||= '1'
65
+ session[table_name][:sort] = "#{params[:sort]} #{direction}"
66
+ session[table_name][:page] = 1
67
+ params['sort'] = nil # otherwise there is problem with other links
68
+ url = url_for( controller: 'cmsedit', t: table_name, f: CmsHelper.form_param(params))
69
+
70
+ render json: { url: url }
71
+ end
72
+
73
+ private
74
+ ########################################################################
75
+ # Will set session[table_name][:filter] and save last filter settings to session.
76
+ # subroutine of check_filter_options.
77
+ ########################################################################
78
+ def set_session_filter(table_name)
79
+ # models that can not be filtered (for now)
80
+ return if %w(dc_temp dc_memory).include?(CmsHelper.table_param(params))
81
+ # field_name should exist on set filter condition
82
+ return if params[:filter_oper] && params[:filter_field].blank?
83
+
84
+ filter_value = if params[:filter_value].nil?
85
+ #NIL indicates that no filtering is needed
86
+ '#NIL'
87
+ else
88
+ if params[:filter_value].class == String && params[:filter_value][0] == '@'
89
+ # Internal value. Remove leading @ and evaluate expression
90
+ expression = DcInternals.get(params[:filter_value])
91
+ eval(expression) rescue '#NIL'
92
+ else
93
+ # No filter when empty
94
+ params[:filter_value] == '' ? '#NIL' : params[:filter_value]
95
+ end
96
+ end
97
+ # if filter field parameter is omitted then just set filter value
98
+ session[table_name][:filter] =
99
+ if params[:filter_field].nil?
100
+ saved = YAML.load(session[table_name][:filter])
101
+ saved['value'] = filter_value
102
+ saved.to_yaml
103
+ else
104
+ # as field defined. Split name and alternative input field
105
+ field = if params[:filter_field].match(' as ')
106
+ params[:filter_input] = params[:filter_field].split(' as ').last.strip
107
+ params[:filter_field].split(' as ').first.strip
108
+ else
109
+ params[:filter_field]
110
+ end
111
+
112
+ {'field' => field,
113
+ 'operation' => params[:filter_oper],
114
+ 'value' => filter_value,
115
+ 'input' => params[:filter_input],
116
+ 'table' => table_name }.to_yaml
117
+ end
118
+ # must be. Otherwise kaminari includes parames on paging links
119
+ params[:filter_id] = nil
120
+ params[:filter_oper] = nil
121
+ params[:filter_input] = nil
122
+ params[:filter_field] = nil
123
+ end
124
+
125
+ end
@@ -49,7 +49,7 @@ def project_refresh
49
49
  updated_at: File.mtime(file_name)).save
50
50
  end
51
51
  end
52
- render json: { url: url_for(controller: :cmsedit, table: :dc_temp, form_name: :dc_help_1) }
52
+ render json: { url: url_for(controller: 'cmsedit', table: :dc_temp, form_name: :dc_help_1) }
53
53
  end
54
54
 
55
55
  ######################################################################
@@ -1,4 +1,3 @@
1
- #encoding: utf-8
2
1
  #--
3
2
  # Copyright (c) 2014+ Damjan Rems
4
3
  #
@@ -38,7 +38,7 @@ end
38
38
  # Filter action called. Update url to reflect filter conditions and reload form.
39
39
  ######################################################################
40
40
  def do_filter
41
- url = url_for(controller: :cmsedit, action: :index, table: :dc_poll_result,
41
+ url = url_for(controller: 'cmsedit', action: :index, table: :dc_poll_result,
42
42
  'record[dc_poll_id]' => params[:record][:dc_poll_id],
43
43
  'record[start_date]' => params[:record][:start_date],
44
44
  'record[end_date]' => params[:record][:end_date]
@@ -39,7 +39,7 @@ end
39
39
  # If exists, set report section as form, so it can be used to display result.
40
40
  ######################################################################
41
41
  def dc_update_form
42
- return unless @form && @form['report'] && params[:table] == 'dc_temp'
42
+ return unless @form && @form['report'] && CmsHelper.table_param(params) == 'dc_temp'
43
43
 
44
44
  @form = @form['report']
45
45
  end
@@ -94,7 +94,7 @@ result_set:
94
94
  type: delete
95
95
  title: Delete it
96
96
  icon: delete.png
97
- icon: arrow-left
97
+ icon: arrow_back
98
98
  icon: home
99
99
  4:
100
100
  type: link