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
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
data/guide/installation.md
CHANGED
|
@@ -36,7 +36,13 @@ have a local copy there are two ways of using it:
|
|
|
36
36
|
|
|
37
37
|
The latter is recommended as you don't have to build the Gem each time. In order
|
|
38
38
|
to do this you simply need to replace all calls to require() that load data from
|
|
39
|
-
the gem with a path to the local copy of Zen.
|
|
39
|
+
the gem with a path to the local copy of Zen. This means that the following:
|
|
40
|
+
|
|
41
|
+
require 'zen'
|
|
42
|
+
|
|
43
|
+
Should be converted to this:
|
|
44
|
+
|
|
45
|
+
require File.expand_path('../path/to/zen/lib/zen', __FILE__)
|
|
40
46
|
|
|
41
47
|
For an overview of all available tasks that can be executed in your local copy
|
|
42
48
|
of Zen execute the following command:
|
data/guide/javascript.md
CHANGED
|
@@ -23,8 +23,7 @@ classes created by other developers.
|
|
|
23
23
|
|
|
24
24
|
Creating a class (including a namespace) works like the following:
|
|
25
25
|
|
|
26
|
-
|
|
27
|
-
var Foobar = {};
|
|
26
|
+
namespace('Foobar');
|
|
28
27
|
|
|
29
28
|
Foobar.ClassName = new Class(
|
|
30
29
|
{
|
|
@@ -39,8 +38,7 @@ This allows you to access your class as following:
|
|
|
39
38
|
var instance = new Foobar.ClassName();
|
|
40
39
|
|
|
41
40
|
The namespace you're using doesn't really matter as long as you **do not** use
|
|
42
|
-
the "Zen" namespace, it's reserved for all the
|
|
43
|
-
included in Zen.
|
|
41
|
+
the "Zen" namespace, it's reserved for all the classes that ship with Zen.
|
|
44
42
|
|
|
45
43
|
It's also important to remember that there's no guarantee Javascript (and CSS)
|
|
46
44
|
files are loaded in a particular order. Because of that you should always wrap
|
|
@@ -54,23 +52,16 @@ your code (except for class declarations and such) in the following code:
|
|
|
54
52
|
This function will be executed once the DOM (and thus all the resources) are
|
|
55
53
|
fully loaded.
|
|
56
54
|
|
|
57
|
-
<div class="note deprecated">
|
|
58
|
-
<p>
|
|
59
|
-
<strong>Warning</strong>: Do not put class declarations inside this
|
|
60
|
-
block as it may lead to unexpected behavior.
|
|
61
|
-
</p>
|
|
62
|
-
</div>
|
|
63
|
-
|
|
64
55
|
## Available Classes
|
|
65
56
|
|
|
66
57
|
Out of the box the following classes are available:
|
|
67
58
|
|
|
68
|
-
* Zen.Window
|
|
69
|
-
* Zen.Tabs
|
|
70
|
-
* Zen.
|
|
71
|
-
* Zen.Editor
|
|
72
|
-
* Zen.
|
|
73
|
-
* Zen.
|
|
59
|
+
* {file:javascript/zen_window Zen.Window}
|
|
60
|
+
* {file:javascript/zen_tabs Zen.Tabs}
|
|
61
|
+
* {file:javascript/zen_hash Zen.Hash}
|
|
62
|
+
* {file:javascript/zen_editor Zen.Editor}
|
|
63
|
+
* {file:javascript/zen_htmltable Zen.HtmlTable}
|
|
64
|
+
* {file:javascript/zen_autosave Zen.Autosave}
|
|
74
65
|
|
|
75
66
|
The following third-party classes are also provided:
|
|
76
67
|
|
|
@@ -78,275 +69,47 @@ The following third-party classes are also provided:
|
|
|
78
69
|
* Picker.Date
|
|
79
70
|
* Picker.Attach
|
|
80
71
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
The Window class can be used to display modal windows with (or without) a set of
|
|
84
|
-
custom buttons. These windows can be used for displaying pictures, confirmation
|
|
85
|
-
messages and so on. In order to display a window you'll need to create a new
|
|
86
|
-
instance of the class. The syntax of this looks like the following:
|
|
87
|
-
|
|
88
|
-
var some_window = new Zen.Window(content[, options]);
|
|
89
|
-
|
|
90
|
-
<div class="note deprecated">
|
|
91
|
-
<p>
|
|
92
|
-
<strong>Warning</strong>: When creating an instance of Zen.Window you
|
|
93
|
-
should never save it in a variable named "window" as this is a reserved
|
|
94
|
-
variable that refers to the browser window.
|
|
95
|
-
</p>
|
|
96
|
-
</div>
|
|
97
|
-
|
|
98
|
-
The first parameter is the content to display and can either be plain text or
|
|
99
|
-
HTML. The second parameter is an object containing various options that can be
|
|
100
|
-
used to customize the window. The following options can be set in this object:
|
|
72
|
+
## Datepickers
|
|
101
73
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
* resize: boolean that when set to true allows the user to resize the window.
|
|
106
|
-
* move: boolean that when set to true allows the user to move the window around.
|
|
107
|
-
* buttons: an array of buttons to display at the bottom of the window.
|
|
74
|
+
Zen comes with a version of [Mootools Datepicker][mootools datepicker]. To load
|
|
75
|
+
this datepicker you must load the asset group ``:datepicker`` in your
|
|
76
|
+
controller:
|
|
108
77
|
|
|
109
|
-
|
|
110
|
-
|
|
78
|
+
class Posts < Zen::Controller::AdminController
|
|
79
|
+
map '/admin/posts'
|
|
111
80
|
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
Note that you're not required to call any extra methods, the window will be
|
|
115
|
-
displayed whenever a new instance of the window is created.
|
|
116
|
-
|
|
117
|
-
Buttons can be added by setting the "buttons" option to an array of objects of
|
|
118
|
-
which each object has the following format:
|
|
119
|
-
|
|
120
|
-
{
|
|
121
|
-
name: 'foobar',
|
|
122
|
-
label: 'Foobar',
|
|
123
|
-
onClick: function() {}
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
* name: the name of the button, should be unique as it's used for the class of
|
|
127
|
-
the ``li`` element of the button.
|
|
128
|
-
* label: the text displayed in the button.
|
|
129
|
-
* onClick: a function that will be called whenever the button is clicked.
|
|
130
|
-
|
|
131
|
-
<div class="note todo">
|
|
132
|
-
<p>
|
|
133
|
-
<strong>Note</strong>: Currently the resize and move features are a bit
|
|
134
|
-
buggy, especially when they're both used. This will be fixed in one of
|
|
135
|
-
the next releases.
|
|
136
|
-
</p>
|
|
137
|
-
</div>
|
|
81
|
+
load_asset_group [:datepicker], [:new, :edit]
|
|
138
82
|
|
|
139
|
-
|
|
83
|
+
def new
|
|
140
84
|
|
|
141
|
-
|
|
142
|
-
uses this class for all elements that match the selector ``div.tabs ul`` it's
|
|
143
|
-
usually not required to manually create an instance of this class.
|
|
85
|
+
end
|
|
144
86
|
|
|
145
|
-
|
|
87
|
+
def edit(id)
|
|
146
88
|
|
|
147
|
-
|
|
89
|
+
end
|
|
90
|
+
end
|
|
148
91
|
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
used should result in a number of ``ul`` elements, not ``div`` elements (or any
|
|
152
|
-
other elements).
|
|
92
|
+
For more information on loading assets see {file:asset_management.md Asset
|
|
93
|
+
Management}.
|
|
153
94
|
|
|
154
|
-
|
|
95
|
+
In order to use the datepicker you'll have to add the class "date" to your input
|
|
96
|
+
elements:
|
|
155
97
|
|
|
156
|
-
|
|
98
|
+
<input type="text" name="my_date" class="date" />
|
|
157
99
|
|
|
158
|
-
|
|
100
|
+
In order to customize the datepicker you can set the following attributes:
|
|
159
101
|
|
|
160
|
-
*
|
|
161
|
-
|
|
162
|
-
*
|
|
163
|
-
|
|
102
|
+
* data-date-format: a custom date format to use for input and output
|
|
103
|
+
values. Set to the format as defined in ``Zen.date_format`` by default.
|
|
104
|
+
* data-date-time: when set to "1" or "true" users can also select a time. Set to
|
|
105
|
+
false by default.
|
|
106
|
+
* data-date-min: string containing the minimum date.
|
|
107
|
+
* data-date-max: string containing the maximum date.
|
|
164
108
|
|
|
165
|
-
|
|
166
|
-
markup is correct. The links of the tabs should point to an ID of an element
|
|
167
|
-
with a class of "tab_content":
|
|
109
|
+
An example of using these attributes is the following:
|
|
168
110
|
|
|
169
|
-
<
|
|
170
|
-
|
|
171
|
-
</div>
|
|
172
|
-
|
|
173
|
-
In order to display this field the corresponding tab URL should be ``#some_id``.
|
|
174
|
-
A full example of the required markup, including the markup for the tab menu,
|
|
175
|
-
looks like the following:
|
|
176
|
-
|
|
177
|
-
<div class="tabs">
|
|
178
|
-
<ul>
|
|
179
|
-
<li>
|
|
180
|
-
<a href="#my_tab">This is my tab</a>
|
|
181
|
-
</li>
|
|
182
|
-
</ul>
|
|
183
|
-
</div>
|
|
184
|
-
|
|
185
|
-
<div id="my_tab" class="tab_content">
|
|
186
|
-
|
|
187
|
-
</div>
|
|
188
|
-
|
|
189
|
-
### Zen.Editor
|
|
190
|
-
|
|
191
|
-
Zen.Editor is the main class used for the markup editor that can be used to more
|
|
192
|
-
easily insert markup for all supported languages into a text area. By default
|
|
193
|
-
Zen will automatically use the markup editor for all ``textarea`` elements with
|
|
194
|
-
a class of ``visual_editor``. The format used for the markup is retrieved from
|
|
195
|
-
the column ``data-format`` (this column is required). The attribute
|
|
196
|
-
``data-format`` should contain the name of the markup engine to use as defined
|
|
197
|
-
in ``Zen.Editor.drivers``. Currently the following are supported:
|
|
198
|
-
|
|
199
|
-
* markdown
|
|
200
|
-
* textile
|
|
201
|
-
|
|
202
|
-
If an unknown driver is specified the default driver (HTML) will be used
|
|
203
|
-
instead.
|
|
204
|
-
|
|
205
|
-
The markup required for Zen to automatically use the markup editor looks like
|
|
206
|
-
the example below.
|
|
207
|
-
|
|
208
|
-
<textarea class="visual_editor" data-format="markdown"></textarea>
|
|
209
|
-
|
|
210
|
-
If you want to manually create an instance of ``Zen.Editor`` you can still do so
|
|
211
|
-
but due to the way the system works you shouldn't directly create an instance of
|
|
212
|
-
the class as this will prevent the editor from automatically using the correct
|
|
213
|
-
driver class. You should use ``Zen.Editor.init`` instead. This method has the
|
|
214
|
-
following syntax:
|
|
215
|
-
|
|
216
|
-
var editor = Zen.Editor.init(driver, element[, options, buttons]);
|
|
217
|
-
|
|
218
|
-
The first parameter is a string containing the name of the driver to use. The
|
|
219
|
-
second parameter can either be a CSS selector, a collection of elements or a
|
|
220
|
-
single element. If the parameter is a CSS selector or a collection of elements
|
|
221
|
-
the **first** element will be used, all others will be ignored. The last two
|
|
222
|
-
parameters are used for customized options as well as adding custom buttons to
|
|
223
|
-
the editor. Currently the editor only supports the following two options:
|
|
224
|
-
|
|
225
|
-
* width: sets a minimum width on the textarea element.
|
|
226
|
-
* height: sets a minimum hight on the textarea element.
|
|
227
|
-
|
|
228
|
-
Buttons can be added by setting the last parameter to an array. Each button has
|
|
229
|
-
the same format as the buttons used in Zen.Window:
|
|
230
|
-
|
|
231
|
-
{
|
|
232
|
-
name: 'foobar',
|
|
233
|
-
label: 'Foobar',
|
|
234
|
-
onClick: function() {}
|
|
235
|
-
}
|
|
236
|
-
|
|
237
|
-
Note that unlike Zen.Window these buttons can't be set in the options object
|
|
238
|
-
under the key "buttons". This is because the Options class of Mootools doesn't
|
|
239
|
-
actually merge options but instead overwrites existing ones. This would mean
|
|
240
|
-
that it would be more difficult to add a default set of buttons as well as
|
|
241
|
-
custom ones. Most likely this will change in the future once I find out what the
|
|
242
|
-
best way of doing this would be.
|
|
243
|
-
|
|
244
|
-
Example:
|
|
245
|
-
|
|
246
|
-
var editor = Zen.Editor.init(
|
|
247
|
-
'markdown',
|
|
248
|
-
'div#text_editor',
|
|
249
|
-
{
|
|
250
|
-
width: 400
|
|
251
|
-
},
|
|
252
|
-
[
|
|
253
|
-
{
|
|
254
|
-
name: 'custom',
|
|
255
|
-
label: 'Custom',
|
|
256
|
-
onClick: function(editor)
|
|
257
|
-
{
|
|
258
|
-
console.log("This is a custom button!");
|
|
259
|
-
}
|
|
260
|
-
}
|
|
261
|
-
]
|
|
262
|
-
);
|
|
263
|
-
|
|
264
|
-
Functions used for buttons take a single parameter which will contain an
|
|
265
|
-
instance of the editor the button belongs to. This makes it easy to insert text
|
|
266
|
-
into the textarea:
|
|
267
|
-
|
|
268
|
-
function(editor)
|
|
269
|
-
{
|
|
270
|
-
editor.insertAroundCursor({before: '<!--', after: '-->'});
|
|
271
|
-
}
|
|
272
|
-
|
|
273
|
-
### Zen.HtmlTable
|
|
274
|
-
|
|
275
|
-
The class Zen.HtmlTable was introduced in Zen 0.2.8 and makes it possible to
|
|
276
|
-
sort tables by their columns, check all checkboxes in the first column of a
|
|
277
|
-
table and it highlights odd rows. Generally you don't need to use this class
|
|
278
|
-
itself but instead you'll be using the markup it accepts in order to modify it's
|
|
279
|
-
behavior.
|
|
280
|
-
|
|
281
|
-
The basic markup for this class is very simple, in fact, it's nothing more than
|
|
282
|
-
a regular table with a ``<thead>`` element:
|
|
283
|
-
|
|
284
|
-
<table>
|
|
285
|
-
<thead>
|
|
286
|
-
<tr>
|
|
287
|
-
<th>#</th>
|
|
288
|
-
<th>Name</th>
|
|
289
|
-
</tr>
|
|
290
|
-
</thead>
|
|
291
|
-
<tbody>
|
|
292
|
-
<tr>
|
|
293
|
-
<td>2</td>
|
|
294
|
-
<td>Ruby</td>
|
|
295
|
-
</tr>
|
|
296
|
-
</tbody>
|
|
297
|
-
</table>
|
|
298
|
-
|
|
299
|
-
Zen will automatically detect and use the table and you're good to go. If you
|
|
300
|
-
want to modify the behavior you can use a few attributes on certain elements of
|
|
301
|
-
the table. The following attributes can be applied to the ``<table>`` element
|
|
302
|
-
itself:
|
|
303
|
-
|
|
304
|
-
* data-sort-index: the index of the ``<th>`` element to sort the table on by
|
|
305
|
-
default. By default this is set to 1 as all tables have a checkbox in the
|
|
306
|
-
first column of each row.
|
|
307
|
-
|
|
308
|
-
The following attributes can be set on each ``<th>`` element:
|
|
309
|
-
|
|
310
|
-
* data-sort-parser: the name of the parser to use for sorting the columns. This
|
|
311
|
-
option is directly passed to HtmlTable.Sort and can be any of the parsers
|
|
312
|
-
Mootools has to offer (or one you wrote yourself).
|
|
313
|
-
|
|
314
|
-
Example:
|
|
315
|
-
|
|
316
|
-
<table data-sort-index="1">
|
|
317
|
-
<thead>
|
|
318
|
-
<tr>
|
|
319
|
-
<th>#</th>
|
|
320
|
-
<th data-sort-parser="usernames">Name</th>
|
|
321
|
-
</tr>
|
|
322
|
-
</thead>
|
|
323
|
-
<tbody>
|
|
324
|
-
<tr>
|
|
325
|
-
<td>2</td>
|
|
326
|
-
<td>Ruby</td>
|
|
327
|
-
</tr>
|
|
328
|
-
</tbody>
|
|
329
|
-
</table>
|
|
330
|
-
|
|
331
|
-
If you want to create a table that should be ignored by Zen.Html table simply
|
|
332
|
-
give the ``<table>`` element a class of ``no_sort``:
|
|
333
|
-
|
|
334
|
-
<table class="no_sort">
|
|
335
|
-
<thead>
|
|
336
|
-
<tr>
|
|
337
|
-
<th>#</th>
|
|
338
|
-
<th>Name</th>
|
|
339
|
-
</tr>
|
|
340
|
-
</thead>
|
|
341
|
-
<tbody>
|
|
342
|
-
<tr>
|
|
343
|
-
<td>2</td>
|
|
344
|
-
<td>Ruby</td>
|
|
345
|
-
</tr>
|
|
346
|
-
</tbody>
|
|
347
|
-
</table>
|
|
348
|
-
|
|
349
|
-
This class can also be applied to ``<th>`` elements to ignore just that column
|
|
350
|
-
rather than the entire table.
|
|
111
|
+
<input type="text" name="my_date" class="date" data-date-format="%d-%m-%Y"
|
|
112
|
+
data-date-min="01-01-2012" data-date-max="01-01-2013" />
|
|
351
113
|
|
|
352
114
|
[mootools]: http://mootools.net/
|
|
115
|
+
[mootools datepicker]: https://github.com/arian/mootools-datepicker
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Zen.Autosave
|
|
2
|
+
|
|
3
|
+
Zen.Autosave automatically saves form data at a given interval. Automatically
|
|
4
|
+
saving form data makes it more pleasant for users to work with their data as
|
|
5
|
+
the risk of data loss is minimized.
|
|
6
|
+
|
|
7
|
+
Basic usage of this class is as following:
|
|
8
|
+
|
|
9
|
+
new Zen.Autosave(
|
|
10
|
+
$('my_form'),
|
|
11
|
+
'http://localhost/admin/category-groups/autosave'
|
|
12
|
+
);
|
|
13
|
+
|
|
14
|
+
When creating a new instance of this class you are required to specify a
|
|
15
|
+
single Element instance as well as the URL to submit the data to. The element
|
|
16
|
+
is specified as the first parameter, the URL as the second one. The optional
|
|
17
|
+
third parameter can be used for setting optional options such as the interval
|
|
18
|
+
and the HTTP method to use for submitting the data.
|
|
19
|
+
|
|
20
|
+
By default the interval is set to 10 minutes, this can be changed as
|
|
21
|
+
following:
|
|
22
|
+
|
|
23
|
+
new Zen.Autosave(element, url, {interval: 300000});
|
|
24
|
+
|
|
25
|
+
This would cause the form data to be saved every 5 minutes instead of every
|
|
26
|
+
10 minutes.
|