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
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
namespace('Zen');
|
|
4
|
+
|
|
1
5
|
/**
|
|
2
6
|
* Base class for all drivers that provides several common methods and allows
|
|
3
7
|
* developers to use the same syntax for all editor drivers.
|
|
@@ -117,32 +121,32 @@ Zen.Editor = new Class(
|
|
|
117
121
|
[
|
|
118
122
|
{
|
|
119
123
|
name: 'bold',
|
|
120
|
-
label:
|
|
124
|
+
label: lang('zen_general.buttons.bold'),
|
|
121
125
|
onClick: 'bold'
|
|
122
126
|
},
|
|
123
127
|
{
|
|
124
128
|
name: 'italic',
|
|
125
|
-
label:
|
|
129
|
+
label: lang('zen_general.buttons.italic'),
|
|
126
130
|
onClick: 'italic'
|
|
127
131
|
},
|
|
128
132
|
{
|
|
129
133
|
name: 'link',
|
|
130
|
-
label:
|
|
134
|
+
label: lang('zen_general.buttons.link'),
|
|
131
135
|
onClick: 'link'
|
|
132
136
|
},
|
|
133
137
|
{
|
|
134
138
|
name: 'ul',
|
|
135
|
-
label:
|
|
139
|
+
label: lang('zen_general.buttons.ul'),
|
|
136
140
|
onClick: 'ul'
|
|
137
141
|
},
|
|
138
142
|
{
|
|
139
143
|
name: 'ol',
|
|
140
|
-
label:
|
|
144
|
+
label: lang('zen_general.buttons.ol'),
|
|
141
145
|
onClick: 'ol'
|
|
142
146
|
},
|
|
143
147
|
{
|
|
144
148
|
name: 'preview',
|
|
145
|
-
label:
|
|
149
|
+
label: lang('zen_general.buttons.preview'),
|
|
146
150
|
onClick: 'preview'
|
|
147
151
|
}
|
|
148
152
|
],
|
|
@@ -188,7 +192,6 @@ Zen.Editor = new Class(
|
|
|
188
192
|
// Create the HTML for the editor
|
|
189
193
|
var toolbar = new Element('div', {'class': 'editor_toolbar'});
|
|
190
194
|
var container = new Element('div', {'class': 'editor_container'});
|
|
191
|
-
var ul = new Element('ul');
|
|
192
195
|
var current_class = this;
|
|
193
196
|
|
|
194
197
|
// Push the custom buttons
|
|
@@ -200,11 +203,11 @@ Zen.Editor = new Class(
|
|
|
200
203
|
// Create the HTML for all the buttons
|
|
201
204
|
this.buttons.each(function(button)
|
|
202
205
|
{
|
|
203
|
-
var
|
|
204
|
-
'
|
|
206
|
+
var btn = new Element(
|
|
207
|
+
'button',
|
|
205
208
|
{
|
|
206
|
-
'class': button.name,
|
|
207
|
-
html: button.label,
|
|
209
|
+
'class': 'button ' + button.name,
|
|
210
|
+
html: '<span class="button_icon"></span>' + button.label,
|
|
208
211
|
title: button.label
|
|
209
212
|
}
|
|
210
213
|
);
|
|
@@ -212,8 +215,10 @@ Zen.Editor = new Class(
|
|
|
212
215
|
// Add the onClick event, when clicked the current editor's instance
|
|
213
216
|
// is passed to the event allowing developers to work with it's
|
|
214
217
|
// content.
|
|
215
|
-
|
|
218
|
+
btn.addEvent('click', function(e)
|
|
216
219
|
{
|
|
220
|
+
e.preventDefault();
|
|
221
|
+
|
|
217
222
|
var current_editor = this.getParent('.editor_container')
|
|
218
223
|
.getElement('textarea');
|
|
219
224
|
|
|
@@ -227,11 +232,10 @@ Zen.Editor = new Class(
|
|
|
227
232
|
}
|
|
228
233
|
});
|
|
229
234
|
|
|
230
|
-
|
|
235
|
+
btn.inject(toolbar);
|
|
231
236
|
});
|
|
232
237
|
|
|
233
238
|
// Inject the HTML into the DOM
|
|
234
|
-
ul.inject(toolbar);
|
|
235
239
|
toolbar.inject(container);
|
|
236
240
|
container.inject(this.element, 'before');
|
|
237
241
|
|
|
@@ -363,26 +367,11 @@ Zen.Editor = new Class(
|
|
|
363
367
|
data: {engine: engine, markup: markup},
|
|
364
368
|
onSuccess: function(response)
|
|
365
369
|
{
|
|
366
|
-
new Zen.Window(
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
buttons:
|
|
372
|
-
[
|
|
373
|
-
{
|
|
374
|
-
name: 'close',
|
|
375
|
-
label: Zen.translations[
|
|
376
|
-
'zen_general.buttons.close'
|
|
377
|
-
],
|
|
378
|
-
onClick: function(instance)
|
|
379
|
-
{
|
|
380
|
-
instance.destroy();
|
|
381
|
-
}
|
|
382
|
-
}
|
|
383
|
-
]
|
|
384
|
-
}
|
|
385
|
-
);
|
|
370
|
+
new Zen.Window(response,
|
|
371
|
+
{
|
|
372
|
+
title: lang('zen_general.buttons.preview'),
|
|
373
|
+
width: 700
|
|
374
|
+
});
|
|
386
375
|
}
|
|
387
376
|
}).send();
|
|
388
377
|
}
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
namespace('Zen.Editor');
|
|
4
|
+
|
|
1
5
|
/**
|
|
2
6
|
* Markdown driver for the text editor that ships with Zen.
|
|
3
7
|
*
|
|
@@ -61,7 +65,7 @@ Zen.Editor.Markdown = new Class(
|
|
|
61
65
|
},
|
|
62
66
|
|
|
63
67
|
/**
|
|
64
|
-
* Overrides Zen.Editor.ol.
|
|
68
|
+
* Overrides Zen.Editor.ol.
|
|
65
69
|
*
|
|
66
70
|
* @since 0.2.6
|
|
67
71
|
* @param {element} editor The textarea to insert the tags into.
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
namespace('Zen');
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Adds support for the onhashchange event when using ``window.addEvent()``.
|
|
7
|
+
*
|
|
8
|
+
* Basic usage is as following:
|
|
9
|
+
*
|
|
10
|
+
* window.addEvent('hashchange', function(e, hash)
|
|
11
|
+
* {
|
|
12
|
+
* console.log(hash);
|
|
13
|
+
* });
|
|
14
|
+
*
|
|
15
|
+
* Do note that this implementation does not offer any backwards compatibility
|
|
16
|
+
* with browsers that don't natively support ``window.onhashchange``.
|
|
17
|
+
*
|
|
18
|
+
* @since 21-12-2011
|
|
19
|
+
*/
|
|
20
|
+
Element.Events.hashchange = {
|
|
21
|
+
onAdd: function()
|
|
22
|
+
{
|
|
23
|
+
var _this = this;
|
|
24
|
+
|
|
25
|
+
this.onhashchange = function()
|
|
26
|
+
{
|
|
27
|
+
this.fireEvent('hashchange');
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Zen.Hash is a class that can be used to parse and generate shebang/hash bang
|
|
34
|
+
* URLs. Parsing is done using ``Zen.Hash#parse`` and generating URLs using
|
|
35
|
+
* ``Zen.Hash#getHash``.
|
|
36
|
+
*
|
|
37
|
+
* ## Parsing
|
|
38
|
+
*
|
|
39
|
+
* Parsing a URL is relatively simple and the end output is similar to how you'd
|
|
40
|
+
* parse URLs with query string parameters. First create a new instance of this
|
|
41
|
+
* class:
|
|
42
|
+
*
|
|
43
|
+
* var hash = new Zen.Hash('#!/users/active?limit=10');
|
|
44
|
+
*
|
|
45
|
+
* The supplied string will be parsed straight away and the result can be
|
|
46
|
+
* retrieved from two attributes:
|
|
47
|
+
*
|
|
48
|
+
* * segments
|
|
49
|
+
* * params
|
|
50
|
+
*
|
|
51
|
+
* The first attribute contains an array with all the URL segments, the second
|
|
52
|
+
* one is an object containing all the query string parameters. In case of the
|
|
53
|
+
* above example that would lead to the following data being stored in these
|
|
54
|
+
* attributes:
|
|
55
|
+
*
|
|
56
|
+
* console.log(hash.segments); // => ["users", "active"]
|
|
57
|
+
* console.log(hash.params); // => {limit: '10'}
|
|
58
|
+
*
|
|
59
|
+
* Keep in mind that calling ``Zen.Hash#parse`` will overwrite existing segments
|
|
60
|
+
* and parameters.
|
|
61
|
+
*
|
|
62
|
+
* ## Generating
|
|
63
|
+
*
|
|
64
|
+
* Generating a full shebang URL is pretty straight forward and can be done by
|
|
65
|
+
* calling ``getHash()``. This method returns a string containing the shebang
|
|
66
|
+
* URL including the prefix:
|
|
67
|
+
*
|
|
68
|
+
* hash.getHash(); // => "#!/users/active?limit=10"
|
|
69
|
+
*
|
|
70
|
+
* @since 19-12-2011
|
|
71
|
+
*/
|
|
72
|
+
Zen.Hash = new Class(
|
|
73
|
+
{
|
|
74
|
+
/**
|
|
75
|
+
* String containing the raw URL hash before it was parsed.
|
|
76
|
+
*
|
|
77
|
+
* @since 19-12-2011
|
|
78
|
+
*/
|
|
79
|
+
raw_hash: '',
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Object containing all the parsed hash parameters.
|
|
83
|
+
*
|
|
84
|
+
* @since 19-12-2011
|
|
85
|
+
*/
|
|
86
|
+
params: {},
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* Array containing all the hash segments.
|
|
90
|
+
*
|
|
91
|
+
* @since 19-12-2011
|
|
92
|
+
*/
|
|
93
|
+
segments: [],
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Creates a new instance of the class, sets the raw hash and parses it.
|
|
97
|
+
*
|
|
98
|
+
* @since 19-12-2011
|
|
99
|
+
* @param {string} hash The URL hash to parse.
|
|
100
|
+
*/
|
|
101
|
+
initialize: function(hash)
|
|
102
|
+
{
|
|
103
|
+
if ( hash && hash.length > 0 ) this.parse(hash);
|
|
104
|
+
},
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* Parses the supplied hash and stores the results in ``this.params``.
|
|
108
|
+
*
|
|
109
|
+
* @since 19-12-2011
|
|
110
|
+
* @param {string} hash The hash to parse.
|
|
111
|
+
*/
|
|
112
|
+
parse: function(hash)
|
|
113
|
+
{
|
|
114
|
+
if ( typeOf(hash) !== 'string' )
|
|
115
|
+
{
|
|
116
|
+
throw new Error(
|
|
117
|
+
'Expected a string to parse but got ' + typeOf(hash) + ' instead'
|
|
118
|
+
);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
this.raw_hash = hash;
|
|
122
|
+
this.params = {};
|
|
123
|
+
this.segments = [];
|
|
124
|
+
|
|
125
|
+
hash = hash.replace(/^#/, '').split('?');
|
|
126
|
+
|
|
127
|
+
// Index 0 always contains the path, index 1 the parameters.
|
|
128
|
+
if ( hash[0] && hash[0].length > 0 )
|
|
129
|
+
{
|
|
130
|
+
this.segments = hash[0].split('/');
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
if ( hash[1] && hash[1].length > 0 )
|
|
134
|
+
{
|
|
135
|
+
var _this = this;
|
|
136
|
+
hash[1] = hash[1].split('&');
|
|
137
|
+
|
|
138
|
+
hash[1].each(function(key_value)
|
|
139
|
+
{
|
|
140
|
+
key_value = key_value.split('=');
|
|
141
|
+
|
|
142
|
+
// Assign the key and value. If the key already exists it should
|
|
143
|
+
// be turned into an array.
|
|
144
|
+
if ( _this.params[key_value[0]] )
|
|
145
|
+
{
|
|
146
|
+
if ( typeOf(_this.params[key_value[0]]) !== 'array' )
|
|
147
|
+
{
|
|
148
|
+
_this.params[key_value[0]] = [
|
|
149
|
+
_this.params[key_value[0]],
|
|
150
|
+
key_value[1]
|
|
151
|
+
];
|
|
152
|
+
}
|
|
153
|
+
else
|
|
154
|
+
{
|
|
155
|
+
_this.params[key_value[0]].push(key_value[1]);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
else
|
|
159
|
+
{
|
|
160
|
+
_this.params[key_value[0]] = key_value[1];
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
},
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* Returns a string containing the hash URL for the current segments and
|
|
168
|
+
* parameters.
|
|
169
|
+
*
|
|
170
|
+
* @since 19-12-2011
|
|
171
|
+
* @return {string}
|
|
172
|
+
*/
|
|
173
|
+
getHash: function()
|
|
174
|
+
{
|
|
175
|
+
if ( typeOf(this.segments) !== 'array' )
|
|
176
|
+
{
|
|
177
|
+
throw new Error(
|
|
178
|
+
'Expected an array for the URL segments but got '
|
|
179
|
+
+ typeOf(this.segments)
|
|
180
|
+
+ ' instead'
|
|
181
|
+
);
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
if ( typeOf(this.params) !== 'object' )
|
|
185
|
+
{
|
|
186
|
+
throw new Error(
|
|
187
|
+
'Expected an object for the hash parameters but got '
|
|
188
|
+
+ typeOf(this.params)
|
|
189
|
+
+ ' instead'
|
|
190
|
+
);
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
var hash = '#' + this.segments.join('/');
|
|
194
|
+
var groups = [];
|
|
195
|
+
|
|
196
|
+
Object.each(this.params, function(value, key)
|
|
197
|
+
{
|
|
198
|
+
if ( typeOf(value) === 'array' )
|
|
199
|
+
{
|
|
200
|
+
value.each(function(val)
|
|
201
|
+
{
|
|
202
|
+
groups.push(key + '=' + val);
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
else
|
|
206
|
+
{
|
|
207
|
+
groups.push(key + '=' + value);
|
|
208
|
+
}
|
|
209
|
+
});
|
|
210
|
+
|
|
211
|
+
if ( groups.length > 0 )
|
|
212
|
+
{
|
|
213
|
+
hash += '?' + groups.join('&');
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
return hash;
|
|
217
|
+
}
|
|
218
|
+
});
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
namespace('Zen');
|
|
4
|
+
|
|
1
5
|
/**
|
|
2
6
|
* Zen.HtmlTable is an extension to the HtmlTable class provided by Mootools
|
|
3
7
|
* More. This extension makes it possible to sort tables, check all checkboxes
|
|
@@ -80,6 +84,7 @@ Zen.HtmlTable = new Class(
|
|
|
80
84
|
classHeadSort : 'asc',
|
|
81
85
|
classHeadSortRev: 'desc',
|
|
82
86
|
classNoSort : 'no_sort',
|
|
87
|
+
classCellSort : 'sorted',
|
|
83
88
|
sortable : true,
|
|
84
89
|
parsers : []
|
|
85
90
|
};
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
namespace('Zen');
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Zen.Tabs is a Mootools class for rendering tab based navigation menus. Tabs
|
|
7
|
+
* managed by this class can be activated by both clicking on the various tabs
|
|
8
|
+
* or by changing the URL hash (clicking a tab actually does the latter).
|
|
9
|
+
*
|
|
10
|
+
* The use of URL hashes (stored in ``window.location.hash``) also make it
|
|
11
|
+
* possible for non default tabs to be set as the active tab whenever a page is
|
|
12
|
+
* reloaded. If no URL hash is set then a CSS selector will be used to
|
|
13
|
+
* determine the default tab field to activate. If there is a URL hash present
|
|
14
|
+
* that will be used instead.
|
|
15
|
+
*
|
|
16
|
+
* For example, take the following URL:
|
|
17
|
+
*
|
|
18
|
+
* * http://hello.com/admin/extensions/
|
|
19
|
+
*
|
|
20
|
+
* and the following tab fields (where each item is the ID of the field):
|
|
21
|
+
*
|
|
22
|
+
* * packages
|
|
23
|
+
* * themes
|
|
24
|
+
* * languages
|
|
25
|
+
*
|
|
26
|
+
* These fields could be activated by navigating to one of the following URLs
|
|
27
|
+
* (or just by clicking the corresponding tab which will then do this for you):
|
|
28
|
+
*
|
|
29
|
+
* * http://hello.com/admin/extensions#packages
|
|
30
|
+
* * http://hello.com/admin/extensions#themes
|
|
31
|
+
* * http://hello.com/admin/extensions#languages
|
|
32
|
+
*
|
|
33
|
+
* ## General Usage
|
|
34
|
+
*
|
|
35
|
+
* Using this class is pretty straight forward, just create a new instance of it
|
|
36
|
+
* and pass a CSS selector to the constructor:
|
|
37
|
+
*
|
|
38
|
+
* new Zen.Tabs('.tabs ul');
|
|
39
|
+
*
|
|
40
|
+
* If you want to change any options you can set these as the second parameter:
|
|
41
|
+
*
|
|
42
|
+
* new Zen.Tabs('.tabs ul', {'default': 'li:last-child'});
|
|
43
|
+
*
|
|
44
|
+
* ## Options
|
|
45
|
+
*
|
|
46
|
+
* * default: a CSS selector that should result in a ``<li>`` element to
|
|
47
|
+
* activate by default if no ID is specified in the URL hash.
|
|
48
|
+
*/
|
|
49
|
+
Zen.Tabs = new Class(
|
|
50
|
+
{
|
|
51
|
+
Implements: Options,
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Object containing all options for each tab instance.
|
|
55
|
+
*
|
|
56
|
+
* @since 0.1
|
|
57
|
+
*/
|
|
58
|
+
options:
|
|
59
|
+
{
|
|
60
|
+
// The default tab/field to display
|
|
61
|
+
'default': 'li:first-child',
|
|
62
|
+
},
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Contains the element that contains all the tab items.
|
|
66
|
+
*
|
|
67
|
+
* @since 0.1
|
|
68
|
+
*/
|
|
69
|
+
element: null,
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Constructor method called upon initialization. Options can be
|
|
73
|
+
* set as a JSON object in the first argument.
|
|
74
|
+
*
|
|
75
|
+
* @since 0.1
|
|
76
|
+
* @param {string} selector A CSS selector that should result in a ``<ul>``
|
|
77
|
+
* element containing various tabs.
|
|
78
|
+
* @param {object} options Custom options used when creating the tabs
|
|
79
|
+
*/
|
|
80
|
+
initialize: function(selector, options)
|
|
81
|
+
{
|
|
82
|
+
this.setOptions(options);
|
|
83
|
+
|
|
84
|
+
var found = $$(selector);
|
|
85
|
+
|
|
86
|
+
if ( found.length <= 0 )
|
|
87
|
+
{
|
|
88
|
+
throw new Error(
|
|
89
|
+
'No elements could be found for the selector ' + selector
|
|
90
|
+
);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
this.element = found[0];
|
|
94
|
+
|
|
95
|
+
this.displayDefault();
|
|
96
|
+
this.addEvents();
|
|
97
|
+
},
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Binds various events to show the right tab fields when a tab is clicked
|
|
101
|
+
* or when the URL hash is changed.
|
|
102
|
+
*
|
|
103
|
+
* @since 21-12-2011
|
|
104
|
+
*/
|
|
105
|
+
addEvents: function()
|
|
106
|
+
{
|
|
107
|
+
var _this = this;
|
|
108
|
+
|
|
109
|
+
// Only bind the event if the browser doesn't support the onhashchange
|
|
110
|
+
// event.
|
|
111
|
+
if ( !"onhashchange" in window )
|
|
112
|
+
{
|
|
113
|
+
this.element.getElements('a').addEvent('click', function(e)
|
|
114
|
+
{
|
|
115
|
+
e.stop();
|
|
116
|
+
|
|
117
|
+
window.location.hash = this.get('href');
|
|
118
|
+
window.fireEvent('hashchange');
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
window.addEvent('hashchange', function()
|
|
123
|
+
{
|
|
124
|
+
var id = new Zen.Hash(window.location.hash).segments[0];
|
|
125
|
+
|
|
126
|
+
if ( id && $(id) )
|
|
127
|
+
{
|
|
128
|
+
_this.toggleTab(id);
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
},
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* Determines the default tab field to display based on the option
|
|
135
|
+
* ``this.options.default`` or the current hash URL.
|
|
136
|
+
*
|
|
137
|
+
* @since 21-12-2011
|
|
138
|
+
*/
|
|
139
|
+
displayDefault: function()
|
|
140
|
+
{
|
|
141
|
+
var id = null;
|
|
142
|
+
|
|
143
|
+
// Don't bother parsing the URL hash if there is none to begin with.
|
|
144
|
+
if ( window.location.hash && window.location.hash.length > 0 )
|
|
145
|
+
{
|
|
146
|
+
id = new Zen.Hash(window.location.hash).segments[0];
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
if ( !id || id.length <= 0 )
|
|
150
|
+
{
|
|
151
|
+
var active = this.element.getElements(this.options['default']);
|
|
152
|
+
|
|
153
|
+
if ( active.length > 0 )
|
|
154
|
+
{
|
|
155
|
+
active[0].addClass('active');
|
|
156
|
+
|
|
157
|
+
id = active[0].getElement('a').get('href').replace(/^#/, '');
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
this.toggleTab(id);
|
|
162
|
+
},
|
|
163
|
+
|
|
164
|
+
/**
|
|
165
|
+
* Activates the tab field for the given ID.
|
|
166
|
+
*
|
|
167
|
+
* @since 21-12-2011
|
|
168
|
+
* @param {string} id The ID of the tab field to show.
|
|
169
|
+
*/
|
|
170
|
+
toggleTab: function(id)
|
|
171
|
+
{
|
|
172
|
+
this.element.getElements('a').each(function(el)
|
|
173
|
+
{
|
|
174
|
+
var el_id = el.get('href').replace(/^#/, '');
|
|
175
|
+
|
|
176
|
+
if ( el_id === id )
|
|
177
|
+
{
|
|
178
|
+
el.getParent().addClass('active');
|
|
179
|
+
|
|
180
|
+
var found = $(id);
|
|
181
|
+
|
|
182
|
+
if ( found ) found.show();
|
|
183
|
+
}
|
|
184
|
+
else
|
|
185
|
+
{
|
|
186
|
+
el.getParent().removeClass('active');
|
|
187
|
+
|
|
188
|
+
var found = $(el_id);
|
|
189
|
+
|
|
190
|
+
if ( found ) found.hide();
|
|
191
|
+
}
|
|
192
|
+
});
|
|
193
|
+
},
|
|
194
|
+
});
|