zen 0.2.7 → 0.2.8
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/.gitignore +15 -0
- data/.mailmap +2 -0
- data/.rvmrc +2 -0
- data/.travis.yml +8 -3
- data/AUTHORS +1 -2
- data/CHANGELOG.md +48 -17
- data/README.md +44 -39
- data/Rakefile +4 -0
- data/bin/zen +5 -30
- data/lib/zen.rb +13 -19
- data/lib/zen/asset.rb +99 -64
- data/lib/zen/bin/create.rb +94 -0
- data/lib/zen/bin/runner.rb +118 -0
- data/lib/zen/controller/admin_controller.rb +52 -36
- data/lib/zen/controller/base_controller.rb +5 -5
- data/lib/zen/controller/frontend_controller.rb +7 -7
- data/lib/zen/controller/main_controller.rb +12 -10
- data/lib/zen/controller/preview.rb +15 -11
- data/lib/zen/helper/acl.rb +73 -53
- data/lib/zen/helper/blue_form_vendor.rb +689 -0
- data/lib/zen/helper/breadcrumb.rb +23 -19
- data/lib/zen/helper/message.rb +3 -3
- data/lib/zen/helper/theme.rb +18 -13
- data/lib/zen/language.rb +62 -58
- data/lib/zen/language/en/zen_general.yml +2 -4
- data/lib/zen/language/nl/zen_general.yml +2 -4
- data/lib/zen/layout/admin.xhtml +3 -12
- data/lib/zen/layout/login.xhtml +1 -6
- data/lib/zen/model/methods.rb +6 -6
- data/lib/zen/model/settings.rb +5 -4
- data/lib/zen/package.rb +47 -38
- data/lib/zen/package/all.rb +3 -5
- data/lib/zen/package/base.rb +7 -7
- data/lib/zen/package/categories/lib/categories.rb +8 -3
- data/lib/zen/package/categories/lib/categories/controller/categories.rb +81 -55
- data/lib/zen/package/categories/lib/categories/controller/category_groups.rb +45 -44
- data/lib/zen/package/categories/lib/categories/helper/category.rb +88 -0
- data/lib/zen/package/categories/lib/categories/language/en/categories.yml +5 -4
- data/lib/zen/package/categories/lib/categories/language/en/category_groups.yml +5 -4
- data/lib/zen/package/categories/lib/categories/language/nl/categories.yml +5 -4
- data/lib/zen/package/categories/lib/categories/language/nl/category_groups.yml +5 -4
- data/lib/zen/package/categories/lib/categories/model/category.rb +15 -13
- data/lib/zen/package/categories/lib/categories/model/category_group.rb +3 -3
- data/lib/zen/package/categories/lib/categories/plugin/categories.rb +36 -25
- data/lib/zen/package/categories/lib/categories/view/admin/categories/form.xhtml +49 -56
- data/lib/zen/package/categories/lib/categories/view/admin/categories/index.xhtml +48 -35
- data/lib/zen/package/categories/lib/categories/view/admin/category-groups/form.xhtml +36 -29
- data/lib/zen/package/categories/lib/categories/view/admin/category-groups/index.xhtml +42 -37
- data/lib/zen/package/comments/lib/comments.rb +4 -1
- data/lib/zen/package/comments/lib/comments/controller/comments.rb +39 -32
- data/lib/zen/package/comments/lib/comments/controller/comments_form.rb +45 -26
- data/lib/zen/package/comments/lib/comments/helper/comment.rb +35 -0
- data/lib/zen/package/comments/lib/comments/language/en/comments.yml +9 -7
- data/lib/zen/package/comments/lib/comments/language/nl/comments.yml +10 -8
- data/lib/zen/package/comments/lib/comments/model/comment.rb +31 -17
- data/lib/zen/package/comments/lib/comments/model/comment_status.rb +15 -0
- data/lib/zen/package/comments/lib/comments/plugin/anti_spam.rb +27 -18
- data/lib/zen/package/comments/lib/comments/plugin/comments.rb +25 -20
- data/lib/zen/package/comments/lib/comments/view/admin/comments/form.xhtml +61 -54
- data/lib/zen/package/comments/lib/comments/view/admin/comments/index.xhtml +38 -23
- data/lib/zen/package/comments/migrations/1308774099_comment_status.rb +60 -0
- data/lib/zen/package/custom_fields/lib/custom_fields.rb +33 -7
- data/lib/zen/package/custom_fields/lib/custom_fields/blue_form_parameters.rb +209 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/controller/custom_field_groups.rb +50 -47
- data/lib/zen/package/custom_fields/lib/custom_fields/controller/custom_field_types.rb +215 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/controller/custom_fields.rb +111 -73
- data/lib/zen/package/custom_fields/lib/custom_fields/helper/custom_field.rb +79 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_field_groups.yml +20 -19
- data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_field_types.yml +40 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_fields.yml +34 -32
- data/lib/zen/package/custom_fields/lib/custom_fields/language/nl/custom_field_groups.yml +5 -4
- data/lib/zen/package/custom_fields/lib/custom_fields/language/nl/custom_field_types.yml +40 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/language/nl/custom_fields.yml +18 -16
- data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field.rb +31 -11
- data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_method.rb +15 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_type.rb +50 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_value.rb +28 -7
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-groups/form.xhtml +33 -28
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-groups/index.xhtml +48 -46
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-types/form.xhtml +61 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-types/index.xhtml +93 -0
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-fields/form.xhtml +105 -99
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-fields/index.xhtml +43 -39
- data/lib/zen/package/custom_fields/migrations/1295255665_create_schema.rb +47 -16
- data/lib/zen/package/custom_fields/migrations/1310659580_custom_field_types.rb +148 -0
- data/lib/zen/package/custom_fields/migrations/1311694920_rename_css_class.rb +11 -0
- data/lib/zen/package/menus/lib/menus/controller/menu_items.rb +40 -35
- data/lib/zen/package/menus/lib/menus/controller/menus.rb +47 -43
- data/lib/zen/package/menus/lib/menus/helper/{menu_item.rb → menu.rb} +42 -15
- data/lib/zen/package/menus/lib/menus/language/en/menu_items.yml +5 -5
- data/lib/zen/package/menus/lib/menus/language/en/menus.yml +9 -8
- data/lib/zen/package/menus/lib/menus/language/nl/menu_items.yml +8 -8
- data/lib/zen/package/menus/lib/menus/language/nl/menus.yml +11 -10
- data/lib/zen/package/menus/lib/menus/model/menu.rb +5 -5
- data/lib/zen/package/menus/lib/menus/model/menu_item.rb +6 -5
- data/lib/zen/package/menus/lib/menus/plugin/menus.rb +41 -43
- data/lib/zen/package/menus/lib/menus/view/admin/menu-items/form.xhtml +59 -63
- data/lib/zen/package/menus/lib/menus/view/admin/menu-items/index.xhtml +35 -30
- data/lib/zen/package/menus/lib/menus/view/admin/menus/form.xhtml +46 -37
- data/lib/zen/package/menus/lib/menus/view/admin/menus/index.xhtml +37 -37
- data/lib/zen/package/menus/migrations/1297184342_create_schema.rb +5 -5
- data/lib/zen/package/menus/migrations/1308671733_rename_order_column.rb +11 -0
- data/lib/zen/package/menus/migrations/1311695030_rename_css_class.rb +17 -0
- data/lib/zen/package/sections/lib/sections.rb +18 -11
- data/lib/zen/package/sections/lib/sections/controller/section_entries.rb +115 -109
- data/lib/zen/package/sections/lib/sections/controller/sections.rb +72 -50
- data/lib/zen/package/sections/lib/sections/helper/section.rb +53 -0
- data/lib/zen/package/sections/lib/sections/language/en/section_entries.yml +5 -4
- data/lib/zen/package/sections/lib/sections/language/en/sections.yml +5 -4
- data/lib/zen/package/sections/lib/sections/language/nl/section_entries.yml +5 -4
- data/lib/zen/package/sections/lib/sections/language/nl/sections.yml +5 -4
- data/lib/zen/package/sections/lib/sections/model/section.rb +17 -9
- data/lib/zen/package/sections/lib/sections/model/section_entry.rb +192 -13
- data/lib/zen/package/sections/lib/sections/model/section_entry_status.rb +13 -0
- data/lib/zen/package/sections/lib/sections/plugin/section_entries.rb +60 -39
- data/lib/zen/package/sections/lib/sections/plugin/sections.rb +14 -11
- data/lib/zen/package/sections/lib/sections/view/admin/form.xhtml +100 -97
- data/lib/zen/package/sections/lib/sections/view/admin/index.xhtml +41 -39
- data/lib/zen/package/sections/lib/sections/view/admin/section-entries/form.xhtml +95 -215
- data/lib/zen/package/sections/lib/sections/view/admin/section-entries/index.xhtml +48 -40
- data/lib/zen/package/sections/migrations/1308672298_use_id_for_default_section.rb +40 -0
- data/lib/zen/package/sections/migrations/1308813320_section_entry_statuses.rb +58 -0
- data/lib/zen/package/settings/lib/settings/controller/settings.rb +5 -8
- data/lib/zen/package/settings/lib/settings/model/setting.rb +2 -37
- data/lib/zen/package/settings/lib/settings/plugin/setting_base.rb +18 -1
- data/lib/zen/package/settings/lib/settings/plugin/settings.rb +13 -7
- data/lib/zen/package/settings/lib/settings/view/admin/settings/index.xhtml +2 -1
- data/lib/zen/package/users/lib/users.rb +3 -1
- data/lib/zen/package/users/lib/users/controller/access_rules.rb +77 -60
- data/lib/zen/package/users/lib/users/controller/user_groups.rb +41 -36
- data/lib/zen/package/users/lib/users/controller/users.rb +48 -42
- data/lib/zen/package/users/lib/users/helper/users.rb +72 -0
- data/lib/zen/package/users/lib/users/language/en/access_rules.yml +6 -5
- data/lib/zen/package/users/lib/users/language/en/user_groups.yml +5 -4
- data/lib/zen/package/users/lib/users/language/en/users.yml +1 -0
- data/lib/zen/package/users/lib/users/language/nl/access_rules.yml +5 -4
- data/lib/zen/package/users/lib/users/language/nl/user_groups.yml +5 -4
- data/lib/zen/package/users/lib/users/language/nl/users.yml +1 -0
- data/lib/zen/package/users/lib/users/model/access_rule.rb +5 -1
- data/lib/zen/package/users/lib/users/model/user.rb +17 -10
- data/lib/zen/package/users/lib/users/public/admin/js/users/access_rules.js +10 -37
- data/lib/zen/package/users/lib/users/public/admin/js/users/lib/access_rules.js +49 -0
- data/lib/zen/package/users/lib/users/view/admin/access-rules/form.xhtml +105 -96
- data/lib/zen/package/users/lib/users/view/admin/access-rules/index.xhtml +48 -41
- data/lib/zen/package/users/lib/users/view/admin/user-groups/form.xhtml +42 -32
- data/lib/zen/package/users/lib/users/view/admin/user-groups/index.xhtml +43 -38
- data/lib/zen/package/users/lib/users/view/admin/users/form.xhtml +76 -67
- data/lib/zen/package/users/lib/users/view/admin/users/index.xhtml +43 -41
- data/lib/zen/package/users/lib/users/view/admin/users/login.xhtml +12 -9
- data/lib/zen/package/users/migrations/1295281013_create_schema.rb +2 -2
- data/lib/zen/plugin.rb +56 -50
- data/lib/zen/plugin/markup/lib/markup/markup.rb +33 -21
- data/lib/zen/public/admin/css/zen/buttons.css +11 -7
- data/lib/zen/public/admin/css/zen/datepicker.css +6 -6
- data/lib/zen/public/admin/css/zen/forms.css +2 -1
- data/lib/zen/public/admin/css/zen/general.css +15 -10
- data/lib/zen/public/admin/css/zen/layout.css +51 -20
- data/lib/zen/public/admin/css/zen/tables.css +39 -11
- data/lib/zen/public/admin/css/zen/tabs.css +6 -4
- data/lib/zen/public/admin/css/zen/window.css +11 -11
- data/lib/zen/public/{favicon.ico → admin/favicon.ico} +0 -0
- data/lib/zen/public/admin/images/zen/icons/asc.png +0 -0
- data/lib/zen/public/admin/images/zen/icons/desc.png +0 -0
- data/lib/zen/public/admin/js/vendor/datepicker.js +0 -11
- data/lib/zen/public/admin/js/{mootools → vendor/mootools}/core.js +0 -1
- data/lib/zen/public/admin/js/{mootools → vendor/mootools}/more.js +100 -29
- data/lib/zen/public/admin/js/zen/index.js +48 -0
- data/lib/zen/public/admin/js/zen/lib/asset.js +111 -0
- data/lib/zen/public/admin/js/zen/{editor.js → lib/editor.js} +107 -127
- data/lib/zen/public/admin/js/zen/{editor → lib/editor}/markdown.js +7 -9
- data/lib/zen/public/admin/js/zen/{editor → lib/editor}/textile.js +7 -9
- data/lib/zen/public/admin/js/zen/lib/html_table.js +143 -0
- data/lib/zen/public/admin/js/zen/{tabs.js → lib/tabs.js} +40 -37
- data/lib/zen/public/admin/js/zen/{window.js → lib/window.js} +24 -20
- data/lib/zen/spec/bacon/color_output.rb +39 -0
- data/lib/zen/spec/helper.rb +152 -0
- data/lib/zen/spec/simplecov.rb +22 -0
- data/lib/zen/task/build.rake +20 -43
- data/lib/zen/task/clean.rake +2 -6
- data/lib/zen/task/db.rake +8 -12
- data/lib/zen/task/package.rake +4 -10
- data/lib/zen/task/plugin.rake +3 -9
- data/lib/zen/task/proto.rake +0 -62
- data/lib/zen/task/test.rake +6 -3
- data/lib/zen/task/theme.rake +4 -11
- data/lib/zen/theme.rb +22 -24
- data/lib/zen/validation.rb +34 -27
- data/lib/zen/version.rb +2 -8
- data/lib/zen/view/head.xhtml +7 -0
- data/lib/zen/view/main.xhtml +7 -22
- data/{proto/package/migrations → pkg}/.gitkeep +0 -0
- data/proto/app/app.rb +1 -0
- data/proto/app/config/config.rb +5 -4
- data/proto/app/config/database.rb +19 -41
- data/proto/app/config/middlewares.rb +32 -29
- data/proto/{package/lib/package/view/admin/package/index.xhtml → app/log/database/dev/.gitkeep} +0 -0
- data/proto/app/log/database/live/.gitkeep +0 -0
- data/spec/Rakefile +26 -0
- data/spec/fixtures/zen/asset.rb +18 -0
- data/spec/fixtures/zen/helper/acl.rb +39 -0
- data/spec/fixtures/zen/helper/message.rb +19 -0
- data/spec/fixtures/zen/language/en/spec.yml +10 -0
- data/spec/fixtures/zen/language/nl/spec.yml +7 -0
- data/spec/fixtures/zen/package.rb +17 -0
- data/spec/fixtures/zen/package/comments/controller/comments_form.rb +27 -0
- data/spec/fixtures/zen/package/settings/plugin/settings.rb +20 -0
- data/spec/fixtures/zen/plugin.rb +7 -0
- data/spec/fixtures/zen/theme/404.xhtml +1 -0
- data/spec/fixtures/zen/theme/default-section/index.xhtml +1 -0
- data/spec/fixtures/zen/theme/helper/404.xhtml +1 -0
- data/spec/fixtures/zen/theme/helper/partial.xhtml +1 -0
- data/spec/fixtures/zen/theme/helper/wrong_partial.xhtml +1 -0
- data/spec/fixtures/zen/theme/partials/partial.xhtml +1 -0
- data/spec/fixtures/zen/theme/theme.rb +11 -0
- data/spec/fixtures/zen/validation.rb +22 -0
- data/spec/helper.rb +41 -0
- data/spec/zen/all.rb +5 -0
- data/spec/zen/asset.rb +97 -0
- data/spec/zen/bin/create.rb +89 -0
- data/spec/zen/bin/runner.rb +47 -0
- data/spec/zen/controller/admin_controller.rb +26 -0
- data/spec/zen/controller/main_controller.rb +81 -0
- data/spec/zen/controller/preview.rb +33 -0
- data/spec/zen/helper/acl.rb +149 -0
- data/spec/zen/helper/breadcrumb.rb +38 -0
- data/spec/zen/helper/message.rb +31 -0
- data/spec/zen/helper/theme.rb +58 -0
- data/spec/zen/language.rb +55 -0
- data/spec/zen/package.rb +23 -0
- data/spec/zen/package/categories/controller/categories.rb +123 -0
- data/spec/zen/package/categories/controller/category_groups.rb +108 -0
- data/spec/zen/package/categories/helper/category.rb +75 -0
- data/spec/zen/package/categories/plugin/categories.rb +92 -0
- data/spec/zen/package/comments/controller/comments.rb +134 -0
- data/spec/zen/package/comments/controller/comments_form.rb +343 -0
- data/spec/zen/package/comments/helper/comment.rb +47 -0
- data/spec/zen/package/comments/plugin/anti_spam.rb +59 -0
- data/spec/zen/package/comments/plugin/comments.rb +107 -0
- data/spec/zen/package/custom_fields/blue_form_parameters.rb +183 -0
- data/spec/zen/package/custom_fields/controller/custom_field_groups.rb +120 -0
- data/spec/zen/package/custom_fields/controller/custom_field_types.rb +169 -0
- data/spec/zen/package/custom_fields/controller/custom_fields.rb +158 -0
- data/spec/zen/package/custom_fields/helper/custom_field.rb +86 -0
- data/spec/zen/package/menus/controller/menu_items.rb +110 -0
- data/spec/zen/package/menus/controller/menus.rb +110 -0
- data/spec/zen/package/menus/helper/menu.rb +75 -0
- data/spec/zen/package/menus/plugin/menus.rb +120 -0
- data/spec/zen/package/sections/controller/section_entries.rb +201 -0
- data/spec/zen/package/sections/controller/sections.rb +116 -0
- data/spec/zen/package/sections/helper/section.rb +74 -0
- data/spec/zen/package/sections/plugin/section_entries.rb +161 -0
- data/spec/zen/package/sections/plugin/sections.rb +75 -0
- data/spec/zen/package/settings/controller/settings.rb +36 -0
- data/spec/zen/package/settings/plugin/settings.rb +33 -0
- data/spec/zen/package/users/controller/access_rules.rb +90 -0
- data/spec/zen/package/users/controller/user_groups.rb +101 -0
- data/spec/zen/package/users/controller/users.rb +130 -0
- data/spec/zen/package/users/helper/users.rb +97 -0
- data/spec/zen/plugin.rb +64 -0
- data/spec/zen/plugin/helper.rb +11 -0
- data/spec/zen/plugin/markup.rb +44 -0
- data/spec/zen/theme.rb +41 -0
- data/spec/zen/validation.rb +63 -0
- data/zen.gemspec +36 -0
- metadata +159 -113
- data/MANIFEST +0 -266
- data/lib/zen/bin/app.rb +0 -40
- data/lib/zen/ext/string.rb +0 -185
- data/lib/zen/helper/common.rb +0 -106
- data/lib/zen/package/categories/lib/categories/view/admin/categories/edit.xhtml +0 -7
- data/lib/zen/package/categories/lib/categories/view/admin/categories/new.xhtml +0 -7
- data/lib/zen/package/categories/lib/categories/view/admin/category-groups/edit.xhtml +0 -7
- data/lib/zen/package/categories/lib/categories/view/admin/category-groups/new.xhtml +0 -7
- data/lib/zen/package/comments/lib/comments/view/admin/comments/edit.xhtml +0 -7
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-groups/edit.xhtml +0 -7
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-groups/new.xhtml +0 -7
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-fields/edit.xhtml +0 -7
- data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-fields/new.xhtml +0 -7
- data/lib/zen/package/menus/lib/menus/view/admin/menu-items/edit.xhtml +0 -7
- data/lib/zen/package/menus/lib/menus/view/admin/menu-items/new.xhtml +0 -7
- data/lib/zen/package/menus/lib/menus/view/admin/menus/edit.xhtml +0 -7
- data/lib/zen/package/menus/lib/menus/view/admin/menus/new.xhtml +0 -7
- data/lib/zen/package/sections/lib/sections/view/admin/edit.xhtml +0 -7
- data/lib/zen/package/sections/lib/sections/view/admin/new.xhtml +0 -7
- data/lib/zen/package/sections/lib/sections/view/admin/section-entries/edit.xhtml +0 -7
- data/lib/zen/package/sections/lib/sections/view/admin/section-entries/new.xhtml +0 -7
- data/lib/zen/package/users/lib/users/view/admin/access-rules/edit.xhtml +0 -7
- data/lib/zen/package/users/lib/users/view/admin/access-rules/new.xhtml +0 -7
- data/lib/zen/package/users/lib/users/view/admin/user-groups/edit.xhtml +0 -7
- data/lib/zen/package/users/lib/users/view/admin/user-groups/new.xhtml +0 -7
- data/lib/zen/package/users/lib/users/view/admin/users/edit.xhtml +0 -7
- data/lib/zen/package/users/lib/users/view/admin/users/new.xhtml +0 -7
- data/lib/zen/plugin/controller.rb +0 -59
- data/lib/zen/public/admin/css/zen/notifications.css +0 -84
- data/lib/zen/public/admin/images/zen/icons/large/error.png +0 -0
- data/lib/zen/public/admin/images/zen/icons/large/notice.png +0 -0
- data/lib/zen/public/admin/images/zen/icons/large/success.png +0 -0
- data/lib/zen/public/admin/js/zen/core.js +0 -73
- data/lib/zen/public/admin/js/zen/init.js +0 -80
- data/proto/package/lib/package.rb +0 -21
- data/proto/package/lib/package/controller/controllers.rb +0 -50
- data/proto/package/lib/package/language/en/languages.yml +0 -4
- data/proto/package/lib/package/model/model.rb +0 -12
|
@@ -1,22 +1,21 @@
|
|
|
1
|
-
<article>
|
|
1
|
+
<article>
|
|
2
2
|
<header>
|
|
3
3
|
<h1>#{get_breadcrumbs}</h1>
|
|
4
4
|
</header>
|
|
5
|
-
|
|
6
|
-
<form method="post" action="#{
|
|
5
|
+
|
|
6
|
+
<form method="post" action="#{Users::Controller::Users.r(:delete)}">
|
|
7
7
|
<input type="hidden" name="csrf_token" value="#{get_csrf_token}" />
|
|
8
|
-
|
|
9
|
-
<?r if
|
|
10
|
-
|
|
11
|
-
<table class="table">
|
|
8
|
+
|
|
9
|
+
<?r if !@users.empty? ?>
|
|
10
|
+
<table>
|
|
12
11
|
<thead>
|
|
13
12
|
<tr>
|
|
14
13
|
<?r if user_authorized?([:delete]) ?>
|
|
15
|
-
<th>
|
|
14
|
+
<th class="no_sort">
|
|
16
15
|
<input type="checkbox" />
|
|
17
16
|
</th>
|
|
18
17
|
<?r end ?>
|
|
19
|
-
|
|
18
|
+
|
|
20
19
|
<th>#{lang('users.labels.id')}</th>
|
|
21
20
|
<th>#{lang('users.labels.email')}</th>
|
|
22
21
|
<th>#{lang('users.labels.status')}</th>
|
|
@@ -30,25 +29,28 @@
|
|
|
30
29
|
<tr>
|
|
31
30
|
<?r if user_authorized?([:delete]) ?>
|
|
32
31
|
<td>
|
|
33
|
-
<input type="checkbox" name="user_ids[]"
|
|
32
|
+
<input type="checkbox" name="user_ids[]"
|
|
33
|
+
value="#{user.id}" />
|
|
34
34
|
</td>
|
|
35
35
|
<?r end ?>
|
|
36
|
-
|
|
36
|
+
|
|
37
37
|
<td>#{user.id}</td>
|
|
38
|
-
|
|
39
|
-
<?r if user_authorized?([:update]) ?>
|
|
38
|
+
|
|
40
39
|
<td>
|
|
41
|
-
#{
|
|
42
|
-
|
|
43
|
-
Users::Controller::Users.
|
|
44
|
-
|
|
40
|
+
#{
|
|
41
|
+
if user_authorized?([:update])
|
|
42
|
+
Users::Controller::Users.a(user.email, :edit, user.id)
|
|
43
|
+
else
|
|
44
|
+
user.email
|
|
45
|
+
end
|
|
46
|
+
}
|
|
47
|
+
</td>
|
|
48
|
+
<td>
|
|
49
|
+
#{lang("users.special.status_hash.#{user.status}")}
|
|
50
|
+
</td>
|
|
51
|
+
<td>
|
|
52
|
+
#{user.created_at.strftime(session[:user].date_format)}
|
|
45
53
|
</td>
|
|
46
|
-
<?r else ?>
|
|
47
|
-
<td>#{user.email}</td>
|
|
48
|
-
<?r end ?>
|
|
49
|
-
|
|
50
|
-
<td>#{lang("users.special.status_hash.#{user.status}")}</td>
|
|
51
|
-
<td>#{user.created_at.strftime(session[:user].date_format)}</td>
|
|
52
54
|
<td>
|
|
53
55
|
#{
|
|
54
56
|
if user.updated_at
|
|
@@ -67,27 +69,27 @@
|
|
|
67
69
|
<?r end ?>
|
|
68
70
|
</tbody>
|
|
69
71
|
</table>
|
|
70
|
-
|
|
72
|
+
|
|
73
|
+
#{
|
|
74
|
+
if @users.respond_to?(:navigation) and @users.page_count > 1
|
|
75
|
+
@users.navigation
|
|
76
|
+
end
|
|
77
|
+
}
|
|
78
|
+
|
|
71
79
|
<?r else ?>
|
|
72
80
|
<p>#{lang('users.messages.no_users')}</p>
|
|
73
81
|
<?r end ?>
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
<div class="button">
|
|
79
|
-
#{anchor_to(
|
|
80
|
-
lang('users.buttons.new'),
|
|
81
|
-
Users::Controller::Users.r(:new)
|
|
82
|
-
)}
|
|
83
|
-
</div>
|
|
84
|
-
<?r end ?>
|
|
85
|
-
|
|
86
|
-
<?r if user_authorized?([:delete]) and @users and !@users.empty? ?>
|
|
87
|
-
<div class="button">
|
|
88
|
-
<input type="submit" value="#{lang('users.buttons.delete')}" />
|
|
89
|
-
</div>
|
|
90
|
-
<?r end ?>
|
|
82
|
+
|
|
83
|
+
<?r if user_authorized?([:create]) ?>
|
|
84
|
+
<div class="button">
|
|
85
|
+
#{Users::Controller::Users.a(lang('users.buttons.new'), :new)}
|
|
91
86
|
</div>
|
|
87
|
+
<?r end ?>
|
|
88
|
+
|
|
89
|
+
<?r if user_authorized?([:delete]) and !@users.empty? ?>
|
|
90
|
+
<div class="button">
|
|
91
|
+
<input type="submit" value="#{lang('users.buttons.delete')}" />
|
|
92
|
+
</div>
|
|
93
|
+
<?r end ?>
|
|
92
94
|
</form>
|
|
93
95
|
</article>
|
|
@@ -4,23 +4,26 @@
|
|
|
4
4
|
</header>
|
|
5
5
|
|
|
6
6
|
#{
|
|
7
|
-
form_for(
|
|
7
|
+
form_for(
|
|
8
|
+
nil,
|
|
9
|
+
:method => :post,
|
|
10
|
+
:action => Users::Controller::Users.r(:login),
|
|
11
|
+
:id => 'login_form'
|
|
12
|
+
) do |f|
|
|
8
13
|
f.input_text(
|
|
9
|
-
lang('users.labels.email'),
|
|
10
|
-
:email,
|
|
14
|
+
lang('users.labels.email'),
|
|
15
|
+
:email,
|
|
11
16
|
:tabindex => 1
|
|
12
17
|
)
|
|
13
18
|
|
|
14
19
|
f.input_password(
|
|
15
|
-
lang('users.labels.password'),
|
|
16
|
-
:password,
|
|
20
|
+
lang('users.labels.password'),
|
|
21
|
+
:password,
|
|
17
22
|
:tabindex => 2
|
|
18
23
|
)
|
|
19
24
|
|
|
20
|
-
f.g.div(:class => '
|
|
21
|
-
f.g.
|
|
22
|
-
f.g.input(:type => :submit, :value => lang('users.buttons.login'))
|
|
23
|
-
end
|
|
25
|
+
f.g.div(:class => 'button') do
|
|
26
|
+
f.g.input(:type => :submit, :value => lang('users.buttons.login'))
|
|
24
27
|
end
|
|
25
28
|
end
|
|
26
29
|
}
|
|
@@ -4,10 +4,10 @@ Sequel.migration do
|
|
|
4
4
|
create_table :users do
|
|
5
5
|
primary_key :id
|
|
6
6
|
|
|
7
|
-
String :email, :null
|
|
7
|
+
String :email, :null => false, :unique => true
|
|
8
8
|
String :name
|
|
9
9
|
String :website
|
|
10
|
-
String :password, :null
|
|
10
|
+
String :password, :null => false
|
|
11
11
|
String :status, :default => 'closed'
|
|
12
12
|
Time :created_at
|
|
13
13
|
Time :updated_at
|
data/lib/zen/plugin.rb
CHANGED
|
@@ -4,18 +4,19 @@ require __DIR__('plugin/base')
|
|
|
4
4
|
#:nodoc:
|
|
5
5
|
module Zen
|
|
6
6
|
##
|
|
7
|
-
# Plugins in Zen are quite similar to packages except for a few differences.
|
|
8
|
-
# difference is that plugins won't update any Ramaze root
|
|
9
|
-
# directories. This means that they can't have
|
|
10
|
-
# Plugins are useful for supporting multiple
|
|
11
|
-
# and other small tasks such as
|
|
7
|
+
# Plugins in Zen are quite similar to packages except for a few differences.
|
|
8
|
+
# The biggest difference is that plugins won't update any Ramaze root
|
|
9
|
+
# directories or language directories. This means that they can't have
|
|
10
|
+
# controllers, models and so on. Plugins are useful for supporting multiple
|
|
11
|
+
# markup formats (Markdown, Textile, etc) and other small tasks such as
|
|
12
|
+
# replacing Email addresses and so on.
|
|
12
13
|
#
|
|
13
14
|
# ## Creating Plugins
|
|
14
15
|
#
|
|
15
|
-
# Creating a plugin happens in two steps. First you'll create your class and
|
|
16
|
-
# register it so that it can be used by the system. A plugin has
|
|
17
|
-
# it's just a class with two methods: initialize and
|
|
18
|
-
# plugin looks like the following:
|
|
16
|
+
# Creating a plugin happens in two steps. First you'll create your class and
|
|
17
|
+
# then you'll register it so that it can be used by the system. A plugin has
|
|
18
|
+
# a very simple layout, it's just a class with two methods: initialize and
|
|
19
|
+
# call. The most basic skeleton of a plugin looks like the following:
|
|
19
20
|
#
|
|
20
21
|
# class MyPlugin
|
|
21
22
|
# def initialize
|
|
@@ -27,9 +28,9 @@ module Zen
|
|
|
27
28
|
# end
|
|
28
29
|
# end
|
|
29
30
|
#
|
|
30
|
-
# When a plugin is called all specified arguments are sent to the construct
|
|
31
|
-
# your plugin requires a number of arguments be sure to store
|
|
32
|
-
# looks like the following:
|
|
31
|
+
# When a plugin is called all specified arguments are sent to the construct
|
|
32
|
+
# method so if your plugin requires a number of arguments be sure to store
|
|
33
|
+
# them. An example of this looks like the following:
|
|
33
34
|
#
|
|
34
35
|
# class MyPlugin
|
|
35
36
|
# def initialize(name)
|
|
@@ -41,8 +42,8 @@ module Zen
|
|
|
41
42
|
# end
|
|
42
43
|
# end
|
|
43
44
|
#
|
|
44
|
-
# The call method is supposed to return some data. Say we want to capitalize
|
|
45
|
-
# name we'd modify the skeleton so that it looks like the following:
|
|
45
|
+
# The call method is supposed to return some data. Say we want to capitalize
|
|
46
|
+
# a given name we'd modify the skeleton so that it looks like the following:
|
|
46
47
|
#
|
|
47
48
|
# class MyPlugin
|
|
48
49
|
# def initialize(name)
|
|
@@ -56,9 +57,10 @@ module Zen
|
|
|
56
57
|
#
|
|
57
58
|
# ## Registering Plugins
|
|
58
59
|
#
|
|
59
|
-
# Now that the plugin is created it's time to tell Zen it actually is a plugin
|
|
60
|
-
# some random class that doesn't belong somewhere. This can be done
|
|
61
|
-
# Zen::Plugin.add and specifying a block with the details of the
|
|
60
|
+
# Now that the plugin is created it's time to tell Zen it actually is a plugin
|
|
61
|
+
# and not some random class that doesn't belong somewhere. This can be done
|
|
62
|
+
# by calling Zen::Plugin.add and specifying a block with the details of the
|
|
63
|
+
# plugin. Example:
|
|
62
64
|
#
|
|
63
65
|
# Zen::Plugin.add do |plugin|
|
|
64
66
|
# plugin.name = :my_plugin
|
|
@@ -67,31 +69,32 @@ module Zen
|
|
|
67
69
|
# plugin.plugin = MyPlugin
|
|
68
70
|
# end
|
|
69
71
|
#
|
|
70
|
-
# The name and plugin setter are the most important. Names should always match
|
|
71
|
-
# regular expression /[a-z0-9_\-]+/. This is done to ensure names are
|
|
72
|
-
# easy to remember. It's also used for calling plugins and
|
|
73
|
-
# duplicates.
|
|
72
|
+
# The name and plugin setter are the most important. Names should always match
|
|
73
|
+
# the regular expression /[a-z0-9_\-]+/. This is done to ensure names are
|
|
74
|
+
# consistent and easy to remember. It's also used for calling plugins and
|
|
75
|
+
# making sure there are no duplicates.
|
|
74
76
|
#
|
|
75
|
-
# The second important part is the plugin setting. This setter takes the class
|
|
76
|
-
# of the plugin that was created earlier on. There's no need to call
|
|
77
|
-
# be done by Zen whenever the plugin is actually used.
|
|
77
|
+
# The second important part is the plugin setting. This setter takes the class
|
|
78
|
+
# constant of the plugin that was created earlier on. There's no need to call
|
|
79
|
+
# new(), this will be done by Zen whenever the plugin is actually used.
|
|
78
80
|
#
|
|
79
81
|
# ## Executing Plugins
|
|
80
82
|
#
|
|
81
|
-
# Executing plugins is very easy and can be done by using the global method
|
|
83
|
+
# Executing plugins is very easy and can be done by using the global method
|
|
84
|
+
# plugin():
|
|
82
85
|
#
|
|
83
86
|
# plugin(:my_plugin, 'yorick') # => "YORICK"
|
|
84
87
|
#
|
|
85
|
-
# The first argument is the name of the plugin to call, all following
|
|
86
|
-
# sent to the plugin's construct method.
|
|
88
|
+
# The first argument is the name of the plugin to call, all following
|
|
89
|
+
# arguments will be sent to the plugin's construct method.
|
|
87
90
|
#
|
|
88
91
|
# @author Yorick Peterse
|
|
89
92
|
# @since 0.2.4
|
|
90
93
|
#
|
|
91
94
|
module Plugin
|
|
92
95
|
##
|
|
93
|
-
# Hash containing all registered plugins. The keys are the names of the
|
|
94
|
-
# the values are instances of Zen::Plugin::Base.
|
|
96
|
+
# Hash containing all registered plugins. The keys are the names of the
|
|
97
|
+
# plugins and the values are instances of Zen::Plugin::Base.
|
|
95
98
|
#
|
|
96
99
|
# @author Yorick Peterse
|
|
97
100
|
# @since 0.2.5
|
|
@@ -103,8 +106,8 @@ module Zen
|
|
|
103
106
|
#
|
|
104
107
|
# @author Yorick Peterse
|
|
105
108
|
# @since 0.2.4
|
|
106
|
-
# @raise [Zen::PluginError] Error raised whenever the plugin already exists
|
|
107
|
-
# missing a certain setter.
|
|
109
|
+
# @raise [Zen::PluginError] Error raised whenever the plugin already exists
|
|
110
|
+
# or is missing a certain setter.
|
|
108
111
|
#
|
|
109
112
|
def self.add
|
|
110
113
|
plugin = Zen::Plugin::Base.new
|
|
@@ -127,18 +130,12 @@ module Zen
|
|
|
127
130
|
# @author Yorick Peterse
|
|
128
131
|
# @since 0.2.4
|
|
129
132
|
# @param [String] name The name of the plugin to retrieve.
|
|
130
|
-
# @raise Zen::PluginError Error that's raised when no plugins have been
|
|
131
|
-
# the specified plugin doesn't exist.
|
|
133
|
+
# @raise Zen::PluginError Error that's raised when no plugins have been
|
|
134
|
+
# added yet or the specified plugin doesn't exist.
|
|
132
135
|
# @return [Struct] Instance of the plugin.
|
|
133
136
|
#
|
|
134
137
|
def self.[](name)
|
|
135
|
-
if name.class != Symbol
|
|
136
|
-
name = name.to_sym
|
|
137
|
-
end
|
|
138
|
-
|
|
139
|
-
if Registered.nil?
|
|
140
|
-
raise(Zen::PluginError, "No plugins have been added.")
|
|
141
|
-
end
|
|
138
|
+
name = name.to_sym if name.class != Symbol
|
|
142
139
|
|
|
143
140
|
if !Registered[name]
|
|
144
141
|
raise(Zen::PluginError, "The plugin #{name} doesn't exist.")
|
|
@@ -147,11 +144,24 @@ module Zen
|
|
|
147
144
|
return Registered[name]
|
|
148
145
|
end
|
|
149
146
|
|
|
147
|
+
##
|
|
148
|
+
# @author Yorick Peterse
|
|
149
|
+
# @since 0.2.8
|
|
150
|
+
# @see Zen::Plugin::SingletonMethods#plugin
|
|
151
|
+
#
|
|
152
|
+
def self.plugin(name, *data, &block)
|
|
153
|
+
if name.class != Symbol
|
|
154
|
+
name = name.to_sym
|
|
155
|
+
end
|
|
156
|
+
|
|
157
|
+
return ::Zen::Plugin[name].plugin.new(*data, &block).call
|
|
158
|
+
end
|
|
159
|
+
|
|
150
160
|
#:nodoc:
|
|
151
161
|
module SingletonMethods
|
|
152
162
|
##
|
|
153
|
-
# Retrieves the given plugin and executes it. All specified parameters
|
|
154
|
-
# to the plugin as well.
|
|
163
|
+
# Retrieves the given plugin and executes it. All specified parameters
|
|
164
|
+
# will be sent to the plugin as well.
|
|
155
165
|
#
|
|
156
166
|
# @example
|
|
157
167
|
# plugin(:settings, :get, :language)
|
|
@@ -160,17 +170,13 @@ module Zen
|
|
|
160
170
|
# @since 0.2.5
|
|
161
171
|
# @param [String/Symbol] name The name of the plugin to call.
|
|
162
172
|
# @param [Array] data Any data to pass to the plugin's action (a lambda).
|
|
163
|
-
# @param [Proc] block A block that should be passed to the plugin instead
|
|
164
|
-
# method.
|
|
173
|
+
# @param [Proc] block A block that should be passed to the plugin instead
|
|
174
|
+
# of this method.
|
|
165
175
|
# @return [Mixed]
|
|
166
176
|
#
|
|
167
177
|
def plugin(name, *data, &block)
|
|
168
|
-
|
|
169
|
-
name = name.to_sym
|
|
170
|
-
end
|
|
171
|
-
|
|
172
|
-
return ::Zen::Plugin[name].plugin.new(*data, &block).call
|
|
178
|
+
::Zen::Plugin.plugin(name, *data, &block)
|
|
173
179
|
end
|
|
174
|
-
end
|
|
180
|
+
end # SingletonMethods
|
|
175
181
|
end # Plugin
|
|
176
182
|
end # Zen
|
|
@@ -3,16 +3,16 @@ module Zen
|
|
|
3
3
|
#:nodoc
|
|
4
4
|
module Plugin
|
|
5
5
|
##
|
|
6
|
-
# The Markup plugin is used to convert the given markup using the specified
|
|
7
|
-
# Out of the box this plugin is capable of doing the following:
|
|
6
|
+
# The Markup plugin is used to convert the given markup using the specified
|
|
7
|
+
# engine. Out of the box this plugin is capable of doing the following:
|
|
8
8
|
#
|
|
9
9
|
# * Markdown -> HTML
|
|
10
10
|
# * Textile -> HTML
|
|
11
11
|
# * HTML -> Plain text (escapes HTML)
|
|
12
12
|
# * Regular HTML
|
|
13
13
|
#
|
|
14
|
-
# When using Markdown you'll have to make sure RDiscount is loaded, for
|
|
15
|
-
# should be RedCloth.
|
|
14
|
+
# When using Markdown you'll have to make sure RDiscount is loaded, for
|
|
15
|
+
# Textile this should be RedCloth.
|
|
16
16
|
#
|
|
17
17
|
# ## Usage
|
|
18
18
|
#
|
|
@@ -22,14 +22,15 @@ module Zen
|
|
|
22
22
|
#
|
|
23
23
|
# ## Adding Engines
|
|
24
24
|
#
|
|
25
|
-
# In order to add a custom markdown engine (e.g. RDoc) you'll have to update
|
|
26
|
-
# Zen::Plugin::Markup::Engines so that it includes the name and human
|
|
27
|
-
# of the engine you wish to use. This can be done as
|
|
25
|
+
# In order to add a custom markdown engine (e.g. RDoc) you'll have to update
|
|
26
|
+
# Zen::Plugin::Markup::Engines so that it includes the name and human
|
|
27
|
+
# readable name of the engine you wish to use. This can be done as
|
|
28
|
+
# following:
|
|
28
29
|
#
|
|
29
30
|
# Zen::Plugin::Markup::Engines[:rdoc] => 'RDoc'
|
|
30
31
|
#
|
|
31
|
-
# Once this is done you'll need to define a method that matches the key
|
|
32
|
-
# added. In this case it will be named "rdoc":
|
|
32
|
+
# Once this is done you'll need to define a method that matches the key
|
|
33
|
+
# you've just added. In this case it will be named "rdoc":
|
|
33
34
|
#
|
|
34
35
|
# module Zen
|
|
35
36
|
# module Plugin
|
|
@@ -41,22 +42,25 @@ module Zen
|
|
|
41
42
|
# end
|
|
42
43
|
# end
|
|
43
44
|
#
|
|
44
|
-
# Once this has been done you're able to convert RDoc markup to HTML using
|
|
45
|
+
# Once this has been done you're able to convert RDoc markup to HTML using
|
|
46
|
+
# this plugin.
|
|
45
47
|
#
|
|
46
48
|
# @author Yorick Peterse
|
|
47
49
|
# @since 0.2.5
|
|
48
50
|
#
|
|
49
51
|
class Markup
|
|
50
52
|
include Ramaze::Helper::CGI
|
|
51
|
-
|
|
52
|
-
# Load the language pack in the class method scope rather than the
|
|
53
|
+
|
|
54
|
+
# Load the language pack in the class method scope rather than the
|
|
55
|
+
# instance's scope
|
|
53
56
|
class << self
|
|
54
57
|
include Zen::Language
|
|
55
58
|
end
|
|
56
59
|
|
|
57
60
|
##
|
|
58
|
-
# Hash containing the keys of the engines to use and their human friendly
|
|
59
|
-
# (used in the backend). Note that the keys of this hash should be
|
|
61
|
+
# Hash containing the keys of the engines to use and their human friendly
|
|
62
|
+
# names (used in the backend). Note that the keys of this hash should be
|
|
63
|
+
# strings.
|
|
60
64
|
#
|
|
61
65
|
# @author Yorick Peterse
|
|
62
66
|
# @since 0.2.5
|
|
@@ -66,10 +70,11 @@ module Zen
|
|
|
66
70
|
'textile' => lang('markup.engines.textile'),
|
|
67
71
|
'plain' => lang('markup.engines.plain'),
|
|
68
72
|
'html' => lang('markup.engines.html')
|
|
69
|
-
}
|
|
70
|
-
|
|
73
|
+
}
|
|
74
|
+
|
|
71
75
|
##
|
|
72
|
-
# Creates a new instance of the markup plugin and validates all the given
|
|
76
|
+
# Creates a new instance of the markup plugin and validates all the given
|
|
77
|
+
# parameters.
|
|
73
78
|
#
|
|
74
79
|
# @author Yorick Peterse
|
|
75
80
|
# @since 0.2.5
|
|
@@ -81,17 +86,23 @@ module Zen
|
|
|
81
86
|
|
|
82
87
|
# Validate the given engine
|
|
83
88
|
if !Engines.keys.include?(@engine)
|
|
84
|
-
raise(
|
|
89
|
+
raise(
|
|
90
|
+
ArgumentError,
|
|
91
|
+
"The markup engine \"#{@engine}\" is invalid."
|
|
92
|
+
)
|
|
85
93
|
end
|
|
86
94
|
|
|
87
95
|
# Does the engine have a matching method?
|
|
88
96
|
if !respond_to?(@engine)
|
|
89
|
-
raise(
|
|
97
|
+
raise(
|
|
98
|
+
NoMethodError,
|
|
99
|
+
"The engine \"#{@engine}\" has no matching method."
|
|
100
|
+
)
|
|
90
101
|
end
|
|
91
102
|
end
|
|
92
103
|
|
|
93
104
|
##
|
|
94
|
-
# Converts the markup into HTML or plain text.
|
|
105
|
+
# Converts the markup into HTML or plain text.
|
|
95
106
|
#
|
|
96
107
|
# @author Yorick Peterse
|
|
97
108
|
# @since 0.2.5
|
|
@@ -130,7 +141,8 @@ module Zen
|
|
|
130
141
|
#
|
|
131
142
|
# @author Yorick Peterse
|
|
132
143
|
# @since 0.2.5
|
|
133
|
-
# @param [String] markup The markup in which all HTML tags should be
|
|
144
|
+
# @param [String] markup The markup in which all HTML tags should be
|
|
145
|
+
# escaped.
|
|
134
146
|
# @return [String] String containing the escaped HTML.
|
|
135
147
|
#
|
|
136
148
|
def plain(markup)
|