zen 0.2.8 → 0.3b
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
+
# ![Groups](../../_static/custom_fields/custom_field_groups.png)
|
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
|
+
# ![Edit Group](../../_static/custom_fields/edit_custom_field_group.png)
|
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
|