drg_cms 0.4.39 → 0.4.53

Sign up to get free protection for your applications and to get access to all the features.
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