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
|
@@ -28,7 +28,7 @@ Sequel.migration do
|
|
|
28
28
|
status_id = Zen.database[:comment_statuses].insert({:name => status})
|
|
29
29
|
|
|
30
30
|
comments.each do |comment|
|
|
31
|
-
if comment[:status]
|
|
31
|
+
if comment[:status] == status
|
|
32
32
|
Zen.database[:comments].filter(:id => comment[:id]) \
|
|
33
33
|
.update(:comment_status_id => status_id)
|
|
34
34
|
end
|
|
@@ -45,9 +45,17 @@ Sequel.migration do
|
|
|
45
45
|
statuses[status[:id]] = status[:name]
|
|
46
46
|
end
|
|
47
47
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
48
|
+
alter_table(:comments) do
|
|
49
|
+
# MySQL doesn't automatically drop foreign keys, because of this the one
|
|
50
|
+
# for the comment status ID has to be removed manually. Luckily the name
|
|
51
|
+
# of the foreign key is rather easy to figure out.
|
|
52
|
+
if Zen.database.adapter_scheme.to_s.include?('mysql')
|
|
53
|
+
drop_constraint(:comments_ibfk_2, :type => :foreign_key)
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
drop_column(:comment_status_id)
|
|
57
|
+
add_column(:status, String, :default => 'closed')
|
|
58
|
+
end
|
|
51
59
|
|
|
52
60
|
# Put the old statuses back in place
|
|
53
61
|
comments.each do |comment|
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
Sequel.migration do
|
|
2
|
+
# Updates the database with the changes specified in the block.
|
|
3
|
+
up do
|
|
4
|
+
drop_column(:comments, :defensio_signature)
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
# Reverts the changes made in the up() block.
|
|
8
|
+
down do
|
|
9
|
+
add_column(:comments, :defensio_signature, String)
|
|
10
|
+
end
|
|
11
|
+
end
|
|
@@ -1,56 +1,53 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
Zen::Package.add do |p|
|
|
2
|
+
p.name = :custom_fields
|
|
3
|
+
p.title = 'custom_fields.titles.index'
|
|
4
|
+
p.author = 'Yorick Peterse'
|
|
5
|
+
p.url = 'http://zen-cms.com/'
|
|
6
|
+
p.about = 'custom_fields.description'
|
|
7
|
+
p.root = __DIR__('custom_fields')
|
|
8
|
+
p.migrations = __DIR__('../migrations')
|
|
9
|
+
|
|
10
|
+
p.menu(
|
|
11
|
+
'custom_fields.titles.index',
|
|
12
|
+
'/admin/custom-field-groups',
|
|
13
|
+
:permission => :show_custom_field_group
|
|
14
|
+
) do |sub|
|
|
15
|
+
sub.menu(
|
|
16
|
+
'custom_field_types.titles.index',
|
|
17
|
+
'/admin/custom-field-types',
|
|
18
|
+
:permission => :show_custom_field
|
|
19
|
+
)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
p.permission :show_custom_field_group, 'custom_field_groups.permissions.show'
|
|
23
|
+
p.permission :edit_custom_field_group, 'custom_field_groups.permissions.edit'
|
|
24
|
+
p.permission :new_custom_field_group , 'custom_field_groups.permissions.new'
|
|
25
|
+
p.permission :delete_custom_field_group,
|
|
26
|
+
'custom_field_groups.permissions.delete'
|
|
27
|
+
|
|
28
|
+
p.permission :show_custom_field_type , 'custom_field_types.permissions.show'
|
|
29
|
+
p.permission :edit_custom_field_type , 'custom_field_types.permissions.edit'
|
|
30
|
+
p.permission :new_custom_field_type , 'custom_field_types.permissions.new'
|
|
31
|
+
p.permission :delete_custom_field_type, 'custom_field_types.permissions.delete'
|
|
32
|
+
|
|
33
|
+
p.permission :show_custom_field , 'custom_fields.permissions.show'
|
|
34
|
+
p.permission :edit_custom_field , 'custom_fields.permissions.edit'
|
|
35
|
+
p.permission :new_custom_field , 'custom_fields.permissions.new'
|
|
36
|
+
p.permission :delete_custom_field, 'custom_fields.permissions.delete'
|
|
37
|
+
end
|
|
3
38
|
|
|
4
|
-
|
|
5
|
-
Zen::Language.
|
|
39
|
+
Zen::Language.load('custom_fields')
|
|
40
|
+
Zen::Language.load('custom_field_groups')
|
|
41
|
+
Zen::Language.load('custom_field_types')
|
|
6
42
|
|
|
7
|
-
# Load all models
|
|
8
43
|
require __DIR__('custom_fields/model/custom_field_method')
|
|
9
44
|
require __DIR__('custom_fields/model/custom_field_type')
|
|
10
45
|
require __DIR__('custom_fields/model/custom_field')
|
|
11
46
|
require __DIR__('custom_fields/model/custom_field_group')
|
|
12
47
|
require __DIR__('custom_fields/model/custom_field_value')
|
|
13
48
|
|
|
14
|
-
# Load all controllers
|
|
15
49
|
require __DIR__('custom_fields/controller/custom_field_groups')
|
|
16
50
|
require __DIR__('custom_fields/controller/custom_fields')
|
|
17
51
|
require __DIR__('custom_fields/controller/custom_field_types')
|
|
18
52
|
|
|
19
53
|
require __DIR__('custom_fields/blue_form_parameters')
|
|
20
|
-
|
|
21
|
-
# Load all the language files
|
|
22
|
-
Zen::Language.load('custom_fields')
|
|
23
|
-
Zen::Language.load('custom_field_groups')
|
|
24
|
-
Zen::Language.load('custom_field_types')
|
|
25
|
-
|
|
26
|
-
# Define the package
|
|
27
|
-
Zen::Package.add do |p|
|
|
28
|
-
p.name = 'custom_fields'
|
|
29
|
-
p.author = 'Yorick Peterse'
|
|
30
|
-
p.url = 'http://yorickpeterse.com/'
|
|
31
|
-
p.about = "The Custom Fields module is used to manage custom fields
|
|
32
|
-
and custom field groups."
|
|
33
|
-
|
|
34
|
-
p.directory = __DIR__('custom_fields')
|
|
35
|
-
p.migration_dir = __DIR__('../migrations')
|
|
36
|
-
|
|
37
|
-
p.menu = [{
|
|
38
|
-
:title => lang('custom_fields.titles.index'),
|
|
39
|
-
:url => "admin/custom-field-groups",
|
|
40
|
-
:children => [
|
|
41
|
-
{
|
|
42
|
-
:title => lang('custom_field_types.titles.index'),
|
|
43
|
-
:url => 'admin/custom-field-types'
|
|
44
|
-
}
|
|
45
|
-
]
|
|
46
|
-
}]
|
|
47
|
-
|
|
48
|
-
p.controllers = {
|
|
49
|
-
lang('custom_fields.titles.index') \
|
|
50
|
-
=> CustomFields::Controller::CustomFields,
|
|
51
|
-
lang('custom_field_groups.titles.index') \
|
|
52
|
-
=> CustomFields::Controller::CustomFieldGroups,
|
|
53
|
-
lang('custom_field_types.titles.index') \
|
|
54
|
-
=> CustomFields::Controller::CustomFieldTypes
|
|
55
|
-
}
|
|
56
|
-
end
|
|
@@ -1,10 +1,74 @@
|
|
|
1
|
-
#:nodoc:
|
|
2
1
|
module CustomFields
|
|
3
2
|
##
|
|
4
3
|
# The BlueFormParameters module is used to build an array of parameters for
|
|
5
|
-
# various BlueForm methods based on the type and method of a custom field.
|
|
4
|
+
# various BlueForm methods based on the type and method of a custom field. Out
|
|
5
|
+
# of the box this module provides a set of methods that can be used to
|
|
6
|
+
# generate the parameters for most methods in the BlueForm helper that ships
|
|
7
|
+
# with Ramaze. However, there may be a time when you want to add your own
|
|
8
|
+
# method. Don't worry, this is quite easy.
|
|
9
|
+
#
|
|
10
|
+
# Each method (they should be class methods) in this module takes two
|
|
11
|
+
# parameters, the first one is an instance of
|
|
12
|
+
# {CustomFields::Model::CustomField} and the second one an instance of
|
|
13
|
+
# {CustomFields::Model::CustomFieldValue}. The return value should be an
|
|
14
|
+
# array containing all the parameters that will be passed to BlueForm.
|
|
15
|
+
#
|
|
16
|
+
# Lets start with the basic skeleton of such a method:
|
|
17
|
+
#
|
|
18
|
+
# module CustomFields
|
|
19
|
+
# module BlueFormParameters
|
|
20
|
+
# def self.my_method(field, field_value)
|
|
21
|
+
# params = [:input_text]
|
|
22
|
+
#
|
|
23
|
+
# return params
|
|
24
|
+
# end
|
|
25
|
+
# end
|
|
26
|
+
# end
|
|
27
|
+
#
|
|
28
|
+
# So far the only thing this method does is telling BlueForm that we want to
|
|
29
|
+
# invoke the ``input_text()`` method. Let's add some extra parameters to it
|
|
30
|
+
# such as the label and name:
|
|
31
|
+
#
|
|
32
|
+
# module CustomFields
|
|
33
|
+
# module BlueFormParameters
|
|
34
|
+
# def self.my_method(field, field_value)
|
|
35
|
+
# params = [
|
|
36
|
+
# :input_text,
|
|
37
|
+
# field.label,
|
|
38
|
+
# "custom_field_value_#{field.id}"
|
|
39
|
+
# ]
|
|
40
|
+
#
|
|
41
|
+
# return params
|
|
42
|
+
# end
|
|
43
|
+
# end
|
|
44
|
+
# end
|
|
45
|
+
#
|
|
46
|
+
# The second parameter in this array is the label of the field, the third the
|
|
47
|
+
# name. The names of these fields should be specified in the format of
|
|
48
|
+
# ``custom_field_value_N`` where ``N`` is the ID of the custom field.
|
|
49
|
+
#
|
|
50
|
+
# Let's add our value to the list. BlueForm allows you to specify a hash
|
|
51
|
+
# containing additional parameters (including the value). Adding this hash to
|
|
52
|
+
# the array is as easy as, well, just adding it:
|
|
53
|
+
#
|
|
54
|
+
# module CustomFields
|
|
55
|
+
# module BlueFormParameters
|
|
56
|
+
# def self.my_method(field, field_value)
|
|
57
|
+
# params = [
|
|
58
|
+
# :input_text,
|
|
59
|
+
# field.label,
|
|
60
|
+
# "custom_field_value_#{field.id}",
|
|
61
|
+
# {:value => field_value.value}
|
|
62
|
+
# ]
|
|
63
|
+
#
|
|
64
|
+
# return params
|
|
65
|
+
# end
|
|
66
|
+
# end
|
|
67
|
+
# end
|
|
68
|
+
#
|
|
69
|
+
# And there you have it, a very basic example of how to add custom parameters
|
|
70
|
+
# allowing you to build your own HTML markup for your fields.
|
|
6
71
|
#
|
|
7
|
-
# @author Yorick Peterse
|
|
8
72
|
# @since 0.2.8
|
|
9
73
|
#
|
|
10
74
|
module BlueFormParameters
|
|
@@ -13,12 +77,11 @@ module CustomFields
|
|
|
13
77
|
# Generates the required parameters for
|
|
14
78
|
# Ramaze::Helper::BlueForm::Form#input_text.
|
|
15
79
|
#
|
|
16
|
-
# @author Yorick Peterse
|
|
17
80
|
# @since 0.2.8
|
|
18
81
|
# @param [CustomFields::Model::CustomField] field The custom field to use
|
|
19
|
-
#
|
|
82
|
+
# for filling in classes, values, etc.
|
|
20
83
|
# @param [CustomFields::Model::CustomFieldValue] field_value The
|
|
21
|
-
#
|
|
84
|
+
# value of the custom field for a given entry.
|
|
22
85
|
# @return [Array]
|
|
23
86
|
#
|
|
24
87
|
def input_text(field, field_value)
|
|
@@ -36,11 +99,11 @@ module CustomFields
|
|
|
36
99
|
end
|
|
37
100
|
|
|
38
101
|
if !field.description.nil?
|
|
39
|
-
params.last[:
|
|
102
|
+
params.last[:title] = field.description
|
|
40
103
|
end
|
|
41
104
|
|
|
42
105
|
if !field.format.nil? and !field.format.empty? \
|
|
43
|
-
and type.allow_markup
|
|
106
|
+
and type.allow_markup == true
|
|
44
107
|
params.last[:'data-format'] = field.format
|
|
45
108
|
end
|
|
46
109
|
|
|
@@ -55,7 +118,6 @@ module CustomFields
|
|
|
55
118
|
# Generates the required parameters for
|
|
56
119
|
# Ramaze::Helper::BlueForm::Form#input_password.
|
|
57
120
|
#
|
|
58
|
-
# @author Yorick Peterse
|
|
59
121
|
# @since 0.2.8
|
|
60
122
|
# @see CustomFields::BlueFormParameters.input_text
|
|
61
123
|
#
|
|
@@ -72,7 +134,6 @@ module CustomFields
|
|
|
72
134
|
# Generates the required parameters for
|
|
73
135
|
# Ramaze::Helper::BlueForm::Form#textarea.
|
|
74
136
|
#
|
|
75
|
-
# @author Yorick Peterse
|
|
76
137
|
# @since 0.2.8
|
|
77
138
|
# @see CustomFields::BlueFormParameters.input_text
|
|
78
139
|
#
|
|
@@ -86,7 +147,7 @@ module CustomFields
|
|
|
86
147
|
|
|
87
148
|
# Remove the class "text]editor" if the field does not allow the text
|
|
88
149
|
# editor to be used.
|
|
89
|
-
if field.text_editor
|
|
150
|
+
if field.text_editor == false
|
|
90
151
|
params.last[:class].gsub!('text_editor', '')
|
|
91
152
|
end
|
|
92
153
|
|
|
@@ -97,7 +158,6 @@ module CustomFields
|
|
|
97
158
|
# Generates the required parameters for
|
|
98
159
|
# Ramaze::Helper::BlueForm::Form#input_radio.
|
|
99
160
|
#
|
|
100
|
-
# @author Yorick Peterse
|
|
101
161
|
# @since 0.2.8
|
|
102
162
|
# @see CustomFields::BlueFormParameters.input_text
|
|
103
163
|
#
|
|
@@ -135,7 +195,6 @@ module CustomFields
|
|
|
135
195
|
# Generates the required parameters for
|
|
136
196
|
# Ramaze::Helper::BlueForm::Form#input_checkbox.
|
|
137
197
|
#
|
|
138
|
-
# @author Yorick Peterse
|
|
139
198
|
# @since 0.2.8
|
|
140
199
|
# @see CustomFields::BlueFormParameters.input_radio
|
|
141
200
|
#
|
|
@@ -150,7 +209,6 @@ module CustomFields
|
|
|
150
209
|
# Generates the required parameters for
|
|
151
210
|
# Ramaze::Helper::BlueForm::Form#select.
|
|
152
211
|
#
|
|
153
|
-
# @author Yorick Peterse
|
|
154
212
|
# @since 0.2.8
|
|
155
213
|
# @see CustomFields::BlueFormParameters.input_text
|
|
156
214
|
#
|
|
@@ -188,7 +246,6 @@ module CustomFields
|
|
|
188
246
|
# Ramaze::Helper::BlueForm::Form#select but allows multiple values to be
|
|
189
247
|
# selected.
|
|
190
248
|
#
|
|
191
|
-
# @author Yorick Peterse
|
|
192
249
|
# @since 0.2.8
|
|
193
250
|
# @see CustomFields::BlueFormParameters.select
|
|
194
251
|
#
|
|
@@ -202,8 +259,6 @@ module CustomFields
|
|
|
202
259
|
|
|
203
260
|
return params
|
|
204
261
|
end
|
|
205
|
-
|
|
206
|
-
private
|
|
207
262
|
end # class << self
|
|
208
263
|
end # BlueFormParameters
|
|
209
264
|
end # CustomFields
|
|
@@ -1,196 +1,225 @@
|
|
|
1
|
-
|
|
1
|
+
##
|
|
2
|
+
# Package for managing custom field groups, custom fields and custom field
|
|
3
|
+
# types.
|
|
4
|
+
#
|
|
5
|
+
# ## Controllers
|
|
6
|
+
#
|
|
7
|
+
# * {CustomFields::Controller::CustomFieldGroups}
|
|
8
|
+
# * {CustomFields::Controller::CustomFields}
|
|
9
|
+
# * {CustomFields::Controller::CustomFieldTypes}
|
|
10
|
+
#
|
|
11
|
+
# ## Helpers
|
|
12
|
+
#
|
|
13
|
+
# * {Ramaze::Helper::CustomField}
|
|
14
|
+
#
|
|
15
|
+
# ## Models
|
|
16
|
+
#
|
|
17
|
+
# * {CustomFields::Model::CustomFieldGroup}
|
|
18
|
+
# * {CustomFields::Model::CustomField}
|
|
19
|
+
# * {CustomFields::Model::CustomFieldType}
|
|
20
|
+
# * {CustomFields::Model::CustomFieldMethod}
|
|
21
|
+
# * {CustomFields::Model::CustomFieldValue}
|
|
22
|
+
#
|
|
23
|
+
# ## Generic Modules & Classes
|
|
24
|
+
#
|
|
25
|
+
# * {CustomFields::BlueFormParameters}
|
|
26
|
+
#
|
|
2
27
|
module CustomFields
|
|
3
28
|
#:nodoc:
|
|
4
29
|
module Controller
|
|
5
30
|
##
|
|
6
|
-
#
|
|
7
|
-
#
|
|
8
|
-
#
|
|
31
|
+
# Custom field groups allow you to group various fields into groups which in
|
|
32
|
+
# turn can be assigned to a number of sections. Managing your groups can be
|
|
33
|
+
# done by navigating to ``/admin/custom-field-groups``. If you have any
|
|
34
|
+
# existing groups these will be displayed, otherwise a message telling you
|
|
35
|
+
# that do don't have any groups will be displayed instead.
|
|
9
36
|
#
|
|
10
|
-
#
|
|
11
|
-
#
|
|
37
|
+
# 
|
|
38
|
+
#
|
|
39
|
+
# Just like with other packages you can delete records by clicking the
|
|
40
|
+
# checkboxes followed by the "Delete selected groups" button. Groups can be
|
|
41
|
+
# edited by clicking on the name of a group. If you want to manage the
|
|
42
|
+
# fields of a group you should click on the "Manage custom fields" link.
|
|
43
|
+
#
|
|
44
|
+
# ## Adding/Editing Groups
|
|
45
|
+
#
|
|
46
|
+
# 
|
|
47
|
+
#
|
|
48
|
+
# When creating a new group or editing an existing group you can fill in the
|
|
49
|
+
# following two fields:
|
|
50
|
+
#
|
|
51
|
+
# * **Name** (required): the name of the group, an example of such a name is
|
|
52
|
+
# "General group" or "Meta fields".
|
|
53
|
+
# * **Description**: a description of the group.
|
|
54
|
+
#
|
|
55
|
+
# Note that the length of the group name can not be longer than 255
|
|
56
|
+
# characters.
|
|
57
|
+
#
|
|
58
|
+
# ## Used Permissions
|
|
59
|
+
#
|
|
60
|
+
# * show_custom_field_group
|
|
61
|
+
# * new_custom_field_group
|
|
62
|
+
# * edit_custom_field_group
|
|
63
|
+
# * delete_custom_field_group
|
|
64
|
+
#
|
|
65
|
+
# ## Events
|
|
66
|
+
#
|
|
67
|
+
# All events in this controller receive an instance of
|
|
68
|
+
# {CustomFields::Model::CustomFieldGroup}. The
|
|
69
|
+
# ``after_delete_custom_field_group`` event will receive an instance of this
|
|
70
|
+
# model that has already been destroyed.
|
|
71
|
+
#
|
|
72
|
+
# @since 0.1
|
|
73
|
+
# @map /admin/custom-field-groups
|
|
74
|
+
# @event before_new_custom_field_group
|
|
75
|
+
# @event after_new_custom_field_group
|
|
76
|
+
# @event before_edit_custom_field_group
|
|
77
|
+
# @event after_edit_custom_field_group
|
|
78
|
+
# @event before_delete_custom_field_group
|
|
79
|
+
# @event after_delete_custom_field_group
|
|
12
80
|
#
|
|
13
81
|
class CustomFieldGroups < Zen::Controller::AdminController
|
|
14
|
-
include ::CustomFields::Model
|
|
15
|
-
|
|
16
82
|
helper :custom_field
|
|
17
83
|
map '/admin/custom-field-groups'
|
|
84
|
+
title 'custom_field_groups.titles.%s'
|
|
18
85
|
|
|
19
|
-
|
|
20
|
-
csrf_protection(:save, :delete) do
|
|
21
|
-
respond(lang('zen_general.errors.csrf'), 403)
|
|
22
|
-
end
|
|
23
|
-
end
|
|
86
|
+
csrf_protection :save, :delete
|
|
24
87
|
|
|
25
88
|
##
|
|
26
|
-
#
|
|
27
|
-
#
|
|
89
|
+
# Shows an overview that allows the user to manage existing field groups
|
|
90
|
+
# and create new ones.
|
|
28
91
|
#
|
|
29
|
-
#
|
|
30
|
-
#
|
|
31
|
-
# * custom_field_groups
|
|
32
|
-
#
|
|
33
|
-
# @author Yorick Peterse
|
|
34
|
-
# @since 0.1
|
|
35
|
-
#
|
|
36
|
-
def initialize
|
|
37
|
-
super
|
|
38
|
-
|
|
39
|
-
Zen::Language.load('custom_field_groups')
|
|
40
|
-
|
|
41
|
-
# Set the page title
|
|
42
|
-
if !action.method.nil?
|
|
43
|
-
method = action.method.to_sym
|
|
44
|
-
@page_title = lang("custom_field_groups.titles.#{method}") rescue nil
|
|
45
|
-
end
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
##
|
|
49
|
-
# Show an overview of all existing custom field groups. Using this
|
|
50
|
-
# overview a user can manage an existing field group, delete it or create
|
|
51
|
-
# a new one.
|
|
52
|
-
#
|
|
53
|
-
# This method requires the following permissions:
|
|
54
|
-
#
|
|
55
|
-
# * read
|
|
56
|
-
#
|
|
57
|
-
# @author Yorick Peterse
|
|
58
|
-
# @since 0.1
|
|
92
|
+
# @since 0.1
|
|
93
|
+
# @permission show_custom_field_group
|
|
59
94
|
#
|
|
60
95
|
def index
|
|
61
|
-
|
|
96
|
+
authorize_user!(:show_custom_field_group)
|
|
62
97
|
|
|
63
98
|
set_breadcrumbs(lang('custom_field_groups.titles.index'))
|
|
64
99
|
|
|
65
|
-
@field_groups =
|
|
100
|
+
@field_groups = search do |query|
|
|
101
|
+
::CustomFields::Model::CustomFieldGroup \
|
|
102
|
+
.search(query) \
|
|
103
|
+
.order(:id.asc)
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
@field_groups ||= ::CustomFields::Model::CustomFieldGroup.order(:id.asc)
|
|
107
|
+
@field_groups = paginate(@field_groups)
|
|
66
108
|
end
|
|
67
109
|
|
|
68
110
|
##
|
|
69
111
|
# Show a form that lets the user edit an existing custom field group.
|
|
70
112
|
#
|
|
71
|
-
#
|
|
72
|
-
#
|
|
73
|
-
#
|
|
74
|
-
#
|
|
75
|
-
#
|
|
76
|
-
# @author Yorick Peterse
|
|
77
|
-
# @param [Integer] id The ID of the custom field group to retrieve so
|
|
78
|
-
# that we can edit it.
|
|
79
|
-
# @since 0.1
|
|
113
|
+
# @param [Fixnum] id The ID of the custom field group to retrieve so
|
|
114
|
+
# that we can edit it.
|
|
115
|
+
# @since 0.1
|
|
116
|
+
# @permission edit_custom_field_group
|
|
80
117
|
#
|
|
81
118
|
def edit(id)
|
|
82
|
-
|
|
119
|
+
authorize_user!(:edit_custom_field_group)
|
|
83
120
|
|
|
84
121
|
set_breadcrumbs(
|
|
85
122
|
CustomFieldGroups.a(lang('custom_field_groups.titles.index'), :index),
|
|
86
123
|
@page_title
|
|
87
124
|
)
|
|
88
125
|
|
|
89
|
-
|
|
90
|
-
@field_group = flash[:form_data]
|
|
91
|
-
else
|
|
92
|
-
@field_group = validate_custom_field_group(id)
|
|
93
|
-
end
|
|
126
|
+
@field_group = flash[:form_data] || validate_custom_field_group(id)
|
|
94
127
|
|
|
95
128
|
render_view(:form)
|
|
96
129
|
end
|
|
97
130
|
|
|
98
131
|
##
|
|
99
|
-
#
|
|
132
|
+
# Allows a user to create a new custom field group.
|
|
100
133
|
#
|
|
101
|
-
#
|
|
102
|
-
#
|
|
103
|
-
# * read
|
|
104
|
-
# * create
|
|
105
|
-
#
|
|
106
|
-
# @author Yorick Peterse
|
|
107
|
-
# @since 0.1
|
|
134
|
+
# @since 0.1
|
|
135
|
+
# @permission new_custom_field_group
|
|
108
136
|
#
|
|
109
137
|
def new
|
|
110
|
-
|
|
138
|
+
authorize_user!(:new_custom_field_group)
|
|
111
139
|
|
|
112
140
|
set_breadcrumbs(
|
|
113
141
|
CustomFieldGroups.a(lang('custom_field_groups.titles.index'), :index),
|
|
114
142
|
@page_title
|
|
115
143
|
)
|
|
116
144
|
|
|
117
|
-
|
|
145
|
+
if flash[:form_data]
|
|
146
|
+
@field_group = flash[:form_data]
|
|
147
|
+
else
|
|
148
|
+
@field_group = ::CustomFields::Model::CustomFieldGroup.new
|
|
149
|
+
end
|
|
118
150
|
|
|
119
151
|
render_view(:form)
|
|
120
152
|
end
|
|
121
153
|
|
|
122
154
|
##
|
|
123
|
-
#
|
|
124
|
-
#
|
|
125
|
-
#
|
|
126
|
-
#
|
|
127
|
-
#
|
|
128
|
-
#
|
|
129
|
-
#
|
|
130
|
-
#
|
|
131
|
-
#
|
|
132
|
-
#
|
|
133
|
-
# @
|
|
134
|
-
# @since 0.1
|
|
155
|
+
# Saves or creates a new custom field group. If a valid ID is specified in
|
|
156
|
+
# the POST key "id" an existing row will be updated instead of creating a
|
|
157
|
+
# new one.
|
|
158
|
+
#
|
|
159
|
+
# @since 0.1
|
|
160
|
+
# @permission edit_custom_field_group (when editing a group)
|
|
161
|
+
# @permission new_custom_field_group (when creating a group)
|
|
162
|
+
# @event before_edit_custom_field_group
|
|
163
|
+
# @event after_edit_custom_field_group
|
|
164
|
+
# @event before_new_custom_field_group
|
|
165
|
+
# @event after_new_custom_field_group
|
|
135
166
|
#
|
|
136
167
|
def save
|
|
137
168
|
post = request.subset(:id, :name, :description)
|
|
138
169
|
|
|
139
170
|
if post['id'] and !post['id'].empty?
|
|
140
|
-
|
|
171
|
+
authorize_user!(:edit_custom_field_group)
|
|
141
172
|
|
|
142
|
-
|
|
143
|
-
save_action
|
|
173
|
+
field_group = validate_custom_field_group(post['id'])
|
|
174
|
+
save_action = :save
|
|
175
|
+
before_event = :before_edit_custom_field_group
|
|
176
|
+
after_event = :after_edit_custom_field_group
|
|
144
177
|
else
|
|
145
|
-
|
|
178
|
+
authorize_user!(:new_custom_field_group)
|
|
146
179
|
|
|
147
|
-
|
|
148
|
-
save_action
|
|
180
|
+
field_group = ::CustomFields::Model::CustomFieldGroup.new
|
|
181
|
+
save_action = :new
|
|
182
|
+
before_event = :before_new_custom_field_group
|
|
183
|
+
after_event = :after_new_custom_field_group
|
|
149
184
|
end
|
|
150
185
|
|
|
151
186
|
post.delete('id')
|
|
152
187
|
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
flash_error = lang("custom_field_groups.errors.#{save_action}")
|
|
188
|
+
success = lang("custom_field_groups.success.#{save_action}")
|
|
189
|
+
error = lang("custom_field_groups.errors.#{save_action}")
|
|
156
190
|
|
|
157
191
|
begin
|
|
158
|
-
|
|
159
|
-
|
|
192
|
+
post.each { |k, v| field_group.send("#{k}=", v) }
|
|
193
|
+
Zen::Event.call(before_event, field_group)
|
|
194
|
+
|
|
195
|
+
field_group.save
|
|
160
196
|
rescue => e
|
|
161
197
|
Ramaze::Log.error(e.inspect)
|
|
162
|
-
message(:error,
|
|
198
|
+
message(:error, error)
|
|
163
199
|
|
|
164
|
-
flash[:form_errors] =
|
|
165
|
-
flash[:form_data] =
|
|
200
|
+
flash[:form_errors] = field_group.errors
|
|
201
|
+
flash[:form_data] = field_group
|
|
166
202
|
|
|
167
203
|
redirect_referrer
|
|
168
204
|
end
|
|
169
205
|
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
end
|
|
206
|
+
Zen::Event.call(after_event, field_group)
|
|
207
|
+
|
|
208
|
+
message(:success, success)
|
|
209
|
+
redirect(CustomFieldGroups.r(:edit, field_group.id))
|
|
175
210
|
end
|
|
176
211
|
|
|
177
212
|
##
|
|
178
|
-
# Delete an existing custom field group.
|
|
213
|
+
# Delete an existing custom field group. The IDs of the groups to remove
|
|
214
|
+
# should be specified in a POST array called "custom_field_group_ids".
|
|
179
215
|
#
|
|
180
|
-
#
|
|
181
|
-
#
|
|
182
|
-
#
|
|
183
|
-
#
|
|
184
|
-
#
|
|
185
|
-
# This method requires the following permissions:
|
|
186
|
-
#
|
|
187
|
-
# * delete
|
|
188
|
-
#
|
|
189
|
-
# @author Yorick Peterse
|
|
190
|
-
# @since 0.1
|
|
216
|
+
# @since 0.1
|
|
217
|
+
# @permission delete_custom_field_group
|
|
218
|
+
# @event before_delete_custom_field_group
|
|
219
|
+
# @event after_delete_custom_field_group
|
|
191
220
|
#
|
|
192
221
|
def delete
|
|
193
|
-
|
|
222
|
+
authorize_user!(:delete_custom_field_group)
|
|
194
223
|
|
|
195
224
|
if !request.params['custom_field_group_ids'] \
|
|
196
225
|
or request.params['custom_field_group_ids'].empty?
|
|
@@ -199,17 +228,24 @@ module CustomFields
|
|
|
199
228
|
end
|
|
200
229
|
|
|
201
230
|
request.params['custom_field_group_ids'].each do |id|
|
|
231
|
+
group = ::CustomFields::Model::CustomFieldGroup[id]
|
|
232
|
+
|
|
233
|
+
next if group.nil?
|
|
234
|
+
Zen::Event.call(:before_delete_custom_field_group, group)
|
|
235
|
+
|
|
202
236
|
begin
|
|
203
|
-
|
|
204
|
-
message(:success, lang('custom_field_groups.success.delete'))
|
|
237
|
+
group.destroy
|
|
205
238
|
rescue => e
|
|
206
239
|
Ramaze::Log.error(e.inspect)
|
|
207
240
|
message(:error, lang('custom_field_groups.errors.delete') % id)
|
|
208
241
|
|
|
209
242
|
redirect_referrer
|
|
210
243
|
end
|
|
244
|
+
|
|
245
|
+
Zen::Event.call(:after_delete_custom_field_group, group)
|
|
211
246
|
end
|
|
212
247
|
|
|
248
|
+
message(:success, lang('custom_field_groups.success.delete'))
|
|
213
249
|
redirect_referrer
|
|
214
250
|
end
|
|
215
251
|
end # CustomFieldGroups
|