zen 0.2.7 → 0.2.8
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/.gitignore +15 -0
- data/.mailmap +2 -0
- data/.rvmrc +2 -0
- data/.travis.yml +8 -3
- data/AUTHORS +1 -2
- data/CHANGELOG.md +48 -17
- data/README.md +44 -39
- data/Rakefile +4 -0
- data/bin/zen +5 -30
- data/lib/zen.rb +13 -19
- data/lib/zen/asset.rb +99 -64
- data/lib/zen/bin/create.rb +94 -0
- data/lib/zen/bin/runner.rb +118 -0
- data/lib/zen/controller/admin_controller.rb +52 -36
- data/lib/zen/controller/base_controller.rb +5 -5
- data/lib/zen/controller/frontend_controller.rb +7 -7
- data/lib/zen/controller/main_controller.rb +12 -10
- data/lib/zen/controller/preview.rb +15 -11
- data/lib/zen/helper/acl.rb +73 -53
- data/lib/zen/helper/blue_form_vendor.rb +689 -0
- data/lib/zen/helper/breadcrumb.rb +23 -19
- data/lib/zen/helper/message.rb +3 -3
- data/lib/zen/helper/theme.rb +18 -13
- data/lib/zen/language.rb +62 -58
- data/lib/zen/language/en/zen_general.yml +2 -4
- data/lib/zen/language/nl/zen_general.yml +2 -4
- data/lib/zen/layout/admin.xhtml +3 -12
- data/lib/zen/layout/login.xhtml +1 -6
- data/lib/zen/model/methods.rb +6 -6
- data/lib/zen/model/settings.rb +5 -4
- data/lib/zen/package.rb +47 -38
- data/lib/zen/package/all.rb +3 -5
- data/lib/zen/package/base.rb +7 -7
- data/lib/zen/package/categories/lib/categories.rb +8 -3
- data/lib/zen/package/categories/lib/categories/controller/categories.rb +81 -55
- data/lib/zen/package/categories/lib/categories/controller/category_groups.rb +45 -44
- data/lib/zen/package/categories/lib/categories/helper/category.rb +88 -0
- data/lib/zen/package/categories/lib/categories/language/en/categories.yml +5 -4
- data/lib/zen/package/categories/lib/categories/language/en/category_groups.yml +5 -4
- data/lib/zen/package/categories/lib/categories/language/nl/categories.yml +5 -4
- data/lib/zen/package/categories/lib/categories/language/nl/category_groups.yml +5 -4
- data/lib/zen/package/categories/lib/categories/model/category.rb +15 -13
- data/lib/zen/package/categories/lib/categories/model/category_group.rb +3 -3
- data/lib/zen/package/categories/lib/categories/plugin/categories.rb +36 -25
- data/lib/zen/package/categories/lib/categories/view/admin/categories/form.xhtml +49 -56
- data/lib/zen/package/categories/lib/categories/view/admin/categories/index.xhtml +48 -35
- data/lib/zen/package/categories/lib/categories/view/admin/category-groups/form.xhtml +36 -29
- data/lib/zen/package/categories/lib/categories/view/admin/category-groups/index.xhtml +42 -37
- data/lib/zen/package/comments/lib/comments.rb +4 -1
- data/lib/zen/package/comments/lib/comments/controller/comments.rb +39 -32
- data/lib/zen/package/comments/lib/comments/controller/comments_form.rb +45 -26
- data/lib/zen/package/comments/lib/comments/helper/comment.rb +35 -0
- data/lib/zen/package/comments/lib/comments/language/en/comments.yml +9 -7
- data/lib/zen/package/comments/lib/comments/language/nl/comments.yml +10 -8
- data/lib/zen/package/comments/lib/comments/model/comment.rb +31 -17
- data/lib/zen/package/comments/lib/comments/model/comment_status.rb +15 -0
- data/lib/zen/package/comments/lib/comments/plugin/anti_spam.rb +27 -18
- data/lib/zen/package/comments/lib/comments/plugin/comments.rb +25 -20
- data/lib/zen/package/comments/lib/comments/view/admin/comments/form.xhtml +61 -54
- data/lib/zen/package/comments/lib/comments/view/admin/comments/index.xhtml +38 -23
- data/lib/zen/package/comments/migrations/1308774099_comment_status.rb +60 -0
- data/lib/zen/package/custom_fields/lib/custom_fields.rb +33 -7
- data/lib/zen/package/custom_fields/lib/custom_fields/blue_form_parameters.rb +209 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/controller/custom_field_groups.rb +50 -47
- data/lib/zen/package/custom_fields/lib/custom_fields/controller/custom_field_types.rb +215 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/controller/custom_fields.rb +111 -73
- data/lib/zen/package/custom_fields/lib/custom_fields/helper/custom_field.rb +79 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_field_groups.yml +20 -19
- data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_field_types.yml +40 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_fields.yml +34 -32
- data/lib/zen/package/custom_fields/lib/custom_fields/language/nl/custom_field_groups.yml +5 -4
- data/lib/zen/package/custom_fields/lib/custom_fields/language/nl/custom_field_types.yml +40 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/language/nl/custom_fields.yml +18 -16
- data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field.rb +31 -11
- data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_method.rb +15 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_type.rb +50 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_value.rb +28 -7
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-groups/form.xhtml +33 -28
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-groups/index.xhtml +48 -46
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-types/form.xhtml +61 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-types/index.xhtml +93 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-fields/form.xhtml +105 -99
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-fields/index.xhtml +43 -39
- data/lib/zen/package/custom_fields/migrations/1295255665_create_schema.rb +47 -16
- data/lib/zen/package/custom_fields/migrations/1310659580_custom_field_types.rb +148 -0
- data/lib/zen/package/custom_fields/migrations/1311694920_rename_css_class.rb +11 -0
- data/lib/zen/package/menus/lib/menus/controller/menu_items.rb +40 -35
- data/lib/zen/package/menus/lib/menus/controller/menus.rb +47 -43
- data/lib/zen/package/menus/lib/menus/helper/{menu_item.rb → menu.rb} +42 -15
- data/lib/zen/package/menus/lib/menus/language/en/menu_items.yml +5 -5
- data/lib/zen/package/menus/lib/menus/language/en/menus.yml +9 -8
- data/lib/zen/package/menus/lib/menus/language/nl/menu_items.yml +8 -8
- data/lib/zen/package/menus/lib/menus/language/nl/menus.yml +11 -10
- data/lib/zen/package/menus/lib/menus/model/menu.rb +5 -5
- data/lib/zen/package/menus/lib/menus/model/menu_item.rb +6 -5
- data/lib/zen/package/menus/lib/menus/plugin/menus.rb +41 -43
- data/lib/zen/package/menus/lib/menus/view/admin/menu-items/form.xhtml +59 -63
- data/lib/zen/package/menus/lib/menus/view/admin/menu-items/index.xhtml +35 -30
- data/lib/zen/package/menus/lib/menus/view/admin/menus/form.xhtml +46 -37
- data/lib/zen/package/menus/lib/menus/view/admin/menus/index.xhtml +37 -37
- data/lib/zen/package/menus/migrations/1297184342_create_schema.rb +5 -5
- data/lib/zen/package/menus/migrations/1308671733_rename_order_column.rb +11 -0
- data/lib/zen/package/menus/migrations/1311695030_rename_css_class.rb +17 -0
- data/lib/zen/package/sections/lib/sections.rb +18 -11
- data/lib/zen/package/sections/lib/sections/controller/section_entries.rb +115 -109
- data/lib/zen/package/sections/lib/sections/controller/sections.rb +72 -50
- data/lib/zen/package/sections/lib/sections/helper/section.rb +53 -0
- data/lib/zen/package/sections/lib/sections/language/en/section_entries.yml +5 -4
- data/lib/zen/package/sections/lib/sections/language/en/sections.yml +5 -4
- data/lib/zen/package/sections/lib/sections/language/nl/section_entries.yml +5 -4
- data/lib/zen/package/sections/lib/sections/language/nl/sections.yml +5 -4
- data/lib/zen/package/sections/lib/sections/model/section.rb +17 -9
- data/lib/zen/package/sections/lib/sections/model/section_entry.rb +192 -13
- data/lib/zen/package/sections/lib/sections/model/section_entry_status.rb +13 -0
- data/lib/zen/package/sections/lib/sections/plugin/section_entries.rb +60 -39
- data/lib/zen/package/sections/lib/sections/plugin/sections.rb +14 -11
- data/lib/zen/package/sections/lib/sections/view/admin/form.xhtml +100 -97
- data/lib/zen/package/sections/lib/sections/view/admin/index.xhtml +41 -39
- data/lib/zen/package/sections/lib/sections/view/admin/section-entries/form.xhtml +95 -215
- data/lib/zen/package/sections/lib/sections/view/admin/section-entries/index.xhtml +48 -40
- data/lib/zen/package/sections/migrations/1308672298_use_id_for_default_section.rb +40 -0
- data/lib/zen/package/sections/migrations/1308813320_section_entry_statuses.rb +58 -0
- data/lib/zen/package/settings/lib/settings/controller/settings.rb +5 -8
- data/lib/zen/package/settings/lib/settings/model/setting.rb +2 -37
- data/lib/zen/package/settings/lib/settings/plugin/setting_base.rb +18 -1
- data/lib/zen/package/settings/lib/settings/plugin/settings.rb +13 -7
- data/lib/zen/package/settings/lib/settings/view/admin/settings/index.xhtml +2 -1
- data/lib/zen/package/users/lib/users.rb +3 -1
- data/lib/zen/package/users/lib/users/controller/access_rules.rb +77 -60
- data/lib/zen/package/users/lib/users/controller/user_groups.rb +41 -36
- data/lib/zen/package/users/lib/users/controller/users.rb +48 -42
- data/lib/zen/package/users/lib/users/helper/users.rb +72 -0
- data/lib/zen/package/users/lib/users/language/en/access_rules.yml +6 -5
- data/lib/zen/package/users/lib/users/language/en/user_groups.yml +5 -4
- data/lib/zen/package/users/lib/users/language/en/users.yml +1 -0
- data/lib/zen/package/users/lib/users/language/nl/access_rules.yml +5 -4
- data/lib/zen/package/users/lib/users/language/nl/user_groups.yml +5 -4
- data/lib/zen/package/users/lib/users/language/nl/users.yml +1 -0
- data/lib/zen/package/users/lib/users/model/access_rule.rb +5 -1
- data/lib/zen/package/users/lib/users/model/user.rb +17 -10
- data/lib/zen/package/users/lib/users/public/admin/js/users/access_rules.js +10 -37
- data/lib/zen/package/users/lib/users/public/admin/js/users/lib/access_rules.js +49 -0
- data/lib/zen/package/users/lib/users/view/admin/access-rules/form.xhtml +105 -96
- data/lib/zen/package/users/lib/users/view/admin/access-rules/index.xhtml +48 -41
- data/lib/zen/package/users/lib/users/view/admin/user-groups/form.xhtml +42 -32
- data/lib/zen/package/users/lib/users/view/admin/user-groups/index.xhtml +43 -38
- data/lib/zen/package/users/lib/users/view/admin/users/form.xhtml +76 -67
- data/lib/zen/package/users/lib/users/view/admin/users/index.xhtml +43 -41
- data/lib/zen/package/users/lib/users/view/admin/users/login.xhtml +12 -9
- data/lib/zen/package/users/migrations/1295281013_create_schema.rb +2 -2
- data/lib/zen/plugin.rb +56 -50
- data/lib/zen/plugin/markup/lib/markup/markup.rb +33 -21
- data/lib/zen/public/admin/css/zen/buttons.css +11 -7
- data/lib/zen/public/admin/css/zen/datepicker.css +6 -6
- data/lib/zen/public/admin/css/zen/forms.css +2 -1
- data/lib/zen/public/admin/css/zen/general.css +15 -10
- data/lib/zen/public/admin/css/zen/layout.css +51 -20
- data/lib/zen/public/admin/css/zen/tables.css +39 -11
- data/lib/zen/public/admin/css/zen/tabs.css +6 -4
- data/lib/zen/public/admin/css/zen/window.css +11 -11
- data/lib/zen/public/{favicon.ico → admin/favicon.ico} +0 -0
- data/lib/zen/public/admin/images/zen/icons/asc.png +0 -0
- data/lib/zen/public/admin/images/zen/icons/desc.png +0 -0
- data/lib/zen/public/admin/js/vendor/datepicker.js +0 -11
- data/lib/zen/public/admin/js/{mootools → vendor/mootools}/core.js +0 -1
- data/lib/zen/public/admin/js/{mootools → vendor/mootools}/more.js +100 -29
- data/lib/zen/public/admin/js/zen/index.js +48 -0
- data/lib/zen/public/admin/js/zen/lib/asset.js +111 -0
- data/lib/zen/public/admin/js/zen/{editor.js → lib/editor.js} +107 -127
- data/lib/zen/public/admin/js/zen/{editor → lib/editor}/markdown.js +7 -9
- data/lib/zen/public/admin/js/zen/{editor → lib/editor}/textile.js +7 -9
- data/lib/zen/public/admin/js/zen/lib/html_table.js +143 -0
- data/lib/zen/public/admin/js/zen/{tabs.js → lib/tabs.js} +40 -37
- data/lib/zen/public/admin/js/zen/{window.js → lib/window.js} +24 -20
- data/lib/zen/spec/bacon/color_output.rb +39 -0
- data/lib/zen/spec/helper.rb +152 -0
- data/lib/zen/spec/simplecov.rb +22 -0
- data/lib/zen/task/build.rake +20 -43
- data/lib/zen/task/clean.rake +2 -6
- data/lib/zen/task/db.rake +8 -12
- data/lib/zen/task/package.rake +4 -10
- data/lib/zen/task/plugin.rake +3 -9
- data/lib/zen/task/proto.rake +0 -62
- data/lib/zen/task/test.rake +6 -3
- data/lib/zen/task/theme.rake +4 -11
- data/lib/zen/theme.rb +22 -24
- data/lib/zen/validation.rb +34 -27
- data/lib/zen/version.rb +2 -8
- data/lib/zen/view/head.xhtml +7 -0
- data/lib/zen/view/main.xhtml +7 -22
- data/{proto/package/migrations → pkg}/.gitkeep +0 -0
- data/proto/app/app.rb +1 -0
- data/proto/app/config/config.rb +5 -4
- data/proto/app/config/database.rb +19 -41
- data/proto/app/config/middlewares.rb +32 -29
- data/proto/{package/lib/package/view/admin/package/index.xhtml → app/log/database/dev/.gitkeep} +0 -0
- data/proto/app/log/database/live/.gitkeep +0 -0
- data/spec/Rakefile +26 -0
- data/spec/fixtures/zen/asset.rb +18 -0
- data/spec/fixtures/zen/helper/acl.rb +39 -0
- data/spec/fixtures/zen/helper/message.rb +19 -0
- data/spec/fixtures/zen/language/en/spec.yml +10 -0
- data/spec/fixtures/zen/language/nl/spec.yml +7 -0
- data/spec/fixtures/zen/package.rb +17 -0
- data/spec/fixtures/zen/package/comments/controller/comments_form.rb +27 -0
- data/spec/fixtures/zen/package/settings/plugin/settings.rb +20 -0
- data/spec/fixtures/zen/plugin.rb +7 -0
- data/spec/fixtures/zen/theme/404.xhtml +1 -0
- data/spec/fixtures/zen/theme/default-section/index.xhtml +1 -0
- data/spec/fixtures/zen/theme/helper/404.xhtml +1 -0
- data/spec/fixtures/zen/theme/helper/partial.xhtml +1 -0
- data/spec/fixtures/zen/theme/helper/wrong_partial.xhtml +1 -0
- data/spec/fixtures/zen/theme/partials/partial.xhtml +1 -0
- data/spec/fixtures/zen/theme/theme.rb +11 -0
- data/spec/fixtures/zen/validation.rb +22 -0
- data/spec/helper.rb +41 -0
- data/spec/zen/all.rb +5 -0
- data/spec/zen/asset.rb +97 -0
- data/spec/zen/bin/create.rb +89 -0
- data/spec/zen/bin/runner.rb +47 -0
- data/spec/zen/controller/admin_controller.rb +26 -0
- data/spec/zen/controller/main_controller.rb +81 -0
- data/spec/zen/controller/preview.rb +33 -0
- data/spec/zen/helper/acl.rb +149 -0
- data/spec/zen/helper/breadcrumb.rb +38 -0
- data/spec/zen/helper/message.rb +31 -0
- data/spec/zen/helper/theme.rb +58 -0
- data/spec/zen/language.rb +55 -0
- data/spec/zen/package.rb +23 -0
- data/spec/zen/package/categories/controller/categories.rb +123 -0
- data/spec/zen/package/categories/controller/category_groups.rb +108 -0
- data/spec/zen/package/categories/helper/category.rb +75 -0
- data/spec/zen/package/categories/plugin/categories.rb +92 -0
- data/spec/zen/package/comments/controller/comments.rb +134 -0
- data/spec/zen/package/comments/controller/comments_form.rb +343 -0
- data/spec/zen/package/comments/helper/comment.rb +47 -0
- data/spec/zen/package/comments/plugin/anti_spam.rb +59 -0
- data/spec/zen/package/comments/plugin/comments.rb +107 -0
- data/spec/zen/package/custom_fields/blue_form_parameters.rb +183 -0
- data/spec/zen/package/custom_fields/controller/custom_field_groups.rb +120 -0
- data/spec/zen/package/custom_fields/controller/custom_field_types.rb +169 -0
- data/spec/zen/package/custom_fields/controller/custom_fields.rb +158 -0
- data/spec/zen/package/custom_fields/helper/custom_field.rb +86 -0
- data/spec/zen/package/menus/controller/menu_items.rb +110 -0
- data/spec/zen/package/menus/controller/menus.rb +110 -0
- data/spec/zen/package/menus/helper/menu.rb +75 -0
- data/spec/zen/package/menus/plugin/menus.rb +120 -0
- data/spec/zen/package/sections/controller/section_entries.rb +201 -0
- data/spec/zen/package/sections/controller/sections.rb +116 -0
- data/spec/zen/package/sections/helper/section.rb +74 -0
- data/spec/zen/package/sections/plugin/section_entries.rb +161 -0
- data/spec/zen/package/sections/plugin/sections.rb +75 -0
- data/spec/zen/package/settings/controller/settings.rb +36 -0
- data/spec/zen/package/settings/plugin/settings.rb +33 -0
- data/spec/zen/package/users/controller/access_rules.rb +90 -0
- data/spec/zen/package/users/controller/user_groups.rb +101 -0
- data/spec/zen/package/users/controller/users.rb +130 -0
- data/spec/zen/package/users/helper/users.rb +97 -0
- data/spec/zen/plugin.rb +64 -0
- data/spec/zen/plugin/helper.rb +11 -0
- data/spec/zen/plugin/markup.rb +44 -0
- data/spec/zen/theme.rb +41 -0
- data/spec/zen/validation.rb +63 -0
- data/zen.gemspec +36 -0
- metadata +159 -113
- data/MANIFEST +0 -266
- data/lib/zen/bin/app.rb +0 -40
- data/lib/zen/ext/string.rb +0 -185
- data/lib/zen/helper/common.rb +0 -106
- data/lib/zen/package/categories/lib/categories/view/admin/categories/edit.xhtml +0 -7
- data/lib/zen/package/categories/lib/categories/view/admin/categories/new.xhtml +0 -7
- data/lib/zen/package/categories/lib/categories/view/admin/category-groups/edit.xhtml +0 -7
- data/lib/zen/package/categories/lib/categories/view/admin/category-groups/new.xhtml +0 -7
- data/lib/zen/package/comments/lib/comments/view/admin/comments/edit.xhtml +0 -7
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-groups/edit.xhtml +0 -7
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-groups/new.xhtml +0 -7
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-fields/edit.xhtml +0 -7
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-fields/new.xhtml +0 -7
- data/lib/zen/package/menus/lib/menus/view/admin/menu-items/edit.xhtml +0 -7
- data/lib/zen/package/menus/lib/menus/view/admin/menu-items/new.xhtml +0 -7
- data/lib/zen/package/menus/lib/menus/view/admin/menus/edit.xhtml +0 -7
- data/lib/zen/package/menus/lib/menus/view/admin/menus/new.xhtml +0 -7
- data/lib/zen/package/sections/lib/sections/view/admin/edit.xhtml +0 -7
- data/lib/zen/package/sections/lib/sections/view/admin/new.xhtml +0 -7
- data/lib/zen/package/sections/lib/sections/view/admin/section-entries/edit.xhtml +0 -7
- data/lib/zen/package/sections/lib/sections/view/admin/section-entries/new.xhtml +0 -7
- data/lib/zen/package/users/lib/users/view/admin/access-rules/edit.xhtml +0 -7
- data/lib/zen/package/users/lib/users/view/admin/access-rules/new.xhtml +0 -7
- data/lib/zen/package/users/lib/users/view/admin/user-groups/edit.xhtml +0 -7
- data/lib/zen/package/users/lib/users/view/admin/user-groups/new.xhtml +0 -7
- data/lib/zen/package/users/lib/users/view/admin/users/edit.xhtml +0 -7
- data/lib/zen/package/users/lib/users/view/admin/users/new.xhtml +0 -7
- data/lib/zen/plugin/controller.rb +0 -59
- data/lib/zen/public/admin/css/zen/notifications.css +0 -84
- data/lib/zen/public/admin/images/zen/icons/large/error.png +0 -0
- data/lib/zen/public/admin/images/zen/icons/large/notice.png +0 -0
- data/lib/zen/public/admin/images/zen/icons/large/success.png +0 -0
- data/lib/zen/public/admin/js/zen/core.js +0 -73
- data/lib/zen/public/admin/js/zen/init.js +0 -80
- data/proto/package/lib/package.rb +0 -21
- data/proto/package/lib/package/controller/controllers.rb +0 -50
- data/proto/package/lib/package/language/en/languages.yml +0 -4
- data/proto/package/lib/package/model/model.rb +0 -12
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
Sequel.migration do
|
|
2
|
+
# Updates the database with the changes specified in the block.
|
|
3
|
+
up do
|
|
4
|
+
rename_column(:custom_field_types, :css_class, :html_class)
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
# Reverts the changes made in the up() block.
|
|
8
|
+
down do
|
|
9
|
+
rename_column(:custom_field_types, :html_class, :css_class)
|
|
10
|
+
end
|
|
11
|
+
end
|
|
@@ -11,8 +11,8 @@ module Menus
|
|
|
11
11
|
class MenuItems < ::Zen::Controller::AdminController
|
|
12
12
|
include ::Menus::Model
|
|
13
13
|
|
|
14
|
-
map
|
|
15
|
-
helper
|
|
14
|
+
map '/admin/menu-items'
|
|
15
|
+
helper :menu
|
|
16
16
|
|
|
17
17
|
before_all do
|
|
18
18
|
csrf_protection(:save, :delete) do
|
|
@@ -34,9 +34,6 @@ module Menus
|
|
|
34
34
|
def initialize
|
|
35
35
|
super
|
|
36
36
|
|
|
37
|
-
@form_save_url = MenuItems.r(:save)
|
|
38
|
-
@form_delete_url = MenuItems.r(:delete)
|
|
39
|
-
|
|
40
37
|
Zen::Language.load('menu_items')
|
|
41
38
|
Zen::Language.load('menus')
|
|
42
39
|
|
|
@@ -59,19 +56,18 @@ module Menus
|
|
|
59
56
|
# @param [Integer] menu_id The ID of the current navigation menu.
|
|
60
57
|
#
|
|
61
58
|
def index(menu_id)
|
|
62
|
-
|
|
63
|
-
respond(lang('zen_general.errors.not_authorized'), 403)
|
|
64
|
-
end
|
|
59
|
+
require_permissions(:read)
|
|
65
60
|
|
|
66
|
-
validate_menu(menu_id)
|
|
61
|
+
menu = validate_menu(menu_id)
|
|
67
62
|
|
|
68
63
|
set_breadcrumbs(
|
|
69
|
-
|
|
64
|
+
Menus.a(lang('menus.titles.index'), :index),
|
|
70
65
|
lang('menu_items.titles.index')
|
|
71
66
|
)
|
|
72
67
|
|
|
73
68
|
@menu_id = menu_id
|
|
74
|
-
@menu_items =
|
|
69
|
+
@menu_items = MenuItem.filter(:menu_id => menu_id)
|
|
70
|
+
@menu_items = paginate(@menu_items)
|
|
75
71
|
end
|
|
76
72
|
|
|
77
73
|
##
|
|
@@ -88,15 +84,13 @@ module Menus
|
|
|
88
84
|
# @param [Integer] id The ID of the menu item to edit.
|
|
89
85
|
#
|
|
90
86
|
def edit(menu_id, id)
|
|
91
|
-
|
|
92
|
-
respond(lang('zen_general.errors.not_authorized'), 403)
|
|
93
|
-
end
|
|
87
|
+
require_permissions(:read, :update)
|
|
94
88
|
|
|
95
89
|
validate_menu(menu_id)
|
|
96
90
|
|
|
97
91
|
set_breadcrumbs(
|
|
98
|
-
|
|
99
|
-
|
|
92
|
+
Menus.a(lang('menus.titles.index'), :index),
|
|
93
|
+
MenuItems.a(lang('menu_items.titles.index'), :index, menu_id),
|
|
100
94
|
lang('menu_items.titles.edit')
|
|
101
95
|
)
|
|
102
96
|
|
|
@@ -105,8 +99,10 @@ module Menus
|
|
|
105
99
|
if flash[:form_data]
|
|
106
100
|
@menu_item = flash[:form_data]
|
|
107
101
|
else
|
|
108
|
-
@menu_item =
|
|
102
|
+
@menu_item = validate_menu_item(id, menu_id)
|
|
109
103
|
end
|
|
104
|
+
|
|
105
|
+
render_view(:form)
|
|
110
106
|
end
|
|
111
107
|
|
|
112
108
|
##
|
|
@@ -122,24 +118,25 @@ module Menus
|
|
|
122
118
|
# @param [Integer] menu_id The ID of the current navigation menu.
|
|
123
119
|
#
|
|
124
120
|
def new(menu_id)
|
|
125
|
-
|
|
126
|
-
respond(lang('zen_general.errors.not_authorized'), 403)
|
|
127
|
-
end
|
|
121
|
+
require_permissions(:create, :read)
|
|
128
122
|
|
|
129
123
|
validate_menu(menu_id)
|
|
130
124
|
|
|
131
125
|
set_breadcrumbs(
|
|
132
|
-
|
|
133
|
-
|
|
126
|
+
Menus.a(lang('menus.titles.index'), :index),
|
|
127
|
+
MenuItems.a(lang('menu_items.titles.index'), :index, menu_id),
|
|
134
128
|
lang('menu_items.titles.new')
|
|
135
129
|
)
|
|
136
130
|
|
|
137
131
|
@menu_id = menu_id
|
|
138
132
|
@menu_item = MenuItem.new
|
|
133
|
+
|
|
134
|
+
render_view(:form)
|
|
139
135
|
end
|
|
140
136
|
|
|
141
137
|
##
|
|
142
|
-
# Saves an existing menu iten or creates a new one using the supplied
|
|
138
|
+
# Saves an existing menu iten or creates a new one using the supplied
|
|
139
|
+
# POST data.
|
|
143
140
|
#
|
|
144
141
|
# This method requires the following permissions:
|
|
145
142
|
#
|
|
@@ -150,24 +147,31 @@ module Menus
|
|
|
150
147
|
# @since 0.2a
|
|
151
148
|
#
|
|
152
149
|
def save
|
|
153
|
-
if !user_authorized?([:create, :update])
|
|
154
|
-
respond(lang('zen_general.errors.not_authorized'), 403)
|
|
155
|
-
end
|
|
156
|
-
|
|
157
150
|
post = request.subset(
|
|
158
|
-
:id,
|
|
151
|
+
:id,
|
|
152
|
+
:parent_id,
|
|
153
|
+
:name,
|
|
154
|
+
:url,
|
|
155
|
+
:sort_order,
|
|
156
|
+
:html_class,
|
|
157
|
+
:html_id,
|
|
158
|
+
:menu_id
|
|
159
159
|
)
|
|
160
160
|
|
|
161
161
|
if post['parent_id'].empty? or post['parent_id'] === post['id']
|
|
162
162
|
post['parent_id'] = nil
|
|
163
163
|
end
|
|
164
164
|
|
|
165
|
-
# Determine if we're saving changes made to an existing menu item or
|
|
166
|
-
# going to create a new one.
|
|
167
|
-
if !post['id'].empty?
|
|
168
|
-
|
|
165
|
+
# Determine if we're saving changes made to an existing menu item or
|
|
166
|
+
# if we're going to create a new one.
|
|
167
|
+
if post.key?('id') and !post['id'].empty?
|
|
168
|
+
require_permissions(:update)
|
|
169
|
+
|
|
170
|
+
@menu_item = validate_menu_item(post['id'], post['menu_id'])
|
|
169
171
|
save_action = :save
|
|
170
172
|
else
|
|
173
|
+
require_permissions(:create)
|
|
174
|
+
|
|
171
175
|
@menu_item = MenuItem.new
|
|
172
176
|
save_action = :new
|
|
173
177
|
end
|
|
@@ -188,6 +192,8 @@ module Menus
|
|
|
188
192
|
|
|
189
193
|
flash[:form_data] = @menu_item
|
|
190
194
|
flash[:form_errors] = @menu_item.errors
|
|
195
|
+
|
|
196
|
+
redirect_referrer
|
|
191
197
|
end
|
|
192
198
|
|
|
193
199
|
if @menu_item.id
|
|
@@ -207,9 +213,7 @@ module Menus
|
|
|
207
213
|
# @since 0.2a
|
|
208
214
|
#
|
|
209
215
|
def delete
|
|
210
|
-
|
|
211
|
-
respond(lang('zen_general.errors.not_authorized'), 403)
|
|
212
|
-
end
|
|
216
|
+
require_permissions(:delete)
|
|
213
217
|
|
|
214
218
|
post = request.subset(:menu_item_ids)
|
|
215
219
|
|
|
@@ -224,6 +228,7 @@ module Menus
|
|
|
224
228
|
rescue => e
|
|
225
229
|
Ramaze::Log.error(e.inspect)
|
|
226
230
|
message(:error, lang('menu_items.errors.delete') % id)
|
|
231
|
+
|
|
227
232
|
redirect_referrer
|
|
228
233
|
end
|
|
229
234
|
end
|
|
@@ -3,8 +3,8 @@ module Menus
|
|
|
3
3
|
#:nodoc:
|
|
4
4
|
module Controller
|
|
5
5
|
##
|
|
6
|
-
# Controller for managing menu groups. Individual navigation items are
|
|
7
|
-
# the menu items controller, simply named "menu_items".
|
|
6
|
+
# Controller for managing menu groups. Individual navigation items are
|
|
7
|
+
# managed using the menu items controller, simply named "menu_items".
|
|
8
8
|
#
|
|
9
9
|
# @author Yorick Peterse
|
|
10
10
|
# @since 0.2a
|
|
@@ -12,7 +12,8 @@ module Menus
|
|
|
12
12
|
class Menus < Zen::Controller::AdminController
|
|
13
13
|
include ::Menus::Model
|
|
14
14
|
|
|
15
|
-
map
|
|
15
|
+
map '/admin/menus'
|
|
16
|
+
helper :menu
|
|
16
17
|
|
|
17
18
|
before_all do
|
|
18
19
|
csrf_protection(:save, :delete) do
|
|
@@ -33,9 +34,6 @@ module Menus
|
|
|
33
34
|
def initialize
|
|
34
35
|
super
|
|
35
36
|
|
|
36
|
-
@form_save_url = Menus.r(:save)
|
|
37
|
-
@form_delete_url = Menus.r(:delete)
|
|
38
|
-
|
|
39
37
|
Zen::Language.load('menus')
|
|
40
38
|
|
|
41
39
|
# Set the page title
|
|
@@ -57,21 +55,17 @@ module Menus
|
|
|
57
55
|
# @since 0.2a
|
|
58
56
|
#
|
|
59
57
|
def index
|
|
60
|
-
|
|
61
|
-
respond(lang('zen_general.errors.not_authorized'), 403)
|
|
62
|
-
end
|
|
58
|
+
require_permissions(:read)
|
|
63
59
|
|
|
64
|
-
# Set our breadcrumbs
|
|
65
60
|
set_breadcrumbs(lang('menus.titles.index'))
|
|
66
61
|
|
|
67
|
-
|
|
68
|
-
@menus = Menu.all
|
|
62
|
+
@menus = paginate(Menu)
|
|
69
63
|
end
|
|
70
64
|
|
|
71
65
|
##
|
|
72
|
-
# Show a form that allows the user to edit the details (such as the name
|
|
73
|
-
# of a menu group. This method can not be used to manage all
|
|
74
|
-
# group.
|
|
66
|
+
# Show a form that allows the user to edit the details (such as the name
|
|
67
|
+
# and slug) of a menu group. This method can not be used to manage all
|
|
68
|
+
# menu items for this group.
|
|
75
69
|
#
|
|
76
70
|
# This method requires the following permissions:
|
|
77
71
|
#
|
|
@@ -82,25 +76,26 @@ module Menus
|
|
|
82
76
|
# @since 0.2a
|
|
83
77
|
#
|
|
84
78
|
def edit(id)
|
|
85
|
-
|
|
86
|
-
respond(lang('zen_general.errors.not_authorized'), 403)
|
|
87
|
-
end
|
|
79
|
+
require_permissions(:read, :update)
|
|
88
80
|
|
|
89
81
|
set_breadcrumbs(
|
|
90
|
-
|
|
82
|
+
Menus.a(lang('menus.titles.index'), :index),
|
|
91
83
|
@page_title
|
|
92
84
|
)
|
|
93
85
|
|
|
94
86
|
if flash[:form_data]
|
|
95
87
|
@menu = flash[:form_data]
|
|
96
88
|
else
|
|
97
|
-
@menu =
|
|
89
|
+
@menu = validate_menu(id)
|
|
98
90
|
end
|
|
91
|
+
|
|
92
|
+
render_view(:form)
|
|
99
93
|
end
|
|
100
94
|
|
|
101
95
|
##
|
|
102
|
-
# Show a form that can be used to create a new menu group. Once a menu
|
|
103
|
-
# been created users can start adding navigation items to the
|
|
96
|
+
# Show a form that can be used to create a new menu group. Once a menu
|
|
97
|
+
# group has been created users can start adding navigation items to the
|
|
98
|
+
# group.
|
|
104
99
|
#
|
|
105
100
|
# This method requires the following permissions:
|
|
106
101
|
#
|
|
@@ -111,24 +106,24 @@ module Menus
|
|
|
111
106
|
# @since 0.2a
|
|
112
107
|
#
|
|
113
108
|
def new
|
|
114
|
-
|
|
115
|
-
respond(lang('zen_general.errors.not_authorized'), 403)
|
|
116
|
-
end
|
|
109
|
+
require_permissions(:create, :read)
|
|
117
110
|
|
|
118
|
-
# Breadcrumbs, om nom nom!
|
|
119
111
|
set_breadcrumbs(
|
|
120
|
-
|
|
112
|
+
Menus.a(lang('menus.titles.index'), :index),
|
|
121
113
|
@page_title
|
|
122
114
|
)
|
|
123
115
|
|
|
124
116
|
@menu = Menu.new
|
|
117
|
+
|
|
118
|
+
render_view(:form)
|
|
125
119
|
end
|
|
126
120
|
|
|
127
121
|
##
|
|
128
|
-
# Saves the changes made to an existing menu group or creates a new group
|
|
129
|
-
# supplied POST data. In order to detect this forms that contain
|
|
130
|
-
# group should have a hidden field named "id", the
|
|
131
|
-
# value of the menu group of which the
|
|
122
|
+
# Saves the changes made to an existing menu group or creates a new group
|
|
123
|
+
# using the supplied POST data. In order to detect this forms that contain
|
|
124
|
+
# data of an existing group should have a hidden field named "id", the
|
|
125
|
+
# value of this field is the primary value of the menu group of which the
|
|
126
|
+
# changes should be saved.
|
|
132
127
|
#
|
|
133
128
|
# This method requires the following permissions:
|
|
134
129
|
#
|
|
@@ -139,17 +134,24 @@ module Menus
|
|
|
139
134
|
# @since 0.2a
|
|
140
135
|
#
|
|
141
136
|
def save
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
137
|
+
post = request.subset(
|
|
138
|
+
:name,
|
|
139
|
+
:slug,
|
|
140
|
+
:description,
|
|
141
|
+
:html_class,
|
|
142
|
+
:html_id,
|
|
143
|
+
:id
|
|
144
|
+
)
|
|
147
145
|
|
|
148
146
|
# Determine if we're creating a new group or modifying an existing one.
|
|
149
|
-
if !post['id'].empty?
|
|
150
|
-
|
|
147
|
+
if post.key?('id') and !post['id'].empty?
|
|
148
|
+
require_permissions(:update)
|
|
149
|
+
|
|
150
|
+
@menu = validate_menu(post['id'])
|
|
151
151
|
save_action = :save
|
|
152
152
|
else
|
|
153
|
+
require_permissions(:create)
|
|
154
|
+
|
|
153
155
|
@menu = Menu.new
|
|
154
156
|
save_action = :new
|
|
155
157
|
|
|
@@ -172,6 +174,8 @@ module Menus
|
|
|
172
174
|
|
|
173
175
|
flash[:form_data] = @menu
|
|
174
176
|
flash[:form_errors] = @menu.errors
|
|
177
|
+
|
|
178
|
+
redirect_referrer
|
|
175
179
|
end
|
|
176
180
|
|
|
177
181
|
# Redrect the user to the proper page
|
|
@@ -183,8 +187,9 @@ module Menus
|
|
|
183
187
|
end
|
|
184
188
|
|
|
185
189
|
##
|
|
186
|
-
# Deletes a number of navigation menus based on the supplied primary
|
|
187
|
-
# These primary values should be stored in a POST array called
|
|
190
|
+
# Deletes a number of navigation menus based on the supplied primary
|
|
191
|
+
# values. These primary values should be stored in a POST array called
|
|
192
|
+
# "menu_ids".
|
|
188
193
|
#
|
|
189
194
|
# This method requires the following permissions:
|
|
190
195
|
#
|
|
@@ -194,9 +199,7 @@ module Menus
|
|
|
194
199
|
# @since 0.2a
|
|
195
200
|
#
|
|
196
201
|
def delete
|
|
197
|
-
|
|
198
|
-
respond(lang('zen_general.errors.not_authorized'), 403)
|
|
199
|
-
end
|
|
202
|
+
require_permissions(:delete)
|
|
200
203
|
|
|
201
204
|
post = request.params.dup
|
|
202
205
|
|
|
@@ -213,6 +216,7 @@ module Menus
|
|
|
213
216
|
rescue => e
|
|
214
217
|
Ramaze::Log.error(e.inspect)
|
|
215
218
|
message(:error, lang('menus.errors.delete') % id)
|
|
219
|
+
|
|
216
220
|
redirect_referrer
|
|
217
221
|
end
|
|
218
222
|
end
|
|
@@ -3,31 +3,58 @@ module Ramaze
|
|
|
3
3
|
#:nodoc:
|
|
4
4
|
module Helper
|
|
5
5
|
##
|
|
6
|
-
# Small helper for the Menus package mainly used to reduce the amount of
|
|
7
|
-
# in controllers.
|
|
6
|
+
# Small helper for the Menus package mainly used to reduce the amount of
|
|
7
|
+
# code in controllers.
|
|
8
8
|
#
|
|
9
9
|
# @author Yorick Peterse
|
|
10
10
|
# @since 0.2a
|
|
11
11
|
#
|
|
12
|
-
module
|
|
12
|
+
module Menu
|
|
13
13
|
##
|
|
14
|
-
# Checks if there is a menu for the given ID. If this isn't the case the
|
|
15
|
-
# will be redirected back to the index page of the menus controller.
|
|
14
|
+
# Checks if there is a menu for the given ID. If this isn't the case the
|
|
15
|
+
# user will be redirected back to the index page of the menus controller.
|
|
16
16
|
#
|
|
17
17
|
# @author Yorick Peterse
|
|
18
18
|
# @since 0.2a
|
|
19
|
-
# @param [
|
|
19
|
+
# @param [Fixnum] menu_id The ID of the menu to validate.
|
|
20
|
+
# @return [Menus::Model::Menu] The menu that was specified in case it's
|
|
21
|
+
# valid.
|
|
20
22
|
#
|
|
21
23
|
def validate_menu(menu_id)
|
|
22
|
-
|
|
23
|
-
|
|
24
|
+
menu = ::Menus::Model::Menu[menu_id]
|
|
25
|
+
|
|
26
|
+
if menu.nil?
|
|
27
|
+
message(:error, lang('menus.errors.invalid_menu'))
|
|
24
28
|
redirect(::Menus::Controller::Menus.r(:index))
|
|
29
|
+
else
|
|
30
|
+
return menu
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
##
|
|
35
|
+
# Validates a menu item and returns it if it's valid.
|
|
36
|
+
#
|
|
37
|
+
# @author Yorick Peterse
|
|
38
|
+
# @since 0.2.8
|
|
39
|
+
# @param [Fixnum] menu_item_id The ID of the menu item to validate.
|
|
40
|
+
# @param [Fixnum] menu_id The ID of the menu the item belongs to, used
|
|
41
|
+
# when redirecting the user.
|
|
42
|
+
# @return [Menus::Model::MenuItem]
|
|
43
|
+
#
|
|
44
|
+
def validate_menu_item(menu_item_id, menu_id)
|
|
45
|
+
menu_item = ::Menus::Model::MenuItem[menu_item_id]
|
|
46
|
+
|
|
47
|
+
if menu_item.nil?
|
|
48
|
+
message(:error, lang('menu_items.errors.invalid_item'))
|
|
49
|
+
redirect(::Menus::Controller::MenuItems.r(:index, menu_id))
|
|
50
|
+
else
|
|
51
|
+
return menu_item
|
|
25
52
|
end
|
|
26
53
|
end
|
|
27
54
|
|
|
28
55
|
##
|
|
29
|
-
# Builds a hierarchy of navigation items and all their sub items. The
|
|
30
|
-
# structure looks like the following:
|
|
56
|
+
# Builds a hierarchy of navigation items and all their sub items. The
|
|
57
|
+
# generated structure looks like the following:
|
|
31
58
|
#
|
|
32
59
|
# Root
|
|
33
60
|
# |
|
|
@@ -36,15 +63,15 @@ module Ramaze
|
|
|
36
63
|
# | |_ Sub sub
|
|
37
64
|
# |
|
|
38
65
|
# |_ Sub 1
|
|
39
|
-
#
|
|
66
|
+
#
|
|
40
67
|
# @author Yorick Peterse
|
|
41
68
|
# @since 0.2a
|
|
42
|
-
# @param [
|
|
69
|
+
# @param [Fixnum] menu_id The ID of the current menu group.
|
|
43
70
|
# @return [Hash]
|
|
44
71
|
#
|
|
45
72
|
def menu_item_tree(menu_id)
|
|
46
73
|
menu_items = ::Menus::Model::MenuItem.filter(
|
|
47
|
-
:menu_id => menu_id,
|
|
74
|
+
:menu_id => menu_id,
|
|
48
75
|
:parent_id => nil
|
|
49
76
|
)
|
|
50
77
|
|
|
@@ -54,7 +81,7 @@ module Ramaze
|
|
|
54
81
|
@menu_items_hash[item.id] = item.name
|
|
55
82
|
|
|
56
83
|
item.descendants.each do |i|
|
|
57
|
-
|
|
84
|
+
descendant_items(i, 2)
|
|
58
85
|
end
|
|
59
86
|
end
|
|
60
87
|
|
|
@@ -67,7 +94,7 @@ module Ramaze
|
|
|
67
94
|
# @author Yorick Peterse
|
|
68
95
|
# @since 0.2a
|
|
69
96
|
# @param [Menus::Model::MenuItem] item A MenuItem instance
|
|
70
|
-
# @param [
|
|
97
|
+
# @param [Fixnum] spaces The amount of unbreakable spaces to use.
|
|
71
98
|
#
|
|
72
99
|
def descendant_items(item, spaces)
|
|
73
100
|
return if @menu_items_hash.key?(item.id)
|