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,25 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
labels:
|
|
3
|
-
powered_by : 'Powered by'
|
|
4
|
-
view_website : 'View Website'
|
|
5
|
-
logout : 'Logout'
|
|
6
|
-
profile : 'Profile'
|
|
7
|
-
|
|
8
|
-
errors:
|
|
9
|
-
csrf : 'The specified request can not be executed without a valid CSRF token.'
|
|
10
|
-
not_authorized : 'You are not authorized to access the current page.'
|
|
11
|
-
no_templates : 'No templates were found for the given action.'
|
|
12
|
-
no_theme : 'No theme has been specified.'
|
|
13
|
-
invalid_request : 'The request could not be executed as the specified data is incorrect.'
|
|
14
|
-
require_login : 'You need to be logged in in order to view this page.'
|
|
15
|
-
|
|
16
|
-
special:
|
|
17
|
-
format_hash:
|
|
18
|
-
html : 'HTML'
|
|
19
|
-
textile : 'Textile'
|
|
20
|
-
markdown : 'Markdown'
|
|
21
|
-
plain : 'Plain'
|
|
22
|
-
|
|
23
|
-
boolean_hash:
|
|
24
|
-
'true' : 'Yes'
|
|
25
|
-
'false' : 'No'
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
exact_length : 'This field is not exactly %s characters long.'
|
|
3
|
-
format : "This field's format is invalid."
|
|
4
|
-
includes : "This field's value is not in the range or set of %s."
|
|
5
|
-
integer : "This field's value is not an integer."
|
|
6
|
-
length_range : "This field's value is either too long or too short."
|
|
7
|
-
max_length : "This field's value may not be longer than %s characters."
|
|
8
|
-
min_length : "This field's value may not be shorter than %s characters."
|
|
9
|
-
not_string : "This field's value is not a string."
|
|
10
|
-
numeric : "This field's value is not numeric."
|
|
11
|
-
type : "This field's value is not a %s."
|
|
12
|
-
presence : "This field's value is required."
|
|
13
|
-
unique : "This field's value is already taken."
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
labels:
|
|
3
|
-
powered_by : 'Aangedreven door'
|
|
4
|
-
view_website: 'Bekijk website'
|
|
5
|
-
logout : 'Uitloggen'
|
|
6
|
-
profile : 'Profiel'
|
|
7
|
-
|
|
8
|
-
errors:
|
|
9
|
-
csrf : 'De actie kan niet worden uitgevoerd zonder een geldige CSRF token.'
|
|
10
|
-
not_authorized : 'U bent niet toegestaan om de huidige pagina te bekijken.'
|
|
11
|
-
no_templates : 'Er konden geen sjablonen worden gevonden voor de huidige actie.'
|
|
12
|
-
no_theme : 'Er is geen thema ingesteld.'
|
|
13
|
-
invalid_request: 'De actie kon niet worden uitgevoerd omdat de data onjuist is.'
|
|
14
|
-
require_login : 'U moet ingelogd zijn om deze pagina te kunnen bekijken.'
|
|
15
|
-
|
|
16
|
-
special:
|
|
17
|
-
format_hash:
|
|
18
|
-
html : 'HTML'
|
|
19
|
-
textile : 'Textile'
|
|
20
|
-
markdown: 'Markdown'
|
|
21
|
-
plain : 'Platte tekst'
|
|
22
|
-
|
|
23
|
-
boolean_hash:
|
|
24
|
-
'true' : 'Ja'
|
|
25
|
-
'false': 'Nee'
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
exact_length: 'Dit veld bevat niet exact %s karakters.'
|
|
3
|
-
format : 'Het formaat van de waarde van dit veld is onjuist.'
|
|
4
|
-
includes : 'De waarde van dit veld is niet binnen het bereik van %s.'
|
|
5
|
-
integer : 'De waarde van dit veld is niet numeriek.'
|
|
6
|
-
length_range: 'De waarde van dit veld is te lang of te kort.'
|
|
7
|
-
max_length : 'De waarde van dit veld mag niet langer zijn dan %s karakters.'
|
|
8
|
-
min_length : 'De waarde van dit veld mag niet korter zijn dan %s karakters.'
|
|
9
|
-
not_string : 'De waarde van dit veld is geen tekst.'
|
|
10
|
-
numeric : 'De waarde van dit veld is niet numeriek.'
|
|
11
|
-
type : 'De waarde van dit veld is niet het type %s.'
|
|
12
|
-
presence : 'Dit veld is vereist.'
|
|
13
|
-
unique : 'De waarde van dit veld is al in gebruik.'
|
data/lib/zen/model/settings.rb
DELETED
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
Zen::Language.load('zen_models')
|
|
2
|
-
|
|
3
|
-
# When passing a hash to update() or create() we'll ignore any keys that don't
|
|
4
|
-
# belong in the table. This allows you to directly pass request.params to these
|
|
5
|
-
# methods without having to filter the hash yourself.
|
|
6
|
-
Sequel::Model.strict_param_setting = false
|
|
7
|
-
|
|
8
|
-
# Load all the required plugins
|
|
9
|
-
Sequel::Model.plugin :validation_helpers
|
|
10
|
-
Sequel::Model.plugin :association_pks
|
|
11
|
-
|
|
12
|
-
Sequel.extension :migration
|
|
13
|
-
Sequel.extension :pagination
|
|
14
|
-
|
|
15
|
-
Sequel::Plugins::ValidationHelpers::DEFAULT_OPTIONS.merge!(
|
|
16
|
-
{
|
|
17
|
-
:exact_length => {
|
|
18
|
-
:message => lambda do |length|
|
|
19
|
-
lang('zen_models.exact_length') & length
|
|
20
|
-
end
|
|
21
|
-
},
|
|
22
|
-
|
|
23
|
-
:format => {
|
|
24
|
-
:message => lang('zen_models.format')
|
|
25
|
-
},
|
|
26
|
-
|
|
27
|
-
:includes => {
|
|
28
|
-
:message => lambda do |arg|
|
|
29
|
-
lang('zen_models.includes') % arg.inspect
|
|
30
|
-
end,
|
|
31
|
-
:allow_nil => false
|
|
32
|
-
},
|
|
33
|
-
|
|
34
|
-
:integer => {
|
|
35
|
-
:message => lang('zen_models.integer'),
|
|
36
|
-
:allow_nil => true
|
|
37
|
-
},
|
|
38
|
-
|
|
39
|
-
:length_range =>
|
|
40
|
-
{
|
|
41
|
-
:message => lang('zen_models.length_range')
|
|
42
|
-
},
|
|
43
|
-
|
|
44
|
-
:max_length => {
|
|
45
|
-
:message => lambda do |length|
|
|
46
|
-
lang('zen_models.max_length') % length
|
|
47
|
-
end,
|
|
48
|
-
:allow_nil => true
|
|
49
|
-
},
|
|
50
|
-
|
|
51
|
-
:min_length => {
|
|
52
|
-
:message => lambda do |length|
|
|
53
|
-
lang('zen_models.min_length') % length
|
|
54
|
-
end
|
|
55
|
-
},
|
|
56
|
-
|
|
57
|
-
:not_string => {
|
|
58
|
-
:message => lang('zen_models.not_string')
|
|
59
|
-
},
|
|
60
|
-
|
|
61
|
-
:numeric => {
|
|
62
|
-
:message => lang('zen_models.numeric')
|
|
63
|
-
},
|
|
64
|
-
|
|
65
|
-
:type => {
|
|
66
|
-
:message => lambda do |type|
|
|
67
|
-
lang('zen_models.type') % type
|
|
68
|
-
end
|
|
69
|
-
},
|
|
70
|
-
|
|
71
|
-
:presence => {
|
|
72
|
-
:message => lang('zen_models.presence')
|
|
73
|
-
},
|
|
74
|
-
|
|
75
|
-
:unique => {
|
|
76
|
-
:message => lang('zen_models.unique')
|
|
77
|
-
}
|
|
78
|
-
})
|
data/lib/zen/package/base.rb
DELETED
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
#:nodoc:
|
|
2
|
-
module Zen
|
|
3
|
-
#:nodoc:
|
|
4
|
-
module Package
|
|
5
|
-
##
|
|
6
|
-
# Base class used to store the data about packages such as the name,
|
|
7
|
-
# directory, etc.
|
|
8
|
-
#
|
|
9
|
-
# @author Yorick Peterse
|
|
10
|
-
# @since 0.2.5
|
|
11
|
-
#
|
|
12
|
-
class Base
|
|
13
|
-
include ::Zen::Validation
|
|
14
|
-
|
|
15
|
-
# The name of the package
|
|
16
|
-
attr_accessor :name
|
|
17
|
-
|
|
18
|
-
# The author of the package
|
|
19
|
-
attr_accessor :author
|
|
20
|
-
|
|
21
|
-
# A small description about the package
|
|
22
|
-
attr_accessor :about
|
|
23
|
-
|
|
24
|
-
# The URL to the website of the package
|
|
25
|
-
attr_accessor :url
|
|
26
|
-
|
|
27
|
-
# The root directory of the package
|
|
28
|
-
attr_accessor :directory
|
|
29
|
-
|
|
30
|
-
# Array containing the navigation items for the package
|
|
31
|
-
attr_accessor :menu
|
|
32
|
-
|
|
33
|
-
# Path to the directory containing all migrations
|
|
34
|
-
attr_accessor :migration_dir
|
|
35
|
-
|
|
36
|
-
# Array containing all controllers for the package. These classes will be
|
|
37
|
-
# used by the ACL system.
|
|
38
|
-
attr_accessor :controllers
|
|
39
|
-
|
|
40
|
-
##
|
|
41
|
-
# Validates all the attributes.
|
|
42
|
-
#
|
|
43
|
-
# @author Yorick Peterse
|
|
44
|
-
# @since 0.2.5
|
|
45
|
-
#
|
|
46
|
-
def validate
|
|
47
|
-
validates_presence([:name, :author, :about, :directory, :controllers])
|
|
48
|
-
validates_format(:name, /[a-z0-9_\-]+/)
|
|
49
|
-
validates_filepath(:directory)
|
|
50
|
-
|
|
51
|
-
if !migration_dir.nil?
|
|
52
|
-
validates_filepath(:migration_dir)
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
# Check if the package hasn't been registered yet
|
|
56
|
-
if ::Zen::Package::Registered.key?(name.to_sym)
|
|
57
|
-
raise(::Zen::ValidationError, "The package #{name} already exists.")
|
|
58
|
-
end
|
|
59
|
-
end
|
|
60
|
-
end # Base
|
|
61
|
-
end # Package
|
|
62
|
-
end # Zen
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
titles:
|
|
3
|
-
index : 'Categories'
|
|
4
|
-
edit : 'Edit Category'
|
|
5
|
-
new : 'Add Category'
|
|
6
|
-
|
|
7
|
-
labels:
|
|
8
|
-
id : '#'
|
|
9
|
-
name : 'Name'
|
|
10
|
-
description : 'Description'
|
|
11
|
-
parent : 'Parent'
|
|
12
|
-
slug : 'Slug'
|
|
13
|
-
|
|
14
|
-
placeholders:
|
|
15
|
-
name : 'The name of the category.'
|
|
16
|
-
slug : 'A URL friendly name of the category.'
|
|
17
|
-
|
|
18
|
-
messages:
|
|
19
|
-
no_categories : 'No categories have been created yet.'
|
|
20
|
-
|
|
21
|
-
success:
|
|
22
|
-
new : 'The category has been created.'
|
|
23
|
-
save : 'The category has been modified.'
|
|
24
|
-
delete : 'The selected categories have been deleted.'
|
|
25
|
-
|
|
26
|
-
errors:
|
|
27
|
-
new : 'Failed to add a new category.'
|
|
28
|
-
save : 'Failed to save the category.'
|
|
29
|
-
delete : 'Failed to delete the category with ID #%s.'
|
|
30
|
-
no_delete : "You haven't specified any categories to delete."
|
|
31
|
-
invalid_category: 'The specified category is invalid.'
|
|
32
|
-
|
|
33
|
-
buttons:
|
|
34
|
-
new : 'Add Category'
|
|
35
|
-
save : 'Save Category'
|
|
36
|
-
delete : 'Delete selected categories'
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
titles:
|
|
3
|
-
index : 'Category Groups'
|
|
4
|
-
edit : 'Edit Category Group'
|
|
5
|
-
new : 'Add Category Group'
|
|
6
|
-
|
|
7
|
-
labels:
|
|
8
|
-
id : '#'
|
|
9
|
-
name : 'Name'
|
|
10
|
-
description : 'Description'
|
|
11
|
-
manage : 'Manage Categories'
|
|
12
|
-
|
|
13
|
-
placeholders:
|
|
14
|
-
name : 'The name of the category group'
|
|
15
|
-
|
|
16
|
-
messages:
|
|
17
|
-
no_groups : 'No category groups have been created yet.'
|
|
18
|
-
|
|
19
|
-
success:
|
|
20
|
-
new : 'The category group has been created.'
|
|
21
|
-
save : 'The category group has been modified.'
|
|
22
|
-
delete : 'The category group has been deleted.'
|
|
23
|
-
|
|
24
|
-
errors:
|
|
25
|
-
new : 'Failed to add a new category group.'
|
|
26
|
-
save : 'Failed to modify the category group.'
|
|
27
|
-
delete : 'Failed to delete the category group with ID #%s.'
|
|
28
|
-
no_delete : 'You need to specify at least one group to delete.'
|
|
29
|
-
invalid_group: 'The specified category group is invalid.'
|
|
30
|
-
|
|
31
|
-
buttons:
|
|
32
|
-
new : 'Add group'
|
|
33
|
-
save : 'Save group'
|
|
34
|
-
delete : 'Delete selected groups'
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
titles:
|
|
3
|
-
index: 'Categoriën'
|
|
4
|
-
edit : 'Categorie aanpassen'
|
|
5
|
-
new : 'Categorie aanmaken'
|
|
6
|
-
|
|
7
|
-
labels:
|
|
8
|
-
id : '#'
|
|
9
|
-
name : 'Naam'
|
|
10
|
-
description: 'Beschrijving'
|
|
11
|
-
|
|
12
|
-
# TODO: "Ouder" is a rather uncommon translation of the word "parent" when dealing with
|
|
13
|
-
# a hierarchy. It should be replaced with a better word once I find out which one to
|
|
14
|
-
# use.
|
|
15
|
-
parent: 'Ouder'
|
|
16
|
-
slug : 'Slug'
|
|
17
|
-
|
|
18
|
-
placeholders:
|
|
19
|
-
name: 'De naam van de categorie.'
|
|
20
|
-
slug: 'Een URL vriendelijke versie van de naam van de categorie.'
|
|
21
|
-
|
|
22
|
-
messages:
|
|
23
|
-
no_categories: 'Er zijn nog geen categoriën aangemaakt.'
|
|
24
|
-
|
|
25
|
-
success:
|
|
26
|
-
new : 'De categorie is aangemaakt.'
|
|
27
|
-
save : 'De categorie is aangepast.'
|
|
28
|
-
delete: 'De categorie is verwijderd.'
|
|
29
|
-
|
|
30
|
-
errors:
|
|
31
|
-
new : 'De categorie kon niet worden aangemaakt.'
|
|
32
|
-
save : 'De categorie kon niet worden aangepast.'
|
|
33
|
-
delete : 'De categorie met ID #%s kon niet worden verwijderd.'
|
|
34
|
-
no_delete : 'U moet ten minste 1 categorie specificeren om te verwijderen.'
|
|
35
|
-
invalid_category: 'De opgegeven categorie is ongeldig.'
|
|
36
|
-
|
|
37
|
-
buttons:
|
|
38
|
-
new : 'Categorie aanmaken'
|
|
39
|
-
save : 'Categorie opslaan'
|
|
40
|
-
delete: 'Geselecteerde categoriën verwijderen'
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
titles:
|
|
3
|
-
index: 'Categorie groepen'
|
|
4
|
-
edit : 'Categorie groep aanpassen'
|
|
5
|
-
new : 'Categorie groep aanmaken'
|
|
6
|
-
|
|
7
|
-
labels:
|
|
8
|
-
id : '#'
|
|
9
|
-
name : 'Naam'
|
|
10
|
-
description: 'Beschrijving'
|
|
11
|
-
manage : 'Categoriën beheren'
|
|
12
|
-
|
|
13
|
-
placeholders:
|
|
14
|
-
name: 'De naam van de groep.'
|
|
15
|
-
|
|
16
|
-
messages:
|
|
17
|
-
no_groups: 'Er zijn nog geen groepen aangemaakt.'
|
|
18
|
-
|
|
19
|
-
success:
|
|
20
|
-
new : 'De categorie groep is aangemaakt.'
|
|
21
|
-
save : 'De categorie groep is aangepast.'
|
|
22
|
-
delete: 'De categorie groep is verwijderd.'
|
|
23
|
-
|
|
24
|
-
errors:
|
|
25
|
-
new : 'De categorie groep kon niet worden aangemaakt.'
|
|
26
|
-
save : 'De categorie groep kon niet worden aangepast.'
|
|
27
|
-
delete : 'De categorie groep met ID #%s kon niet worden verwijderd.'
|
|
28
|
-
no_delete : 'U moet ten minste 1 groep specificeren om te verwijderen.'
|
|
29
|
-
invalid_group: 'De opgegeven categorie groep is ongeldig.'
|
|
30
|
-
|
|
31
|
-
buttons:
|
|
32
|
-
new : 'Groep aanmaken'
|
|
33
|
-
save : 'Groep opslaan'
|
|
34
|
-
delete: 'Geselecteerde groepen verwijderen'
|
|
@@ -1,141 +0,0 @@
|
|
|
1
|
-
#:nodoc
|
|
2
|
-
module Categories
|
|
3
|
-
#:nodoc
|
|
4
|
-
module Plugin
|
|
5
|
-
##
|
|
6
|
-
# The Categories plugin can be used to display a list of categories
|
|
7
|
-
#
|
|
8
|
-
# ## Usage
|
|
9
|
-
#
|
|
10
|
-
# A basic example of how to use this plugin looks like the following:
|
|
11
|
-
#
|
|
12
|
-
# plugin(:categories, :group => 'blog').each do |category|
|
|
13
|
-
# puts category[:name]
|
|
14
|
-
# end
|
|
15
|
-
#
|
|
16
|
-
# For more information about the available options see
|
|
17
|
-
# Zen::Plugin::Categories#initialize().
|
|
18
|
-
#
|
|
19
|
-
# @author Yorick Peterse
|
|
20
|
-
# @since 0.2.5
|
|
21
|
-
#
|
|
22
|
-
class Categories
|
|
23
|
-
include ::Categories::Model
|
|
24
|
-
include ::Zen::Plugin::Helper
|
|
25
|
-
|
|
26
|
-
##
|
|
27
|
-
# Creates a new instance of the plugin and stores the configuration
|
|
28
|
-
# options.
|
|
29
|
-
#
|
|
30
|
-
# @author Yorick Peterse
|
|
31
|
-
# @since 0.2.5
|
|
32
|
-
# @param [Hash] options Hash containing a set of options used to
|
|
33
|
-
# determine how the categories should be retrieved and which one should
|
|
34
|
-
# be retrieved.
|
|
35
|
-
# @option options [Integer] :limit The maximum amount of categories to
|
|
36
|
-
# retrieve.
|
|
37
|
-
# @option options [Integer] :offset The row offset, useful for pagination
|
|
38
|
-
# systems.
|
|
39
|
-
# @option options [String/Integer] :group The name or ID of the category
|
|
40
|
-
# group for which to retrieve all categories.
|
|
41
|
-
# @option options [String/Integer] :category The slug or ID of the
|
|
42
|
-
# category to retrieve. Setting this option will cause the plugin to
|
|
43
|
-
# ignore the offset and limit options.
|
|
44
|
-
#
|
|
45
|
-
def initialize(options = {})
|
|
46
|
-
@options = {
|
|
47
|
-
:limit => 20,
|
|
48
|
-
:offset => 0,
|
|
49
|
-
:group => nil,
|
|
50
|
-
:category => nil
|
|
51
|
-
}.merge(options)
|
|
52
|
-
|
|
53
|
-
# Validate the specified options
|
|
54
|
-
if @options[:group].nil? and @options[:category].nil?
|
|
55
|
-
raise(
|
|
56
|
-
ArgumentError,
|
|
57
|
-
"You need to specify either a category or category group."
|
|
58
|
-
)
|
|
59
|
-
end
|
|
60
|
-
|
|
61
|
-
if !@options[:group].nil? and !@options[:category].nil?
|
|
62
|
-
raise(
|
|
63
|
-
ArgumentError,
|
|
64
|
-
"You can't specify both a category and a category group."
|
|
65
|
-
)
|
|
66
|
-
end
|
|
67
|
-
|
|
68
|
-
group_class = @options[:group].class
|
|
69
|
-
cat_class = @options[:category].class
|
|
70
|
-
allowed = [Integer, String, Fixnum]
|
|
71
|
-
|
|
72
|
-
# Validate the types
|
|
73
|
-
if !@options[:group].nil?
|
|
74
|
-
validate_type(@options[:group], :group, allowed)
|
|
75
|
-
end
|
|
76
|
-
|
|
77
|
-
if !@options[:category].nil?
|
|
78
|
-
validate_type(@options[:category], :category, allowed)
|
|
79
|
-
end
|
|
80
|
-
|
|
81
|
-
validate_type(@options[:limit] , :limit , [Fixnum, Integer])
|
|
82
|
-
validate_type(@options[:offset], :offset, [Fixnum, Integer])
|
|
83
|
-
end
|
|
84
|
-
|
|
85
|
-
##
|
|
86
|
-
# Retrieves all categories based on the given configuration options.
|
|
87
|
-
#
|
|
88
|
-
# @author Yorick Peterse
|
|
89
|
-
# @since 0.2.5
|
|
90
|
-
# @return [Array] A list of all categories.
|
|
91
|
-
#
|
|
92
|
-
def call
|
|
93
|
-
categories = []
|
|
94
|
-
|
|
95
|
-
# Retrieve the categories for a given group]]
|
|
96
|
-
if !@options[:group].nil?
|
|
97
|
-
# Get the group for an ID or a name
|
|
98
|
-
if @options[:group].class == Integer \
|
|
99
|
-
or @options[:group].class == Fixnum
|
|
100
|
-
category_group = CategoryGroup[@options[:group]]
|
|
101
|
-
else
|
|
102
|
-
category_group = CategoryGroup[:name => @options[:group]]
|
|
103
|
-
end
|
|
104
|
-
|
|
105
|
-
# Since we require a group in this case we'll raise an error if the
|
|
106
|
-
# group doesn't exist. If we were to return an empty value this may
|
|
107
|
-
# confuse the developer.
|
|
108
|
-
if category_group.nil?
|
|
109
|
-
raise("No category group could be found for \"#{@options[:group]}\"")
|
|
110
|
-
end
|
|
111
|
-
|
|
112
|
-
# Get all the categories according to our specified configuration
|
|
113
|
-
# options and the category group that was retrieved earlier on.
|
|
114
|
-
categories = Category.filter(:category_group_id => category_group.id) \
|
|
115
|
-
.limit(@options[:limit], @options[:offset]) \
|
|
116
|
-
.all
|
|
117
|
-
|
|
118
|
-
# Retrieve the category for the specified ID or slug
|
|
119
|
-
else
|
|
120
|
-
if @options[:category].class == Integer \
|
|
121
|
-
or @options[:category].class == Fixnum
|
|
122
|
-
categories = Category[@options[:category]]
|
|
123
|
-
else
|
|
124
|
-
categories = Category[:slug => @options[:category]]
|
|
125
|
-
end
|
|
126
|
-
end
|
|
127
|
-
|
|
128
|
-
# Convert all categories to a hash
|
|
129
|
-
if categories.class == Array
|
|
130
|
-
categories.each_with_index do |cat, index|
|
|
131
|
-
categories[index] = cat.values
|
|
132
|
-
end
|
|
133
|
-
else
|
|
134
|
-
categories = categories.values
|
|
135
|
-
end
|
|
136
|
-
|
|
137
|
-
return categories
|
|
138
|
-
end
|
|
139
|
-
end # Categories
|
|
140
|
-
end # Plugin
|
|
141
|
-
end # Categories
|