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
|
File without changes
|
|
File without changes
|
|
Binary file
|
|
Binary file
|
|
File without changes
|
|
Binary file
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
Binary file
|
|
Binary file
|
|
File without changes
|
|
File without changes
|
|
Binary file
|
|
File without changes
|
|
Binary file
|
|
File without changes
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
File without changes
|
|
File without changes
|
|
Binary file
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
1
3
|
window.addEvent('domready', function()
|
|
2
4
|
{
|
|
3
5
|
$$('table:not(.no_sort)').each(function(table)
|
|
@@ -26,17 +28,27 @@ window.addEvent('domready', function()
|
|
|
26
28
|
Zen.Editor.create(markup, editor);
|
|
27
29
|
});
|
|
28
30
|
|
|
29
|
-
|
|
30
|
-
// element was found.
|
|
31
|
-
var date_elements = $$('input[type="text"].date');
|
|
32
|
-
|
|
33
|
-
if ( date_elements.length > 0 )
|
|
31
|
+
$$('input.date').each(function(el)
|
|
34
32
|
{
|
|
35
|
-
|
|
33
|
+
var format = el.get('data-date-format') || Zen.date_format;
|
|
34
|
+
var time = el.get('data-date-time');
|
|
35
|
+
time = (time && (time === '1' || time === 'true')) || false;
|
|
36
|
+
var min = el.get('data-date-min');
|
|
37
|
+
var max = el.get('data-date-max');
|
|
38
|
+
|
|
39
|
+
new Picker.Date(el,
|
|
36
40
|
{
|
|
37
|
-
timePicker:
|
|
41
|
+
timePicker: time,
|
|
38
42
|
pickerClass: 'datepicker',
|
|
39
|
-
format:
|
|
43
|
+
format: format,
|
|
44
|
+
draggable: false,
|
|
45
|
+
minDate: min,
|
|
46
|
+
maxDate: max
|
|
40
47
|
});
|
|
41
|
-
}
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
$$('form[data-autosave-url]').each(function(el)
|
|
51
|
+
{
|
|
52
|
+
new Zen.Autosave(el, el.get('data-autosave-url'));
|
|
53
|
+
});
|
|
42
54
|
});
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
namespace('Zen');
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Zen.Autosave automatically saves form data at a given interval. Automatically
|
|
7
|
+
* saving form data makes it more pleasant for users to work with their data as
|
|
8
|
+
* the risk of data loss is minimized.
|
|
9
|
+
*
|
|
10
|
+
* Basic usage of this class is as following:
|
|
11
|
+
*
|
|
12
|
+
* new Zen.Autosave(
|
|
13
|
+
* $('my_form'),
|
|
14
|
+
* 'http://localhost/admin/category-groups/autosave'
|
|
15
|
+
* );
|
|
16
|
+
*
|
|
17
|
+
* When creating a new instance of this class you are required to specify a
|
|
18
|
+
* single Element instance as well as the URL to submit the data to. The element
|
|
19
|
+
* is specified as the first parameter, the URL as the second one. The optional
|
|
20
|
+
* third parameter can be used for setting optional options such as the interval
|
|
21
|
+
* and the HTTP method to use for submitting the data.
|
|
22
|
+
*
|
|
23
|
+
* By default the interval is set to 10 minutes, this can be changed as
|
|
24
|
+
* following:
|
|
25
|
+
*
|
|
26
|
+
* new Zen.Autosave(element, url, {interval: 300000});
|
|
27
|
+
*
|
|
28
|
+
* This would cause the form data to be saved every 5 minutes instead of every
|
|
29
|
+
* 10 minutes.
|
|
30
|
+
*
|
|
31
|
+
* This class only submits forms for existing objects, this is based on the
|
|
32
|
+
* value of the primary column. By default the name for this column is set to
|
|
33
|
+
* "id" but this can be changed as following:
|
|
34
|
+
*
|
|
35
|
+
* new Zen.Autosave(element, url, {primary: 'my_id'});
|
|
36
|
+
*
|
|
37
|
+
* If the field with this name has a non empty value then the form will be
|
|
38
|
+
* submitted at a given interval, otherwise it will be ignored.
|
|
39
|
+
*
|
|
40
|
+
* @since 15-02-2012
|
|
41
|
+
*/
|
|
42
|
+
Zen.Autosave = new Class(
|
|
43
|
+
{
|
|
44
|
+
Implements: Options,
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Element containing the form element.
|
|
48
|
+
*
|
|
49
|
+
* @since 16-02-2012
|
|
50
|
+
*/
|
|
51
|
+
element: null,
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* The URL to submit the data to.
|
|
55
|
+
*
|
|
56
|
+
* @since 16-02-2012
|
|
57
|
+
*/
|
|
58
|
+
url: null,
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Object containing various options to customize the auto saving behaviour.
|
|
62
|
+
*
|
|
63
|
+
* @since 16-02-2012
|
|
64
|
+
*/
|
|
65
|
+
options:
|
|
66
|
+
{
|
|
67
|
+
// The amount of miliseconds to wait between each save.
|
|
68
|
+
interval: 600000,
|
|
69
|
+
|
|
70
|
+
// The HTTP method to use for submitting the data.
|
|
71
|
+
method: 'POST',
|
|
72
|
+
|
|
73
|
+
// The name of the field that contains the primary value of an object.
|
|
74
|
+
primary: 'id'
|
|
75
|
+
},
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Creates a new instance of the class.
|
|
79
|
+
*
|
|
80
|
+
* @since 16-02-2012
|
|
81
|
+
* @param {Element} element The form element to submit.
|
|
82
|
+
* @param {String} url The URL to submit the data to.
|
|
83
|
+
* @param {Object} options Object containing custom options. See
|
|
84
|
+
* Zen.Autosave.options for more information.
|
|
85
|
+
*/
|
|
86
|
+
initialize: function(element, url, options)
|
|
87
|
+
{
|
|
88
|
+
this.setOptions(options);
|
|
89
|
+
|
|
90
|
+
if ( typeOf(url) !== 'string' )
|
|
91
|
+
{
|
|
92
|
+
throw new TypeError(
|
|
93
|
+
'You have to specify an instance of String for the URL'
|
|
94
|
+
);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
this.element = element;
|
|
98
|
+
this.url = url;
|
|
99
|
+
var _this = this;
|
|
100
|
+
var primary = element
|
|
101
|
+
.getElement('input[name="' + this.options.primary + '"]');
|
|
102
|
+
|
|
103
|
+
if ( !primary || primary.get('value').length <= 0 )
|
|
104
|
+
{
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
setInterval(function() { _this.sendRequest() }, this.options.interval);
|
|
109
|
+
},
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Submits the form data to the server. Upon success the CSRF token is
|
|
113
|
+
* updated, upon failure the validation errors will be displayed.
|
|
114
|
+
*
|
|
115
|
+
* @since 16-02-2012
|
|
116
|
+
*/
|
|
117
|
+
sendRequest: function()
|
|
118
|
+
{
|
|
119
|
+
var _this = this;
|
|
120
|
+
var request = new Request.JSON(
|
|
121
|
+
{
|
|
122
|
+
url: this.url,
|
|
123
|
+
method: this.options.method,
|
|
124
|
+
data: this.element.toQueryString(),
|
|
125
|
+
onSuccess: function(response)
|
|
126
|
+
{
|
|
127
|
+
_this.setToken(response.csrf_token);
|
|
128
|
+
_this.element.getElements('span.error').destroy();
|
|
129
|
+
},
|
|
130
|
+
onFailure: function(xhr)
|
|
131
|
+
{
|
|
132
|
+
var response = JSON.decode(xhr.responseText);
|
|
133
|
+
|
|
134
|
+
_this.displayErrors(response.errors);
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
|
|
138
|
+
request.send();
|
|
139
|
+
},
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* Displays the validation errors of a set of fields.
|
|
143
|
+
*
|
|
144
|
+
* @since 16-02-2012
|
|
145
|
+
* @param {Object} form_errors Object containing the form errors. The keys
|
|
146
|
+
* should be the names of the fields and the values arrays of error messages
|
|
147
|
+
* to display.
|
|
148
|
+
*/
|
|
149
|
+
displayErrors: function(form_errors)
|
|
150
|
+
{
|
|
151
|
+
var _this = this;
|
|
152
|
+
|
|
153
|
+
Object.each(form_errors, function(errors, field)
|
|
154
|
+
{
|
|
155
|
+
var label = _this.element
|
|
156
|
+
.getElement('input[name="' + field + '"]')
|
|
157
|
+
.getSiblings('label')[0];
|
|
158
|
+
|
|
159
|
+
if ( label.getElements('span.error').length === 0 )
|
|
160
|
+
{
|
|
161
|
+
errors.each(function(error)
|
|
162
|
+
{
|
|
163
|
+
var span = new Element('span',
|
|
164
|
+
{
|
|
165
|
+
'class': 'error',
|
|
166
|
+
html: error
|
|
167
|
+
});
|
|
168
|
+
|
|
169
|
+
span.inject(label);
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
});
|
|
173
|
+
},
|
|
174
|
+
|
|
175
|
+
/**
|
|
176
|
+
* Updates the CSRF token with the given value.
|
|
177
|
+
*
|
|
178
|
+
* @since 16-02-2012
|
|
179
|
+
* @param {String} token The new CSRF token.
|
|
180
|
+
*/
|
|
181
|
+
setToken: function(token)
|
|
182
|
+
{
|
|
183
|
+
this.element.getElement('input[name="csrf_token"]').set('value', token);
|
|
184
|
+
}
|
|
185
|
+
});
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Turns the specified string into an object (and sub objects) that can be used
|
|
5
|
+
* to namespace classes and other data.
|
|
6
|
+
*
|
|
7
|
+
* Basic usage:
|
|
8
|
+
*
|
|
9
|
+
* console.log(Foo); // => ReferenceError
|
|
10
|
+
*
|
|
11
|
+
* namespace('Foo.Bar.Baz');
|
|
12
|
+
*
|
|
13
|
+
* console.log(Foo); // => {Bar: {Baz: {}}}
|
|
14
|
+
*
|
|
15
|
+
* If segments of the namespace already exist they will remain untouched, this
|
|
16
|
+
* function merely creates non existing segments.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* namespace('Zen.Editor');
|
|
20
|
+
*
|
|
21
|
+
* Zen.Editor.Markdown = new Class(...);
|
|
22
|
+
*
|
|
23
|
+
* @since 22-12-2011
|
|
24
|
+
* @param {string} name The namespace to create.
|
|
25
|
+
*/
|
|
26
|
+
function namespace(name)
|
|
27
|
+
{
|
|
28
|
+
var stack = window;
|
|
29
|
+
|
|
30
|
+
name.split('.').each(function(segment)
|
|
31
|
+
{
|
|
32
|
+
stack[segment] = stack[segment] || {};
|
|
33
|
+
stack = stack[segment];
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Returns the translation for the given string. This function allows you to
|
|
39
|
+
* retrieve languages in the same way as you would do in the Ruby code for your
|
|
40
|
+
* application:
|
|
41
|
+
*
|
|
42
|
+
* var string = lang('foo.bar');
|
|
43
|
+
*
|
|
44
|
+
* This code is the same as the following:
|
|
45
|
+
*
|
|
46
|
+
* var string = Zen.translations['foo.bar'];
|
|
47
|
+
*
|
|
48
|
+
* @since 22-12-2011
|
|
49
|
+
* @param {string} key The language key to retrieve.
|
|
50
|
+
* @return {string}
|
|
51
|
+
*/
|
|
52
|
+
function lang(key)
|
|
53
|
+
{
|
|
54
|
+
if ( !Zen.translations[key] )
|
|
55
|
+
{
|
|
56
|
+
throw new Error('The language key "' + key + '" does not exist');
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
return Zen.translations[key];
|
|
60
|
+
}
|
|
@@ -9,17 +9,12 @@ provides: Locale.nl-NL.DatePicker
|
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
11
|
Locale.define('en-US', 'DatePicker', {
|
|
12
|
-
select_a_time:
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
'zen_general.datepicker.time_confirm_button'
|
|
19
|
-
],
|
|
20
|
-
apply_range: Zen.translations['zen_general.datepicker.apply_range'],
|
|
21
|
-
cancel : Zen.translations['zen_general.datepicker.cancel'],
|
|
22
|
-
week : Zen.translations['zen_general.datepicker.week']
|
|
12
|
+
select_a_time: lang('zen_general.datepicker.select_a_time'),
|
|
13
|
+
use_mouse_wheel: lang('zen_general.datepicker.use_mouse_wheel'),
|
|
14
|
+
time_confirm_button: lang('zen_general.datepicker.time_confirm_button'),
|
|
15
|
+
apply_range: lang('zen_general.datepicker.apply_range'),
|
|
16
|
+
cancel: lang('zen_general.datepicker.cancel'),
|
|
17
|
+
week: lang('zen_general.datepicker.week')
|
|
23
18
|
});
|
|
24
19
|
|
|
25
20
|
/*
|
|
@@ -31,6 +26,8 @@ requires: [Core/Element.Dimensions, Core/Fx.Tween, Core/Fx.Transitions]
|
|
|
31
26
|
provides: Picker
|
|
32
27
|
...
|
|
33
28
|
*/
|
|
29
|
+
|
|
30
|
+
|
|
34
31
|
var Picker = new Class({
|
|
35
32
|
|
|
36
33
|
Implements: [Options, Events],
|
|
@@ -117,18 +114,18 @@ var Picker = new Class({
|
|
|
117
114
|
transition: Fx.Transitions.Quad.easeInOut
|
|
118
115
|
}).inject(body);
|
|
119
116
|
|
|
120
|
-
this.
|
|
117
|
+
this.newContents = new Element('div', {
|
|
121
118
|
styles: {
|
|
122
119
|
position: 'absolute',
|
|
123
|
-
top: 0
|
|
120
|
+
top: 0,
|
|
121
|
+
left: 0
|
|
124
122
|
}
|
|
125
123
|
}).inject(slider);
|
|
126
124
|
|
|
127
|
-
this.
|
|
125
|
+
this.oldContents = new Element('div', {
|
|
128
126
|
styles: {
|
|
129
127
|
position: 'absolute',
|
|
130
|
-
top: 0
|
|
131
|
-
left: 0
|
|
128
|
+
top: 0
|
|
132
129
|
}
|
|
133
130
|
}).inject(slider);
|
|
134
131
|
|
|
@@ -150,11 +147,15 @@ var Picker = new Class({
|
|
|
150
147
|
open: function(noFx){
|
|
151
148
|
if (this.opened == true) return this;
|
|
152
149
|
this.opened = true;
|
|
153
|
-
var
|
|
150
|
+
var self = this,
|
|
151
|
+
picker = this.picker.setStyle('display', 'block').set('aria-hidden', 'false')
|
|
154
152
|
if (this.shim) this.shim.show();
|
|
155
153
|
this.fireEvent('open');
|
|
156
154
|
if (this.options.useFadeInOut && !noFx){
|
|
157
|
-
picker.
|
|
155
|
+
picker.get('tween').start('opacity', 1).chain(function(){
|
|
156
|
+
self.fireEvent('show');
|
|
157
|
+
this.callChain();
|
|
158
|
+
});
|
|
158
159
|
} else {
|
|
159
160
|
picker.setStyle('opacity', 1);
|
|
160
161
|
this.fireEvent('show');
|
|
@@ -176,7 +177,7 @@ var Picker = new Class({
|
|
|
176
177
|
self.fireEvent('hide');
|
|
177
178
|
};
|
|
178
179
|
if (this.options.useFadeInOut && !noFx){
|
|
179
|
-
picker.
|
|
180
|
+
picker.get('tween').start('opacity', 0).chain(hide);
|
|
180
181
|
} else {
|
|
181
182
|
picker.setStyle('opacity', 0);
|
|
182
183
|
hide();
|
|
@@ -370,6 +371,8 @@ requires: [Picker, Core/Element.Event]
|
|
|
370
371
|
provides: Picker.Attach
|
|
371
372
|
...
|
|
372
373
|
*/
|
|
374
|
+
|
|
375
|
+
|
|
373
376
|
Picker.Attach = new Class({
|
|
374
377
|
|
|
375
378
|
Extends: Picker,
|
|
@@ -379,6 +382,7 @@ Picker.Attach = new Class({
|
|
|
379
382
|
|
|
380
383
|
toggleElements: null, // deprecated
|
|
381
384
|
toggle: null, // When set it deactivate toggling by clicking on the input */
|
|
385
|
+
togglesOnly: true, // set to false to always make calendar popup on input element, if true, it depends on the toggles elements set.
|
|
382
386
|
showOnInit: false, // overrides the Picker option
|
|
383
387
|
blockKeydown: true
|
|
384
388
|
},
|
|
@@ -461,7 +465,7 @@ Picker.Attach = new Class({
|
|
|
461
465
|
|
|
462
466
|
if (tag == 'input'){
|
|
463
467
|
// Fix in order to use togglers only
|
|
464
|
-
if (!toggles.length){
|
|
468
|
+
if (!self.options.togglesOnly || !toggles.length){
|
|
465
469
|
events = {
|
|
466
470
|
focus: openEvent,
|
|
467
471
|
click: openEvent,
|
|
@@ -529,6 +533,8 @@ requires: [Picker, Picker.Attach, Locale.en-US.DatePicker, More/Locale, More/Dat
|
|
|
529
533
|
provides: Picker.Date
|
|
530
534
|
...
|
|
531
535
|
*/
|
|
536
|
+
|
|
537
|
+
|
|
532
538
|
(function(){
|
|
533
539
|
|
|
534
540
|
this.DatePicker = Picker.Date = new Class({
|
|
@@ -553,6 +559,7 @@ this.DatePicker = Picker.Date = new Class({
|
|
|
553
559
|
yearsPerPage: 20,
|
|
554
560
|
|
|
555
561
|
startDay: 1, // Sunday (0) through Saturday (6) - be aware that this may affect your layout, since the days on the right might have a different margin
|
|
562
|
+
rtl: false,
|
|
556
563
|
|
|
557
564
|
startView: 'days', // allowed values: {time, days, months, years}
|
|
558
565
|
openLastView: false,
|
|
@@ -644,8 +651,17 @@ this.DatePicker = Picker.Date = new Class({
|
|
|
644
651
|
|
|
645
652
|
getInputDate: function(input){
|
|
646
653
|
this.date = new Date();
|
|
654
|
+
|
|
647
655
|
if (!input) return;
|
|
648
|
-
|
|
656
|
+
|
|
657
|
+
// Taken from <https://github.com/brenard/mootools-datepicker/commit/
|
|
658
|
+
// e8f93156cf8ed989a31c9c8d5e75b1bdb294afb2>
|
|
659
|
+
var date = Date.parse(input.get('value'), this.options.format);
|
|
660
|
+
|
|
661
|
+
if (date == null) {
|
|
662
|
+
date = Date.parse(input.get('value'));
|
|
663
|
+
}
|
|
664
|
+
|
|
649
665
|
if (date == null || !date.isValid()){
|
|
650
666
|
var storeDate = input.retrieve('datepicker:value');
|
|
651
667
|
if (storeDate) date = Date.parse(storeDate);
|
|
@@ -658,8 +674,13 @@ this.DatePicker = Picker.Date = new Class({
|
|
|
658
674
|
constructPicker: function(){
|
|
659
675
|
this.parent();
|
|
660
676
|
|
|
661
|
-
|
|
662
|
-
|
|
677
|
+
if (!this.options.rtl){
|
|
678
|
+
this.previous = new Element('div.previous[html=«]').inject(this.header);
|
|
679
|
+
this.next = new Element('div.next[html=»]').inject(this.header);
|
|
680
|
+
} else {
|
|
681
|
+
this.next = new Element('div.previous[html=«]').inject(this.header);
|
|
682
|
+
this.previous = new Element('div.next[html=»]').inject(this.header);
|
|
683
|
+
}
|
|
663
684
|
},
|
|
664
685
|
|
|
665
686
|
hidePrevious: function(_next, _show){
|
|
@@ -995,16 +1016,18 @@ var renderers = {
|
|
|
995
1016
|
body = new Element('tbody').inject(container),
|
|
996
1017
|
titles = new Element('tr.titles').inject(header),
|
|
997
1018
|
localeDaysShort = options.days_abbr || Locale.get('Date.days_abbr'),
|
|
998
|
-
day, classes, element, weekcontainer, dateString
|
|
1019
|
+
day, classes, element, weekcontainer, dateString,
|
|
1020
|
+
where = options.rtl ? 'top' : 'bottom';
|
|
999
1021
|
|
|
1000
1022
|
if (weeknumbers) new Element('th.title.day.weeknumber', {
|
|
1001
1023
|
text: Locale.get('DatePicker.week')
|
|
1002
1024
|
}).inject(titles);
|
|
1025
|
+
|
|
1003
1026
|
for (day = options.startDay; day < (options.startDay + 7); day++){
|
|
1004
1027
|
new Element('th.title.day.day' + (day % 7), {
|
|
1005
1028
|
text: localeDaysShort[(day % 7)],
|
|
1006
1029
|
role: 'columnheader'
|
|
1007
|
-
}).inject(titles);
|
|
1030
|
+
}).inject(titles, where);
|
|
1008
1031
|
}
|
|
1009
1032
|
|
|
1010
1033
|
days.each(function(_date, i){
|
|
@@ -1012,14 +1035,14 @@ var renderers = {
|
|
|
1012
1035
|
|
|
1013
1036
|
if (i % 7 == 0){
|
|
1014
1037
|
weekcontainer = new Element('tr.week.week' + (Math.floor(i / 7))).set('role', 'row').inject(body);
|
|
1015
|
-
if (weeknumbers) new Element('
|
|
1038
|
+
if (weeknumbers) new Element('th.day.weeknumber', {text: date.get('week'), scope: 'row', role: 'rowheader'}).inject(weekcontainer);
|
|
1016
1039
|
}
|
|
1017
1040
|
|
|
1018
1041
|
dateString = date.toDateString();
|
|
1019
1042
|
classes = '.day.day' + date.get('day');
|
|
1020
1043
|
if (dateString == todayString) classes += '.today';
|
|
1021
1044
|
if (date.get('month') != month) classes += '.otherMonth';
|
|
1022
|
-
element = new Element('td' + classes, {text: date.getDate(), role: 'gridcell'}).inject(weekcontainer);
|
|
1045
|
+
element = new Element('td' + classes, {text: date.getDate(), role: 'gridcell'}).inject(weekcontainer, where);
|
|
1023
1046
|
|
|
1024
1047
|
if (dateString == currentString) element.addClass('selected').set('aria-selected', 'true');
|
|
1025
1048
|
else element.set('aria-selected', 'false');
|
|
@@ -1165,7 +1188,7 @@ var isUnavailable = function(type, date, options){
|
|
|
1165
1188
|
month = date.get('month') + 1;
|
|
1166
1189
|
day = date.get('date');
|
|
1167
1190
|
|
|
1168
|
-
var dateAllow = (minDate && date < minDate) || (
|
|
1191
|
+
var dateAllow = (minDate && date < minDate) || (maxDate && date > maxDate);
|
|
1169
1192
|
if (availableDates != null){
|
|
1170
1193
|
dateAllow = dateAllow
|
|
1171
1194
|
|| availableDates[year] == null
|
|
@@ -1188,6 +1211,7 @@ requires: [Picker, Picker.Date]
|
|
|
1188
1211
|
provides: Picker.Date.Range
|
|
1189
1212
|
...
|
|
1190
1213
|
*/
|
|
1214
|
+
|
|
1191
1215
|
Picker.Date.Range = new Class({
|
|
1192
1216
|
|
|
1193
1217
|
Extends: Picker.Date,
|