zen 0.2.8 → 0.3b
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 +20 -0
- data/.mailmap +3 -2
- data/.rvmrc +1 -1
- data/.travis.yml +13 -2
- data/.yardopts +13 -0
- data/AUTHORS +1 -1
- data/README.md +115 -77
- data/Rakefile +6 -7
- data/bin/zen +12 -5
- data/guide/_static/categories/categories.png +0 -0
- data/guide/_static/categories/category_groups.png +0 -0
- data/guide/_static/categories/new_category.png +0 -0
- data/guide/_static/categories/new_category_group.png +0 -0
- data/guide/_static/comments/comments.png +0 -0
- data/guide/_static/comments/edit_comment.png +0 -0
- data/guide/_static/custom_fields/custom_field_groups.png +0 -0
- data/guide/_static/custom_fields/custom_field_types.png +0 -0
- data/guide/_static/custom_fields/custom_fields.png +0 -0
- data/guide/_static/custom_fields/edit_custom_field_general.png +0 -0
- data/guide/_static/custom_fields/edit_custom_field_group.png +0 -0
- data/guide/_static/custom_fields/edit_custom_field_settings.png +0 -0
- data/guide/_static/custom_fields/edit_custom_field_type.png +0 -0
- data/guide/_static/menus/edit_menu.png +0 -0
- data/guide/_static/menus/edit_menu_item.png +0 -0
- data/guide/_static/menus/menu_items.png +0 -0
- data/guide/_static/menus/menus.png +0 -0
- data/guide/_static/sections/edit_entry.png +0 -0
- data/guide/_static/sections/edit_entry_categories.png +0 -0
- data/guide/_static/sections/edit_entry_general.png +0 -0
- data/guide/_static/sections/edit_entry_meta.png +0 -0
- data/guide/_static/sections/edit_section_comments.png +0 -0
- data/guide/_static/sections/edit_section_general.png +0 -0
- data/guide/_static/sections/edit_section_groups.png +0 -0
- data/guide/_static/sections/entries.png +0 -0
- data/guide/_static/sections/sections.png +0 -0
- data/guide/_static/settings/overview_general.png +0 -0
- data/guide/_static/settings/overview_security.png +0 -0
- data/guide/_static/settings/overview_user.png +0 -0
- data/guide/_static/users/edit_user.png +0 -0
- data/guide/_static/users/edit_user_group.png +0 -0
- data/guide/_static/users/edit_user_group_permissions.png +0 -0
- data/guide/_static/users/edit_user_permissions.png +0 -0
- data/guide/_static/users/overview.png +0 -0
- data/guide/_static/users/user_groups_overview.png +0 -0
- data/guide/asset_management.md +117 -0
- data/{CHANGELOG.md → guide/changelog.md} +42 -0
- data/guide/css/common.css +20 -0
- data/guide/getting_started.md +61 -0
- data/guide/hacking.md +52 -0
- data/guide/installation.md +44 -0
- data/guide/javascript.md +352 -0
- data/lib/vendor/sequel_sluggable.rb +137 -0
- data/lib/yard/tags.rb +13 -0
- data/lib/zen.rb +148 -78
- data/lib/zen/asset_groups.rb +85 -0
- data/lib/zen/bin/create.rb +267 -56
- data/lib/zen/bin/default.rb +84 -0
- data/lib/zen/controller/admin_controller.rb +1 -82
- data/lib/zen/controller/base_controller.rb +9 -5
- data/lib/zen/controller/frontend_controller.rb +0 -1
- data/lib/zen/controller/main_controller.rb +30 -42
- data/lib/zen/controller/preview.rb +9 -8
- data/lib/zen/controller/translations.rb +49 -0
- data/lib/zen/error.rb +17 -0
- data/lib/zen/event.rb +118 -0
- data/lib/zen/helper/asset.rb +63 -0
- data/lib/zen/helper/breadcrumb.rb +1 -4
- data/lib/zen/helper/controller.rb +73 -0
- data/lib/zen/helper/locale.rb +42 -0
- data/lib/zen/helper/message.rb +0 -3
- data/lib/zen/helper/search.rb +54 -0
- data/lib/zen/helper/stacked_aspect.rb +249 -0
- data/lib/zen/helper/theme.rb +3 -10
- data/lib/zen/language.rb +356 -181
- data/lib/zen/language/en/zen_general.rb +52 -0
- data/lib/zen/language/en/zen_models.rb +19 -0
- data/lib/zen/language/nl/zen_general.rb +57 -0
- data/lib/zen/language/nl/zen_models.rb +22 -0
- data/lib/zen/language/translation.rb +132 -0
- data/lib/zen/languages.rb +9 -0
- data/lib/zen/layout/admin.xhtml +3 -3
- data/lib/zen/layout/login.xhtml +1 -1
- data/lib/zen/markup.rb +189 -0
- data/lib/zen/model/helper.rb +65 -0
- data/lib/zen/model/init.rb +62 -0
- data/lib/zen/model/methods.rb +6 -7
- data/lib/zen/package.rb +312 -201
- data/lib/zen/package/all.rb +4 -3
- data/lib/zen/package/categories/lib/categories.rb +29 -41
- data/lib/zen/package/categories/lib/categories/controller/categories.rb +185 -130
- data/lib/zen/package/categories/lib/categories/controller/category_groups.rb +172 -102
- data/lib/zen/package/categories/lib/categories/helper/category.rb +4 -9
- data/lib/zen/package/categories/lib/categories/helper/category_frontend.rb +86 -0
- data/lib/zen/package/categories/lib/categories/language/en/categories.rb +40 -0
- data/lib/zen/package/categories/lib/categories/language/en/category_groups.rb +39 -0
- data/lib/zen/package/categories/lib/categories/language/nl/categories.rb +42 -0
- data/lib/zen/package/categories/lib/categories/language/nl/category_groups.rb +42 -0
- data/lib/zen/package/categories/lib/categories/model/category.rb +21 -25
- data/lib/zen/package/categories/lib/categories/model/category_group.rb +21 -15
- data/lib/zen/package/categories/lib/categories/view/admin/categories/form.xhtml +25 -26
- data/lib/zen/package/categories/lib/categories/view/admin/categories/index.xhtml +24 -24
- data/lib/zen/package/categories/lib/categories/view/admin/category-groups/form.xhtml +18 -20
- data/lib/zen/package/categories/lib/categories/view/admin/category-groups/index.xhtml +21 -18
- data/lib/zen/package/comments/lib/comments.rb +30 -50
- data/lib/zen/package/comments/lib/comments/anti_spam.rb +138 -0
- data/lib/zen/package/comments/lib/comments/controller/comments.rb +159 -92
- data/lib/zen/package/comments/lib/comments/controller/comments_form.rb +122 -34
- data/lib/zen/package/comments/lib/comments/helper/comment.rb +0 -3
- data/lib/zen/package/comments/lib/comments/helper/comment_frontend.rb +90 -0
- data/lib/zen/package/comments/lib/comments/language/en/comments.rb +57 -0
- data/lib/zen/package/comments/lib/comments/language/nl/comments.rb +61 -0
- data/lib/zen/package/comments/lib/comments/model/comment.rb +147 -49
- data/lib/zen/package/comments/lib/comments/model/comment_status.rb +0 -2
- data/lib/zen/package/comments/lib/comments/view/admin/comments/form.xhtml +37 -40
- data/lib/zen/package/comments/lib/comments/view/admin/comments/index.xhtml +23 -42
- data/lib/zen/package/comments/migrations/1308774099_comment_status.rb +12 -4
- data/lib/zen/package/comments/migrations/1313851786_remove_defensio_signature.rb +11 -0
- data/lib/zen/package/custom_fields/lib/custom_fields.rb +40 -43
- data/lib/zen/package/custom_fields/lib/custom_fields/blue_form_parameters.rb +72 -17
- data/lib/zen/package/custom_fields/lib/custom_fields/controller/custom_field_groups.rb +154 -118
- data/lib/zen/package/custom_fields/lib/custom_fields/controller/custom_field_types.rb +147 -90
- data/lib/zen/package/custom_fields/lib/custom_fields/controller/custom_fields.rb +161 -131
- data/lib/zen/package/custom_fields/lib/custom_fields/helper/custom_field.rb +4 -9
- data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_field_groups.rb +42 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_field_types.rb +51 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_fields.rb +60 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/language/nl/custom_field_groups.rb +41 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/language/nl/custom_field_types.rb +49 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/language/nl/custom_fields.rb +61 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field.rb +18 -23
- data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_group.rb +20 -19
- data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_method.rb +1 -3
- data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_type.rb +19 -9
- data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_value.rb +18 -15
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-groups/form.xhtml +18 -18
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-groups/index.xhtml +30 -24
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-types/form.xhtml +15 -10
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-types/index.xhtml +24 -19
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-fields/form.xhtml +18 -13
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-fields/index.xhtml +30 -20
- data/lib/zen/package/extensions/lib/extensions.rb +20 -0
- data/lib/zen/package/extensions/lib/extensions/controller/extensions.rb +41 -0
- data/lib/zen/package/extensions/lib/extensions/language/en/extensions.rb +23 -0
- data/lib/zen/package/extensions/lib/extensions/language/nl/extensions.rb +25 -0
- data/lib/zen/package/extensions/lib/extensions/view/admin/extensions/index.xhtml +86 -0
- data/lib/zen/package/menu.rb +109 -0
- data/lib/zen/package/menus/lib/menus.rb +25 -34
- data/lib/zen/package/menus/lib/menus/controller/menu_items.rb +143 -107
- data/lib/zen/package/menus/lib/menus/controller/menus.rb +166 -115
- data/lib/zen/package/menus/lib/menus/helper/menu.rb +2 -8
- data/lib/zen/package/menus/lib/menus/helper/menu_frontend.rb +114 -0
- data/lib/zen/package/menus/lib/menus/language/en/menu_items.rb +48 -0
- data/lib/zen/package/menus/lib/menus/language/en/menus.rb +48 -0
- data/lib/zen/package/menus/lib/menus/language/nl/menu_items.rb +48 -0
- data/lib/zen/package/menus/lib/menus/language/nl/menus.rb +50 -0
- data/lib/zen/package/menus/lib/menus/model/menu.rb +24 -17
- data/lib/zen/package/menus/lib/menus/model/menu_item.rb +37 -13
- data/lib/zen/package/menus/lib/menus/view/admin/menu-items/form.xhtml +32 -25
- data/lib/zen/package/menus/lib/menus/view/admin/menu-items/index.xhtml +23 -17
- data/lib/zen/package/menus/lib/menus/view/admin/menus/form.xhtml +31 -26
- data/lib/zen/package/menus/lib/menus/view/admin/menus/index.xhtml +20 -22
- data/lib/zen/package/sections/lib/sections.rb +25 -68
- data/lib/zen/package/sections/lib/sections/controller/section_entries.rb +178 -138
- data/lib/zen/package/sections/lib/sections/controller/sections.rb +173 -140
- data/lib/zen/package/sections/lib/sections/helper/section.rb +3 -6
- data/lib/zen/package/sections/lib/sections/helper/section_frontend.rb +146 -0
- data/lib/zen/package/sections/lib/sections/language/en/section_entries.rb +50 -0
- data/lib/zen/package/sections/lib/sections/language/en/sections.rb +55 -0
- data/lib/zen/package/sections/lib/sections/language/nl/section_entries.rb +50 -0
- data/lib/zen/package/sections/lib/sections/language/nl/sections.rb +55 -0
- data/lib/zen/package/sections/lib/sections/model/section.rb +36 -36
- data/lib/zen/package/sections/lib/sections/model/section_entry.rb +52 -59
- data/lib/zen/package/sections/lib/sections/model/section_entry_status.rb +2 -2
- data/lib/zen/package/sections/lib/sections/view/admin/form.xhtml +24 -21
- data/lib/zen/package/sections/lib/sections/view/admin/index.xhtml +24 -26
- data/lib/zen/package/sections/lib/sections/view/admin/section-entries/form.xhtml +33 -31
- data/lib/zen/package/sections/lib/sections/view/admin/section-entries/index.xhtml +24 -25
- data/lib/zen/package/sections/migrations/1308672298_use_id_for_default_section.rb +14 -10
- data/lib/zen/package/sections/migrations/1308813320_section_entry_statuses.rb +12 -6
- data/lib/zen/package/settings/lib/settings.rb +25 -120
- data/lib/zen/package/settings/lib/settings/blue_form_parameters.rb +157 -0
- data/lib/zen/package/settings/lib/settings/controller/settings.rb +94 -69
- data/lib/zen/package/settings/lib/settings/language/en/settings.rb +41 -0
- data/lib/zen/package/settings/lib/settings/language/nl/settings.rb +41 -0
- data/lib/zen/package/settings/lib/settings/model/setting.rb +0 -2
- data/lib/zen/package/settings/lib/settings/setting.rb +379 -0
- data/lib/zen/package/settings/lib/settings/setting_groups.rb +11 -0
- data/lib/zen/package/settings/lib/settings/settings.rb +83 -0
- data/lib/zen/package/settings/lib/settings/settings_group.rb +84 -0
- data/lib/zen/package/settings/lib/settings/singleton_methods.rb +35 -0
- data/lib/zen/package/settings/lib/settings/view/admin/settings/index.xhtml +15 -57
- data/lib/zen/package/settings/migrations/1321197919_remove_unused_columns.rb +17 -0
- data/lib/zen/package/users/lib/users.rb +51 -36
- data/lib/zen/package/users/lib/users/controller/user_groups.rb +133 -98
- data/lib/zen/package/users/lib/users/controller/users.rb +253 -136
- data/lib/zen/package/users/lib/users/helper/access.rb +102 -0
- data/lib/zen/package/users/lib/users/helper/acl.rb +113 -0
- data/lib/zen/package/users/lib/users/helper/users.rb +41 -24
- data/lib/zen/package/users/lib/users/language/en/permissions.rb +16 -0
- data/lib/zen/package/users/lib/users/language/en/user_groups.rb +39 -0
- data/lib/zen/package/users/lib/users/language/en/users.rb +73 -0
- data/lib/zen/package/users/lib/users/language/nl/permissions.rb +16 -0
- data/lib/zen/package/users/lib/users/language/nl/user_groups.rb +41 -0
- data/lib/zen/package/users/lib/users/language/nl/users.rb +74 -0
- data/lib/zen/package/users/lib/users/model/permission.rb +28 -0
- data/lib/zen/package/users/lib/users/model/user.rb +104 -65
- data/lib/zen/package/users/lib/users/model/user_group.rb +28 -24
- data/lib/zen/package/users/lib/users/model/user_status.rb +27 -0
- data/lib/zen/package/users/lib/users/public/admin/css/users/permissions.css +22 -0
- data/lib/zen/package/users/lib/users/public/admin/js/users/permissions.js +33 -0
- data/lib/zen/package/users/lib/users/settings.rb +19 -0
- data/lib/zen/package/users/lib/users/view/admin/user-groups/form.xhtml +58 -28
- data/lib/zen/package/users/lib/users/view/admin/user-groups/index.xhtml +19 -15
- data/lib/zen/package/users/lib/users/view/admin/users/form.xhtml +93 -62
- data/lib/zen/package/users/lib/users/view/admin/users/index.xhtml +23 -36
- data/lib/zen/package/users/lib/users/view/admin/users/login.xhtml +13 -6
- data/lib/zen/package/users/lib/users/view/admin/users/permissions.xhtml +33 -0
- data/lib/zen/package/users/lib/users/view/admin/users/register.xhtml +52 -0
- data/lib/zen/package/users/migrations/1313786058_update_default_date.rb +41 -0
- data/lib/zen/package/users/migrations/1316432327_permissions.rb +36 -0
- data/lib/zen/package/users/migrations/1320272365_status_ids.rb +67 -0
- data/lib/zen/public/admin/css/zen/buttons.css +3 -11
- data/lib/zen/public/admin/css/zen/datepicker.css +23 -13
- data/lib/zen/public/admin/css/zen/editor.css +6 -14
- data/lib/zen/public/admin/css/zen/forms.css +19 -12
- data/lib/zen/public/admin/css/zen/general.css +22 -18
- data/lib/zen/public/admin/css/zen/grid.css +1 -20
- data/lib/zen/public/admin/css/zen/layout.css +26 -11
- data/lib/zen/public/admin/css/zen/messages.css +3 -10
- data/lib/zen/public/admin/css/zen/reset.css +13 -15
- data/lib/zen/public/admin/css/zen/tables.css +8 -10
- data/lib/zen/public/admin/css/zen/tabs.css +2 -10
- data/lib/zen/public/admin/css/zen/window.css +2 -8
- data/lib/zen/public/admin/js/vendor/datepicker.js +540 -240
- data/lib/zen/public/admin/js/vendor/mootools/core.js +273 -283
- data/lib/zen/public/admin/js/vendor/mootools/more.js +131 -136
- data/lib/zen/public/admin/js/zen/index.js +8 -14
- data/lib/zen/public/admin/js/zen/lib/editor.js +36 -33
- data/lib/zen/public/admin/js/zen/lib/editor/markdown.js +0 -6
- data/lib/zen/public/admin/js/zen/lib/editor/textile.js +0 -6
- data/lib/zen/public/admin/js/zen/lib/html_table.js +0 -5
- data/lib/zen/public/admin/js/zen/lib/tabs.js +22 -79
- data/lib/zen/public/admin/js/zen/lib/window.js +12 -22
- data/lib/zen/spec/bacon/color_output.rb +1 -1
- data/lib/zen/spec/helper.rb +6 -11
- data/lib/zen/spec/simplecov.rb +3 -3
- data/lib/zen/task.rb +0 -1
- data/lib/zen/task/build.rake +46 -26
- data/lib/zen/task/clean.rake +14 -7
- data/lib/zen/task/db.rake +31 -29
- data/lib/zen/task/package.rake +19 -23
- data/lib/zen/task/proto.rake +3 -5
- data/lib/zen/task/setup.rake +4 -0
- data/lib/zen/task/test.rake +31 -6
- data/lib/zen/task/theme.rake +13 -19
- data/lib/zen/theme.rb +377 -52
- data/lib/zen/validation.rb +22 -30
- data/lib/zen/version.rb +1 -2
- data/lib/zen/view/bottom.xhtml +9 -1
- data/lib/zen/view/head.xhtml +1 -1
- data/lib/zen/view/main.xhtml +1 -1
- data/lib/zen/view/search.xhtml +9 -0
- data/proto/app/Rakefile +0 -1
- data/proto/app/app.rb +21 -16
- data/proto/app/config/config.rb.erb +41 -0
- data/proto/app/config/{database.rb → database.rb.erb} +17 -14
- data/proto/app/config/middlewares.rb +1 -1
- data/proto/app/theme/default/index.xhtml +25 -0
- data/proto/app/theme/theme.rb +19 -0
- data/proto/app/{log/database/dev → tmp}/.gitkeep +0 -0
- data/proto/migration.rb +3 -5
- data/proto/rack/thin.yml +41 -0
- data/proto/rack/unicorn.rb +38 -0
- data/spec/Rakefile +15 -11
- data/spec/fixtures/zen/helper/controller.rb +13 -0
- data/spec/fixtures/zen/helper/locale.rb +7 -0
- data/spec/fixtures/zen/helper/message.rb +0 -4
- data/spec/fixtures/zen/language.rb +31 -0
- data/spec/fixtures/zen/language/en/spec.rb +11 -0
- data/spec/fixtures/zen/language/nl/spec.rb +11 -0
- data/spec/fixtures/zen/package.rb +0 -10
- data/spec/fixtures/zen/package/categories/helper/category_frontend.rb +16 -0
- data/spec/fixtures/zen/package/comments/helper/comment_frontend.rb +16 -0
- data/spec/fixtures/zen/package/sections/helper/section_frontend.rb +16 -0
- data/spec/fixtures/zen/package/settings/controller/settings.rb +17 -0
- data/spec/fixtures/zen/package/users/helper/access.rb +18 -0
- data/spec/fixtures/zen/package/users/helper/acl.rb +23 -0
- data/spec/fixtures/zen/theme/{default-section → default}/index.xhtml +0 -0
- data/spec/helper.rb +12 -27
- data/{proto/app/log/database/live → spec/public}/.gitkeep +0 -0
- data/spec/zen/controller/admin_controller.rb +5 -6
- data/spec/zen/controller/main_controller.rb +29 -35
- data/spec/zen/controller/preview.rb +9 -10
- data/spec/zen/event.rb +44 -0
- data/spec/zen/helper/breadcrumb.rb +4 -5
- data/spec/zen/helper/controller.rb +21 -0
- data/spec/zen/helper/locale.rb +25 -0
- data/spec/zen/helper/message.rb +4 -11
- data/spec/zen/helper/theme.rb +11 -14
- data/spec/zen/language.rb +48 -22
- data/spec/zen/markup.rb +39 -0
- data/spec/zen/package.rb +48 -11
- data/spec/zen/package/categories/controller/categories.rb +99 -45
- data/spec/zen/package/categories/controller/category_groups.rb +109 -33
- data/spec/zen/package/categories/helper/category.rb +19 -32
- data/spec/zen/package/categories/helper/category_frontend.rb +61 -0
- data/spec/zen/package/comments/anti_spam.rb +50 -0
- data/spec/zen/package/comments/controller/comments.rb +121 -61
- data/spec/zen/package/comments/controller/comments_form.rb +120 -94
- data/spec/zen/package/comments/helper/comment.rb +13 -13
- data/spec/zen/package/comments/helper/comment_frontend.rb +92 -0
- data/spec/zen/package/custom_fields/blue_form_parameters.rb +50 -50
- data/spec/zen/package/custom_fields/controller/custom_field_groups.rb +135 -43
- data/spec/zen/package/custom_fields/controller/custom_field_types.rb +153 -48
- data/spec/zen/package/custom_fields/controller/custom_fields.rb +130 -51
- data/spec/zen/package/custom_fields/helper/custom_field.rb +8 -8
- data/spec/zen/package/extensions/controller/extensions.rb +38 -0
- data/spec/zen/package/menus/controller/menu_items.rb +121 -42
- data/spec/zen/package/menus/controller/menus.rb +125 -38
- data/spec/zen/package/menus/helper/menu.rb +26 -26
- data/spec/zen/package/menus/helper/menu_frontend.rb +104 -0
- data/spec/zen/package/sections/controller/section_entries.rb +145 -89
- data/spec/zen/package/sections/controller/sections.rb +130 -35
- data/spec/zen/package/sections/helper/section.rb +27 -38
- data/spec/zen/package/sections/helper/section_frontend.rb +160 -0
- data/spec/zen/package/settings/controller/settings.rb +73 -8
- data/spec/zen/package/settings/settings.rb +119 -0
- data/spec/zen/package/users/controller/user_groups.rb +134 -34
- data/spec/zen/package/users/controller/users.rb +189 -44
- data/spec/zen/package/users/helper/access.rb +29 -0
- data/spec/zen/package/users/helper/acl.rb +46 -0
- data/spec/zen/package/users/helper/users.rb +20 -64
- data/spec/zen/theme.rb +7 -9
- data/spec/zen/validation.rb +1 -2
- data/zen.gemspec +25 -22
- metadata +303 -222
- data/lib/zen/asset.rb +0 -292
- data/lib/zen/bin/runner.rb +0 -118
- data/lib/zen/error/language_error.rb +0 -10
- data/lib/zen/error/package_error.rb +0 -10
- data/lib/zen/error/plugin_error.rb +0 -10
- data/lib/zen/error/theme_error.rb +0 -10
- data/lib/zen/error/validation_error.rb +0 -10
- data/lib/zen/helper/acl.rb +0 -182
- data/lib/zen/helper/blue_form_vendor.rb +0 -689
- data/lib/zen/language/en/zen_general.yml +0 -25
- data/lib/zen/language/en/zen_models.yml +0 -13
- data/lib/zen/language/nl/zen_general.yml +0 -25
- data/lib/zen/language/nl/zen_models.yml +0 -13
- data/lib/zen/model/settings.rb +0 -78
- data/lib/zen/package/base.rb +0 -62
- data/lib/zen/package/categories/lib/categories/language/en/categories.yml +0 -36
- data/lib/zen/package/categories/lib/categories/language/en/category_groups.yml +0 -34
- data/lib/zen/package/categories/lib/categories/language/nl/categories.yml +0 -40
- data/lib/zen/package/categories/lib/categories/language/nl/category_groups.yml +0 -34
- data/lib/zen/package/categories/lib/categories/plugin/categories.rb +0 -141
- data/lib/zen/package/comments/lib/comments/language/en/comments.yml +0 -48
- data/lib/zen/package/comments/lib/comments/language/nl/comments.yml +0 -50
- data/lib/zen/package/comments/lib/comments/plugin/anti_spam.rb +0 -156
- data/lib/zen/package/comments/lib/comments/plugin/comments.rb +0 -115
- data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_field_groups.yml +0 -33
- data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_field_types.yml +0 -40
- data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_fields.yml +0 -54
- data/lib/zen/package/custom_fields/lib/custom_fields/language/nl/custom_field_groups.yml +0 -33
- data/lib/zen/package/custom_fields/lib/custom_fields/language/nl/custom_field_types.yml +0 -40
- data/lib/zen/package/custom_fields/lib/custom_fields/language/nl/custom_fields.yml +0 -54
- data/lib/zen/package/menus/lib/menus/language/en/menu_items.yml +0 -41
- data/lib/zen/package/menus/lib/menus/language/en/menus.yml +0 -40
- data/lib/zen/package/menus/lib/menus/language/nl/menu_items.yml +0 -41
- data/lib/zen/package/menus/lib/menus/language/nl/menus.yml +0 -40
- data/lib/zen/package/menus/lib/menus/plugin/menus.rb +0 -152
- data/lib/zen/package/sections/lib/sections/language/en/section_entries.yml +0 -44
- data/lib/zen/package/sections/lib/sections/language/en/sections.yml +0 -48
- data/lib/zen/package/sections/lib/sections/language/nl/section_entries.yml +0 -44
- data/lib/zen/package/sections/lib/sections/language/nl/sections.yml +0 -48
- data/lib/zen/package/sections/lib/sections/plugin/section_entries.rb +0 -244
- data/lib/zen/package/sections/lib/sections/plugin/sections.rb +0 -87
- data/lib/zen/package/settings/lib/settings/language/en/settings.yml +0 -36
- data/lib/zen/package/settings/lib/settings/language/nl/settings.yml +0 -37
- data/lib/zen/package/settings/lib/settings/plugin/group_base.rb +0 -39
- data/lib/zen/package/settings/lib/settings/plugin/setting_base.rb +0 -133
- data/lib/zen/package/settings/lib/settings/plugin/settings.rb +0 -251
- data/lib/zen/package/users/lib/users/controller/access_rules.rb +0 -284
- data/lib/zen/package/users/lib/users/language/en/access_rules.yml +0 -38
- data/lib/zen/package/users/lib/users/language/en/user_groups.yml +0 -32
- data/lib/zen/package/users/lib/users/language/en/users.yml +0 -57
- data/lib/zen/package/users/lib/users/language/nl/access_rules.yml +0 -38
- data/lib/zen/package/users/lib/users/language/nl/user_groups.yml +0 -32
- data/lib/zen/package/users/lib/users/language/nl/users.yml +0 -57
- data/lib/zen/package/users/lib/users/model/access_rule.rb +0 -42
- data/lib/zen/package/users/lib/users/public/admin/js/users/access_rules.js +0 -65
- data/lib/zen/package/users/lib/users/public/admin/js/users/lib/access_rules.js +0 -49
- data/lib/zen/package/users/lib/users/view/admin/access-rules/form.xhtml +0 -120
- data/lib/zen/package/users/lib/users/view/admin/access-rules/index.xhtml +0 -102
- data/lib/zen/plugin.rb +0 -182
- data/lib/zen/plugin/base.rb +0 -46
- data/lib/zen/plugin/helper.rb +0 -47
- data/lib/zen/plugin/markup/lib/markup.rb +0 -14
- data/lib/zen/plugin/markup/lib/markup/language/en/markup.yml +0 -6
- data/lib/zen/plugin/markup/lib/markup/markup.rb +0 -165
- data/lib/zen/public/admin/js/zen/lib/asset.js +0 -111
- data/lib/zen/task/plugin.rake +0 -18
- data/lib/zen/theme/base.rb +0 -65
- data/proto/app/config/config.rb +0 -18
- data/spec/fixtures/zen/language/en/spec.yml +0 -10
- data/spec/fixtures/zen/language/nl/spec.yml +0 -7
- data/spec/fixtures/zen/package/settings/plugin/settings.rb +0 -20
- data/spec/zen/asset.rb +0 -97
- data/spec/zen/bin/create.rb +0 -89
- data/spec/zen/bin/runner.rb +0 -47
- data/spec/zen/helper/acl.rb +0 -149
- data/spec/zen/package/categories/plugin/categories.rb +0 -92
- data/spec/zen/package/comments/plugin/anti_spam.rb +0 -59
- data/spec/zen/package/comments/plugin/comments.rb +0 -107
- data/spec/zen/package/menus/plugin/menus.rb +0 -120
- data/spec/zen/package/sections/plugin/section_entries.rb +0 -161
- data/spec/zen/package/sections/plugin/sections.rb +0 -75
- data/spec/zen/package/settings/plugin/settings.rb +0 -33
- data/spec/zen/package/users/controller/access_rules.rb +0 -90
- data/spec/zen/plugin.rb +0 -64
- data/spec/zen/plugin/helper.rb +0 -11
- data/spec/zen/plugin/markup.rb +0 -44
data/lib/zen/package/all.rb
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
# Loads all core packages that ship with Zen. Note that it's important to load
|
|
2
|
-
# these packages in the correct order as otherwise migrations that create
|
|
1
|
+
# Loads all core packages that ship with Zen. Note that it's important to load
|
|
2
|
+
# these packages in the correct order as otherwise migrations that create
|
|
3
3
|
# foreign keys might not work.
|
|
4
|
-
require __DIR__('users/lib/users')
|
|
5
4
|
require __DIR__('settings/lib/settings')
|
|
5
|
+
require __DIR__('users/lib/users')
|
|
6
6
|
require __DIR__('sections/lib/sections')
|
|
7
7
|
require __DIR__('comments/lib/comments')
|
|
8
8
|
require __DIR__('categories/lib/categories')
|
|
9
9
|
require __DIR__('custom_fields/lib/custom_fields')
|
|
10
10
|
require __DIR__('menus/lib/menus')
|
|
11
|
+
require __DIR__('extensions/lib/extensions')
|
|
@@ -1,47 +1,35 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
Zen::Package.add do |p|
|
|
2
|
+
p.name = :categories
|
|
3
|
+
p.title = 'categories.titles.index'
|
|
4
|
+
p.author = 'Yorick Peterse'
|
|
5
|
+
p.url = 'http://zen-cms.com/'
|
|
6
|
+
p.about = 'category_groups.description'
|
|
7
|
+
p.root = __DIR__('categories')
|
|
8
|
+
p.migrations = __DIR__('../migrations')
|
|
3
9
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
10
|
+
p.menu(
|
|
11
|
+
'categories.titles.index',
|
|
12
|
+
'/admin/category-groups',
|
|
13
|
+
:permission => :show_category_group
|
|
14
|
+
)
|
|
9
15
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
16
|
+
p.permission :show_category_group , 'category_groups.permissions.show'
|
|
17
|
+
p.permission :edit_category_group , 'category_groups.permissions.edit'
|
|
18
|
+
p.permission :new_category_group , 'category_groups.permissions.new'
|
|
19
|
+
p.permission :delete_category_group, 'category_groups.permissions.delete'
|
|
14
20
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
p.
|
|
18
|
-
p.
|
|
19
|
-
|
|
20
|
-
p.about = "Module for managing categories. Categories can be used to
|
|
21
|
-
organize section entries."
|
|
21
|
+
p.permission :show_category , 'categories.permissions.show'
|
|
22
|
+
p.permission :edit_category , 'categories.permissions.edit'
|
|
23
|
+
p.permission :new_category , 'categories.permissions.new'
|
|
24
|
+
p.permission :delete_category, 'categories.permissions.delete'
|
|
25
|
+
end
|
|
22
26
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
p.menu = [{
|
|
27
|
-
:title => lang('categories.titles.index'),
|
|
28
|
-
:url => "admin/category-groups"
|
|
29
|
-
}]
|
|
27
|
+
Zen::Language.load('categories')
|
|
28
|
+
Zen::Language.load('category_groups')
|
|
30
29
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
}
|
|
36
|
-
end
|
|
30
|
+
require __DIR__('categories/model/category_group')
|
|
31
|
+
require __DIR__('categories/model/category')
|
|
32
|
+
require __DIR__('categories/controller/category_groups')
|
|
33
|
+
require __DIR__('categories/controller/categories')
|
|
37
34
|
|
|
38
|
-
|
|
39
|
-
Zen::Plugin.add do |p|
|
|
40
|
-
p.name = 'categories'
|
|
41
|
-
p.author = 'Yorick Peterse'
|
|
42
|
-
p.url = 'http://yorickpeterse.com/'
|
|
43
|
-
p.about = 'Plugin that makes it easier to retrieve categories and category
|
|
44
|
-
groups.'
|
|
45
|
-
|
|
46
|
-
p.plugin = Categories::Plugin::Categories
|
|
47
|
-
end
|
|
35
|
+
Zen::Controller::FrontendController.helper(:category_frontend)
|
|
@@ -1,68 +1,107 @@
|
|
|
1
|
-
#:nodoc:
|
|
2
1
|
module Categories
|
|
3
2
|
#:nodoc:
|
|
4
3
|
module Controller
|
|
5
4
|
##
|
|
6
|
-
# Categories
|
|
7
|
-
#
|
|
8
|
-
#
|
|
9
|
-
#
|
|
5
|
+
# Categories are data containers that work similar to tags. Categories can
|
|
6
|
+
# be used to group section entries that share similar topics together. A
|
|
7
|
+
# category is always related to a category group and thus you must first
|
|
8
|
+
# create such a group before you can add individual categories. Read the
|
|
9
|
+
# chapter about {Categories::Controller::CategoryGroups Category groups} for
|
|
10
|
+
# more information.
|
|
11
|
+
#
|
|
12
|
+
# In order to manage categories you must first navigate to the category
|
|
13
|
+
# groups overview. In this overview you can click the link "Manage
|
|
14
|
+
# categories" of a certain group to add, edit or remove categories. Once
|
|
15
|
+
# you've reached the categories overview you'll be presented with an
|
|
16
|
+
# overview that looks like the following image:
|
|
17
|
+
#
|
|
18
|
+
# 
|
|
19
|
+
#
|
|
20
|
+
# ## Adding/Editing Categories
|
|
21
|
+
#
|
|
22
|
+
# Editing a category can be done by clicking on the name of that category.
|
|
23
|
+
# If you want to create a new category instead you should click the button
|
|
24
|
+
# "Add category". In both cases you'll end up with the following form:
|
|
25
|
+
#
|
|
26
|
+
# 
|
|
27
|
+
#
|
|
28
|
+
# In this form you can specify the following fields:
|
|
29
|
+
#
|
|
30
|
+
# * **Name** (required): the name of the category. This name can be anything
|
|
31
|
+
# and there's no restriction to it's format. An example of such a name
|
|
32
|
+
# would be "Code" or "Products".
|
|
33
|
+
# * **Slug**: a URL friendly version of a category name. If no slug is
|
|
34
|
+
# specified one will be generated based on the category name.
|
|
35
|
+
# * **Parent**: the name of the parent category.
|
|
36
|
+
# * **Description**: a description of the category. While not required it
|
|
37
|
+
# can help you remember what the category is meant for in case the name
|
|
38
|
+
# doesn't already make this clear enough.
|
|
39
|
+
#
|
|
40
|
+
# Note that both the name of a category and it's slug can not be longer than
|
|
41
|
+
# 255 characters.
|
|
42
|
+
#
|
|
43
|
+
# ## Used Permissions
|
|
44
|
+
#
|
|
45
|
+
# This controller uses the following permissions:
|
|
46
|
+
#
|
|
47
|
+
# * show_category
|
|
48
|
+
# * edit_category
|
|
49
|
+
# * new_category
|
|
50
|
+
# * delete_category
|
|
51
|
+
#
|
|
52
|
+
# ## Events
|
|
53
|
+
#
|
|
54
|
+
# All available events will receive an instance of
|
|
55
|
+
# {Categories::Model::Category}. Do note that the event
|
|
56
|
+
# ``after_delete_category`` will receive an instance of this model *after*
|
|
57
|
+
# ``#destroy()`` has been invoked on the instance. This means that you can
|
|
58
|
+
# not save any changes made to the object as the database no longer
|
|
59
|
+
# exists.
|
|
60
|
+
#
|
|
61
|
+
# Say you want to notify a user whenever a category is removed you could do
|
|
62
|
+
# the following:
|
|
63
|
+
#
|
|
64
|
+
# # "mail" can be installed by running gem install mail.
|
|
65
|
+
# require 'mail'
|
|
66
|
+
#
|
|
67
|
+
# Zen::Event.listen(:delete_category) do |category|
|
|
68
|
+
# user = Users::Model::User[:name => 'admin']
|
|
69
|
+
# Mail.deliver do
|
|
70
|
+
# from 'example@domain.com'
|
|
71
|
+
# to user.email
|
|
72
|
+
# subject "Category \"#{category.name}\" has been removed"
|
|
73
|
+
# "has been removed from the database."
|
|
74
|
+
# end
|
|
75
|
+
# end
|
|
10
76
|
#
|
|
11
|
-
# @author Yorick Peterse
|
|
12
77
|
# @since 0.1
|
|
78
|
+
# @map /admin/categories
|
|
79
|
+
# @event before_new_category
|
|
80
|
+
# @event after_new_category
|
|
81
|
+
# @event before_edit_category
|
|
82
|
+
# @event after_edit_category
|
|
83
|
+
# @event before_delete_category
|
|
84
|
+
# @event after_delete_category
|
|
13
85
|
#
|
|
14
86
|
class Categories < Zen::Controller::AdminController
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
map '/admin/categories'
|
|
87
|
+
map '/admin/categories'
|
|
18
88
|
helper :category
|
|
89
|
+
title 'categories.titles.%s'
|
|
19
90
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
respond(lang('zen_general.errors.csrf'), 403)
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
##
|
|
27
|
-
# The constructor is used to set various options such as the form URLs and
|
|
28
|
-
# load the language pack for the categories module.
|
|
29
|
-
#
|
|
30
|
-
# The following language files are loaded:
|
|
31
|
-
#
|
|
32
|
-
# * categories
|
|
33
|
-
# * category_groups
|
|
34
|
-
#
|
|
35
|
-
# @author Yorick Peterse
|
|
36
|
-
# @since 0.1
|
|
37
|
-
#
|
|
38
|
-
def initialize
|
|
39
|
-
super
|
|
40
|
-
|
|
41
|
-
Zen::Language.load('categories')
|
|
42
|
-
Zen::Language.load('category_groups')
|
|
43
|
-
|
|
44
|
-
# Set the page title
|
|
45
|
-
if !action.method.nil?
|
|
46
|
-
method = action.method.to_s
|
|
47
|
-
@page_title = lang("categories.titles.#{method}") rescue nil
|
|
48
|
-
end
|
|
49
|
-
end
|
|
91
|
+
# Protect Categories#save() and Categories#delete() against CSRF attacks.
|
|
92
|
+
csrf_protection :save, :delete
|
|
50
93
|
|
|
51
94
|
##
|
|
52
95
|
# Show an overview of all existing categories and allow the user
|
|
53
|
-
#
|
|
54
|
-
#
|
|
55
|
-
# This method requires the following permissions:
|
|
56
|
-
#
|
|
57
|
-
# * read
|
|
96
|
+
# manage these categories.
|
|
58
97
|
#
|
|
59
|
-
# @
|
|
60
|
-
#
|
|
61
|
-
#
|
|
62
|
-
# @
|
|
98
|
+
# @param [Fixnum] category_group_id The ID of the category group for
|
|
99
|
+
# which to retrieve all categories.
|
|
100
|
+
# @since 0.1
|
|
101
|
+
# @permission show_category
|
|
63
102
|
#
|
|
64
103
|
def index(category_group_id)
|
|
65
|
-
|
|
104
|
+
authorize_user!(:show_category)
|
|
66
105
|
|
|
67
106
|
set_breadcrumbs(
|
|
68
107
|
CategoryGroups.a(lang('category_groups.titles.index'), :index),
|
|
@@ -72,37 +111,42 @@ module Categories
|
|
|
72
111
|
# Validate the category group
|
|
73
112
|
category_group = validate_category_group(category_group_id)
|
|
74
113
|
@category_group_id = category_group_id
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
114
|
+
|
|
115
|
+
@categories = search do |query|
|
|
116
|
+
::Categories::Model::Category \
|
|
117
|
+
.search(query) \
|
|
118
|
+
.filter(:category_group_id => category_group_id) \
|
|
119
|
+
.order(:id.asc)
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
@categories ||= ::Categories::Model::Category \
|
|
123
|
+
.filter(:category_group_id => category_group_id) \
|
|
124
|
+
.order(:id.asc)
|
|
78
125
|
|
|
79
126
|
@categories = paginate(@categories)
|
|
80
127
|
end
|
|
81
128
|
|
|
82
129
|
##
|
|
83
|
-
#
|
|
84
|
-
#
|
|
85
|
-
# This method requires the following permissions:
|
|
86
|
-
#
|
|
87
|
-
# * read
|
|
88
|
-
# * update
|
|
130
|
+
# Allows the user to create a new category.
|
|
89
131
|
#
|
|
90
|
-
# @
|
|
91
|
-
# @
|
|
92
|
-
# @
|
|
93
|
-
# @since 0.1
|
|
132
|
+
# @param [Fixnum] category_group_id The ID of the category group.
|
|
133
|
+
# @since 0.1
|
|
134
|
+
# @permission new_category
|
|
94
135
|
#
|
|
95
|
-
def
|
|
96
|
-
|
|
136
|
+
def new(category_group_id)
|
|
137
|
+
authorize_user!(:new_category)
|
|
97
138
|
|
|
98
139
|
set_breadcrumbs(
|
|
99
140
|
CategoryGroups.a(
|
|
100
|
-
lang('category_groups.titles.index'),
|
|
141
|
+
lang('category_groups.titles.index'),
|
|
142
|
+
:index
|
|
101
143
|
),
|
|
102
144
|
Categories.a(
|
|
103
|
-
lang('categories.titles.index'),
|
|
145
|
+
lang('categories.titles.index'),
|
|
146
|
+
:index,
|
|
147
|
+
category_group_id
|
|
104
148
|
),
|
|
105
|
-
lang('categories.titles.
|
|
149
|
+
lang('categories.titles.new')
|
|
106
150
|
)
|
|
107
151
|
|
|
108
152
|
validate_category_group(category_group_id)
|
|
@@ -112,41 +156,45 @@ module Categories
|
|
|
112
156
|
if flash[:form_data]
|
|
113
157
|
@category = flash[:form_data]
|
|
114
158
|
else
|
|
115
|
-
@category =
|
|
159
|
+
@category = ::Categories::Model::Category.new
|
|
116
160
|
end
|
|
117
161
|
|
|
118
162
|
render_view(:form)
|
|
119
163
|
end
|
|
120
164
|
|
|
121
165
|
##
|
|
122
|
-
#
|
|
123
|
-
#
|
|
124
|
-
# This method requires the following permissions:
|
|
125
|
-
#
|
|
126
|
-
# * read
|
|
127
|
-
# * create
|
|
166
|
+
# Edit an existing category based on the ID specified in the URL.
|
|
128
167
|
#
|
|
129
|
-
# @
|
|
130
|
-
# @param
|
|
131
|
-
# @since
|
|
168
|
+
# @param [Fixnum] category_group_id The category group ID.
|
|
169
|
+
# @param [Fixnum] id The ID of the category to edit.
|
|
170
|
+
# @since 0.1
|
|
171
|
+
# @permission edit_category
|
|
132
172
|
#
|
|
133
|
-
def
|
|
134
|
-
|
|
173
|
+
def edit(category_group_id, id)
|
|
174
|
+
authorize_user!(:edit_category)
|
|
135
175
|
|
|
136
176
|
set_breadcrumbs(
|
|
137
177
|
CategoryGroups.a(
|
|
138
|
-
lang('category_groups.titles.index'),
|
|
178
|
+
lang('category_groups.titles.index'),
|
|
179
|
+
:index
|
|
139
180
|
),
|
|
140
181
|
Categories.a(
|
|
141
|
-
lang('categories.titles.index'),
|
|
182
|
+
lang('categories.titles.index'),
|
|
183
|
+
:index,
|
|
184
|
+
category_group_id
|
|
142
185
|
),
|
|
143
|
-
lang('categories.titles.
|
|
186
|
+
lang('categories.titles.edit')
|
|
144
187
|
)
|
|
145
188
|
|
|
146
189
|
validate_category_group(category_group_id)
|
|
147
190
|
|
|
148
191
|
@category_group_id = category_group_id
|
|
149
|
-
|
|
192
|
+
|
|
193
|
+
if flash[:form_data]
|
|
194
|
+
@category = flash[:form_data]
|
|
195
|
+
else
|
|
196
|
+
@category = validate_category(id, category_group_id)
|
|
197
|
+
end
|
|
150
198
|
|
|
151
199
|
render_view(:form)
|
|
152
200
|
end
|
|
@@ -155,16 +203,15 @@ module Categories
|
|
|
155
203
|
# Save the changes made to an existing category or create a new one based
|
|
156
204
|
# on the current POST data.
|
|
157
205
|
#
|
|
158
|
-
#
|
|
159
|
-
#
|
|
160
|
-
#
|
|
161
|
-
#
|
|
162
|
-
#
|
|
163
|
-
# @
|
|
164
|
-
# @
|
|
206
|
+
# @since 0.1
|
|
207
|
+
# @permission edit_category (when editing a category)
|
|
208
|
+
# @permission new_category (when creating a category)
|
|
209
|
+
# @event before_edit_category
|
|
210
|
+
# @event after_edit_category
|
|
211
|
+
# @event before_new_category
|
|
212
|
+
# @event after_new_category
|
|
165
213
|
#
|
|
166
214
|
def save
|
|
167
|
-
# Fetch all the required fields
|
|
168
215
|
post = request.subset(
|
|
169
216
|
:id,
|
|
170
217
|
:parent_id,
|
|
@@ -174,36 +221,40 @@ module Categories
|
|
|
174
221
|
:category_group_id
|
|
175
222
|
)
|
|
176
223
|
|
|
177
|
-
# Validate the category group
|
|
178
224
|
validate_category_group(post['category_group_id'])
|
|
179
225
|
|
|
180
226
|
# Retrieve the category and set the notifications based on if the ID has
|
|
181
227
|
# been specified or not.
|
|
182
228
|
if post['id'] and !post['id'].empty?
|
|
183
|
-
|
|
229
|
+
authorize_user!(:edit_category)
|
|
184
230
|
|
|
185
|
-
category
|
|
186
|
-
save_action
|
|
231
|
+
category = validate_category(post['id'], post['category_group_id'])
|
|
232
|
+
save_action = :save
|
|
233
|
+
before_event = :before_edit_category
|
|
234
|
+
after_event = :after_edit_category
|
|
187
235
|
else
|
|
188
|
-
|
|
236
|
+
authorize_user!(:new_category)
|
|
189
237
|
|
|
190
|
-
category
|
|
191
|
-
save_action
|
|
238
|
+
category = ::Categories::Model::Category.new
|
|
239
|
+
save_action = :new
|
|
240
|
+
before_event = :before_new_category
|
|
241
|
+
after_event = :after_new_category
|
|
192
242
|
end
|
|
193
243
|
|
|
194
|
-
post.delete('slug') if post['slug'].empty?
|
|
195
244
|
post.delete('id')
|
|
196
245
|
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
flash_error = lang("categories.errors.#{save_action}")
|
|
246
|
+
success = lang("categories.success.#{save_action}")
|
|
247
|
+
error = lang("categories.errors.#{save_action}")
|
|
200
248
|
|
|
201
249
|
# Try to update the category
|
|
202
250
|
begin
|
|
203
|
-
category.
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
251
|
+
post.each { |k, v| category.send("#{k}=", v) }
|
|
252
|
+
Zen::Event.call(before_event, category)
|
|
253
|
+
|
|
254
|
+
category.save
|
|
255
|
+
rescue => e
|
|
256
|
+
Ramaze::Log.error(e.inspect)
|
|
257
|
+
message(:error, error)
|
|
207
258
|
|
|
208
259
|
flash[:form_errors] = category.errors
|
|
209
260
|
flash[:form_data] = category
|
|
@@ -211,52 +262,56 @@ module Categories
|
|
|
211
262
|
redirect_referrer
|
|
212
263
|
end
|
|
213
264
|
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
end
|
|
265
|
+
Zen::Event.call(after_event, category)
|
|
266
|
+
|
|
267
|
+
message(:success, success)
|
|
268
|
+
redirect(Categories.r(:edit, category.category_group_id, category.id))
|
|
219
269
|
end
|
|
220
270
|
|
|
221
271
|
##
|
|
222
|
-
# Delete all specified category groups and their categories. In
|
|
223
|
-
#
|
|
224
|
-
#
|
|
225
|
-
#
|
|
226
|
-
#
|
|
227
|
-
# This method requires the following permissions:
|
|
272
|
+
# Delete all specified category groups and their categories. In order to
|
|
273
|
+
# delete a number of groups an array of fields, named "category_group_ids"
|
|
274
|
+
# is required. This array will contain all the primary values of each
|
|
275
|
+
# group that has to be deleted.
|
|
228
276
|
#
|
|
229
|
-
#
|
|
230
|
-
#
|
|
231
|
-
# @
|
|
232
|
-
# @
|
|
277
|
+
# @since 0.1
|
|
278
|
+
# @permission delete_category
|
|
279
|
+
# @event before_delete_category
|
|
280
|
+
# @event after_delete_category
|
|
233
281
|
#
|
|
234
282
|
def delete
|
|
235
|
-
|
|
283
|
+
authorize_user!(:delete_category)
|
|
236
284
|
|
|
237
|
-
post = request.subset(:category_ids
|
|
285
|
+
post = request.subset(:category_ids)
|
|
238
286
|
|
|
239
287
|
# Obviously we'll require some IDs
|
|
240
|
-
if
|
|
241
|
-
or request.params['category_ids'].empty?
|
|
288
|
+
if post['category_ids'].nil? or post['category_ids'].empty?
|
|
242
289
|
message(:error, lang('categories.errors.no_delete'))
|
|
243
|
-
|
|
290
|
+
redirect_referrer
|
|
244
291
|
end
|
|
245
292
|
|
|
246
|
-
#
|
|
293
|
+
# Remove each category and call the event.
|
|
247
294
|
request.params['category_ids'].each do |id|
|
|
295
|
+
category = ::Categories::Model::Category[id]
|
|
296
|
+
|
|
297
|
+
next if category.nil?
|
|
298
|
+
|
|
299
|
+
Zen::Event.call(:before_delete_category, category)
|
|
300
|
+
|
|
248
301
|
begin
|
|
249
|
-
|
|
250
|
-
message(:success, lang('categories.success.delete'))
|
|
302
|
+
category.destroy
|
|
251
303
|
rescue => e
|
|
252
304
|
Ramaze::Log.error(e.inspect)
|
|
253
305
|
message(:error, lang('categories.errors.delete') % id)
|
|
254
306
|
|
|
255
307
|
redirect_referrer
|
|
256
308
|
end
|
|
309
|
+
|
|
310
|
+
Zen::Event.call(:after_delete_category, category)
|
|
257
311
|
end
|
|
258
312
|
|
|
259
|
-
|
|
313
|
+
message(:success, lang('categories.success.delete'))
|
|
314
|
+
redirect_referrer
|
|
260
315
|
end
|
|
261
316
|
end # Categories
|
|
262
317
|
end # Controller
|