drg_cms 0.4.39 → 0.4.53
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 +49 -0
- data/app/assets/images/drg_cms/file_manager.png +0 -0
- data/app/assets/javascripts/drg_cms/drg_cms.js +8 -8
- data/app/assets/stylesheets/drg_cms/drg_cms.css +22 -20
- data/app/controllers/cmsedit_controller.rb +170 -114
- data/app/controllers/dc_application_controller.rb +142 -56
- data/app/controllers/dc_common_controller.rb +56 -34
- data/app/controllers/dc_main_controller.rb +1 -4
- data/app/controllers/drgcms_controls/dc_page_controls.rb +3 -0
- data/app/forms/all_options.yml +3 -0
- data/app/forms/cms_menu.yml +100 -117
- data/app/forms/dc_design.yml +1 -1
- data/app/forms/dc_ident.yml +37 -0
- data/app/forms/dc_menu_item.yml +1 -1
- data/app/forms/dc_permission.yml +1 -1
- data/app/forms/dc_site.yml +4 -0
- data/app/helpers/cmsedit_helper.rb +44 -80
- data/app/helpers/dc_ad_renderer.rb +27 -15
- data/app/helpers/dc_application_helper.rb +433 -196
- data/app/helpers/dc_big_menu_renderer.rb +40 -40
- data/app/helpers/dc_captcha_renderer.rb +38 -25
- data/app/helpers/dc_common_renderer.rb +15 -48
- data/app/helpers/dc_menu_renderer.rb +30 -20
- data/app/helpers/dc_page_renderer.rb +14 -18
- data/app/helpers/dc_part_renderer.rb +45 -16
- data/app/helpers/dc_piece_renderer.rb +23 -29
- data/app/helpers/dc_poll_renderer.rb +31 -20
- data/app/helpers/dc_renderer.rb +5 -4
- data/app/helpers/dc_simple_menu_renderer.rb +90 -68
- data/app/models/{__dc_global_data.rb → __dc_stat.rb} +20 -21
- data/app/models/dc_ad.rb +13 -1
- data/app/models/dc_ad_stat.rb +6 -0
- data/app/models/dc_big_menu.rb +15 -2
- data/app/models/dc_big_table.rb +27 -4
- data/app/models/dc_big_table_locale.rb +7 -0
- data/app/models/dc_big_table_value.rb +7 -0
- data/app/models/dc_category.rb +9 -3
- data/app/models/dc_design.rb +50 -0
- data/app/models/dc_dummy.rb +41 -1
- data/app/models/dc_folder_permission.rb +9 -2
- data/app/models/{dc_global_data.rb → dc_ident.rb} +20 -22
- data/app/models/dc_journal.rb +9 -1
- data/app/models/dc_key_value_store.rb +41 -4
- data/app/models/dc_link.rb +7 -0
- data/app/models/dc_menu.rb +20 -3
- data/app/models/dc_menu_item.rb +7 -0
- data/app/models/dc_page.rb +31 -12
- data/app/models/dc_part.rb +34 -4
- data/app/models/dc_permission.rb +32 -12
- data/app/models/dc_piece.rb +32 -4
- data/app/models/dc_policy.rb +17 -11
- data/app/models/dc_policy_role.rb +12 -7
- data/app/models/dc_policy_rule.rb +32 -4
- data/app/models/dc_poll.rb +8 -0
- data/app/models/dc_poll_item.rb +6 -0
- data/app/models/dc_simple_menu.rb +18 -3
- data/app/models/dc_simple_menu_item.rb +20 -2
- data/app/models/dc_site.rb +13 -3
- data/app/models/dc_stat.rb +8 -1
- data/app/models/dc_user.rb +18 -2
- data/app/models/dc_user_role.rb +7 -0
- data/app/models/dc_visit.rb +5 -0
- data/app/{helpers → models}/drgcms_form_field.rb +171 -73
- data/app/views/__dc_at_the_beginning/create.html.erb +9 -0
- data/app/views/__dc_at_the_beginning/index.html.erb +19 -0
- data/app/views/cmsedit/_edit_stuff.html.erb +2 -0
- data/app/views/cmsedit/_form.html.erb +0 -1
- data/app/views/dc_mail/subscribe.html.erb +0 -0
- data/config/initializers/kaminari_patch.rb +5 -4
- data/config/locales/drgcms_en.yml +4 -0
- data/config/locales/drgcms_sl.yml +1 -0
- data/config/locales/models_en.yml +14 -3
- data/config/locales/models_sl.yml +13 -4
- data/drg_cms.gemspec +4 -4
- data/lib/drg_cms.rb +37 -8
- data/lib/drg_cms/engine.rb +2 -2
- data/lib/drg_cms/version.rb +3 -2
- data/lib/tasks/at_the_beginning.yml +0 -0
- data/lib/tasks/dc_at_the_beginning.rake +118 -0
- data/lib/tasks/dc_cleanup.rake +19 -7
- data/lib/tasks/log_statistics.rb +66 -0
- data/lib/tasks/site_statistics.rake +29 -12
- data/test/dummy/app/controllers/application_controller.rb +1 -1
- data/test/dummy/app/helpers/application_helper.rb +1 -1
- metadata +15 -26
- data/README.rdoc +0 -3
- data/app/controllers/dc_at_the_beginning_controller.rb +0 -120
- data/app/controllers/dc_mail_controller.rb +0 -89
- data/app/forms/dc_forum_cat.yml +0 -54
- data/app/forms/dc_forum_forum.yml +0 -53
- data/app/forms/dc_forum_msg.yml +0 -124
- data/app/forms/dc_forum_privmsg.yml +0 -125
- data/app/forms/dc_forum_topic.yml +0 -131
- data/app/forms/dc_mail.yml +0 -88
- data/app/forms/dc_mail_address.yml +0 -56
- data/app/forms/dc_mail_list.yml +0 -44
- data/app/forms/dc_mail_list_member.yml +0 -42
- data/app/helpers/dc_mail_renderer.rb +0 -76
- data/app/models/dc_mail.rb +0 -64
- data/app/models/dc_mail_address.rb +0 -69
- data/app/models/dc_mail_list.rb +0 -48
- data/app/models/dc_mail_list_member.rb +0 -34
- data/app/models/dc_sendmail.rb +0 -48
|
@@ -21,24 +21,23 @@
|
|
|
21
21
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
22
22
|
#++
|
|
23
23
|
|
|
24
|
-
|
|
25
|
-
#
|
|
26
|
-
#
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
end
|
|
24
|
+
########################################################################
|
|
25
|
+
# Mongoid::Document model for dc_stat documents.
|
|
26
|
+
#
|
|
27
|
+
#
|
|
28
|
+
########################################################################
|
|
29
|
+
|
|
30
|
+
class DcStat #:nodoc:
|
|
31
|
+
include Mongoid::Document
|
|
32
|
+
include Mongoid::Timestamps
|
|
33
|
+
|
|
34
|
+
field :key1, type: String
|
|
35
|
+
field :key2, type: String
|
|
36
|
+
field :key3, type: String
|
|
37
|
+
field :value, type: Integer, default: 0
|
|
38
|
+
field :text1, type: String
|
|
39
|
+
field :text2, type: String
|
|
40
|
+
field :link, type: String
|
|
41
|
+
|
|
42
|
+
index( { key1: 1, key2: 1, key3: 1 } )
|
|
43
|
+
end
|
data/app/models/dc_ad.rb
CHANGED
|
@@ -21,6 +21,15 @@
|
|
|
21
21
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
22
22
|
#++
|
|
23
23
|
|
|
24
|
+
##########################################################################
|
|
25
|
+
# Mongoid::Document model for dc_ads collection.
|
|
26
|
+
#
|
|
27
|
+
# Ads can be defined as picture file, flash file or script.
|
|
28
|
+
#
|
|
29
|
+
# More than one ad can be shown on the same place of design. They are grouped by
|
|
30
|
+
# position field, have priority, valid time period and can be limited by number of
|
|
31
|
+
# clicks or displays.
|
|
32
|
+
##########################################################################
|
|
24
33
|
class DcAd
|
|
25
34
|
include Mongoid::Document
|
|
26
35
|
include Mongoid::Timestamps
|
|
@@ -31,7 +40,7 @@ class DcAd
|
|
|
31
40
|
field :file, type: String, default: ''
|
|
32
41
|
field :script, type: String, default: ''
|
|
33
42
|
field :link, type: String, default: ''
|
|
34
|
-
field :link_target,
|
|
43
|
+
field :link_target, type: String, default: ''
|
|
35
44
|
field :height, type: Integer
|
|
36
45
|
field :width, type: Integer
|
|
37
46
|
field :valid_from, type: DateTime
|
|
@@ -49,4 +58,7 @@ class DcAd
|
|
|
49
58
|
belongs_to :dc_site
|
|
50
59
|
|
|
51
60
|
index( { dc_site: 1, position: 1 } )
|
|
61
|
+
|
|
62
|
+
validates :position, presence: true
|
|
63
|
+
validates :description, presence: true
|
|
52
64
|
end
|
data/app/models/dc_ad_stat.rb
CHANGED
|
@@ -21,6 +21,12 @@
|
|
|
21
21
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
22
22
|
#++
|
|
23
23
|
|
|
24
|
+
##########################################################################
|
|
25
|
+
# Mongoid::Document model for dc_ad_stats collection.
|
|
26
|
+
#
|
|
27
|
+
# Documents in this collection holds data about displays and clicks on ads which
|
|
28
|
+
# can be further processed for statistical purposes.
|
|
29
|
+
##########################################################################
|
|
24
30
|
class DcAdStat
|
|
25
31
|
include Mongoid::Document
|
|
26
32
|
include Mongoid::Timestamps
|
data/app/models/dc_big_menu.rb
CHANGED
|
@@ -20,6 +20,15 @@
|
|
|
20
20
|
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
21
21
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
22
22
|
#++
|
|
23
|
+
|
|
24
|
+
##########################################################################
|
|
25
|
+
# Mongoid::Document model for dc_big_menus collection.
|
|
26
|
+
#
|
|
27
|
+
# This menu system is still experimental. It can be used for sites with menu
|
|
28
|
+
# which has many sub menus each linked to its own document. Unlike other menu
|
|
29
|
+
# models which provide menu in single document (with embedded documents as sub menus) this
|
|
30
|
+
# menu system provides one document for every menu option.
|
|
31
|
+
##########################################################################
|
|
23
32
|
class DcBigMenu
|
|
24
33
|
include Mongoid::Document
|
|
25
34
|
include Mongoid::Timestamps
|
|
@@ -41,7 +50,9 @@ class DcBigMenu
|
|
|
41
50
|
index( { dc_site_id: 1, parent: 1 } )
|
|
42
51
|
index( { page_id: 1 } )
|
|
43
52
|
|
|
44
|
-
###########################################################################
|
|
53
|
+
###########################################################################
|
|
54
|
+
# Process submenu. Subroutine of choices4_menu.
|
|
55
|
+
###########################################################################
|
|
45
56
|
def self.add_sub_menu(site, parent, rez, level)
|
|
46
57
|
#TODO Make this faster
|
|
47
58
|
only(:_id,:parent,:caption).where(dc_site_id: site._id, parent: parent).sort( order: 1).to_a.each do |m|
|
|
@@ -50,7 +61,9 @@ def self.add_sub_menu(site, parent, rez, level)
|
|
|
50
61
|
end
|
|
51
62
|
end
|
|
52
63
|
|
|
53
|
-
###########################################################################
|
|
64
|
+
###########################################################################
|
|
65
|
+
# Returns available menu choices for selecting menu
|
|
66
|
+
###########################################################################
|
|
54
67
|
def self.choices4_menu(site)
|
|
55
68
|
rez = []
|
|
56
69
|
self.add_sub_menu(site, nil, rez, -1)
|
data/app/models/dc_big_table.rb
CHANGED
|
@@ -20,6 +20,29 @@
|
|
|
20
20
|
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
21
21
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
22
22
|
#++
|
|
23
|
+
|
|
24
|
+
##########################################################################
|
|
25
|
+
# Mongoid::Document model for dc_big_table collection.
|
|
26
|
+
#
|
|
27
|
+
# Big table is meant to be a common space for defining default choices for select fields on forms.
|
|
28
|
+
# Documents are organized as key-value pair with the difference that values for the key can
|
|
29
|
+
# be defined for every site and can also be localized.
|
|
30
|
+
#
|
|
31
|
+
# Usage (as used in forms):
|
|
32
|
+
#
|
|
33
|
+
# In the example administrator may help user by providing values that can be used
|
|
34
|
+
# on DcAd document position field by defining them in ads-position key of big table.
|
|
35
|
+
# Example is from dc_ads.yml form.
|
|
36
|
+
#
|
|
37
|
+
# 10:
|
|
38
|
+
# name: position
|
|
39
|
+
# type: text_with_select
|
|
40
|
+
# eval: dc_big_table 'ads-positions'
|
|
41
|
+
# html:
|
|
42
|
+
# size: 20
|
|
43
|
+
#
|
|
44
|
+
# dc_big_table collection embeds many DcBigTableValue documents.
|
|
45
|
+
##########################################################################
|
|
23
46
|
class DcBigTable
|
|
24
47
|
include Mongoid::Document
|
|
25
48
|
include Mongoid::Timestamps
|
|
@@ -34,17 +57,17 @@ class DcBigTable
|
|
|
34
57
|
|
|
35
58
|
embeds_many :dc_big_table_values
|
|
36
59
|
|
|
37
|
-
index( {
|
|
60
|
+
index( { key: 1, site_id: 1 } )
|
|
38
61
|
|
|
39
62
|
validates :key, presence: true
|
|
40
63
|
validates :description, presence: true
|
|
41
64
|
|
|
42
65
|
########################################################################
|
|
43
|
-
#
|
|
66
|
+
# Will return possible choices for specified key prepared for usega in select input field.
|
|
44
67
|
########################################################################
|
|
45
|
-
def self.choices4(
|
|
68
|
+
def self.choices4(key, site, locale=nil)
|
|
46
69
|
a = []
|
|
47
|
-
r = find(
|
|
70
|
+
r = find(key: key, site: site)
|
|
48
71
|
if r
|
|
49
72
|
r.dc_big_table_values.each do |v|
|
|
50
73
|
desc = v.description
|
|
@@ -20,6 +20,13 @@
|
|
|
20
20
|
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
21
21
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
22
22
|
#++
|
|
23
|
+
|
|
24
|
+
#####################################################################
|
|
25
|
+
# Mongoid::Document model for dc_big_table_locale embedded document.
|
|
26
|
+
#
|
|
27
|
+
# Documents are embedded in DcBigTableValue documents. Every value defined in
|
|
28
|
+
# DcBigTableValue parent document can have its locale translation.
|
|
29
|
+
#####################################################################
|
|
23
30
|
class DcBigTableLocale
|
|
24
31
|
include Mongoid::Document
|
|
25
32
|
include Mongoid::Timestamps
|
|
@@ -20,6 +20,13 @@
|
|
|
20
20
|
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
21
21
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
22
22
|
#++
|
|
23
|
+
|
|
24
|
+
#####################################################################
|
|
25
|
+
# Mongoid::Document model for dc_big_table_values embedded documents.
|
|
26
|
+
#
|
|
27
|
+
# Documents are embedded in DcBigTable document. Every value defined has its own description,
|
|
28
|
+
# which can further be translated in embedded DcBigTableLocale documents.
|
|
29
|
+
#####################################################################
|
|
23
30
|
class DcBigTableValue
|
|
24
31
|
include Mongoid::Document
|
|
25
32
|
include Mongoid::Timestamps
|
data/app/models/dc_category.rb
CHANGED
|
@@ -20,6 +20,13 @@
|
|
|
20
20
|
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
21
21
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
22
22
|
#++
|
|
23
|
+
|
|
24
|
+
#####################################################################
|
|
25
|
+
# Mongoid::Document model for dc_categories collection.
|
|
26
|
+
#
|
|
27
|
+
# Categories are used on DcPage documents for grouping documents. Categorization
|
|
28
|
+
# is most useful for grouping news, blog entries ...
|
|
29
|
+
#####################################################################
|
|
23
30
|
class DcCategory
|
|
24
31
|
include Mongoid::Document
|
|
25
32
|
include Mongoid::Timestamps
|
|
@@ -39,10 +46,9 @@ class DcCategory
|
|
|
39
46
|
index ctype: 1
|
|
40
47
|
|
|
41
48
|
#########################################################################
|
|
42
|
-
#
|
|
49
|
+
# Returns all values where parent value is nil (top level parent).
|
|
43
50
|
#########################################################################
|
|
44
|
-
|
|
45
|
-
def self.values_for_parent
|
|
51
|
+
def self.values_for_parent #:nodoc:
|
|
46
52
|
where(parent: nil).sort(name: 1).inject([]) {|r,v| r << [v.name, v._id]}
|
|
47
53
|
end
|
|
48
54
|
end
|
data/app/models/dc_design.rb
CHANGED
|
@@ -20,6 +20,55 @@
|
|
|
20
20
|
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
21
21
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
22
22
|
#++
|
|
23
|
+
|
|
24
|
+
########################################################################
|
|
25
|
+
# Mongoid::Document model for dc_designs collection.
|
|
26
|
+
#
|
|
27
|
+
# Designs are essential parts of DRG CMS. Every DcPage document must have its design document defined.
|
|
28
|
+
# If DcPage documents are anchors for url addresses, DcDesign documents define how
|
|
29
|
+
# will page data be rendered in browser.
|
|
30
|
+
#
|
|
31
|
+
# DcDesign documents define what would normally be written into Rails view file. The code
|
|
32
|
+
# is saved in the body field of DcDesign document. If you prefere Rails way, enter view
|
|
33
|
+
# file name into rails_view field and put your code into file into views directory
|
|
34
|
+
# (ex. designs/home_page for ../views/designs/home_page.html.erb file).
|
|
35
|
+
#
|
|
36
|
+
# If you choose to save code to Rails view file you must add one top and bottom line to every source file.
|
|
37
|
+
# Top line will provide CMS edit menu, bottom line will provide additional CSS and javascript code
|
|
38
|
+
# scooped when renderers are called.
|
|
39
|
+
#
|
|
40
|
+
# Example (as written in body of dc_design):
|
|
41
|
+
# <div id="site">
|
|
42
|
+
# <div id="site-top-bg">
|
|
43
|
+
# <div id="site-top"><div id="logo"><%= dc_render(:dc_piece, name: 'site-top') %></div>
|
|
44
|
+
# <div id="login"><%= dc_render(:common, method: 'login') %></div>
|
|
45
|
+
# </div>
|
|
46
|
+
# <%= dc_render(:dc_menu, name: 'test-menu') %>
|
|
47
|
+
# </div>
|
|
48
|
+
#
|
|
49
|
+
# <div id="page"><%= dc_render(:dc_page) %></div>
|
|
50
|
+
# </div>
|
|
51
|
+
# <div id="site-bottom"><%= dc_render(:dc_piece, name: 'site-bottom') %></div>
|
|
52
|
+
#
|
|
53
|
+
# Example (as written in Rails view file):
|
|
54
|
+
#
|
|
55
|
+
# <!-- Pay attention on lines added at the top and bottom of file -->
|
|
56
|
+
# <%= render partial: 'cmsedit/edit_stuff' if session[:edit_mode] > 0 %>
|
|
57
|
+
#
|
|
58
|
+
# <div id="site">
|
|
59
|
+
# <div id="site-top-bg">
|
|
60
|
+
# <div id="site-top"><div id="logo"><%= dc_render(:dc_piece, name: 'site-top') %></div>
|
|
61
|
+
# <div id="login"><%= dc_render(:common, method: 'login') %></div>
|
|
62
|
+
# </div>
|
|
63
|
+
# <%= dc_render(:dc_menu, name: 'test-menu') %>
|
|
64
|
+
# </div>
|
|
65
|
+
#
|
|
66
|
+
# <div id="page"><%= dc_render(:dc_page) %></div>
|
|
67
|
+
# </div>
|
|
68
|
+
# <div id="site-bottom"><%= dc_render(:dc_piece, name: 'site-bottom') %></div>
|
|
69
|
+
#
|
|
70
|
+
# <style type="text/css"><%= @css.html_safe %></style><%= javascript_tag @js %>
|
|
71
|
+
########################################################################
|
|
23
72
|
class DcDesign
|
|
24
73
|
include Mongoid::Document
|
|
25
74
|
include Mongoid::Timestamps
|
|
@@ -35,6 +84,7 @@ class DcDesign
|
|
|
35
84
|
field :updated_by, type: BSON::ObjectId
|
|
36
85
|
|
|
37
86
|
embeds_many :dc_parts
|
|
87
|
+
# embeds_many :dc_parts, as: :dc_parts
|
|
38
88
|
|
|
39
89
|
index( { name: 1 }, { unique: true } )
|
|
40
90
|
|
data/app/models/dc_dummy.rb
CHANGED
|
@@ -21,10 +21,50 @@
|
|
|
21
21
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
22
22
|
#++
|
|
23
23
|
|
|
24
|
+
########################################################################
|
|
25
|
+
# Mongoid::Document model for dc_dummy collection.
|
|
26
|
+
#
|
|
27
|
+
# Which is not collection at all. DcDummy model is used for entering data on forms
|
|
28
|
+
# where data will not be saved to database but will instead be processed by custom
|
|
29
|
+
# made routine. For example entering begin and end date on report.
|
|
30
|
+
#
|
|
31
|
+
# Example (as used in forms):
|
|
32
|
+
#
|
|
33
|
+
# table: dc_dummy
|
|
34
|
+
# title: Enter time period
|
|
35
|
+
#
|
|
36
|
+
# form:
|
|
37
|
+
# actions:
|
|
38
|
+
# 1:
|
|
39
|
+
# type: ajax
|
|
40
|
+
# method: post
|
|
41
|
+
# controller: reports
|
|
42
|
+
# action: do_some_report
|
|
43
|
+
# caption: Run report
|
|
44
|
+
#
|
|
45
|
+
# fields:
|
|
46
|
+
# 10:
|
|
47
|
+
# name: date_start
|
|
48
|
+
# type: date_picker
|
|
49
|
+
# caption: Start date
|
|
50
|
+
# 20:
|
|
51
|
+
# name: date_end
|
|
52
|
+
# type: date_picker
|
|
53
|
+
# caption: End date
|
|
54
|
+
#
|
|
55
|
+
# And suppose your report saved data to file named public/report.pdf. Put this line at the end of do_some_report
|
|
56
|
+
# action:
|
|
57
|
+
# render inline: { :window_report => '/report.pdf' }.to_json, formats: 'js'
|
|
58
|
+
#
|
|
59
|
+
# As result report.pdf file will be opened in new browser window.
|
|
60
|
+
########################################################################
|
|
24
61
|
class DcDummy
|
|
25
62
|
include Mongoid::Document
|
|
26
63
|
|
|
27
|
-
|
|
64
|
+
########################################################################
|
|
65
|
+
# Ignore errors.
|
|
66
|
+
########################################################################
|
|
67
|
+
def method_missing(m, *args, &block) #:nodoc:
|
|
28
68
|
nil
|
|
29
69
|
end
|
|
30
70
|
end
|
|
@@ -22,7 +22,14 @@
|
|
|
22
22
|
#++
|
|
23
23
|
|
|
24
24
|
#########################################################################
|
|
25
|
-
#
|
|
25
|
+
# Mongoid::Document model for dc_folder_permissions collection.
|
|
26
|
+
#
|
|
27
|
+
# Similar to DcPermission DcFolderPermission model defines documents
|
|
28
|
+
# for accessing file system. Permissions defined on a parent folder automatically
|
|
29
|
+
# apply to all folders below unless folder on lower level has its own permission document.
|
|
30
|
+
#
|
|
31
|
+
# At least one document must exist for file manager to work. Default document
|
|
32
|
+
# usually defines that admin role has ADMINISTRATOR rights on top level folder.
|
|
26
33
|
#########################################################################
|
|
27
34
|
class DcFolderPermission
|
|
28
35
|
include Mongoid::Document
|
|
@@ -30,7 +37,7 @@ include Mongoid::Timestamps
|
|
|
30
37
|
|
|
31
38
|
field :folder_name, type: String
|
|
32
39
|
field :inherited, type: Boolean, default: true
|
|
33
|
-
field :is_default, type: Boolean, default: false
|
|
40
|
+
#field :is_default, type: Boolean, default: false
|
|
34
41
|
field :active, type: Boolean, default: true
|
|
35
42
|
|
|
36
43
|
embeds_many :dc_policy_rules
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#--
|
|
2
|
-
# Copyright (c)
|
|
2
|
+
# Copyright (c) 2015+ Damjan Rems
|
|
3
3
|
#
|
|
4
4
|
# Permission is hereby granted, free of charge, to any person obtaining
|
|
5
5
|
# a copy of this software and associated documentation files (the
|
|
@@ -21,24 +21,22 @@
|
|
|
21
21
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
22
22
|
#++
|
|
23
23
|
|
|
24
|
-
|
|
25
|
-
#
|
|
26
|
-
#
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
end
|
|
44
|
-
end
|
|
24
|
+
########################################################################
|
|
25
|
+
# Mongoid::Document model for dc_idents emdedded documents.
|
|
26
|
+
#
|
|
27
|
+
# dc_idents are similar to mongoid hash structure and can be used for saveing
|
|
28
|
+
# key/value object. Fact is that I have overlooked the existance of MongoDB Hash field type
|
|
29
|
+
# and this structure will be used until drg_forms_field which will use Hash field type is created.
|
|
30
|
+
#########################################################################
|
|
31
|
+
class DcIdent
|
|
32
|
+
include Mongoid::Document
|
|
33
|
+
include Mongoid::Timestamps
|
|
34
|
+
|
|
35
|
+
field :key, type: String
|
|
36
|
+
field :value, type: String
|
|
37
|
+
|
|
38
|
+
embedded_in :idents, polymorphic: true
|
|
39
|
+
|
|
40
|
+
validates :key, presence: true
|
|
41
|
+
validates :value, presence: true
|
|
42
|
+
end
|
data/app/models/dc_journal.rb
CHANGED
|
@@ -21,6 +21,14 @@
|
|
|
21
21
|
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
22
22
|
#++
|
|
23
23
|
|
|
24
|
+
#########################################################################
|
|
25
|
+
# Mongoid::Document model for dc_journals collection.
|
|
26
|
+
#
|
|
27
|
+
# dc_journals collections saves all data that has been updated through cmsedit
|
|
28
|
+
# controller. It saves old and new values of changed fields and can be used for
|
|
29
|
+
# instant restore of single document field or tracking who and when updated
|
|
30
|
+
# particular document.
|
|
31
|
+
#########################################################################
|
|
24
32
|
class DcJournal
|
|
25
33
|
include Mongoid::Document
|
|
26
34
|
|
|
@@ -32,7 +40,7 @@ class DcJournal
|
|
|
32
40
|
field :ids, type: String
|
|
33
41
|
field :ip, type: String
|
|
34
42
|
field :time, type: DateTime
|
|
35
|
-
field :diff,
|
|
43
|
+
field :diff, type: String
|
|
36
44
|
|
|
37
45
|
index( { user_id: 1, time: -1 } )
|
|
38
46
|
index( { time: 1 } )
|