zen 0.3 → 0.4
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 +3 -2
- data/.rvmrc +1 -1
- data/.travis.yml +5 -0
- data/.yardopts +2 -1
- data/LICENSE +1 -1
- data/README.md +28 -24
- data/Rakefile +5 -2
- data/guide/asset_management.md +6 -6
- data/guide/autosaving_forms.md +42 -0
- data/guide/changelog.md +41 -0
- data/guide/faq.md +49 -0
- data/guide/getting_started.md +24 -13
- data/guide/hacking.md +40 -9
- data/guide/images/categories/categories.png +0 -0
- data/guide/images/categories/category_groups.png +0 -0
- data/guide/images/categories/new_category.png +0 -0
- data/guide/images/categories/new_category_group.png +0 -0
- data/guide/images/comments/comments.png +0 -0
- data/guide/images/comments/edit_comment.png +0 -0
- data/guide/images/custom_fields/custom_field_groups.png +0 -0
- data/guide/images/custom_fields/custom_field_types.png +0 -0
- data/guide/images/custom_fields/custom_fields.png +0 -0
- data/guide/images/custom_fields/edit_custom_field_general.png +0 -0
- data/guide/images/custom_fields/edit_custom_field_group.png +0 -0
- data/guide/images/custom_fields/edit_custom_field_settings.png +0 -0
- data/guide/images/custom_fields/edit_custom_field_type.png +0 -0
- data/guide/images/dashboard/added.png +0 -0
- data/guide/images/dashboard/columns.png +0 -0
- data/guide/images/dashboard/dashboard.png +0 -0
- data/guide/images/dashboard/options.png +0 -0
- data/guide/images/menus/edit_menu.png +0 -0
- data/guide/images/menus/edit_menu_item.png +0 -0
- data/guide/images/menus/menu_item_hierarchy.png +0 -0
- data/guide/images/menus/menu_items.png +0 -0
- data/guide/images/menus/menus.png +0 -0
- data/guide/images/sections/edit_entry.png +0 -0
- data/guide/images/sections/edit_entry_categories.png +0 -0
- data/guide/images/sections/edit_entry_general.png +0 -0
- data/guide/images/sections/edit_entry_meta.png +0 -0
- data/guide/images/sections/edit_section_comments.png +0 -0
- data/guide/images/sections/edit_section_general.png +0 -0
- data/guide/images/sections/edit_section_groups.png +0 -0
- data/guide/images/sections/entries.png +0 -0
- data/guide/images/sections/sections.png +0 -0
- data/guide/images/settings/overview_general.png +0 -0
- data/guide/images/settings/overview_security.png +0 -0
- data/guide/images/settings/overview_user.png +0 -0
- data/guide/images/users/edit_user.png +0 -0
- data/guide/images/users/edit_user_group.png +0 -0
- data/guide/images/users/edit_user_group_permissions.png +0 -0
- data/guide/images/users/edit_user_permissions.png +0 -0
- data/guide/images/users/overview.png +0 -0
- data/guide/images/users/user_groups_overview.png +0 -0
- data/guide/installation.md +7 -1
- data/guide/javascript.md +36 -273
- data/guide/javascript/zen_autosave.md +26 -0
- data/guide/javascript/zen_editor.md +83 -0
- data/guide/javascript/zen_hash.md +34 -0
- data/guide/javascript/zen_htmltable.md +78 -0
- data/guide/javascript/zen_tabs.md +44 -0
- data/guide/javascript/zen_window.md +49 -0
- data/guide/zen_compared.md +201 -0
- data/lib/vendor/sequel_sluggable.rb +1 -1
- data/lib/zen.rb +64 -44
- data/lib/zen/asset_groups.rb +10 -10
- data/lib/zen/bin/create.rb +8 -1
- data/lib/zen/helper/breadcrumb.rb +4 -12
- data/lib/zen/helper/controller.rb +209 -6
- data/lib/zen/helper/locale.rb +19 -0
- data/lib/zen/helper/search.rb +1 -1
- data/lib/zen/helper/stacked_aspect.rb +7 -43
- data/lib/zen/helper/theme.rb +3 -3
- data/lib/zen/language.rb +5 -10
- data/lib/zen/language/translation.rb +1 -1
- data/lib/zen/layout/admin.xhtml +41 -25
- data/lib/zen/layout/login.xhtml +8 -3
- data/lib/zen/migrator.rb +54 -0
- data/lib/zen/model/helper.rb +20 -1
- data/lib/zen/model/init.rb +2 -0
- data/lib/zen/model/plugin/events.rb +158 -0
- data/lib/zen/package.rb +32 -6
- data/lib/zen/package/all.rb +1 -0
- data/lib/zen/package/categories/lib/categories.rb +6 -6
- data/lib/zen/package/categories/lib/categories/controller/categories.rb +20 -83
- data/lib/zen/package/categories/lib/categories/controller/category_groups.rb +23 -74
- data/lib/zen/package/categories/lib/categories/model/category.rb +58 -1
- data/lib/zen/package/categories/lib/categories/model/category_group.rb +62 -2
- data/lib/zen/package/categories/lib/categories/view/admin/categories/form.xhtml +46 -40
- data/lib/zen/package/categories/lib/categories/view/admin/categories/index.xhtml +74 -75
- data/lib/zen/package/categories/lib/categories/view/admin/category-groups/form.xhtml +27 -24
- data/lib/zen/package/categories/lib/categories/view/admin/category-groups/index.xhtml +83 -86
- data/lib/zen/package/comments/lib/comments.rb +5 -5
- data/lib/zen/package/comments/lib/comments/controller/comments.rb +12 -64
- data/lib/zen/package/comments/lib/comments/controller/comments_form.rb +4 -22
- data/lib/zen/package/comments/lib/comments/model/comment.rb +65 -16
- data/lib/zen/package/comments/lib/comments/view/admin/comments/form.xhtml +52 -49
- data/lib/zen/package/comments/lib/comments/view/admin/comments/index.xhtml +52 -60
- data/lib/zen/package/comments/migrations/1308774099_comment_status.rb +1 -1
- data/lib/zen/package/custom_fields/lib/custom_fields.rb +11 -13
- data/lib/zen/package/custom_fields/lib/custom_fields/blue_form_parameters.rb +29 -13
- data/lib/zen/package/custom_fields/lib/custom_fields/controller/custom_field_groups.rb +21 -50
- data/lib/zen/package/custom_fields/lib/custom_fields/controller/custom_field_types.rb +27 -71
- data/lib/zen/package/custom_fields/lib/custom_fields/controller/custom_fields.rb +25 -78
- data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field.rb +48 -1
- data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_group.rb +35 -1
- data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_method.rb +3 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_type.rb +40 -1
- data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_value.rb +1 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-groups/form.xhtml +29 -26
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-groups/index.xhtml +96 -100
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-types/form.xhtml +56 -53
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-types/index.xhtml +82 -82
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-fields/form.xhtml +88 -85
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-fields/index.xhtml +83 -80
- data/lib/zen/package/dashboard/lib/dashboard.rb +28 -0
- data/lib/zen/package/dashboard/lib/dashboard/controller/dashboard.rb +154 -0
- data/lib/zen/package/dashboard/lib/dashboard/language/en/dashboard.rb +35 -0
- data/lib/zen/package/dashboard/lib/dashboard/language/nl/dashboard.rb +36 -0
- data/lib/zen/package/dashboard/lib/dashboard/model/widget.rb +45 -0
- data/lib/zen/package/dashboard/lib/dashboard/public/admin/dashboard/css/dashboard.css +74 -0
- data/lib/zen/package/dashboard/lib/dashboard/public/admin/dashboard/js/dashboard.js +102 -0
- data/lib/zen/package/dashboard/lib/dashboard/view/admin/index.xhtml +29 -0
- data/lib/zen/package/dashboard/lib/dashboard/view/admin/widget/welcome.xhtml +28 -0
- data/lib/zen/package/dashboard/lib/dashboard/widget.rb +292 -0
- data/lib/zen/package/dashboard/lib/dashboard/widget/welcome.rb +9 -0
- data/lib/zen/package/dashboard/migrations/1326411254_create_schema.rb +28 -0
- data/lib/zen/package/extensions/lib/extensions.rb +5 -5
- data/lib/zen/package/extensions/lib/extensions/view/admin/extensions/index.xhtml +72 -67
- data/lib/zen/package/menu.rb +6 -1
- data/lib/zen/package/menus/lib/menus.rb +6 -4
- data/lib/zen/package/menus/lib/menus/controller/menu_items.rb +69 -104
- data/lib/zen/package/menus/lib/menus/controller/menus.rb +19 -76
- data/lib/zen/package/menus/lib/menus/helper/menu.rb +54 -38
- data/lib/zen/package/menus/lib/menus/helper/menu_frontend.rb +7 -13
- data/lib/zen/package/menus/lib/menus/model/menu.rb +158 -2
- data/lib/zen/package/menus/lib/menus/model/menu_item.rb +73 -10
- data/lib/zen/package/menus/lib/menus/public/admin/menus/css/menus.css +47 -0
- data/lib/zen/package/menus/lib/menus/public/admin/menus/js/lib/nested_sortables.js +549 -0
- data/lib/zen/package/menus/lib/menus/public/admin/menus/js/menu_items.js +38 -0
- data/lib/zen/package/menus/lib/menus/view/admin/menu-items/form.xhtml +51 -61
- data/lib/zen/package/menus/lib/menus/view/admin/menu-items/index.xhtml +18 -81
- data/lib/zen/package/menus/lib/menus/view/admin/menus/form.xhtml +49 -44
- data/lib/zen/package/menus/lib/menus/view/admin/menus/index.xhtml +81 -83
- data/lib/zen/package/sections/lib/sections.rb +9 -4
- data/lib/zen/package/sections/lib/sections/controller/section_entries.rb +80 -132
- data/lib/zen/package/sections/lib/sections/controller/sections.rb +27 -73
- data/lib/zen/package/sections/lib/sections/helper/section.rb +44 -1
- data/lib/zen/package/sections/lib/sections/language/en/section_entries.rb +2 -0
- data/lib/zen/package/sections/lib/sections/language/nl/section_entries.rb +2 -0
- data/lib/zen/package/sections/lib/sections/model/section.rb +48 -1
- data/lib/zen/package/sections/lib/sections/model/section_entry.rb +55 -5
- data/lib/zen/package/sections/lib/sections/model/section_entry_status.rb +2 -0
- data/lib/zen/package/sections/lib/sections/view/admin/section-entries/form.xhtml +76 -67
- data/lib/zen/package/sections/lib/sections/view/admin/section-entries/index.xhtml +74 -79
- data/lib/zen/package/sections/lib/sections/view/admin/section-entries/recent_entries.xhtml +45 -0
- data/lib/zen/package/sections/lib/sections/view/admin/sections/form.xhtml +119 -0
- data/lib/zen/package/sections/lib/sections/view/admin/sections/index.xhtml +96 -0
- data/lib/zen/package/sections/lib/sections/widget/recent_entries.rb +14 -0
- data/lib/zen/package/sections/migrations/1308813320_section_entry_statuses.rb +1 -1
- data/lib/zen/package/settings/lib/settings.rb +14 -5
- data/lib/zen/package/settings/lib/settings/controller/settings.rb +4 -4
- data/lib/zen/package/settings/lib/settings/language/nl/settings.rb +1 -1
- data/lib/zen/package/settings/lib/settings/setting.rb +1 -1
- data/lib/zen/package/settings/lib/settings/view/admin/settings/index.xhtml +21 -17
- data/lib/zen/package/users/lib/users.rb +18 -19
- data/lib/zen/package/users/lib/users/controller/user_groups.rb +23 -50
- data/lib/zen/package/users/lib/users/controller/users.rb +57 -89
- data/lib/zen/package/users/lib/users/helper/acl.rb +1 -0
- data/lib/zen/package/users/lib/users/language/en/user_groups.rb +1 -0
- data/lib/zen/package/users/lib/users/language/en/users.rb +2 -1
- data/lib/zen/package/users/lib/users/language/nl/user_groups.rb +1 -0
- data/lib/zen/package/users/lib/users/language/nl/users.rb +2 -1
- data/lib/zen/package/users/lib/users/model/permission.rb +13 -0
- data/lib/zen/package/users/lib/users/model/user.rb +57 -4
- data/lib/zen/package/users/lib/users/model/user_group.rb +37 -3
- data/lib/zen/package/users/lib/users/model/user_status.rb +4 -0
- data/lib/zen/package/users/lib/users/public/admin/{css/users/permissions.css → users/css/users.css} +0 -0
- data/lib/zen/package/users/lib/users/public/admin/{js/users/permissions.js → users/js/users.js} +4 -2
- data/lib/zen/package/users/lib/users/view/admin/user-groups/form.xhtml +51 -47
- data/lib/zen/package/users/lib/users/view/admin/user-groups/index.xhtml +62 -69
- data/lib/zen/package/users/lib/users/view/admin/users/form.xhtml +92 -82
- data/lib/zen/package/users/lib/users/view/admin/users/index.xhtml +68 -66
- data/lib/zen/package/users/lib/users/view/admin/users/login.xhtml +36 -28
- data/lib/zen/package/users/lib/users/view/admin/users/permissions.xhtml +5 -7
- data/lib/zen/package/users/lib/users/view/admin/users/register.xhtml +47 -41
- data/lib/zen/package/users/migrations/1320272365_status_ids.rb +1 -1
- data/lib/zen/public/admin/{js/vendor/mootools → mootools/js}/core.js +113 -108
- data/lib/zen/public/admin/{js/vendor/mootools → mootools/js}/more.js +99 -6
- data/lib/zen/public/admin/zen/css/buttons.css +106 -0
- data/lib/zen/public/admin/{css/zen → zen/css}/datepicker.css +45 -30
- data/lib/zen/public/admin/zen/css/editor.css +69 -0
- data/lib/zen/public/admin/{css/zen → zen/css}/forms.css +28 -30
- data/lib/zen/public/admin/zen/css/general.css +183 -0
- data/lib/zen/public/admin/zen/css/layout.css +224 -0
- data/lib/zen/public/admin/zen/css/messages.css +34 -0
- data/lib/zen/public/admin/{css/zen → zen/css}/reset.css +4 -9
- data/lib/zen/public/admin/zen/css/tables.css +57 -0
- data/lib/zen/public/admin/zen/css/tabs.css +84 -0
- data/lib/zen/public/admin/zen/css/window.css +74 -0
- data/lib/zen/public/admin/{images/zen → zen/images}/icons/asc.png +0 -0
- data/lib/zen/public/admin/{images/zen → zen/images}/icons/bold.png +0 -0
- data/lib/zen/public/admin/zen/images/icons/box.png +0 -0
- data/lib/zen/public/admin/zen/images/icons/categories.png +0 -0
- data/lib/zen/public/admin/{images/zen → zen/images}/icons/close.png +0 -0
- data/lib/zen/public/admin/zen/images/icons/comment.png +0 -0
- data/lib/zen/public/admin/{images/zen → zen/images}/icons/desc.png +0 -0
- data/lib/zen/public/admin/{images/zen → zen/images}/icons/edit.png +0 -0
- data/lib/zen/public/admin/{images/zen → zen/images}/icons/error.png +0 -0
- data/lib/zen/public/admin/zen/images/icons/external.png +0 -0
- data/lib/zen/public/admin/zen/images/icons/globe.png +0 -0
- data/lib/zen/public/admin/{images/zen → zen/images}/icons/italic.png +0 -0
- data/lib/zen/public/admin/{images/zen → zen/images}/icons/link.png +0 -0
- data/lib/zen/public/admin/zen/images/icons/lock.png +0 -0
- data/lib/zen/public/admin/{images/zen → zen/images}/icons/ol.png +0 -0
- data/lib/zen/public/admin/zen/images/icons/pages.png +0 -0
- data/lib/zen/public/admin/{images/zen → zen/images}/icons/preview.png +0 -0
- data/lib/zen/public/admin/zen/images/icons/relation.png +0 -0
- data/lib/zen/public/admin/zen/images/icons/settings.png +0 -0
- data/lib/zen/public/admin/zen/images/icons/template.png +0 -0
- data/lib/zen/public/admin/{images/zen → zen/images}/icons/ul.png +0 -0
- data/lib/zen/public/admin/{images/zen → zen/images}/icons/user.png +0 -0
- data/lib/zen/public/admin/zen/images/icons/user_group.png +0 -0
- data/lib/zen/public/admin/{js/zen → zen/js}/index.js +21 -9
- data/lib/zen/public/admin/zen/js/lib/autosave.js +185 -0
- data/lib/zen/public/admin/zen/js/lib/base.js +60 -0
- data/lib/zen/public/admin/{js/vendor → zen/js/lib}/datepicker.js +52 -28
- data/lib/zen/public/admin/{js/zen → zen/js}/lib/editor.js +23 -34
- data/lib/zen/public/admin/{js/zen → zen/js}/lib/editor/markdown.js +5 -1
- data/lib/zen/public/admin/{js/zen → zen/js}/lib/editor/textile.js +4 -0
- data/lib/zen/public/admin/zen/js/lib/hash.js +218 -0
- data/lib/zen/public/admin/{js/zen → zen/js}/lib/html_table.js +5 -0
- data/lib/zen/public/admin/zen/js/lib/tabs.js +194 -0
- data/lib/zen/public/admin/{js/zen → zen/js}/lib/window.js +54 -29
- data/lib/zen/security.rb +50 -0
- data/lib/zen/spec/helper.rb +5 -120
- data/lib/zen/spec/helper/capybara.rb +75 -0
- data/lib/zen/spec/helper/general.rb +75 -0
- data/lib/zen/spec/simplecov.rb +1 -0
- data/lib/zen/task/build.rake +2 -21
- data/lib/zen/task/clean.rake +1 -10
- data/lib/zen/task/db.rake +4 -10
- data/lib/zen/task/package.rake +2 -5
- data/lib/zen/task/setup.rake +1 -1
- data/lib/zen/task/test.rake +6 -6
- data/lib/zen/task/theme.rake +2 -5
- data/lib/zen/theme.rb +26 -22
- data/lib/zen/version.rb +1 -1
- data/lib/zen/view/bottom.xhtml +2 -3
- data/lib/zen/view/search.xhtml +3 -5
- data/proto/app/config/config.rb.erb +1 -1
- data/proto/app/theme/default/index.xhtml +116 -20
- data/proto/app/theme/partials/head.xhtml +9 -0
- data/proto/app/theme/partials/sidebar.xhtml +40 -0
- data/proto/app/theme/theme.rb +3 -0
- data/spec/Rakefile +1 -2
- data/spec/fixtures/zen/helper/stacked_aspect.rb +54 -0
- data/spec/fixtures/zen/package/dashboard/controller/widget.rb +15 -0
- data/spec/fixtures/zen/package/dashboard/widget.rb +5 -0
- data/spec/fixtures/zen/theme/theme.rb +2 -2
- data/spec/helper.rb +19 -10
- data/spec/zen/controller/admin_controller.rb +3 -3
- data/spec/zen/controller/main_controller.rb +7 -7
- data/spec/zen/controller/preview.rb +3 -3
- data/spec/zen/event.rb +4 -4
- data/spec/zen/helper/breadcrumb.rb +4 -8
- data/spec/zen/helper/controller.rb +47 -4
- data/spec/zen/helper/locale.rb +3 -3
- data/spec/zen/helper/message.rb +4 -4
- data/spec/zen/helper/stacked_aspect.rb +40 -0
- data/spec/zen/helper/theme.rb +9 -9
- data/spec/zen/language.rb +8 -8
- data/spec/zen/markup.rb +6 -6
- data/spec/zen/package.rb +11 -9
- data/spec/zen/package/categories/controller/categories.rb +56 -24
- data/spec/zen/package/categories/controller/category_groups.rb +55 -23
- data/spec/zen/package/categories/helper/category.rb +5 -5
- data/spec/zen/package/categories/helper/category_frontend.rb +5 -5
- data/spec/zen/package/comments/anti_spam.rb +4 -4
- data/spec/zen/package/comments/controller/comments.rb +95 -24
- data/spec/zen/package/comments/controller/comments_form.rb +31 -26
- data/spec/zen/package/comments/helper/comment.rb +3 -3
- data/spec/zen/package/comments/helper/comment_frontend.rb +6 -6
- data/spec/zen/package/custom_fields/blue_form_parameters.rb +8 -8
- data/spec/zen/package/custom_fields/controller/custom_field_groups.rb +58 -27
- data/spec/zen/package/custom_fields/controller/custom_field_types.rb +57 -27
- data/spec/zen/package/custom_fields/controller/custom_fields.rb +58 -27
- data/spec/zen/package/custom_fields/helper/custom_field.rb +7 -7
- data/spec/zen/package/dashboard/controller/dashboard.rb +147 -0
- data/spec/zen/package/dashboard/widget.rb +56 -0
- data/spec/zen/package/extensions/controller/extensions.rb +4 -4
- data/spec/zen/package/menus/controller/menu_items.rb +48 -39
- data/spec/zen/package/menus/controller/menus.rb +55 -24
- data/spec/zen/package/menus/helper/menu.rb +6 -14
- data/spec/zen/package/menus/helper/menu_frontend.rb +7 -7
- data/spec/zen/package/menus/model/menu.rb +121 -0
- data/spec/zen/package/menus/model/menu_item.rb +34 -0
- data/spec/zen/package/sections/controller/section_entries.rb +104 -39
- data/spec/zen/package/sections/controller/sections.rb +60 -27
- data/spec/zen/package/sections/helper/section.rb +5 -5
- data/spec/zen/package/sections/helper/section_frontend.rb +9 -9
- data/spec/zen/package/sections/widget.rb +44 -0
- data/spec/zen/package/settings/controller/settings.rb +18 -16
- data/spec/zen/package/settings/settings.rb +12 -12
- data/spec/zen/package/users/controller/user_groups.rb +61 -29
- data/spec/zen/package/users/controller/users.rb +118 -39
- data/spec/zen/package/users/helper/access.rb +3 -3
- data/spec/zen/package/users/helper/acl.rb +4 -4
- data/spec/zen/package/users/helper/users.rb +5 -5
- data/spec/zen/security.rb +25 -0
- data/spec/zen/theme.rb +20 -18
- data/spec/zen/validation.rb +5 -5
- data/spec/zen/vendor/sequel_sluggable.rb +12 -0
- data/zen.gemspec +27 -4
- metadata +182 -124
- data/AUTHORS +0 -4
- 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/lib/zen/controller/translations.rb +0 -49
- data/lib/zen/package/sections/lib/sections/view/admin/form.xhtml +0 -113
- data/lib/zen/package/sections/lib/sections/view/admin/index.xhtml +0 -97
- data/lib/zen/public/admin/css/zen/buttons.css +0 -46
- data/lib/zen/public/admin/css/zen/editor.css +0 -88
- data/lib/zen/public/admin/css/zen/general.css +0 -109
- data/lib/zen/public/admin/css/zen/grid.css +0 -100
- data/lib/zen/public/admin/css/zen/layout.css +0 -184
- data/lib/zen/public/admin/css/zen/messages.css +0 -54
- data/lib/zen/public/admin/css/zen/tables.css +0 -97
- data/lib/zen/public/admin/css/zen/tabs.css +0 -47
- data/lib/zen/public/admin/css/zen/window.css +0 -73
- data/lib/zen/public/admin/images/zen/icons/accept.png +0 -0
- data/lib/zen/public/admin/images/zen/icons/add.png +0 -0
- data/lib/zen/public/admin/images/zen/icons/back.png +0 -0
- data/lib/zen/public/admin/images/zen/icons/delete.png +0 -0
- data/lib/zen/public/admin/images/zen/icons/help.png +0 -0
- data/lib/zen/public/admin/images/zen/icons/info.png +0 -0
- data/lib/zen/public/admin/images/zen/icons/logout.png +0 -0
- data/lib/zen/public/admin/images/zen/icons/pdf.png +0 -0
- data/lib/zen/public/admin/images/zen/icons/view.png +0 -0
- data/lib/zen/public/admin/js/zen/lib/tabs.js +0 -207
- data/lib/zen/view/main.xhtml +0 -19
|
@@ -7,7 +7,9 @@ Zen::Package.add do |p|
|
|
|
7
7
|
p.root = __DIR__('sections')
|
|
8
8
|
p.migrations = __DIR__('../migrations')
|
|
9
9
|
|
|
10
|
-
p.menu
|
|
10
|
+
p.menu 'sections.titles.index',
|
|
11
|
+
'/admin/sections',
|
|
12
|
+
:permission => :show_section
|
|
11
13
|
|
|
12
14
|
p.permission :show_section , 'sections.permissions.show'
|
|
13
15
|
p.permission :edit_section , 'sections.permissions.edit'
|
|
@@ -20,13 +22,16 @@ Zen::Package.add do |p|
|
|
|
20
22
|
p.permission :delete_section_entry, 'section_entries.permissions.delete'
|
|
21
23
|
end
|
|
22
24
|
|
|
23
|
-
Zen::Language.load('sections')
|
|
24
|
-
Zen::Language.load('section_entries')
|
|
25
|
-
|
|
26
25
|
require __DIR__('sections/model/section')
|
|
27
26
|
require __DIR__('sections/model/section_entry')
|
|
28
27
|
require __DIR__('sections/model/section_entry_status')
|
|
29
28
|
require __DIR__('sections/controller/sections')
|
|
30
29
|
require __DIR__('sections/controller/section_entries')
|
|
30
|
+
require __DIR__('sections/widget/recent_entries')
|
|
31
31
|
|
|
32
32
|
Zen::Controller::FrontendController.helper(:section_frontend)
|
|
33
|
+
|
|
34
|
+
Zen::Event.listen :post_start do
|
|
35
|
+
Zen::Language.load('sections')
|
|
36
|
+
Zen::Language.load('section_entries')
|
|
37
|
+
end
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
require 'time'
|
|
2
|
+
|
|
1
3
|
module Sections
|
|
2
4
|
#:nodoc:
|
|
3
5
|
module Controller
|
|
@@ -10,17 +12,17 @@ module Sections
|
|
|
10
12
|
# "Manage entries". This will bring you to an overview of all existing
|
|
11
13
|
# entries that looks like the one in the image below.
|
|
12
14
|
#
|
|
13
|
-
# 
|
|
14
16
|
#
|
|
15
17
|
# Editing an entry can be done by clicking on it's name, creating a new one
|
|
16
18
|
# can be done by clicking on the "Add section entry" button. In both cases
|
|
17
19
|
# you'll see a form that looks similar to the one displayed in the images
|
|
18
20
|
# below.
|
|
19
21
|
#
|
|
20
|
-
# 
|
|
23
|
+
# 
|
|
24
|
+
# 
|
|
25
|
+
# 
|
|
24
26
|
#
|
|
25
27
|
# In the images above there are four tabs displayed. "Basic", "Categories",
|
|
26
28
|
# "General" and "Meta". The first two are always available, the last two
|
|
@@ -54,21 +56,8 @@ module Sections
|
|
|
54
56
|
# * edit_section_entry
|
|
55
57
|
# * delete_section_entry
|
|
56
58
|
#
|
|
57
|
-
# ## Events
|
|
58
|
-
#
|
|
59
|
-
# All events in this controller receive an instance of
|
|
60
|
-
# {Sections::Model::SectionEntry}. The event ``after_delete_section_entry``
|
|
61
|
-
# receives an instance of this model that has already been destroyed using
|
|
62
|
-
# ``#destroy()``.
|
|
63
|
-
#
|
|
64
59
|
# @since 0.1
|
|
65
60
|
# @map /admin/section-entries
|
|
66
|
-
# @event before_new_section_entry
|
|
67
|
-
# @event after_new_section_entry
|
|
68
|
-
# @event before_edit_section_entry
|
|
69
|
-
# @event after_edit_section_entry
|
|
70
|
-
# @event before_delete_section_entry
|
|
71
|
-
# @event after_delete_section_entry
|
|
72
61
|
#
|
|
73
62
|
class SectionEntries < Zen::Controller::AdminController
|
|
74
63
|
map '/admin/section-entries'
|
|
@@ -76,7 +65,7 @@ module Sections
|
|
|
76
65
|
title 'section_entries.titles.%s'
|
|
77
66
|
|
|
78
67
|
load_asset_group [:tabs, :editor, :datepicker], [:edit, :new]
|
|
79
|
-
csrf_protection :save, :delete
|
|
68
|
+
csrf_protection :save, :delete, :autosave
|
|
80
69
|
|
|
81
70
|
##
|
|
82
71
|
# Show an overview of all entries for the current section.
|
|
@@ -130,15 +119,10 @@ module Sections
|
|
|
130
119
|
|
|
131
120
|
validate_section(section_id)
|
|
132
121
|
|
|
133
|
-
@section_id
|
|
122
|
+
@section_id = section_id
|
|
123
|
+
@entry = Model::SectionEntry.new(:section_id => section_id)
|
|
134
124
|
|
|
135
|
-
if flash[:form_data]
|
|
136
|
-
@entry = flash[:form_data]
|
|
137
|
-
else
|
|
138
|
-
@entry = ::Sections::Model::SectionEntry.new(
|
|
139
|
-
:section_id => section_id
|
|
140
|
-
)
|
|
141
|
-
end
|
|
125
|
+
@entry.set(flash[:form_data]) if flash[:form_data]
|
|
142
126
|
|
|
143
127
|
@possible_categories = @entry.possible_categories
|
|
144
128
|
@custom_fields_hash = @entry.custom_fields_hash
|
|
@@ -169,11 +153,8 @@ module Sections
|
|
|
169
153
|
|
|
170
154
|
validate_section(section_id)
|
|
171
155
|
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
else
|
|
175
|
-
@entry = validate_section_entry(entry_id, section_id)
|
|
176
|
-
end
|
|
156
|
+
@entry = validate_section_entry(entry_id, section_id)
|
|
157
|
+
@entry.set(flash[:form_data]) if flash[:form_data]
|
|
177
158
|
|
|
178
159
|
@section_id = section_id
|
|
179
160
|
@possible_categories = @entry.possible_categories
|
|
@@ -187,141 +168,111 @@ module Sections
|
|
|
187
168
|
# creates a new entry.
|
|
188
169
|
#
|
|
189
170
|
# @since 0.1
|
|
190
|
-
# @event before_new_section_entry
|
|
191
|
-
# @event after_new_section_entry
|
|
192
|
-
# @event before_edit_section_entry
|
|
193
|
-
# @event after_edit_section_entry
|
|
194
171
|
# @permission edit_section_entry (when editing an entry)
|
|
195
172
|
# @permission new_section_entry (when creating a new entry)
|
|
196
173
|
#
|
|
197
174
|
def save
|
|
175
|
+
post_data = post_fields(*Model::SectionEntry::COLUMNS)
|
|
198
176
|
section_id = request.params['section_id']
|
|
199
177
|
|
|
200
|
-
|
|
178
|
+
if post_data['created_at']
|
|
179
|
+
post_data['created_at'] = Time.strptime(
|
|
180
|
+
post_data['created_at'],
|
|
181
|
+
Model::SectionEntry::DATE_FORMAT
|
|
182
|
+
)
|
|
183
|
+
end
|
|
201
184
|
|
|
202
185
|
if request.params['id'] and !request.params['id'].empty?
|
|
203
186
|
authorize_user!(:edit_section_entry)
|
|
204
187
|
|
|
205
|
-
entry
|
|
206
|
-
save_action
|
|
207
|
-
before_event = :before_edit_section_entry
|
|
208
|
-
after_event = :after_edit_section_entry
|
|
209
|
-
|
|
210
|
-
# Section entries aren't considered to be updated whenever a custom
|
|
211
|
-
# field value is modified, this solves that problem
|
|
212
|
-
request.params['updated_at'] = Time.new
|
|
188
|
+
entry = validate_section_entry(request.params['id'], section_id)
|
|
189
|
+
save_action = :save
|
|
213
190
|
else
|
|
214
191
|
authorize_user!(:new_section_entry)
|
|
215
192
|
|
|
216
|
-
entry
|
|
217
|
-
|
|
218
|
-
after_event = :after_new_section_entry
|
|
219
|
-
save_action = :new
|
|
193
|
+
entry = Model::SectionEntry.new(:section_id => section_id)
|
|
194
|
+
save_action = :new
|
|
220
195
|
end
|
|
221
196
|
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
custom_fields = entry.custom_fields
|
|
227
|
-
field_errors = {}
|
|
228
|
-
field_values = {}
|
|
229
|
-
|
|
230
|
-
entry.custom_field_values.each do |value|
|
|
231
|
-
field_values[value.custom_field_id] = value
|
|
232
|
-
end
|
|
197
|
+
success = lang("section_entries.success.#{save_action}")
|
|
198
|
+
error = lang("section_entries.errors.#{save_action}")
|
|
199
|
+
field_errors = {}
|
|
200
|
+
field_values = {}
|
|
233
201
|
|
|
234
202
|
begin
|
|
235
203
|
Zen.database.transaction do
|
|
236
|
-
|
|
237
|
-
post_data = request.subset(
|
|
238
|
-
:title,
|
|
239
|
-
:created_at,
|
|
240
|
-
:updated_at,
|
|
241
|
-
:section_id,
|
|
242
|
-
:user_id,
|
|
243
|
-
:slug,
|
|
244
|
-
:section_entry_status_id,
|
|
245
|
-
:category_pks
|
|
246
|
-
)
|
|
247
|
-
|
|
248
|
-
# Transform the dates properly
|
|
249
|
-
if post_data[:created_at]
|
|
250
|
-
post_data[:created_at] = Time.strptime(
|
|
251
|
-
post_data[:created_at],
|
|
252
|
-
date_format
|
|
253
|
-
)
|
|
254
|
-
end
|
|
255
|
-
|
|
256
|
-
if post_data[:updated_at]
|
|
257
|
-
post_data[:updated_at] = Time.strptime(
|
|
258
|
-
post_data[:updated_at],
|
|
259
|
-
date_format
|
|
260
|
-
)
|
|
261
|
-
end
|
|
262
|
-
|
|
263
|
-
post_data.each { |k, v| entry.send("#{k}=", v) }
|
|
264
|
-
Zen::Event.call(before_event, entry)
|
|
265
|
-
|
|
204
|
+
entry.set(post_data)
|
|
266
205
|
entry.save
|
|
267
206
|
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
# The custom field has been submitted, let's see if we have to
|
|
273
|
-
# update it or add it.
|
|
274
|
-
if request.params.key?(key)
|
|
275
|
-
# Validate it
|
|
276
|
-
if field.required and request.params[key].empty?
|
|
277
|
-
field_errors[:"custom_field_value_#{field.id}"] = \
|
|
278
|
-
lang('zen_models.presence')
|
|
279
|
-
|
|
280
|
-
raise
|
|
281
|
-
end
|
|
282
|
-
|
|
283
|
-
# Update it
|
|
284
|
-
if field_values.key?(field.id)
|
|
285
|
-
field_values[field.id].update(:value => request.params[key])
|
|
286
|
-
# Add it
|
|
287
|
-
else
|
|
288
|
-
entry.add_custom_field_value(
|
|
289
|
-
:custom_field_id => field.id,
|
|
290
|
-
:value => request.params[key]
|
|
291
|
-
)
|
|
292
|
-
end
|
|
293
|
-
end
|
|
294
|
-
end
|
|
207
|
+
field_errors = process_custom_fields(entry)
|
|
208
|
+
|
|
209
|
+
raise unless field_errors.empty?
|
|
295
210
|
end
|
|
296
|
-
# The rescue statement is called whenever the following happens:
|
|
297
|
-
#
|
|
298
|
-
# 1. The fields for the section entry (title, slug, etc) are invalid
|
|
299
|
-
# 2. Any custom field marked as required didn't have a value
|
|
300
|
-
# 3. Something else went wrong, god knows what.
|
|
301
211
|
rescue => e
|
|
302
|
-
Ramaze::Log.error(e
|
|
212
|
+
Ramaze::Log.error(e)
|
|
303
213
|
message(:error, error)
|
|
304
214
|
|
|
215
|
+
request.POST.delete('id')
|
|
216
|
+
|
|
305
217
|
flash[:form_errors] = entry.errors.merge(field_errors)
|
|
306
|
-
flash[:form_data] =
|
|
218
|
+
flash[:form_data] = request.POST
|
|
307
219
|
|
|
308
220
|
redirect_referrer
|
|
309
221
|
end
|
|
310
222
|
|
|
311
|
-
Zen::Event.call(after_event, entry)
|
|
312
|
-
|
|
313
223
|
message(:success, success)
|
|
314
224
|
redirect(SectionEntries.r(:edit, section_id, entry.id))
|
|
315
225
|
end
|
|
316
226
|
|
|
227
|
+
##
|
|
228
|
+
# Automatically saves a section entry. This is needed to take care of the
|
|
229
|
+
# custom fields, something the helper method itself can not do.
|
|
230
|
+
#
|
|
231
|
+
# @since 17-02-2012
|
|
232
|
+
#
|
|
233
|
+
def autosave
|
|
234
|
+
entry = Model::SectionEntry[request.params['id']]
|
|
235
|
+
post_data = post_fields(*Model::SectionEntry::COLUMNS)
|
|
236
|
+
field_errors = {}
|
|
237
|
+
|
|
238
|
+
if post_data['created_at']
|
|
239
|
+
post_data['created_at'] = Time.strptime(
|
|
240
|
+
post_data['created_at'],
|
|
241
|
+
Model::SectionEntry::DATE_FORMAT
|
|
242
|
+
)
|
|
243
|
+
end
|
|
244
|
+
|
|
245
|
+
if entry.nil? or !user_authorized?(:edit_section_entry)
|
|
246
|
+
respond_json(
|
|
247
|
+
{:error => lang('zen_general.errors.invalid_request')},
|
|
248
|
+
404
|
|
249
|
+
)
|
|
250
|
+
end
|
|
251
|
+
|
|
252
|
+
begin
|
|
253
|
+
Zen.database.transaction do
|
|
254
|
+
entry.set(post_data)
|
|
255
|
+
entry.save
|
|
256
|
+
|
|
257
|
+
field_errors = process_custom_fields(entry)
|
|
258
|
+
|
|
259
|
+
raise unless field_errors.empty?
|
|
260
|
+
end
|
|
261
|
+
rescue => e
|
|
262
|
+
Ramaze::Log.error(e)
|
|
263
|
+
|
|
264
|
+
respond_json({:errors => entry.errors.merge(field_errors)}, 400)
|
|
265
|
+
end
|
|
266
|
+
|
|
267
|
+
respond_json({:csrf_token => get_csrf_token})
|
|
268
|
+
end
|
|
269
|
+
|
|
317
270
|
##
|
|
318
271
|
# Delete a set of section entries based on the supplied POST
|
|
319
272
|
# field "section_entry_ids".
|
|
320
273
|
#
|
|
321
274
|
# @since 0.1
|
|
322
275
|
# @permission delete_section_entry
|
|
323
|
-
# @event before_delete_section_entry
|
|
324
|
-
# @event after_delete_section_entry
|
|
325
276
|
#
|
|
326
277
|
def delete
|
|
327
278
|
authorize_user!(:delete_section_entry)
|
|
@@ -336,18 +287,15 @@ module Sections
|
|
|
336
287
|
entry = ::Sections::Model::SectionEntry[id]
|
|
337
288
|
|
|
338
289
|
next if entry.nil?
|
|
339
|
-
Zen::Event.call(:before_delete_section_entry, entry)
|
|
340
290
|
|
|
341
291
|
begin
|
|
342
292
|
entry.destroy
|
|
343
293
|
rescue => e
|
|
344
|
-
Ramaze::Log.error(e
|
|
294
|
+
Ramaze::Log.error(e)
|
|
345
295
|
message(:error,lang('section_entries.errors.delete') % id)
|
|
346
296
|
|
|
347
297
|
redirect_referrer
|
|
348
298
|
end
|
|
349
|
-
|
|
350
|
-
Zen::Event.call(:after_delete_section_entry, entry)
|
|
351
299
|
end
|
|
352
300
|
|
|
353
301
|
message(:success, lang('section_entries.success.delete'))
|
|
@@ -27,12 +27,12 @@ module Sections
|
|
|
27
27
|
# the other data types (such as those mentioned earlier) together to form
|
|
28
28
|
# the content displayed on your website.
|
|
29
29
|
#
|
|
30
|
-
# Sections can be managed by going to ``/admin``. This page will
|
|
31
|
-
# overview of all existing sections as well as a few buttons and
|
|
32
|
-
# allow you to edit, create or delete sections as well as
|
|
33
|
-
# entries for each existing section.
|
|
30
|
+
# Sections can be managed by going to ``/admin/sections``. This page will
|
|
31
|
+
# show an overview of all existing sections as well as a few buttons and
|
|
32
|
+
# links that allow you to edit, create or delete sections as well as
|
|
33
|
+
# managing the entries for each existing section.
|
|
34
34
|
#
|
|
35
|
-
# 
|
|
36
36
|
#
|
|
37
37
|
# ## Creating/Editing Sections
|
|
38
38
|
#
|
|
@@ -41,9 +41,9 @@ module Sections
|
|
|
41
41
|
# both cases you'll end up with a form that looks like the one in the images
|
|
42
42
|
# below.
|
|
43
43
|
#
|
|
44
|
-
# 
|
|
45
|
+
# 
|
|
46
|
+
# 
|
|
47
47
|
#
|
|
48
48
|
# In this form you can specify the following fields:
|
|
49
49
|
#
|
|
@@ -76,38 +76,19 @@ module Sections
|
|
|
76
76
|
# * edit_section
|
|
77
77
|
# * delete_section
|
|
78
78
|
#
|
|
79
|
-
# ## Events
|
|
80
|
-
#
|
|
81
|
-
# All events in this controller receive an instance of
|
|
82
|
-
# {Sections::Model::Section}. The event ``after_delete_section`` receives an
|
|
83
|
-
# instance that has already been removed, thus you can't make any changes to
|
|
84
|
-
# it and save those in the database.
|
|
85
|
-
#
|
|
86
|
-
# Example of creating a dummy section entry:
|
|
87
|
-
#
|
|
88
|
-
# Zen::Event.listen(:new_section) do |section|
|
|
89
|
-
# section.add_section_entry(:title => 'My Entry', :user_id => user.id)
|
|
90
|
-
# end
|
|
91
|
-
#
|
|
92
79
|
# @since 0.1
|
|
93
|
-
# @map /admin
|
|
94
|
-
# @event before_new_section
|
|
95
|
-
# @event after_new_section
|
|
96
|
-
# @event before_edit_section
|
|
97
|
-
# @event after_edit_section
|
|
98
|
-
# @event before_delete_section
|
|
99
|
-
# @event after_delete_section
|
|
80
|
+
# @map /admin/sections
|
|
100
81
|
#
|
|
101
82
|
class Sections < Zen::Controller::AdminController
|
|
102
|
-
map '/admin'
|
|
83
|
+
map '/admin/sections'
|
|
103
84
|
helper :section
|
|
104
85
|
title 'sections.titles.%s'
|
|
105
86
|
|
|
106
87
|
csrf_protection :save, :delete
|
|
107
88
|
load_asset_group :tabs, [:edit, :new]
|
|
108
89
|
|
|
109
|
-
|
|
110
|
-
|
|
90
|
+
autosave Model::Section, Model::Section::COLUMNS, :edit_section
|
|
91
|
+
|
|
111
92
|
before(:index, :new, :edit) do
|
|
112
93
|
@boolean_hash = {
|
|
113
94
|
true => lang('zen_general.special.boolean_hash.true'),
|
|
@@ -156,7 +137,8 @@ module Sections
|
|
|
156
137
|
@page_title
|
|
157
138
|
)
|
|
158
139
|
|
|
159
|
-
@section =
|
|
140
|
+
@section = validate_section(id)
|
|
141
|
+
@section.set(flash[:form_data]) if flash[:form_data]
|
|
160
142
|
|
|
161
143
|
render_view(:form)
|
|
162
144
|
end
|
|
@@ -175,7 +157,8 @@ module Sections
|
|
|
175
157
|
@page_title
|
|
176
158
|
)
|
|
177
159
|
|
|
178
|
-
@section =
|
|
160
|
+
@section = Model::Section.new
|
|
161
|
+
@section.set(flash[:form_data]) if flash[:form_data]
|
|
179
162
|
|
|
180
163
|
render_view(:form)
|
|
181
164
|
end
|
|
@@ -184,41 +167,23 @@ module Sections
|
|
|
184
167
|
# Saves any changes made to an existing section or creates a new one.
|
|
185
168
|
#
|
|
186
169
|
# @since 0.1
|
|
187
|
-
# @event before_new_section
|
|
188
|
-
# @event after_new_section
|
|
189
|
-
# @event before_edit_section
|
|
190
|
-
# @event ater_edit_section
|
|
191
170
|
# @permission new_section (when creating a section)
|
|
192
171
|
# @permission edit_section (when editing a section)
|
|
193
172
|
#
|
|
194
173
|
def save
|
|
195
|
-
post =
|
|
196
|
-
|
|
197
|
-
:name,
|
|
198
|
-
:slug,
|
|
199
|
-
:description,
|
|
200
|
-
:comment_allow,
|
|
201
|
-
:comment_require_account,
|
|
202
|
-
:comment_moderate,
|
|
203
|
-
:comment_format,
|
|
204
|
-
:custom_field_group_pks,
|
|
205
|
-
:category_group_pks
|
|
206
|
-
)
|
|
174
|
+
post = post_fields(*Model::Section::COLUMNS)
|
|
175
|
+
id = request.params['id']
|
|
207
176
|
|
|
208
|
-
if
|
|
177
|
+
if id and !id.empty?
|
|
209
178
|
authorize_user!(:edit_section)
|
|
210
179
|
|
|
211
|
-
section
|
|
212
|
-
save_action
|
|
213
|
-
before_event = :before_edit_section
|
|
214
|
-
after_event = :after_edit_section
|
|
180
|
+
section = validate_section(id)
|
|
181
|
+
save_action = :save
|
|
215
182
|
else
|
|
216
183
|
authorize_user!(:new_section)
|
|
217
184
|
|
|
218
|
-
section
|
|
219
|
-
save_action
|
|
220
|
-
before_event = :before_new_section
|
|
221
|
-
after_event = :after_new_section
|
|
185
|
+
section = ::Sections::Model::Section.new
|
|
186
|
+
save_action = :new
|
|
222
187
|
end
|
|
223
188
|
|
|
224
189
|
success = lang("sections.success.#{save_action}")
|
|
@@ -227,12 +192,8 @@ module Sections
|
|
|
227
192
|
post['custom_field_group_pks'] ||= []
|
|
228
193
|
post['category_group_pks'] ||= []
|
|
229
194
|
|
|
230
|
-
post.delete('id')
|
|
231
|
-
|
|
232
195
|
begin
|
|
233
|
-
|
|
234
|
-
Zen::Event.call(before_event, section)
|
|
235
|
-
|
|
196
|
+
section.set(post)
|
|
236
197
|
section.save
|
|
237
198
|
|
|
238
199
|
if save_action == :new
|
|
@@ -240,17 +201,15 @@ module Sections
|
|
|
240
201
|
section.category_group_pks = post['category_group_pks']
|
|
241
202
|
end
|
|
242
203
|
rescue => e
|
|
243
|
-
Ramaze::Log.error(e
|
|
204
|
+
Ramaze::Log.error(e)
|
|
244
205
|
message(:error, error)
|
|
245
206
|
|
|
246
|
-
flash[:form_data] =
|
|
207
|
+
flash[:form_data] = post
|
|
247
208
|
flash[:form_errors] = section.errors
|
|
248
209
|
|
|
249
210
|
redirect_referrer
|
|
250
211
|
end
|
|
251
212
|
|
|
252
|
-
Zen::Event.call(after_event, section)
|
|
253
|
-
|
|
254
213
|
message(:success, success)
|
|
255
214
|
redirect(Sections.r(:edit, section.id))
|
|
256
215
|
end
|
|
@@ -260,8 +219,6 @@ module Sections
|
|
|
260
219
|
# should be specified in the POST array "section_ids[]".
|
|
261
220
|
#
|
|
262
221
|
# @since 0.1
|
|
263
|
-
# @event before_delete_section
|
|
264
|
-
# @event after_delete_section
|
|
265
222
|
# @permission delete_section
|
|
266
223
|
#
|
|
267
224
|
def delete
|
|
@@ -277,18 +234,15 @@ module Sections
|
|
|
277
234
|
section = ::Sections::Model::Section[id]
|
|
278
235
|
|
|
279
236
|
next if section.nil?
|
|
280
|
-
Zen::Event.call(:before_delete_section, section)
|
|
281
237
|
|
|
282
238
|
begin
|
|
283
239
|
section.destroy
|
|
284
240
|
rescue => e
|
|
285
|
-
Ramaze::Log.error(e
|
|
241
|
+
Ramaze::Log.error(e)
|
|
286
242
|
message(:error, lang('sections.errors.delete') % id)
|
|
287
243
|
|
|
288
244
|
redirect_referrer
|
|
289
245
|
end
|
|
290
|
-
|
|
291
|
-
Zen::Event.call(:after_delete_section, section)
|
|
292
246
|
end
|
|
293
247
|
|
|
294
248
|
message(:success, lang('sections.success.delete'))
|