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
|
@@ -3,8 +3,8 @@ module Comments
|
|
|
3
3
|
#:nodoc
|
|
4
4
|
module Plugin
|
|
5
5
|
##
|
|
6
|
-
# The Comments plugin can be used to display a list of comments for a given
|
|
7
|
-
# entry.
|
|
6
|
+
# The Comments plugin can be used to display a list of comments for a given
|
|
7
|
+
# section entry.
|
|
8
8
|
#
|
|
9
9
|
# ## Usage
|
|
10
10
|
#
|
|
@@ -26,18 +26,21 @@ module Comments
|
|
|
26
26
|
include ::Comments::Model
|
|
27
27
|
|
|
28
28
|
##
|
|
29
|
-
# Creates a new instance of the plugin and saves the specified
|
|
29
|
+
# Creates a new instance of the plugin and saves the specified
|
|
30
|
+
# configuration options.
|
|
30
31
|
#
|
|
31
32
|
# @author Yorick Peterse
|
|
32
33
|
# @since 0.2.5
|
|
33
|
-
# @param [Hash] options Hash with a set of options that determine how
|
|
34
|
-
# should be retrieved.
|
|
35
|
-
# @option options [String/Integer] :entry The slug or ID of the entry for
|
|
36
|
-
# retrieve all comments.
|
|
37
|
-
# @option options [Integer] :limit The maximum amount of comments to
|
|
38
|
-
#
|
|
39
|
-
# @option options [
|
|
40
|
-
#
|
|
34
|
+
# @param [Hash] options Hash with a set of options that determine how
|
|
35
|
+
# the comments should be retrieved.
|
|
36
|
+
# @option options [String/Integer] :entry The slug or ID of the entry for
|
|
37
|
+
# which to retrieve all comments.
|
|
38
|
+
# @option options [Integer] :limit The maximum amount of comments to
|
|
39
|
+
# retrieve.
|
|
40
|
+
# @option options [Integer] :offset The row offset, useful for pagination
|
|
41
|
+
# systems.
|
|
42
|
+
# @option options [Boolean] :markup When set to true (default) the markup
|
|
43
|
+
# used in each comment will be converted to the appropriate format.
|
|
41
44
|
#
|
|
42
45
|
def initialize(options = {})
|
|
43
46
|
@options = {
|
|
@@ -55,8 +58,8 @@ module Comments
|
|
|
55
58
|
end
|
|
56
59
|
|
|
57
60
|
##
|
|
58
|
-
# Retrieves all comments based on the options set in the construct. The
|
|
59
|
-
# returned as an array.
|
|
61
|
+
# Retrieves all comments based on the options set in the construct. The
|
|
62
|
+
# comments are returned as an array.
|
|
60
63
|
#
|
|
61
64
|
# @author Yorick Peterse
|
|
62
65
|
# @since 0.2.5
|
|
@@ -69,27 +72,29 @@ module Comments
|
|
|
69
72
|
entry = SectionEntry[@options[:entry]]
|
|
70
73
|
end
|
|
71
74
|
|
|
72
|
-
# Now that we have the entry and the section we can start retrieving
|
|
73
|
-
# comments.
|
|
75
|
+
# Now that we have the entry and the section we can start retrieving
|
|
76
|
+
# all the comments.
|
|
74
77
|
comments = Comment.filter(:section_entry_id => entry.id) \
|
|
75
78
|
.limit(@options[:limit], @options[:offset]) \
|
|
76
79
|
.all
|
|
77
80
|
|
|
78
|
-
# Don't bother with all code below this if/end if we don't want to
|
|
79
|
-
# markup of each comment.
|
|
81
|
+
# Don't bother with all code below this if/end if we don't want to
|
|
82
|
+
# convert the markup of each comment.
|
|
80
83
|
if @options[:markup] === false
|
|
81
84
|
return comments
|
|
82
85
|
end
|
|
83
86
|
|
|
84
|
-
# Get the section for the comments. This is required to determine what
|
|
85
|
-
# used for the comments.
|
|
87
|
+
# Get the section for the comments. This is required to determine what
|
|
88
|
+
# markup is used for the comments.
|
|
86
89
|
section = entry.section
|
|
87
90
|
|
|
88
91
|
# Convert the markup of each comment and convert each comment to a hash
|
|
89
92
|
comments.each_with_index do |comment, index|
|
|
90
93
|
user = comment.user
|
|
91
94
|
comment = comment.values
|
|
92
|
-
comment[:comment] = plugin(
|
|
95
|
+
comment[:comment] = plugin(
|
|
96
|
+
:markup, section.comment_format, comment[:comment]
|
|
97
|
+
)
|
|
93
98
|
|
|
94
99
|
# Conver the userdata to a hash as well
|
|
95
100
|
comment[:user] = {}
|
|
@@ -1,57 +1,64 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
f.input_hidden(:csrf_token, get_csrf_token)
|
|
6
|
-
f.input_hidden(:id , @comment.id)
|
|
1
|
+
<article>
|
|
2
|
+
<header>
|
|
3
|
+
<h1>#{get_breadcrumbs}</h1>
|
|
4
|
+
</header>
|
|
7
5
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
6
|
+
#{
|
|
7
|
+
form_for(
|
|
8
|
+
@comment,
|
|
9
|
+
:method => :post,
|
|
10
|
+
:action => Comments::Controller::Comments.r(:save),
|
|
11
|
+
:id => :comment_form
|
|
12
|
+
) do |f|
|
|
13
|
+
f.input_hidden(:csrf_token, get_csrf_token)
|
|
14
|
+
f.input_hidden(:id , @comment.id)
|
|
15
|
+
|
|
16
|
+
if !@comment.user
|
|
17
|
+
name = @comment.name
|
|
18
|
+
website = @comment.website
|
|
19
|
+
email = @comment.email
|
|
20
|
+
else
|
|
21
|
+
name = @comment.user.name
|
|
22
|
+
website = @comment.user.website
|
|
23
|
+
email = @comment.user.email
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
f.input_text(
|
|
27
|
+
lang('comments.labels.name'),
|
|
28
|
+
:name,
|
|
29
|
+
:value => name,
|
|
30
|
+
:disabled => :disabled
|
|
31
|
+
)
|
|
24
32
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
33
|
+
f.input_text(
|
|
34
|
+
lang('comments.labels.website'),
|
|
35
|
+
:website,
|
|
36
|
+
:value => website
|
|
37
|
+
)
|
|
38
|
+
|
|
39
|
+
f.input_text(
|
|
40
|
+
lang('comments.labels.email'),
|
|
41
|
+
:email,
|
|
42
|
+
:value => email
|
|
43
|
+
)
|
|
44
|
+
|
|
45
|
+
f.select(
|
|
46
|
+
lang('comments.labels.status'),
|
|
47
|
+
:comment_status_id,
|
|
48
|
+
:values => Comments::Model::Comment.status_hash,
|
|
49
|
+
:selected => @comment.comment_status_id,
|
|
50
|
+
:size => 1
|
|
51
|
+
)
|
|
52
|
+
|
|
53
|
+
f.textarea(
|
|
54
|
+
lang('comments.labels.comment'),
|
|
55
|
+
:comment,
|
|
56
|
+
:rows => 10
|
|
57
|
+
)
|
|
58
|
+
|
|
59
|
+
f.g.div(:class => 'button') do
|
|
60
|
+
f.g.input(:type => 'submit', :value => lang('comments.buttons.save'))
|
|
61
|
+
end
|
|
54
62
|
end
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
}
|
|
63
|
+
}
|
|
64
|
+
</article>
|
|
@@ -2,15 +2,16 @@
|
|
|
2
2
|
<header>
|
|
3
3
|
<h1>#{get_breadcrumbs}</h1>
|
|
4
4
|
</header>
|
|
5
|
-
|
|
6
|
-
<form method="post" action="#{
|
|
5
|
+
|
|
6
|
+
<form method="post" action="#{Comments::Controller::Comments.r(:delete)}">
|
|
7
7
|
<input type="hidden" name="csrf_token" value="#{get_csrf_token}" />
|
|
8
|
-
|
|
8
|
+
|
|
9
9
|
<?r if @comments and !@comments.empty? ?>
|
|
10
|
-
|
|
10
|
+
|
|
11
|
+
<table>
|
|
11
12
|
<thead>
|
|
12
13
|
<?r if user_authorized?([:delete]) ?>
|
|
13
|
-
<th>
|
|
14
|
+
<th class="no_sort">
|
|
14
15
|
<input type="checkbox" />
|
|
15
16
|
</th>
|
|
16
17
|
<?r end ?>
|
|
@@ -23,31 +24,37 @@
|
|
|
23
24
|
<th>#{lang('comments.labels.website')}</th>
|
|
24
25
|
<th>#{lang('comments.labels.created_at')}</th>
|
|
25
26
|
</thead>
|
|
26
|
-
<tbody>
|
|
27
|
+
<tbody>
|
|
27
28
|
<?r @comments.each do |comment| ?>
|
|
28
29
|
<tr>
|
|
29
30
|
<?r if user_authorized?([:delete]) ?>
|
|
30
31
|
<td>
|
|
31
|
-
<input type="checkbox" name="comment_ids[]"
|
|
32
|
+
<input type="checkbox" name="comment_ids[]"
|
|
33
|
+
value="#{comment.id}" />
|
|
32
34
|
</td>
|
|
33
35
|
<?r end ?>
|
|
34
|
-
|
|
36
|
+
|
|
35
37
|
<td>#{comment.id}</td>
|
|
36
|
-
|
|
38
|
+
|
|
37
39
|
<?r if user_authorized?([:update]) ?>
|
|
38
40
|
<td>
|
|
39
|
-
#{
|
|
40
|
-
|
|
41
|
-
|
|
41
|
+
#{Comments::Controller::Comments.a(
|
|
42
|
+
comment.comment[0, 15].to_s + '...',
|
|
43
|
+
:edit,
|
|
44
|
+
comment.id
|
|
42
45
|
)}
|
|
43
46
|
</td>
|
|
44
47
|
<?r else ?>
|
|
45
48
|
<td>#{comment.comment[0, 15]}...</td>
|
|
46
49
|
<?r end ?>
|
|
47
|
-
|
|
50
|
+
|
|
48
51
|
<td>#{comment.section_entry.title}</td>
|
|
49
|
-
<td
|
|
50
|
-
|
|
52
|
+
<td>
|
|
53
|
+
#{lang(
|
|
54
|
+
"comments.labels.#{comment.comment_status.name}"
|
|
55
|
+
)}
|
|
56
|
+
</td>
|
|
57
|
+
|
|
51
58
|
<?r if !comment.user ?>
|
|
52
59
|
<td>#{comment.name}</td>
|
|
53
60
|
<td>#{comment.email}</td>
|
|
@@ -58,22 +65,30 @@
|
|
|
58
65
|
<td>#{user.email}</td>
|
|
59
66
|
<td>#{user.website}</td>
|
|
60
67
|
<?r end ?>
|
|
61
|
-
<td
|
|
68
|
+
<td>
|
|
69
|
+
#{comment.created_at.strftime(
|
|
70
|
+
session[:user].date_format
|
|
71
|
+
)}
|
|
72
|
+
</td>
|
|
62
73
|
</tr>
|
|
63
74
|
<?r end ?>
|
|
64
75
|
</tbody>
|
|
65
76
|
</table>
|
|
77
|
+
|
|
78
|
+
#{
|
|
79
|
+
if @comments.respond_to?(:navigation) and @comments.page_count > 1
|
|
80
|
+
@comments.navigation
|
|
81
|
+
end
|
|
82
|
+
}
|
|
83
|
+
|
|
66
84
|
<?r else ?>
|
|
67
85
|
<p>#{lang('comments.messages.no_comments')}</p>
|
|
68
86
|
<?r end ?>
|
|
69
|
-
|
|
70
|
-
<?r if user_authorized?([:delete]) and
|
|
71
|
-
<div class="
|
|
72
|
-
<
|
|
73
|
-
<input type="submit" value="#{lang('comments.buttons.delete')}" />
|
|
74
|
-
</div>
|
|
87
|
+
|
|
88
|
+
<?r if user_authorized?([:delete]) and !@comments.empty? ?>
|
|
89
|
+
<div class="button">
|
|
90
|
+
<input type="submit" value="#{lang('comments.buttons.delete')}" />
|
|
75
91
|
</div>
|
|
76
92
|
<?r end ?>
|
|
77
|
-
|
|
78
93
|
</form>
|
|
79
94
|
</article>
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
Sequel.migration do
|
|
2
|
+
# Updates the database with the changes specified in the block.
|
|
3
|
+
up do
|
|
4
|
+
create_table(:comment_statuses) do
|
|
5
|
+
primary_key :id
|
|
6
|
+
|
|
7
|
+
String :name, :null => false, :unique => true
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
# Get all the current comments so we can update the statuses
|
|
11
|
+
comments = Zen.database[:comments].all
|
|
12
|
+
|
|
13
|
+
# Replace the old status column
|
|
14
|
+
drop_column(:comments, :status)
|
|
15
|
+
|
|
16
|
+
alter_table(:comments) do
|
|
17
|
+
add_foreign_key(
|
|
18
|
+
:comment_status_id,
|
|
19
|
+
:comment_statuses,
|
|
20
|
+
:on_delete => :cascade,
|
|
21
|
+
:on_update => :cascade,
|
|
22
|
+
:key => :id
|
|
23
|
+
)
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
# Insert the possible statuses and migrate existing statuses over to the IDs
|
|
27
|
+
['open', 'closed', 'spam'].each do |status|
|
|
28
|
+
status_id = Zen.database[:comment_statuses].insert({:name => status})
|
|
29
|
+
|
|
30
|
+
comments.each do |comment|
|
|
31
|
+
if comment[:status] === status
|
|
32
|
+
Zen.database[:comments].filter(:id => comment[:id]) \
|
|
33
|
+
.update(:comment_status_id => status_id)
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
# Reverts the changes made in the up() block.
|
|
40
|
+
down do
|
|
41
|
+
statuses = {}
|
|
42
|
+
comments = Zen.database[:comments].all
|
|
43
|
+
|
|
44
|
+
Zen.database[:comment_statuses].all.each do |status|
|
|
45
|
+
statuses[status[:id]] = status[:name]
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
# Put the old columns back in place
|
|
49
|
+
drop_column(:comments, :comment_status_id)
|
|
50
|
+
add_column(:comments, :status, String, :default => 'closed')
|
|
51
|
+
|
|
52
|
+
# Put the old statuses back in place
|
|
53
|
+
comments.each do |comment|
|
|
54
|
+
Zen.database.filter(:id => comment[:id]) \
|
|
55
|
+
.update(:status => statuses[comment[:comment_status_id]])
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
drop_table(:comment_statuses)
|
|
59
|
+
end
|
|
60
|
+
end
|
|
@@ -1,30 +1,56 @@
|
|
|
1
|
+
# Update the helpers path for the controllers
|
|
2
|
+
Ramaze::HelpersHelper.options.paths.push(__DIR__('custom_fields'))
|
|
3
|
+
|
|
4
|
+
# Update the language path
|
|
5
|
+
Zen::Language.options.paths.push(__DIR__('custom_fields'))
|
|
6
|
+
|
|
7
|
+
# Load all models
|
|
8
|
+
require __DIR__('custom_fields/model/custom_field_method')
|
|
9
|
+
require __DIR__('custom_fields/model/custom_field_type')
|
|
1
10
|
require __DIR__('custom_fields/model/custom_field')
|
|
2
11
|
require __DIR__('custom_fields/model/custom_field_group')
|
|
3
12
|
require __DIR__('custom_fields/model/custom_field_value')
|
|
13
|
+
|
|
14
|
+
# Load all controllers
|
|
4
15
|
require __DIR__('custom_fields/controller/custom_field_groups')
|
|
5
16
|
require __DIR__('custom_fields/controller/custom_fields')
|
|
17
|
+
require __DIR__('custom_fields/controller/custom_field_types')
|
|
6
18
|
|
|
7
|
-
|
|
19
|
+
require __DIR__('custom_fields/blue_form_parameters')
|
|
20
|
+
|
|
21
|
+
# Load all the language files
|
|
8
22
|
Zen::Language.load('custom_fields')
|
|
9
23
|
Zen::Language.load('custom_field_groups')
|
|
24
|
+
Zen::Language.load('custom_field_types')
|
|
10
25
|
|
|
26
|
+
# Define the package
|
|
11
27
|
Zen::Package.add do |p|
|
|
12
28
|
p.name = 'custom_fields'
|
|
13
29
|
p.author = 'Yorick Peterse'
|
|
14
30
|
p.url = 'http://yorickpeterse.com/'
|
|
15
|
-
p.about = "The Custom Fields module is used to manage custom fields
|
|
16
|
-
field groups."
|
|
31
|
+
p.about = "The Custom Fields module is used to manage custom fields
|
|
32
|
+
and custom field groups."
|
|
17
33
|
|
|
18
34
|
p.directory = __DIR__('custom_fields')
|
|
19
35
|
p.migration_dir = __DIR__('../migrations')
|
|
20
36
|
|
|
21
37
|
p.menu = [{
|
|
22
|
-
:title
|
|
23
|
-
:url
|
|
38
|
+
:title => lang('custom_fields.titles.index'),
|
|
39
|
+
:url => "admin/custom-field-groups",
|
|
40
|
+
:children => [
|
|
41
|
+
{
|
|
42
|
+
:title => lang('custom_field_types.titles.index'),
|
|
43
|
+
:url => 'admin/custom-field-types'
|
|
44
|
+
}
|
|
45
|
+
]
|
|
24
46
|
}]
|
|
25
47
|
|
|
26
48
|
p.controllers = {
|
|
27
|
-
lang('custom_fields.titles.index')
|
|
28
|
-
|
|
49
|
+
lang('custom_fields.titles.index') \
|
|
50
|
+
=> CustomFields::Controller::CustomFields,
|
|
51
|
+
lang('custom_field_groups.titles.index') \
|
|
52
|
+
=> CustomFields::Controller::CustomFieldGroups,
|
|
53
|
+
lang('custom_field_types.titles.index') \
|
|
54
|
+
=> CustomFields::Controller::CustomFieldTypes
|
|
29
55
|
}
|
|
30
56
|
end
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
#:nodoc:
|
|
2
|
+
module CustomFields
|
|
3
|
+
##
|
|
4
|
+
# The BlueFormParameters module is used to build an array of parameters for
|
|
5
|
+
# various BlueForm methods based on the type and method of a custom field.
|
|
6
|
+
#
|
|
7
|
+
# @author Yorick Peterse
|
|
8
|
+
# @since 0.2.8
|
|
9
|
+
#
|
|
10
|
+
module BlueFormParameters
|
|
11
|
+
class << self
|
|
12
|
+
##
|
|
13
|
+
# Generates the required parameters for
|
|
14
|
+
# Ramaze::Helper::BlueForm::Form#input_text.
|
|
15
|
+
#
|
|
16
|
+
# @author Yorick Peterse
|
|
17
|
+
# @since 0.2.8
|
|
18
|
+
# @param [CustomFields::Model::CustomField] field The custom field to use
|
|
19
|
+
# for filling in classes, values, etc.
|
|
20
|
+
# @param [CustomFields::Model::CustomFieldValue] field_value The
|
|
21
|
+
# value of the custom field for a given entry.
|
|
22
|
+
# @return [Array]
|
|
23
|
+
#
|
|
24
|
+
def input_text(field, field_value)
|
|
25
|
+
type = field.custom_field_type
|
|
26
|
+
value = field_value.value rescue nil
|
|
27
|
+
params = [
|
|
28
|
+
:input_text,
|
|
29
|
+
field.name,
|
|
30
|
+
"custom_field_value_#{field.id}",
|
|
31
|
+
{:value => value}
|
|
32
|
+
]
|
|
33
|
+
|
|
34
|
+
if !field.text_limit.nil?
|
|
35
|
+
params.last[:maxlength] = field.text_limit
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
if !field.description.nil?
|
|
39
|
+
params.last[:placeholder] = field.description
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
if !field.format.nil? and !field.format.empty? \
|
|
43
|
+
and type.allow_markup === true
|
|
44
|
+
params.last[:'data-format'] = field.format
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
if !type.html_class.nil? and !type.html_class.empty?
|
|
48
|
+
params.last[:class] = type.html_class
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
return params
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
##
|
|
55
|
+
# Generates the required parameters for
|
|
56
|
+
# Ramaze::Helper::BlueForm::Form#input_password.
|
|
57
|
+
#
|
|
58
|
+
# @author Yorick Peterse
|
|
59
|
+
# @since 0.2.8
|
|
60
|
+
# @see CustomFields::BlueFormParameters.input_text
|
|
61
|
+
#
|
|
62
|
+
def input_password(field, field_value)
|
|
63
|
+
params = input_text(field, field_value)
|
|
64
|
+
params[0] = :input_password
|
|
65
|
+
|
|
66
|
+
params.last.delete(:'data-format')
|
|
67
|
+
|
|
68
|
+
return params
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
##
|
|
72
|
+
# Generates the required parameters for
|
|
73
|
+
# Ramaze::Helper::BlueForm::Form#textarea.
|
|
74
|
+
#
|
|
75
|
+
# @author Yorick Peterse
|
|
76
|
+
# @since 0.2.8
|
|
77
|
+
# @see CustomFields::BlueFormParameters.input_text
|
|
78
|
+
#
|
|
79
|
+
def textarea(field, field_value)
|
|
80
|
+
params = input_text(field, field_value)
|
|
81
|
+
params[0] = :textarea
|
|
82
|
+
|
|
83
|
+
if !field.textarea_rows.nil?
|
|
84
|
+
params.last[:rows] = field.textarea_rows
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
# Remove the class "text]editor" if the field does not allow the text
|
|
88
|
+
# editor to be used.
|
|
89
|
+
if field.text_editor === false
|
|
90
|
+
params.last[:class].gsub!('text_editor', '')
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
return params
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
##
|
|
97
|
+
# Generates the required parameters for
|
|
98
|
+
# Ramaze::Helper::BlueForm::Form#input_radio.
|
|
99
|
+
#
|
|
100
|
+
# @author Yorick Peterse
|
|
101
|
+
# @since 0.2.8
|
|
102
|
+
# @see CustomFields::BlueFormParameters.input_text
|
|
103
|
+
#
|
|
104
|
+
def input_radio(field, field_value)
|
|
105
|
+
type = field.custom_field_type
|
|
106
|
+
value = field_value.value rescue nil
|
|
107
|
+
params = [
|
|
108
|
+
:input_radio,
|
|
109
|
+
field.name,
|
|
110
|
+
"custom_field_value_#{field.id}",
|
|
111
|
+
value,
|
|
112
|
+
{}
|
|
113
|
+
]
|
|
114
|
+
|
|
115
|
+
# Convert the string containing the possible values to a hash.
|
|
116
|
+
if !field.possible_values.nil? and !field.possible_values.empty?
|
|
117
|
+
params.last[:values] = {}
|
|
118
|
+
|
|
119
|
+
field.possible_values.split(/\n|\r\n/).each do |row|
|
|
120
|
+
if row.include?('|')
|
|
121
|
+
row = row.split('|', 2)
|
|
122
|
+
key, value = row[0], row[1]
|
|
123
|
+
else
|
|
124
|
+
key = value = row
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
params.last[:values][key] = value
|
|
128
|
+
end
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
return params
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
##
|
|
135
|
+
# Generates the required parameters for
|
|
136
|
+
# Ramaze::Helper::BlueForm::Form#input_checkbox.
|
|
137
|
+
#
|
|
138
|
+
# @author Yorick Peterse
|
|
139
|
+
# @since 0.2.8
|
|
140
|
+
# @see CustomFields::BlueFormParameters.input_radio
|
|
141
|
+
#
|
|
142
|
+
def input_checkbox(field, field_value)
|
|
143
|
+
params = input_radio(field, field_value)
|
|
144
|
+
params[0] = :input_checkbox
|
|
145
|
+
|
|
146
|
+
return params
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
##
|
|
150
|
+
# Generates the required parameters for
|
|
151
|
+
# Ramaze::Helper::BlueForm::Form#select.
|
|
152
|
+
#
|
|
153
|
+
# @author Yorick Peterse
|
|
154
|
+
# @since 0.2.8
|
|
155
|
+
# @see CustomFields::BlueFormParameters.input_text
|
|
156
|
+
#
|
|
157
|
+
def select(field, field_value)
|
|
158
|
+
type = field.custom_field_type
|
|
159
|
+
value = field_value.value rescue nil
|
|
160
|
+
params = [
|
|
161
|
+
:select,
|
|
162
|
+
field.name,
|
|
163
|
+
"custom_field_value_#{field.id}",
|
|
164
|
+
{:selected => value, :size => 1}
|
|
165
|
+
]
|
|
166
|
+
|
|
167
|
+
# Convert the string containing the possible values to a hash.
|
|
168
|
+
if !field.possible_values.nil? and !field.possible_values.empty?
|
|
169
|
+
params.last[:values] = {}
|
|
170
|
+
|
|
171
|
+
field.possible_values.split(/\n|\r\n/).each do |row|
|
|
172
|
+
if row.include?('|')
|
|
173
|
+
row = row.split('|', 2)
|
|
174
|
+
key, value = row[0], row[1]
|
|
175
|
+
else
|
|
176
|
+
key = value = row
|
|
177
|
+
end
|
|
178
|
+
|
|
179
|
+
params.last[:values][key] = value
|
|
180
|
+
end
|
|
181
|
+
end
|
|
182
|
+
|
|
183
|
+
return params
|
|
184
|
+
end
|
|
185
|
+
|
|
186
|
+
##
|
|
187
|
+
# Generates the required parameters for
|
|
188
|
+
# Ramaze::Helper::BlueForm::Form#select but allows multiple values to be
|
|
189
|
+
# selected.
|
|
190
|
+
#
|
|
191
|
+
# @author Yorick Peterse
|
|
192
|
+
# @since 0.2.8
|
|
193
|
+
# @see CustomFields::BlueFormParameters.select
|
|
194
|
+
#
|
|
195
|
+
def select_multiple(field, field_value)
|
|
196
|
+
params = select(field, field_value)
|
|
197
|
+
|
|
198
|
+
params.last[:multiple] = :multiple
|
|
199
|
+
params.last[:values] = params.last[:values].invert
|
|
200
|
+
|
|
201
|
+
params.last.delete(:size)
|
|
202
|
+
|
|
203
|
+
return params
|
|
204
|
+
end
|
|
205
|
+
|
|
206
|
+
private
|
|
207
|
+
end # class << self
|
|
208
|
+
end # BlueFormParameters
|
|
209
|
+
end # CustomFields
|