zen 0.3 → 0.4
Sign up to get free protection for your applications and to get access to all the features.
- 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
@@ -3,59 +3,62 @@
|
|
3
3
|
<h1>#{get_breadcrumbs}</h1>
|
4
4
|
</header>
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
6
|
+
<div class="body">
|
7
|
+
#{form_for(
|
8
|
+
@comment,
|
9
|
+
:method => :post,
|
10
|
+
:action => Comments::Controller::Comments.r(:save),
|
11
|
+
:id => :comment_form,
|
12
|
+
:'data-autosave-url' => Comments::Controller::Comments.r(:autosave)
|
13
|
+
) do |f|
|
14
|
+
f.input_hidden(:csrf_token, get_csrf_token)
|
15
|
+
f.input_hidden(:id , @comment.id)
|
14
16
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
17
|
+
f.input_text(
|
18
|
+
lang('comments.labels.name'),
|
19
|
+
:name,
|
20
|
+
:value => @comment.user_name,
|
21
|
+
:disabled => :disabled
|
22
|
+
)
|
21
23
|
|
22
|
-
|
24
|
+
if @comment.user.nil?
|
25
|
+
f.input_text(
|
26
|
+
lang('comments.labels.website'),
|
27
|
+
:website,
|
28
|
+
:value => @comment.website,
|
29
|
+
:maxlength => 255
|
30
|
+
)
|
23
31
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
32
|
+
f.input_text(
|
33
|
+
lang('comments.labels.email'),
|
34
|
+
:email,
|
35
|
+
:value => @comment.email,
|
36
|
+
:required => :required,
|
37
|
+
:maxlength => 255
|
38
|
+
)
|
39
|
+
end
|
30
40
|
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
41
|
+
f.select(
|
42
|
+
lang('comments.labels.status'),
|
43
|
+
:comment_status_id,
|
44
|
+
:values => Comments::Model::Comment.status_hash,
|
45
|
+
:selected => @comment.comment_status_id,
|
46
|
+
:size => 1,
|
47
|
+
:required => :required
|
48
|
+
)
|
38
49
|
|
39
|
-
|
50
|
+
f.textarea(
|
51
|
+
lang('comments.labels.comment'),
|
52
|
+
:comment,
|
53
|
+
:rows => 10,
|
54
|
+
:required => :required
|
55
|
+
)
|
40
56
|
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
)
|
49
|
-
|
50
|
-
f.textarea(
|
51
|
-
lang('comments.labels.comment'),
|
52
|
-
:comment,
|
53
|
-
:rows => 10,
|
54
|
-
:required => :required
|
55
|
-
)
|
56
|
-
|
57
|
-
f.g.div(:class => 'button') do
|
58
|
-
f.g.input(:type => 'submit', :value => lang('comments.buttons.save'))
|
59
|
-
end
|
60
|
-
end}
|
57
|
+
f.g.input(
|
58
|
+
:type => 'submit',
|
59
|
+
:value => lang('comments.buttons.save'),
|
60
|
+
:class => 'button'
|
61
|
+
)
|
62
|
+
end}
|
63
|
+
</div>
|
61
64
|
</section>
|
@@ -1,75 +1,67 @@
|
|
1
1
|
<section>
|
2
|
-
|
3
|
-
|
4
|
-
<header>
|
2
|
+
<header class="with_search">
|
5
3
|
<h1>#{get_breadcrumbs}</h1>
|
6
|
-
</header>
|
7
4
|
|
8
|
-
|
9
|
-
|
5
|
+
#{render_search_form(::Comments::Controller::Comments.r(:index))}
|
6
|
+
</header>
|
10
7
|
|
11
|
-
|
8
|
+
<div class="body">
|
9
|
+
<form method="post" action="#{Comments::Controller::Comments.r(:delete)}">
|
10
|
+
<input type="hidden" name="csrf_token" value="#{get_csrf_token}" />
|
12
11
|
|
13
|
-
|
14
|
-
<thead>
|
15
|
-
<?r if user_authorized?(:delete_comment) ?>
|
16
|
-
<th class="no_sort">
|
17
|
-
<input type="checkbox" />
|
18
|
-
</th>
|
19
|
-
<?r end ?>
|
12
|
+
<?r if !@comments.empty? ?>
|
20
13
|
|
21
|
-
|
22
|
-
<
|
23
|
-
<th>#{lang('comments.labels.entry')}</th>
|
24
|
-
<th>#{lang('comments.labels.status')}</th>
|
25
|
-
<th>#{lang('comments.labels.name')}</th>
|
26
|
-
<th>#{lang('comments.labels.email')}</th>
|
27
|
-
<th>#{lang('comments.labels.website')}</th>
|
28
|
-
<th>#{lang('comments.labels.created_at')}</th>
|
29
|
-
</thead>
|
30
|
-
<tbody>
|
31
|
-
<?r @comments.each do |comment| ?>
|
32
|
-
<tr>
|
14
|
+
<table>
|
15
|
+
<thead>
|
33
16
|
<?r if user_authorized?(:delete_comment) ?>
|
34
|
-
<
|
35
|
-
<input type="checkbox"
|
36
|
-
|
37
|
-
</td>
|
17
|
+
<th class="no_sort">
|
18
|
+
<input type="checkbox" />
|
19
|
+
</th>
|
38
20
|
<?r end ?>
|
39
21
|
|
40
|
-
<
|
41
|
-
<
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
<
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
22
|
+
<th>#{lang('comments.labels.id')}</th>
|
23
|
+
<th>#{lang('comments.labels.comment')}</th>
|
24
|
+
<th>#{lang('comments.labels.entry')}</th>
|
25
|
+
<th>#{lang('comments.labels.status')}</th>
|
26
|
+
<th>#{lang('comments.labels.name')}</th>
|
27
|
+
<th>#{lang('comments.labels.email')}</th>
|
28
|
+
<th>#{lang('comments.labels.created_at')}</th>
|
29
|
+
</thead>
|
30
|
+
<tbody>
|
31
|
+
<?r @comments.each do |comment| ?>
|
32
|
+
<tr>
|
33
|
+
<?r if user_authorized?(:delete_comment) ?>
|
34
|
+
<td>
|
35
|
+
<input type="checkbox" name="comment_ids[]"
|
36
|
+
value="#{comment.id}" />
|
37
|
+
</td>
|
38
|
+
<?r end ?>
|
39
|
+
|
40
|
+
<td>#{comment.id}</td>
|
41
|
+
<td>
|
42
|
+
#{comment.summary(user_authorized?(:edit_comment))}
|
43
|
+
</td>
|
44
|
+
<td>#{comment.section_entry.title}</td>
|
45
|
+
<td>#{comment.status_name}</td>
|
46
|
+
<td>#{comment.user_website(true, comment.user_name)}</td>
|
47
|
+
<td>#{comment.user_email}</td>
|
48
|
+
<td>#{format_date(comment.created_at)}</td>
|
49
|
+
</tr>
|
50
|
+
<?r end ?>
|
51
|
+
</tbody>
|
52
|
+
</table>
|
58
53
|
|
59
|
-
|
60
|
-
@comments.navigation
|
61
|
-
end}
|
54
|
+
#{render_pagination(@comments)}
|
62
55
|
|
63
|
-
|
56
|
+
<?r else ?>
|
64
57
|
|
65
|
-
|
58
|
+
<p>#{lang('comments.messages.no_comments')}</p>
|
66
59
|
|
67
|
-
|
60
|
+
<?r end ?>
|
68
61
|
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
</
|
73
|
-
|
74
|
-
</form>
|
62
|
+
<?r if user_authorized?(:delete_comment) and !@comments.empty? ?>
|
63
|
+
#{delete_button(lang('comments.buttons.delete'))}
|
64
|
+
<?r end ?>
|
65
|
+
</form>
|
66
|
+
</div>
|
75
67
|
</section>
|
@@ -49,7 +49,7 @@ Sequel.migration do
|
|
49
49
|
# MySQL doesn't automatically drop foreign keys, because of this the one
|
50
50
|
# for the comment status ID has to be removed manually. Luckily the name
|
51
51
|
# of the foreign key is rather easy to figure out.
|
52
|
-
if Zen.database.
|
52
|
+
if Zen.database.database_type.to_s.include?('mysql')
|
53
53
|
drop_constraint(:comments_ibfk_2, :type => :foreign_key)
|
54
54
|
end
|
55
55
|
|
@@ -7,17 +7,13 @@ Zen::Package.add do |p|
|
|
7
7
|
p.root = __DIR__('custom_fields')
|
8
8
|
p.migrations = __DIR__('../migrations')
|
9
9
|
|
10
|
-
p.menu
|
11
|
-
'custom_fields.titles.index',
|
10
|
+
p.menu 'custom_fields.titles.index',
|
12
11
|
'/admin/custom-field-groups',
|
13
12
|
:permission => :show_custom_field_group
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
:permission => :show_custom_field
|
19
|
-
)
|
20
|
-
end
|
13
|
+
|
14
|
+
p.menu 'custom_field_types.titles.index',
|
15
|
+
'/admin/custom-field-types',
|
16
|
+
:permission => :show_custom_field
|
21
17
|
|
22
18
|
p.permission :show_custom_field_group, 'custom_field_groups.permissions.show'
|
23
19
|
p.permission :edit_custom_field_group, 'custom_field_groups.permissions.edit'
|
@@ -36,10 +32,6 @@ Zen::Package.add do |p|
|
|
36
32
|
p.permission :delete_custom_field, 'custom_fields.permissions.delete'
|
37
33
|
end
|
38
34
|
|
39
|
-
Zen::Language.load('custom_fields')
|
40
|
-
Zen::Language.load('custom_field_groups')
|
41
|
-
Zen::Language.load('custom_field_types')
|
42
|
-
|
43
35
|
require __DIR__('custom_fields/model/custom_field_method')
|
44
36
|
require __DIR__('custom_fields/model/custom_field_type')
|
45
37
|
require __DIR__('custom_fields/model/custom_field')
|
@@ -51,3 +43,9 @@ require __DIR__('custom_fields/controller/custom_fields')
|
|
51
43
|
require __DIR__('custom_fields/controller/custom_field_types')
|
52
44
|
|
53
45
|
require __DIR__('custom_fields/blue_form_parameters')
|
46
|
+
|
47
|
+
Zen::Event.listen :post_start do
|
48
|
+
Zen::Language.load('custom_fields')
|
49
|
+
Zen::Language.load('custom_field_groups')
|
50
|
+
Zen::Language.load('custom_field_types')
|
51
|
+
end
|
@@ -87,11 +87,9 @@ module CustomFields
|
|
87
87
|
def input_text(field, field_value)
|
88
88
|
type = field.custom_field_type
|
89
89
|
value = field_value.value rescue nil
|
90
|
+
name = "custom_field_value_#{field.id}"
|
90
91
|
params = [
|
91
|
-
:input_text,
|
92
|
-
field.name,
|
93
|
-
"custom_field_value_#{field.id}",
|
94
|
-
{:value => value}
|
92
|
+
:input_text, field.name, name, {:value => get_value(name, value)}
|
95
93
|
]
|
96
94
|
|
97
95
|
if !field.text_limit.nil?
|
@@ -164,13 +162,8 @@ module CustomFields
|
|
164
162
|
def input_radio(field, field_value)
|
165
163
|
type = field.custom_field_type
|
166
164
|
value = field_value.value rescue nil
|
167
|
-
|
168
|
-
|
169
|
-
field.name,
|
170
|
-
"custom_field_value_#{field.id}",
|
171
|
-
value,
|
172
|
-
{}
|
173
|
-
]
|
165
|
+
name = "custom_field_value_#{field.id}"
|
166
|
+
params = [:input_radio, field.name, name, get_value(name, value), {}]
|
174
167
|
|
175
168
|
# Convert the string containing the possible values to a hash.
|
176
169
|
if !field.possible_values.nil? and !field.possible_values.empty?
|
@@ -215,11 +208,12 @@ module CustomFields
|
|
215
208
|
def select(field, field_value)
|
216
209
|
type = field.custom_field_type
|
217
210
|
value = field_value.value rescue nil
|
211
|
+
name = "custom_field_value_#{field.id}"
|
218
212
|
params = [
|
219
213
|
:select,
|
220
214
|
field.name,
|
221
|
-
|
222
|
-
{:selected => value, :size => 1}
|
215
|
+
name,
|
216
|
+
{:selected => get_value(name, value), :size => 1}
|
223
217
|
]
|
224
218
|
|
225
219
|
# Convert the string containing the possible values to a hash.
|
@@ -259,6 +253,28 @@ module CustomFields
|
|
259
253
|
|
260
254
|
return params
|
261
255
|
end
|
256
|
+
|
257
|
+
private
|
258
|
+
|
259
|
+
##
|
260
|
+
# Determines the value of a custom field. If a field's value is set in
|
261
|
+
# ``flash[:form_data]`` it will be retrieved from this hash, otherwise the
|
262
|
+
# default value is used.
|
263
|
+
#
|
264
|
+
# @since 26-02-2012
|
265
|
+
# @param [String] name The name of the field.
|
266
|
+
# @param [Mixed] value The default value.
|
267
|
+
# @return [Mixed]
|
268
|
+
#
|
269
|
+
def get_value(name, value)
|
270
|
+
if Ramaze::Current.session \
|
271
|
+
and Ramaze::Current.session.flash[:form_data] \
|
272
|
+
and Ramaze::Current.session.flash[:form_data].key?(name)
|
273
|
+
value = Ramaze::Current.session.flash[:form_data][name]
|
274
|
+
end
|
275
|
+
|
276
|
+
return value
|
277
|
+
end
|
262
278
|
end # class << self
|
263
279
|
end # BlueFormParameters
|
264
280
|
end # CustomFields
|
@@ -34,7 +34,7 @@ module CustomFields
|
|
34
34
|
# existing groups these will be displayed, otherwise a message telling you
|
35
35
|
# that do don't have any groups will be displayed instead.
|
36
36
|
#
|
37
|
-
# ![Groups](../../
|
37
|
+
# ![Groups](../../images/custom_fields/custom_field_groups.png)
|
38
38
|
#
|
39
39
|
# Just like with other packages you can delete records by clicking the
|
40
40
|
# checkboxes followed by the "Delete selected groups" button. Groups can be
|
@@ -43,7 +43,7 @@ module CustomFields
|
|
43
43
|
#
|
44
44
|
# ## Adding/Editing Groups
|
45
45
|
#
|
46
|
-
# ![Edit Group](../../
|
46
|
+
# ![Edit Group](../../images/custom_fields/edit_custom_field_group.png)
|
47
47
|
#
|
48
48
|
# When creating a new group or editing an existing group you can fill in the
|
49
49
|
# following two fields:
|
@@ -62,27 +62,18 @@ module CustomFields
|
|
62
62
|
# * edit_custom_field_group
|
63
63
|
# * delete_custom_field_group
|
64
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
65
|
# @since 0.1
|
73
66
|
# @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
|
80
67
|
#
|
81
68
|
class CustomFieldGroups < Zen::Controller::AdminController
|
82
69
|
helper :custom_field
|
83
70
|
map '/admin/custom-field-groups'
|
84
71
|
title 'custom_field_groups.titles.%s'
|
85
72
|
|
73
|
+
autosave Model::CustomFieldGroup,
|
74
|
+
Model::CustomFieldGroup::COLUMNS,
|
75
|
+
:edit_custom_field_group
|
76
|
+
|
86
77
|
csrf_protection :save, :delete
|
87
78
|
|
88
79
|
##
|
@@ -123,7 +114,8 @@ module CustomFields
|
|
123
114
|
@page_title
|
124
115
|
)
|
125
116
|
|
126
|
-
@field_group =
|
117
|
+
@field_group = validate_custom_field_group(id)
|
118
|
+
@field_group.set(flash[:form_data]) if flash[:form_data]
|
127
119
|
|
128
120
|
render_view(:form)
|
129
121
|
end
|
@@ -142,11 +134,8 @@ module CustomFields
|
|
142
134
|
@page_title
|
143
135
|
)
|
144
136
|
|
145
|
-
|
146
|
-
|
147
|
-
else
|
148
|
-
@field_group = ::CustomFields::Model::CustomFieldGroup.new
|
149
|
-
end
|
137
|
+
@field_group = Model::CustomFieldGroup.new
|
138
|
+
@field_group.set(flash[:form_data]) if flash[:form_data]
|
150
139
|
|
151
140
|
render_view(:form)
|
152
141
|
end
|
@@ -159,52 +148,39 @@ module CustomFields
|
|
159
148
|
# @since 0.1
|
160
149
|
# @permission edit_custom_field_group (when editing a group)
|
161
150
|
# @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
|
166
151
|
#
|
167
152
|
def save
|
168
|
-
post =
|
153
|
+
post = post_fields(*Model::CustomFieldGroup::COLUMNS)
|
154
|
+
id = request.params['id']
|
169
155
|
|
170
|
-
if
|
156
|
+
if id and !id.empty?
|
171
157
|
authorize_user!(:edit_custom_field_group)
|
172
158
|
|
173
|
-
field_group
|
174
|
-
save_action
|
175
|
-
before_event = :before_edit_custom_field_group
|
176
|
-
after_event = :after_edit_custom_field_group
|
159
|
+
field_group = validate_custom_field_group(id)
|
160
|
+
save_action = :save
|
177
161
|
else
|
178
162
|
authorize_user!(:new_custom_field_group)
|
179
163
|
|
180
|
-
field_group
|
181
|
-
save_action
|
182
|
-
before_event = :before_new_custom_field_group
|
183
|
-
after_event = :after_new_custom_field_group
|
164
|
+
field_group = ::CustomFields::Model::CustomFieldGroup.new
|
165
|
+
save_action = :new
|
184
166
|
end
|
185
167
|
|
186
|
-
post.delete('id')
|
187
|
-
|
188
168
|
success = lang("custom_field_groups.success.#{save_action}")
|
189
169
|
error = lang("custom_field_groups.errors.#{save_action}")
|
190
170
|
|
191
171
|
begin
|
192
|
-
|
193
|
-
Zen::Event.call(before_event, field_group)
|
194
|
-
|
172
|
+
field_group.set(post)
|
195
173
|
field_group.save
|
196
174
|
rescue => e
|
197
|
-
Ramaze::Log.error(e
|
175
|
+
Ramaze::Log.error(e)
|
198
176
|
message(:error, error)
|
199
177
|
|
200
178
|
flash[:form_errors] = field_group.errors
|
201
|
-
flash[:form_data] =
|
179
|
+
flash[:form_data] = post
|
202
180
|
|
203
181
|
redirect_referrer
|
204
182
|
end
|
205
183
|
|
206
|
-
Zen::Event.call(after_event, field_group)
|
207
|
-
|
208
184
|
message(:success, success)
|
209
185
|
redirect(CustomFieldGroups.r(:edit, field_group.id))
|
210
186
|
end
|
@@ -215,8 +191,6 @@ module CustomFields
|
|
215
191
|
#
|
216
192
|
# @since 0.1
|
217
193
|
# @permission delete_custom_field_group
|
218
|
-
# @event before_delete_custom_field_group
|
219
|
-
# @event after_delete_custom_field_group
|
220
194
|
#
|
221
195
|
def delete
|
222
196
|
authorize_user!(:delete_custom_field_group)
|
@@ -231,18 +205,15 @@ module CustomFields
|
|
231
205
|
group = ::CustomFields::Model::CustomFieldGroup[id]
|
232
206
|
|
233
207
|
next if group.nil?
|
234
|
-
Zen::Event.call(:before_delete_custom_field_group, group)
|
235
208
|
|
236
209
|
begin
|
237
210
|
group.destroy
|
238
211
|
rescue => e
|
239
|
-
Ramaze::Log.error(e
|
212
|
+
Ramaze::Log.error(e)
|
240
213
|
message(:error, lang('custom_field_groups.errors.delete') % id)
|
241
214
|
|
242
215
|
redirect_referrer
|
243
216
|
end
|
244
|
-
|
245
|
-
Zen::Event.call(:after_delete_custom_field_group, group)
|
246
217
|
end
|
247
218
|
|
248
219
|
message(:success, lang('custom_field_groups.success.delete'))
|