zen 0.3 → 0.4
Sign up to get free protection for your applications and to get access to all the features.
- data/.gems +3 -2
- data/.rvmrc +1 -1
- data/.travis.yml +5 -0
- data/.yardopts +2 -1
- data/LICENSE +1 -1
- data/README.md +28 -24
- data/Rakefile +5 -2
- data/guide/asset_management.md +6 -6
- data/guide/autosaving_forms.md +42 -0
- data/guide/changelog.md +41 -0
- data/guide/faq.md +49 -0
- data/guide/getting_started.md +24 -13
- data/guide/hacking.md +40 -9
- data/guide/images/categories/categories.png +0 -0
- data/guide/images/categories/category_groups.png +0 -0
- data/guide/images/categories/new_category.png +0 -0
- data/guide/images/categories/new_category_group.png +0 -0
- data/guide/images/comments/comments.png +0 -0
- data/guide/images/comments/edit_comment.png +0 -0
- data/guide/images/custom_fields/custom_field_groups.png +0 -0
- data/guide/images/custom_fields/custom_field_types.png +0 -0
- data/guide/images/custom_fields/custom_fields.png +0 -0
- data/guide/images/custom_fields/edit_custom_field_general.png +0 -0
- data/guide/images/custom_fields/edit_custom_field_group.png +0 -0
- data/guide/images/custom_fields/edit_custom_field_settings.png +0 -0
- data/guide/images/custom_fields/edit_custom_field_type.png +0 -0
- data/guide/images/dashboard/added.png +0 -0
- data/guide/images/dashboard/columns.png +0 -0
- data/guide/images/dashboard/dashboard.png +0 -0
- data/guide/images/dashboard/options.png +0 -0
- data/guide/images/menus/edit_menu.png +0 -0
- data/guide/images/menus/edit_menu_item.png +0 -0
- data/guide/images/menus/menu_item_hierarchy.png +0 -0
- data/guide/images/menus/menu_items.png +0 -0
- data/guide/images/menus/menus.png +0 -0
- data/guide/images/sections/edit_entry.png +0 -0
- data/guide/images/sections/edit_entry_categories.png +0 -0
- data/guide/images/sections/edit_entry_general.png +0 -0
- data/guide/images/sections/edit_entry_meta.png +0 -0
- data/guide/images/sections/edit_section_comments.png +0 -0
- data/guide/images/sections/edit_section_general.png +0 -0
- data/guide/images/sections/edit_section_groups.png +0 -0
- data/guide/images/sections/entries.png +0 -0
- data/guide/images/sections/sections.png +0 -0
- data/guide/images/settings/overview_general.png +0 -0
- data/guide/images/settings/overview_security.png +0 -0
- data/guide/images/settings/overview_user.png +0 -0
- data/guide/images/users/edit_user.png +0 -0
- data/guide/images/users/edit_user_group.png +0 -0
- data/guide/images/users/edit_user_group_permissions.png +0 -0
- data/guide/images/users/edit_user_permissions.png +0 -0
- data/guide/images/users/overview.png +0 -0
- data/guide/images/users/user_groups_overview.png +0 -0
- data/guide/installation.md +7 -1
- data/guide/javascript.md +36 -273
- data/guide/javascript/zen_autosave.md +26 -0
- data/guide/javascript/zen_editor.md +83 -0
- data/guide/javascript/zen_hash.md +34 -0
- data/guide/javascript/zen_htmltable.md +78 -0
- data/guide/javascript/zen_tabs.md +44 -0
- data/guide/javascript/zen_window.md +49 -0
- data/guide/zen_compared.md +201 -0
- data/lib/vendor/sequel_sluggable.rb +1 -1
- data/lib/zen.rb +64 -44
- data/lib/zen/asset_groups.rb +10 -10
- data/lib/zen/bin/create.rb +8 -1
- data/lib/zen/helper/breadcrumb.rb +4 -12
- data/lib/zen/helper/controller.rb +209 -6
- data/lib/zen/helper/locale.rb +19 -0
- data/lib/zen/helper/search.rb +1 -1
- data/lib/zen/helper/stacked_aspect.rb +7 -43
- data/lib/zen/helper/theme.rb +3 -3
- data/lib/zen/language.rb +5 -10
- data/lib/zen/language/translation.rb +1 -1
- data/lib/zen/layout/admin.xhtml +41 -25
- data/lib/zen/layout/login.xhtml +8 -3
- data/lib/zen/migrator.rb +54 -0
- data/lib/zen/model/helper.rb +20 -1
- data/lib/zen/model/init.rb +2 -0
- data/lib/zen/model/plugin/events.rb +158 -0
- data/lib/zen/package.rb +32 -6
- data/lib/zen/package/all.rb +1 -0
- data/lib/zen/package/categories/lib/categories.rb +6 -6
- data/lib/zen/package/categories/lib/categories/controller/categories.rb +20 -83
- data/lib/zen/package/categories/lib/categories/controller/category_groups.rb +23 -74
- data/lib/zen/package/categories/lib/categories/model/category.rb +58 -1
- data/lib/zen/package/categories/lib/categories/model/category_group.rb +62 -2
- data/lib/zen/package/categories/lib/categories/view/admin/categories/form.xhtml +46 -40
- data/lib/zen/package/categories/lib/categories/view/admin/categories/index.xhtml +74 -75
- data/lib/zen/package/categories/lib/categories/view/admin/category-groups/form.xhtml +27 -24
- data/lib/zen/package/categories/lib/categories/view/admin/category-groups/index.xhtml +83 -86
- data/lib/zen/package/comments/lib/comments.rb +5 -5
- data/lib/zen/package/comments/lib/comments/controller/comments.rb +12 -64
- data/lib/zen/package/comments/lib/comments/controller/comments_form.rb +4 -22
- data/lib/zen/package/comments/lib/comments/model/comment.rb +65 -16
- data/lib/zen/package/comments/lib/comments/view/admin/comments/form.xhtml +52 -49
- data/lib/zen/package/comments/lib/comments/view/admin/comments/index.xhtml +52 -60
- data/lib/zen/package/comments/migrations/1308774099_comment_status.rb +1 -1
- data/lib/zen/package/custom_fields/lib/custom_fields.rb +11 -13
- data/lib/zen/package/custom_fields/lib/custom_fields/blue_form_parameters.rb +29 -13
- data/lib/zen/package/custom_fields/lib/custom_fields/controller/custom_field_groups.rb +21 -50
- data/lib/zen/package/custom_fields/lib/custom_fields/controller/custom_field_types.rb +27 -71
- data/lib/zen/package/custom_fields/lib/custom_fields/controller/custom_fields.rb +25 -78
- data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field.rb +48 -1
- data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_group.rb +35 -1
- data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_method.rb +3 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_type.rb +40 -1
- data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_value.rb +1 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-groups/form.xhtml +29 -26
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-groups/index.xhtml +96 -100
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-types/form.xhtml +56 -53
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-types/index.xhtml +82 -82
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-fields/form.xhtml +88 -85
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-fields/index.xhtml +83 -80
- data/lib/zen/package/dashboard/lib/dashboard.rb +28 -0
- data/lib/zen/package/dashboard/lib/dashboard/controller/dashboard.rb +154 -0
- data/lib/zen/package/dashboard/lib/dashboard/language/en/dashboard.rb +35 -0
- data/lib/zen/package/dashboard/lib/dashboard/language/nl/dashboard.rb +36 -0
- data/lib/zen/package/dashboard/lib/dashboard/model/widget.rb +45 -0
- data/lib/zen/package/dashboard/lib/dashboard/public/admin/dashboard/css/dashboard.css +74 -0
- data/lib/zen/package/dashboard/lib/dashboard/public/admin/dashboard/js/dashboard.js +102 -0
- data/lib/zen/package/dashboard/lib/dashboard/view/admin/index.xhtml +29 -0
- data/lib/zen/package/dashboard/lib/dashboard/view/admin/widget/welcome.xhtml +28 -0
- data/lib/zen/package/dashboard/lib/dashboard/widget.rb +292 -0
- data/lib/zen/package/dashboard/lib/dashboard/widget/welcome.rb +9 -0
- data/lib/zen/package/dashboard/migrations/1326411254_create_schema.rb +28 -0
- data/lib/zen/package/extensions/lib/extensions.rb +5 -5
- data/lib/zen/package/extensions/lib/extensions/view/admin/extensions/index.xhtml +72 -67
- data/lib/zen/package/menu.rb +6 -1
- data/lib/zen/package/menus/lib/menus.rb +6 -4
- data/lib/zen/package/menus/lib/menus/controller/menu_items.rb +69 -104
- data/lib/zen/package/menus/lib/menus/controller/menus.rb +19 -76
- data/lib/zen/package/menus/lib/menus/helper/menu.rb +54 -38
- data/lib/zen/package/menus/lib/menus/helper/menu_frontend.rb +7 -13
- data/lib/zen/package/menus/lib/menus/model/menu.rb +158 -2
- data/lib/zen/package/menus/lib/menus/model/menu_item.rb +73 -10
- data/lib/zen/package/menus/lib/menus/public/admin/menus/css/menus.css +47 -0
- data/lib/zen/package/menus/lib/menus/public/admin/menus/js/lib/nested_sortables.js +549 -0
- data/lib/zen/package/menus/lib/menus/public/admin/menus/js/menu_items.js +38 -0
- data/lib/zen/package/menus/lib/menus/view/admin/menu-items/form.xhtml +51 -61
- data/lib/zen/package/menus/lib/menus/view/admin/menu-items/index.xhtml +18 -81
- data/lib/zen/package/menus/lib/menus/view/admin/menus/form.xhtml +49 -44
- data/lib/zen/package/menus/lib/menus/view/admin/menus/index.xhtml +81 -83
- data/lib/zen/package/sections/lib/sections.rb +9 -4
- data/lib/zen/package/sections/lib/sections/controller/section_entries.rb +80 -132
- data/lib/zen/package/sections/lib/sections/controller/sections.rb +27 -73
- data/lib/zen/package/sections/lib/sections/helper/section.rb +44 -1
- data/lib/zen/package/sections/lib/sections/language/en/section_entries.rb +2 -0
- data/lib/zen/package/sections/lib/sections/language/nl/section_entries.rb +2 -0
- data/lib/zen/package/sections/lib/sections/model/section.rb +48 -1
- data/lib/zen/package/sections/lib/sections/model/section_entry.rb +55 -5
- data/lib/zen/package/sections/lib/sections/model/section_entry_status.rb +2 -0
- data/lib/zen/package/sections/lib/sections/view/admin/section-entries/form.xhtml +76 -67
- data/lib/zen/package/sections/lib/sections/view/admin/section-entries/index.xhtml +74 -79
- data/lib/zen/package/sections/lib/sections/view/admin/section-entries/recent_entries.xhtml +45 -0
- data/lib/zen/package/sections/lib/sections/view/admin/sections/form.xhtml +119 -0
- data/lib/zen/package/sections/lib/sections/view/admin/sections/index.xhtml +96 -0
- data/lib/zen/package/sections/lib/sections/widget/recent_entries.rb +14 -0
- data/lib/zen/package/sections/migrations/1308813320_section_entry_statuses.rb +1 -1
- data/lib/zen/package/settings/lib/settings.rb +14 -5
- data/lib/zen/package/settings/lib/settings/controller/settings.rb +4 -4
- data/lib/zen/package/settings/lib/settings/language/nl/settings.rb +1 -1
- data/lib/zen/package/settings/lib/settings/setting.rb +1 -1
- data/lib/zen/package/settings/lib/settings/view/admin/settings/index.xhtml +21 -17
- data/lib/zen/package/users/lib/users.rb +18 -19
- data/lib/zen/package/users/lib/users/controller/user_groups.rb +23 -50
- data/lib/zen/package/users/lib/users/controller/users.rb +57 -89
- data/lib/zen/package/users/lib/users/helper/acl.rb +1 -0
- data/lib/zen/package/users/lib/users/language/en/user_groups.rb +1 -0
- data/lib/zen/package/users/lib/users/language/en/users.rb +2 -1
- data/lib/zen/package/users/lib/users/language/nl/user_groups.rb +1 -0
- data/lib/zen/package/users/lib/users/language/nl/users.rb +2 -1
- data/lib/zen/package/users/lib/users/model/permission.rb +13 -0
- data/lib/zen/package/users/lib/users/model/user.rb +57 -4
- data/lib/zen/package/users/lib/users/model/user_group.rb +37 -3
- data/lib/zen/package/users/lib/users/model/user_status.rb +4 -0
- data/lib/zen/package/users/lib/users/public/admin/{css/users/permissions.css → users/css/users.css} +0 -0
- data/lib/zen/package/users/lib/users/public/admin/{js/users/permissions.js → users/js/users.js} +4 -2
- data/lib/zen/package/users/lib/users/view/admin/user-groups/form.xhtml +51 -47
- data/lib/zen/package/users/lib/users/view/admin/user-groups/index.xhtml +62 -69
- data/lib/zen/package/users/lib/users/view/admin/users/form.xhtml +92 -82
- data/lib/zen/package/users/lib/users/view/admin/users/index.xhtml +68 -66
- data/lib/zen/package/users/lib/users/view/admin/users/login.xhtml +36 -28
- data/lib/zen/package/users/lib/users/view/admin/users/permissions.xhtml +5 -7
- data/lib/zen/package/users/lib/users/view/admin/users/register.xhtml +47 -41
- data/lib/zen/package/users/migrations/1320272365_status_ids.rb +1 -1
- data/lib/zen/public/admin/{js/vendor/mootools → mootools/js}/core.js +113 -108
- data/lib/zen/public/admin/{js/vendor/mootools → mootools/js}/more.js +99 -6
- data/lib/zen/public/admin/zen/css/buttons.css +106 -0
- data/lib/zen/public/admin/{css/zen → zen/css}/datepicker.css +45 -30
- data/lib/zen/public/admin/zen/css/editor.css +69 -0
- data/lib/zen/public/admin/{css/zen → zen/css}/forms.css +28 -30
- data/lib/zen/public/admin/zen/css/general.css +183 -0
- data/lib/zen/public/admin/zen/css/layout.css +224 -0
- data/lib/zen/public/admin/zen/css/messages.css +34 -0
- data/lib/zen/public/admin/{css/zen → zen/css}/reset.css +4 -9
- data/lib/zen/public/admin/zen/css/tables.css +57 -0
- data/lib/zen/public/admin/zen/css/tabs.css +84 -0
- data/lib/zen/public/admin/zen/css/window.css +74 -0
- data/lib/zen/public/admin/{images/zen → zen/images}/icons/asc.png +0 -0
- data/lib/zen/public/admin/{images/zen → zen/images}/icons/bold.png +0 -0
- data/lib/zen/public/admin/zen/images/icons/box.png +0 -0
- data/lib/zen/public/admin/zen/images/icons/categories.png +0 -0
- data/lib/zen/public/admin/{images/zen → zen/images}/icons/close.png +0 -0
- data/lib/zen/public/admin/zen/images/icons/comment.png +0 -0
- data/lib/zen/public/admin/{images/zen → zen/images}/icons/desc.png +0 -0
- data/lib/zen/public/admin/{images/zen → zen/images}/icons/edit.png +0 -0
- data/lib/zen/public/admin/{images/zen → zen/images}/icons/error.png +0 -0
- data/lib/zen/public/admin/zen/images/icons/external.png +0 -0
- data/lib/zen/public/admin/zen/images/icons/globe.png +0 -0
- data/lib/zen/public/admin/{images/zen → zen/images}/icons/italic.png +0 -0
- data/lib/zen/public/admin/{images/zen → zen/images}/icons/link.png +0 -0
- data/lib/zen/public/admin/zen/images/icons/lock.png +0 -0
- data/lib/zen/public/admin/{images/zen → zen/images}/icons/ol.png +0 -0
- data/lib/zen/public/admin/zen/images/icons/pages.png +0 -0
- data/lib/zen/public/admin/{images/zen → zen/images}/icons/preview.png +0 -0
- data/lib/zen/public/admin/zen/images/icons/relation.png +0 -0
- data/lib/zen/public/admin/zen/images/icons/settings.png +0 -0
- data/lib/zen/public/admin/zen/images/icons/template.png +0 -0
- data/lib/zen/public/admin/{images/zen → zen/images}/icons/ul.png +0 -0
- data/lib/zen/public/admin/{images/zen → zen/images}/icons/user.png +0 -0
- data/lib/zen/public/admin/zen/images/icons/user_group.png +0 -0
- data/lib/zen/public/admin/{js/zen → zen/js}/index.js +21 -9
- data/lib/zen/public/admin/zen/js/lib/autosave.js +185 -0
- data/lib/zen/public/admin/zen/js/lib/base.js +60 -0
- data/lib/zen/public/admin/{js/vendor → zen/js/lib}/datepicker.js +52 -28
- data/lib/zen/public/admin/{js/zen → zen/js}/lib/editor.js +23 -34
- data/lib/zen/public/admin/{js/zen → zen/js}/lib/editor/markdown.js +5 -1
- data/lib/zen/public/admin/{js/zen → zen/js}/lib/editor/textile.js +4 -0
- data/lib/zen/public/admin/zen/js/lib/hash.js +218 -0
- data/lib/zen/public/admin/{js/zen → zen/js}/lib/html_table.js +5 -0
- data/lib/zen/public/admin/zen/js/lib/tabs.js +194 -0
- data/lib/zen/public/admin/{js/zen → zen/js}/lib/window.js +54 -29
- data/lib/zen/security.rb +50 -0
- data/lib/zen/spec/helper.rb +5 -120
- data/lib/zen/spec/helper/capybara.rb +75 -0
- data/lib/zen/spec/helper/general.rb +75 -0
- data/lib/zen/spec/simplecov.rb +1 -0
- data/lib/zen/task/build.rake +2 -21
- data/lib/zen/task/clean.rake +1 -10
- data/lib/zen/task/db.rake +4 -10
- data/lib/zen/task/package.rake +2 -5
- data/lib/zen/task/setup.rake +1 -1
- data/lib/zen/task/test.rake +6 -6
- data/lib/zen/task/theme.rake +2 -5
- data/lib/zen/theme.rb +26 -22
- data/lib/zen/version.rb +1 -1
- data/lib/zen/view/bottom.xhtml +2 -3
- data/lib/zen/view/search.xhtml +3 -5
- data/proto/app/config/config.rb.erb +1 -1
- data/proto/app/theme/default/index.xhtml +116 -20
- data/proto/app/theme/partials/head.xhtml +9 -0
- data/proto/app/theme/partials/sidebar.xhtml +40 -0
- data/proto/app/theme/theme.rb +3 -0
- data/spec/Rakefile +1 -2
- data/spec/fixtures/zen/helper/stacked_aspect.rb +54 -0
- data/spec/fixtures/zen/package/dashboard/controller/widget.rb +15 -0
- data/spec/fixtures/zen/package/dashboard/widget.rb +5 -0
- data/spec/fixtures/zen/theme/theme.rb +2 -2
- data/spec/helper.rb +19 -10
- data/spec/zen/controller/admin_controller.rb +3 -3
- data/spec/zen/controller/main_controller.rb +7 -7
- data/spec/zen/controller/preview.rb +3 -3
- data/spec/zen/event.rb +4 -4
- data/spec/zen/helper/breadcrumb.rb +4 -8
- data/spec/zen/helper/controller.rb +47 -4
- data/spec/zen/helper/locale.rb +3 -3
- data/spec/zen/helper/message.rb +4 -4
- data/spec/zen/helper/stacked_aspect.rb +40 -0
- data/spec/zen/helper/theme.rb +9 -9
- data/spec/zen/language.rb +8 -8
- data/spec/zen/markup.rb +6 -6
- data/spec/zen/package.rb +11 -9
- data/spec/zen/package/categories/controller/categories.rb +56 -24
- data/spec/zen/package/categories/controller/category_groups.rb +55 -23
- data/spec/zen/package/categories/helper/category.rb +5 -5
- data/spec/zen/package/categories/helper/category_frontend.rb +5 -5
- data/spec/zen/package/comments/anti_spam.rb +4 -4
- data/spec/zen/package/comments/controller/comments.rb +95 -24
- data/spec/zen/package/comments/controller/comments_form.rb +31 -26
- data/spec/zen/package/comments/helper/comment.rb +3 -3
- data/spec/zen/package/comments/helper/comment_frontend.rb +6 -6
- data/spec/zen/package/custom_fields/blue_form_parameters.rb +8 -8
- data/spec/zen/package/custom_fields/controller/custom_field_groups.rb +58 -27
- data/spec/zen/package/custom_fields/controller/custom_field_types.rb +57 -27
- data/spec/zen/package/custom_fields/controller/custom_fields.rb +58 -27
- data/spec/zen/package/custom_fields/helper/custom_field.rb +7 -7
- data/spec/zen/package/dashboard/controller/dashboard.rb +147 -0
- data/spec/zen/package/dashboard/widget.rb +56 -0
- data/spec/zen/package/extensions/controller/extensions.rb +4 -4
- data/spec/zen/package/menus/controller/menu_items.rb +48 -39
- data/spec/zen/package/menus/controller/menus.rb +55 -24
- data/spec/zen/package/menus/helper/menu.rb +6 -14
- data/spec/zen/package/menus/helper/menu_frontend.rb +7 -7
- data/spec/zen/package/menus/model/menu.rb +121 -0
- data/spec/zen/package/menus/model/menu_item.rb +34 -0
- data/spec/zen/package/sections/controller/section_entries.rb +104 -39
- data/spec/zen/package/sections/controller/sections.rb +60 -27
- data/spec/zen/package/sections/helper/section.rb +5 -5
- data/spec/zen/package/sections/helper/section_frontend.rb +9 -9
- data/spec/zen/package/sections/widget.rb +44 -0
- data/spec/zen/package/settings/controller/settings.rb +18 -16
- data/spec/zen/package/settings/settings.rb +12 -12
- data/spec/zen/package/users/controller/user_groups.rb +61 -29
- data/spec/zen/package/users/controller/users.rb +118 -39
- data/spec/zen/package/users/helper/access.rb +3 -3
- data/spec/zen/package/users/helper/acl.rb +4 -4
- data/spec/zen/package/users/helper/users.rb +5 -5
- data/spec/zen/security.rb +25 -0
- data/spec/zen/theme.rb +20 -18
- data/spec/zen/validation.rb +5 -5
- data/spec/zen/vendor/sequel_sluggable.rb +12 -0
- data/zen.gemspec +27 -4
- metadata +182 -124
- data/AUTHORS +0 -4
- data/guide/_static/categories/categories.png +0 -0
- data/guide/_static/categories/category_groups.png +0 -0
- data/guide/_static/categories/new_category.png +0 -0
- data/guide/_static/categories/new_category_group.png +0 -0
- data/guide/_static/comments/comments.png +0 -0
- data/guide/_static/comments/edit_comment.png +0 -0
- data/guide/_static/custom_fields/custom_field_groups.png +0 -0
- data/guide/_static/custom_fields/custom_field_types.png +0 -0
- data/guide/_static/custom_fields/custom_fields.png +0 -0
- data/guide/_static/custom_fields/edit_custom_field_general.png +0 -0
- data/guide/_static/custom_fields/edit_custom_field_group.png +0 -0
- data/guide/_static/custom_fields/edit_custom_field_settings.png +0 -0
- data/guide/_static/custom_fields/edit_custom_field_type.png +0 -0
- data/guide/_static/menus/edit_menu.png +0 -0
- data/guide/_static/menus/edit_menu_item.png +0 -0
- data/guide/_static/menus/menu_items.png +0 -0
- data/guide/_static/menus/menus.png +0 -0
- data/guide/_static/sections/edit_entry.png +0 -0
- data/guide/_static/sections/edit_entry_categories.png +0 -0
- data/guide/_static/sections/edit_entry_general.png +0 -0
- data/guide/_static/sections/edit_entry_meta.png +0 -0
- data/guide/_static/sections/edit_section_comments.png +0 -0
- data/guide/_static/sections/edit_section_general.png +0 -0
- data/guide/_static/sections/edit_section_groups.png +0 -0
- data/guide/_static/sections/entries.png +0 -0
- data/guide/_static/sections/sections.png +0 -0
- data/guide/_static/settings/overview_general.png +0 -0
- data/guide/_static/settings/overview_security.png +0 -0
- data/guide/_static/settings/overview_user.png +0 -0
- data/guide/_static/users/edit_user.png +0 -0
- data/guide/_static/users/edit_user_group.png +0 -0
- data/guide/_static/users/edit_user_group_permissions.png +0 -0
- data/guide/_static/users/edit_user_permissions.png +0 -0
- data/guide/_static/users/overview.png +0 -0
- data/guide/_static/users/user_groups_overview.png +0 -0
- data/lib/zen/controller/translations.rb +0 -49
- data/lib/zen/package/sections/lib/sections/view/admin/form.xhtml +0 -113
- data/lib/zen/package/sections/lib/sections/view/admin/index.xhtml +0 -97
- data/lib/zen/public/admin/css/zen/buttons.css +0 -46
- data/lib/zen/public/admin/css/zen/editor.css +0 -88
- data/lib/zen/public/admin/css/zen/general.css +0 -109
- data/lib/zen/public/admin/css/zen/grid.css +0 -100
- data/lib/zen/public/admin/css/zen/layout.css +0 -184
- data/lib/zen/public/admin/css/zen/messages.css +0 -54
- data/lib/zen/public/admin/css/zen/tables.css +0 -97
- data/lib/zen/public/admin/css/zen/tabs.css +0 -47
- data/lib/zen/public/admin/css/zen/window.css +0 -73
- data/lib/zen/public/admin/images/zen/icons/accept.png +0 -0
- data/lib/zen/public/admin/images/zen/icons/add.png +0 -0
- data/lib/zen/public/admin/images/zen/icons/back.png +0 -0
- data/lib/zen/public/admin/images/zen/icons/delete.png +0 -0
- data/lib/zen/public/admin/images/zen/icons/help.png +0 -0
- data/lib/zen/public/admin/images/zen/icons/info.png +0 -0
- data/lib/zen/public/admin/images/zen/icons/logout.png +0 -0
- data/lib/zen/public/admin/images/zen/icons/pdf.png +0 -0
- data/lib/zen/public/admin/images/zen/icons/view.png +0 -0
- data/lib/zen/public/admin/js/zen/lib/tabs.js +0 -207
- data/lib/zen/view/main.xhtml +0 -19
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,
|