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.
Files changed (104) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +49 -0
  3. data/app/assets/images/drg_cms/file_manager.png +0 -0
  4. data/app/assets/javascripts/drg_cms/drg_cms.js +8 -8
  5. data/app/assets/stylesheets/drg_cms/drg_cms.css +22 -20
  6. data/app/controllers/cmsedit_controller.rb +170 -114
  7. data/app/controllers/dc_application_controller.rb +142 -56
  8. data/app/controllers/dc_common_controller.rb +56 -34
  9. data/app/controllers/dc_main_controller.rb +1 -4
  10. data/app/controllers/drgcms_controls/dc_page_controls.rb +3 -0
  11. data/app/forms/all_options.yml +3 -0
  12. data/app/forms/cms_menu.yml +100 -117
  13. data/app/forms/dc_design.yml +1 -1
  14. data/app/forms/dc_ident.yml +37 -0
  15. data/app/forms/dc_menu_item.yml +1 -1
  16. data/app/forms/dc_permission.yml +1 -1
  17. data/app/forms/dc_site.yml +4 -0
  18. data/app/helpers/cmsedit_helper.rb +44 -80
  19. data/app/helpers/dc_ad_renderer.rb +27 -15
  20. data/app/helpers/dc_application_helper.rb +433 -196
  21. data/app/helpers/dc_big_menu_renderer.rb +40 -40
  22. data/app/helpers/dc_captcha_renderer.rb +38 -25
  23. data/app/helpers/dc_common_renderer.rb +15 -48
  24. data/app/helpers/dc_menu_renderer.rb +30 -20
  25. data/app/helpers/dc_page_renderer.rb +14 -18
  26. data/app/helpers/dc_part_renderer.rb +45 -16
  27. data/app/helpers/dc_piece_renderer.rb +23 -29
  28. data/app/helpers/dc_poll_renderer.rb +31 -20
  29. data/app/helpers/dc_renderer.rb +5 -4
  30. data/app/helpers/dc_simple_menu_renderer.rb +90 -68
  31. data/app/models/{__dc_global_data.rb → __dc_stat.rb} +20 -21
  32. data/app/models/dc_ad.rb +13 -1
  33. data/app/models/dc_ad_stat.rb +6 -0
  34. data/app/models/dc_big_menu.rb +15 -2
  35. data/app/models/dc_big_table.rb +27 -4
  36. data/app/models/dc_big_table_locale.rb +7 -0
  37. data/app/models/dc_big_table_value.rb +7 -0
  38. data/app/models/dc_category.rb +9 -3
  39. data/app/models/dc_design.rb +50 -0
  40. data/app/models/dc_dummy.rb +41 -1
  41. data/app/models/dc_folder_permission.rb +9 -2
  42. data/app/models/{dc_global_data.rb → dc_ident.rb} +20 -22
  43. data/app/models/dc_journal.rb +9 -1
  44. data/app/models/dc_key_value_store.rb +41 -4
  45. data/app/models/dc_link.rb +7 -0
  46. data/app/models/dc_menu.rb +20 -3
  47. data/app/models/dc_menu_item.rb +7 -0
  48. data/app/models/dc_page.rb +31 -12
  49. data/app/models/dc_part.rb +34 -4
  50. data/app/models/dc_permission.rb +32 -12
  51. data/app/models/dc_piece.rb +32 -4
  52. data/app/models/dc_policy.rb +17 -11
  53. data/app/models/dc_policy_role.rb +12 -7
  54. data/app/models/dc_policy_rule.rb +32 -4
  55. data/app/models/dc_poll.rb +8 -0
  56. data/app/models/dc_poll_item.rb +6 -0
  57. data/app/models/dc_simple_menu.rb +18 -3
  58. data/app/models/dc_simple_menu_item.rb +20 -2
  59. data/app/models/dc_site.rb +13 -3
  60. data/app/models/dc_stat.rb +8 -1
  61. data/app/models/dc_user.rb +18 -2
  62. data/app/models/dc_user_role.rb +7 -0
  63. data/app/models/dc_visit.rb +5 -0
  64. data/app/{helpers → models}/drgcms_form_field.rb +171 -73
  65. data/app/views/__dc_at_the_beginning/create.html.erb +9 -0
  66. data/app/views/__dc_at_the_beginning/index.html.erb +19 -0
  67. data/app/views/cmsedit/_edit_stuff.html.erb +2 -0
  68. data/app/views/cmsedit/_form.html.erb +0 -1
  69. data/app/views/dc_mail/subscribe.html.erb +0 -0
  70. data/config/initializers/kaminari_patch.rb +5 -4
  71. data/config/locales/drgcms_en.yml +4 -0
  72. data/config/locales/drgcms_sl.yml +1 -0
  73. data/config/locales/models_en.yml +14 -3
  74. data/config/locales/models_sl.yml +13 -4
  75. data/drg_cms.gemspec +4 -4
  76. data/lib/drg_cms.rb +37 -8
  77. data/lib/drg_cms/engine.rb +2 -2
  78. data/lib/drg_cms/version.rb +3 -2
  79. data/lib/tasks/at_the_beginning.yml +0 -0
  80. data/lib/tasks/dc_at_the_beginning.rake +118 -0
  81. data/lib/tasks/dc_cleanup.rake +19 -7
  82. data/lib/tasks/log_statistics.rb +66 -0
  83. data/lib/tasks/site_statistics.rake +29 -12
  84. data/test/dummy/app/controllers/application_controller.rb +1 -1
  85. data/test/dummy/app/helpers/application_helper.rb +1 -1
  86. metadata +15 -26
  87. data/README.rdoc +0 -3
  88. data/app/controllers/dc_at_the_beginning_controller.rb +0 -120
  89. data/app/controllers/dc_mail_controller.rb +0 -89
  90. data/app/forms/dc_forum_cat.yml +0 -54
  91. data/app/forms/dc_forum_forum.yml +0 -53
  92. data/app/forms/dc_forum_msg.yml +0 -124
  93. data/app/forms/dc_forum_privmsg.yml +0 -125
  94. data/app/forms/dc_forum_topic.yml +0 -131
  95. data/app/forms/dc_mail.yml +0 -88
  96. data/app/forms/dc_mail_address.yml +0 -56
  97. data/app/forms/dc_mail_list.yml +0 -44
  98. data/app/forms/dc_mail_list_member.yml +0 -42
  99. data/app/helpers/dc_mail_renderer.rb +0 -76
  100. data/app/models/dc_mail.rb +0 -64
  101. data/app/models/dc_mail_address.rb +0 -69
  102. data/app/models/dc_mail_list.rb +0 -48
  103. data/app/models/dc_mail_list_member.rb +0 -34
  104. data/app/models/dc_sendmail.rb +0 -48
@@ -1,88 +0,0 @@
1
- ## YAML Template for page
2
- ---
3
- table: dc_mail
4
-
5
- index:
6
- filter: subject
7
- actions: standard
8
-
9
- result_set:
10
- actions:
11
- 1: edit
12
- 2:
13
- type: duplicate
14
- dup_fields: subject
15
-
16
- 3: delete
17
-
18
- columns:
19
- 1:
20
- name: subject
21
- 2:
22
- name: send_time
23
- 3:
24
- name: schedule
25
- 4:
26
- name: status
27
-
28
- edit_title: mail
29
-
30
- form:
31
- actions:
32
- standard : yes
33
- 7:
34
- type: ajax
35
- controller: dc_mail
36
- action: send_test_mail
37
- caption: drgcms.dc_mail.send_to_test
38
- 8:
39
- type: ajax
40
- controller: dc_mail
41
- action: send_mail
42
- caption: drgcms.dc_mail.send
43
- tabs:
44
- tab1:
45
- 0:
46
- name: from
47
- type: text_field
48
- html:
49
- size: 50
50
- 1:
51
- name: subject
52
- type: text_field
53
- html:
54
- size: 50
55
- 2:
56
- name: body
57
- type: html_field
58
- options: 'height: 500'
59
-
60
- tab2:
61
- 1:
62
- name: to_list
63
- type: multitext_autocomplete
64
- search: dc_mail_list.name
65
- html:
66
- size: 30
67
- 3:
68
- name: to_address
69
- type: text_area
70
- html:
71
- size: 100x10
72
- 5:
73
- name: to_test
74
- type: text_field
75
- html:
76
- size: 50
77
- tab3:
78
- 0:
79
- name: schedule
80
- type: datetime_select
81
- 1:
82
- name: status
83
- type: select
84
- 3:
85
- name: css
86
- type: text_area
87
- html:
88
- size: 100x10
@@ -1,56 +0,0 @@
1
- ## YAML Template for page
2
- ---
3
- table: dc_mail_address
4
-
5
- index:
6
- filter: email, description
7
- actions: standard
8
-
9
- result_set:
10
- actions:
11
- 1: edit
12
- 2: delete
13
-
14
- columns:
15
- 1:
16
- name: email
17
- 2:
18
- name: dc_user_id
19
- eval: dc_name4_id,dc_user,name
20
- 3:
21
- name: active
22
- eval: dc_icon4_boolean
23
-
24
- edit_title: mail address
25
-
26
- form:
27
- actions: standard
28
-
29
- fields:
30
-
31
- 0:
32
- name: email
33
- type: text_field
34
- html:
35
- size: 50
36
- 1:
37
- name: dc_user_id
38
- type: text_autocomplete
39
- search: dc_user.name
40
- html:
41
- size: 30
42
- 2:
43
- name: active
44
- type: check_box
45
-
46
- 3:
47
- name: reason
48
- type: text_field
49
- html:
50
- size: 30
51
- 5:
52
- name: dc_mail_list_members
53
- type: embedded
54
- formname: dc_mail_list_member
55
- html:
56
- height: 400
@@ -1,44 +0,0 @@
1
- ## YAML Template for page
2
- ---
3
- table: dc_mail_list
4
-
5
- index:
6
- filter: name, description
7
- actions: standard
8
-
9
- result_set:
10
- actions:
11
- 1: edit
12
- 2: delete
13
-
14
- columns:
15
- 1:
16
- name: name
17
- 2:
18
- name: description
19
- 3:
20
- name: active
21
- eval: dc_icon4_boolean
22
-
23
- edit_title: mail list
24
-
25
- form:
26
- actions: standard
27
-
28
- fields:
29
-
30
- 0:
31
- name: name
32
- type: text_field
33
- html:
34
- size: 30
35
- 1:
36
- name: description
37
- type: text_field
38
- html:
39
- size: 50
40
- 2:
41
- name: params
42
- type: text_area
43
- html:
44
- size: 50x5
@@ -1,42 +0,0 @@
1
- ## YAML Template for page
2
- ---
3
- table: dc_mail_list_member
4
-
5
- index:
6
- actions: standard
7
-
8
- result_set:
9
- actions:
10
- 1: edit
11
- 2: delete
12
-
13
- columns:
14
- 1:
15
- name: dc_mail_list_id
16
- eval: dc_name4_id,dc_mail_list,name
17
- 3:
18
- name: active
19
- eval: dc_icon4_boolean
20
-
21
- edit_title: mail list
22
-
23
- form:
24
- actions: standard
25
-
26
- fields:
27
-
28
- 1:
29
- name: dc_mail_list_id
30
- type: select
31
- # eval: DcMailList.choices4_mail_list
32
- eval: dc_choices4('dc_mail_list','name','_id',:site_only => true)
33
-
34
- 2:
35
- name: active
36
- type: check_box
37
-
38
- 3:
39
- name: reason
40
- type: text_field
41
- html:
42
- size: 30
@@ -1,76 +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
- #
26
- ########################################################################
27
- class DcMailRenderer
28
-
29
- include DcApplicationHelper
30
-
31
- ########################################################################
32
- #
33
- ########################################################################
34
- def initialize( parent, opts={} )
35
- @parent = parent
36
- @opts = opts
37
- @part_css = ''
38
- @page = @parent.page
39
- self
40
- end
41
-
42
- ########################################################################
43
- # Dummy params method to return params object
44
- ########################################################################
45
- def params
46
- @parent.params
47
- end
48
-
49
- ########################################################################
50
- #
51
- ########################################################################
52
- def subscribe
53
- begin
54
- name = "dc_mail/subscribe_#{Rails.application.config.i18n.default_locale}"
55
- render partial: name
56
- rescue
57
- render partial: 'dc_mail/subscribe'
58
- end
59
- end
60
-
61
- ########################################################################
62
- #
63
- ########################################################################
64
- def render_html
65
- method = @opts[:method]
66
- send method if method
67
- end
68
-
69
- ########################################################################
70
- #
71
- ########################################################################
72
- def render_css
73
- @part_css
74
- end
75
-
76
- end
@@ -1,64 +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
- module DcMailCommon
25
- extend ActiveSupport::Concern
26
- included do
27
-
28
- include Mongoid::Document
29
- include Mongoid::Timestamps
30
-
31
- field :subject, type: String
32
- field :body, type: String
33
- field :from, type: String
34
- field :to_test, type: String
35
- field :to_address, type: String
36
- field :to_list, type: Array
37
- field :schedule, type: DateTime
38
- field :send_time, type: DateTime
39
- field :status, type: Integer
40
- field :css, type: String
41
-
42
- field :created_by, type: BSON::ObjectId
43
- field :updated_by, type: BSON::ObjectId
44
-
45
- belongs_to :dc_site
46
-
47
- index status: 1
48
-
49
- validate :if_email_is_ok
50
-
51
- def if_email_is_ok
52
- errors.add(:from, I18n.t('drgcms.not_email')) unless DcMailAddress::dc_is_email?(from)
53
- errors.add(:to_test, I18n.t('drgcms.not_email')) if to_test.to_s.size > 0 and !DcMailAddress::dc_is_email?(to_test)
54
- end
55
-
56
- end
57
- end
58
-
59
- ######################################################################
60
- #
61
- ######################################################################
62
- class DcMail
63
- include DcMailCommon
64
- end
@@ -1,69 +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
- class DcMailAddress
24
- include Mongoid::Document
25
- include Mongoid::Timestamps
26
-
27
- field :email, type: String
28
- field :reason, type: String
29
- field :dc_user_id, type: BSON::ObjectId
30
- field :active, type: Boolean, default: true
31
- field :created_by, type: BSON::ObjectId
32
- field :updated_by, type: BSON::ObjectId
33
-
34
- embeds_many :dc_mail_list_members
35
- belongs_to :dc_site
36
-
37
- index( { 'dc_mail_list_members.dc_mail_list_id' => 1 } )
38
-
39
- validate :if_email_is_ok
40
- =begin
41
- def if_email_is_ok
42
- if dc_user_id.nil?
43
- unless email.to_s =~ /^[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$/
44
- errors.add(:email, 'is not an email')
45
- end
46
- end
47
- end
48
- =end
49
-
50
- def if_email_is_ok
51
- if dc_user_id.nil? and !DcMailAddress::dc_is_email?(email)
52
- errors.add(:email, I18n.t('drgcms.not_email'))
53
- end
54
- end
55
-
56
- ############################################################################
57
- # Check if string contains valid e-mail address.
58
- #
59
- # @example usage from program
60
- # dc_is_email?(some_email)
61
- # eval: name4_id('site','name',@record['site_id'])
62
- #
63
- # @param [ email ] email address to be checked
64
- ############################################################################
65
- def self.dc_is_email?(email)
66
- email.to_s =~ /^[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$/
67
- end
68
-
69
- end
@@ -1,48 +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
- class DcMailList
24
- include Mongoid::Document
25
- include Mongoid::Timestamps
26
-
27
- field :name, type: String
28
- field :description, type: String
29
- field :params, type: String
30
- field :active, type: Boolean, default: true
31
- field :created_by, type: BSON::ObjectId
32
- field :updated_by, type: BSON::ObjectId
33
-
34
- belongs_to :dc_site
35
- has_many :dc_mail_addresses
36
-
37
- index({ site_id: 1, name: 1 }, { unique: true })
38
-
39
- validates_length_of :name, minimum: 5
40
- validates_length_of :description, minimum: 10
41
-
42
- def self.choices4_mail_list
43
- rez = []
44
- all.each { |list| rez << [list.name, list._id] if list.active }
45
- rez
46
- end
47
-
48
- end