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
|
@@ -15,7 +15,7 @@ module CustomFields
|
|
|
15
15
|
# URL called "Custom field types". Clicking this URL will take you to an
|
|
16
16
|
# overview of all existing field types.
|
|
17
17
|
#
|
|
18
|
-
# 
|
|
19
19
|
#
|
|
20
20
|
# ## Adding/Editing Field Types
|
|
21
21
|
#
|
|
@@ -24,7 +24,7 @@ module CustomFields
|
|
|
24
24
|
# button. In both cases you'll end up at a form that looks like the image
|
|
25
25
|
# below.
|
|
26
26
|
#
|
|
27
|
-
# 
|
|
28
28
|
#
|
|
29
29
|
# In this form you can specify the following fields:
|
|
30
30
|
#
|
|
@@ -56,22 +56,8 @@ module CustomFields
|
|
|
56
56
|
# * new_custom_field_type
|
|
57
57
|
# * delete_custom_field_type
|
|
58
58
|
#
|
|
59
|
-
# ## Events
|
|
60
|
-
#
|
|
61
|
-
# All events in this controller will receive an instance of
|
|
62
|
-
# {CustomFields::Model::CustomFieldType}. Just like other packages the event
|
|
63
|
-
# ``after_delete_custom_field_type`` receives an instance that has already
|
|
64
|
-
# been destroyed. This means that this event can not be used to make changes
|
|
65
|
-
# to the object and save them.
|
|
66
|
-
#
|
|
67
59
|
# @since 0.2.8
|
|
68
60
|
# @map /admin/custom-field-types
|
|
69
|
-
# @event before_new_custom_field_type
|
|
70
|
-
# @event after_new_custom_field_type
|
|
71
|
-
# @event before_edit_custom_field_type
|
|
72
|
-
# @event after_edit_custom_field_type
|
|
73
|
-
# @event before_delete_custom_field_type
|
|
74
|
-
# @event after_delete_custom_field_type
|
|
75
61
|
#
|
|
76
62
|
class CustomFieldTypes < Zen::Controller::AdminController
|
|
77
63
|
map '/admin/custom-field-types'
|
|
@@ -80,8 +66,10 @@ module CustomFields
|
|
|
80
66
|
|
|
81
67
|
csrf_protection :save, :delete
|
|
82
68
|
|
|
83
|
-
|
|
84
|
-
|
|
69
|
+
autosave Model::CustomFieldType,
|
|
70
|
+
Model::CustomFieldType::COLUMNS,
|
|
71
|
+
:edit_custom_field_type
|
|
72
|
+
|
|
85
73
|
before(:index, :edit, :new) do
|
|
86
74
|
@boolean_hash = {
|
|
87
75
|
true => lang('zen_general.special.boolean_hash.true'),
|
|
@@ -103,10 +91,10 @@ module CustomFields
|
|
|
103
91
|
set_breadcrumbs(lang('custom_field_types.titles.index'))
|
|
104
92
|
|
|
105
93
|
@field_types = search do |query|
|
|
106
|
-
|
|
94
|
+
Model::CustomFieldType.search(query).order(:id.asc)
|
|
107
95
|
end
|
|
108
96
|
|
|
109
|
-
@field_types ||=
|
|
97
|
+
@field_types ||= Model::CustomFieldType \
|
|
110
98
|
.eager(:custom_field_method) \
|
|
111
99
|
.order(:id.asc)
|
|
112
100
|
|
|
@@ -128,9 +116,10 @@ module CustomFields
|
|
|
128
116
|
lang('custom_field_types.titles.edit')
|
|
129
117
|
)
|
|
130
118
|
|
|
131
|
-
@custom_field_type
|
|
132
|
-
@custom_field_methods =
|
|
133
|
-
|
|
119
|
+
@custom_field_type = validate_custom_field_type(id)
|
|
120
|
+
@custom_field_methods = Model::CustomFieldMethod.pk_hash(:name)
|
|
121
|
+
|
|
122
|
+
@custom_field_type.set(flash[:form_data]) if flash[:form_data]
|
|
134
123
|
|
|
135
124
|
render_view(:form)
|
|
136
125
|
end
|
|
@@ -149,14 +138,10 @@ module CustomFields
|
|
|
149
138
|
lang('custom_field_types.titles.new')
|
|
150
139
|
)
|
|
151
140
|
|
|
152
|
-
@custom_field_methods =
|
|
153
|
-
|
|
141
|
+
@custom_field_methods = Model::CustomFieldMethod.pk_hash(:name)
|
|
142
|
+
@custom_field_type = Model::CustomFieldType.new
|
|
154
143
|
|
|
155
|
-
if flash[:form_data]
|
|
156
|
-
@custom_field_type = flash[:form_data]
|
|
157
|
-
else
|
|
158
|
-
@custom_field_type = ::CustomFields::Model::CustomFieldType.new
|
|
159
|
-
end
|
|
144
|
+
@custom_field_type.set(flash[:form_data]) if flash[:form_data]
|
|
160
145
|
|
|
161
146
|
render_view(:form)
|
|
162
147
|
end
|
|
@@ -164,66 +149,42 @@ module CustomFields
|
|
|
164
149
|
##
|
|
165
150
|
# Creates a new custom field type or edits an existing one.
|
|
166
151
|
#
|
|
167
|
-
# This method requires either create or update permissions based on the
|
|
168
|
-
# supplied data.
|
|
169
|
-
#
|
|
170
152
|
# @since 0.2.8
|
|
171
|
-
# @event before_edit_custom_field_type
|
|
172
|
-
# @event after_edit_custom_field_type
|
|
173
|
-
# @event before_new_custom_field_type
|
|
174
|
-
# @event after_new_custom_field_type
|
|
175
153
|
# @permission edit_custom_field_type (when editing a field type)
|
|
176
154
|
# @permission new_custom_field_type (when creating a field type)
|
|
177
155
|
#
|
|
178
156
|
def save
|
|
179
|
-
post =
|
|
180
|
-
|
|
181
|
-
:name,
|
|
182
|
-
:language_string,
|
|
183
|
-
:html_class,
|
|
184
|
-
:serialize,
|
|
185
|
-
:allow_markup,
|
|
186
|
-
:custom_field_method_id
|
|
187
|
-
)
|
|
157
|
+
post = post_fields(*Model::CustomFieldType::COLUMNS)
|
|
158
|
+
id = request.params['id']
|
|
188
159
|
|
|
189
|
-
if
|
|
160
|
+
if id and !id.empty?
|
|
190
161
|
authorize_user!(:edit_custom_field_type)
|
|
191
162
|
|
|
192
|
-
field_type
|
|
193
|
-
save_action
|
|
194
|
-
before_event = :before_edit_custom_field_type
|
|
195
|
-
after_event = :after_edit_custom_field_type
|
|
163
|
+
field_type = validate_custom_field_type(id)
|
|
164
|
+
save_action = :save
|
|
196
165
|
else
|
|
197
166
|
authorize_user!(:new_custom_field_type)
|
|
198
167
|
|
|
199
|
-
field_type
|
|
200
|
-
save_action
|
|
201
|
-
before_event = :before_new_custom_field_type
|
|
202
|
-
after_event = :after_new_custom_field_type
|
|
168
|
+
field_type = Model::CustomFieldType.new
|
|
169
|
+
save_action = :new
|
|
203
170
|
end
|
|
204
171
|
|
|
205
|
-
post.delete('id')
|
|
206
|
-
|
|
207
172
|
success = lang("custom_field_types.success.#{save_action}")
|
|
208
173
|
error = lang("custom_field_types.errors.#{save_action}")
|
|
209
174
|
|
|
210
175
|
begin
|
|
211
|
-
|
|
212
|
-
Zen::Event.call(before_event, field_type)
|
|
213
|
-
|
|
176
|
+
field_type.set(post)
|
|
214
177
|
field_type.save
|
|
215
178
|
rescue => e
|
|
216
|
-
Ramaze::Log.error(e
|
|
179
|
+
Ramaze::Log.error(e)
|
|
217
180
|
message(:error, error)
|
|
218
181
|
|
|
219
|
-
flash[:form_data] =
|
|
182
|
+
flash[:form_data] = post
|
|
220
183
|
flash[:form_errors] = field_type.errors
|
|
221
184
|
|
|
222
185
|
redirect_referrer
|
|
223
186
|
end
|
|
224
187
|
|
|
225
|
-
Zen::Event.call(after_event, field_type)
|
|
226
|
-
|
|
227
188
|
message(:success, success)
|
|
228
189
|
redirect(CustomFieldTypes.r(:edit, field_type.id))
|
|
229
190
|
end
|
|
@@ -233,8 +194,6 @@ module CustomFields
|
|
|
233
194
|
# in the POST array "custom_field_type_ids".
|
|
234
195
|
#
|
|
235
196
|
# @since 0.2.8
|
|
236
|
-
# @event before_delete_custom_field_type
|
|
237
|
-
# @event after_delete_custom_field_type
|
|
238
197
|
# @permission delete_custom_field_type
|
|
239
198
|
#
|
|
240
199
|
def delete
|
|
@@ -247,21 +206,18 @@ module CustomFields
|
|
|
247
206
|
end
|
|
248
207
|
|
|
249
208
|
request.params['custom_field_type_ids'].each do |id|
|
|
250
|
-
type =
|
|
209
|
+
type = Model::CustomFieldType[id]
|
|
251
210
|
|
|
252
211
|
next if type.nil?
|
|
253
|
-
Zen::Event.call(:before_delete_custom_field_type, type)
|
|
254
212
|
|
|
255
213
|
begin
|
|
256
214
|
type.destroy
|
|
257
215
|
rescue => e
|
|
258
|
-
Ramaze::Log.error(e
|
|
216
|
+
Ramaze::Log.error(e)
|
|
259
217
|
message(:error, lang('custom_field_types.errors.delete') % id)
|
|
260
218
|
|
|
261
219
|
redirect_referrer
|
|
262
220
|
end
|
|
263
|
-
|
|
264
|
-
Zen::Event.call(:after_delete_custom_field_type, type)
|
|
265
221
|
end
|
|
266
222
|
|
|
267
223
|
message(:success, lang('custom_field_types.success.delete'))
|
|
@@ -12,15 +12,15 @@ module CustomFields
|
|
|
12
12
|
# you've reached this page you'll see an overview of all your custom fields
|
|
13
13
|
# or a message saying no fields were found (if this is the case).
|
|
14
14
|
#
|
|
15
|
-
# 
|
|
16
16
|
#
|
|
17
17
|
# Editing a custom field can be done by clicking on the name of the field,
|
|
18
18
|
# creating a new one can be done by clicking on the button "Add custom
|
|
19
19
|
# field". In both cases you'll be shown a form that looks like the one in
|
|
20
20
|
# the image below.
|
|
21
21
|
#
|
|
22
|
-
# 
|
|
23
|
+
# 
|
|
24
24
|
#
|
|
25
25
|
# In this form you can specify the following fields:
|
|
26
26
|
#
|
|
@@ -58,33 +58,23 @@ module CustomFields
|
|
|
58
58
|
# * edit_custom_field
|
|
59
59
|
# * delete_custom_field
|
|
60
60
|
#
|
|
61
|
-
# ## Events
|
|
62
|
-
#
|
|
63
|
-
# All events in this controller receive an instance of
|
|
64
|
-
# {CustomFields::Model::CustomField}. Just like other packages the event
|
|
65
|
-
# ``after_delete_custom_field`` receives an instance that has already been
|
|
66
|
-
# destroyed, thus you won't be able to make any changes to the object and
|
|
67
|
-
# save them in the database.
|
|
68
|
-
#
|
|
69
61
|
# @since 0.1
|
|
70
62
|
# @map /admin/custom-fields
|
|
71
|
-
# @event before_new_custom_field
|
|
72
|
-
# @event after_new_custom_field
|
|
73
|
-
# @event before_edit_custom_field
|
|
74
|
-
# @event after_edit_custom_field
|
|
75
|
-
# @event before_delete_custom_field
|
|
76
|
-
# @event after_delete_custom_field
|
|
77
63
|
#
|
|
78
64
|
class CustomFields < Zen::Controller::AdminController
|
|
79
65
|
helper :custom_field
|
|
80
66
|
map '/admin/custom-fields'
|
|
81
67
|
title 'custom_fields.titles.%s'
|
|
82
68
|
|
|
69
|
+
autosave Model::CustomField,
|
|
70
|
+
Model::CustomField::COLUMNS,
|
|
71
|
+
:edit_custom_field
|
|
72
|
+
|
|
83
73
|
csrf_protection :save; :delete
|
|
84
74
|
load_asset_group :tabs, [:edit, :new]
|
|
85
75
|
|
|
86
76
|
before(:index, :edit, :new) do
|
|
87
|
-
@custom_field_types =
|
|
77
|
+
@custom_field_types = Model::CustomFieldType.type_hash
|
|
88
78
|
@boolean_hash = {
|
|
89
79
|
true => lang('zen_general.special.boolean_hash.true'),
|
|
90
80
|
false => lang('zen_general.special.boolean_hash.false')
|
|
@@ -111,13 +101,13 @@ module CustomFields
|
|
|
111
101
|
field_group = validate_custom_field_group(custom_field_group_id)
|
|
112
102
|
@custom_field_group_id = custom_field_group_id
|
|
113
103
|
@custom_fields = search do |query|
|
|
114
|
-
|
|
104
|
+
Model::CustomField \
|
|
115
105
|
.search(query) \
|
|
116
106
|
.filter(:custom_field_group_id => custom_field_group_id) \
|
|
117
107
|
.order(:id.asc)
|
|
118
108
|
end
|
|
119
109
|
|
|
120
|
-
@custom_fields ||=
|
|
110
|
+
@custom_fields ||= Model::CustomField \
|
|
121
111
|
.filter(:custom_field_group_id => custom_field_group_id) \
|
|
122
112
|
.order(:id.asc)
|
|
123
113
|
|
|
@@ -153,12 +143,9 @@ module CustomFields
|
|
|
153
143
|
)
|
|
154
144
|
|
|
155
145
|
@custom_field_group_id = custom_field_group_id
|
|
146
|
+
@custom_field = validate_custom_field(id, custom_field_group_id)
|
|
156
147
|
|
|
157
|
-
if flash[:form_data]
|
|
158
|
-
@custom_field = flash[:form_data]
|
|
159
|
-
else
|
|
160
|
-
@custom_field = validate_custom_field(id, custom_field_group_id)
|
|
161
|
-
end
|
|
148
|
+
@custom_field.set(flash[:form_data]) if flash[:form_data]
|
|
162
149
|
|
|
163
150
|
render_view(:form)
|
|
164
151
|
end
|
|
@@ -190,12 +177,9 @@ module CustomFields
|
|
|
190
177
|
)
|
|
191
178
|
|
|
192
179
|
@custom_field_group_id = custom_field_group_id
|
|
180
|
+
@custom_field = Model::CustomField.new
|
|
193
181
|
|
|
194
|
-
if flash[:form_data]
|
|
195
|
-
@custom_field = flash[:form_data]
|
|
196
|
-
else
|
|
197
|
-
@custom_field = ::CustomFields::Model::CustomField.new
|
|
198
|
-
end
|
|
182
|
+
@custom_field.set(flash[:form_data]) if flash[:form_data]
|
|
199
183
|
|
|
200
184
|
render_view(:form)
|
|
201
185
|
end
|
|
@@ -204,75 +188,43 @@ module CustomFields
|
|
|
204
188
|
# Saves the changes made by {#edit} and {#new}.
|
|
205
189
|
#
|
|
206
190
|
# @since 0.1
|
|
207
|
-
# @event before_new_custom_field
|
|
208
|
-
# @event after_new_custom_field
|
|
209
|
-
# @event before_edit_custom_field
|
|
210
|
-
# @event after_edit_custom_field
|
|
211
191
|
# @permission edit_custom_field (when editing a field)
|
|
212
192
|
# @permission new_custom_field (when creating a new field)
|
|
213
193
|
#
|
|
214
194
|
def save
|
|
215
|
-
post =
|
|
216
|
-
|
|
217
|
-
:name,
|
|
218
|
-
:slug,
|
|
219
|
-
:description,
|
|
220
|
-
:sort_order,
|
|
221
|
-
:format,
|
|
222
|
-
:possible_values,
|
|
223
|
-
:required,
|
|
224
|
-
:text_editor,
|
|
225
|
-
:textarea_rows,
|
|
226
|
-
:text_limit,
|
|
227
|
-
:custom_field_group_id,
|
|
228
|
-
:custom_field_type_id
|
|
229
|
-
)
|
|
195
|
+
post = post_fields(*Model::CustomField::COLUMNS)
|
|
196
|
+
id = request.params['id']
|
|
230
197
|
|
|
231
198
|
validate_custom_field_group(post['custom_field_group_id'])
|
|
232
199
|
|
|
233
|
-
|
|
234
|
-
# field.
|
|
235
|
-
if post['id'] and !post['id'].empty?
|
|
200
|
+
if id and !id.empty?
|
|
236
201
|
authorize_user!(:edit_custom_field)
|
|
237
202
|
|
|
238
|
-
custom_field = validate_custom_field(
|
|
239
|
-
post['id'], post['custom_field_group_id']
|
|
240
|
-
)
|
|
241
|
-
|
|
203
|
+
custom_field = validate_custom_field(id, post['custom_field_group_id'])
|
|
242
204
|
save_action = :save
|
|
243
|
-
before_event = :before_edit_custom_field
|
|
244
|
-
after_event = :after_edit_custom_field
|
|
245
205
|
else
|
|
246
206
|
authorize_user!(:new_custom_field)
|
|
247
207
|
|
|
248
|
-
custom_field =
|
|
208
|
+
custom_field = Model::CustomField.new
|
|
249
209
|
save_action = :new
|
|
250
|
-
before_event = :before_new_custom_field
|
|
251
|
-
after_event = :after_new_custom_field
|
|
252
210
|
end
|
|
253
211
|
|
|
254
|
-
post.delete('id')
|
|
255
|
-
|
|
256
212
|
success = lang("custom_fields.success.#{save_action}")
|
|
257
213
|
error = lang("custom_fields.errors.#{save_action}")
|
|
258
214
|
|
|
259
215
|
begin
|
|
260
|
-
|
|
261
|
-
Zen::Event.call(before_event, custom_field)
|
|
262
|
-
|
|
216
|
+
custom_field.set(post)
|
|
263
217
|
custom_field.save
|
|
264
218
|
rescue => e
|
|
265
|
-
Ramaze::Log.error(e
|
|
219
|
+
Ramaze::Log.error(e)
|
|
266
220
|
message(:error, error)
|
|
267
221
|
|
|
268
|
-
flash[:form_data] =
|
|
222
|
+
flash[:form_data] = post
|
|
269
223
|
flash[:form_errors] = custom_field.errors
|
|
270
224
|
|
|
271
225
|
redirect_referrer
|
|
272
226
|
end
|
|
273
227
|
|
|
274
|
-
Zen::Event.call(after_event, custom_field)
|
|
275
|
-
|
|
276
228
|
message(:success, success)
|
|
277
229
|
redirect(
|
|
278
230
|
CustomFields.r(:edit, post['custom_field_group_id'], custom_field.id)
|
|
@@ -287,14 +239,12 @@ module CustomFields
|
|
|
287
239
|
# should contain the primary values of each field that has to be deleted.
|
|
288
240
|
#
|
|
289
241
|
# @since 0.1
|
|
290
|
-
# @event before_delete_custom_field
|
|
291
|
-
# @event after_delete_custom_field
|
|
292
242
|
# @permission delete_custom_field
|
|
293
243
|
#
|
|
294
244
|
def delete
|
|
295
245
|
authorize_user!(:delete_custom_field)
|
|
296
246
|
|
|
297
|
-
post =
|
|
247
|
+
post = post_fields(:custom_field_ids)
|
|
298
248
|
|
|
299
249
|
if post['custom_field_ids'].nil? or post['custom_field_ids'].empty?
|
|
300
250
|
message(:error, lang('custom_fields.errors.no_delete'))
|
|
@@ -302,21 +252,18 @@ module CustomFields
|
|
|
302
252
|
end
|
|
303
253
|
|
|
304
254
|
request.params['custom_field_ids'].each do |id|
|
|
305
|
-
custom_field =
|
|
255
|
+
custom_field = Model::CustomField[id]
|
|
306
256
|
|
|
307
257
|
next if custom_field.nil?
|
|
308
|
-
Zen::Event.call(:before_delete_custom_field, custom_field)
|
|
309
258
|
|
|
310
259
|
begin
|
|
311
260
|
custom_field.destroy
|
|
312
261
|
rescue => e
|
|
313
|
-
Ramaze::Log.error(e
|
|
262
|
+
Ramaze::Log.error(e)
|
|
314
263
|
message(:error, lang('custom_fields.errors.delete') % id)
|
|
315
264
|
|
|
316
265
|
redirect_referrer
|
|
317
266
|
end
|
|
318
|
-
|
|
319
|
-
Zen::Event.call(:after_delete_custom_field, custom_field)
|
|
320
267
|
end
|
|
321
268
|
|
|
322
269
|
message(:success, lang('custom_fields.success.delete'))
|
|
@@ -4,11 +4,37 @@ module CustomFields
|
|
|
4
4
|
##
|
|
5
5
|
# Model for managing retrieving custom fields.
|
|
6
6
|
#
|
|
7
|
-
# @since
|
|
7
|
+
# @since 0.1
|
|
8
|
+
# @event before_new_custom_field
|
|
9
|
+
# @event after_new_custom_field
|
|
10
|
+
# @event before_edit_custom_field
|
|
11
|
+
# @event after_edit_custom_field
|
|
12
|
+
# @event before_delete_custom_field
|
|
13
|
+
# @event after_delete_custom_field
|
|
8
14
|
#
|
|
9
15
|
class CustomField < Sequel::Model
|
|
10
16
|
include Zen::Model::Helper
|
|
11
17
|
|
|
18
|
+
##
|
|
19
|
+
# Array containing all the columns the user can set.
|
|
20
|
+
#
|
|
21
|
+
# @since 17-02-2012
|
|
22
|
+
#
|
|
23
|
+
COLUMNS = [
|
|
24
|
+
:name,
|
|
25
|
+
:slug,
|
|
26
|
+
:description,
|
|
27
|
+
:sort_order,
|
|
28
|
+
:format,
|
|
29
|
+
:possible_values,
|
|
30
|
+
:required,
|
|
31
|
+
:text_editor,
|
|
32
|
+
:textarea_rows,
|
|
33
|
+
:text_limit,
|
|
34
|
+
:custom_field_group_id,
|
|
35
|
+
:custom_field_type_id
|
|
36
|
+
]
|
|
37
|
+
|
|
12
38
|
one_to_many :custom_field_values,
|
|
13
39
|
:class => "CustomFields::Model::CustomFieldValue"
|
|
14
40
|
|
|
@@ -16,8 +42,18 @@ module CustomFields
|
|
|
16
42
|
:class => 'CustomFields::Model::CustomFieldType',
|
|
17
43
|
:eager => [:custom_field_method]
|
|
18
44
|
|
|
45
|
+
plugin :association_dependencies, :custom_field_values => :delete
|
|
46
|
+
|
|
19
47
|
plugin :sluggable, :source => :name, :freeze => false
|
|
20
48
|
|
|
49
|
+
plugin :events,
|
|
50
|
+
:before_create => :before_new_custom_field,
|
|
51
|
+
:after_create => :after_new_custom_field,
|
|
52
|
+
:before_update => :before_edit_custom_field,
|
|
53
|
+
:after_update => :after_edit_custom_field,
|
|
54
|
+
:before_destroy => :before_delete_custom_field,
|
|
55
|
+
:after_destroy => :after_delete_custom_field
|
|
56
|
+
|
|
21
57
|
##
|
|
22
58
|
# Searches for a set of custom fields.
|
|
23
59
|
#
|
|
@@ -56,6 +92,17 @@ module CustomFields
|
|
|
56
92
|
validates_presence(:slug) unless new?
|
|
57
93
|
validates_unique(:slug)
|
|
58
94
|
end
|
|
95
|
+
|
|
96
|
+
##
|
|
97
|
+
# Hook that is executed before creating or saving an object.
|
|
98
|
+
#
|
|
99
|
+
# @since 03-01-2012
|
|
100
|
+
#
|
|
101
|
+
def before_save
|
|
102
|
+
sanitize_fields([:name, :slug, :description, :format])
|
|
103
|
+
|
|
104
|
+
super
|
|
105
|
+
end
|
|
59
106
|
end # CustomField
|
|
60
107
|
end # Model
|
|
61
108
|
end # CustomFields
|