zen 0.2.5 → 0.2.6
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.
- data/.gems +34 -0
- data/.travis.yml +7 -0
- data/AUTHORS +5 -0
- data/CHANGELOG +14 -0
- data/{license.txt → LICENSE} +0 -0
- data/MANIFEST +67 -51
- data/README.md +18 -25
- data/Rakefile +2 -3
- data/bin/zen +2 -2
- data/lib/zen.rb +93 -57
- data/lib/zen/asset.rb +7 -8
- data/lib/zen/bin/app.rb +0 -2
- data/lib/zen/controller/admin_controller.rb +4 -9
- data/lib/zen/controller/base_controller.rb +0 -25
- data/lib/zen/controller/main_controller.rb +5 -5
- data/lib/zen/controller/preview.rb +50 -0
- data/lib/zen/helper/common.rb +4 -68
- data/lib/zen/helper/message.rb +82 -0
- data/lib/zen/helper/theme.rb +2 -2
- data/lib/zen/language.rb +68 -38
- data/lib/zen/language/en/zen_general.yml +1 -4
- data/lib/zen/language/nl/zen_general.yml +28 -0
- data/lib/zen/language/nl/zen_models.yml +13 -0
- data/lib/zen/layout/admin.xhtml +1 -1
- data/lib/zen/layout/login.xhtml +1 -1
- data/lib/zen/model/settings.rb +2 -0
- data/lib/zen/package.rb +29 -25
- data/lib/zen/package/all.rb +1 -1
- data/lib/zen/package/categories/lib/categories/controller/categories.rb +51 -63
- data/lib/zen/package/categories/lib/categories/controller/category_groups.rb +45 -52
- data/lib/zen/package/categories/lib/categories/language/en/categories.yml +2 -2
- data/lib/zen/package/categories/lib/categories/language/nl/categories.yml +39 -0
- data/lib/zen/package/categories/lib/categories/language/nl/category_groups.yml +33 -0
- data/lib/zen/package/categories/lib/categories/plugin/categories.rb +2 -2
- data/lib/zen/package/comments/lib/comments.rb +31 -2
- data/lib/zen/package/comments/lib/comments/controller/comments.rb +42 -57
- data/lib/zen/package/comments/lib/comments/controller/comments_form.rb +36 -51
- data/lib/zen/package/comments/lib/comments/language/en/comments.yml +7 -3
- data/lib/zen/package/comments/lib/comments/language/nl/comments.yml +48 -0
- data/lib/zen/package/comments/lib/comments/model/comment.rb +45 -4
- data/lib/zen/package/comments/lib/comments/plugin/anti_spam.rb +152 -0
- data/lib/zen/package/comments/lib/comments/plugin/comments.rb +5 -6
- data/lib/zen/package/comments/lib/comments/view/admin/comments/index.xhtml +2 -2
- data/lib/zen/package/custom_fields/lib/custom_fields/controller/custom_field_groups.rb +43 -52
- data/lib/zen/package/custom_fields/lib/custom_fields/controller/custom_fields.rb +68 -67
- data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_fields.yml +1 -1
- data/lib/zen/package/custom_fields/lib/custom_fields/language/nl/custom_field_groups.yml +32 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/language/nl/custom_fields.yml +52 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field.rb +3 -3
- data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_group.rb +4 -7
- data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_value.rb +3 -3
- data/lib/zen/package/menus/lib/menus/controller/menu_items.rb +37 -44
- data/lib/zen/package/menus/lib/menus/controller/menus.rb +33 -43
- data/lib/zen/package/menus/lib/menus/helper/menu_item.rb +5 -10
- data/lib/zen/package/menus/lib/menus/language/nl/menu_items.yml +41 -0
- data/lib/zen/package/menus/lib/menus/language/nl/menus.yml +39 -0
- data/lib/zen/package/menus/lib/menus/model/menu.rb +3 -3
- data/lib/zen/package/menus/lib/menus/model/menu_item.rb +3 -3
- data/lib/zen/package/menus/lib/menus/plugin/menus.rb +5 -6
- data/lib/zen/package/menus/migrations/1297184342_create_schema.rb +1 -1
- data/lib/zen/package/sections/lib/sections.rb +20 -0
- data/lib/zen/package/sections/lib/sections/controller/section_entries.rb +85 -79
- data/lib/zen/package/sections/lib/sections/controller/sections.rb +58 -66
- data/lib/zen/package/sections/lib/sections/language/en/sections.yml +0 -1
- data/lib/zen/package/sections/lib/sections/language/nl/section_entries.yml +43 -0
- data/lib/zen/package/sections/lib/sections/language/nl/sections.yml +47 -0
- data/lib/zen/package/sections/lib/sections/model/section.rb +11 -15
- data/lib/zen/package/sections/lib/sections/model/section_entry.rb +9 -5
- data/lib/zen/package/sections/lib/sections/plugin/section_entries.rb +7 -8
- data/lib/zen/package/sections/lib/sections/plugin/sections.rb +3 -4
- data/lib/zen/package/sections/lib/sections/view/admin/section-entries/form.xhtml +0 -4
- data/lib/zen/package/sections/lib/sections/view/admin/section-entries/index.xhtml +8 -2
- data/lib/zen/package/sections/migrations/1306772479_remove_unique_slug.rb +28 -0
- data/lib/zen/package/settings/lib/settings.rb +21 -34
- data/lib/zen/package/settings/lib/settings/controller/settings.rb +29 -22
- data/lib/zen/package/settings/lib/settings/language/en/settings.yml +7 -5
- data/lib/zen/package/settings/lib/settings/language/nl/settings.yml +39 -0
- data/lib/zen/package/settings/lib/settings/model/setting.rb +3 -5
- data/lib/zen/package/settings/lib/settings/plugin/group_base.rb +3 -4
- data/lib/zen/package/settings/lib/settings/plugin/setting_base.rb +3 -5
- data/lib/zen/package/settings/lib/settings/plugin/settings.rb +11 -4
- data/lib/zen/package/settings/lib/settings/view/admin/settings/index.xhtml +5 -5
- data/lib/zen/package/settings/migrations/1299538742_add_language_key.rb +8 -8
- data/lib/zen/package/settings/migrations/1303196915_settings_plugin.rb +2 -5
- data/lib/zen/package/users/lib/users/controller/access_rules.rb +54 -61
- data/lib/zen/package/users/lib/users/controller/user_groups.rb +49 -57
- data/lib/zen/package/users/lib/users/controller/users.rb +58 -73
- data/lib/zen/package/users/lib/users/language/en/users.yml +6 -0
- data/lib/zen/package/users/lib/users/language/nl/access_rules.yml +37 -0
- data/lib/zen/package/users/lib/users/language/nl/user_groups.yml +31 -0
- data/lib/zen/package/users/lib/users/language/nl/users.yml +56 -0
- data/lib/zen/package/users/lib/users/model/user.rb +16 -1
- data/lib/zen/package/users/lib/users/view/admin/users/form.xhtml +27 -2
- data/lib/zen/package/users/lib/users/view/admin/users/index.xhtml +15 -3
- data/lib/zen/package/users/migrations/1304939855_user_settings.rb +15 -0
- data/lib/zen/plugin.rb +7 -9
- data/lib/zen/public/admin/css/{buttons.css → zen/buttons.css} +11 -7
- data/lib/zen/public/admin/css/{datepicker.css → zen/datepicker.css} +0 -0
- data/lib/zen/public/admin/css/{editor.css → zen/editor.css} +10 -5
- data/lib/zen/public/admin/css/{forms.css → zen/forms.css} +1 -1
- data/lib/zen/public/admin/css/{general.css → zen/general.css} +7 -7
- data/lib/zen/public/admin/css/{grid.css → zen/grid.css} +0 -0
- data/lib/zen/public/admin/css/{layout.css → zen/layout.css} +4 -5
- data/lib/zen/public/admin/css/zen/messages.css +61 -0
- data/lib/zen/public/admin/css/{notifications.css → zen/notifications.css} +4 -4
- data/lib/zen/public/admin/css/{reset.css → zen/reset.css} +0 -0
- data/lib/zen/public/admin/css/{tables.css → zen/tables.css} +3 -3
- data/lib/zen/public/admin/css/{tabs.css → zen/tabs.css} +5 -5
- data/lib/zen/public/admin/css/zen/window.css +79 -0
- data/lib/zen/public/admin/images/{icons → zen/icons}/accept.png +0 -0
- data/lib/zen/public/admin/images/{icons → zen/icons}/add.png +0 -0
- data/lib/zen/public/admin/images/{icons → zen/icons}/back.png +0 -0
- data/lib/zen/public/admin/images/{icons → zen/icons}/bold.png +0 -0
- data/lib/zen/public/admin/images/zen/icons/close.png +0 -0
- data/lib/zen/public/admin/images/{icons → zen/icons}/delete.png +0 -0
- data/lib/zen/public/admin/images/{icons → zen/icons}/edit.png +0 -0
- data/lib/zen/public/admin/images/{icons → zen/icons}/error.png +0 -0
- data/lib/zen/public/admin/images/{icons → zen/icons}/help.png +0 -0
- data/lib/zen/public/admin/images/{icons → zen/icons}/info.png +0 -0
- data/lib/zen/public/admin/images/{icons → zen/icons}/italic.png +0 -0
- data/lib/zen/public/admin/images/{icons → zen/icons}/large/error.png +0 -0
- data/lib/zen/public/admin/images/{icons → zen/icons}/large/notice.png +0 -0
- data/lib/zen/public/admin/images/{icons → zen/icons}/large/success.png +0 -0
- data/lib/zen/public/admin/images/{icons → zen/icons}/link.png +0 -0
- data/lib/zen/public/admin/images/{icons → zen/icons}/logout.png +0 -0
- data/lib/zen/public/admin/images/{icons → zen/icons}/ol.png +0 -0
- data/lib/zen/public/admin/images/{icons → zen/icons}/pdf.png +0 -0
- data/lib/zen/public/admin/images/zen/icons/preview.png +0 -0
- data/lib/zen/public/admin/images/{icons → zen/icons}/ul.png +0 -0
- data/lib/zen/public/admin/images/{icons → zen/icons}/user.png +0 -0
- data/lib/zen/public/admin/images/{icons → zen/icons}/view.png +0 -0
- data/lib/zen/public/admin/js/zen/core.js +73 -0
- data/lib/zen/public/admin/js/zen/editor.js +527 -0
- data/lib/zen/public/admin/js/zen/editor/markdown.js +84 -0
- data/lib/zen/public/admin/js/zen/editor/textile.js +84 -0
- data/lib/zen/public/admin/js/zen/init.js +12 -66
- data/lib/zen/public/admin/js/zen/tabs.js +5 -0
- data/lib/zen/public/admin/js/zen/window.js +206 -0
- data/lib/zen/task/build.rake +23 -6
- data/lib/zen/task/clean.rake +6 -7
- data/lib/zen/task/db.rake +7 -9
- data/lib/zen/task/package.rake +6 -6
- data/lib/zen/task/test.rake +6 -0
- data/lib/zen/task/theme.rake +3 -3
- data/lib/zen/theme.rb +3 -4
- data/lib/zen/validation.rb +7 -9
- data/lib/zen/version.rb +3 -4
- data/lib/zen/view/bottom.xhtml +0 -5
- data/lib/zen/view/main.xhtml +2 -0
- data/proto/app/app.rb +6 -4
- data/proto/app/config/config.rb +1 -7
- data/proto/app/config/database.rb +47 -43
- data/proto/app/config/middlewares.rb +0 -40
- data/proto/app/start.rb +1 -6
- data/proto/app/{vendor → theme}/.gitkeep +0 -0
- data/proto/migration.rb +3 -3
- data/proto/package/lib/package.rb +0 -1
- data/proto/package/lib/package/controller/controllers.rb +7 -40
- data/proto/package/lib/package/model/model.rb +3 -3
- metadata +106 -79
- data/CHANGELOG.md +0 -27
- data/ROADMAP.md +0 -53
- data/lib/zen/database.rb +0 -112
- data/lib/zen/logger.rb +0 -56
- data/lib/zen/public/admin/css/modals.css +0 -63
- data/lib/zen/public/admin/images/icons/close.png +0 -0
- data/lib/zen/public/admin/js/vendor/yepnope.js +0 -1
- data/lib/zen/public/admin/js/zen/editor/base.js +0 -262
- data/lib/zen/public/admin/js/zen/editor/drivers/html.js +0 -89
- data/lib/zen/public/admin/js/zen/editor/drivers/markdown.js +0 -87
- data/lib/zen/public/admin/js/zen/editor/drivers/textile.js +0 -87
- data/lib/zen/public/admin/js/zen/modal.js +0 -146
- data/lib/zen/public/admin/js/zen/notification.js +0 -211
- data/proto/app/config/requires.rb +0 -10
- data/proto/app/vendor/theme/.gitkeep +0 -0
- data/proto/package/lib/package/view/admin/package/edit.xhtml +0 -0
- data/proto/package/lib/package/view/admin/package/form.xhtml +0 -0
- data/proto/package/lib/package/view/admin/package/new.xhtml +0 -0
|
@@ -17,14 +17,17 @@ module Sections
|
|
|
17
17
|
class Sections < Zen::Controller::AdminController
|
|
18
18
|
include ::Sections::Model
|
|
19
19
|
|
|
20
|
-
map
|
|
21
|
-
|
|
20
|
+
map '/admin'
|
|
21
|
+
|
|
22
|
+
# Load all required Javascript files
|
|
23
|
+
javascript ['zen/tabs']
|
|
24
|
+
|
|
22
25
|
before_all do
|
|
23
26
|
csrf_protection(:save, :delete) do
|
|
24
27
|
respond(lang('zen_general.errors.csrf'), 403)
|
|
25
28
|
end
|
|
26
29
|
end
|
|
27
|
-
|
|
30
|
+
|
|
28
31
|
##
|
|
29
32
|
# Constructor method, called upon initialization. It's used to set the
|
|
30
33
|
# URL to which forms send their data and load the language pack.
|
|
@@ -38,19 +41,19 @@ module Sections
|
|
|
38
41
|
#
|
|
39
42
|
def initialize
|
|
40
43
|
super
|
|
41
|
-
|
|
44
|
+
|
|
42
45
|
@form_save_url = Sections.r(:save)
|
|
43
46
|
@form_delete_url = Sections.r(:delete)
|
|
44
|
-
|
|
47
|
+
|
|
45
48
|
Zen::Language.load('sections')
|
|
46
|
-
|
|
49
|
+
|
|
47
50
|
# Set the page title
|
|
48
51
|
if !action.method.nil?
|
|
49
52
|
method = action.method.to_sym
|
|
50
53
|
@page_title = lang("sections.titles.#{method}") rescue nil
|
|
51
54
|
end
|
|
52
55
|
end
|
|
53
|
-
|
|
56
|
+
|
|
54
57
|
##
|
|
55
58
|
# Show an overview of all existing sections. Using this overview a user
|
|
56
59
|
# can manage an existing section, delete it or create a new one.
|
|
@@ -58,7 +61,7 @@ module Sections
|
|
|
58
61
|
# This method requires the following permissions:
|
|
59
62
|
#
|
|
60
63
|
# * read
|
|
61
|
-
#
|
|
64
|
+
#
|
|
62
65
|
# @author Yorick Peterse
|
|
63
66
|
# @since 0.1
|
|
64
67
|
#
|
|
@@ -66,12 +69,12 @@ module Sections
|
|
|
66
69
|
if !user_authorized?([:read])
|
|
67
70
|
respond(lang('zen_general.errors.not_authorized'), 403)
|
|
68
71
|
end
|
|
69
|
-
|
|
72
|
+
|
|
70
73
|
set_breadcrumbs(lang('sections.titles.index'))
|
|
71
|
-
|
|
74
|
+
|
|
72
75
|
@sections = Section.all
|
|
73
76
|
end
|
|
74
|
-
|
|
77
|
+
|
|
75
78
|
##
|
|
76
79
|
# Show a form that lets the user edit an existing section.
|
|
77
80
|
#
|
|
@@ -84,16 +87,16 @@ module Sections
|
|
|
84
87
|
# @param [Integer] id The ID of the section to retrieve so that we can edit it.
|
|
85
88
|
# @since 0.1
|
|
86
89
|
#
|
|
87
|
-
def edit
|
|
90
|
+
def edit(id)
|
|
88
91
|
if !user_authorized?([:read, :update])
|
|
89
92
|
respond(lang('zen_general.errors.not_authorized'), 403)
|
|
90
93
|
end
|
|
91
|
-
|
|
94
|
+
|
|
92
95
|
set_breadcrumbs(
|
|
93
|
-
anchor_to(lang('sections.titles.index'), Sections.r(:index)),
|
|
96
|
+
anchor_to(lang('sections.titles.index'), Sections.r(:index)),
|
|
94
97
|
@page_title
|
|
95
98
|
)
|
|
96
|
-
|
|
99
|
+
|
|
97
100
|
@custom_field_group_pk_hash = CustomFields::Model::CustomFieldGroup.pk_hash(:name)
|
|
98
101
|
@category_group_pk_hash = Categories::Model::CategoryGroup.pk_hash(:name)
|
|
99
102
|
|
|
@@ -103,7 +106,7 @@ module Sections
|
|
|
103
106
|
@section = Section[id.to_i]
|
|
104
107
|
end
|
|
105
108
|
end
|
|
106
|
-
|
|
109
|
+
|
|
107
110
|
##
|
|
108
111
|
# Show a form that lets the user create a new section.
|
|
109
112
|
#
|
|
@@ -119,17 +122,17 @@ module Sections
|
|
|
119
122
|
if !user_authorized?([:create, :read])
|
|
120
123
|
respond(lang('zen_general.errors.not_authorized'), 403)
|
|
121
124
|
end
|
|
122
|
-
|
|
125
|
+
|
|
123
126
|
set_breadcrumbs(
|
|
124
|
-
anchor_to(lang('sections.titles.index'), Sections.r(:index)),
|
|
127
|
+
anchor_to(lang('sections.titles.index'), Sections.r(:index)),
|
|
125
128
|
@page_title
|
|
126
129
|
)
|
|
127
|
-
|
|
130
|
+
|
|
128
131
|
@custom_field_group_pk_hash = CustomFields::Model::CustomFieldGroup.pk_hash(:name)
|
|
129
132
|
@category_group_pk_hash = Categories::Model::CategoryGroup.pk_hash(:name)
|
|
130
133
|
@section = Section.new
|
|
131
134
|
end
|
|
132
|
-
|
|
135
|
+
|
|
133
136
|
##
|
|
134
137
|
# Method used for processing the form data and redirecting the user back to
|
|
135
138
|
# the proper URL. Based on the value of a hidden field named "id" we'll determine
|
|
@@ -147,8 +150,11 @@ module Sections
|
|
|
147
150
|
if !user_authorized?([:create, :update])
|
|
148
151
|
respond(lang('zen_general.errors.not_authorized'), 403)
|
|
149
152
|
end
|
|
150
|
-
|
|
151
|
-
post = request.
|
|
153
|
+
|
|
154
|
+
post = request.subset(
|
|
155
|
+
:id, :name, :slug, :description, :comment_allow, :comment_require_account,
|
|
156
|
+
:comment_moderate, :comment_format, :custom_field_group_pks, :category_group_pks
|
|
157
|
+
)
|
|
152
158
|
|
|
153
159
|
if post['id'] and !post['id'].empty?
|
|
154
160
|
@section = Section[post['id']]
|
|
@@ -157,49 +163,47 @@ module Sections
|
|
|
157
163
|
@section = Section.new
|
|
158
164
|
save_action = :new
|
|
159
165
|
end
|
|
160
|
-
|
|
166
|
+
|
|
161
167
|
flash_success = lang("sections.success.#{save_action}")
|
|
162
168
|
flash_error = lang("sections.errors.#{save_action}")
|
|
163
|
-
|
|
169
|
+
|
|
170
|
+
|
|
171
|
+
post['custom_field_group_pks'] ||= []
|
|
172
|
+
post['category_group_pks'] ||= []
|
|
173
|
+
|
|
164
174
|
# The primary keys have to be integers otherwise Sequel will soil it's pants
|
|
165
|
-
|
|
166
|
-
post[
|
|
167
|
-
else
|
|
168
|
-
post['custom_field_group_pks'] = []
|
|
169
|
-
end
|
|
170
|
-
|
|
171
|
-
if !post['category_group_pks'].nil?
|
|
172
|
-
post['category_group_pks'].map! { |value| value.to_i }
|
|
173
|
-
else
|
|
174
|
-
post['category_group_pks'] = []
|
|
175
|
+
['custom_field_group_pks', 'category_group_pks'].each do |k|
|
|
176
|
+
post[k].map! { |value| value.to_i }
|
|
175
177
|
end
|
|
176
178
|
|
|
177
179
|
# Auto generate the slug if it's empty
|
|
178
180
|
post.delete('slug') if post['slug'].empty?
|
|
179
|
-
|
|
181
|
+
post.delete('id')
|
|
182
|
+
|
|
180
183
|
begin
|
|
181
184
|
@section.update(post)
|
|
182
|
-
|
|
185
|
+
|
|
183
186
|
if save_action == :new
|
|
184
187
|
@section.custom_field_group_pks = post['custom_field_group_pks']
|
|
185
188
|
@section.category_group_pks = post['category_group_pks']
|
|
186
189
|
end
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
rescue
|
|
190
|
-
|
|
191
|
-
|
|
190
|
+
|
|
191
|
+
message(:success, flash_success)
|
|
192
|
+
rescue => e
|
|
193
|
+
Ramaze::Log.error(e.inspect)
|
|
194
|
+
message(:error, flash_error)
|
|
195
|
+
|
|
192
196
|
flash[:form_data] = @section
|
|
193
197
|
flash[:form_errors] = @section.errors
|
|
194
198
|
end
|
|
195
|
-
|
|
199
|
+
|
|
196
200
|
if @section.id
|
|
197
201
|
redirect(Sections.r(:edit, @section.id))
|
|
198
202
|
else
|
|
199
203
|
redirect_referrer
|
|
200
204
|
end
|
|
201
205
|
end
|
|
202
|
-
|
|
206
|
+
|
|
203
207
|
##
|
|
204
208
|
# Delete an existing section. Poor section, what did he do wrong?
|
|
205
209
|
# In order to delete a section you'll need to send a POST request that contains
|
|
@@ -217,36 +221,24 @@ module Sections
|
|
|
217
221
|
if !user_authorized?([:delete])
|
|
218
222
|
respond(lang('zen_general.errors.not_authorized'), 403)
|
|
219
223
|
end
|
|
220
|
-
|
|
221
|
-
if !request.params['section_ids'] or request.params['section_ids'].empty?
|
|
222
|
-
notification(
|
|
223
|
-
:error,
|
|
224
|
-
lang('sections.titles.index'),
|
|
225
|
-
lang('sections.errors.no_delete')
|
|
226
|
-
)
|
|
227
224
|
|
|
225
|
+
if !request.params['section_ids'] or request.params['section_ids'].empty?
|
|
226
|
+
message(:error, lang('sections.errors.no_delete'))
|
|
228
227
|
redirect_referrer
|
|
229
228
|
end
|
|
230
|
-
|
|
229
|
+
|
|
231
230
|
request.params['section_ids'].each do |id|
|
|
232
231
|
begin
|
|
233
232
|
Section[id.to_i].destroy
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
)
|
|
239
|
-
rescue
|
|
240
|
-
notification(
|
|
241
|
-
:error,
|
|
242
|
-
lang('sections.titles.index'),
|
|
243
|
-
lang('sections.errors.delete') % id
|
|
244
|
-
)
|
|
233
|
+
message(:success, lang('sections.success.delete'))
|
|
234
|
+
rescue => e
|
|
235
|
+
Ramaze::Log.error(e.inspect)
|
|
236
|
+
message(:error, lang('sections.errors.delete') % id)
|
|
245
237
|
end
|
|
246
238
|
end
|
|
247
|
-
|
|
239
|
+
|
|
248
240
|
redirect_referrer
|
|
249
241
|
end
|
|
250
|
-
end
|
|
251
|
-
end
|
|
252
|
-
end
|
|
242
|
+
end # Sections
|
|
243
|
+
end # Controller
|
|
244
|
+
end # Sections
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
titles:
|
|
3
|
+
index: 'Sectie items'
|
|
4
|
+
edit : 'Sectie item aanpassen'
|
|
5
|
+
new : 'Sectie item aanmaken'
|
|
6
|
+
|
|
7
|
+
labels:
|
|
8
|
+
id : '#'
|
|
9
|
+
title : 'Titel'
|
|
10
|
+
slug : 'Slug'
|
|
11
|
+
status : 'Status'
|
|
12
|
+
created_at: 'Aanmaak datum'
|
|
13
|
+
updated_at: 'Aanpas datum'
|
|
14
|
+
author : 'Auteur'
|
|
15
|
+
|
|
16
|
+
special:
|
|
17
|
+
status_hash:
|
|
18
|
+
draft : 'Voorbeeld'
|
|
19
|
+
published: 'Gepubliceerd'
|
|
20
|
+
|
|
21
|
+
tabs:
|
|
22
|
+
basic : 'Algemeen'
|
|
23
|
+
categories: 'Categoriën'
|
|
24
|
+
|
|
25
|
+
messages:
|
|
26
|
+
no_entries : 'Er zijn nog geen items aangemaakt.'
|
|
27
|
+
no_categories: 'De huidige sectie bevat geen categoriën.'
|
|
28
|
+
|
|
29
|
+
success:
|
|
30
|
+
new : 'Het sectie item is aangemaakt.'
|
|
31
|
+
save : 'Het sectie item is aangepast.'
|
|
32
|
+
delete: 'Alle geselecteerde items zijn verwijderd.'
|
|
33
|
+
|
|
34
|
+
errors:
|
|
35
|
+
new : 'Het sectie item kon niet worden aangemaakt.'
|
|
36
|
+
save : 'Het sectie item kon niet worden aangepast.'
|
|
37
|
+
delete : 'Het sectie item met ID #%s kon niet worden verwijderd.'
|
|
38
|
+
no_delete: 'U moet ten minste 1 item specificeren om te verwijderen.'
|
|
39
|
+
|
|
40
|
+
buttons:
|
|
41
|
+
new : 'Sectie item toevoegen'
|
|
42
|
+
save : 'Sectie item opslaan'
|
|
43
|
+
delete: 'Geselecteerde items verwijderen'
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
---
|
|
2
|
+
titles:
|
|
3
|
+
index: 'Secties'
|
|
4
|
+
edit : 'Sectie aanpassen'
|
|
5
|
+
new : 'Sectie toevoegen'
|
|
6
|
+
|
|
7
|
+
labels:
|
|
8
|
+
id : '#'
|
|
9
|
+
name : 'Naam'
|
|
10
|
+
slug : 'Slug'
|
|
11
|
+
description : 'Beschrijving'
|
|
12
|
+
comment_allow : 'Reacties toegestaan'
|
|
13
|
+
comment_require_account: 'Reacties vereisen een account'
|
|
14
|
+
comment_moderate : 'Beheer reacties'
|
|
15
|
+
comment_format : 'Text opmaak'
|
|
16
|
+
custom_field_groups : 'Veld groepen'
|
|
17
|
+
category_groups : 'Categorie groepen'
|
|
18
|
+
manage_entries : 'Beheer items'
|
|
19
|
+
|
|
20
|
+
special:
|
|
21
|
+
boolean_hash:
|
|
22
|
+
'true' : 'Ja'
|
|
23
|
+
'false': 'Nee'
|
|
24
|
+
|
|
25
|
+
tabs:
|
|
26
|
+
general : 'Algemeen'
|
|
27
|
+
comment_settings : 'Reactie instellingen'
|
|
28
|
+
group_assignments: 'Groepen'
|
|
29
|
+
|
|
30
|
+
messages:
|
|
31
|
+
no_sections: 'Er zijn nog geen secties aangemaakt.'
|
|
32
|
+
|
|
33
|
+
success:
|
|
34
|
+
new : 'De sectie is aangemaakt.'
|
|
35
|
+
save : 'De sectie is aangepast.'
|
|
36
|
+
delete: 'Alle geselecteerde secties zijn verwijderd.'
|
|
37
|
+
|
|
38
|
+
errors:
|
|
39
|
+
new : 'De sectie kon niet worden aangemaakt.'
|
|
40
|
+
save : 'De sectie kon niet worden aangepast.'
|
|
41
|
+
delete : 'De sectie met ID #%s kon niet worden verwijderd.'
|
|
42
|
+
no_delete: 'U moet ten minste 1 sectie specificeren om te verwijderen.'
|
|
43
|
+
|
|
44
|
+
buttons:
|
|
45
|
+
new : 'Sectie toevoegen'
|
|
46
|
+
save : 'Sectie opslaan'
|
|
47
|
+
delete: 'Geselecteerde secties verwijderen'
|
|
@@ -24,15 +24,8 @@ module Sections
|
|
|
24
24
|
:eager => [:custom_field_values]
|
|
25
25
|
)
|
|
26
26
|
|
|
27
|
-
many_to_many(
|
|
28
|
-
|
|
29
|
-
:class => "CustomFields::Model::CustomFieldGroup"
|
|
30
|
-
)
|
|
31
|
-
|
|
32
|
-
many_to_many(
|
|
33
|
-
:category_groups,
|
|
34
|
-
:class => "Categories::Model::CategoryGroup"
|
|
35
|
-
)
|
|
27
|
+
many_to_many(:custom_field_groups, :class => "CustomFields::Model::CustomFieldGroup")
|
|
28
|
+
many_to_many(:category_groups, :class => "Categories::Model::CategoryGroup")
|
|
36
29
|
|
|
37
30
|
plugin(:sluggable, :source => :name, :freeze => false)
|
|
38
31
|
|
|
@@ -43,9 +36,12 @@ module Sections
|
|
|
43
36
|
# @since 0.1
|
|
44
37
|
#
|
|
45
38
|
def validate
|
|
46
|
-
validates_presence(
|
|
47
|
-
|
|
48
|
-
|
|
39
|
+
validates_presence(
|
|
40
|
+
[
|
|
41
|
+
:name, :comment_allow, :comment_require_account, :comment_moderate,
|
|
42
|
+
:comment_format
|
|
43
|
+
]
|
|
44
|
+
)
|
|
49
45
|
|
|
50
46
|
validates_presence(:slug) unless new?
|
|
51
47
|
validates_max_length(255, [:name, :slug])
|
|
@@ -57,6 +53,6 @@ module Sections
|
|
|
57
53
|
|
|
58
54
|
validates_unique(:slug)
|
|
59
55
|
end
|
|
60
|
-
end
|
|
61
|
-
end
|
|
62
|
-
end
|
|
56
|
+
end # Section
|
|
57
|
+
end # Model
|
|
58
|
+
end # Sections
|
|
@@ -20,7 +20,6 @@ module Sections
|
|
|
20
20
|
# @since 0.1
|
|
21
21
|
#
|
|
22
22
|
class SectionEntry < Sequel::Model
|
|
23
|
-
|
|
24
23
|
one_to_many(:comments, :class => "Comments::Model::Comment")
|
|
25
24
|
|
|
26
25
|
one_to_many(
|
|
@@ -45,8 +44,13 @@ module Sections
|
|
|
45
44
|
def validate
|
|
46
45
|
validates_presence([:title, :status, :user_id])
|
|
47
46
|
validates_presence(:slug) unless new?
|
|
48
|
-
end
|
|
49
47
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
48
|
+
# Check if the slug is unique for the current section
|
|
49
|
+
if !SectionEntry.filter({:slug => slug, :section_id => section_id}, ~{:id => id}) \
|
|
50
|
+
.all.empty?
|
|
51
|
+
errors.add(:slug, lang('zen_models.unique'))
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end # SectionEntry
|
|
55
|
+
end # Model
|
|
56
|
+
end # Sections
|
|
@@ -143,9 +143,9 @@ module Sections
|
|
|
143
143
|
end
|
|
144
144
|
|
|
145
145
|
# Get the entries
|
|
146
|
-
entries = SectionEntry.filter(filter_hash)
|
|
147
|
-
.eager(*eager_models)
|
|
148
|
-
.limit(@options[:limit], @options[:offset])
|
|
146
|
+
entries = SectionEntry.filter(filter_hash) \
|
|
147
|
+
.eager(*eager_models) \
|
|
148
|
+
.limit(@options[:limit], @options[:offset]) \
|
|
149
149
|
.all
|
|
150
150
|
|
|
151
151
|
comment_format = nil
|
|
@@ -177,7 +177,7 @@ module Sections
|
|
|
177
177
|
# Get all the comments if the developer wants them
|
|
178
178
|
if @options[:comments] === true
|
|
179
179
|
entry.comments.each do |c|
|
|
180
|
-
comment
|
|
180
|
+
comment = c.values
|
|
181
181
|
|
|
182
182
|
if c.user
|
|
183
183
|
comment[:user] = c.user.values
|
|
@@ -218,7 +218,6 @@ module Sections
|
|
|
218
218
|
|
|
219
219
|
return entries
|
|
220
220
|
end
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
end
|
|
221
|
+
end # SectionEntries
|
|
222
|
+
end # Plugin
|
|
223
|
+
end # Sections
|