drg_cms 0.6.0.6 → 0.6.1.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (96) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +25 -10
  3. data/app/assets/javascripts/drg_cms/drg_cms.js +281 -106
  4. data/app/assets/stylesheets/drg_cms/drg_cms.css +417 -152
  5. data/app/assets/stylesheets/drg_cms/select-multiple.css +9 -12
  6. data/app/assets/stylesheets/drg_cms_cms.css +1 -1
  7. data/app/controllers/cmsedit_controller.rb +247 -175
  8. data/app/controllers/dc_application_controller.rb +251 -173
  9. data/app/controllers/dc_common_controller.rb +81 -48
  10. data/app/controls/dc_help_control.rb +126 -0
  11. data/app/controls/dc_report.rb +223 -0
  12. data/app/forms/all_options.yml +38 -10
  13. data/app/forms/cms_menu.yml +7 -1
  14. data/app/forms/dc_big_table.yml +1 -0
  15. data/app/forms/dc_big_table_value.yml +1 -0
  16. data/app/forms/dc_category.yml +2 -1
  17. data/app/forms/dc_design.yml +1 -0
  18. data/app/forms/dc_help_1.yml +109 -0
  19. data/app/forms/dc_journal.yml +3 -1
  20. data/app/forms/dc_link.yml +1 -1
  21. data/app/forms/dc_menu.yml +2 -0
  22. data/app/forms/dc_menu_item.yml +1 -0
  23. data/app/forms/dc_page.yml +6 -0
  24. data/app/forms/dc_part.yml +1 -0
  25. data/app/forms/dc_piece.yml +1 -0
  26. data/app/forms/dc_poll.yml +15 -5
  27. data/app/forms/dc_poll_item.yml +2 -1
  28. data/app/forms/dc_poll_result.yml +9 -0
  29. data/app/forms/dc_simple_menu.yml +2 -0
  30. data/app/forms/dc_site.yml +4 -12
  31. data/app/forms/dc_user.yml +27 -11
  32. data/app/forms/dc_user_role.yml +3 -0
  33. data/app/helpers/cms_common_helper.rb +375 -0
  34. data/app/helpers/{cmsedit_edit_helper.rb → cms_edit_helper.rb} +109 -65
  35. data/app/helpers/{cmsedit_helper.rb → cms_helper.rb} +93 -48
  36. data/app/helpers/{cmsedit_index_helper.rb → cms_index_helper.rb} +240 -206
  37. data/app/helpers/dc_application_helper.rb +108 -327
  38. data/app/models/concerns/dc_page_concern.rb +14 -4
  39. data/app/models/concerns/dc_piece_concern.rb +1 -1
  40. data/app/models/concerns/dc_policy_rule_concern.rb +20 -8
  41. data/app/models/concerns/dc_site_concern.rb +67 -44
  42. data/app/models/concerns/dc_user_concern.rb +58 -19
  43. data/app/models/dc_design.rb +29 -19
  44. data/app/models/dc_filter.rb +26 -18
  45. data/app/models/dc_key_value_store.rb +1 -0
  46. data/app/models/dc_permission.rb +49 -9
  47. data/app/models/dc_policy.rb +25 -14
  48. data/app/models/dc_policy_role.rb +22 -11
  49. data/app/models/dc_poll.rb +1 -0
  50. data/app/models/dc_poll_result.rb +4 -2
  51. data/app/models/dc_temp.rb +6 -3
  52. data/app/models/dc_user_role.rb +2 -2
  53. data/app/models/drgcms_form_fields/date_picker.rb +6 -3
  54. data/app/models/drgcms_form_fields/datetime_picker.rb +4 -3
  55. data/app/models/drgcms_form_fields/drgcms_field.rb +20 -5
  56. data/app/models/drgcms_form_fields/embedded.rb +23 -16
  57. data/app/models/drgcms_form_fields/file_field.rb +2 -2
  58. data/app/models/drgcms_form_fields/file_select.rb +2 -2
  59. data/app/models/drgcms_form_fields/hash_field.rb +11 -7
  60. data/app/models/drgcms_form_fields/hidden_field.rb +1 -1
  61. data/app/models/drgcms_form_fields/link_to.rb +2 -2
  62. data/app/models/drgcms_form_fields/method.rb +66 -0
  63. data/app/models/drgcms_form_fields/multitext_autocomplete.rb +18 -12
  64. data/app/models/drgcms_form_fields/number_field.rb +4 -3
  65. data/app/models/drgcms_form_fields/radio.rb +10 -5
  66. data/app/models/drgcms_form_fields/readonly.rb +13 -17
  67. data/app/models/drgcms_form_fields/select.rb +58 -41
  68. data/app/models/drgcms_form_fields/text_autocomplete.rb +41 -33
  69. data/app/models/drgcms_form_fields.rb +12 -1
  70. data/app/renderers/dc_big_menu_renderer.rb +1 -0
  71. data/app/renderers/dc_gallery_renderer.rb +1 -0
  72. data/app/renderers/dc_menu_renderer.rb +1 -0
  73. data/app/renderers/dc_page_renderer.rb +8 -6
  74. data/app/renderers/dc_part_renderer.rb +1 -0
  75. data/app/renderers/dc_piece_renderer.rb +1 -1
  76. data/app/renderers/dc_poll_renderer.rb +56 -55
  77. data/app/renderers/dc_renderer.rb +1 -0
  78. data/app/renderers/dc_simple_menu_renderer.rb +1 -0
  79. data/app/views/cmsedit/_edit_stuff.html.erb +5 -2
  80. data/app/views/cmsedit/edit.html.erb +4 -1
  81. data/app/views/cmsedit/index.html.erb +3 -2
  82. data/app/views/cmsedit/new.html.erb +5 -2
  83. data/app/views/dc_common/_help.html.erb +17 -0
  84. data/app/views/layouts/models.html.erb +2 -1
  85. data/config/locales/drgcms_en.yml +17 -2
  86. data/config/locales/drgcms_sl.yml +22 -4
  87. data/config/locales/models_en.yml +16 -7
  88. data/config/locales/models_sl.yml +21 -12
  89. data/drg_cms.gemspec +16 -16
  90. data/lib/drg_cms/version.rb +1 -1
  91. data/lib/drg_cms.rb +98 -0
  92. data/lib/generators/new_drg_form/new_drg_form_generator.rb +5 -3
  93. data/lib/tasks/database.rake +6 -56
  94. metadata +39 -35
  95. data/app/helpers/application_helper.rb +0 -2
  96. data/app/models/__dc_dummy.rb +0 -102
data/drg_cms.gemspec CHANGED
@@ -1,26 +1,26 @@
1
- # Copyright 2012-2016 Damjan Rems
1
+ # Copyright 2012-2021 Damjan Rems
2
2
 
3
- $:.push File.expand_path("../lib", __FILE__)
3
+ $:.push File.expand_path('../lib', __FILE__)
4
4
 
5
- # Maintain your gem's version:
6
- require "drg_cms/version"
5
+ # Maintain gem's version:
6
+ require 'drg_cms/version'
7
7
 
8
- # Describe your gem and declare its dependencies:
8
+ # Describe gem and declare its dependencies:
9
9
  Gem::Specification.new do |s|
10
- s.name = "drg_cms"
10
+ s.name = 'drg_cms'
11
11
  s.version = DrgCms::VERSION
12
- s.authors = ["Damjan Rems"]
13
- s.email = ["damjan.rems@gmail.com"]
14
- s.homepage = "http://www.drgcms.org"
15
- s.summary = "DRG: Rapid web application development tool and CMS for Ruby, Rails and MongoDB"
16
- s.description = "DRG, development tool for rapid building of in-house (Intranet, private cloud) applications as well as CMS for creating complex, data-entry intensive web sites."
17
- s.license = "MIT"
18
- s.files = Dir["{app,config,db,lib}/**/*"] + ["MIT-LICENSE", "Rakefile", "README.md", "History.log", "drg_cms.gemspec"]
19
- s.test_files = Dir["test/**/*"]
12
+ s.authors = ['Damjan Rems']
13
+ s.email = ['damjan.rems@gmail.com']
14
+ s.homepage = 'https://www.drgcms.org'
15
+ s.summary = 'DRG: Rapid web application development tool and CMS for Ruby, Rails and MongoDB'
16
+ s.description = 'DRG, development tool for rapid building of in-house (Intranet, private cloud) applications as well as CMS for creating complex, data-entry intensive web sites.'
17
+ s.license = 'MIT'
18
+ s.files = Dir['{app,config,db,lib}/**/*'] + %w[MIT-LICENSE Rakefile README.md History.log drg_cms.gemspec]
19
+ s.test_files = Dir['test/**/*']
20
20
 
21
- s.required_ruby_version = '>= 2.5'
21
+ s.required_ruby_version = '>= 2.7'
22
22
 
23
- s.add_dependency 'rails', '~> 6'
23
+ s.add_dependency 'rails', '~> 6.1'
24
24
  s.add_dependency 'jquery-rails'
25
25
  s.add_dependency 'jquery-ui-rails'
26
26
  s.add_dependency 'non-stupid-digest-assets'
@@ -23,5 +23,5 @@
23
23
 
24
24
  # drg_cms gem version
25
25
  module DrgCms #:nodoc:
26
- VERSION = '0.6.0.6'
26
+ VERSION = '0.6.1.4'.freeze
27
27
  end
data/lib/drg_cms.rb CHANGED
@@ -118,6 +118,103 @@ def self.from_root(file=nil)
118
118
  File.expand_path("../../#{file}", __FILE__).to_s
119
119
  end
120
120
 
121
+ ####################################################################
122
+ # Checks if any errors exist on document and writes error log. It can also
123
+ # crash if requested. This is mostly usefull in development for debuging
124
+ # model errors or when updating multiple collections and each save must be
125
+ # checked if succesfull.
126
+ #
127
+ # @param [Document] Document object which will be checked
128
+ # @param [Boolean] If true method should end in runtime error. Default = false.
129
+ #
130
+ # @return [String] Error messages or empty string if everything is OK.
131
+ #
132
+ # @Example Check for error when data is saved.
133
+ # model.save
134
+ # if (msg = DrgCms.model_check(model) ).size > 0
135
+ # p msg
136
+ # error process ......
137
+ # end
138
+ #
139
+ ####################################################################
140
+ def self.model_check(document, crash = false)
141
+ return nil unless document.errors.any?
142
+
143
+ msg = ""
144
+ document.errors.each do |attribute, errors_array|
145
+ msg << "#{attribute}: #{errors_array}\n"
146
+ end
147
+ #
148
+ if crash and msg.size > 0
149
+ msg = "Validation errors in #{document.class}:\n" + msg
150
+ pp msg
151
+ Rails.logger.error(msg)
152
+ raise "Validation error. See log for more information."
153
+ end
154
+ msg
155
+ end
156
+
157
+ ########################################################################
158
+ # Determines if redis cache store is active
159
+ #
160
+ # @return [Boolean] : True if redis cache store is active
161
+ ########################################################################
162
+ def self.redis_cache_store?
163
+ (Rails.application.config.cache_store.first == :redis_cache_store) rescue false
164
+ end
165
+
166
+ ####################################################################
167
+ # Clear cache. If key is specified only this key will be deleted.
168
+ #
169
+ # @param [String] Optional key to be deleted
170
+ ####################################################################
171
+ def self.cache_clear(key = nil)
172
+ return Rails.cache.clear if key.nil?
173
+
174
+ if redis_cache_store?
175
+ Rails.cache.redis.del(key)
176
+ else
177
+ Rails.cache.delete_matched("#{key}*")
178
+ end
179
+ end
180
+
181
+ ####################################################################
182
+ # Read from cache
183
+ #
184
+ # @keys [Array] Array of keys
185
+ #
186
+ # @return [Object] Data returned from cache
187
+ ####################################################################
188
+ def self.cache_read(keys)
189
+ if redis_cache_store?
190
+ keys = keys.dup
191
+ first = keys.shift
192
+ data = Rails.cache.redis.hget(first, keys.join(''))
193
+ data ? Marshal.load(data) : nil
194
+ else
195
+ Rails.cache.read(keys.join(''))
196
+ end
197
+ end
198
+
199
+ ####################################################################
200
+ # Write data to cache
201
+ #
202
+ # @param [Array] keys : array of keys
203
+ # @param [Object] data : Document object
204
+ #
205
+ # @return [Object] data so dc_cache_write can be used as last statement in method.
206
+ ####################################################################
207
+ def self.cache_write(keys, data)
208
+ if redis_cache_store?
209
+ keys = keys.dup
210
+ first = keys.shift
211
+ Rails.cache.redis.hset(first, keys.join(''), Marshal.dump(data))
212
+ else
213
+ Rails.cache.write(keys.join(''), data)
214
+ end
215
+ data
216
+ end
217
+
121
218
  ###############################################################################
122
219
  # All Routes required by DrgCms.
123
220
  #
@@ -138,6 +235,7 @@ def self.routes
138
235
  match 'dc_common/paste_clipboard' => :paste_clipboard, via: [:get, :post]
139
236
  put 'dc_common/restore_from_journal' => :restore_from_journal
140
237
  get 'dc_common/add_json_ld_schema' => :add_json_ld_schema
238
+ get 'dc_common/help' => :help
141
239
  end
142
240
  match 'elfinder' => 'dc_elfinder#connector', via: [:get, :post]
143
241
  match 'cmsedit/run' => 'cmsedit#run', via: [:get, :put, :post]
@@ -14,11 +14,13 @@ def create_form_file
14
14
  form_name = file_name #if formname.size == 0
15
15
  begin
16
16
  @model = file_name.classify.constantize
17
- rescue e
18
- logger.error ([e.message]+e.backtrace).join($/)
17
+ rescue Exception => e
18
+ msg = ([e.message]+e.backtrace).join($/)
19
+ Rails.logger.error(msg)
20
+ pp msg
19
21
  @model = nil
20
22
  end
21
- return (p "Error loading #{file_name.classify} model! Aborting.") if @model.nil?
23
+ return (pp "Error loading #{file_name.classify} model! Aborting.") if @model.nil?
22
24
  #
23
25
  yml = top_level_options + index_options + result_set_options + form_top_options + form_fields_options + localize_options
24
26
  create_file "app/forms/#{form_name}.yml", yml
@@ -6,61 +6,9 @@
6
6
  #########################################################################
7
7
  def determine_model(path)
8
8
  path =~ /(.*)\/(.*).rb/
9
- begin
10
- $2.camelize.constantize
11
- rescue Exception # it happends
12
- nil
13
- end
9
+ $2.camelize.constantize rescue nil # nil happens
14
10
  end
15
11
 
16
- #########################################################################
17
- # Create index for single module
18
- #########################################################################
19
- def create_index(model)
20
- return if model.index_specifications.empty?
21
- #
22
- if !model.embedded? || model.cyclic?
23
- @logger.info("DRGCMS: Creating indexes on #{model}:")
24
- model.create_indexes
25
- model.index_specifications.each do |spec|
26
- @logger.info("DRGCMS: Index: #{spec.key}, Options: #{spec.options}")
27
- end
28
- model
29
- else
30
- @logger.info("DRGCMS: Index ignored on: #{model}, please define in the root model.")
31
- nil
32
- end
33
- end
34
-
35
- #########################################################################
36
- # Will remove all undefined indexes from collection.
37
- #########################################################################
38
- def remove_undefined_indexes(model)
39
- return if model.embedded?
40
- #
41
- begin
42
- undefined = []
43
- model.collection.indexes.each do |index|
44
- # ignore default index
45
- next if index['name'] == '_id_'
46
-
47
- key = index['key'].symbolize_keys
48
- spec = model.index_specification(key)
49
- undefined << index unless spec
50
- end
51
- rescue Mongo::Error::OperationFailure; end
52
- #
53
- undefined.each do |index|
54
- key = index['key'].symbolize_keys
55
- collection = model.collection
56
- collection.indexes.drop(key)
57
- @logger.info(
58
- "MONGOID: Removed index '#{index['name']}' on collection " +
59
- "'#{collection.name}' in database '#{collection.database.name}'."
60
- )
61
- end
62
- end
63
-
64
12
  #########################################################################
65
13
  # Return array of all models found in application.
66
14
  #########################################################################
@@ -70,7 +18,7 @@ def all_models()
70
18
  models_dir = File.expand_path("../models", path)
71
19
  Dir["#{models_dir}/*.rb"].each do |model_file|
72
20
  model = determine_model(model_file)
73
- models << model if !model.nil? and model.respond_to?(:index_specifications)
21
+ models << model if model and model.respond_to?(:index_specifications)
74
22
  end
75
23
  end
76
24
  models
@@ -82,12 +30,14 @@ end
82
30
  namespace :drg_cms do
83
31
  desc "Create indexes for all mongoid models. Including those in gem plugins."
84
32
  task :create_indexes => :environment do
85
- all_models.each {|model| create_index(model)}
33
+ @logger.info( "MONGOID: Checking indexes.")
34
+ Mongoid::Tasks::Database.create_indexes(all_models)
86
35
  end
87
36
 
88
37
  desc "Remove undefined indexes for all mongoid models. Including those in gem plugins."
89
38
  task :remove_undefined_indexes => :environment do
90
- all_models.each {|model| remove_undefined_indexes(model)}
39
+ @logger.info( "MONGOID: Remove undefined indexes.")
40
+ Mongoid::Tasks::Database.remove_undefined_indexes(all_models)
91
41
  end
92
42
 
93
43
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: drg_cms
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0.6
4
+ version: 0.6.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Damjan Rems
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-06-13 00:00:00.000000000 Z
11
+ date: 2021-09-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '6'
19
+ version: '6.1'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '6'
26
+ version: '6.1'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: jquery-rails
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -210,8 +210,10 @@ files:
210
210
  - app/controllers/dc_common_controller.rb
211
211
  - app/controllers/dc_main_controller.rb
212
212
  - app/controls/browse_models_control.rb
213
+ - app/controls/dc_help_control.rb
213
214
  - app/controls/dc_page_control.rb
214
215
  - app/controls/dc_poll_result_control.rb
216
+ - app/controls/dc_report.rb
215
217
  - app/controls/design_element_settings_control.rb
216
218
  - app/forms/all_options.yml
217
219
  - app/forms/cms_forms.yml
@@ -227,6 +229,7 @@ files:
227
229
  - app/forms/dc_filter.yml
228
230
  - app/forms/dc_folder_permission.yml
229
231
  - app/forms/dc_gallery.yml
232
+ - app/forms/dc_help_1.yml
230
233
  - app/forms/dc_ident.yml
231
234
  - app/forms/dc_journal.yml
232
235
  - app/forms/dc_json_ld.yml
@@ -256,12 +259,11 @@ files:
256
259
  - app/forms/dc_user_role.yml
257
260
  - app/forms/drgcms_cms.yml
258
261
  - app/forms/json_ld_schema.yml
259
- - app/helpers/application_helper.rb
260
- - app/helpers/cmsedit_edit_helper.rb
261
- - app/helpers/cmsedit_helper.rb
262
- - app/helpers/cmsedit_index_helper.rb
262
+ - app/helpers/cms_common_helper.rb
263
+ - app/helpers/cms_edit_helper.rb
264
+ - app/helpers/cms_helper.rb
265
+ - app/helpers/cms_index_helper.rb
263
266
  - app/helpers/dc_application_helper.rb
264
- - app/models/__dc_dummy.rb
265
267
  - app/models/concerns/dc_page_concern.rb
266
268
  - app/models/concerns/dc_piece_concern.rb
267
269
  - app/models/concerns/dc_policy_rule_concern.rb
@@ -325,6 +327,7 @@ files:
325
327
  - app/models/drgcms_form_fields/html_field.rb
326
328
  - app/models/drgcms_form_fields/journal_diff.rb
327
329
  - app/models/drgcms_form_fields/link_to.rb
330
+ - app/models/drgcms_form_fields/method.rb
328
331
  - app/models/drgcms_form_fields/multitext_autocomplete.rb
329
332
  - app/models/drgcms_form_fields/number_field.rb
330
333
  - app/models/drgcms_form_fields/password_field.rb
@@ -359,6 +362,7 @@ files:
359
362
  - app/views/cmsedit/index.html.erb
360
363
  - app/views/cmsedit/login.html.erb
361
364
  - app/views/cmsedit/new.html.erb
365
+ - app/views/dc_common/_help.html.erb
362
366
  - app/views/dc_common/_iframe_edit.html.erb
363
367
  - app/views/dc_common/paste_clipboard.html.erb
364
368
  - app/views/layouts/__cmsedit.html.erb
@@ -421,11 +425,11 @@ files:
421
425
  - test/dummy/script/rails
422
426
  - test/integration/navigation_test.rb
423
427
  - test/lib/generators/new_drg_form_generator_test.rb
424
- homepage: http://www.drgcms.org
428
+ homepage: https://www.drgcms.org
425
429
  licenses:
426
430
  - MIT
427
431
  metadata: {}
428
- post_install_message:
432
+ post_install_message:
429
433
  rdoc_options: []
430
434
  require_paths:
431
435
  - lib
@@ -433,47 +437,47 @@ required_ruby_version: !ruby/object:Gem::Requirement
433
437
  requirements:
434
438
  - - ">="
435
439
  - !ruby/object:Gem::Version
436
- version: '2.5'
440
+ version: '2.7'
437
441
  required_rubygems_version: !ruby/object:Gem::Requirement
438
442
  requirements:
439
443
  - - ">="
440
444
  - !ruby/object:Gem::Version
441
445
  version: '0'
442
446
  requirements: []
443
- rubygems_version: 3.0.3
444
- signing_key:
447
+ rubygems_version: 3.2.22
448
+ signing_key:
445
449
  specification_version: 4
446
450
  summary: 'DRG: Rapid web application development tool and CMS for Ruby, Rails and
447
451
  MongoDB'
448
452
  test_files:
449
- - test/lib/generators/new_drg_form_generator_test.rb
450
453
  - test/drg_cms_test.rb
451
- - test/integration/navigation_test.rb
452
454
  - test/dummy/README.rdoc
453
- - test/dummy/config/locales/en.yml
454
- - test/dummy/config/initializers/secret_token.rb
455
+ - test/dummy/Rakefile
456
+ - test/dummy/app/assets/javascripts/application.js
457
+ - test/dummy/app/assets/stylesheets/application.css
458
+ - test/dummy/app/controllers/application_controller.rb
459
+ - test/dummy/app/helpers/application_helper.rb
460
+ - test/dummy/app/views/layouts/application.html.erb
461
+ - test/dummy/config/application.rb
462
+ - test/dummy/config/boot.rb
463
+ - test/dummy/config/database.yml
464
+ - test/dummy/config/environment.rb
465
+ - test/dummy/config/environments/development.rb
466
+ - test/dummy/config/environments/production.rb
467
+ - test/dummy/config/environments/test.rb
455
468
  - test/dummy/config/initializers/backtrace_silencers.rb
456
469
  - test/dummy/config/initializers/inflections.rb
457
- - test/dummy/config/initializers/session_store.rb
458
470
  - test/dummy/config/initializers/mime_types.rb
471
+ - test/dummy/config/initializers/secret_token.rb
472
+ - test/dummy/config/initializers/session_store.rb
459
473
  - test/dummy/config/initializers/wrap_parameters.rb
460
- - test/dummy/config/environment.rb
461
- - test/dummy/config/application.rb
462
- - test/dummy/config/database.yml
474
+ - test/dummy/config/locales/en.yml
463
475
  - test/dummy/config/routes.rb
464
- - test/dummy/config/boot.rb
465
- - test/dummy/config/environments/development.rb
466
- - test/dummy/config/environments/test.rb
467
- - test/dummy/config/environments/production.rb
468
- - test/dummy/public/favicon.ico
476
+ - test/dummy/config.ru
469
477
  - test/dummy/public/404.html
470
478
  - test/dummy/public/422.html
471
479
  - test/dummy/public/500.html
472
- - test/dummy/Rakefile
473
- - test/dummy/app/controllers/application_controller.rb
474
- - test/dummy/app/views/layouts/application.html.erb
475
- - test/dummy/app/helpers/application_helper.rb
476
- - test/dummy/app/assets/javascripts/application.js
477
- - test/dummy/app/assets/stylesheets/application.css
478
- - test/dummy/config.ru
480
+ - test/dummy/public/favicon.ico
479
481
  - test/dummy/script/rails
482
+ - test/integration/navigation_test.rb
483
+ - test/lib/generators/new_drg_form_generator_test.rb
@@ -1,2 +0,0 @@
1
- module ApplicationHelper
2
- end
@@ -1,102 +0,0 @@
1
- #--
2
- # Copyright (c) 2012+ 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
- # == Schema information
26
- #
27
- # Collection name: dc_dummy : Collection name used when form does not belong to database model.
28
- #
29
- # _id BSON::ObjectId _id
30
- #
31
- # Which is not collection at all. DcDummy model is used for entering data on forms
32
- # where data will not be saved to database but will instead be processed by custom
33
- # made routine. For example entering begin and end date on report.
34
- #
35
- # Example (as used in forms):
36
- #
37
- # table: dc_dummy
38
- # title: Enter time period
39
- #
40
- # form:
41
- # actions:
42
- # 1:
43
- # type: ajax
44
- # method: post
45
- # controller: reports
46
- # action: do_some_report
47
- # caption: Run report
48
- #
49
- # fields:
50
- # 10:
51
- # name: date_start
52
- # type: date_picker
53
- # caption: Start date
54
- # 20:
55
- # name: date_end
56
- # type: date_picker
57
- # caption: End date
58
- #
59
- # And suppose your report saved data to file named public/report.pdf.
60
- # Put this line at the end of do_some_report method:
61
- #
62
- # render inline: { :window_report => '/report.pdf' }.to_json, formats: 'js'
63
- #
64
- # As result report.pdf file will be opened in new browser window.
65
- ########################################################################
66
- class DcDummy
67
- include Mongoid::Document
68
-
69
- ########################################################################
70
- # Respond_to should always return true.
71
- ########################################################################
72
- def respond_to?(m)
73
- true
74
- end
75
-
76
- ########################################################################
77
- # Redefine send method. Send is used to assign value by cmsedit controller.
78
- ########################################################################
79
- def send(field,value=nil)
80
- if field.to_s.match('=')
81
- field.chomp!('=')
82
- @internals ||= {}
83
- @internals[field] = value
84
- end
85
- end
86
-
87
- ########################################################################
88
- # Method missing will return value if value defined by m parameter is saved to
89
- # @internals array or will assign new value to @internals hash if m matches '='.
90
- ########################################################################
91
- def method_missing(m, *args, &block) #:nodoc:
92
- @internals ||= {}
93
- m = m.to_s
94
- if m.match('=')
95
- m.chomp!('=')
96
- @internals[m] = args.first
97
- else
98
- @internals[m]
99
- end
100
- end
101
-
102
- end