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
|
@@ -1,157 +1,224 @@
|
|
|
1
|
-
|
|
1
|
+
##
|
|
2
|
+
# Package for managing categories and category groups.
|
|
3
|
+
#
|
|
4
|
+
# ## Controllers
|
|
5
|
+
#
|
|
6
|
+
# * {Categories::Controller::CategoryGroups}
|
|
7
|
+
# * {Categories::Controller::Categories}
|
|
8
|
+
#
|
|
9
|
+
# ## Helpers
|
|
10
|
+
#
|
|
11
|
+
# * {Ramaze::Helper::Category}
|
|
12
|
+
# * {Ramaze::Helper::CategoryFrontend}
|
|
13
|
+
#
|
|
14
|
+
# ## Models
|
|
15
|
+
#
|
|
16
|
+
# * {Categories::Model::CategoryGroup}
|
|
17
|
+
# * {Categories::Model::Category}
|
|
18
|
+
#
|
|
19
|
+
# @since 0.1
|
|
20
|
+
#
|
|
2
21
|
module Categories
|
|
3
22
|
#:nodoc:
|
|
4
23
|
module Controller
|
|
5
24
|
##
|
|
6
|
-
# Category groups
|
|
7
|
-
#
|
|
8
|
-
#
|
|
9
|
-
# category group
|
|
25
|
+
# Category groups are containers for individual categories. A category group
|
|
26
|
+
# can be assigned to multiple sections and it can have multiple categories.
|
|
27
|
+
#
|
|
28
|
+
# In order to manage a category group you must first go to the overview that
|
|
29
|
+
# shows all existing group (or a message telling you no groups have been
|
|
30
|
+
# added if this is the case). This can be done by clicking the "Categories"
|
|
31
|
+
# button in the top navigation menu or by manually pointing your browser to
|
|
32
|
+
# ``/admin/category-groups``. This overview looks like the image displayed
|
|
33
|
+
# below.
|
|
34
|
+
#
|
|
35
|
+
# 
|
|
36
|
+
#
|
|
37
|
+
# Editing an existing group can be done by clicking on the name of a group
|
|
38
|
+
# while managing the categories of a group is done by clicking the link
|
|
39
|
+
# "Manage Categories" (the text may differ depending on the language you're
|
|
40
|
+
# using). If you want to delete a number of groups all you'd have to do is
|
|
41
|
+
# clicking the checkboxes of each row you'd wish to delete followed by
|
|
42
|
+
# pressing the button "Delete selected groups". This will trigger an action
|
|
43
|
+
# that removes all category groups and the categories that belong to those
|
|
44
|
+
# groups.
|
|
45
|
+
#
|
|
46
|
+
# ## Adding/Editing Groups
|
|
47
|
+
#
|
|
48
|
+
# By clicking the name of a group or the "Add group" button you can edit an
|
|
49
|
+
# existing group or create a new one. The form used to manage such a group
|
|
50
|
+
# looks like the one in the image below.
|
|
51
|
+
#
|
|
52
|
+
# 
|
|
53
|
+
#
|
|
54
|
+
# In this form you can set the following fields:
|
|
55
|
+
#
|
|
56
|
+
# * **Name**: the name of the category group. It can be any name in any
|
|
57
|
+
# format as long as it's not longer than 255 characters.
|
|
58
|
+
# * **Description**: the description of the category group. While not
|
|
59
|
+
# required it can be used to make it easier to remember that purpose a
|
|
60
|
+
# category group has.
|
|
61
|
+
#
|
|
62
|
+
# ## Used Permissions
|
|
63
|
+
#
|
|
64
|
+
# * show_category_group
|
|
65
|
+
# * edit_category_group
|
|
66
|
+
# * new_category_group
|
|
67
|
+
# * delete_category_group
|
|
68
|
+
#
|
|
69
|
+
# ## Events
|
|
70
|
+
#
|
|
71
|
+
# All available events receive an instance of
|
|
72
|
+
# {Categories::Model::CategoyGroup}. However, the
|
|
73
|
+
# ``after_delete_category_group`` event will receive an instance that has
|
|
74
|
+
# already been removed from the database. This means that you can not make
|
|
75
|
+
# changes to the object and call ``#save()``.
|
|
76
|
+
#
|
|
77
|
+
# Example of logging when a new category group is created:
|
|
78
|
+
#
|
|
79
|
+
# Zen::Event.listen(:after_new_category_group) do |group|
|
|
80
|
+
# Ramaze::Log.info("New category: \"#{group.name}\"")
|
|
81
|
+
# end
|
|
82
|
+
#
|
|
83
|
+
# Maybe you want to automatically add a category group to a section:
|
|
84
|
+
#
|
|
85
|
+
# Zen::Event.listen(:after_new_category_group) do |group|
|
|
86
|
+
# section = Sections::Model::Section[5]
|
|
87
|
+
#
|
|
88
|
+
# begin
|
|
89
|
+
# section.add_category_group(group)
|
|
90
|
+
# rescue => e
|
|
91
|
+
# Ramaze::Log.error(e.inspect)
|
|
92
|
+
# end
|
|
93
|
+
# end
|
|
10
94
|
#
|
|
11
|
-
# @author Yorick Peterse
|
|
12
95
|
# @since 0.1
|
|
96
|
+
# @map /admin/category-groups
|
|
97
|
+
# @event before_new_category_group
|
|
98
|
+
# @event after_new_category_group
|
|
99
|
+
# @event before_edit_category_group
|
|
100
|
+
# @event after_edit_category_group
|
|
101
|
+
# @event before_delete_category_group
|
|
102
|
+
# @event after_delete_category_group
|
|
13
103
|
#
|
|
14
104
|
class CategoryGroups < Zen::Controller::AdminController
|
|
15
|
-
include ::Categories::Model
|
|
16
|
-
|
|
17
105
|
helper :category
|
|
18
106
|
map '/admin/category-groups'
|
|
107
|
+
title 'category_groups.titles.%s'
|
|
19
108
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
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
|
-
# * category_groups
|
|
33
|
-
#
|
|
34
|
-
# @author Yorick Peterse
|
|
35
|
-
# @since 0.1
|
|
36
|
-
#
|
|
37
|
-
def initialize
|
|
38
|
-
super
|
|
39
|
-
|
|
40
|
-
Zen::Language.load('category_groups')
|
|
41
|
-
|
|
42
|
-
# Set the page title
|
|
43
|
-
if !action.method.nil?
|
|
44
|
-
method = action.method.to_s
|
|
45
|
-
@page_title = lang("category_groups.titles.#{method}") rescue nil
|
|
46
|
-
end
|
|
47
|
-
end
|
|
109
|
+
# Protects CategoryGroups#save() and CategoryGroups#delete() against CSRF
|
|
110
|
+
# attacks.
|
|
111
|
+
csrf_protection :save, :delete
|
|
48
112
|
|
|
49
113
|
##
|
|
50
114
|
# Show an overview of all existing category groups and allow the user
|
|
51
115
|
# to create new category groups or manage individual categories.
|
|
52
116
|
#
|
|
53
|
-
#
|
|
54
|
-
#
|
|
55
|
-
# * read
|
|
56
|
-
#
|
|
57
|
-
# @author Yorick Peterse
|
|
58
|
-
# @since 0.1
|
|
117
|
+
# @since 0.1
|
|
118
|
+
# @permission show_category_group
|
|
59
119
|
#
|
|
60
120
|
def index
|
|
61
|
-
|
|
121
|
+
authorize_user!(:show_category_group)
|
|
62
122
|
|
|
63
123
|
set_breadcrumbs(lang('category_groups.titles.index'))
|
|
64
124
|
|
|
65
|
-
@category_groups =
|
|
125
|
+
@category_groups = search do |query|
|
|
126
|
+
::Categories::Model::CategoryGroup.search(query).order(:id.asc)
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
@category_groups ||= ::Categories::Model::CategoryGroup.order(:id.asc)
|
|
130
|
+
@category_groups = paginate(@category_groups)
|
|
66
131
|
end
|
|
67
132
|
|
|
68
133
|
##
|
|
69
|
-
#
|
|
70
|
-
# This method requires the following permissions:
|
|
134
|
+
# Allows a user to edit an existing category group.
|
|
71
135
|
#
|
|
72
|
-
#
|
|
73
|
-
#
|
|
74
|
-
#
|
|
75
|
-
# @author Yorick Peterse
|
|
76
|
-
# @since 0.1
|
|
136
|
+
# @since 0.1
|
|
137
|
+
# @param [Fixnum] id The ID of the category group to edit.
|
|
138
|
+
# @permission edit_category_group
|
|
77
139
|
#
|
|
78
140
|
def edit(id)
|
|
79
|
-
|
|
141
|
+
authorize_user!(:edit_category_group)
|
|
80
142
|
|
|
81
143
|
set_breadcrumbs(
|
|
82
144
|
CategoryGroups.a(lang('category_groups.titles.index'), :index),
|
|
83
145
|
lang('category_groups.titles.edit')
|
|
84
146
|
)
|
|
85
147
|
|
|
86
|
-
|
|
87
|
-
@category_group = flash[:form_data]
|
|
88
|
-
else
|
|
89
|
-
@category_group = validate_category_group(id)
|
|
90
|
-
end
|
|
148
|
+
@category_group = flash[:form_data] || validate_category_group(id)
|
|
91
149
|
|
|
92
150
|
render_view(:form)
|
|
93
151
|
end
|
|
94
152
|
|
|
95
153
|
##
|
|
96
|
-
#
|
|
97
|
-
# permissions:
|
|
154
|
+
# Allows the user to add a new category group.
|
|
98
155
|
#
|
|
99
|
-
# * create
|
|
100
|
-
# * read
|
|
101
|
-
#
|
|
102
|
-
# @author Yorick Peterse
|
|
103
156
|
# @since 0.1
|
|
157
|
+
# @permission new_category_group
|
|
104
158
|
#
|
|
105
159
|
def new
|
|
106
|
-
|
|
160
|
+
authorize_user!(:new_category_group)
|
|
107
161
|
|
|
108
162
|
set_breadcrumbs(
|
|
109
163
|
CategoryGroups.a(lang('category_groups.titles.index'), :index),
|
|
110
164
|
lang('category_groups.titles.new')
|
|
111
165
|
)
|
|
112
166
|
|
|
113
|
-
|
|
167
|
+
if flash[:form_data]
|
|
168
|
+
@category_group = flash[:form_data]
|
|
169
|
+
else
|
|
170
|
+
@category_group = ::Categories::Model::CategoryGroup.new
|
|
171
|
+
end
|
|
114
172
|
|
|
115
173
|
render_view(:form)
|
|
116
174
|
end
|
|
117
175
|
|
|
118
176
|
##
|
|
119
|
-
#
|
|
120
|
-
#
|
|
177
|
+
# Creates a new category or updates the data of an existing category. If a
|
|
178
|
+
# category ID is specified (in the POST key "id") that existing category
|
|
179
|
+
# will be updated, otherwise a new one will be created.
|
|
121
180
|
#
|
|
122
|
-
#
|
|
123
|
-
#
|
|
124
|
-
#
|
|
125
|
-
# @
|
|
126
|
-
# @
|
|
181
|
+
# @since 0.1
|
|
182
|
+
# @permission edit_category_group (when editing a group)
|
|
183
|
+
# @permission new_category_group (when creating a group)
|
|
184
|
+
# @event before_new_category_group
|
|
185
|
+
# @event after_new_category_group
|
|
186
|
+
# @event before_edit_category_group
|
|
187
|
+
# @event after_edit_category_group
|
|
127
188
|
#
|
|
128
189
|
def save
|
|
129
190
|
post = request.subset(:id, :name, :description)
|
|
130
191
|
|
|
192
|
+
# Get/create the group and set the event names.
|
|
131
193
|
if post['id'] and !post['id'].empty?
|
|
132
|
-
|
|
194
|
+
authorize_user!(:edit_category_group)
|
|
133
195
|
|
|
134
196
|
category_group = validate_category_group(post['id'])
|
|
135
197
|
save_action = :save
|
|
198
|
+
before_event = :before_edit_category_group
|
|
199
|
+
after_event = :after_edit_category_group
|
|
136
200
|
else
|
|
137
|
-
|
|
201
|
+
authorize_user!(:new_category_group)
|
|
138
202
|
|
|
139
|
-
category_group = CategoryGroup.new
|
|
203
|
+
category_group = ::Categories::Model::CategoryGroup.new
|
|
140
204
|
save_action = :new
|
|
205
|
+
before_event = :before_new_category_group
|
|
206
|
+
after_event = :after_new_category_group
|
|
141
207
|
end
|
|
142
208
|
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
flash_error = lang("category_groups.errors.#{save_action}")
|
|
209
|
+
success = lang("category_groups.success.#{save_action}")
|
|
210
|
+
error = lang("category_groups.errors.#{save_action}")
|
|
146
211
|
|
|
147
212
|
post.delete('id')
|
|
148
213
|
|
|
149
|
-
#
|
|
214
|
+
# Set the values, call the events and try to save the category group.
|
|
150
215
|
begin
|
|
151
|
-
category_group.
|
|
152
|
-
|
|
216
|
+
post.each { |k, v| category_group.send("#{k}=", v) }
|
|
217
|
+
Zen::Event.call(before_event, category_group)
|
|
218
|
+
|
|
219
|
+
category_group.save
|
|
153
220
|
rescue => e
|
|
154
|
-
message(:error,
|
|
221
|
+
message(:error, error)
|
|
155
222
|
Ramaze::Log.error(e.inspect)
|
|
156
223
|
|
|
157
224
|
flash[:form_data] = category_group
|
|
@@ -160,49 +227,52 @@ module Categories
|
|
|
160
227
|
redirect_referrer
|
|
161
228
|
end
|
|
162
229
|
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
end
|
|
230
|
+
Zen::Event.call(after_event, category_group)
|
|
231
|
+
|
|
232
|
+
message(:success, success)
|
|
233
|
+
redirect(CategoryGroups.r(:edit, category_group.id))
|
|
168
234
|
end
|
|
169
235
|
|
|
170
236
|
##
|
|
171
|
-
#
|
|
172
|
-
#
|
|
173
|
-
# "category_group_ids" is required. This array will contain all the
|
|
174
|
-
# primary values of each group that has to be deleted.
|
|
237
|
+
# Deletes a number of category groups. The IDs of these groups should be
|
|
238
|
+
# specified in the POST array "category_group_ids".
|
|
175
239
|
#
|
|
176
|
-
#
|
|
177
|
-
#
|
|
178
|
-
#
|
|
179
|
-
#
|
|
180
|
-
# @author Yorick Peterse
|
|
181
|
-
# @since 0.1
|
|
240
|
+
# @since 0.1
|
|
241
|
+
# @permission delete_category_group
|
|
242
|
+
# @event before_delete_category_group
|
|
243
|
+
# @event after_delete_category_group
|
|
182
244
|
#
|
|
183
245
|
def delete
|
|
184
|
-
|
|
246
|
+
authorize_user!(:delete_category_group)
|
|
185
247
|
|
|
186
248
|
post = request.subset(:category_group_ids)
|
|
187
249
|
|
|
188
|
-
if
|
|
250
|
+
if post['category_group_ids'].nil? or post['category_group_ids'].empty?
|
|
189
251
|
message(:error, lang('category_groups.errors.no_delete'))
|
|
190
252
|
redirect(CategoryGroups.r(:index))
|
|
191
253
|
end
|
|
192
254
|
|
|
193
255
|
post['category_group_ids'].each do |id|
|
|
256
|
+
group = ::Categories::Model::CategoryGroup[id]
|
|
257
|
+
|
|
258
|
+
next if group.nil?
|
|
259
|
+
|
|
260
|
+
Zen::Event.call(:before_delete_category_group, group)
|
|
261
|
+
|
|
194
262
|
begin
|
|
195
|
-
|
|
196
|
-
message(:success, lang('category_groups.success.delete'))
|
|
263
|
+
group.destroy
|
|
197
264
|
rescue => e
|
|
198
265
|
Ramaze::Log.error(e.inspect)
|
|
199
266
|
message(:error, lang('category_groups.errors.delete') % id)
|
|
200
267
|
|
|
201
268
|
redirect_referrer
|
|
202
269
|
end
|
|
270
|
+
|
|
271
|
+
Zen::Event.call(:after_delete_category_group, group)
|
|
203
272
|
end
|
|
204
273
|
|
|
205
|
-
|
|
274
|
+
message(:success, lang('category_groups.success.delete'))
|
|
275
|
+
redirect_referrer
|
|
206
276
|
end
|
|
207
277
|
end # CategoryGroups
|
|
208
278
|
end # Controller
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
#:nodoc:
|
|
2
1
|
module Ramaze
|
|
3
2
|
#:nodoc:
|
|
4
3
|
module Helper
|
|
@@ -6,7 +5,6 @@ module Ramaze
|
|
|
6
5
|
# Helper for the Categories package. Note that this helper requires the
|
|
7
6
|
# helper Ramaze::Helper::Message to be loaded.
|
|
8
7
|
#
|
|
9
|
-
# @author Yorick Peterse
|
|
10
8
|
# @since 0.2.8
|
|
11
9
|
#
|
|
12
10
|
module Category
|
|
@@ -16,10 +14,9 @@ module Ramaze
|
|
|
16
14
|
# returned, otherwise the user is redirected back to the overview of all
|
|
17
15
|
# category groups and is informed about the group being invalid.
|
|
18
16
|
#
|
|
19
|
-
# @author Yorick Peterse
|
|
20
17
|
# @since 0.2.8
|
|
21
18
|
# @param [Fixnum] category_group_id The ID of the category group to
|
|
22
|
-
#
|
|
19
|
+
# validate.
|
|
23
20
|
# @return [Categories::Model::CategoryGroup]
|
|
24
21
|
#
|
|
25
22
|
def validate_category_group(category_group_id)
|
|
@@ -39,11 +36,10 @@ module Ramaze
|
|
|
39
36
|
# is displayed and the user is redirected back to the overview of
|
|
40
37
|
# categories.
|
|
41
38
|
#
|
|
42
|
-
# @author Yorick Peterse
|
|
43
39
|
# @since 0.2.8
|
|
44
40
|
# @param [Fixnum] category_id The ID of the category.
|
|
45
41
|
# @param [Fixnum] category_group_id The ID of the category group, used
|
|
46
|
-
#
|
|
42
|
+
# when redirecting the user.
|
|
47
43
|
# @return [Categories::Model::Category]
|
|
48
44
|
#
|
|
49
45
|
def validate_category(category_id, category_group_id)
|
|
@@ -63,12 +59,11 @@ module Ramaze
|
|
|
63
59
|
# Method that extracts all the possible parent categories for a given
|
|
64
60
|
# category group ID.
|
|
65
61
|
#
|
|
66
|
-
# @author Yorick Peterse
|
|
67
62
|
# @since 0.2.8
|
|
68
63
|
# @param [Fixnum[ category_id The ID of the category, this one will be
|
|
69
|
-
#
|
|
64
|
+
# excluded from the hash.
|
|
70
65
|
# @param [Fixnum] category_group_id The ID of a category group for which
|
|
71
|
-
#
|
|
66
|
+
# to retrieve all the possible parent items.
|
|
72
67
|
# @return [Hash]
|
|
73
68
|
#
|
|
74
69
|
def parent_categories(category_id, category_group_id)
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
module Ramaze
|
|
2
|
+
module Helper
|
|
3
|
+
##
|
|
4
|
+
# Helper that makes it easier to retrieve categories and category groups in
|
|
5
|
+
# your templates.
|
|
6
|
+
#
|
|
7
|
+
# @since 0.3
|
|
8
|
+
#
|
|
9
|
+
module CategoryFrontend
|
|
10
|
+
##
|
|
11
|
+
# Gets a number of categories and optionally paginates them. Keep in mind
|
|
12
|
+
# that this method will either return a dataset or an instance of
|
|
13
|
+
# ``Ramaze::Helper::Paginate::Paginator``.
|
|
14
|
+
#
|
|
15
|
+
# When paginating the results and no custom ``:var`` or ``:limit`` options
|
|
16
|
+
# are given this method will use the ones defined in
|
|
17
|
+
# ``Zen::Controller::FrontendController.ancestral_trait[:paginate]``.
|
|
18
|
+
#
|
|
19
|
+
# @example Looping over a set of categories
|
|
20
|
+
# get_categories('Test Group').each do |category|
|
|
21
|
+
# puts category.name
|
|
22
|
+
# end
|
|
23
|
+
#
|
|
24
|
+
# @example Paginating categories
|
|
25
|
+
# categories = get_categories('Test Group', :paginate => true)
|
|
26
|
+
#
|
|
27
|
+
# unless categories.empty?
|
|
28
|
+
# categories.each do |category|
|
|
29
|
+
# puts category.name
|
|
30
|
+
# end
|
|
31
|
+
# end
|
|
32
|
+
#
|
|
33
|
+
# # Returns the navigation menu for the paginat5ed results.
|
|
34
|
+
# categories.navigation
|
|
35
|
+
#
|
|
36
|
+
# @since 0.3
|
|
37
|
+
# @param [String|Fixnum] group The ID or name of a category group for
|
|
38
|
+
# which to retrieve all categories.
|
|
39
|
+
# @param [Hash] options A hash containing various options to customize
|
|
40
|
+
# the return value.
|
|
41
|
+
# @option options [TrueClass|FalseClass] :paginate When set to true the
|
|
42
|
+
# results will be paginated. Keep in mind that this only works inside
|
|
43
|
+
# an action/template.
|
|
44
|
+
# @option options [String] :var The name of the query string that contains
|
|
45
|
+
# the current page.
|
|
46
|
+
# @option options [Fixnum] :limit The amount of rows to retrieve.
|
|
47
|
+
# @return [Mixed]
|
|
48
|
+
#
|
|
49
|
+
def get_categories(group, options = {})
|
|
50
|
+
trait = Zen::Controller::FrontendController.ancestral_trait[:paginate]
|
|
51
|
+
options = {
|
|
52
|
+
:paginate => false,
|
|
53
|
+
:var => trait[:var],
|
|
54
|
+
:limit => trait[:limit]
|
|
55
|
+
}.merge(options)
|
|
56
|
+
|
|
57
|
+
query = Categories::Model::Category.select_all(:categories)
|
|
58
|
+
query = query.join(
|
|
59
|
+
:category_groups,
|
|
60
|
+
:categories__category_group_id => :category_groups__id
|
|
61
|
+
)
|
|
62
|
+
|
|
63
|
+
if group.is_a?(String)
|
|
64
|
+
query = query.filter(:category_groups__name => group)
|
|
65
|
+
else
|
|
66
|
+
query = query.filter(:category_groups__id => group)
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
# Paginate the results or return the dataset directly.
|
|
70
|
+
if options[:paginate] == true and respond_to?(:paginate)
|
|
71
|
+
return paginate(
|
|
72
|
+
query,
|
|
73
|
+
:var => options[:var],
|
|
74
|
+
:limit => options[:limit]
|
|
75
|
+
)
|
|
76
|
+
else
|
|
77
|
+
if options[:limit]
|
|
78
|
+
query = query.limit(options[:limit])
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
return query
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
end # CategoryFrontend
|
|
85
|
+
end # Helper
|
|
86
|
+
end # Ramaze
|