drg_cms 0.5.52.2 → 0.5.52.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +5 -5
- data/app/assets/stylesheets/drg_cms/drg_cms.css +15 -19
- data/app/controllers/cmsedit_controller.rb +7 -5
- data/app/controllers/dc_application_controller.rb +7 -1
- data/app/controllers/dc_page_control.rb +5 -3
- data/app/controllers/design_element_settings_control.rb +3 -8
- data/app/forms/all_options.yml +3 -3
- data/app/forms/cms_menu.yml +1 -1
- data/app/forms/dc_big_table.yml +1 -1
- data/app/forms/dc_big_table_value.yml +1 -1
- data/app/forms/dc_browse_models.yml +1 -1
- data/app/forms/dc_design.yml +1 -1
- data/app/forms/dc_folder_permission.yml +1 -1
- data/app/forms/dc_menu.yml +1 -1
- data/app/forms/dc_menu_item.yml +1 -1
- data/app/forms/dc_page.yml +4 -5
- data/app/forms/dc_permission.yml +1 -1
- data/app/forms/dc_policy.yml +1 -1
- data/app/forms/dc_poll.yml +1 -1
- data/app/forms/dc_simple_menu.yml +1 -1
- data/app/forms/dc_site.yml +6 -2
- data/app/forms/dc_user.yml +1 -1
- data/app/helpers/cmsedit_helper.rb +9 -8
- data/app/helpers/dc_application_helper.rb +31 -21
- data/app/helpers/dc_menu_renderer.rb +1 -1
- data/app/helpers/dc_part_renderer.rb +3 -3
- data/app/helpers/dc_piece_renderer.rb +1 -1
- data/app/helpers/dc_poll_renderer.rb +1 -1
- data/app/models/concerns/dc_page_concern.rb +2 -2
- data/app/models/concerns/dc_site_concern.rb +17 -1
- data/app/models/dc_ad.rb +1 -1
- data/app/models/dc_big_menu.rb +1 -1
- data/app/models/dc_filter.rb +2 -2
- data/app/models/dc_link.rb +1 -1
- data/app/models/dc_menu.rb +6 -6
- data/app/models/dc_simple_menu.rb +1 -1
- data/app/models/dc_site.rb +1 -0
- data/app/models/drgcms_form_fields.rb +5 -5
- data/app/views/cmsedit/_edit_stuff.html.erb +2 -16
- data/app/views/cmsedit/login.html.erb +13 -16
- data/config/locales/drgcms_en.yml +3 -0
- data/config/locales/drgcms_sl.yml +4 -0
- data/config/locales/models_en.yml +4 -2
- data/config/locales/models_sl.yml +3 -1
- data/drg_cms.gemspec +2 -2
- data/lib/drg_cms.rb +7 -0
- data/lib/drg_cms/version.rb +1 -1
- data/test/fixtures/drg_cms_test_data.rb +87 -0
- metadata +10 -8
- data/test/test_helper.rb +0 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6cd8a24b6fe78291f0381645570f80c9f37f02a2
|
4
|
+
data.tar.gz: ae23416b365aad2e19b2a7d06db7d474f6522359
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3be8e8ecade1f23a24678a1fb06cf0591407b4108435c4e559fefed4d1524f2a134f10c86db5c34744fe8cf9750927b0e05ab115d25a75b9a48dd7562730e868
|
7
|
+
data.tar.gz: 62e72cfd6235f0965eca6936114a9a706d870aaf59ad59e79d33ac5addfab728c18041cfa7edd7771ebe74a5fb6a294dacbf4c26b8264ee303bc89d3d9a89384
|
data/README.md
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
# DrgCms
|
2
2
|
|
3
|
-
DRG CMS is
|
3
|
+
DRG CMS is advanced way of programming application for Ruby on Rails. Instead of creating controllers and views for each collection (table) model, DRG CMS introduces single Cmsedit controller which uses DRG Forms to control CRUD database operations.
|
4
4
|
|
5
5
|
DRG CMS uses Mongo DB, leading NO-SQL document database, as database back-end with a help of mongoid gem. Mongoid's flexible document model defines all document fields, indexes, dependencies, validations in single model file with no Rails migrations required.
|
6
6
|
|
7
7
|
DRG CMS can be used for rapid development of complex, data-entry intensive web sites as well as building your private, in-house, Intranet applications.
|
8
8
|
|
9
|
-
DRG CMS has built-in user friendly role based access system and
|
9
|
+
DRG CMS has built-in user friendly role based database access system and can be easly extended with help of Ruby on Rails plugin system.
|
10
10
|
|
11
11
|
Project Tracking
|
12
12
|
----------------
|
@@ -16,9 +16,9 @@ Project Tracking
|
|
16
16
|
Compatibility
|
17
17
|
-------------
|
18
18
|
|
19
|
-
DRG CMS is tested against Ruby 2.2 and higher, Rails 5.0 and higher, Mongoid 6, MongoDB 3.0, 3.2
|
19
|
+
DRG CMS is tested against Ruby 2.2 and higher, Rails 5.0 and higher, Mongoid 6, MongoDB 3.0, 3.2, 3.4
|
20
20
|
|
21
|
-
Version from 0.5.51 and higher
|
21
|
+
Version from 0.5.51 and higher requires Ruby 2.4.x and Rails 5.1.x
|
22
22
|
|
23
23
|
Documentation
|
24
24
|
-------------
|
@@ -29,7 +29,7 @@ Please see the DRG CMS website for up-to-date documentation:
|
|
29
29
|
License (MIT LICENCE)
|
30
30
|
---------------------
|
31
31
|
|
32
|
-
Copyright (c) 2012-
|
32
|
+
Copyright (c) 2012-2018 Damjan Rems
|
33
33
|
|
34
34
|
Permission is hereby granted, free of charge, to any person obtaining
|
35
35
|
a copy of this software and associated documentation files (the
|
@@ -707,25 +707,21 @@ background-color: lightyellow;
|
|
707
707
|
}
|
708
708
|
|
709
709
|
#dc-login {
|
710
|
-
|
711
|
-
|
712
|
-
|
713
|
-
|
714
|
-
|
715
|
-
|
716
|
-
|
717
|
-
|
718
|
-
|
719
|
-
|
720
|
-
|
721
|
-
|
722
|
-
|
723
|
-
|
724
|
-
padding:
|
725
|
-
margin: auto;
|
726
|
-
background-color: #fff;
|
727
|
-
border: 1px solid #888;
|
728
|
-
box-shadow: 1px 1px 4px #888;
|
710
|
+
position: fixed;
|
711
|
+
top: 50%;
|
712
|
+
left: 50%;
|
713
|
+
transform: translate(-50%, -50%);
|
714
|
+
font-size: 1.2em;
|
715
|
+
padding: 0 5em 1em 1em;
|
716
|
+
border: 1px solid #669;
|
717
|
+
box-shadow: 0px 0px 5px #666;
|
718
|
+
}
|
719
|
+
#dc-login h2 {
|
720
|
+
font-weight: bold;
|
721
|
+
font-size: 1.4em;
|
722
|
+
}
|
723
|
+
#dc-login .label {
|
724
|
+
padding: 5px 0px;
|
729
725
|
}
|
730
726
|
|
731
727
|
.div-hidden {
|
@@ -584,8 +584,9 @@ def read_drg_cms_form
|
|
584
584
|
ids = params[:ids].to_s.strip.downcase
|
585
585
|
@ids = ids.split(';').inject([]) { |r,v| r << v }
|
586
586
|
# formname defaults to last table specified
|
587
|
-
formname
|
588
|
-
|
587
|
+
dc_deprecate("Parameter :formname will be deprecated in future. Use :form_name instead") if params[:formname]
|
588
|
+
form_name = params[:formname] || params[:form_name] || @tables.last[1]
|
589
|
+
@form = YAML.load_file( dc_find_form_file(form_name) )
|
589
590
|
# when form extends another form file.
|
590
591
|
if @form['extend']
|
591
592
|
form = YAML.load_file( dc_find_form_file(@form['extend']) )
|
@@ -599,7 +600,7 @@ def read_drg_cms_form
|
|
599
600
|
# add readonly key to form if readonly parameter is passed in url
|
600
601
|
@form['readonly'] = 1 if params['readonly'] #and %w(1 yes true).include?(params['readonly'].to_s.downcase.strip)
|
601
602
|
# !!!!!! Always use strings for key names since @parms['table'] != @parms[:table]
|
602
|
-
@parms = { 'table' => table_name, 'ids' => params[:ids], '
|
603
|
+
@parms = { 'table' => table_name, 'ids' => params[:ids], 'form_name' => form_name,
|
603
604
|
'return_to' => params['return_to'], 'edit_only' => params['edit_only'],
|
604
605
|
'readonly' => params['readonly']
|
605
606
|
}
|
@@ -610,7 +611,7 @@ end
|
|
610
611
|
# load DRG form.
|
611
612
|
############################################################################
|
612
613
|
def check_authorization
|
613
|
-
params[:table] ||= params[:formname]
|
614
|
+
params[:table] ||= params[:formname] || params[:form_name]
|
614
615
|
# Just show menu
|
615
616
|
# return show if params[:action] == 'show'
|
616
617
|
return login if params[:id].in?(%w(login logout))
|
@@ -796,7 +797,8 @@ def save_data
|
|
796
797
|
(params[:edit_only] and params[:edit_only] != v['name']) or # otherwise other fields would be wiped
|
797
798
|
v['readonly'] or # fields with readonly option don't return value and would be wiped
|
798
799
|
!@record.respond_to?(v['name']) # there can be temporary fields on the form
|
799
|
-
#
|
800
|
+
# good to know how to get type of field @record.fields[v['name']].type
|
801
|
+
# return value from form field definition
|
800
802
|
value = DrgcmsFormFields.const_get(v['type'].camelize).get_data(params, v['name'])
|
801
803
|
@record.send("#{v['name']}=", value)
|
802
804
|
end
|
@@ -564,6 +564,12 @@ def dc_reload_patches
|
|
564
564
|
end
|
565
565
|
end
|
566
566
|
|
567
|
-
|
567
|
+
############################################################################
|
568
|
+
# Writes out deprication msg. It also adds site_name to message, so it is easier to
|
569
|
+
# find where the message is comming from.
|
570
|
+
############################################################################
|
571
|
+
def dc_deprecate(msg)
|
572
|
+
ActiveSupport::Deprecation.warn("#{dc_get_site.name}: #{msg}")
|
573
|
+
end
|
568
574
|
|
569
575
|
end
|
@@ -41,11 +41,13 @@ def dc_new_record()
|
|
41
41
|
end
|
42
42
|
|
43
43
|
######################################################################
|
44
|
-
#
|
44
|
+
# Called just after record is saved to DB.
|
45
45
|
######################################################################
|
46
46
|
def dc_after_save()
|
47
|
-
|
48
|
-
|
47
|
+
if params[:_record][:_update_menu] == '1'
|
48
|
+
menu_class = dc_get_site.menu_class.classify.constantize
|
49
|
+
menu_class.update_menu_item_link(@record)
|
50
|
+
end
|
49
51
|
end
|
50
52
|
|
51
53
|
end
|
@@ -52,21 +52,16 @@ def get_settings()
|
|
52
52
|
begin
|
53
53
|
model = params[:location].classify.constantize
|
54
54
|
rescue
|
55
|
-
flash[:error] =
|
55
|
+
flash[:error] = "Invalid or undefined model name! #{params[:location]}"
|
56
56
|
return false
|
57
57
|
end
|
58
58
|
# Check fild name
|
59
59
|
begin
|
60
60
|
document = model.find(params[:id])
|
61
|
-
params[:field_name]
|
62
|
-
when params[:location] == 'dc_page' then 'params'
|
63
|
-
when params[:location] == 'dc_site' then 'options'
|
64
|
-
otherwise params[:field_name]
|
65
|
-
end
|
61
|
+
params[:field_name] ||= (params[:location] == 'dc_site' ? 'options' : 'params')
|
66
62
|
# field not defined on document
|
67
63
|
raise unless document.respond_to?(params[:field_name])
|
68
|
-
yaml = document[params[:field_name]]
|
69
|
-
yaml = '' if yaml.blank?
|
64
|
+
yaml = document[params[:field_name]] || ''
|
70
65
|
rescue
|
71
66
|
flash[:error] = 'Invalid or undefined field name!'
|
72
67
|
return false
|
data/app/forms/all_options.yml
CHANGED
@@ -33,7 +33,7 @@ index:
|
|
33
33
|
controller: controller_name
|
34
34
|
action: action_name
|
35
35
|
table: table_name
|
36
|
-
|
36
|
+
form_name: form_name
|
37
37
|
4:
|
38
38
|
type: menu
|
39
39
|
eval: ModulClassName.menu_for(self)
|
@@ -69,7 +69,7 @@ result_set:
|
|
69
69
|
controller: controller_name
|
70
70
|
action: action_name
|
71
71
|
table: table_name
|
72
|
-
|
72
|
+
form_name: form_name
|
73
73
|
target: target
|
74
74
|
method: (get),put,post
|
75
75
|
|
@@ -188,7 +188,7 @@ form:
|
|
188
188
|
20:
|
189
189
|
name: dc_poll_items
|
190
190
|
type: embedded
|
191
|
-
|
191
|
+
form_name: dc_poll_item
|
192
192
|
html:
|
193
193
|
height: 800
|
194
194
|
20:
|
data/app/forms/cms_menu.yml
CHANGED
data/app/forms/dc_big_table.yml
CHANGED
data/app/forms/dc_design.yml
CHANGED
data/app/forms/dc_menu.yml
CHANGED
data/app/forms/dc_menu_item.yml
CHANGED
data/app/forms/dc_page.yml
CHANGED
@@ -109,10 +109,9 @@ form:
|
|
109
109
|
eval: '@parent.dc_menu_class.choices4_menu_as_tree(@record.dc_site_id)'
|
110
110
|
style: 'max-height: 300px'
|
111
111
|
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
# eval: dc_choices4_menu
|
112
|
+
25:
|
113
|
+
name: _update_menu
|
114
|
+
type: check_box
|
116
115
|
|
117
116
|
30:
|
118
117
|
name: params
|
@@ -152,7 +151,7 @@ form:
|
|
152
151
|
10:
|
153
152
|
name: dc_parts
|
154
153
|
type: embedded
|
155
|
-
|
154
|
+
form_name: dc_part
|
156
155
|
html:
|
157
156
|
height: 600
|
158
157
|
|
data/app/forms/dc_permission.yml
CHANGED
data/app/forms/dc_policy.yml
CHANGED
data/app/forms/dc_poll.yml
CHANGED
data/app/forms/dc_site.yml
CHANGED
@@ -103,6 +103,10 @@ form:
|
|
103
103
|
type: text_with_select
|
104
104
|
eval: dc_choices4(@record.menu_class,'description','name')
|
105
105
|
size: 30
|
106
|
+
70:
|
107
|
+
name: menu_id
|
108
|
+
type: select
|
109
|
+
eval: dc_choices4(@record.menu_class,'description','_id')
|
106
110
|
90:
|
107
111
|
name: settings
|
108
112
|
type: text_area
|
@@ -141,14 +145,14 @@ form:
|
|
141
145
|
20:
|
142
146
|
name: dc_policies
|
143
147
|
type: embedded
|
144
|
-
|
148
|
+
form_name: dc_policy
|
145
149
|
html:
|
146
150
|
height: 800
|
147
151
|
6parts:
|
148
152
|
10:
|
149
153
|
name: dc_parts
|
150
154
|
type: embedded
|
151
|
-
|
155
|
+
form_name: dc_part
|
152
156
|
html:
|
153
157
|
height: 1000
|
154
158
|
|
data/app/forms/dc_user.yml
CHANGED
@@ -73,7 +73,8 @@ EOT
|
|
73
73
|
url['controller'] = yaml['controller'] if yaml['controller']
|
74
74
|
url['action'] = yaml['action'] || action
|
75
75
|
url['table'] = yaml['table'] if yaml['table']
|
76
|
-
url['
|
76
|
+
url['form_name'] = yaml['form_name'] if yaml['form_name']
|
77
|
+
url['form_name'] = yaml['formname'] if yaml['formname']
|
77
78
|
end
|
78
79
|
# html link options
|
79
80
|
yhtml = yaml['html'] || {}
|
@@ -161,7 +162,7 @@ def dc_div_filter()
|
|
161
162
|
|
162
163
|
</td>
|
163
164
|
<td class="dc-link dc-animate drgcms_popup_submit" data-url="#{url}">#{fa_icon('check-square-o')} #{t('drgcms.filter_on')}</td>
|
164
|
-
<td class="dc-link dc-animate">#{dc_link_to('drgcms.filter_off','close', {action: :index, filter: 'off', table: @form['table'],
|
165
|
+
<td class="dc-link dc-animate">#{dc_link_to('drgcms.filter_off','close', {action: :index, filter: 'off', table: @form['table'], form_name: params['form_name']}) }</td>
|
165
166
|
</table>
|
166
167
|
</div>
|
167
168
|
EOT
|
@@ -252,7 +253,8 @@ def dc_actions_for_result(document)
|
|
252
253
|
parms['controller'] = yaml['controller'] if yaml['controller']
|
253
254
|
parms['action'] = yaml['action'] if yaml['action']
|
254
255
|
parms['table'] = yaml['table'] if yaml['table']
|
255
|
-
parms['
|
256
|
+
parms['form_name'] = yaml['form_name'] if yaml['form_name']
|
257
|
+
parms['form_name'] = yaml['formname'] if yaml['formname']
|
256
258
|
parms['target'] = yaml['target'] if yaml['target']
|
257
259
|
dc_link_or_ajax(yaml, parms)
|
258
260
|
else # error.
|
@@ -290,7 +292,7 @@ def dc_header_for_result()
|
|
290
292
|
if v['name'] == sort_field
|
291
293
|
icon = sort_direction == '1' ? 'sort-alpha-asc lg' : 'sort-alpha-desc lg'
|
292
294
|
end
|
293
|
-
th << ">#{dc_link_to(caption, icon, sort: v['name'], table: params[:table],
|
295
|
+
th << ">#{dc_link_to(caption, icon, sort: v['name'], table: params[:table], form_name: params[:form_name], action: :index )}</th>"
|
294
296
|
else
|
295
297
|
th << ">#{caption}</th>"
|
296
298
|
end
|
@@ -311,7 +313,7 @@ def dc_clicks_for_result(document)
|
|
311
313
|
opts[:controller] = yaml['controller'] || 'cmsedit'
|
312
314
|
opts[:action] = yaml['action']
|
313
315
|
opts[:table] = yaml['table']
|
314
|
-
opts[:
|
316
|
+
opts[:form_name] = yaml['form_name'] || yaml['formname']
|
315
317
|
opts[:method] = yaml['method'] || 'get'
|
316
318
|
opts[:id] = document['id']
|
317
319
|
html << ' data-dblclick=' + url_for(opts)
|
@@ -319,7 +321,7 @@ def dc_clicks_for_result(document)
|
|
319
321
|
html << (' data-dblclick=' +
|
320
322
|
url_for(action: 'show', controller: 'cmsedit', id: document,
|
321
323
|
readonly: (params[:readonly] ? 2 : 1), table: params[:table],
|
322
|
-
|
324
|
+
form_name: params[:form_name], ids: params[:ids]) ) if @form['form']
|
323
325
|
end
|
324
326
|
html
|
325
327
|
end
|
@@ -549,7 +551,7 @@ def dc_actions_for_form()
|
|
549
551
|
parms['controller'] = v['controller']
|
550
552
|
parms['action'] = v['action']
|
551
553
|
parms['table'] = v['table']
|
552
|
-
parms['
|
554
|
+
parms['form_name'] = v['form_name'] || v['formname']
|
553
555
|
parms['id'] = @record.id
|
554
556
|
# additional parameters
|
555
557
|
v['params'].each { |k,v| parms[k] = v } if v['params']
|
@@ -561,7 +563,6 @@ def dc_actions_for_form()
|
|
561
563
|
v['caption'] ||= v['text']
|
562
564
|
caption = t("#{v['caption'].downcase}", v['caption'])
|
563
565
|
url = url_for(parms)
|
564
|
-
p url
|
565
566
|
request = v['request'] || v['method'] || 'get'
|
566
567
|
icon = v['icon'] ? "#{fa_icon(v['icon'])} " : ''
|
567
568
|
if v['type'] == 'ajax' # ajax button
|
@@ -35,6 +35,10 @@ attr_reader :page
|
|
35
35
|
attr_reader :design
|
36
36
|
# site document
|
37
37
|
attr_reader :site
|
38
|
+
# menu document
|
39
|
+
attr_reader :menu
|
40
|
+
# selected menu_item document
|
41
|
+
attr_reader :menu_item
|
38
42
|
# tables url parameter
|
39
43
|
attr_reader :tables
|
40
44
|
# ids url parameter
|
@@ -65,7 +69,7 @@ end
|
|
65
69
|
# find where the message is comming from.
|
66
70
|
############################################################################
|
67
71
|
def dc_deprecate(msg)
|
68
|
-
|
72
|
+
ActiveSupport::Deprecation.warn("#{dc_get_site.name}: #{msg}")
|
69
73
|
end
|
70
74
|
|
71
75
|
############################################################################
|
@@ -460,12 +464,12 @@ end
|
|
460
464
|
# Will create HTML code required to create new document.
|
461
465
|
#
|
462
466
|
# Parameters:
|
463
|
-
# [opts] Hash. Optional parameters for url_for helper. These options must provide at least table and
|
467
|
+
# [opts] Hash. Optional parameters for url_for helper. These options must provide at least table and form_name
|
464
468
|
# parameters.
|
465
469
|
#
|
466
470
|
# Example:
|
467
471
|
# if @opts[:edit_mode] > 1
|
468
|
-
# opts = {table: 'dc_page;dc_part',
|
472
|
+
# opts = {table: 'dc_page;dc_part', form_name: 'dc_part', ids: @doc.id }
|
469
473
|
# html << dc_link_for_create( opts.merge!({title: 'Add new part', 'dc_part.name' => 'initial name', 'dc_part.order' => 10}) )
|
470
474
|
# end
|
471
475
|
#
|
@@ -477,7 +481,7 @@ def dc_link_for_create(opts)
|
|
477
481
|
title = opts.delete('title') #
|
478
482
|
title = t(title, title) if title
|
479
483
|
target = opts.delete('target') || 'iframe_cms'
|
480
|
-
opts['
|
484
|
+
opts['form_name'] ||= opts['formname'] || opts['table'].to_s.split(';').last
|
481
485
|
opts['action'] = 'new'
|
482
486
|
opts['controller'] ||= 'cmsedit'
|
483
487
|
js = "$('##{target}').attr('src', '#{_origin.url_for(opts)}'); return false;"
|
@@ -490,7 +494,7 @@ end
|
|
490
494
|
#
|
491
495
|
# Parameters:
|
492
496
|
# [opts] Hash. Optional parameters for url_for helper. These options must provide
|
493
|
-
# at least table,
|
497
|
+
# at least table, form_name and id parameters. Optional title, target and icon parameters
|
494
498
|
# can be set.
|
495
499
|
#
|
496
500
|
# Example:
|
@@ -507,7 +511,7 @@ def dc_link_for_edit(opts)
|
|
507
511
|
icon = opts.delete('icon') || 'edit lg'
|
508
512
|
opts['controller'] ||= 'cmsedit'
|
509
513
|
opts['action'] ||= 'edit'
|
510
|
-
opts['
|
514
|
+
opts['form_name'] ||= opts['formname'] || opts['table'].to_s.split(';').last
|
511
515
|
js = "$('##{target}').attr('src', '#{_origin.url_for(opts)}'); return false;"
|
512
516
|
dc_link_to(nil, _origin.fa_icon(icon, class: 'dc-inline-link'), '#',
|
513
517
|
{ onclick: js, title: title, alt: 'Edit'})
|
@@ -547,7 +551,7 @@ end
|
|
547
551
|
# * New part. Will create new part of document.
|
548
552
|
#
|
549
553
|
# Parameters:
|
550
|
-
# [opts] Hash. Optional parameters for url_for helper. These options must provide at least table and
|
554
|
+
# [opts] Hash. Optional parameters for url_for helper. These options must provide at least table and form_name
|
551
555
|
# and id parameters.
|
552
556
|
#
|
553
557
|
# Example:
|
@@ -563,7 +567,7 @@ def dc_page_edit_menu(opts=@opts)
|
|
563
567
|
page = opts[:page] || @page
|
564
568
|
table = _origin.site.page_table
|
565
569
|
kukis = { "#{table}.dc_design_id" => page.dc_design_id,
|
566
|
-
"#{table}.menu_id" => page.menu_id,
|
570
|
+
# "#{table}.menu_id" => page.menu_id,
|
567
571
|
"#{table}.kats" => page.kats,
|
568
572
|
"#{table}.page_id" => page.id,
|
569
573
|
"#{table}.dc_site_id" => _origin.site.id
|
@@ -573,7 +577,7 @@ def dc_page_edit_menu(opts=@opts)
|
|
573
577
|
opts[:editparams] ||= {}
|
574
578
|
dc_link_menu_tag(title) do |html|
|
575
579
|
opts[:editparams].merge!( controller: 'cmsedit', action: 'edit', 'icon' => 'edit' )
|
576
|
-
opts[:editparams].merge!( :id => page.id, :table => _origin.site.page_table,
|
580
|
+
opts[:editparams].merge!( :id => page.id, :table => _origin.site.page_table, form_name: opts[:form_name], edit_only: 'body' )
|
577
581
|
html << dc_link_for_edit1( opts[:editparams], t('drgcms.edit_content') )
|
578
582
|
|
579
583
|
# opts[:editparams][:edit_only] = nil
|
@@ -584,7 +588,7 @@ def dc_page_edit_menu(opts=@opts)
|
|
584
588
|
opts[:editparams].merge!( action: 'new', 'icon' => 'plus' )
|
585
589
|
html << dc_link_for_edit1( opts[:editparams], t('drgcms.edit_new_page') )
|
586
590
|
|
587
|
-
opts[:editparams].merge!(ids: page.id,
|
591
|
+
opts[:editparams].merge!(ids: page.id, form_name: 'dc_part', 'icon' => 'plus-square-o',
|
588
592
|
table: "#{_origin.site.page_table};dc_part" )
|
589
593
|
html << dc_link_for_edit1( opts[:editparams], t('drgcms.edit_new_part') )
|
590
594
|
end.html_safe
|
@@ -919,13 +923,19 @@ def dc_choices4_cmsmenu()
|
|
919
923
|
html << "<li class=\"cmsedit-top-level-menu\">#{fa_icon(menu['icon'])}#{t(menu['caption'])}<ul>"
|
920
924
|
menu['items'].to_a.sort.each do |item| # as above. sort items first
|
921
925
|
value = item[1]
|
922
|
-
|
923
|
-
|
924
|
-
|
925
|
-
|
926
|
-
|
927
|
-
|
928
|
-
|
926
|
+
html << if value['link']
|
927
|
+
opts = { target: value['target'] || 'iframe_cms' }
|
928
|
+
"<li>#{dc_link_to(t(value['caption']), value['icon'] || '', value['link'], opts)}</li>"
|
929
|
+
else
|
930
|
+
opts =
|
931
|
+
{ controller: value['controller'],
|
932
|
+
action: value['action'],
|
933
|
+
table: value['table'],
|
934
|
+
form_name: value['form_name'] || value['formname'] || value['table'],
|
935
|
+
target: value['target'] || 'iframe_cms',
|
936
|
+
}
|
937
|
+
"<li>#{dc_link_to(t(value['caption']), value['icon'] || '', opts)}</li>"
|
938
|
+
end
|
929
939
|
end
|
930
940
|
html << '</ul></li>'
|
931
941
|
end
|
@@ -1196,15 +1206,15 @@ end
|
|
1196
1206
|
# Parameters:
|
1197
1207
|
# [table] String: Collection (table) name used to load initial form.
|
1198
1208
|
# [opts] Hash: Optional parameters which define url for loading DRG form.
|
1199
|
-
# These parameters are :action, :oper, :table, :
|
1209
|
+
# These parameters are :action, :oper, :table, :form_name, :id, :readonly
|
1200
1210
|
#
|
1201
1211
|
# Example:
|
1202
1212
|
# # just iframe code
|
1203
1213
|
# <%= dc_iframe_edit(nil) %>
|
1204
1214
|
# # load note form for note collection
|
1205
1215
|
# <%= dc_iframe_edit('note') %>
|
1206
|
-
# # on register collection use reg_adresses
|
1207
|
-
# <%= dc_iframe_edit('register', action: :show,
|
1216
|
+
# # on register collection use reg_adresses form_name to display data with id @register.id
|
1217
|
+
# <%= dc_iframe_edit('register', action: :show, form_name: 'reg_adresses', readonly: 1, id: @register.id ) %>
|
1208
1218
|
#
|
1209
1219
|
# Returns:
|
1210
1220
|
# Html code for edit iframe
|
@@ -1215,7 +1225,7 @@ def dc_iframe_edit(table, opts={})
|
|
1215
1225
|
params[:action] = (params[:oper] and (params[:oper] == 'edit')) ? 'edit' : 'index'
|
1216
1226
|
params[:action] = opts[:action] unless params[:oper]
|
1217
1227
|
params[:table] ||= table
|
1218
|
-
params[:
|
1228
|
+
params[:form_name] ||= opts[:form_name] || opts[:formname] || table
|
1219
1229
|
params[:id] ||= params[:idp] || opts[:id]
|
1220
1230
|
params[:readonly] ||= opts[:readonly]
|
1221
1231
|
params[:path] = nil
|
@@ -132,7 +132,7 @@ def do_menu_level(menu, options={})
|
|
132
132
|
opts = options.clone
|
133
133
|
opts['ids'] = (opts['ids'] ? "#{opts['ids']};" : '') + menu._id.to_s
|
134
134
|
opts['table'] = (opts['table'] ? "#{opts['table']};" : '') + 'dc_menu_item'
|
135
|
-
opts['
|
135
|
+
opts['form_name'] = nil # must be
|
136
136
|
end
|
137
137
|
html << do_menu_level(item, opts)
|
138
138
|
end
|
@@ -141,7 +141,7 @@ def default
|
|
141
141
|
parts.sort! {|a,b| a[0].order <=> b[0].order }
|
142
142
|
|
143
143
|
parts.each do |part|
|
144
|
-
@opts[:editparams].merge!( id: part[0], ids: "#{part[1]}",
|
144
|
+
@opts[:editparams].merge!( id: part[0], ids: "#{part[1]}", form_name: part[2], table: part[3] )
|
145
145
|
html << render_particle(part[0], @opts)
|
146
146
|
end
|
147
147
|
end
|
@@ -174,7 +174,7 @@ def in_page
|
|
174
174
|
return "Error DcPart: Page not found!" if page.nil?
|
175
175
|
#
|
176
176
|
if part = page.dc_parts.find_by(name: @opts[:name])
|
177
|
-
@opts[:editparams].merge!(id: part, ids: page._id,
|
177
|
+
@opts[:editparams].merge!(id: part, ids: page._id, form_name: 'dc_part', table: "#{@parent.site.page_table};dc_part" )
|
178
178
|
render_particle(part, @opts)
|
179
179
|
else
|
180
180
|
"Part with name #{@opts[:name]} not found in page!"
|
@@ -195,7 +195,7 @@ def single_sitedoc
|
|
195
195
|
# part not found. Render error message.
|
196
196
|
return "Part #{@opts[:div_id]} not found!" if part.nil?
|
197
197
|
# prepare edit parameters
|
198
|
-
@opts[:editparams].merge!(id: part, ids: @parent.site._id,
|
198
|
+
@opts[:editparams].merge!(id: part, ids: @parent.site._id, form_name: 'dc_part',
|
199
199
|
table: "dc_site;dc_part", record_div_id: 'document' )
|
200
200
|
render_particle(part, @opts)
|
201
201
|
end
|
@@ -162,7 +162,7 @@ def default
|
|
162
162
|
html << "<div class=\"poll-div\">\n"
|
163
163
|
# edit link
|
164
164
|
if @opts[:edit_mode] > 1
|
165
|
-
@opts[:editparams].merge!( controller: 'cmsedit', action: 'edit', id: poll._id, table: 'dc_poll',
|
165
|
+
@opts[:editparams].merge!( controller: 'cmsedit', action: 'edit', id: poll._id, table: 'dc_poll', form_name: 'dc_poll' )
|
166
166
|
@opts[:editparams].merge!(title: "#{t('drgcms.edit')}: #{poll.name}")
|
167
167
|
@opts[:editparams].delete(:ids) # this is from page, but it gets in a way
|
168
168
|
html << dc_link_for_edit( @opts[:editparams] )
|
@@ -70,8 +70,8 @@ field :policy_id, type: BSON::ObjectId
|
|
70
70
|
|
71
71
|
embeds_many :dc_parts
|
72
72
|
|
73
|
-
belongs_to :dc_site
|
74
|
-
belongs_to :dc_design
|
73
|
+
belongs_to :dc_site, optional: true
|
74
|
+
belongs_to :dc_design, optional: true
|
75
75
|
|
76
76
|
index ({ dc_site_id: 1, subject_link: 1 })
|
77
77
|
index kats: 1
|
@@ -50,6 +50,7 @@ included do
|
|
50
50
|
field :created_by, type: BSON::ObjectId
|
51
51
|
field :updated_by, type: BSON::ObjectId
|
52
52
|
field :menu_name, type: String
|
53
|
+
field :menu_id, type: BSON::ObjectId
|
53
54
|
field :settings, type: String
|
54
55
|
field :alias_for, type: String
|
55
56
|
field :rails_view, type: String, default: ''
|
@@ -74,11 +75,26 @@ def params(what=nil)
|
|
74
75
|
what.nil? ? @params : @params[what.to_s]
|
75
76
|
end
|
76
77
|
|
78
|
+
########################################################################
|
79
|
+
# Returns class object of collection name
|
80
|
+
########################################################################
|
81
|
+
def page_klass()
|
82
|
+
(self.page_table.blank? ? self.page_class : self.page_table).classify.constantize
|
83
|
+
end
|
84
|
+
|
85
|
+
########################################################################
|
86
|
+
# Returns class object of menu collection name
|
87
|
+
########################################################################
|
88
|
+
def menu_klass()
|
89
|
+
(self.menu_class.blank? ? 'DcMenu' : self.menu_class).classify.constantize
|
90
|
+
end
|
91
|
+
|
77
92
|
########################################################################
|
78
93
|
# Return choices for select for site_id
|
79
94
|
########################################################################
|
80
95
|
def self.choices4_site
|
81
|
-
all.inject([]) { |r,site| r << [ (site.active ? '' : t('drgcms.disabled') ) + site.name, site._id] }
|
96
|
+
result = all.inject([]) { |r,site| r << [ (site.active ? '' : t('drgcms.disabled') ) + site.name, site._id] }
|
97
|
+
result.sort {|a,b| a[0] <=> b[0]}
|
82
98
|
end
|
83
99
|
|
84
100
|
########################################################################
|
data/app/models/dc_ad.rb
CHANGED
data/app/models/dc_big_menu.rb
CHANGED
data/app/models/dc_filter.rb
CHANGED
@@ -132,7 +132,7 @@ def self.get_filter_field(parent)
|
|
132
132
|
# url for filter ON action
|
133
133
|
field['html']['data-url'] = parent.url_for(
|
134
134
|
controller: 'cmsedit',action: :index, filter: 'on',
|
135
|
-
table: parent.form['table'],
|
135
|
+
table: parent.form['table'], form_name: parent.form['form_name'])
|
136
136
|
url = field['html']['data-url']
|
137
137
|
# create input field object
|
138
138
|
klas_string = field['type'].camelize
|
@@ -165,7 +165,7 @@ def self.menu_filter(parent)
|
|
165
165
|
filters = [filters] if filters.class == Hash
|
166
166
|
filters.each do |filter|
|
167
167
|
url = parent.dc_link_to(filter['title'], nil,controller: :cmsedit, action: :index, table: table,
|
168
|
-
|
168
|
+
form_name: parent.params[:form_name],
|
169
169
|
filter_field: filter['field'],
|
170
170
|
filter_oper: filter['operation'],
|
171
171
|
filter_value: filter['value'],
|
data/app/models/dc_link.rb
CHANGED
data/app/models/dc_menu.rb
CHANGED
@@ -136,20 +136,20 @@ end
|
|
136
136
|
# Will update link value of selected menu_item
|
137
137
|
#
|
138
138
|
# Parameters:
|
139
|
-
# [
|
140
|
-
# [link] String. New value of the link field
|
139
|
+
# [record] Array. Data of saved document.
|
141
140
|
#######################################################################
|
142
|
-
def self.update_menu_item_link(
|
143
|
-
return unless
|
141
|
+
def self.update_menu_item_link(record)
|
142
|
+
return unless record
|
144
143
|
#
|
145
|
-
ar =
|
144
|
+
ar = record.menu_id.split(';')
|
146
145
|
menu = find(ar.shift)
|
147
146
|
while (item = ar.shift) do
|
148
147
|
menu = menu.dc_menu_items.find(item)
|
149
148
|
end
|
150
149
|
return unless menu.respond_to?(:link) # top level selected
|
151
150
|
#
|
152
|
-
menu.
|
151
|
+
menu.page_id = record.id if menu.respond_to?(:page_id)
|
152
|
+
menu.link = record.subject_link if record.respond_to?(:subject_link)
|
153
153
|
menu.save
|
154
154
|
end
|
155
155
|
|
data/app/models/dc_site.rb
CHANGED
@@ -48,6 +48,7 @@
|
|
48
48
|
# created_by BSON::ObjectId created_by
|
49
49
|
# updated_by BSON::ObjectId updated_by
|
50
50
|
# menu_name String Menu name for this site
|
51
|
+
# menu_id BSON::ObjectId Menu id. Menu name will be deprecated.
|
51
52
|
# settings String Various site settings
|
52
53
|
# alias_for String Is alias name for entered site name
|
53
54
|
# rails_view String Rails view filename used as standard design
|
@@ -318,7 +318,7 @@ end
|
|
318
318
|
# ===Form options:
|
319
319
|
# * +name:+ field name (required)
|
320
320
|
# * +type:+ embedded (required)
|
321
|
-
# * +
|
321
|
+
# * +form_name:+ name of form which will be used for editing
|
322
322
|
# * +html:+ html options (optional)
|
323
323
|
# * +height:+ height of embedded object in pixels (1000)
|
324
324
|
# * +width:+ width of embedded object in pixels (500)
|
@@ -327,7 +327,7 @@ end
|
|
327
327
|
# 10:
|
328
328
|
# name: dc_parts
|
329
329
|
# type: embedded
|
330
|
-
#
|
330
|
+
# form_name: dc_part
|
331
331
|
# html:
|
332
332
|
# height: 1000
|
333
333
|
###########################################################################
|
@@ -342,15 +342,15 @@ def render
|
|
342
342
|
@yaml['html']['height'] ||= 300
|
343
343
|
@yaml['html']['width'] ||= '99%'
|
344
344
|
# defaults both way
|
345
|
-
@yaml['table']
|
346
|
-
@yaml['
|
345
|
+
@yaml['table'] ||= @yaml['form_name'] if @yaml['form_name']
|
346
|
+
@yaml['form_name'] ||= @yaml['table'] if @yaml['table']
|
347
347
|
#
|
348
348
|
html = ''
|
349
349
|
@yaml['html'].each {|k,v| html << "#{k}=\"#{v}\" "}
|
350
350
|
#
|
351
351
|
tables = @parent.tables.inject('') { |r,v| r << "#{v[1]};" } + @yaml['table']
|
352
352
|
ids = @parent.ids.inject('') { |r,v| r << "#{v};" } + @record._id
|
353
|
-
opts = { controller: 'cmsedit', action: 'index', ids: ids, table: tables,
|
353
|
+
opts = { controller: 'cmsedit', action: 'index', ids: ids, table: tables, form_name: @yaml['form_name'] || @yaml['form_name'],
|
354
354
|
field_name: @yaml['name'], iframe: "if_#{@yaml['name']}", readonly: @readonly }
|
355
355
|
@html << "<iframe class='iframe_embedded' id='if_#{@yaml['name']}' name='if_#{@yaml['name']}' #{html}></iframe>"
|
356
356
|
@js = <<EOJS
|
@@ -5,22 +5,8 @@
|
|
5
5
|
<div class="cmsedit-table cmsedit-top">
|
6
6
|
<div id="menu">
|
7
7
|
|
8
|
-
|
9
|
-
|
10
|
-
onclick: "$('#cmsedit-menu-plus').toggleClass('div-hidden');") %>
|
11
|
-
<% end %>
|
12
|
-
|
13
|
-
<% if false %>
|
14
|
-
<ul><li>
|
15
|
-
<%= fa_icon('bars lg') %>
|
16
|
-
<ul>
|
17
|
-
<%= dc_choices4_cmsmenu.html_safe %>
|
18
|
-
</ul>
|
19
|
-
</li>
|
20
|
-
|
21
|
-
</ul>
|
22
|
-
<% end %>
|
23
|
-
|
8
|
+
<%= link_to( fa_icon('user lg',class: "dc-animate", title: "#{t('drgcms.login')}"), '/cms/login' ) %>
|
9
|
+
|
24
10
|
<% if @page %>
|
25
11
|
<%= link_to( fa_icon('file-text-o lg', class: "dc-animate", title: "#{t('drgcms.edit_page')}"),
|
26
12
|
{controller: 'cmsedit', action: 'edit', table: @site.page_table, id: @page._id}, target: 'iframe_cms') %>
|
@@ -2,21 +2,18 @@
|
|
2
2
|
<%= render partial: 'edit_stuff' %>
|
3
3
|
<% else %>
|
4
4
|
<div id="dc-login">
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
<
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
</table>
|
19
|
-
<%= hidden_field_tag('return_to_error', request.url ) %>
|
20
|
-
<% end %>
|
5
|
+
<h2><%= t('drgcms.login') %></h2>
|
6
|
+
<%= dc_flash_messages %>
|
7
|
+
<%= form_tag controller: 'dc_common', action: 'process_login', return_to: '/cmsedit/login?ok=1', method: :put do %>
|
8
|
+
<div class="label"><%= t('drgcms.username') %></div>
|
9
|
+
<div class="input"><%= text_field('record', 'username') %></div>
|
10
|
+
|
11
|
+
<div class="label"><%= t('drgcms.password') %></div>
|
12
|
+
<div class="input"><%= password_field('record', 'password') %></div>
|
13
|
+
|
14
|
+
<div class="label"></div>
|
15
|
+
<div class="input"><%= submit_tag t('drgcms.login'), class: 'dc-animate-button' %></div>
|
16
|
+
<%= hidden_field_tag('return_to_error', request.url ) %>
|
17
|
+
<% end %>
|
21
18
|
</div>
|
22
19
|
<% end %>
|
@@ -288,7 +288,9 @@ en:
|
|
288
288
|
if_border: Border
|
289
289
|
if_params: Parameters
|
290
290
|
if_id: CSS id
|
291
|
-
if_class: CSS class
|
291
|
+
if_class: CSS class
|
292
|
+
_update_menu: Update menu
|
293
|
+
|
292
294
|
|
293
295
|
dc_part:
|
294
296
|
tabletitle: Parts of page
|
@@ -721,7 +723,7 @@ en:
|
|
721
723
|
if_params: Parameters added to URL address
|
722
724
|
if_id: CSS id of IFrame object
|
723
725
|
if_class: CSS class of IFrame object
|
724
|
-
|
726
|
+
_update_menu: Update link in selected menu to point to this document
|
725
727
|
|
726
728
|
dc_part:
|
727
729
|
name: Parts can be searched by name or by id
|
@@ -320,7 +320,8 @@ sl:
|
|
320
320
|
if_border: Okvir
|
321
321
|
if_params: Parametri
|
322
322
|
if_id: CSS id
|
323
|
-
if_class: CSS class
|
323
|
+
if_class: CSS class
|
324
|
+
_update_menu: Spremeni meni
|
324
325
|
|
325
326
|
dc_part:
|
326
327
|
tabletitle: Elementi strani
|
@@ -752,6 +753,7 @@ sl:
|
|
752
753
|
if_params: Pramateri posredovani v URL naslovu
|
753
754
|
if_id: CSS id IFrame objekta
|
754
755
|
if_class: CSS class IFrame objekta
|
756
|
+
_update_menu: Popravi tudi povezavo do dokumenta v menuju
|
755
757
|
|
756
758
|
dc_part:
|
757
759
|
name: Naziv elementa
|
data/drg_cms.gemspec
CHANGED
@@ -12,8 +12,8 @@ Gem::Specification.new do |s|
|
|
12
12
|
s.authors = ["Damjan Rems"]
|
13
13
|
s.email = ["damjan.rems@gmail.com"]
|
14
14
|
s.homepage = "http://www.drgcms.org"
|
15
|
-
s.summary = "DRG
|
16
|
-
s.description = "DRG
|
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
17
|
s.license = "MIT"
|
18
18
|
s.files = Dir["{app,config,db,lib}/**/*"] + ["MIT-LICENSE", "Rakefile", "README.md", "History.log", "drg_cms.gemspec"]
|
19
19
|
s.test_files = Dir["test/**/*"]
|
data/lib/drg_cms.rb
CHANGED
@@ -111,6 +111,13 @@ def self.paths(key)
|
|
111
111
|
@@paths[key]
|
112
112
|
end
|
113
113
|
|
114
|
+
###############################################################################
|
115
|
+
# Will return name of file relative to drg_cms gem root
|
116
|
+
###############################################################################
|
117
|
+
def self.from_root(file=nil)
|
118
|
+
File.expand_path("../../#{file}", __FILE__).to_s
|
119
|
+
end
|
120
|
+
|
114
121
|
###############################################################################
|
115
122
|
# All Routes required by DrgCms.
|
116
123
|
#
|
data/lib/drg_cms/version.rb
CHANGED
@@ -0,0 +1,87 @@
|
|
1
|
+
##################################################################
|
2
|
+
# Fill database with test data
|
3
|
+
##################################################################
|
4
|
+
def drg_cms_test_data_fill
|
5
|
+
# Roles
|
6
|
+
sa_role = DcPolicyRole.create!(name: 'superadmin', system_name: 'superadmin')
|
7
|
+
guest_role = DcPolicyRole.create!(name: 'guest', system_name: 'guest')
|
8
|
+
admin_role = DcPolicyRole.create!(name: 'Administrators', system_name: 'admin')
|
9
|
+
|
10
|
+
# collection Permissions
|
11
|
+
default_permission = DcPermission.create!(table_name: 'Default permission',is_default: true)
|
12
|
+
rule1 = DcPolicyRule.new(dc_policy_role: sa_role, permission: 128)
|
13
|
+
rule2 = DcPolicyRule.new(dc_policy_role: guest_role, permission: 0)
|
14
|
+
rule3 = DcPolicyRule.new(dc_policy_role: admin_role, permission: 64)
|
15
|
+
default_permission.dc_policy_rules << rule1
|
16
|
+
default_permission.dc_policy_rules << rule2
|
17
|
+
default_permission.dc_policy_rules << rule3
|
18
|
+
# dc_memory
|
19
|
+
dc_memory_permission = DcPermission.create!(table_name: 'dc_memory')
|
20
|
+
rule1 = DcPolicyRule.new(dc_policy_role: guest_role, permission: 8)
|
21
|
+
dc_memory_permission.dc_policy_rules << rule1
|
22
|
+
|
23
|
+
# SITE
|
24
|
+
site = DcSite.create!(
|
25
|
+
name: 'www.mysite.com',
|
26
|
+
homepage_link: "home",
|
27
|
+
menu_class: "DcSimpleMenu",
|
28
|
+
menu_name: "site-menu",
|
29
|
+
page_class: "DcPage",
|
30
|
+
page_table: "dc_page",
|
31
|
+
files_directory: "files",
|
32
|
+
settings: "ckeditor:
|
33
|
+
config_file: /files/ck_config.js
|
34
|
+
css_file: /files/ck_css.css",
|
35
|
+
site_layout: "content")
|
36
|
+
|
37
|
+
default_policy = DcPolicy.new(
|
38
|
+
description: 'Default policy',
|
39
|
+
is_default: true,
|
40
|
+
message: 'Access denied.',
|
41
|
+
name: 'Default policy')
|
42
|
+
site.dc_policies << default_policy
|
43
|
+
|
44
|
+
rule2 = DcPolicyRule.new(dc_policy_role: admin_role, permission: 2)
|
45
|
+
rule3 = DcPolicyRule.new(dc_policy_role: guest_role, permission: 1)
|
46
|
+
default_policy.dc_policy_rules << rule2
|
47
|
+
default_policy.dc_policy_rules << rule3
|
48
|
+
|
49
|
+
site.save
|
50
|
+
|
51
|
+
# TEST site
|
52
|
+
testsite = DcSite.create!(name: 'test', alias_for: "www.mysite.com")
|
53
|
+
|
54
|
+
# Users
|
55
|
+
rems = DcUser.new(
|
56
|
+
username: 'admin',
|
57
|
+
name: 'Admin User',
|
58
|
+
password_digest: '$2a$10$ifVfdEeCCetvUDl1n2JgCuTPdyyLyl6tXjEX5YlKJjzWErN4lzBkC')
|
59
|
+
rems.save
|
60
|
+
role1 = DcUserRole.new(dc_policy_role: admin_role, active: true)
|
61
|
+
rems.dc_user_roles << role1
|
62
|
+
|
63
|
+
guest = DcUser.new(
|
64
|
+
username: 'guest',
|
65
|
+
name: 'Guest User',
|
66
|
+
password_digest: '$2a$10$ifVfdEeCCetvUDl1n2JgCuTPdyyLyl6tXjEX5YlKJjzWErN4lzBkC')
|
67
|
+
guest.save
|
68
|
+
end
|
69
|
+
|
70
|
+
##################################################################
|
71
|
+
# Delete test data
|
72
|
+
##################################################################
|
73
|
+
def drg_cms_test_data_delete
|
74
|
+
DcUser.all.delete
|
75
|
+
DcSite.all.delete
|
76
|
+
DcPermission.all.delete
|
77
|
+
DcPolicyRole.all.delete
|
78
|
+
end
|
79
|
+
|
80
|
+
##################################################################
|
81
|
+
# Load test data
|
82
|
+
##################################################################
|
83
|
+
def drg_cms_test_data_load
|
84
|
+
p 'load'
|
85
|
+
drg_cms_test_data_delete
|
86
|
+
drg_cms_test_data_fill
|
87
|
+
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.5.52.
|
4
|
+
version: 0.5.52.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Damjan Rems
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-02-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -150,8 +150,9 @@ dependencies:
|
|
150
150
|
- - ">="
|
151
151
|
- !ruby/object:Gem::Version
|
152
152
|
version: '0'
|
153
|
-
description: DRG
|
154
|
-
|
153
|
+
description: DRG, development tool for rapid building of in-house (Intranet, private
|
154
|
+
cloud) applications as well as CMS for creating complex, data-entry intensive web
|
155
|
+
sites.
|
155
156
|
email:
|
156
157
|
- damjan.rems@gmail.com
|
157
158
|
executables: []
|
@@ -372,9 +373,9 @@ files:
|
|
372
373
|
- test/dummy/public/500.html
|
373
374
|
- test/dummy/public/favicon.ico
|
374
375
|
- test/dummy/script/rails
|
376
|
+
- test/fixtures/drg_cms_test_data.rb
|
375
377
|
- test/integration/navigation_test.rb
|
376
378
|
- test/lib/generators/new_drg_form_generator_test.rb
|
377
|
-
- test/test_helper.rb
|
378
379
|
homepage: http://www.drgcms.org
|
379
380
|
licenses:
|
380
381
|
- MIT
|
@@ -395,15 +396,16 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
395
396
|
version: '0'
|
396
397
|
requirements: []
|
397
398
|
rubyforge_project:
|
398
|
-
rubygems_version: 2.6.
|
399
|
+
rubygems_version: 2.6.14
|
399
400
|
signing_key:
|
400
401
|
specification_version: 4
|
401
|
-
summary: 'DRG
|
402
|
+
summary: 'DRG: Rapid web application development tool and CMS for Ruby, Rails and
|
403
|
+
MongoDB'
|
402
404
|
test_files:
|
403
|
-
- test/test_helper.rb
|
404
405
|
- test/lib/generators/new_drg_form_generator_test.rb
|
405
406
|
- test/drg_cms_test.rb
|
406
407
|
- test/integration/navigation_test.rb
|
408
|
+
- test/fixtures/drg_cms_test_data.rb
|
407
409
|
- test/dummy/README.rdoc
|
408
410
|
- test/dummy/config/locales/en.yml
|
409
411
|
- test/dummy/config/initializers/secret_token.rb
|
data/test/test_helper.rb
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
# Copyright 2012-2016 Damjan Rems
|
2
|
-
# Configure Rails Environment
|
3
|
-
|
4
|
-
ENV["RAILS_ENV"] = "test"
|
5
|
-
|
6
|
-
require File.expand_path("../dummy/config/environment.rb", __FILE__)
|
7
|
-
require "rails/test_help"
|
8
|
-
|
9
|
-
Rails.backtrace_cleaner.remove_silencers!
|
10
|
-
|
11
|
-
# Load support files
|
12
|
-
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
|
13
|
-
|
14
|
-
# Load fixtures from the engine
|
15
|
-
if ActiveSupport::TestCase.method_defined?(:fixture_path=)
|
16
|
-
ActiveSupport::TestCase.fixture_path = File.expand_path("../fixtures", __FILE__)
|
17
|
-
end
|