drg_cms 0.6.1.1.1 → 0.6.1.4
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.
- checksums.yaml +4 -4
- data/README.md +25 -10
- data/app/assets/javascripts/drg_cms/drg_cms.js +99 -29
- data/app/assets/stylesheets/drg_cms/drg_cms.css +89 -12
- data/app/controllers/dc_application_controller.rb +60 -163
- data/app/controllers/dc_common_controller.rb +49 -45
- data/app/forms/all_options.yml +4 -1
- data/app/forms/dc_page.yml +4 -0
- data/app/helpers/cms_edit_helper.rb +31 -22
- data/app/helpers/cms_index_helper.rb +42 -21
- data/app/helpers/dc_application_helper.rb +31 -44
- data/app/models/concerns/dc_page_concern.rb +3 -2
- data/app/models/concerns/dc_piece_concern.rb +1 -1
- data/app/models/concerns/dc_site_concern.rb +1 -1
- data/app/models/concerns/dc_user_concern.rb +3 -3
- data/app/models/dc_filter.rb +16 -10
- data/app/models/drgcms_form_fields/date_picker.rb +2 -0
- data/app/models/drgcms_form_fields/drgcms_field.rb +2 -1
- data/app/models/drgcms_form_fields/embedded.rb +4 -2
- data/app/models/drgcms_form_fields/number_field.rb +4 -3
- data/app/models/drgcms_form_fields/readonly.rb +13 -17
- data/app/models/drgcms_form_fields/select.rb +8 -9
- data/app/models/drgcms_form_fields/text_autocomplete.rb +17 -11
- data/app/renderers/dc_page_renderer.rb +7 -6
- data/app/views/cmsedit/_edit_stuff.html.erb +5 -2
- data/app/views/cmsedit/edit.html.erb +2 -1
- data/app/views/cmsedit/index.html.erb +1 -1
- data/app/views/cmsedit/new.html.erb +3 -2
- data/config/locales/models_en.yml +2 -0
- data/config/locales/models_sl.yml +4 -3
- data/drg_cms.gemspec +16 -16
- data/lib/drg_cms/version.rb +1 -1
- data/lib/drg_cms.rb +44 -4
- metadata +29 -29
@@ -67,9 +67,11 @@ def render
|
|
67
67
|
tables = @parent.tables.inject('') { |r,v| r << "#{v[1]};" } + @yaml['table']
|
68
68
|
ids = @parent.ids.inject('') { |r,v| r << "#{v};" } + @record.id
|
69
69
|
end
|
70
|
-
|
70
|
+
# edit enabled embedded form on a readonly form
|
71
|
+
readonly = @yaml['readonly'].class == FalseClass ? nil : @readonly
|
72
|
+
opts = { controller: 'cmsedit', action: @yaml['action'],
|
71
73
|
ids: ids, table: tables, form_name: @yaml['form_name'],
|
72
|
-
field_name: @yaml['name'], iframe: "if_#{@yaml['name']}", readonly:
|
74
|
+
field_name: @yaml['name'], iframe: "if_#{@yaml['name']}", readonly: readonly }
|
73
75
|
# additional parameters if specified
|
74
76
|
@yaml['params'].each { |k,v| opts[k] = @parent.dc_value_for_parameter(v) } if @yaml['params']
|
75
77
|
|
@@ -69,14 +69,14 @@ def render
|
|
69
69
|
@yaml['html']['data-delimiter'] = @yaml.dig('format','delimiter') || I18n.t('number.currency.format.delimiter')
|
70
70
|
@yaml['html']['data-separator'] = @yaml.dig('format','separator') || I18n.t('number.currency.format.separator')
|
71
71
|
# @yaml['html']['data-currency'] = @yaml.dig('format','currency') == 'yes' ? I18n.t('number.currency.format.currency') : @yaml.dig('format','currency')
|
72
|
-
value = @record[@yaml['name']] || 0
|
72
|
+
value = @yaml['html']['value'] || @record[@yaml['name']] || 0
|
73
73
|
@yaml['html']['value'] = @parent.dc_format_number(value, @yaml['html']['data-decimal'], @yaml['html']['data-separator'], @yaml['html']['data-delimiter'] )
|
74
74
|
|
75
75
|
return ro_standard(@yaml['html']['value']) if @readonly
|
76
76
|
|
77
77
|
@yaml['html']['autocomplete'] ||= 'off'
|
78
78
|
@html << @parent.hidden_field( record, @yaml['name'], value: value )
|
79
|
-
@html << @parent.text_field( nil,"record_#{@yaml['name']}_", @yaml['html'])
|
79
|
+
@html << @parent.text_field( nil, "record_#{@yaml['name']}_", @yaml['html'])
|
80
80
|
self
|
81
81
|
end
|
82
82
|
|
@@ -85,7 +85,8 @@ end
|
|
85
85
|
###########################################################################
|
86
86
|
def self.get_data(params, name)
|
87
87
|
return 0 if params['record'][name].blank?
|
88
|
-
|
88
|
+
|
89
|
+
params['record'][name].match('.') ? params['record'][name].to_f : params['record'][name].to_i
|
89
90
|
end
|
90
91
|
|
91
92
|
end
|
@@ -51,29 +51,25 @@ class Readonly < DrgcmsField
|
|
51
51
|
###########################################################################
|
52
52
|
# Render readonly field html code
|
53
53
|
###########################################################################
|
54
|
-
def render
|
54
|
+
def render
|
55
55
|
@html << @parent.hidden_field('record', @yaml['name']) # retain field as hidden field
|
56
56
|
@html << '<div class="dc-readonly">'
|
57
|
-
|
57
|
+
|
58
58
|
@html << if @yaml['eval']
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
eval( "#{@yaml['eval']} '#{@record.send(@yaml['name'])}'")
|
70
|
-
end
|
71
|
-
else
|
72
|
-
@parent.dc_format_value(@record.send(@yaml['name']),@yaml['format'])
|
73
|
-
end
|
59
|
+
if @yaml['eval'].match(/dc_name4_id|dc_name_for_id/)
|
60
|
+
parms = @parent.dc_eval_to_array(@yaml['eval'])
|
61
|
+
parms << nil if parms.size == 3
|
62
|
+
@parent.dc_name_for_id(parms[1], parms[2], parms[3], @record[@yaml['name']])
|
63
|
+
else
|
64
|
+
eval( "#{@yaml['eval']} '#{@record.send(@yaml['name'])}'")
|
65
|
+
end
|
66
|
+
else
|
67
|
+
@parent.dc_format_value(@record.send(@yaml['name']), @yaml['format'])
|
68
|
+
end
|
74
69
|
@html << '</div>'
|
75
70
|
self
|
76
71
|
end
|
72
|
+
|
77
73
|
end
|
78
74
|
|
79
75
|
end
|
@@ -96,7 +96,7 @@ def choices_in_eval(e)
|
|
96
96
|
if @yaml['depend'].nil?
|
97
97
|
method = e.split(/\ |\(/).first
|
98
98
|
return eval(e) if respond_to?(method) # id method defined here
|
99
|
-
return eval('@parent.'+e) if @parent.respond_to?(method) # is method defined in helpers
|
99
|
+
return eval('@parent.' + e) if @parent.respond_to?(method) # is method defined in helpers
|
100
100
|
# eval whatever it is there
|
101
101
|
eval e
|
102
102
|
else
|
@@ -120,19 +120,18 @@ end
|
|
120
120
|
###########################################################################
|
121
121
|
def get_choices
|
122
122
|
begin
|
123
|
-
choices = case
|
124
|
-
when @yaml['choices'] then
|
125
|
-
@yaml['choices'].match('helpers.') ? choices_in_helper(@yaml['choices']) : @yaml['choices']
|
123
|
+
choices = case
|
126
124
|
when @yaml['eval'] then
|
127
125
|
choices_in_eval(@yaml['eval'])
|
126
|
+
when @yaml['choices'] then
|
127
|
+
@yaml['choices'].match('helpers.') ? choices_in_helper(@yaml['choices']) : @yaml['choices']
|
128
128
|
else
|
129
129
|
choices_in_helper()
|
130
130
|
end
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
rescue Exception => e
|
131
|
+
return choices unless choices.class == String
|
132
|
+
|
133
|
+
choices.chomp.split(',').map { |e| e.match(':') ? e.split(':') : e }
|
134
|
+
rescue Exception => e
|
136
135
|
Rails.logger.debug "\nError in select eval. #{e.message}\n"
|
137
136
|
Rails.logger.debug(e.backtrace.join($/)) if Rails.env.development?
|
138
137
|
['error'] # return empty array when error occures
|
@@ -76,21 +76,27 @@ def render
|
|
76
76
|
end
|
77
77
|
return ro_standard 'Table or field keyword not defined!' unless (table && ret_name)
|
78
78
|
# TODO check if table exists
|
79
|
-
|
79
|
+
model_klass = table.classify.constantize
|
80
80
|
# find record and return value of field
|
81
81
|
value_send_as = 'p_' + @yaml['name']
|
82
82
|
value = if @parent.params[value_send_as]
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
83
|
+
@parent.params[value_send_as]
|
84
|
+
elsif @record && @record[@yaml['name']]
|
85
|
+
@record[@yaml['name']]
|
86
|
+
end
|
87
|
+
not_id = @parent.dc_dont?(@yaml['is_id'], false)
|
87
88
|
# Found value to be written in field. If field is not found write out value.
|
88
|
-
|
89
|
-
|
90
|
-
|
89
|
+
value_displayed = value
|
90
|
+
if value && !not_id
|
91
|
+
if BSON::ObjectId.legal?(value)
|
92
|
+
record = model_klass.find(value)
|
93
|
+
value_displayed = record.send(ret_name) if record
|
94
|
+
else
|
95
|
+
value_displayed = model_klass.send(ret_name, method, @parent, value)
|
96
|
+
end
|
91
97
|
end
|
92
|
-
# return if readonly
|
93
98
|
return ro_standard(value_displayed) if @readonly
|
99
|
+
|
94
100
|
# Add method back, so autocomplete will know that it must search for method inside class
|
95
101
|
ret_name = "#{ret_name}.#{method}" if method
|
96
102
|
@yaml['html'] ||= {}
|
@@ -108,7 +114,6 @@ def render
|
|
108
114
|
@html << '</span>' + @parent.hidden_field(record, @yaml['name'], value: value) # actual value will be in hidden field
|
109
115
|
# JS stuff
|
110
116
|
# allow unselected values on is_id: false option
|
111
|
-
not_id = @parent.dc_dont?(@yaml['is_id'], false)
|
112
117
|
not_id_code = %(
|
113
118
|
if (ui.item == null) {
|
114
119
|
$("##{record}_#{@yaml['name']}").val($("##{record}__#{@yaml['name']}").val() );
|
@@ -120,7 +125,7 @@ $(document).ready(function() {
|
|
120
125
|
$("##{record}_#{_name}").autocomplete( {
|
121
126
|
source: function(request, response) {
|
122
127
|
$.ajax({
|
123
|
-
url:
|
128
|
+
url: "/dc_common/autocomplete",
|
124
129
|
type: "POST",
|
125
130
|
dataType: "json",
|
126
131
|
data: { input: request.term, table: "#{table}", search: "#{ret_name}" #{(',id: "'+@yaml['id'] + '"') if @yaml['id']} },
|
@@ -154,4 +159,5 @@ def self.get_data(params, name)
|
|
154
159
|
end
|
155
160
|
|
156
161
|
end
|
162
|
+
|
157
163
|
end
|
@@ -72,6 +72,7 @@ end
|
|
72
72
|
#########################################################################
|
73
73
|
def iframe
|
74
74
|
return '' if @page.if_url.blank?
|
75
|
+
|
75
76
|
html = "\n<iframe"
|
76
77
|
html << " id=\"#{@page.if_id}\"" unless @page.if_id.blank?
|
77
78
|
html << " class=\"#{@page.if_class}\"" unless @page.if_class.blank?
|
@@ -79,7 +80,7 @@ def iframe
|
|
79
80
|
html << " height=\"#{@page.if_height}\"" unless @page.if_height.blank?
|
80
81
|
html << " width=\"#{@page.if_width}\"" unless @page.if_width.blank?
|
81
82
|
html << " scrolling=\"#{@page.if_scroll}\""
|
82
|
-
# Parameters
|
83
|
+
# Parameters
|
83
84
|
parameters = @page.if_url.match(/\?/) ? '' : '?'
|
84
85
|
params = YAML.load(@page.if_params) rescue {}
|
85
86
|
params = {} unless params.class == Hash
|
@@ -98,20 +99,20 @@ end
|
|
98
99
|
def default
|
99
100
|
can_view, msg = dc_user_can_view(@parent, @page)
|
100
101
|
return msg unless can_view
|
101
|
-
|
102
|
-
html =
|
102
|
+
|
103
|
+
html = "<div class=\"#{@page.div_class} #{@opts[:div_class]}\">"
|
103
104
|
html << dc_page_edit_menu() if @opts[:edit_mode] > 1
|
104
105
|
@parent.page_title = @page.title.blank? ? @page.subject : @page.title
|
105
106
|
html << @page.body
|
106
|
-
# render poll if defined
|
107
|
+
# render poll if defined
|
107
108
|
if @page.dc_poll_id
|
108
109
|
@opts.merge!(:poll_id => @page.dc_poll_id, :return_to => @parent.request.url, method: nil)
|
109
110
|
comment = DcPollRenderer.new(@parent, @opts)
|
110
111
|
html << "<div class='wrap row'>#{comment.render_html}</div>"
|
111
112
|
@css << "\n#{comment.render_css}"
|
112
113
|
end
|
113
|
-
# also add iframe
|
114
|
-
html << iframe()
|
114
|
+
# also add iframe
|
115
|
+
html << iframe() << '</div>'
|
115
116
|
end
|
116
117
|
|
117
118
|
#########################################################################
|
@@ -38,11 +38,14 @@
|
|
38
38
|
|
39
39
|
</div>
|
40
40
|
</div>
|
41
|
-
|
42
|
-
<div
|
41
|
+
|
42
|
+
<div id="menu-hamburger"><%= fa_icon('bars') %></div>
|
43
|
+
|
44
|
+
<div class="cmsedit-container">
|
43
45
|
<div id="menu">
|
44
46
|
<%= dc_choices4_cmsmenu.html_safe %>
|
45
47
|
</div>
|
48
|
+
|
46
49
|
<div class="cmsedit-iframe" style="width: 99%;">
|
47
50
|
<iframe id="iframe_cms" name="iframe_cms"></iframe>
|
48
51
|
</div>
|
@@ -1,7 +1,8 @@
|
|
1
1
|
<%= dc_head_for_form %>
|
2
2
|
<%= dc_table_title dc_edit_title() %>
|
3
3
|
|
4
|
-
<%= form_tag( @parms, method: :put, id: '
|
4
|
+
<%= form_tag( @parms, method: :put, id: params['form_name'] || params['table'],
|
5
|
+
class: 'cmsform', multipart: @form['form']['multipart'] ) do %>
|
5
6
|
<%= render partial: 'form' %>
|
6
7
|
<% end %>
|
7
8
|
|
@@ -1,6 +1,7 @@
|
|
1
|
-
<%= dc_table_title dc_new_title
|
1
|
+
<%= dc_table_title dc_new_title %>
|
2
2
|
|
3
|
-
<%= form_tag(
|
3
|
+
<%= form_tag(@parms, method: :post, id: params['form_name'] || params['table'],
|
4
|
+
class: 'cmsform', multipart: @form['form']['multipart']) do %>
|
4
5
|
<%= render partial: 'form' %>
|
5
6
|
<% end %>
|
6
7
|
|
@@ -302,6 +302,7 @@ en:
|
|
302
302
|
if_id: CSS id
|
303
303
|
if_class: CSS class
|
304
304
|
_update_menu: Update menu
|
305
|
+
div_class: DIV class
|
305
306
|
|
306
307
|
dc_seo:
|
307
308
|
seo: SEO
|
@@ -780,6 +781,7 @@ en:
|
|
780
781
|
if_id: CSS id of IFrame object
|
781
782
|
if_class: CSS class of IFrame object
|
782
783
|
_update_menu: Update link in selected menu to point to this document
|
784
|
+
div_class: Class name given to top level div
|
783
785
|
|
784
786
|
dc_seo:
|
785
787
|
title: SEO optimised page title
|
@@ -333,7 +333,8 @@ sl:
|
|
333
333
|
if_id: CSS id
|
334
334
|
if_class: CSS class
|
335
335
|
_update_menu: Spremeni meni
|
336
|
-
|
336
|
+
div_class: DIV class
|
337
|
+
|
337
338
|
dc_seo:
|
338
339
|
seo: SEO
|
339
340
|
title: Naslov za brskalnik
|
@@ -779,7 +780,6 @@ sl:
|
|
779
780
|
subject_link: Povezava (link) do sestavka
|
780
781
|
sub_subject: Povzetek, kratek opis vsebine
|
781
782
|
alt_link: Alternativna povezava do sestavka
|
782
|
-
picture: Slika v povezavi s stranjo
|
783
783
|
gallery: Dokument vsebuje slikovno galerijo.
|
784
784
|
css: CSS
|
785
785
|
script: Skript
|
@@ -800,7 +800,7 @@ sl:
|
|
800
800
|
dc_design_id: Dizajn, mu pripada sestavek
|
801
801
|
dc_site_id: Spletišče. ki mu pripada stran
|
802
802
|
kats: Kategorije, ki jim pripada članek
|
803
|
-
picture: Slika uporabljena
|
803
|
+
picture: Slika uporabljena v zvezi s sestavkom
|
804
804
|
dc_poll_id: Anketa, če sestavek vsebuje tudi anketo
|
805
805
|
if_url: URL naslov od koder bo naložena vsebina IFrame-a
|
806
806
|
if_width: Širina IFrame področja
|
@@ -811,6 +811,7 @@ sl:
|
|
811
811
|
if_id: CSS id IFrame objekta
|
812
812
|
if_class: CSS class IFrame objekta
|
813
813
|
_update_menu: Popravi tudi povezavo do dokumenta v menuju
|
814
|
+
div_class: Class, ki bo določen na vrhnem razdelku (DIV)
|
814
815
|
|
815
816
|
dc_seo:
|
816
817
|
title: Naslov, ki se izpiše v gornji vrstici brskalnika. Optimiziraj za SEO.
|
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
@@ -154,6 +154,15 @@ def self.model_check(document, crash = false)
|
|
154
154
|
msg
|
155
155
|
end
|
156
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
|
+
|
157
166
|
####################################################################
|
158
167
|
# Clear cache. If key is specified only this key will be deleted.
|
159
168
|
#
|
@@ -162,17 +171,48 @@ end
|
|
162
171
|
def self.cache_clear(key = nil)
|
163
172
|
return Rails.cache.clear if key.nil?
|
164
173
|
|
165
|
-
if
|
174
|
+
if redis_cache_store?
|
166
175
|
Rails.cache.redis.del(key)
|
167
176
|
else
|
168
177
|
Rails.cache.delete_matched("#{key}*")
|
169
178
|
end
|
170
179
|
end
|
171
180
|
|
172
|
-
|
173
|
-
|
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
|
174
198
|
|
175
|
-
|
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
|
176
216
|
end
|
177
217
|
|
178
218
|
###############################################################################
|
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.1.
|
4
|
+
version: 0.6.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Damjan Rems
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
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
|
@@ -425,7 +425,7 @@ files:
|
|
425
425
|
- test/dummy/script/rails
|
426
426
|
- test/integration/navigation_test.rb
|
427
427
|
- test/lib/generators/new_drg_form_generator_test.rb
|
428
|
-
homepage:
|
428
|
+
homepage: https://www.drgcms.org
|
429
429
|
licenses:
|
430
430
|
- MIT
|
431
431
|
metadata: {}
|
@@ -437,47 +437,47 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
437
437
|
requirements:
|
438
438
|
- - ">="
|
439
439
|
- !ruby/object:Gem::Version
|
440
|
-
version: '2.
|
440
|
+
version: '2.7'
|
441
441
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
442
442
|
requirements:
|
443
443
|
- - ">="
|
444
444
|
- !ruby/object:Gem::Version
|
445
445
|
version: '0'
|
446
446
|
requirements: []
|
447
|
-
rubygems_version: 3.
|
447
|
+
rubygems_version: 3.2.22
|
448
448
|
signing_key:
|
449
449
|
specification_version: 4
|
450
450
|
summary: 'DRG: Rapid web application development tool and CMS for Ruby, Rails and
|
451
451
|
MongoDB'
|
452
452
|
test_files:
|
453
453
|
- test/drg_cms_test.rb
|
454
|
-
- test/integration/navigation_test.rb
|
455
|
-
- test/lib/generators/new_drg_form_generator_test.rb
|
456
|
-
- test/dummy/script/rails
|
457
454
|
- test/dummy/README.rdoc
|
458
|
-
- test/dummy/app/views/layouts/application.html.erb
|
459
|
-
- test/dummy/app/helpers/application_helper.rb
|
460
|
-
- test/dummy/app/controllers/application_controller.rb
|
461
|
-
- test/dummy/app/assets/stylesheets/application.css
|
462
|
-
- test/dummy/app/assets/javascripts/application.js
|
463
|
-
- test/dummy/public/422.html
|
464
|
-
- test/dummy/public/404.html
|
465
|
-
- test/dummy/public/favicon.ico
|
466
|
-
- test/dummy/public/500.html
|
467
455
|
- test/dummy/Rakefile
|
468
|
-
- test/dummy/
|
469
|
-
- test/dummy/
|
470
|
-
- test/dummy/
|
471
|
-
- test/dummy/
|
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
|
472
461
|
- test/dummy/config/application.rb
|
462
|
+
- test/dummy/config/boot.rb
|
473
463
|
- test/dummy/config/database.yml
|
474
|
-
- test/dummy/config/
|
475
|
-
- test/dummy/config/environments/production.rb
|
464
|
+
- test/dummy/config/environment.rb
|
476
465
|
- test/dummy/config/environments/development.rb
|
477
|
-
- test/dummy/config/
|
478
|
-
- test/dummy/config/
|
466
|
+
- test/dummy/config/environments/production.rb
|
467
|
+
- test/dummy/config/environments/test.rb
|
468
|
+
- test/dummy/config/initializers/backtrace_silencers.rb
|
479
469
|
- test/dummy/config/initializers/inflections.rb
|
480
470
|
- test/dummy/config/initializers/mime_types.rb
|
481
|
-
- test/dummy/config/initializers/
|
482
|
-
- test/dummy/config/initializers/wrap_parameters.rb
|
471
|
+
- test/dummy/config/initializers/secret_token.rb
|
483
472
|
- test/dummy/config/initializers/session_store.rb
|
473
|
+
- test/dummy/config/initializers/wrap_parameters.rb
|
474
|
+
- test/dummy/config/locales/en.yml
|
475
|
+
- test/dummy/config/routes.rb
|
476
|
+
- test/dummy/config.ru
|
477
|
+
- test/dummy/public/404.html
|
478
|
+
- test/dummy/public/422.html
|
479
|
+
- test/dummy/public/500.html
|
480
|
+
- test/dummy/public/favicon.ico
|
481
|
+
- test/dummy/script/rails
|
482
|
+
- test/integration/navigation_test.rb
|
483
|
+
- test/lib/generators/new_drg_form_generator_test.rb
|