zen 0.2.8 → 0.3b
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 +20 -0
- data/.mailmap +3 -2
- data/.rvmrc +1 -1
- data/.travis.yml +13 -2
- data/.yardopts +13 -0
- data/AUTHORS +1 -1
- data/README.md +115 -77
- data/Rakefile +6 -7
- data/bin/zen +12 -5
- 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/guide/asset_management.md +117 -0
- data/{CHANGELOG.md → guide/changelog.md} +42 -0
- data/guide/css/common.css +20 -0
- data/guide/getting_started.md +61 -0
- data/guide/hacking.md +52 -0
- data/guide/installation.md +44 -0
- data/guide/javascript.md +352 -0
- data/lib/vendor/sequel_sluggable.rb +137 -0
- data/lib/yard/tags.rb +13 -0
- data/lib/zen.rb +148 -78
- data/lib/zen/asset_groups.rb +85 -0
- data/lib/zen/bin/create.rb +267 -56
- data/lib/zen/bin/default.rb +84 -0
- data/lib/zen/controller/admin_controller.rb +1 -82
- data/lib/zen/controller/base_controller.rb +9 -5
- data/lib/zen/controller/frontend_controller.rb +0 -1
- data/lib/zen/controller/main_controller.rb +30 -42
- data/lib/zen/controller/preview.rb +9 -8
- data/lib/zen/controller/translations.rb +49 -0
- data/lib/zen/error.rb +17 -0
- data/lib/zen/event.rb +118 -0
- data/lib/zen/helper/asset.rb +63 -0
- data/lib/zen/helper/breadcrumb.rb +1 -4
- data/lib/zen/helper/controller.rb +73 -0
- data/lib/zen/helper/locale.rb +42 -0
- data/lib/zen/helper/message.rb +0 -3
- data/lib/zen/helper/search.rb +54 -0
- data/lib/zen/helper/stacked_aspect.rb +249 -0
- data/lib/zen/helper/theme.rb +3 -10
- data/lib/zen/language.rb +356 -181
- data/lib/zen/language/en/zen_general.rb +52 -0
- data/lib/zen/language/en/zen_models.rb +19 -0
- data/lib/zen/language/nl/zen_general.rb +57 -0
- data/lib/zen/language/nl/zen_models.rb +22 -0
- data/lib/zen/language/translation.rb +132 -0
- data/lib/zen/languages.rb +9 -0
- data/lib/zen/layout/admin.xhtml +3 -3
- data/lib/zen/layout/login.xhtml +1 -1
- data/lib/zen/markup.rb +189 -0
- data/lib/zen/model/helper.rb +65 -0
- data/lib/zen/model/init.rb +62 -0
- data/lib/zen/model/methods.rb +6 -7
- data/lib/zen/package.rb +312 -201
- data/lib/zen/package/all.rb +4 -3
- data/lib/zen/package/categories/lib/categories.rb +29 -41
- data/lib/zen/package/categories/lib/categories/controller/categories.rb +185 -130
- data/lib/zen/package/categories/lib/categories/controller/category_groups.rb +172 -102
- data/lib/zen/package/categories/lib/categories/helper/category.rb +4 -9
- data/lib/zen/package/categories/lib/categories/helper/category_frontend.rb +86 -0
- data/lib/zen/package/categories/lib/categories/language/en/categories.rb +40 -0
- data/lib/zen/package/categories/lib/categories/language/en/category_groups.rb +39 -0
- data/lib/zen/package/categories/lib/categories/language/nl/categories.rb +42 -0
- data/lib/zen/package/categories/lib/categories/language/nl/category_groups.rb +42 -0
- data/lib/zen/package/categories/lib/categories/model/category.rb +21 -25
- data/lib/zen/package/categories/lib/categories/model/category_group.rb +21 -15
- data/lib/zen/package/categories/lib/categories/view/admin/categories/form.xhtml +25 -26
- data/lib/zen/package/categories/lib/categories/view/admin/categories/index.xhtml +24 -24
- data/lib/zen/package/categories/lib/categories/view/admin/category-groups/form.xhtml +18 -20
- data/lib/zen/package/categories/lib/categories/view/admin/category-groups/index.xhtml +21 -18
- data/lib/zen/package/comments/lib/comments.rb +30 -50
- data/lib/zen/package/comments/lib/comments/anti_spam.rb +138 -0
- data/lib/zen/package/comments/lib/comments/controller/comments.rb +159 -92
- data/lib/zen/package/comments/lib/comments/controller/comments_form.rb +122 -34
- data/lib/zen/package/comments/lib/comments/helper/comment.rb +0 -3
- data/lib/zen/package/comments/lib/comments/helper/comment_frontend.rb +90 -0
- data/lib/zen/package/comments/lib/comments/language/en/comments.rb +57 -0
- data/lib/zen/package/comments/lib/comments/language/nl/comments.rb +61 -0
- data/lib/zen/package/comments/lib/comments/model/comment.rb +147 -49
- data/lib/zen/package/comments/lib/comments/model/comment_status.rb +0 -2
- data/lib/zen/package/comments/lib/comments/view/admin/comments/form.xhtml +37 -40
- data/lib/zen/package/comments/lib/comments/view/admin/comments/index.xhtml +23 -42
- data/lib/zen/package/comments/migrations/1308774099_comment_status.rb +12 -4
- data/lib/zen/package/comments/migrations/1313851786_remove_defensio_signature.rb +11 -0
- data/lib/zen/package/custom_fields/lib/custom_fields.rb +40 -43
- data/lib/zen/package/custom_fields/lib/custom_fields/blue_form_parameters.rb +72 -17
- data/lib/zen/package/custom_fields/lib/custom_fields/controller/custom_field_groups.rb +154 -118
- data/lib/zen/package/custom_fields/lib/custom_fields/controller/custom_field_types.rb +147 -90
- data/lib/zen/package/custom_fields/lib/custom_fields/controller/custom_fields.rb +161 -131
- data/lib/zen/package/custom_fields/lib/custom_fields/helper/custom_field.rb +4 -9
- data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_field_groups.rb +42 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_field_types.rb +51 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_fields.rb +60 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/language/nl/custom_field_groups.rb +41 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/language/nl/custom_field_types.rb +49 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/language/nl/custom_fields.rb +61 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field.rb +18 -23
- data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_group.rb +20 -19
- data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_method.rb +1 -3
- data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_type.rb +19 -9
- data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_value.rb +18 -15
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-groups/form.xhtml +18 -18
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-groups/index.xhtml +30 -24
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-types/form.xhtml +15 -10
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-types/index.xhtml +24 -19
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-fields/form.xhtml +18 -13
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-fields/index.xhtml +30 -20
- data/lib/zen/package/extensions/lib/extensions.rb +20 -0
- data/lib/zen/package/extensions/lib/extensions/controller/extensions.rb +41 -0
- data/lib/zen/package/extensions/lib/extensions/language/en/extensions.rb +23 -0
- data/lib/zen/package/extensions/lib/extensions/language/nl/extensions.rb +25 -0
- data/lib/zen/package/extensions/lib/extensions/view/admin/extensions/index.xhtml +86 -0
- data/lib/zen/package/menu.rb +109 -0
- data/lib/zen/package/menus/lib/menus.rb +25 -34
- data/lib/zen/package/menus/lib/menus/controller/menu_items.rb +143 -107
- data/lib/zen/package/menus/lib/menus/controller/menus.rb +166 -115
- data/lib/zen/package/menus/lib/menus/helper/menu.rb +2 -8
- data/lib/zen/package/menus/lib/menus/helper/menu_frontend.rb +114 -0
- data/lib/zen/package/menus/lib/menus/language/en/menu_items.rb +48 -0
- data/lib/zen/package/menus/lib/menus/language/en/menus.rb +48 -0
- data/lib/zen/package/menus/lib/menus/language/nl/menu_items.rb +48 -0
- data/lib/zen/package/menus/lib/menus/language/nl/menus.rb +50 -0
- data/lib/zen/package/menus/lib/menus/model/menu.rb +24 -17
- data/lib/zen/package/menus/lib/menus/model/menu_item.rb +37 -13
- data/lib/zen/package/menus/lib/menus/view/admin/menu-items/form.xhtml +32 -25
- data/lib/zen/package/menus/lib/menus/view/admin/menu-items/index.xhtml +23 -17
- data/lib/zen/package/menus/lib/menus/view/admin/menus/form.xhtml +31 -26
- data/lib/zen/package/menus/lib/menus/view/admin/menus/index.xhtml +20 -22
- data/lib/zen/package/sections/lib/sections.rb +25 -68
- data/lib/zen/package/sections/lib/sections/controller/section_entries.rb +178 -138
- data/lib/zen/package/sections/lib/sections/controller/sections.rb +173 -140
- data/lib/zen/package/sections/lib/sections/helper/section.rb +3 -6
- data/lib/zen/package/sections/lib/sections/helper/section_frontend.rb +146 -0
- data/lib/zen/package/sections/lib/sections/language/en/section_entries.rb +50 -0
- data/lib/zen/package/sections/lib/sections/language/en/sections.rb +55 -0
- data/lib/zen/package/sections/lib/sections/language/nl/section_entries.rb +50 -0
- data/lib/zen/package/sections/lib/sections/language/nl/sections.rb +55 -0
- data/lib/zen/package/sections/lib/sections/model/section.rb +36 -36
- data/lib/zen/package/sections/lib/sections/model/section_entry.rb +52 -59
- data/lib/zen/package/sections/lib/sections/model/section_entry_status.rb +2 -2
- data/lib/zen/package/sections/lib/sections/view/admin/form.xhtml +24 -21
- data/lib/zen/package/sections/lib/sections/view/admin/index.xhtml +24 -26
- data/lib/zen/package/sections/lib/sections/view/admin/section-entries/form.xhtml +33 -31
- data/lib/zen/package/sections/lib/sections/view/admin/section-entries/index.xhtml +24 -25
- data/lib/zen/package/sections/migrations/1308672298_use_id_for_default_section.rb +14 -10
- data/lib/zen/package/sections/migrations/1308813320_section_entry_statuses.rb +12 -6
- data/lib/zen/package/settings/lib/settings.rb +25 -120
- data/lib/zen/package/settings/lib/settings/blue_form_parameters.rb +157 -0
- data/lib/zen/package/settings/lib/settings/controller/settings.rb +94 -69
- data/lib/zen/package/settings/lib/settings/language/en/settings.rb +41 -0
- data/lib/zen/package/settings/lib/settings/language/nl/settings.rb +41 -0
- data/lib/zen/package/settings/lib/settings/model/setting.rb +0 -2
- data/lib/zen/package/settings/lib/settings/setting.rb +379 -0
- data/lib/zen/package/settings/lib/settings/setting_groups.rb +11 -0
- data/lib/zen/package/settings/lib/settings/settings.rb +83 -0
- data/lib/zen/package/settings/lib/settings/settings_group.rb +84 -0
- data/lib/zen/package/settings/lib/settings/singleton_methods.rb +35 -0
- data/lib/zen/package/settings/lib/settings/view/admin/settings/index.xhtml +15 -57
- data/lib/zen/package/settings/migrations/1321197919_remove_unused_columns.rb +17 -0
- data/lib/zen/package/users/lib/users.rb +51 -36
- data/lib/zen/package/users/lib/users/controller/user_groups.rb +133 -98
- data/lib/zen/package/users/lib/users/controller/users.rb +253 -136
- data/lib/zen/package/users/lib/users/helper/access.rb +102 -0
- data/lib/zen/package/users/lib/users/helper/acl.rb +113 -0
- data/lib/zen/package/users/lib/users/helper/users.rb +41 -24
- data/lib/zen/package/users/lib/users/language/en/permissions.rb +16 -0
- data/lib/zen/package/users/lib/users/language/en/user_groups.rb +39 -0
- data/lib/zen/package/users/lib/users/language/en/users.rb +73 -0
- data/lib/zen/package/users/lib/users/language/nl/permissions.rb +16 -0
- data/lib/zen/package/users/lib/users/language/nl/user_groups.rb +41 -0
- data/lib/zen/package/users/lib/users/language/nl/users.rb +74 -0
- data/lib/zen/package/users/lib/users/model/permission.rb +28 -0
- data/lib/zen/package/users/lib/users/model/user.rb +104 -65
- data/lib/zen/package/users/lib/users/model/user_group.rb +28 -24
- data/lib/zen/package/users/lib/users/model/user_status.rb +27 -0
- data/lib/zen/package/users/lib/users/public/admin/css/users/permissions.css +22 -0
- data/lib/zen/package/users/lib/users/public/admin/js/users/permissions.js +33 -0
- data/lib/zen/package/users/lib/users/settings.rb +19 -0
- data/lib/zen/package/users/lib/users/view/admin/user-groups/form.xhtml +58 -28
- data/lib/zen/package/users/lib/users/view/admin/user-groups/index.xhtml +19 -15
- data/lib/zen/package/users/lib/users/view/admin/users/form.xhtml +93 -62
- data/lib/zen/package/users/lib/users/view/admin/users/index.xhtml +23 -36
- data/lib/zen/package/users/lib/users/view/admin/users/login.xhtml +13 -6
- data/lib/zen/package/users/lib/users/view/admin/users/permissions.xhtml +33 -0
- data/lib/zen/package/users/lib/users/view/admin/users/register.xhtml +52 -0
- data/lib/zen/package/users/migrations/1313786058_update_default_date.rb +41 -0
- data/lib/zen/package/users/migrations/1316432327_permissions.rb +36 -0
- data/lib/zen/package/users/migrations/1320272365_status_ids.rb +67 -0
- data/lib/zen/public/admin/css/zen/buttons.css +3 -11
- data/lib/zen/public/admin/css/zen/datepicker.css +23 -13
- data/lib/zen/public/admin/css/zen/editor.css +6 -14
- data/lib/zen/public/admin/css/zen/forms.css +19 -12
- data/lib/zen/public/admin/css/zen/general.css +22 -18
- data/lib/zen/public/admin/css/zen/grid.css +1 -20
- data/lib/zen/public/admin/css/zen/layout.css +26 -11
- data/lib/zen/public/admin/css/zen/messages.css +3 -10
- data/lib/zen/public/admin/css/zen/reset.css +13 -15
- data/lib/zen/public/admin/css/zen/tables.css +8 -10
- data/lib/zen/public/admin/css/zen/tabs.css +2 -10
- data/lib/zen/public/admin/css/zen/window.css +2 -8
- data/lib/zen/public/admin/js/vendor/datepicker.js +540 -240
- data/lib/zen/public/admin/js/vendor/mootools/core.js +273 -283
- data/lib/zen/public/admin/js/vendor/mootools/more.js +131 -136
- data/lib/zen/public/admin/js/zen/index.js +8 -14
- data/lib/zen/public/admin/js/zen/lib/editor.js +36 -33
- data/lib/zen/public/admin/js/zen/lib/editor/markdown.js +0 -6
- data/lib/zen/public/admin/js/zen/lib/editor/textile.js +0 -6
- data/lib/zen/public/admin/js/zen/lib/html_table.js +0 -5
- data/lib/zen/public/admin/js/zen/lib/tabs.js +22 -79
- data/lib/zen/public/admin/js/zen/lib/window.js +12 -22
- data/lib/zen/spec/bacon/color_output.rb +1 -1
- data/lib/zen/spec/helper.rb +6 -11
- data/lib/zen/spec/simplecov.rb +3 -3
- data/lib/zen/task.rb +0 -1
- data/lib/zen/task/build.rake +46 -26
- data/lib/zen/task/clean.rake +14 -7
- data/lib/zen/task/db.rake +31 -29
- data/lib/zen/task/package.rake +19 -23
- data/lib/zen/task/proto.rake +3 -5
- data/lib/zen/task/setup.rake +4 -0
- data/lib/zen/task/test.rake +31 -6
- data/lib/zen/task/theme.rake +13 -19
- data/lib/zen/theme.rb +377 -52
- data/lib/zen/validation.rb +22 -30
- data/lib/zen/version.rb +1 -2
- data/lib/zen/view/bottom.xhtml +9 -1
- data/lib/zen/view/head.xhtml +1 -1
- data/lib/zen/view/main.xhtml +1 -1
- data/lib/zen/view/search.xhtml +9 -0
- data/proto/app/Rakefile +0 -1
- data/proto/app/app.rb +21 -16
- data/proto/app/config/config.rb.erb +41 -0
- data/proto/app/config/{database.rb → database.rb.erb} +17 -14
- data/proto/app/config/middlewares.rb +1 -1
- data/proto/app/theme/default/index.xhtml +25 -0
- data/proto/app/theme/theme.rb +19 -0
- data/proto/app/{log/database/dev → tmp}/.gitkeep +0 -0
- data/proto/migration.rb +3 -5
- data/proto/rack/thin.yml +41 -0
- data/proto/rack/unicorn.rb +38 -0
- data/spec/Rakefile +15 -11
- data/spec/fixtures/zen/helper/controller.rb +13 -0
- data/spec/fixtures/zen/helper/locale.rb +7 -0
- data/spec/fixtures/zen/helper/message.rb +0 -4
- data/spec/fixtures/zen/language.rb +31 -0
- data/spec/fixtures/zen/language/en/spec.rb +11 -0
- data/spec/fixtures/zen/language/nl/spec.rb +11 -0
- data/spec/fixtures/zen/package.rb +0 -10
- data/spec/fixtures/zen/package/categories/helper/category_frontend.rb +16 -0
- data/spec/fixtures/zen/package/comments/helper/comment_frontend.rb +16 -0
- data/spec/fixtures/zen/package/sections/helper/section_frontend.rb +16 -0
- data/spec/fixtures/zen/package/settings/controller/settings.rb +17 -0
- data/spec/fixtures/zen/package/users/helper/access.rb +18 -0
- data/spec/fixtures/zen/package/users/helper/acl.rb +23 -0
- data/spec/fixtures/zen/theme/{default-section → default}/index.xhtml +0 -0
- data/spec/helper.rb +12 -27
- data/{proto/app/log/database/live → spec/public}/.gitkeep +0 -0
- data/spec/zen/controller/admin_controller.rb +5 -6
- data/spec/zen/controller/main_controller.rb +29 -35
- data/spec/zen/controller/preview.rb +9 -10
- data/spec/zen/event.rb +44 -0
- data/spec/zen/helper/breadcrumb.rb +4 -5
- data/spec/zen/helper/controller.rb +21 -0
- data/spec/zen/helper/locale.rb +25 -0
- data/spec/zen/helper/message.rb +4 -11
- data/spec/zen/helper/theme.rb +11 -14
- data/spec/zen/language.rb +48 -22
- data/spec/zen/markup.rb +39 -0
- data/spec/zen/package.rb +48 -11
- data/spec/zen/package/categories/controller/categories.rb +99 -45
- data/spec/zen/package/categories/controller/category_groups.rb +109 -33
- data/spec/zen/package/categories/helper/category.rb +19 -32
- data/spec/zen/package/categories/helper/category_frontend.rb +61 -0
- data/spec/zen/package/comments/anti_spam.rb +50 -0
- data/spec/zen/package/comments/controller/comments.rb +121 -61
- data/spec/zen/package/comments/controller/comments_form.rb +120 -94
- data/spec/zen/package/comments/helper/comment.rb +13 -13
- data/spec/zen/package/comments/helper/comment_frontend.rb +92 -0
- data/spec/zen/package/custom_fields/blue_form_parameters.rb +50 -50
- data/spec/zen/package/custom_fields/controller/custom_field_groups.rb +135 -43
- data/spec/zen/package/custom_fields/controller/custom_field_types.rb +153 -48
- data/spec/zen/package/custom_fields/controller/custom_fields.rb +130 -51
- data/spec/zen/package/custom_fields/helper/custom_field.rb +8 -8
- data/spec/zen/package/extensions/controller/extensions.rb +38 -0
- data/spec/zen/package/menus/controller/menu_items.rb +121 -42
- data/spec/zen/package/menus/controller/menus.rb +125 -38
- data/spec/zen/package/menus/helper/menu.rb +26 -26
- data/spec/zen/package/menus/helper/menu_frontend.rb +104 -0
- data/spec/zen/package/sections/controller/section_entries.rb +145 -89
- data/spec/zen/package/sections/controller/sections.rb +130 -35
- data/spec/zen/package/sections/helper/section.rb +27 -38
- data/spec/zen/package/sections/helper/section_frontend.rb +160 -0
- data/spec/zen/package/settings/controller/settings.rb +73 -8
- data/spec/zen/package/settings/settings.rb +119 -0
- data/spec/zen/package/users/controller/user_groups.rb +134 -34
- data/spec/zen/package/users/controller/users.rb +189 -44
- data/spec/zen/package/users/helper/access.rb +29 -0
- data/spec/zen/package/users/helper/acl.rb +46 -0
- data/spec/zen/package/users/helper/users.rb +20 -64
- data/spec/zen/theme.rb +7 -9
- data/spec/zen/validation.rb +1 -2
- data/zen.gemspec +25 -22
- metadata +303 -222
- data/lib/zen/asset.rb +0 -292
- data/lib/zen/bin/runner.rb +0 -118
- data/lib/zen/error/language_error.rb +0 -10
- data/lib/zen/error/package_error.rb +0 -10
- data/lib/zen/error/plugin_error.rb +0 -10
- data/lib/zen/error/theme_error.rb +0 -10
- data/lib/zen/error/validation_error.rb +0 -10
- data/lib/zen/helper/acl.rb +0 -182
- data/lib/zen/helper/blue_form_vendor.rb +0 -689
- data/lib/zen/language/en/zen_general.yml +0 -25
- data/lib/zen/language/en/zen_models.yml +0 -13
- data/lib/zen/language/nl/zen_general.yml +0 -25
- data/lib/zen/language/nl/zen_models.yml +0 -13
- data/lib/zen/model/settings.rb +0 -78
- data/lib/zen/package/base.rb +0 -62
- data/lib/zen/package/categories/lib/categories/language/en/categories.yml +0 -36
- data/lib/zen/package/categories/lib/categories/language/en/category_groups.yml +0 -34
- data/lib/zen/package/categories/lib/categories/language/nl/categories.yml +0 -40
- data/lib/zen/package/categories/lib/categories/language/nl/category_groups.yml +0 -34
- data/lib/zen/package/categories/lib/categories/plugin/categories.rb +0 -141
- data/lib/zen/package/comments/lib/comments/language/en/comments.yml +0 -48
- data/lib/zen/package/comments/lib/comments/language/nl/comments.yml +0 -50
- data/lib/zen/package/comments/lib/comments/plugin/anti_spam.rb +0 -156
- data/lib/zen/package/comments/lib/comments/plugin/comments.rb +0 -115
- data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_field_groups.yml +0 -33
- data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_field_types.yml +0 -40
- data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_fields.yml +0 -54
- data/lib/zen/package/custom_fields/lib/custom_fields/language/nl/custom_field_groups.yml +0 -33
- data/lib/zen/package/custom_fields/lib/custom_fields/language/nl/custom_field_types.yml +0 -40
- data/lib/zen/package/custom_fields/lib/custom_fields/language/nl/custom_fields.yml +0 -54
- data/lib/zen/package/menus/lib/menus/language/en/menu_items.yml +0 -41
- data/lib/zen/package/menus/lib/menus/language/en/menus.yml +0 -40
- data/lib/zen/package/menus/lib/menus/language/nl/menu_items.yml +0 -41
- data/lib/zen/package/menus/lib/menus/language/nl/menus.yml +0 -40
- data/lib/zen/package/menus/lib/menus/plugin/menus.rb +0 -152
- data/lib/zen/package/sections/lib/sections/language/en/section_entries.yml +0 -44
- data/lib/zen/package/sections/lib/sections/language/en/sections.yml +0 -48
- data/lib/zen/package/sections/lib/sections/language/nl/section_entries.yml +0 -44
- data/lib/zen/package/sections/lib/sections/language/nl/sections.yml +0 -48
- data/lib/zen/package/sections/lib/sections/plugin/section_entries.rb +0 -244
- data/lib/zen/package/sections/lib/sections/plugin/sections.rb +0 -87
- data/lib/zen/package/settings/lib/settings/language/en/settings.yml +0 -36
- data/lib/zen/package/settings/lib/settings/language/nl/settings.yml +0 -37
- data/lib/zen/package/settings/lib/settings/plugin/group_base.rb +0 -39
- data/lib/zen/package/settings/lib/settings/plugin/setting_base.rb +0 -133
- data/lib/zen/package/settings/lib/settings/plugin/settings.rb +0 -251
- data/lib/zen/package/users/lib/users/controller/access_rules.rb +0 -284
- data/lib/zen/package/users/lib/users/language/en/access_rules.yml +0 -38
- data/lib/zen/package/users/lib/users/language/en/user_groups.yml +0 -32
- data/lib/zen/package/users/lib/users/language/en/users.yml +0 -57
- data/lib/zen/package/users/lib/users/language/nl/access_rules.yml +0 -38
- data/lib/zen/package/users/lib/users/language/nl/user_groups.yml +0 -32
- data/lib/zen/package/users/lib/users/language/nl/users.yml +0 -57
- data/lib/zen/package/users/lib/users/model/access_rule.rb +0 -42
- data/lib/zen/package/users/lib/users/public/admin/js/users/access_rules.js +0 -65
- data/lib/zen/package/users/lib/users/public/admin/js/users/lib/access_rules.js +0 -49
- data/lib/zen/package/users/lib/users/view/admin/access-rules/form.xhtml +0 -120
- data/lib/zen/package/users/lib/users/view/admin/access-rules/index.xhtml +0 -102
- data/lib/zen/plugin.rb +0 -182
- data/lib/zen/plugin/base.rb +0 -46
- data/lib/zen/plugin/helper.rb +0 -47
- data/lib/zen/plugin/markup/lib/markup.rb +0 -14
- data/lib/zen/plugin/markup/lib/markup/language/en/markup.yml +0 -6
- data/lib/zen/plugin/markup/lib/markup/markup.rb +0 -165
- data/lib/zen/public/admin/js/zen/lib/asset.js +0 -111
- data/lib/zen/task/plugin.rake +0 -18
- data/lib/zen/theme/base.rb +0 -65
- data/proto/app/config/config.rb +0 -18
- data/spec/fixtures/zen/language/en/spec.yml +0 -10
- data/spec/fixtures/zen/language/nl/spec.yml +0 -7
- data/spec/fixtures/zen/package/settings/plugin/settings.rb +0 -20
- data/spec/zen/asset.rb +0 -97
- data/spec/zen/bin/create.rb +0 -89
- data/spec/zen/bin/runner.rb +0 -47
- data/spec/zen/helper/acl.rb +0 -149
- data/spec/zen/package/categories/plugin/categories.rb +0 -92
- data/spec/zen/package/comments/plugin/anti_spam.rb +0 -59
- data/spec/zen/package/comments/plugin/comments.rb +0 -107
- data/spec/zen/package/menus/plugin/menus.rb +0 -120
- data/spec/zen/package/sections/plugin/section_entries.rb +0 -161
- data/spec/zen/package/sections/plugin/sections.rb +0 -75
- data/spec/zen/package/settings/plugin/settings.rb +0 -33
- data/spec/zen/package/users/controller/access_rules.rb +0 -90
- data/spec/zen/plugin.rb +0 -64
- data/spec/zen/plugin/helper.rb +0 -11
- data/spec/zen/plugin/markup.rb +0 -44
|
@@ -1,3 +1,45 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## Git Head
|
|
4
|
+
|
|
5
|
+
* Started using checkboxes in favor of select boxes as they're easier to use.
|
|
6
|
+
* Fixed a small issue that would make it impossible to add/update categories of
|
|
7
|
+
a section entry.
|
|
8
|
+
* Core packages no longer include certain modules just to so that they don't
|
|
9
|
+
have to specify the full namespace to a class.
|
|
10
|
+
* Added an event system (Zen::Event) and a bucket load of events.
|
|
11
|
+
* Merged Zen.init and Zen.post_init into Zen.start.
|
|
12
|
+
* Fixed various YARD formatting issues.
|
|
13
|
+
* Localized all of the Javascript.
|
|
14
|
+
* All specs now pass on Ruby 1.9.3.
|
|
15
|
+
* Made it easier to format dates and do other locale based actions using
|
|
16
|
+
Ramaze::Helper::Locale.
|
|
17
|
+
* Dropped Zen::Asset in favor of Ramaze::Asset.
|
|
18
|
+
* Updated Mootools Core and Mootools More to version 1.4.
|
|
19
|
+
* Fixed an issue related to creating users without passwords.
|
|
20
|
+
* New API for Zen::Package.
|
|
21
|
+
* ACL system has been re-written from scratch.
|
|
22
|
+
* Merged Zen::Theme::Base with Zen::Theme and Zen::Plugin::Base with
|
|
23
|
+
Zen::Plugin.
|
|
24
|
+
* Sections are no longer directly related to template groups.
|
|
25
|
+
* Added a package that displays the installed languages, packages and themes.
|
|
26
|
+
* New API for Zen::Language.
|
|
27
|
+
* Removed Zen::Plugin.
|
|
28
|
+
* Improved settings API.
|
|
29
|
+
* Visitors can now register an account (or not) based on a setting.
|
|
30
|
+
* Vendorized Ramaze::Helper::StackedAspect from Ramaze Git.
|
|
31
|
+
* Added a helper for allowing users to access admin URLs.
|
|
32
|
+
* User statuses are now stored as IDs instead of plain text.
|
|
33
|
+
* Full support for PostgreSQL.
|
|
34
|
+
* Zen now requires Ramaze >= 2011.10.23.
|
|
35
|
+
* Content in the admin panel can now be searched using regular expressions (not
|
|
36
|
+
supported in SQLite3) or LIKE statements (used in case of SQLite3).
|
|
37
|
+
* New documentation based on YARD instead of Sphinx.
|
|
38
|
+
* Vendorized the Sequel sluggable plugin.
|
|
39
|
+
* Fixed an issue that would cause comments to be displayed regardless of their
|
|
40
|
+
status.
|
|
41
|
+
* Lots of small fixes, improvements, etc.
|
|
42
|
+
|
|
1
43
|
## 0.2.8 - August 3, 2011
|
|
2
44
|
|
|
3
45
|
* Replaced RSpec with Bacon.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
body
|
|
2
|
+
{
|
|
3
|
+
font-size: 14px;
|
|
4
|
+
line-height: 1.6;
|
|
5
|
+
margin: 0 auto;
|
|
6
|
+
max-width: 960px;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
p code
|
|
10
|
+
{
|
|
11
|
+
background: #f2f2f2;
|
|
12
|
+
padding-left: 3px;
|
|
13
|
+
padding-right: 3px;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
pre.code
|
|
17
|
+
{
|
|
18
|
+
font-size: 13px;
|
|
19
|
+
line-height: 1.4;
|
|
20
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# Getting Started
|
|
2
|
+
|
|
3
|
+
Once installed (see {file:installation Installation}) you can use the ``zen``
|
|
4
|
+
executable to create new applications. Keep in mind that this command is not a
|
|
5
|
+
wrapper for the ``ramaze`` executable. This means that you still have to type
|
|
6
|
+
``ramaze console`` or ``ramaze start`` if you want to open up a console or start
|
|
7
|
+
your application.
|
|
8
|
+
|
|
9
|
+
In order to create a new application based on Zen you'll need to execute the
|
|
10
|
+
following command:
|
|
11
|
+
|
|
12
|
+
$ zen create
|
|
13
|
+
|
|
14
|
+
This command will start an interactive installer that walks you through the
|
|
15
|
+
process of creating a new project. Using this installer you can specify the
|
|
16
|
+
project name, database settings and various other settings.
|
|
17
|
+
|
|
18
|
+
The prototype applications generated by the zen command are pretty basic but
|
|
19
|
+
should be enough for most users. If you want to change anything of it you're
|
|
20
|
+
free to do so just make sure that all paths and such are updated correctly.
|
|
21
|
+
|
|
22
|
+
Once an application has been created and is configured you'll need to create the
|
|
23
|
+
database and insert the default user. This can be done by executing the
|
|
24
|
+
following commands:
|
|
25
|
+
|
|
26
|
+
$ rake db:migrate
|
|
27
|
+
$ rake db:user
|
|
28
|
+
|
|
29
|
+
This creates all the database tables and inserts a default user with a random
|
|
30
|
+
password.
|
|
31
|
+
|
|
32
|
+
When creating the database tables for the first time you'll see one or two
|
|
33
|
+
yellow warnings telling you certain tables might be missing. These can be safely
|
|
34
|
+
ignored.
|
|
35
|
+
|
|
36
|
+
You can now start the application using your server of choice and start using
|
|
37
|
+
it.
|
|
38
|
+
|
|
39
|
+
## Updating Applications
|
|
40
|
+
|
|
41
|
+
Updating Zen in general is quite easy and requires the following two commands::
|
|
42
|
+
|
|
43
|
+
$ gem update zen
|
|
44
|
+
$ rake db:migrate
|
|
45
|
+
|
|
46
|
+
However, with some releases there may be some extra steps that are required in
|
|
47
|
+
order to properly update your installation so it's always wise to check the
|
|
48
|
+
release notes before updating an installation.
|
|
49
|
+
|
|
50
|
+
When updating the database schema I always try to write my migrations in such a
|
|
51
|
+
way that existing data is migrated as well. However, because there may be some
|
|
52
|
+
cases where this isn't possible it's recommended that you **always** make a
|
|
53
|
+
backup of your database before updating.
|
|
54
|
+
|
|
55
|
+
## Logging In
|
|
56
|
+
|
|
57
|
+
In order to log in you must navigate to ``/admin/users/login`` or ``/admin``
|
|
58
|
+
(the latter will redirect you to the first URL and show a warning). If you don't
|
|
59
|
+
have any user accounts set up yet you should run the rake command ``rake
|
|
60
|
+
db:user`` as explained above. If you do have an available user account you can
|
|
61
|
+
log in using the user's Email address and password.
|
data/guide/hacking.md
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Hacking & Contributing
|
|
2
|
+
|
|
3
|
+
Everybody is free to contribute to Zen. However, to ensure that the quality of
|
|
4
|
+
Zen doesn't degrade developers should stick with the guidelines described in
|
|
5
|
+
this document. Zen also follows the [Ramaze guidelines][ramaze guidelines] as
|
|
6
|
+
much as possible.
|
|
7
|
+
|
|
8
|
+
## General Standards
|
|
9
|
+
|
|
10
|
+
* 2 spaces per indentation level for Ruby code.
|
|
11
|
+
* 4 spaces per indentation level for Javascript, CSS and HTML.
|
|
12
|
+
* Document your code, that includes CSS (when dealing with complex selectors)
|
|
13
|
+
and Javascript files.
|
|
14
|
+
* No tabs at all times.
|
|
15
|
+
* Markdown is used for all markup.
|
|
16
|
+
* The maximum width of each line should be no more than 80 characters, this
|
|
17
|
+
makes it easier to read code in terminals or when using split view modes.
|
|
18
|
+
|
|
19
|
+
## Comitting
|
|
20
|
+
|
|
21
|
+
Besides the guidelines set in [Ramaze's comit messages][commit guidelines]
|
|
22
|
+
section Zen comes with the requirement that all commits are signed off using
|
|
23
|
+
``git commit --sign``. For more information about signing commits (and why
|
|
24
|
+
it is a good idea) see the following pages:
|
|
25
|
+
|
|
26
|
+
* <http://kerneltrap.org/files/Jeremy/DCO.txt>
|
|
27
|
+
* <http://stackoverflow.com/questions/1962094/what-is-the-sign-off-feature-in-git-for>
|
|
28
|
+
|
|
29
|
+
## Branching
|
|
30
|
+
|
|
31
|
+
Zen has two main branches, "master" and "develop". The master branch is directly
|
|
32
|
+
tied to releases, this means that it should **always** contain stable and fully
|
|
33
|
+
tested code. In almost all cases I (Yorick) will be the only one merging
|
|
34
|
+
changes into this branch. The develop branch is used as a place to merge other
|
|
35
|
+
branches into as well as for comitting small changes such as typos, small bug
|
|
36
|
+
fixes and so on.
|
|
37
|
+
|
|
38
|
+
Big features such as a new backend design should go in a separate branch with an
|
|
39
|
+
easy to remember and meaningful name. In this example the branch name could be
|
|
40
|
+
"new\_design" or simply "design".
|
|
41
|
+
|
|
42
|
+
## Tests
|
|
43
|
+
|
|
44
|
+
Tests for Zen are written using [Bacon][bacon]. New features, modified ones, it
|
|
45
|
+
doesn't matter, they should all be tested. Currently Zen's code coverage
|
|
46
|
+
(measured using SimpleCov) sits around 96% and I intent to keep it above 95%.
|
|
47
|
+
The test ouput is displayed using [TAP][tap protocol].
|
|
48
|
+
|
|
49
|
+
[ramaze guidelines]: http://ramaze.net/documentation/file.contributing.html
|
|
50
|
+
[commit guidelines]: http://ramaze.net/documentation/file.contributing.html#Commit_Messages
|
|
51
|
+
[bacon]: https://github.com/chneukirchen/bacon
|
|
52
|
+
[tap protocol]: https://en.wikipedia.org/wiki/Test_Anything_Protocol
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Installation
|
|
2
|
+
|
|
3
|
+
Zen can be installed in two different ways, either by using Rubygems or Git. The
|
|
4
|
+
former is the easiest of the two as it only requires a single command. The
|
|
5
|
+
latter is more useful if you want to hack on Zen while using it.
|
|
6
|
+
|
|
7
|
+
## Rubygems Installation
|
|
8
|
+
|
|
9
|
+
Installing Zen using Rubygems can be done by running the following command in
|
|
10
|
+
your terminal:
|
|
11
|
+
|
|
12
|
+
$ gem install zen
|
|
13
|
+
|
|
14
|
+
If you want to install a specific version of Zen you can provide the ``-v``
|
|
15
|
+
option:
|
|
16
|
+
|
|
17
|
+
$ gem install zen -v [VERSION]
|
|
18
|
+
|
|
19
|
+
For example, if you want to install 0.2.8 you'd run the following command:
|
|
20
|
+
|
|
21
|
+
$ gem install zen -v 0.2.8
|
|
22
|
+
|
|
23
|
+
## Git Installation
|
|
24
|
+
|
|
25
|
+
When you want to submit a patch, hack the core or are just interested in
|
|
26
|
+
browsing the code you'll want to install a copy of the Git repository. This can
|
|
27
|
+
be done by a simply cloning the repository:
|
|
28
|
+
|
|
29
|
+
$ git clone git://github.com/zen-cms/Zen-Core.git zen_core
|
|
30
|
+
|
|
31
|
+
This command saves a local copy of Zen in the directory ./zen_core. Now that you
|
|
32
|
+
have a local copy there are two ways of using it:
|
|
33
|
+
|
|
34
|
+
1. Manually build the Gem each time you've made a change.
|
|
35
|
+
2. Directly load the Zen installation from your application.
|
|
36
|
+
|
|
37
|
+
The latter is recommended as you don't have to build the Gem each time. In order
|
|
38
|
+
to do this you simply need to replace all calls to require() that load data from
|
|
39
|
+
the gem with a path to the local copy of Zen.
|
|
40
|
+
|
|
41
|
+
For an overview of all available tasks that can be executed in your local copy
|
|
42
|
+
of Zen execute the following command:
|
|
43
|
+
|
|
44
|
+
$ rake -T
|
data/guide/javascript.md
ADDED
|
@@ -0,0 +1,352 @@
|
|
|
1
|
+
# Javascript API
|
|
2
|
+
|
|
3
|
+
Zen comes with a pretty good Javascript API that's based on the
|
|
4
|
+
[Mootools][mootools]. This API allows you to display modal windows, markup
|
|
5
|
+
editors and so on. On top of that you're free to use everything Mootools and
|
|
6
|
+
it's community has to offer.
|
|
7
|
+
|
|
8
|
+
<div class="note todo">
|
|
9
|
+
<p>
|
|
10
|
+
<strong>Note</strong>: Whenever you're creating Javascript files you
|
|
11
|
+
should use 4 spaces per indentation and refrain from using tabs. 4
|
|
12
|
+
spaces are used as 2 spaces are generally harder to read due to
|
|
13
|
+
Javascript using curly brackets.
|
|
14
|
+
</p>
|
|
15
|
+
</div>
|
|
16
|
+
|
|
17
|
+
## Creating Classes
|
|
18
|
+
|
|
19
|
+
Mootools has a wonderful system that allows you to easily create classes. The
|
|
20
|
+
one thing to remember when creating classes is that you should *always* declare
|
|
21
|
+
them under a certain namespace. Not doing so might lead to collisions with
|
|
22
|
+
classes created by other developers.
|
|
23
|
+
|
|
24
|
+
Creating a class (including a namespace) works like the following:
|
|
25
|
+
|
|
26
|
+
// This would be your namespace
|
|
27
|
+
var Foobar = {};
|
|
28
|
+
|
|
29
|
+
Foobar.ClassName = new Class(
|
|
30
|
+
{
|
|
31
|
+
initialize: function()
|
|
32
|
+
{
|
|
33
|
+
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
This allows you to access your class as following:
|
|
38
|
+
|
|
39
|
+
var instance = new Foobar.ClassName();
|
|
40
|
+
|
|
41
|
+
The namespace you're using doesn't really matter as long as you **do not** use
|
|
42
|
+
the "Zen" namespace, it's reserved for all the official classes that are
|
|
43
|
+
included in Zen.
|
|
44
|
+
|
|
45
|
+
It's also important to remember that there's no guarantee Javascript (and CSS)
|
|
46
|
+
files are loaded in a particular order. Because of that you should always wrap
|
|
47
|
+
your code (except for class declarations and such) in the following code:
|
|
48
|
+
|
|
49
|
+
window.addEvent('domready', function()
|
|
50
|
+
{
|
|
51
|
+
// Do something funky!
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
This function will be executed once the DOM (and thus all the resources) are
|
|
55
|
+
fully loaded.
|
|
56
|
+
|
|
57
|
+
<div class="note deprecated">
|
|
58
|
+
<p>
|
|
59
|
+
<strong>Warning</strong>: Do not put class declarations inside this
|
|
60
|
+
block as it may lead to unexpected behavior.
|
|
61
|
+
</p>
|
|
62
|
+
</div>
|
|
63
|
+
|
|
64
|
+
## Available Classes
|
|
65
|
+
|
|
66
|
+
Out of the box the following classes are available:
|
|
67
|
+
|
|
68
|
+
* Zen.Window
|
|
69
|
+
* Zen.Tabs
|
|
70
|
+
* Zen.Editor
|
|
71
|
+
* Zen.Editor.Markdown
|
|
72
|
+
* Zen.Editor.Textile
|
|
73
|
+
* Zen.HtmlTable
|
|
74
|
+
|
|
75
|
+
The following third-party classes are also provided:
|
|
76
|
+
|
|
77
|
+
* Picker
|
|
78
|
+
* Picker.Date
|
|
79
|
+
* Picker.Attach
|
|
80
|
+
|
|
81
|
+
### Zen.Window
|
|
82
|
+
|
|
83
|
+
The Window class can be used to display modal windows with (or without) a set of
|
|
84
|
+
custom buttons. These windows can be used for displaying pictures, confirmation
|
|
85
|
+
messages and so on. In order to display a window you'll need to create a new
|
|
86
|
+
instance of the class. The syntax of this looks like the following:
|
|
87
|
+
|
|
88
|
+
var some_window = new Zen.Window(content[, options]);
|
|
89
|
+
|
|
90
|
+
<div class="note deprecated">
|
|
91
|
+
<p>
|
|
92
|
+
<strong>Warning</strong>: When creating an instance of Zen.Window you
|
|
93
|
+
should never save it in a variable named "window" as this is a reserved
|
|
94
|
+
variable that refers to the browser window.
|
|
95
|
+
</p>
|
|
96
|
+
</div>
|
|
97
|
+
|
|
98
|
+
The first parameter is the content to display and can either be plain text or
|
|
99
|
+
HTML. The second parameter is an object containing various options that can be
|
|
100
|
+
used to customize the window. The following options can be set in this object:
|
|
101
|
+
|
|
102
|
+
* height: a number indicating a fixed height to use for the window.
|
|
103
|
+
* width: the same but for the width.
|
|
104
|
+
* title: the title to display in the title bar containing the close button.
|
|
105
|
+
* resize: boolean that when set to true allows the user to resize the window.
|
|
106
|
+
* move: boolean that when set to true allows the user to move the window around.
|
|
107
|
+
* buttons: an array of buttons to display at the bottom of the window.
|
|
108
|
+
|
|
109
|
+
Creating a new window with some of these options would look something like the
|
|
110
|
+
following:
|
|
111
|
+
|
|
112
|
+
var some_window = new Zen.Window('Hello, world!', {title: 'This is a window!'});
|
|
113
|
+
|
|
114
|
+
Note that you're not required to call any extra methods, the window will be
|
|
115
|
+
displayed whenever a new instance of the window is created.
|
|
116
|
+
|
|
117
|
+
Buttons can be added by setting the "buttons" option to an array of objects of
|
|
118
|
+
which each object has the following format:
|
|
119
|
+
|
|
120
|
+
{
|
|
121
|
+
name: 'foobar',
|
|
122
|
+
label: 'Foobar',
|
|
123
|
+
onClick: function() {}
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
* name: the name of the button, should be unique as it's used for the class of
|
|
127
|
+
the ``li`` element of the button.
|
|
128
|
+
* label: the text displayed in the button.
|
|
129
|
+
* onClick: a function that will be called whenever the button is clicked.
|
|
130
|
+
|
|
131
|
+
<div class="note todo">
|
|
132
|
+
<p>
|
|
133
|
+
<strong>Note</strong>: Currently the resize and move features are a bit
|
|
134
|
+
buggy, especially when they're both used. This will be fixed in one of
|
|
135
|
+
the next releases.
|
|
136
|
+
</p>
|
|
137
|
+
</div>
|
|
138
|
+
|
|
139
|
+
### Zen.Tabs
|
|
140
|
+
|
|
141
|
+
Zen.Tabs can be used to create a tab based navigation menu. Because Zen already
|
|
142
|
+
uses this class for all elements that match the selector ``div.tabs ul`` it's
|
|
143
|
+
usually not required to manually create an instance of this class.
|
|
144
|
+
|
|
145
|
+
The syntax of creating an instance of this class looks like the following:
|
|
146
|
+
|
|
147
|
+
var tabs = new Zen.Tabs(selector[, options]);
|
|
148
|
+
|
|
149
|
+
The first parameter is a CSS selector, the second parameter is an object
|
|
150
|
+
containing various options to customize the instance. Note that the selector
|
|
151
|
+
used should result in a number of ``ul`` elements, not ``div`` elements (or any
|
|
152
|
+
other elements).
|
|
153
|
+
|
|
154
|
+
A short example looks like the following:
|
|
155
|
+
|
|
156
|
+
var tabs = new Zen.Tabs('div.my_tabs ul');
|
|
157
|
+
|
|
158
|
+
The following options can be used to customize the tabs:
|
|
159
|
+
|
|
160
|
+
* default: a selector used to indicate what tab element should be selected by
|
|
161
|
+
default. Set to ``li:first-child`` by default.
|
|
162
|
+
* ajax: when set to true the content to display for each tab will be retrieved
|
|
163
|
+
using an Ajax call rather than retrieving it from the current page.
|
|
164
|
+
|
|
165
|
+
When you're *not* using an Ajax based tab system you'll have to make sure your
|
|
166
|
+
markup is correct. The links of the tabs should point to an ID of an element
|
|
167
|
+
with a class of "tab_content":
|
|
168
|
+
|
|
169
|
+
<div id="some_id" class="tab_content">
|
|
170
|
+
|
|
171
|
+
</div>
|
|
172
|
+
|
|
173
|
+
In order to display this field the corresponding tab URL should be ``#some_id``.
|
|
174
|
+
A full example of the required markup, including the markup for the tab menu,
|
|
175
|
+
looks like the following:
|
|
176
|
+
|
|
177
|
+
<div class="tabs">
|
|
178
|
+
<ul>
|
|
179
|
+
<li>
|
|
180
|
+
<a href="#my_tab">This is my tab</a>
|
|
181
|
+
</li>
|
|
182
|
+
</ul>
|
|
183
|
+
</div>
|
|
184
|
+
|
|
185
|
+
<div id="my_tab" class="tab_content">
|
|
186
|
+
|
|
187
|
+
</div>
|
|
188
|
+
|
|
189
|
+
### Zen.Editor
|
|
190
|
+
|
|
191
|
+
Zen.Editor is the main class used for the markup editor that can be used to more
|
|
192
|
+
easily insert markup for all supported languages into a text area. By default
|
|
193
|
+
Zen will automatically use the markup editor for all ``textarea`` elements with
|
|
194
|
+
a class of ``visual_editor``. The format used for the markup is retrieved from
|
|
195
|
+
the column ``data-format`` (this column is required). The attribute
|
|
196
|
+
``data-format`` should contain the name of the markup engine to use as defined
|
|
197
|
+
in ``Zen.Editor.drivers``. Currently the following are supported:
|
|
198
|
+
|
|
199
|
+
* markdown
|
|
200
|
+
* textile
|
|
201
|
+
|
|
202
|
+
If an unknown driver is specified the default driver (HTML) will be used
|
|
203
|
+
instead.
|
|
204
|
+
|
|
205
|
+
The markup required for Zen to automatically use the markup editor looks like
|
|
206
|
+
the example below.
|
|
207
|
+
|
|
208
|
+
<textarea class="visual_editor" data-format="markdown"></textarea>
|
|
209
|
+
|
|
210
|
+
If you want to manually create an instance of ``Zen.Editor`` you can still do so
|
|
211
|
+
but due to the way the system works you shouldn't directly create an instance of
|
|
212
|
+
the class as this will prevent the editor from automatically using the correct
|
|
213
|
+
driver class. You should use ``Zen.Editor.init`` instead. This method has the
|
|
214
|
+
following syntax:
|
|
215
|
+
|
|
216
|
+
var editor = Zen.Editor.init(driver, element[, options, buttons]);
|
|
217
|
+
|
|
218
|
+
The first parameter is a string containing the name of the driver to use. The
|
|
219
|
+
second parameter can either be a CSS selector, a collection of elements or a
|
|
220
|
+
single element. If the parameter is a CSS selector or a collection of elements
|
|
221
|
+
the **first** element will be used, all others will be ignored. The last two
|
|
222
|
+
parameters are used for customized options as well as adding custom buttons to
|
|
223
|
+
the editor. Currently the editor only supports the following two options:
|
|
224
|
+
|
|
225
|
+
* width: sets a minimum width on the textarea element.
|
|
226
|
+
* height: sets a minimum hight on the textarea element.
|
|
227
|
+
|
|
228
|
+
Buttons can be added by setting the last parameter to an array. Each button has
|
|
229
|
+
the same format as the buttons used in Zen.Window:
|
|
230
|
+
|
|
231
|
+
{
|
|
232
|
+
name: 'foobar',
|
|
233
|
+
label: 'Foobar',
|
|
234
|
+
onClick: function() {}
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
Note that unlike Zen.Window these buttons can't be set in the options object
|
|
238
|
+
under the key "buttons". This is because the Options class of Mootools doesn't
|
|
239
|
+
actually merge options but instead overwrites existing ones. This would mean
|
|
240
|
+
that it would be more difficult to add a default set of buttons as well as
|
|
241
|
+
custom ones. Most likely this will change in the future once I find out what the
|
|
242
|
+
best way of doing this would be.
|
|
243
|
+
|
|
244
|
+
Example:
|
|
245
|
+
|
|
246
|
+
var editor = Zen.Editor.init(
|
|
247
|
+
'markdown',
|
|
248
|
+
'div#text_editor',
|
|
249
|
+
{
|
|
250
|
+
width: 400
|
|
251
|
+
},
|
|
252
|
+
[
|
|
253
|
+
{
|
|
254
|
+
name: 'custom',
|
|
255
|
+
label: 'Custom',
|
|
256
|
+
onClick: function(editor)
|
|
257
|
+
{
|
|
258
|
+
console.log("This is a custom button!");
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
]
|
|
262
|
+
);
|
|
263
|
+
|
|
264
|
+
Functions used for buttons take a single parameter which will contain an
|
|
265
|
+
instance of the editor the button belongs to. This makes it easy to insert text
|
|
266
|
+
into the textarea:
|
|
267
|
+
|
|
268
|
+
function(editor)
|
|
269
|
+
{
|
|
270
|
+
editor.insertAroundCursor({before: '<!--', after: '-->'});
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
### Zen.HtmlTable
|
|
274
|
+
|
|
275
|
+
The class Zen.HtmlTable was introduced in Zen 0.2.8 and makes it possible to
|
|
276
|
+
sort tables by their columns, check all checkboxes in the first column of a
|
|
277
|
+
table and it highlights odd rows. Generally you don't need to use this class
|
|
278
|
+
itself but instead you'll be using the markup it accepts in order to modify it's
|
|
279
|
+
behavior.
|
|
280
|
+
|
|
281
|
+
The basic markup for this class is very simple, in fact, it's nothing more than
|
|
282
|
+
a regular table with a ``<thead>`` element:
|
|
283
|
+
|
|
284
|
+
<table>
|
|
285
|
+
<thead>
|
|
286
|
+
<tr>
|
|
287
|
+
<th>#</th>
|
|
288
|
+
<th>Name</th>
|
|
289
|
+
</tr>
|
|
290
|
+
</thead>
|
|
291
|
+
<tbody>
|
|
292
|
+
<tr>
|
|
293
|
+
<td>2</td>
|
|
294
|
+
<td>Ruby</td>
|
|
295
|
+
</tr>
|
|
296
|
+
</tbody>
|
|
297
|
+
</table>
|
|
298
|
+
|
|
299
|
+
Zen will automatically detect and use the table and you're good to go. If you
|
|
300
|
+
want to modify the behavior you can use a few attributes on certain elements of
|
|
301
|
+
the table. The following attributes can be applied to the ``<table>`` element
|
|
302
|
+
itself:
|
|
303
|
+
|
|
304
|
+
* data-sort-index: the index of the ``<th>`` element to sort the table on by
|
|
305
|
+
default. By default this is set to 1 as all tables have a checkbox in the
|
|
306
|
+
first column of each row.
|
|
307
|
+
|
|
308
|
+
The following attributes can be set on each ``<th>`` element:
|
|
309
|
+
|
|
310
|
+
* data-sort-parser: the name of the parser to use for sorting the columns. This
|
|
311
|
+
option is directly passed to HtmlTable.Sort and can be any of the parsers
|
|
312
|
+
Mootools has to offer (or one you wrote yourself).
|
|
313
|
+
|
|
314
|
+
Example:
|
|
315
|
+
|
|
316
|
+
<table data-sort-index="1">
|
|
317
|
+
<thead>
|
|
318
|
+
<tr>
|
|
319
|
+
<th>#</th>
|
|
320
|
+
<th data-sort-parser="usernames">Name</th>
|
|
321
|
+
</tr>
|
|
322
|
+
</thead>
|
|
323
|
+
<tbody>
|
|
324
|
+
<tr>
|
|
325
|
+
<td>2</td>
|
|
326
|
+
<td>Ruby</td>
|
|
327
|
+
</tr>
|
|
328
|
+
</tbody>
|
|
329
|
+
</table>
|
|
330
|
+
|
|
331
|
+
If you want to create a table that should be ignored by Zen.Html table simply
|
|
332
|
+
give the ``<table>`` element a class of ``no_sort``:
|
|
333
|
+
|
|
334
|
+
<table class="no_sort">
|
|
335
|
+
<thead>
|
|
336
|
+
<tr>
|
|
337
|
+
<th>#</th>
|
|
338
|
+
<th>Name</th>
|
|
339
|
+
</tr>
|
|
340
|
+
</thead>
|
|
341
|
+
<tbody>
|
|
342
|
+
<tr>
|
|
343
|
+
<td>2</td>
|
|
344
|
+
<td>Ruby</td>
|
|
345
|
+
</tr>
|
|
346
|
+
</tbody>
|
|
347
|
+
</table>
|
|
348
|
+
|
|
349
|
+
This class can also be applied to ``<th>`` elements to ignore just that column
|
|
350
|
+
rather than the entire table.
|
|
351
|
+
|
|
352
|
+
[mootools]: http://mootools.net/
|