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.
- checksums.yaml +4 -4
- data/README.md +25 -10
- data/app/assets/javascripts/drg_cms/drg_cms.js +281 -106
- data/app/assets/stylesheets/drg_cms/drg_cms.css +417 -152
- data/app/assets/stylesheets/drg_cms/select-multiple.css +9 -12
- data/app/assets/stylesheets/drg_cms_cms.css +1 -1
- data/app/controllers/cmsedit_controller.rb +247 -175
- data/app/controllers/dc_application_controller.rb +251 -173
- data/app/controllers/dc_common_controller.rb +81 -48
- data/app/controls/dc_help_control.rb +126 -0
- data/app/controls/dc_report.rb +223 -0
- data/app/forms/all_options.yml +38 -10
- data/app/forms/cms_menu.yml +7 -1
- data/app/forms/dc_big_table.yml +1 -0
- data/app/forms/dc_big_table_value.yml +1 -0
- data/app/forms/dc_category.yml +2 -1
- data/app/forms/dc_design.yml +1 -0
- data/app/forms/dc_help_1.yml +109 -0
- data/app/forms/dc_journal.yml +3 -1
- data/app/forms/dc_link.yml +1 -1
- data/app/forms/dc_menu.yml +2 -0
- data/app/forms/dc_menu_item.yml +1 -0
- data/app/forms/dc_page.yml +6 -0
- data/app/forms/dc_part.yml +1 -0
- data/app/forms/dc_piece.yml +1 -0
- data/app/forms/dc_poll.yml +15 -5
- data/app/forms/dc_poll_item.yml +2 -1
- data/app/forms/dc_poll_result.yml +9 -0
- data/app/forms/dc_simple_menu.yml +2 -0
- data/app/forms/dc_site.yml +4 -12
- data/app/forms/dc_user.yml +27 -11
- data/app/forms/dc_user_role.yml +3 -0
- data/app/helpers/cms_common_helper.rb +375 -0
- data/app/helpers/{cmsedit_edit_helper.rb → cms_edit_helper.rb} +109 -65
- data/app/helpers/{cmsedit_helper.rb → cms_helper.rb} +93 -48
- data/app/helpers/{cmsedit_index_helper.rb → cms_index_helper.rb} +240 -206
- data/app/helpers/dc_application_helper.rb +108 -327
- data/app/models/concerns/dc_page_concern.rb +14 -4
- data/app/models/concerns/dc_piece_concern.rb +1 -1
- data/app/models/concerns/dc_policy_rule_concern.rb +20 -8
- data/app/models/concerns/dc_site_concern.rb +67 -44
- data/app/models/concerns/dc_user_concern.rb +58 -19
- data/app/models/dc_design.rb +29 -19
- data/app/models/dc_filter.rb +26 -18
- data/app/models/dc_key_value_store.rb +1 -0
- data/app/models/dc_permission.rb +49 -9
- data/app/models/dc_policy.rb +25 -14
- data/app/models/dc_policy_role.rb +22 -11
- data/app/models/dc_poll.rb +1 -0
- data/app/models/dc_poll_result.rb +4 -2
- data/app/models/dc_temp.rb +6 -3
- data/app/models/dc_user_role.rb +2 -2
- data/app/models/drgcms_form_fields/date_picker.rb +6 -3
- data/app/models/drgcms_form_fields/datetime_picker.rb +4 -3
- data/app/models/drgcms_form_fields/drgcms_field.rb +20 -5
- data/app/models/drgcms_form_fields/embedded.rb +23 -16
- data/app/models/drgcms_form_fields/file_field.rb +2 -2
- data/app/models/drgcms_form_fields/file_select.rb +2 -2
- data/app/models/drgcms_form_fields/hash_field.rb +11 -7
- data/app/models/drgcms_form_fields/hidden_field.rb +1 -1
- data/app/models/drgcms_form_fields/link_to.rb +2 -2
- data/app/models/drgcms_form_fields/method.rb +66 -0
- data/app/models/drgcms_form_fields/multitext_autocomplete.rb +18 -12
- data/app/models/drgcms_form_fields/number_field.rb +4 -3
- data/app/models/drgcms_form_fields/radio.rb +10 -5
- data/app/models/drgcms_form_fields/readonly.rb +13 -17
- data/app/models/drgcms_form_fields/select.rb +58 -41
- data/app/models/drgcms_form_fields/text_autocomplete.rb +41 -33
- data/app/models/drgcms_form_fields.rb +12 -1
- data/app/renderers/dc_big_menu_renderer.rb +1 -0
- data/app/renderers/dc_gallery_renderer.rb +1 -0
- data/app/renderers/dc_menu_renderer.rb +1 -0
- data/app/renderers/dc_page_renderer.rb +8 -6
- data/app/renderers/dc_part_renderer.rb +1 -0
- data/app/renderers/dc_piece_renderer.rb +1 -1
- data/app/renderers/dc_poll_renderer.rb +56 -55
- data/app/renderers/dc_renderer.rb +1 -0
- data/app/renderers/dc_simple_menu_renderer.rb +1 -0
- data/app/views/cmsedit/_edit_stuff.html.erb +5 -2
- data/app/views/cmsedit/edit.html.erb +4 -1
- data/app/views/cmsedit/index.html.erb +3 -2
- data/app/views/cmsedit/new.html.erb +5 -2
- data/app/views/dc_common/_help.html.erb +17 -0
- data/app/views/layouts/models.html.erb +2 -1
- data/config/locales/drgcms_en.yml +17 -2
- data/config/locales/drgcms_sl.yml +22 -4
- data/config/locales/models_en.yml +16 -7
- data/config/locales/models_sl.yml +21 -12
- data/drg_cms.gemspec +16 -16
- data/lib/drg_cms/version.rb +1 -1
- data/lib/drg_cms.rb +98 -0
- data/lib/generators/new_drg_form/new_drg_form_generator.rb +5 -3
- data/lib/tasks/database.rake +6 -56
- metadata +39 -35
- data/app/helpers/application_helper.rb +0 -2
- data/app/models/__dc_dummy.rb +0 -102
data/drg_cms.gemspec
CHANGED
@@ -1,26 +1,26 @@
|
|
1
|
-
# Copyright 2012-
|
1
|
+
# Copyright 2012-2021 Damjan Rems
|
2
2
|
|
3
|
-
$:.push File.expand_path(
|
3
|
+
$:.push File.expand_path('../lib', __FILE__)
|
4
4
|
|
5
|
-
# Maintain
|
6
|
-
require
|
5
|
+
# Maintain gem's version:
|
6
|
+
require 'drg_cms/version'
|
7
7
|
|
8
|
-
# Describe
|
8
|
+
# Describe gem and declare its dependencies:
|
9
9
|
Gem::Specification.new do |s|
|
10
|
-
s.name =
|
10
|
+
s.name = 'drg_cms'
|
11
11
|
s.version = DrgCms::VERSION
|
12
|
-
s.authors = [
|
13
|
-
s.email = [
|
14
|
-
s.homepage =
|
15
|
-
s.summary =
|
16
|
-
s.description =
|
17
|
-
s.license =
|
18
|
-
s.files
|
19
|
-
s.test_files
|
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.
|
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'
|
data/lib/drg_cms/version.rb
CHANGED
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
|
-
|
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 (
|
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
|
data/lib/tasks/database.rake
CHANGED
@@ -6,61 +6,9 @@
|
|
6
6
|
#########################################################################
|
7
7
|
def determine_model(path)
|
8
8
|
path =~ /(.*)\/(.*).rb/
|
9
|
-
|
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
|
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
|
-
|
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
|
-
|
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.
|
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:
|
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/
|
260
|
-
- app/helpers/
|
261
|
-
- app/helpers/
|
262
|
-
- app/helpers/
|
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:
|
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.
|
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.
|
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/
|
454
|
-
- test/dummy/
|
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/
|
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
|
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/
|
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
|
data/app/models/__dc_dummy.rb
DELETED
@@ -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
|