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,4 +1,3 @@
|
|
|
1
|
-
#:nodoc:
|
|
2
1
|
module Ramaze
|
|
3
2
|
#:nodoc:
|
|
4
3
|
module Helper
|
|
@@ -6,7 +5,6 @@ module Ramaze
|
|
|
6
5
|
# Small helper for the Menus package mainly used to reduce the amount of
|
|
7
6
|
# code in controllers.
|
|
8
7
|
#
|
|
9
|
-
# @author Yorick Peterse
|
|
10
8
|
# @since 0.2a
|
|
11
9
|
#
|
|
12
10
|
module Menu
|
|
@@ -14,11 +12,10 @@ module Ramaze
|
|
|
14
12
|
# Checks if there is a menu for the given ID. If this isn't the case the
|
|
15
13
|
# user will be redirected back to the index page of the menus controller.
|
|
16
14
|
#
|
|
17
|
-
# @author Yorick Peterse
|
|
18
15
|
# @since 0.2a
|
|
19
16
|
# @param [Fixnum] menu_id The ID of the menu to validate.
|
|
20
17
|
# @return [Menus::Model::Menu] The menu that was specified in case it's
|
|
21
|
-
#
|
|
18
|
+
# valid.
|
|
22
19
|
#
|
|
23
20
|
def validate_menu(menu_id)
|
|
24
21
|
menu = ::Menus::Model::Menu[menu_id]
|
|
@@ -34,11 +31,10 @@ module Ramaze
|
|
|
34
31
|
##
|
|
35
32
|
# Validates a menu item and returns it if it's valid.
|
|
36
33
|
#
|
|
37
|
-
# @author Yorick Peterse
|
|
38
34
|
# @since 0.2.8
|
|
39
35
|
# @param [Fixnum] menu_item_id The ID of the menu item to validate.
|
|
40
36
|
# @param [Fixnum] menu_id The ID of the menu the item belongs to, used
|
|
41
|
-
#
|
|
37
|
+
# when redirecting the user.
|
|
42
38
|
# @return [Menus::Model::MenuItem]
|
|
43
39
|
#
|
|
44
40
|
def validate_menu_item(menu_item_id, menu_id)
|
|
@@ -64,7 +60,6 @@ module Ramaze
|
|
|
64
60
|
# |
|
|
65
61
|
# |_ Sub 1
|
|
66
62
|
#
|
|
67
|
-
# @author Yorick Peterse
|
|
68
63
|
# @since 0.2a
|
|
69
64
|
# @param [Fixnum] menu_id The ID of the current menu group.
|
|
70
65
|
# @return [Hash]
|
|
@@ -91,7 +86,6 @@ module Ramaze
|
|
|
91
86
|
##
|
|
92
87
|
# Helper method for retrieving descendant navigation items.
|
|
93
88
|
#
|
|
94
|
-
# @author Yorick Peterse
|
|
95
89
|
# @since 0.2a
|
|
96
90
|
# @param [Menus::Model::MenuItem] item A MenuItem instance
|
|
97
91
|
# @param [Fixnum] spaces The amount of unbreakable spaces to use.
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
require 'ramaze/gestalt'
|
|
2
|
+
|
|
3
|
+
module Ramaze
|
|
4
|
+
module Helper
|
|
5
|
+
##
|
|
6
|
+
# Helper that allows you to render navigation menus in your templates.
|
|
7
|
+
#
|
|
8
|
+
# @since 0.3
|
|
9
|
+
#
|
|
10
|
+
module MenuFrontend
|
|
11
|
+
##
|
|
12
|
+
# Renders a navigation menu's items based on the menu slug or ID.
|
|
13
|
+
#
|
|
14
|
+
# @example Render a menu by it's slug
|
|
15
|
+
# render_menu('main')
|
|
16
|
+
#
|
|
17
|
+
# @example Render a menu by it's ID
|
|
18
|
+
# render_menu(2)
|
|
19
|
+
#
|
|
20
|
+
# @example Render a menu without sub items
|
|
21
|
+
# render_menu('main', :sub => false)
|
|
22
|
+
#
|
|
23
|
+
# @since 0.3
|
|
24
|
+
# @param [String|Fixnum] menu The slug or ID of a menu to render.
|
|
25
|
+
# @param [Hash] options A hash containing various options to customize
|
|
26
|
+
# the return value.
|
|
27
|
+
# @option options [Fixnum] :limit The amount of menu items to display. Set
|
|
28
|
+
# to 20 by default.
|
|
29
|
+
# @option options [TrueClass|FalseClass] :sub Boolean that indicates if
|
|
30
|
+
# sub items should be rendered or not, set to true by default.
|
|
31
|
+
# @option options [Symbol] :order The sort order method to call, can
|
|
32
|
+
# either be ``:asc`` or ``:desc``, set to ``:asc`` by default.
|
|
33
|
+
# @return [String]
|
|
34
|
+
#
|
|
35
|
+
def render_menu(menu, options = {})
|
|
36
|
+
options = {
|
|
37
|
+
:limit => 20,
|
|
38
|
+
:sub => true,
|
|
39
|
+
:order => :asc
|
|
40
|
+
}.merge(options)
|
|
41
|
+
|
|
42
|
+
menu = Menus::Model::Menu.find_by_pk_or_slug(menu)
|
|
43
|
+
items = Menus::Model::MenuItem \
|
|
44
|
+
.filter(:parent_id => nil, :menu_id => menu.id) \
|
|
45
|
+
.limit(options[:limit]) \
|
|
46
|
+
.order(:sort_order.send(options[:order])) \
|
|
47
|
+
.eager(:parent) \
|
|
48
|
+
.all
|
|
49
|
+
|
|
50
|
+
g = Ramaze::Gestalt.new
|
|
51
|
+
attrs = {}
|
|
52
|
+
tree = {}
|
|
53
|
+
|
|
54
|
+
if !menu.html_class.nil? and !menu.html_class.empty?
|
|
55
|
+
attrs[:class] = menu.html_class
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
if !menu.html_id.nil? and !menu.html_id.empty?
|
|
59
|
+
attrs[:id] = menu.html_id
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
# Build the HTML
|
|
63
|
+
g.ul(attrs) do
|
|
64
|
+
items.each do |item|
|
|
65
|
+
if item.parent_id.nil?
|
|
66
|
+
render_menu_item(item, g, options)
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
return g.to_s
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
private
|
|
75
|
+
|
|
76
|
+
##
|
|
77
|
+
# Generates the HTML for a single menu item.
|
|
78
|
+
#
|
|
79
|
+
# @since 0.3
|
|
80
|
+
# @param [Menus::Model::MenuItem] item The menu item to render.
|
|
81
|
+
# @param [Ramaze::Gestalt] g An instance of ``Ramaze::Gestalt`` to use
|
|
82
|
+
# for building the HTML.
|
|
83
|
+
# @param [Hash] options A hash of options, see the options hash for
|
|
84
|
+
# {Ramaze::Helper::MenuFrontend#render_menu} for more information.
|
|
85
|
+
#
|
|
86
|
+
def render_menu_item(item, g, options = {})
|
|
87
|
+
attrs = {}
|
|
88
|
+
|
|
89
|
+
if !item.html_class.nil? and !item.html_class.empty?
|
|
90
|
+
attrs[:class] = item.html_class
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
if !item.html_id.nil? and !item.html_id.empty?
|
|
94
|
+
attrs[:id] = item.html_id
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
g.li(attrs) do
|
|
98
|
+
g.a(:href => item.url, :title => item.name) { item.name }
|
|
99
|
+
|
|
100
|
+
# Render any sub menu items
|
|
101
|
+
if options[:sub] == true
|
|
102
|
+
children = item.children
|
|
103
|
+
|
|
104
|
+
if !children.empty?
|
|
105
|
+
g.ul(:class => :children) do
|
|
106
|
+
children.each { |child| render_menu_item(child, g, options) }
|
|
107
|
+
end
|
|
108
|
+
end
|
|
109
|
+
end
|
|
110
|
+
end
|
|
111
|
+
end
|
|
112
|
+
end # MenuFrontend
|
|
113
|
+
end # Helper
|
|
114
|
+
end # Ramaze
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
Zen::Language::Translation.add do |trans|
|
|
4
|
+
trans.language = 'en'
|
|
5
|
+
trans.name = 'menu_items'
|
|
6
|
+
|
|
7
|
+
trans.translate do |t|
|
|
8
|
+
t['titles.index'] = 'Menu Items'
|
|
9
|
+
t['titles.edit'] = 'Edit Menu Item'
|
|
10
|
+
t['titles.new'] = 'Create Menu Item'
|
|
11
|
+
|
|
12
|
+
t['labels.id'] = '#'
|
|
13
|
+
t['labels.parent_id'] = 'Parent'
|
|
14
|
+
t['labels.name'] = 'Name'
|
|
15
|
+
t['labels.url'] = 'URL'
|
|
16
|
+
t['labels.order'] = 'Order'
|
|
17
|
+
t['labels.html_class'] = 'HTML class'
|
|
18
|
+
t['labels.html_id'] = 'HTML ID'
|
|
19
|
+
|
|
20
|
+
t['descriptions.name'] = 'The text that will be displayed in the link.'
|
|
21
|
+
t['descriptions.url'] = 'The location to which the link will point.'
|
|
22
|
+
t['descriptions.order'] = 'A number that indicates the sort order.'
|
|
23
|
+
t['descriptions.html_id'] = 'Specify an ID to apply to this item.'
|
|
24
|
+
t['descriptions.html_class'] = 'Specify a class name (or multiple names) ' \
|
|
25
|
+
'to apply to this item.'
|
|
26
|
+
|
|
27
|
+
t['messages.no_items'] = 'No menu items were found.'
|
|
28
|
+
|
|
29
|
+
t['buttons.new'] = 'Add menu item'
|
|
30
|
+
t['buttons.save'] = 'Save menu item'
|
|
31
|
+
t['buttons.delete'] = 'Delete selected menu items'
|
|
32
|
+
|
|
33
|
+
t['success.new'] = 'The menu item has been created.'
|
|
34
|
+
t['success.save'] = 'The menu item has been modified.'
|
|
35
|
+
t['success.delete'] = 'The selected menu items have been deleted.'
|
|
36
|
+
|
|
37
|
+
t['errors.new'] = 'The menu item could not be created.'
|
|
38
|
+
t['errors.save'] = 'The menu item could not be modified.'
|
|
39
|
+
t['errors.delete'] = 'The menu item with ID #%s could not be deleted.'
|
|
40
|
+
t['errors.no_delete'] = 'You need to specify at least one item to delete.'
|
|
41
|
+
t['errors.invalid_item'] = 'The specified menu item is invalid.'
|
|
42
|
+
|
|
43
|
+
t['permissions.show'] = 'Show menu item'
|
|
44
|
+
t['permissions.edit'] = 'Edit menu item'
|
|
45
|
+
t['permissions.new'] = 'Add menu item'
|
|
46
|
+
t['permissions.delete'] = 'Delete menu item'
|
|
47
|
+
end
|
|
48
|
+
end
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
Zen::Language::Translation.add do |trans|
|
|
4
|
+
trans.language = 'en'
|
|
5
|
+
trans.name = 'menus'
|
|
6
|
+
|
|
7
|
+
trans.translate do |t|
|
|
8
|
+
t['titles.index'] = 'Menus'
|
|
9
|
+
t['titles.edit'] = 'Edit Menu'
|
|
10
|
+
t['titles.new'] = 'Add Menu'
|
|
11
|
+
|
|
12
|
+
t['labels.id'] = '#'
|
|
13
|
+
t['labels.name'] = 'Name'
|
|
14
|
+
t['labels.slug'] = 'Slug'
|
|
15
|
+
t['labels.description'] = 'Description'
|
|
16
|
+
t['labels.html_class'] = 'HTML class'
|
|
17
|
+
t['labels.html_id'] = 'HTML ID'
|
|
18
|
+
t['labels.manage_items'] = 'Manage menu items'
|
|
19
|
+
|
|
20
|
+
t['descriptions.name'] = 'Specify the name of the menu.'
|
|
21
|
+
t['descriptions.slug'] = 'Specify the URL friendly name of the menu.'
|
|
22
|
+
t['descriptions.html_class'] = 'A number of classes to apply to the menu.'
|
|
23
|
+
t['descriptions.html_id'] = 'An ID to apply to the menu.'
|
|
24
|
+
|
|
25
|
+
t['messages.no_menus'] = 'No menus were found.'
|
|
26
|
+
|
|
27
|
+
t['buttons.new'] = 'Add menu'
|
|
28
|
+
t['buttons.save'] = 'Save menu'
|
|
29
|
+
t['buttons.delete'] = 'Delete selected menus'
|
|
30
|
+
|
|
31
|
+
t['success.new'] = 'The menu has been created.'
|
|
32
|
+
t['success.save'] = 'The menu has been modified.'
|
|
33
|
+
t['success.delete'] = 'The selected menus have been deleted.'
|
|
34
|
+
|
|
35
|
+
t['errors.new'] = 'The menu could not be created.'
|
|
36
|
+
t['errors.save'] = 'The menu could not be modified.'
|
|
37
|
+
t['errors.delete'] = 'The menu with ID #%s could not be deleted.'
|
|
38
|
+
t['errors.no_delete'] = 'You need to specify at least one menu to delete.'
|
|
39
|
+
t['errors.invalid_menu'] = 'The specified menu is invalid.'
|
|
40
|
+
|
|
41
|
+
t['permissions.show'] = 'Show menu'
|
|
42
|
+
t['permissions.edit'] = 'Edit menu'
|
|
43
|
+
t['permissions.new'] = 'Add menu'
|
|
44
|
+
t['permissions.delete'] = 'Delete menu'
|
|
45
|
+
|
|
46
|
+
t['description'] = 'Manage menus and menu items.'
|
|
47
|
+
end
|
|
48
|
+
end
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
Zen::Language::Translation.add do |trans|
|
|
4
|
+
trans.language = 'nl'
|
|
5
|
+
trans.name = 'menu_items'
|
|
6
|
+
|
|
7
|
+
trans.translate do |t|
|
|
8
|
+
t['titles.index'] = 'Menu items'
|
|
9
|
+
t['titles.edit'] = 'Menu item aanpassen'
|
|
10
|
+
t['titles.new'] = 'Menu item aanmaken'
|
|
11
|
+
|
|
12
|
+
t['labels.id'] = '#'
|
|
13
|
+
t['labels.parent_id'] = 'Hoofd item'
|
|
14
|
+
t['labels.name'] = 'Naam'
|
|
15
|
+
t['labels.url'] = 'URL'
|
|
16
|
+
t['labels.order'] = 'Volgorde'
|
|
17
|
+
t['labels.html_class'] = 'HTML klasse'
|
|
18
|
+
t['labels.html_id'] = 'HTML ID'
|
|
19
|
+
|
|
20
|
+
t['descriptions.name'] = 'De naam/label van het menu item.'
|
|
21
|
+
t['descriptions.url'] = 'De URL van het menu item.'
|
|
22
|
+
t['descriptions.order'] = 'De sorteer volgorde.'
|
|
23
|
+
t['descriptions.html_class'] = 'Een of meerdere klasses voor dit item.'
|
|
24
|
+
t['descriptions.html_id'] = 'Een ID voor dit item.'
|
|
25
|
+
|
|
26
|
+
t['messages.no_items'] = 'Er zijn geen menu items gevonden.'
|
|
27
|
+
|
|
28
|
+
t['buttons.new'] = 'Menu item toevoegen'
|
|
29
|
+
t['buttons.save'] = 'Menu item opslaan'
|
|
30
|
+
t['buttons.delete'] = 'Geselecteerde menu items verwijderen'
|
|
31
|
+
|
|
32
|
+
t['success.new'] = 'Het menu item is aangemaakt.'
|
|
33
|
+
t['success.save'] = 'Het menu item is aangepast.'
|
|
34
|
+
t['success.delete'] = 'De menu items zijn verwijderd.'
|
|
35
|
+
|
|
36
|
+
t['errors.new'] = 'Het menu item kon niet worden aangemaakt.'
|
|
37
|
+
t['errors.save'] = 'Het menu item kon niet worden aangepast.'
|
|
38
|
+
t['errors.delete'] = 'Het menu item met ID #%s kon niet worden verwijderd.'
|
|
39
|
+
t['errors.no_delete'] = 'U moet ten minste 1 item specificeren ' \
|
|
40
|
+
'om te verwijderen.'
|
|
41
|
+
t['errors.invalid_item'] = 'Het opgegeven menu item is ongeldig.'
|
|
42
|
+
|
|
43
|
+
t['permissions.show'] = 'Menu item weergeven'
|
|
44
|
+
t['permissions.edit'] = 'Menu item aanpassen'
|
|
45
|
+
t['permissions.new'] = 'Menu item toevoegen'
|
|
46
|
+
t['permissions.delete'] = 'Menu item verwijderen'
|
|
47
|
+
end
|
|
48
|
+
end
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
Zen::Language::Translation.add do |trans|
|
|
4
|
+
trans.language = 'nl'
|
|
5
|
+
trans.name = 'menus'
|
|
6
|
+
|
|
7
|
+
trans.translate do |t|
|
|
8
|
+
t['titles.index'] = 'Menu\'s'
|
|
9
|
+
t['titles.edit'] = 'Menu aanpassen'
|
|
10
|
+
t['titles.new'] = 'Menu aanmaken'
|
|
11
|
+
|
|
12
|
+
t['labels.id'] = '#'
|
|
13
|
+
t['labels.name'] = 'Naam'
|
|
14
|
+
t['labels.slug'] = 'Slug'
|
|
15
|
+
t['labels.description'] = 'Beschrijving'
|
|
16
|
+
t['labels.html_class'] = 'HTML klasse'
|
|
17
|
+
t['labels.html_id'] = 'HTML ID'
|
|
18
|
+
t['labels.manage_items'] = 'Menu items beheren'
|
|
19
|
+
|
|
20
|
+
t['descriptions.name'] = 'De naam van het menu.'
|
|
21
|
+
t['descriptions.slug'] = 'Een URL vriendelijke versie van de ' \
|
|
22
|
+
'menu naam.'
|
|
23
|
+
t['descriptions.html_class'] = 'Een of meerdere klasses voor dit menu.'
|
|
24
|
+
t['descriptions.html_id'] = 'Een ID voor dit menu.'
|
|
25
|
+
|
|
26
|
+
t['messages.no_menus'] = 'Er zijn geen menu\'s gevonden.'
|
|
27
|
+
|
|
28
|
+
t['buttons.new'] = 'Menu toevoegen'
|
|
29
|
+
t['buttons.save'] = 'Menu opslaan'
|
|
30
|
+
t['buttons.delete'] = 'Geselecteerde menu\'s verwijderen'
|
|
31
|
+
|
|
32
|
+
t['success.new'] = 'Het menu is aangemaakt.'
|
|
33
|
+
t['success.save'] = 'Het menu is aangepast.'
|
|
34
|
+
t['success.delete'] = 'De geselecteerde menu\'s zijn verwijderd.'
|
|
35
|
+
|
|
36
|
+
t['errors.new'] = 'Het menu kon niet worden aangemaakt.'
|
|
37
|
+
t['errors.save'] = 'Het menu kon niet worden aangepast.'
|
|
38
|
+
t['errors.delete'] = 'Het menu met ID #%s kon niet worden verwijderd.'
|
|
39
|
+
t['errors.no_delete'] = 'U moet ten minste 1 menu specificeren ' \
|
|
40
|
+
'om te verwijderen.'
|
|
41
|
+
t['errors.invalid_menu'] = 'Het opgegeven menu is ongeldig.'
|
|
42
|
+
|
|
43
|
+
t['description'] = 'Beheren van menu\'s en menu items.'
|
|
44
|
+
|
|
45
|
+
t['permissions.show'] = 'Menu weergeven'
|
|
46
|
+
t['permissions.edit'] = 'Menu aanpassen'
|
|
47
|
+
t['permissions.new'] = 'Menu toevoegen'
|
|
48
|
+
t['permissions.delete'] = 'Menu verwijderen'
|
|
49
|
+
end
|
|
50
|
+
end
|
|
@@ -1,37 +1,44 @@
|
|
|
1
|
-
#:nodoc:
|
|
2
1
|
module Menus
|
|
3
2
|
#:nodoc:
|
|
4
3
|
module Model
|
|
5
4
|
##
|
|
6
|
-
# Model used for managing groups of menu items.
|
|
7
|
-
# following Sequel plugins:
|
|
5
|
+
# Model used for managing groups of menu items.
|
|
8
6
|
#
|
|
9
|
-
# * sluggable
|
|
10
|
-
#
|
|
11
|
-
# @author Yorick Peterse
|
|
12
7
|
# @since 0.2a
|
|
13
8
|
#
|
|
14
9
|
class Menu < Sequel::Model
|
|
10
|
+
include Zen::Model::Helper
|
|
11
|
+
|
|
15
12
|
plugin :sluggable, :source => :name, :freeze => false
|
|
16
13
|
|
|
17
|
-
|
|
18
|
-
|
|
14
|
+
one_to_many :menu_items, :class => 'Menus::Model::MenuItem'
|
|
15
|
+
|
|
16
|
+
##
|
|
17
|
+
# Searches for a set of menus.
|
|
18
|
+
#
|
|
19
|
+
# @since 16-10-2011
|
|
20
|
+
# @param [String] query The search query.
|
|
21
|
+
# @return [Mixed]
|
|
22
|
+
#
|
|
23
|
+
def self.search(query)
|
|
24
|
+
return filter(
|
|
25
|
+
search_column(:name, query) |
|
|
26
|
+
search_column(:html_class, query) |
|
|
27
|
+
search_column(:html_id, query)
|
|
28
|
+
)
|
|
29
|
+
end
|
|
19
30
|
|
|
20
31
|
##
|
|
21
32
|
# Specifies all validates rules used when creating or updating a menu.
|
|
22
|
-
# A slug will be generated when a menu is first created but after that
|
|
23
|
-
# they are required to ensure that they don't collide with existing slugs.
|
|
24
33
|
#
|
|
25
|
-
# @author Yorick Peterse
|
|
26
34
|
# @since 0.2a
|
|
27
35
|
#
|
|
28
36
|
def validate
|
|
29
|
-
validates_presence
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
validates_format(/^[a-zA-Z\-_0-9]*/, [:html_class, :html_id])
|
|
37
|
+
validates_presence(:name)
|
|
38
|
+
validates_unique(:slug)
|
|
39
|
+
validates_max_length(255, [:name, :slug, :html_class, :html_id])
|
|
40
|
+
validates_format(/^[a-zA-Z\-_0-9\s]*$/, :html_class)
|
|
41
|
+
validates_format(/^[a-zA-Z\-_0-9]*$/ , :html_id)
|
|
35
42
|
end
|
|
36
43
|
end # Menu
|
|
37
44
|
end # Model
|
|
@@ -1,36 +1,60 @@
|
|
|
1
|
-
#:nodoc:
|
|
2
1
|
module Menus
|
|
3
2
|
#:nodoc:
|
|
4
3
|
module Model
|
|
5
4
|
##
|
|
6
5
|
# Model used for managing individual menu items in a group.
|
|
7
|
-
# This model uses the following plugins:
|
|
8
6
|
#
|
|
9
|
-
# * tree
|
|
10
|
-
#
|
|
11
|
-
# @author Yorick Peterse
|
|
12
7
|
# @since 0.2a
|
|
13
8
|
#
|
|
14
9
|
class MenuItem < Sequel::Model
|
|
10
|
+
include Zen::Model::Helper
|
|
11
|
+
|
|
15
12
|
plugin :tree, :order => :sort_order
|
|
16
13
|
|
|
17
14
|
many_to_one :menu , :class => 'Menus::Model::Menu'
|
|
18
15
|
many_to_one :parent, :class => self
|
|
19
16
|
|
|
20
17
|
##
|
|
21
|
-
#
|
|
18
|
+
# Searches for a set of menu items.
|
|
19
|
+
#
|
|
20
|
+
# @since 16-10-2011
|
|
21
|
+
# @param [String] query The search query.
|
|
22
|
+
# @return [Mixed]
|
|
23
|
+
#
|
|
24
|
+
def self.search(query)
|
|
25
|
+
return filter(
|
|
26
|
+
search_column(:name, query) |
|
|
27
|
+
search_column(:html_class, query) |
|
|
28
|
+
search_column(:html_id, query)
|
|
29
|
+
)
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
##
|
|
33
|
+
# Specifies all validation rules that will be used when creating or
|
|
22
34
|
# updating a menu item.
|
|
23
35
|
#
|
|
24
|
-
# @author Yorick Peterse
|
|
25
36
|
# @since 0.2a
|
|
26
37
|
#
|
|
27
38
|
def validate
|
|
28
|
-
validates_presence :
|
|
29
|
-
|
|
30
|
-
validates_integer
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
39
|
+
validates_presence([:name, :url])
|
|
40
|
+
validates_max_length(255, [:name, :url, :html_class, :html_id])
|
|
41
|
+
validates_integer([:sort_order, :parent_id])
|
|
42
|
+
validates_format(/^[a-zA-Z\-_0-9\s]*$/, :html_class)
|
|
43
|
+
validates_format(/^[a-zA-Z\-_0-9]*$/ , :html_id)
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
##
|
|
47
|
+
# Sets the ID of the parent navigation item but *only* if it's not empty
|
|
48
|
+
# and not the same as the current ID.
|
|
49
|
+
#
|
|
50
|
+
# @since 0.3
|
|
51
|
+
# @param [Fixnum] parent_id The ID of the parent navigation item.
|
|
52
|
+
#
|
|
53
|
+
def parent_id=(parent_id)
|
|
54
|
+
if !(parent_id.respond_to?(:empty?) and !parent_id.empty?) \
|
|
55
|
+
and parent_id != self.id
|
|
56
|
+
super(parent_id)
|
|
57
|
+
end
|
|
34
58
|
end
|
|
35
59
|
end # MenuItem
|
|
36
60
|
end # Model
|