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