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
|
@@ -71,8 +71,8 @@ module Comments
|
|
|
71
71
|
|
|
72
72
|
# Now that we have the entry and the section we can start retrieving all the
|
|
73
73
|
# comments.
|
|
74
|
-
comments = Comment.filter(:section_entry_id => entry.id)
|
|
75
|
-
.limit(@options[:limit], @options[:offset])
|
|
74
|
+
comments = Comment.filter(:section_entry_id => entry.id) \
|
|
75
|
+
.limit(@options[:limit], @options[:offset]) \
|
|
76
76
|
.all
|
|
77
77
|
|
|
78
78
|
# Don't bother with all code below this if/end if we don't want to convert the
|
|
@@ -105,7 +105,6 @@ module Comments
|
|
|
105
105
|
|
|
106
106
|
return comments
|
|
107
107
|
end
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
end
|
|
108
|
+
end # Comments
|
|
109
|
+
end # Plugin
|
|
110
|
+
end # Comments
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
<th>#{lang('comments.labels.name')}</th>
|
|
22
22
|
<th>#{lang('comments.labels.email')}</th>
|
|
23
23
|
<th>#{lang('comments.labels.website')}</th>
|
|
24
|
-
<th>#{lang('comments.labels.
|
|
24
|
+
<th>#{lang('comments.labels.created_at')}</th>
|
|
25
25
|
</thead>
|
|
26
26
|
<tbody>
|
|
27
27
|
<?r @comments.each do |comment| ?>
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
<td>#{user.email}</td>
|
|
59
59
|
<td>#{user.website}</td>
|
|
60
60
|
<?r end ?>
|
|
61
|
-
<td>#{comment.
|
|
61
|
+
<td>#{comment.created_at.strftime(session[:user].date_format)}</td>
|
|
62
62
|
</tr>
|
|
63
63
|
<?r end ?>
|
|
64
64
|
</tbody>
|
|
@@ -14,13 +14,13 @@ module CustomFields
|
|
|
14
14
|
include ::CustomFields::Model
|
|
15
15
|
|
|
16
16
|
map('/admin/custom-field-groups')
|
|
17
|
-
|
|
17
|
+
|
|
18
18
|
before_all do
|
|
19
19
|
csrf_protection(:save, :delete) do
|
|
20
20
|
respond(lang('zen_general.errors.csrf'), 403)
|
|
21
21
|
end
|
|
22
22
|
end
|
|
23
|
-
|
|
23
|
+
|
|
24
24
|
##
|
|
25
25
|
# Constructor method, called upon initialization. It's used to set the
|
|
26
26
|
# URL to which forms send their data and load the language pack.
|
|
@@ -34,19 +34,19 @@ module CustomFields
|
|
|
34
34
|
#
|
|
35
35
|
def initialize
|
|
36
36
|
super
|
|
37
|
-
|
|
37
|
+
|
|
38
38
|
@form_save_url = CustomFieldGroups.r(:save)
|
|
39
39
|
@form_delete_url = CustomFieldGroups.r(:delete)
|
|
40
40
|
|
|
41
41
|
Zen::Language.load('custom_field_groups')
|
|
42
|
-
|
|
42
|
+
|
|
43
43
|
# Set the page title
|
|
44
44
|
if !action.method.nil?
|
|
45
45
|
method = action.method.to_sym
|
|
46
46
|
@page_title = lang("custom_field_groups.titles.#{method}") rescue nil
|
|
47
47
|
end
|
|
48
48
|
end
|
|
49
|
-
|
|
49
|
+
|
|
50
50
|
##
|
|
51
51
|
# Show an overview of all existing custom field groups. Using this overview a user
|
|
52
52
|
# can manage an existing field group, delete it or create a new one.
|
|
@@ -54,7 +54,7 @@ module CustomFields
|
|
|
54
54
|
# This method requires the following permissions:
|
|
55
55
|
#
|
|
56
56
|
# * read
|
|
57
|
-
#
|
|
57
|
+
#
|
|
58
58
|
# @author Yorick Peterse
|
|
59
59
|
# @since 0.1
|
|
60
60
|
#
|
|
@@ -62,12 +62,12 @@ module CustomFields
|
|
|
62
62
|
if !user_authorized?([:read])
|
|
63
63
|
respond(lang('zen_general.errors.not_authorized'), 403)
|
|
64
64
|
end
|
|
65
|
-
|
|
65
|
+
|
|
66
66
|
set_breadcrumbs(lang('custom_field_groups.titles.index'))
|
|
67
|
-
|
|
67
|
+
|
|
68
68
|
@field_groups = CustomFieldGroup.all
|
|
69
69
|
end
|
|
70
|
-
|
|
70
|
+
|
|
71
71
|
##
|
|
72
72
|
# Show a form that lets the user edit an existing custom field group.
|
|
73
73
|
#
|
|
@@ -77,27 +77,27 @@ module CustomFields
|
|
|
77
77
|
# * update
|
|
78
78
|
#
|
|
79
79
|
# @author Yorick Peterse
|
|
80
|
-
# @param [Integer] id The ID of the custom field group to retrieve so that we
|
|
80
|
+
# @param [Integer] id The ID of the custom field group to retrieve so that we
|
|
81
81
|
# can edit it.
|
|
82
82
|
# @since 0.1
|
|
83
83
|
#
|
|
84
|
-
def edit
|
|
84
|
+
def edit(id)
|
|
85
85
|
if !user_authorized?([:read, :update])
|
|
86
86
|
respond(lang('zen_general.errors.not_authorized'), 403)
|
|
87
87
|
end
|
|
88
|
-
|
|
88
|
+
|
|
89
89
|
set_breadcrumbs(
|
|
90
|
-
anchor_to(lang('custom_field_groups.titles.index'), CustomFieldGroups.r(:index)),
|
|
90
|
+
anchor_to(lang('custom_field_groups.titles.index'), CustomFieldGroups.r(:index)),
|
|
91
91
|
@page_title
|
|
92
92
|
)
|
|
93
|
-
|
|
93
|
+
|
|
94
94
|
if flash[:form_data]
|
|
95
95
|
@field_group = flash[:form_data]
|
|
96
96
|
else
|
|
97
97
|
@field_group = CustomFieldGroup[id.to_i]
|
|
98
98
|
end
|
|
99
99
|
end
|
|
100
|
-
|
|
100
|
+
|
|
101
101
|
##
|
|
102
102
|
# Show a form that lets the user create a new custom field group.
|
|
103
103
|
#
|
|
@@ -113,15 +113,15 @@ module CustomFields
|
|
|
113
113
|
if !user_authorized?([:read, :create])
|
|
114
114
|
respond(lang('zen_general.errors.not_authorized'), 403)
|
|
115
115
|
end
|
|
116
|
-
|
|
116
|
+
|
|
117
117
|
set_breadcrumbs(
|
|
118
|
-
anchor_to(lang('custom_field_groups.titles.index'), CustomFieldGroups.r(:index)),
|
|
118
|
+
anchor_to(lang('custom_field_groups.titles.index'), CustomFieldGroups.r(:index)),
|
|
119
119
|
@page_title
|
|
120
120
|
)
|
|
121
|
-
|
|
121
|
+
|
|
122
122
|
@field_group = CustomFieldGroup.new
|
|
123
123
|
end
|
|
124
|
-
|
|
124
|
+
|
|
125
125
|
##
|
|
126
126
|
# Method used for processing the form data and redirecting the user back to
|
|
127
127
|
# the proper URL. Based on the value of a hidden field named 'id' we'll determine
|
|
@@ -139,43 +139,46 @@ module CustomFields
|
|
|
139
139
|
if !user_authorized?([:create, :update])
|
|
140
140
|
respond(lang('zen_general.errors.not_authorized'), 403)
|
|
141
141
|
end
|
|
142
|
-
|
|
143
|
-
post = request.
|
|
144
|
-
|
|
142
|
+
|
|
143
|
+
post = request.subset(:id, :name, :description)
|
|
144
|
+
|
|
145
145
|
# Get or create a custom field group based on the ID from the hidden field.
|
|
146
146
|
if post['id'] and !post['id'].empty?
|
|
147
|
-
@field_group = CustomFieldGroup[post['id']
|
|
147
|
+
@field_group = CustomFieldGroup[post['id']]
|
|
148
148
|
save_action = :save
|
|
149
149
|
else
|
|
150
150
|
@field_group = CustomFieldGroup.new
|
|
151
151
|
save_action = :new
|
|
152
152
|
end
|
|
153
|
-
|
|
153
|
+
|
|
154
|
+
post.delete('id')
|
|
155
|
+
|
|
156
|
+
# Set the messages
|
|
154
157
|
flash_success = lang("custom_field_groups.success.#{save_action}")
|
|
155
158
|
flash_error = lang("custom_field_groups.errors.#{save_action}")
|
|
156
|
-
|
|
159
|
+
|
|
157
160
|
begin
|
|
158
161
|
@field_group.update(post)
|
|
159
|
-
|
|
162
|
+
message(:success, flash_success)
|
|
160
163
|
rescue
|
|
161
|
-
|
|
164
|
+
message(:error, flash_error)
|
|
162
165
|
|
|
163
166
|
flash[:form_errors] = @field_group.errors
|
|
164
167
|
flash[:form_data] = @field_group
|
|
165
168
|
end
|
|
166
|
-
|
|
169
|
+
|
|
167
170
|
if !@field_group.nil? and @field_group.id
|
|
168
171
|
redirect(CustomFieldGroups.r(:edit, @field_group.id))
|
|
169
172
|
else
|
|
170
173
|
redirect(CustomFieldGroups.r(:new))
|
|
171
174
|
end
|
|
172
175
|
end
|
|
173
|
-
|
|
176
|
+
|
|
174
177
|
##
|
|
175
178
|
# Delete an existing custom field group.
|
|
176
179
|
#
|
|
177
|
-
# In order to delete a custom field group you'll need to send a POST request
|
|
178
|
-
# that contains a field named 'custom_field_group_ids[]'. This field should
|
|
180
|
+
# In order to delete a custom field group you'll need to send a POST request
|
|
181
|
+
# that contains a field named 'custom_field_group_ids[]'. This field should
|
|
179
182
|
# contain the primary values of each field group that has to be deleted.
|
|
180
183
|
#
|
|
181
184
|
# This method requires the following permissions:
|
|
@@ -189,35 +192,23 @@ module CustomFields
|
|
|
189
192
|
if !user_authorized?([:delete])
|
|
190
193
|
respond(lang('zen_general.errors.not_authorized'), 403)
|
|
191
194
|
end
|
|
192
|
-
|
|
195
|
+
|
|
193
196
|
if !request.params['custom_field_group_ids'] or request.params['custom_field_group_ids'].empty?
|
|
194
|
-
|
|
195
|
-
:error,
|
|
196
|
-
lang('custom_field_groups.titles.index'),
|
|
197
|
-
lang('custom_field_groups.errors.no_delete')
|
|
198
|
-
)
|
|
197
|
+
message(:error, lang('custom_field_groups.errors.no_delete'))
|
|
199
198
|
redirect(CustomFieldGroups.r(:index))
|
|
200
199
|
end
|
|
201
|
-
|
|
200
|
+
|
|
202
201
|
request.params['custom_field_group_ids'].each do |id|
|
|
203
202
|
begin
|
|
204
203
|
CustomFieldGroup[id.to_i].destroy
|
|
205
|
-
|
|
206
|
-
:success,
|
|
207
|
-
lang('custom_field_groups.titles.index'),
|
|
208
|
-
lang('custom_field_groups.success.delete')
|
|
209
|
-
)
|
|
204
|
+
message(:success, lang('custom_field_groups.success.delete'))
|
|
210
205
|
rescue
|
|
211
|
-
|
|
212
|
-
:error,
|
|
213
|
-
lang('custom_field_groups.titles.index'),
|
|
214
|
-
lang('custom_field_groups.errors.delete') % id
|
|
215
|
-
)
|
|
206
|
+
message(:error, lang('custom_field_groups.errors.delete') % id)
|
|
216
207
|
end
|
|
217
208
|
end
|
|
218
|
-
|
|
209
|
+
|
|
219
210
|
redirect_referrer
|
|
220
211
|
end
|
|
221
|
-
end
|
|
222
|
-
end
|
|
223
|
-
end
|
|
212
|
+
end # CustomFieldGroups
|
|
213
|
+
end # Controller
|
|
214
|
+
end # CustomFields
|
|
@@ -16,13 +16,16 @@ module CustomFields
|
|
|
16
16
|
include ::CustomFields::Model
|
|
17
17
|
|
|
18
18
|
map('/admin/custom-fields')
|
|
19
|
-
|
|
19
|
+
|
|
20
|
+
# Load all required Javascript files
|
|
21
|
+
javascript ['zen/tabs']
|
|
22
|
+
|
|
20
23
|
before_all do
|
|
21
24
|
csrf_protection(:save, :delete) do
|
|
22
25
|
respond(lang('zen_general.errors.csrf'), 403)
|
|
23
26
|
end
|
|
24
27
|
end
|
|
25
|
-
|
|
28
|
+
|
|
26
29
|
##
|
|
27
30
|
# Constructor method, called upon initialization. It's used to set the
|
|
28
31
|
# URL to which forms send their data and load the language pack.
|
|
@@ -37,13 +40,13 @@ module CustomFields
|
|
|
37
40
|
#
|
|
38
41
|
def initialize
|
|
39
42
|
super
|
|
40
|
-
|
|
43
|
+
|
|
41
44
|
@form_save_url = CustomFields.r(:save)
|
|
42
45
|
@form_delete_url = CustomFields.r(:delete)
|
|
43
|
-
|
|
46
|
+
|
|
44
47
|
Zen::Language.load('custom_fields')
|
|
45
48
|
Zen::Language.load('custom_field_groups')
|
|
46
|
-
|
|
49
|
+
|
|
47
50
|
# Set the page title
|
|
48
51
|
if !action.method.nil?
|
|
49
52
|
method = action.method.to_sym
|
|
@@ -61,7 +64,7 @@ module CustomFields
|
|
|
61
64
|
'select_multiple' => lang('custom_fields.special.type_hash.select_multiple')
|
|
62
65
|
}
|
|
63
66
|
end
|
|
64
|
-
|
|
67
|
+
|
|
65
68
|
##
|
|
66
69
|
# Show an overview of all existing custom fields. Using this overview a user
|
|
67
70
|
# can manage an existing field, delete it or create a new one.
|
|
@@ -69,26 +72,26 @@ module CustomFields
|
|
|
69
72
|
# This method requires the following permissions:
|
|
70
73
|
#
|
|
71
74
|
# * read
|
|
72
|
-
#
|
|
75
|
+
#
|
|
73
76
|
# @author Yorick Peterse
|
|
74
|
-
# @param [Integer] custom_field_group_id The ID of the custom field group to
|
|
77
|
+
# @param [Integer] custom_field_group_id The ID of the custom field group to
|
|
75
78
|
# which all fields belong.
|
|
76
79
|
# @since 0.1
|
|
77
80
|
#
|
|
78
|
-
def index
|
|
81
|
+
def index(custom_field_group_id)
|
|
79
82
|
if !user_authorized?([:read])
|
|
80
83
|
respond(lang('zen_general.errors.not_authorized'), 403)
|
|
81
84
|
end
|
|
82
|
-
|
|
85
|
+
|
|
83
86
|
set_breadcrumbs(
|
|
84
87
|
anchor_to(lang('custom_field_groups.titles.index'), CustomFieldGroups.r(:index)),
|
|
85
88
|
lang('custom_fields.titles.index')
|
|
86
89
|
)
|
|
87
|
-
|
|
88
|
-
@custom_field_group_id
|
|
89
|
-
@custom_fields
|
|
90
|
+
|
|
91
|
+
@custom_field_group_id = custom_field_group_id.to_i
|
|
92
|
+
@custom_fields = CustomFieldGroup[@custom_field_group_id].custom_fields
|
|
90
93
|
end
|
|
91
|
-
|
|
94
|
+
|
|
92
95
|
##
|
|
93
96
|
# Show a form that lets the user edit an existing custom field group.
|
|
94
97
|
#
|
|
@@ -98,22 +101,22 @@ module CustomFields
|
|
|
98
101
|
# * update
|
|
99
102
|
#
|
|
100
103
|
# @author Yorick Peterse
|
|
101
|
-
# @param [Integer] custom_field_group_id The ID of the custom field group to
|
|
104
|
+
# @param [Integer] custom_field_group_id The ID of the custom field group to
|
|
102
105
|
# which all fields belong.
|
|
103
106
|
# @param [Integer] id The ID of the custom field to retrieve so that we can edit it.
|
|
104
107
|
# @since 0.1
|
|
105
108
|
#
|
|
106
|
-
def edit
|
|
109
|
+
def edit(custom_field_group_id, id)
|
|
107
110
|
if !user_authorized?([:read, :update])
|
|
108
111
|
respond(lang('zen_general.errors.not_authorized'), 403)
|
|
109
112
|
end
|
|
110
|
-
|
|
113
|
+
|
|
111
114
|
set_breadcrumbs(
|
|
112
115
|
anchor_to(lang('custom_field_groups.titles.index'), CustomFieldGroups.r(:index)),
|
|
113
116
|
anchor_to(lang('custom_fields.titles.index'), CustomFields.r(:index, custom_field_group_id)),
|
|
114
117
|
lang('custom_fields.titles.edit')
|
|
115
118
|
)
|
|
116
|
-
|
|
119
|
+
|
|
117
120
|
@custom_field_group_id = custom_field_group_id
|
|
118
121
|
|
|
119
122
|
if flash[:form_data]
|
|
@@ -122,7 +125,7 @@ module CustomFields
|
|
|
122
125
|
@custom_field = CustomField[id.to_i]
|
|
123
126
|
end
|
|
124
127
|
end
|
|
125
|
-
|
|
128
|
+
|
|
126
129
|
##
|
|
127
130
|
# Show a form that lets the user create a new custom field group.
|
|
128
131
|
#
|
|
@@ -132,25 +135,31 @@ module CustomFields
|
|
|
132
135
|
# * read
|
|
133
136
|
#
|
|
134
137
|
# @author Yorick Peterse
|
|
135
|
-
# @param [Integer] custom_field_group_id The ID of the custom field group to
|
|
138
|
+
# @param [Integer] custom_field_group_id The ID of the custom field group to
|
|
136
139
|
# which all fields belong.
|
|
137
140
|
# @since 0.1
|
|
138
141
|
#
|
|
139
|
-
def new
|
|
142
|
+
def new(custom_field_group_id)
|
|
140
143
|
if !user_authorized?([:read, :create])
|
|
141
144
|
respond(lang('zen_general.errors.not_authorized'), 403)
|
|
142
145
|
end
|
|
143
|
-
|
|
146
|
+
|
|
144
147
|
set_breadcrumbs(
|
|
145
|
-
anchor_to(
|
|
146
|
-
|
|
148
|
+
anchor_to(
|
|
149
|
+
lang('custom_field_groups.titles.index'),
|
|
150
|
+
CustomFieldGroups.r(:index)
|
|
151
|
+
),
|
|
152
|
+
anchor_to(
|
|
153
|
+
lang('custom_fields.titles.index'),
|
|
154
|
+
CustomFields.r(:index, custom_field_group_id)
|
|
155
|
+
),
|
|
147
156
|
lang('custom_fields.titles.index')
|
|
148
157
|
)
|
|
149
|
-
|
|
158
|
+
|
|
150
159
|
@custom_field_group_id = custom_field_group_id
|
|
151
160
|
@custom_field = CustomField.new
|
|
152
161
|
end
|
|
153
|
-
|
|
162
|
+
|
|
154
163
|
##
|
|
155
164
|
# Method used for processing the form data and redirecting the user back to
|
|
156
165
|
# the proper URL. Based on the value of a hidden field named 'id' we'll determine
|
|
@@ -168,46 +177,50 @@ module CustomFields
|
|
|
168
177
|
if !user_authorized?([:create, :update])
|
|
169
178
|
respond(lang('zen_general.errors.not_authorized'), 403)
|
|
170
179
|
end
|
|
171
|
-
|
|
172
|
-
post
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
180
|
+
|
|
181
|
+
post = request.subset(
|
|
182
|
+
:id, :name, :slug, :description, :sort_order, :type, :format, :possible_values,
|
|
183
|
+
:required, :visual_editor, :textarea_rows, :text_limit, :custom_field_group_id
|
|
184
|
+
)
|
|
176
185
|
|
|
177
186
|
# Get or create a custom field group based on the ID from the hidden field.
|
|
178
187
|
if post['id'] and !post['id'].empty?
|
|
179
|
-
@custom_field = CustomField[post['id']
|
|
188
|
+
@custom_field = CustomField[post['id']]
|
|
180
189
|
save_action = :save
|
|
181
190
|
else
|
|
182
191
|
@custom_field = CustomField.new
|
|
183
192
|
save_action = :new
|
|
184
193
|
end
|
|
185
|
-
|
|
194
|
+
|
|
195
|
+
post.delete('slug') if post['slug'].empty?
|
|
196
|
+
post.delete('id')
|
|
197
|
+
|
|
186
198
|
flash_success = lang("custom_fields.success.#{save_action}")
|
|
187
199
|
flash_error = lang("custom_fields.errors.#{save_action}")
|
|
188
200
|
|
|
189
201
|
begin
|
|
190
202
|
@custom_field.update(post)
|
|
191
|
-
|
|
192
|
-
rescue
|
|
193
|
-
|
|
203
|
+
message(:success, flash_success)
|
|
204
|
+
rescue => e
|
|
205
|
+
Ramaze::Log.error(e.inspect)
|
|
206
|
+
message(:error, flash_error)
|
|
194
207
|
|
|
195
208
|
flash[:form_data] = @custom_field
|
|
196
209
|
flash[:form_errors] = @custom_field.errors
|
|
197
210
|
end
|
|
198
|
-
|
|
211
|
+
|
|
199
212
|
if @custom_field.id
|
|
200
|
-
redirect(CustomFields.r(:edit, custom_field_group_id, @custom_field.id))
|
|
213
|
+
redirect(CustomFields.r(:edit, post['custom_field_group_id'], @custom_field.id))
|
|
201
214
|
else
|
|
202
|
-
|
|
215
|
+
redirect_referrer
|
|
203
216
|
end
|
|
204
217
|
end
|
|
205
|
-
|
|
218
|
+
|
|
206
219
|
##
|
|
207
220
|
# Delete an existing custom field.
|
|
208
221
|
#
|
|
209
|
-
# In order to delete a custom field group you'll need to send a POST request that
|
|
210
|
-
# contains a field named 'custom_field_ids[]'. This field should contain the
|
|
222
|
+
# In order to delete a custom field group you'll need to send a POST request that
|
|
223
|
+
# contains a field named 'custom_field_ids[]'. This field should contain the
|
|
211
224
|
# primary values of each field that has to be deleted.
|
|
212
225
|
#
|
|
213
226
|
# This method requires the following permissions:
|
|
@@ -222,37 +235,25 @@ module CustomFields
|
|
|
222
235
|
respond(lang('zen_general.errors.not_authorized'), 403)
|
|
223
236
|
end
|
|
224
237
|
|
|
225
|
-
post = request.
|
|
226
|
-
|
|
227
|
-
if !request.params['custom_field_ids'] or request.params['custom_field_ids'].empty?
|
|
228
|
-
notification(
|
|
229
|
-
:error,
|
|
230
|
-
lang('custom_fields.titles.index'),
|
|
231
|
-
lang('custom_fields.errors.no_delete')
|
|
232
|
-
)
|
|
238
|
+
post = request.subset(:custom_field_ids, :custom_field_group_id)
|
|
233
239
|
|
|
240
|
+
if !request.params['custom_field_ids'] or request.params['custom_field_ids'].empty?
|
|
241
|
+
message(:error, lang('custom_fields.errors.no_delete'))
|
|
234
242
|
redirect(CustomFields.r(:index, post['custom_field_group_id']))
|
|
235
243
|
end
|
|
236
|
-
|
|
244
|
+
|
|
237
245
|
request.params['custom_field_ids'].each do |id|
|
|
238
246
|
begin
|
|
239
|
-
CustomField[id
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
)
|
|
245
|
-
rescue
|
|
246
|
-
notification(
|
|
247
|
-
:error,
|
|
248
|
-
lang('custom_fields.titles.index'),
|
|
249
|
-
lang('custom_fields.errors.delete') % id
|
|
250
|
-
)
|
|
247
|
+
CustomField[id].destroy
|
|
248
|
+
message(:success, lang('custom_fields.success.delete'))
|
|
249
|
+
rescue => e
|
|
250
|
+
Ramaze::Log.error(e.inspect)
|
|
251
|
+
message(:error, lang('custom_fields.errors.delete') % id)
|
|
251
252
|
end
|
|
252
253
|
end
|
|
253
|
-
|
|
254
|
+
|
|
254
255
|
redirect_referrer
|
|
255
256
|
end
|
|
256
|
-
end
|
|
257
|
-
end
|
|
258
|
-
end
|
|
257
|
+
end # CustomFields
|
|
258
|
+
end # Controller
|
|
259
|
+
end # CustomFields
|