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
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
Zen::Package.add do |p|
|
|
2
|
+
p.name = :dashboard
|
|
3
|
+
p.title = 'dashboard.titles.index'
|
|
4
|
+
p.author = 'Yorick Peterse'
|
|
5
|
+
p.url = 'http://zen-cms.com/'
|
|
6
|
+
p.about = 'dashboard.description'
|
|
7
|
+
p.root = __DIR__('dashboard')
|
|
8
|
+
p.migrations = __DIR__('../migrations')
|
|
9
|
+
|
|
10
|
+
p.menu 'dashboard.titles.index', '/admin'
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
require __DIR__('dashboard/model/widget')
|
|
14
|
+
require __DIR__('dashboard/controller/dashboard')
|
|
15
|
+
require __DIR__('dashboard/widget')
|
|
16
|
+
require __DIR__('dashboard/widget/welcome')
|
|
17
|
+
|
|
18
|
+
Zen::Event.listen :after_new_user do |user|
|
|
19
|
+
Dashboard::Model::Widget.create(
|
|
20
|
+
:user_id => user.id,
|
|
21
|
+
:name => 'welcome',
|
|
22
|
+
:order => 0
|
|
23
|
+
)
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
Zen::Event.listen :post_start do
|
|
27
|
+
Zen::Language.load('dashboard')
|
|
28
|
+
end
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
##
|
|
2
|
+
# Package for the user's dashboard.
|
|
3
|
+
#
|
|
4
|
+
# ## Controllers
|
|
5
|
+
#
|
|
6
|
+
# * {Dashboard::Controller::Dashboard}
|
|
7
|
+
#
|
|
8
|
+
# ## Models
|
|
9
|
+
#
|
|
10
|
+
# * {Dashboard::Model::Widget}
|
|
11
|
+
#
|
|
12
|
+
# ## Generic Modules & Classes
|
|
13
|
+
#
|
|
14
|
+
# * {Dashboard::Widget}
|
|
15
|
+
# * {Dashboard::WidgetError}
|
|
16
|
+
#
|
|
17
|
+
# @since 16-01-2012
|
|
18
|
+
#
|
|
19
|
+
module Dashboard
|
|
20
|
+
module Controller
|
|
21
|
+
##
|
|
22
|
+
# Shows the dashboard for the currently logged in user. The dashboard shows
|
|
23
|
+
# a list of user specific widgets. These widgets can be re-arranged,
|
|
24
|
+
# disabled/enabled and the columns for these widgets can also be customized.
|
|
25
|
+
#
|
|
26
|
+
# When you open up the dashboard for the first time only one widget will be
|
|
27
|
+
# displayed, the "Welcome" widget. This widget gives a very short
|
|
28
|
+
# introduction to how widgets work and how to navigate around the
|
|
29
|
+
# application.
|
|
30
|
+
#
|
|
31
|
+
# 
|
|
32
|
+
#
|
|
33
|
+
# Of course the default widget isn't very useful after the first time you've
|
|
34
|
+
# read it so you might want to turn it off and enable some other widgets
|
|
35
|
+
# instead. This can be done by first opening the options menu by clicking on
|
|
36
|
+
# the "Options" button and then choosing which widgets you'd like to be
|
|
37
|
+
# displayed.
|
|
38
|
+
#
|
|
39
|
+
# 
|
|
40
|
+
#
|
|
41
|
+
# In this image two widgets are available, "Welcome" (activated by default
|
|
42
|
+
# for each new user) and the "Recent Entries" widget. In order to activate
|
|
43
|
+
# the "Recent Entries" widget all you have to do is check the checkbox. Once
|
|
44
|
+
# done it will be added to your dashboard as shown in the image below.
|
|
45
|
+
#
|
|
46
|
+
# 
|
|
47
|
+
#
|
|
48
|
+
# The options menu also allows you to change the amount of columns for each
|
|
49
|
+
# row. You can choose between 1 and 4 columns.
|
|
50
|
+
#
|
|
51
|
+
# 
|
|
52
|
+
#
|
|
53
|
+
# ## Available Widgets
|
|
54
|
+
#
|
|
55
|
+
# Zen comes with the following widgets:
|
|
56
|
+
#
|
|
57
|
+
# * Welcome: gives a short introduction to widgets and how to navigate
|
|
58
|
+
# around the application.
|
|
59
|
+
# * Recent Entries: a widget that displays the 10 most recent entries.
|
|
60
|
+
#
|
|
61
|
+
# @since 08-01-2012
|
|
62
|
+
# @map /admin
|
|
63
|
+
#
|
|
64
|
+
class Dashboard < Zen::Controller::AdminController
|
|
65
|
+
map '/admin'
|
|
66
|
+
title 'dashboard.titles.%s'
|
|
67
|
+
|
|
68
|
+
serve :css, ['admin/dashboard/css/dashboard'], :name => 'dashboard'
|
|
69
|
+
serve :javascript, ['admin/dashboard/js/dashboard'], :name => 'dashboard'
|
|
70
|
+
|
|
71
|
+
set_layout nil => [:widget_state, :widget_order, :widget_columns],
|
|
72
|
+
:admin => [:index]
|
|
73
|
+
|
|
74
|
+
##
|
|
75
|
+
# Shows all the active widgets and allows the user to manage these widgets
|
|
76
|
+
# or add new ones.
|
|
77
|
+
#
|
|
78
|
+
# @since 08-01-2012
|
|
79
|
+
#
|
|
80
|
+
def index; end
|
|
81
|
+
|
|
82
|
+
##
|
|
83
|
+
# Updates the sort order of all the widgets for the currently logged in
|
|
84
|
+
# user.
|
|
85
|
+
#
|
|
86
|
+
# @since 15-01-2012
|
|
87
|
+
#
|
|
88
|
+
def widget_order
|
|
89
|
+
::Dashboard::Widget::REGISTERED.each do |name, widget|
|
|
90
|
+
_name = name.to_s
|
|
91
|
+
|
|
92
|
+
if request.POST[_name] and request.POST[_name] =~ /\d+/
|
|
93
|
+
row = ::Dashboard::Model::Widget[
|
|
94
|
+
:name => _name,
|
|
95
|
+
:user_id => user.id
|
|
96
|
+
]
|
|
97
|
+
|
|
98
|
+
unless row.nil?
|
|
99
|
+
row.update(:order => request.POST[_name])
|
|
100
|
+
end
|
|
101
|
+
end
|
|
102
|
+
end
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
##
|
|
106
|
+
# Enables or disables a widget for the currently logged in user.
|
|
107
|
+
#
|
|
108
|
+
# @since 15-01-2012
|
|
109
|
+
#
|
|
110
|
+
def widget_state
|
|
111
|
+
widget = request.POST['widget']
|
|
112
|
+
enabled = request.POST['enabled'] == '1' ? true : false
|
|
113
|
+
|
|
114
|
+
if !widget.nil? and !widget.empty? \
|
|
115
|
+
and ::Dashboard::Widget::REGISTERED.key?(widget.to_sym)
|
|
116
|
+
row = ::Dashboard::Model::Widget[
|
|
117
|
+
:name => widget,
|
|
118
|
+
:user_id => user.id
|
|
119
|
+
]
|
|
120
|
+
|
|
121
|
+
if enabled == true
|
|
122
|
+
if row.nil?
|
|
123
|
+
last_order = ::Dashboard::Model::Widget.last_order(user.id)
|
|
124
|
+
|
|
125
|
+
::Dashboard::Model::Widget.create(
|
|
126
|
+
:name => widget,
|
|
127
|
+
:user_id => user.id,
|
|
128
|
+
:order => last_order + 1
|
|
129
|
+
)
|
|
130
|
+
|
|
131
|
+
respond(::Dashboard::Widget[widget].html, 201)
|
|
132
|
+
end
|
|
133
|
+
else
|
|
134
|
+
row.destroy
|
|
135
|
+
end
|
|
136
|
+
end
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
##
|
|
140
|
+
# Updates the amount of widget columns to use for the currently logged in
|
|
141
|
+
# user.
|
|
142
|
+
#
|
|
143
|
+
# @since 15-01-2012
|
|
144
|
+
#
|
|
145
|
+
def widget_columns
|
|
146
|
+
columns = request.POST['columns']
|
|
147
|
+
|
|
148
|
+
if !columns.nil? and !columns.empty? and columns =~ /\d+/
|
|
149
|
+
user.update(:widget_columns => columns)
|
|
150
|
+
end
|
|
151
|
+
end
|
|
152
|
+
end # Dashboard
|
|
153
|
+
end # Controller
|
|
154
|
+
end # Zen
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
Zen::Language::Translation.add do |trans|
|
|
2
|
+
trans.language = 'en'
|
|
3
|
+
trans.name = 'dashboard'
|
|
4
|
+
|
|
5
|
+
trans.translate do |t|
|
|
6
|
+
t['titles.index'] = 'Dashboard'
|
|
7
|
+
t['buttons.options'] = 'Options'
|
|
8
|
+
t['labels.columns'] = 'Columns'
|
|
9
|
+
t['labels.active_widgets'] = 'Active Widgets'
|
|
10
|
+
t['labels.documentation'] = 'Documentation'
|
|
11
|
+
t['labels.github'] = 'Github Project'
|
|
12
|
+
t['labels.mailing_list'] = 'Mailing List'
|
|
13
|
+
t['widgets.titles.welcome'] = 'Welcome'
|
|
14
|
+
|
|
15
|
+
t['widgets.welcome.content.paragraph_1'] = <<TXT.strip
|
|
16
|
+
Welcome to Zen %s. What you are seeing here is the dashboard of your website.
|
|
17
|
+
This little box here is called a "widget". Widgets are displayed on the
|
|
18
|
+
dashboard and contain small amounts of data such as this help message or a list
|
|
19
|
+
of recent entries. Don't like a widget? You can customize the active widgets by
|
|
20
|
+
clicking the "Options" button at the top right.
|
|
21
|
+
TXT
|
|
22
|
+
|
|
23
|
+
t['widgets.welcome.content.paragraph_2'] = <<TXT.strip
|
|
24
|
+
To the left is the name of your website, a few user specific actions and the
|
|
25
|
+
main navigation menu. You can use this menu to navigate through the
|
|
26
|
+
administration panel of your website. Clicking on the name of your website (or
|
|
27
|
+
on the "Dashboard" link) will bring you back to this page.
|
|
28
|
+
TXT
|
|
29
|
+
|
|
30
|
+
t['widgets.welcome.content.paragraph_3'] = 'For more information see the ' \
|
|
31
|
+
'following links:'
|
|
32
|
+
|
|
33
|
+
t['description'] = 'Dashboard with custom widgets for each user.'
|
|
34
|
+
end
|
|
35
|
+
end
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
Zen::Language::Translation.add do |trans|
|
|
2
|
+
trans.language = 'nl'
|
|
3
|
+
trans.name = 'dashboard'
|
|
4
|
+
|
|
5
|
+
trans.translate do |t|
|
|
6
|
+
t['titles.index'] = 'Dashboard'
|
|
7
|
+
t['buttons.options'] = 'Opties'
|
|
8
|
+
t['labels.columns'] = 'Kolommen'
|
|
9
|
+
t['labels.active_widgets'] = 'Actieve widgets'
|
|
10
|
+
t['labels.documentation'] = 'Documentatie'
|
|
11
|
+
t['labels.github'] = 'Github project'
|
|
12
|
+
t['labels.mailing_list'] = 'Discussie groep'
|
|
13
|
+
t['widgets.titles.welcome'] = 'Welkom'
|
|
14
|
+
|
|
15
|
+
t['widgets.welcome.content.paragraph_1'] = <<TXT.strip
|
|
16
|
+
Welkom bij Zen %s. Wat u nu voor u ziet is het dashboard van uw website. Dit
|
|
17
|
+
kleine blok heet een "widget". Widgets worden weergegeven op het dashboard en
|
|
18
|
+
bevatten kleine hoeveelheden aan data zoals dit help bericht of een lijst met
|
|
19
|
+
recente artikelen. Vind u een bepaalde widget maar niks? Geen probleem. Widgets
|
|
20
|
+
kunnen aan of uit worden gezet door op de knop "Opties" te klikken, deze knop
|
|
21
|
+
vind u in de rechter bovenhoek van deze pagina.
|
|
22
|
+
TXT
|
|
23
|
+
|
|
24
|
+
t['widgets.welcome.content.paragraph_2'] = <<TXT.strip
|
|
25
|
+
Aan de linker kant van deze pagina vind u de naam van uw website, een paar
|
|
26
|
+
gebruikers specifieke acties en het hoofd navigatie menu. Met dit menu kunt u
|
|
27
|
+
rond navigeren door het beheerders paneel van uw website. Door op de naam te
|
|
28
|
+
klikken (of op de "Dashboard" link) komt u weer terug op deze pagina.
|
|
29
|
+
TXT
|
|
30
|
+
|
|
31
|
+
t['widgets.welcome.content.paragraph_3'] = 'Zie de volgende links voor ' \
|
|
32
|
+
'meer informatie:'
|
|
33
|
+
|
|
34
|
+
t['description'] = 'Dashboard met aanpasbare widgets voor elke gebruiker.'
|
|
35
|
+
end
|
|
36
|
+
end
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
module Dashboard
|
|
2
|
+
module Model
|
|
3
|
+
##
|
|
4
|
+
# Model for the table that contains the active widgets for a user.
|
|
5
|
+
#
|
|
6
|
+
# @since 12-01-2012
|
|
7
|
+
#
|
|
8
|
+
class Widget < Sequel::Model
|
|
9
|
+
many_to_one :users, :class => 'Users::Model::User'
|
|
10
|
+
|
|
11
|
+
##
|
|
12
|
+
# Returns an integer containing the order of the last widget. If no
|
|
13
|
+
# widgets were found 0 is returned.
|
|
14
|
+
#
|
|
15
|
+
# @since 15-01-2012
|
|
16
|
+
# @param [Fixnum] user_id The ID of the user for which to retrieve the
|
|
17
|
+
# widget order.
|
|
18
|
+
# @return [Fixnum]
|
|
19
|
+
#
|
|
20
|
+
def self.last_order(user_id)
|
|
21
|
+
rows = select(:order) \
|
|
22
|
+
.filter(:user_id => user_id) \
|
|
23
|
+
.order(:order.desc) \
|
|
24
|
+
.limit(1) \
|
|
25
|
+
.all
|
|
26
|
+
|
|
27
|
+
if rows.empty?
|
|
28
|
+
return 0
|
|
29
|
+
else
|
|
30
|
+
return rows[0].order
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
##
|
|
35
|
+
# Validates the model instance before saving it in the database.
|
|
36
|
+
#
|
|
37
|
+
# @since 13-01-2012
|
|
38
|
+
#
|
|
39
|
+
def validate
|
|
40
|
+
validates_presence([:name, :order, :user_id])
|
|
41
|
+
validates_integer(:user_id)
|
|
42
|
+
end
|
|
43
|
+
end # Widget
|
|
44
|
+
end # Model
|
|
45
|
+
end # Dashboard
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
.widget
|
|
2
|
+
{
|
|
3
|
+
border: 1px solid #aaa;
|
|
4
|
+
background: #fff;
|
|
5
|
+
float: left;
|
|
6
|
+
margin-bottom: 30px;
|
|
7
|
+
min-height: 150px;
|
|
8
|
+
vertical-align: top;
|
|
9
|
+
width: 100%;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.widget header
|
|
13
|
+
{
|
|
14
|
+
cursor: move;
|
|
15
|
+
padding: 0px 15px!important;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.widget header h1
|
|
19
|
+
{
|
|
20
|
+
font-size: 20px;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/* Different styles for the various column widths. */
|
|
24
|
+
.columns_2 .widget, .columns_3 .widget, .columns_4 .widget
|
|
25
|
+
{
|
|
26
|
+
margin-right: 2%;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.columns_2 .widget
|
|
30
|
+
{
|
|
31
|
+
width: 47.9%;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.columns_3 .widget
|
|
35
|
+
{
|
|
36
|
+
width: 30.9%;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.columns_4 .widget
|
|
40
|
+
{
|
|
41
|
+
width: 22.9%;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/* Styles for the box that allows users to customize the dashboard layout. */
|
|
45
|
+
#widget_options
|
|
46
|
+
{
|
|
47
|
+
background: #f2f2f2;
|
|
48
|
+
border-left: 1px solid #ccc;
|
|
49
|
+
border-right: 1px solid #ccc;
|
|
50
|
+
border-bottom: 1px solid #ccc;
|
|
51
|
+
display: none;
|
|
52
|
+
margin: 0 15px;
|
|
53
|
+
padding: 15px;
|
|
54
|
+
|
|
55
|
+
box-shadow: 0px 0px 2px #ccc;
|
|
56
|
+
-webkit-box-shadow: 0px 0px 2px #ccc;
|
|
57
|
+
-moz-box-shadow: 0px 0px 2px #ccc;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
#widget_options label
|
|
61
|
+
{
|
|
62
|
+
width: 200px;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
#widget_options #widget_columns
|
|
66
|
+
{
|
|
67
|
+
margin-bottom: 15px;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
#toggle_options
|
|
71
|
+
{
|
|
72
|
+
float: right;
|
|
73
|
+
margin: 3px 0px 0px 0px;
|
|
74
|
+
}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
window.addEvent('domready', function()
|
|
2
|
+
{
|
|
3
|
+
var widgets = $('widgets');
|
|
4
|
+
var options_fx = new Fx.Slide('widget_options',
|
|
5
|
+
{
|
|
6
|
+
duration: 'normal',
|
|
7
|
+
transition: Fx.Transitions.Pow.easeOut
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
options_fx.hide();
|
|
11
|
+
|
|
12
|
+
// The options div is hidden by default, without doing this the div would be
|
|
13
|
+
// displayed for a split second before it's hidden using Fx.Slide. However,
|
|
14
|
+
// Fx.Slide doesn't use the "display" property so it has to be removed
|
|
15
|
+
// manually.
|
|
16
|
+
$('widget_options').setStyle('display', 'block');
|
|
17
|
+
|
|
18
|
+
$('toggle_options').addEvent('click', function()
|
|
19
|
+
{
|
|
20
|
+
options_fx.toggle();
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
// Allow users to sort the widgets.
|
|
24
|
+
var sortable_widgets = new Sortables('widgets',
|
|
25
|
+
{
|
|
26
|
+
handle: 'header',
|
|
27
|
+
opacity: 0.5,
|
|
28
|
+
revert: true,
|
|
29
|
+
clone: true,
|
|
30
|
+
onSort: function(el)
|
|
31
|
+
{
|
|
32
|
+
var order = {};
|
|
33
|
+
|
|
34
|
+
// Build the new order for all the widgets. The "widget_" prefix is
|
|
35
|
+
// removed before the values are being sent to the server.
|
|
36
|
+
sortable_widgets.serialize().clean().each(function(val, index)
|
|
37
|
+
{
|
|
38
|
+
order[val.replace(/widget_/, '')] = index;
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
new Request(
|
|
42
|
+
{
|
|
43
|
+
url: '/admin/widget_order',
|
|
44
|
+
method: 'POST',
|
|
45
|
+
data: order
|
|
46
|
+
}).send();
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
// Update the amount of columns based on the clicked radio button.
|
|
51
|
+
$$('#widget_columns input[type="radio"]').addEvent('click', function()
|
|
52
|
+
{
|
|
53
|
+
var columns = this.get('value');
|
|
54
|
+
|
|
55
|
+
widgets.set('class', 'widgets ' + 'columns_' + columns);
|
|
56
|
+
|
|
57
|
+
new Request(
|
|
58
|
+
{
|
|
59
|
+
url: '/admin/widget_columns',
|
|
60
|
+
method: 'POST',
|
|
61
|
+
data: {columns: columns}
|
|
62
|
+
}).send();
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
// Toggle the visibility of a widget and update its state in the database.
|
|
66
|
+
$$('#active_widgets input[type="checkbox"]').addEvent('click', function()
|
|
67
|
+
{
|
|
68
|
+
var el = $(this.get('value'));
|
|
69
|
+
var name = this.get('value').replace(/^widget_/, '');
|
|
70
|
+
var enabled = '0';
|
|
71
|
+
|
|
72
|
+
if ( this.get('checked') === true )
|
|
73
|
+
{
|
|
74
|
+
enabled = '1';
|
|
75
|
+
}
|
|
76
|
+
else
|
|
77
|
+
{
|
|
78
|
+
if ( el ) el.destroy();
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
// Request.HTML doesn't really offer any benefits in this case so using
|
|
82
|
+
// plain Request is fine.
|
|
83
|
+
var request = new Request(
|
|
84
|
+
{
|
|
85
|
+
url: '/admin/widget_state',
|
|
86
|
+
method: 'POST',
|
|
87
|
+
data: {widget: name, enabled: enabled},
|
|
88
|
+
onSuccess: function(response)
|
|
89
|
+
{
|
|
90
|
+
if ( response && request.status === 201 )
|
|
91
|
+
{
|
|
92
|
+
response = Elements.from(response);
|
|
93
|
+
|
|
94
|
+
widgets.adopt(response);
|
|
95
|
+
sortable_widgets.addItems(response);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
|
|
100
|
+
request.send();
|
|
101
|
+
});
|
|
102
|
+
});
|