zen 0.1a → 0.2

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.
Files changed (414) hide show
  1. data/CHANGELOG.md +17 -0
  2. data/MANIFEST +161 -264
  3. data/README.md +114 -0
  4. data/ROADMAP.md +31 -0
  5. data/Thorfile +8 -0
  6. data/lib/zen.rb +13 -10
  7. data/lib/zen/base/database.rb +34 -28
  8. data/lib/zen/base/language.rb +174 -92
  9. data/lib/zen/base/logger.rb +8 -6
  10. data/lib/zen/base/package.rb +36 -29
  11. data/lib/zen/base/version.rb +2 -1
  12. data/lib/zen/bin/zen_binary.rb +7 -71
  13. data/lib/zen/controller/admin_controller.rb +31 -11
  14. data/lib/zen/controller/base_controller.rb +13 -13
  15. data/lib/zen/controller/frontend_controller.rb +2 -0
  16. data/lib/zen/controller/main_controller.rb +9 -8
  17. data/lib/zen/helper/acl.rb +4 -1
  18. data/lib/zen/helper/asset.rb +5 -3
  19. data/lib/zen/helper/breadcrumb.rb +10 -8
  20. data/lib/zen/helper/common.rb +28 -13
  21. data/lib/zen/language/en/zen_general.yml +31 -0
  22. data/lib/zen/language/en/zen_models.yml +13 -0
  23. data/lib/zen/layout/admin.xhtml +76 -68
  24. data/lib/zen/layout/login.xhtml +48 -42
  25. data/lib/zen/liquid/controller_behavior.rb +2 -0
  26. data/lib/zen/liquid/general.rb +60 -9
  27. data/lib/zen/liquid/redirect.rb +29 -6
  28. data/lib/zen/liquid/strip.rb +3 -1
  29. data/lib/zen/model/methods.rb +7 -5
  30. data/lib/zen/model/settings.rb +69 -18
  31. data/lib/zen/package/all.rb +7 -0
  32. data/lib/zen/{packages → package}/categories/lib/categories.rb +3 -3
  33. data/lib/zen/package/categories/lib/categories/controller/categories.rb +250 -0
  34. data/lib/zen/package/categories/lib/categories/controller/category_groups.rb +216 -0
  35. data/lib/zen/package/categories/lib/categories/language/en/categories.yml +35 -0
  36. data/lib/zen/package/categories/lib/categories/language/en/category_groups.yml +32 -0
  37. data/lib/zen/package/categories/lib/categories/liquid/categories.rb +16 -0
  38. data/lib/zen/{packages → package}/categories/lib/categories/model/category.rb +9 -9
  39. data/lib/zen/{packages → package}/categories/lib/categories/model/category_group.rb +6 -4
  40. data/lib/zen/package/categories/lib/categories/view/admin/categories/edit.xhtml +7 -0
  41. data/lib/zen/package/categories/lib/categories/view/admin/categories/form.xhtml +59 -0
  42. data/lib/zen/package/categories/lib/categories/view/admin/categories/index.xhtml +78 -0
  43. data/lib/zen/package/categories/lib/categories/view/admin/categories/new.xhtml +7 -0
  44. data/lib/zen/package/categories/lib/categories/view/admin/category-groups/edit.xhtml +7 -0
  45. data/lib/zen/package/categories/lib/categories/view/admin/category-groups/form.xhtml +31 -0
  46. data/lib/zen/package/categories/lib/categories/view/admin/category-groups/index.xhtml +85 -0
  47. data/lib/zen/package/categories/lib/categories/view/admin/category-groups/new.xhtml +7 -0
  48. data/lib/zen/{packages → package}/categories/migrations/.gitkeep +0 -0
  49. data/lib/zen/{packages → package}/categories/migrations/1295282303_create_schema.rb +3 -2
  50. data/lib/zen/{packages → package}/comments/lib/comments.rb +1 -1
  51. data/lib/zen/{packages → package}/comments/lib/comments/controller/comments.rb +81 -41
  52. data/lib/zen/{packages → package}/comments/lib/comments/controller/comments_form.rb +15 -13
  53. data/lib/zen/package/comments/lib/comments/language/en/comments.yml +42 -0
  54. data/lib/zen/{packages → package}/comments/lib/comments/liquid/comment_form.rb +43 -13
  55. data/lib/zen/{packages → package}/comments/lib/comments/liquid/comments.rb +10 -12
  56. data/lib/zen/{packages → package}/comments/lib/comments/model/comment.rb +24 -0
  57. data/lib/zen/package/comments/lib/comments/view/admin/comments/edit.xhtml +7 -0
  58. data/lib/zen/package/comments/lib/comments/view/admin/comments/form.xhtml +57 -0
  59. data/lib/zen/package/comments/lib/comments/view/admin/comments/index.xhtml +79 -0
  60. data/lib/zen/{packages → package}/comments/migrations/.gitkeep +0 -0
  61. data/lib/zen/{packages → package}/comments/migrations/1295282202_create_schema.rb +6 -4
  62. data/lib/zen/{packages → package}/custom_fields/lib/custom_fields.rb +2 -2
  63. data/lib/zen/package/custom_fields/lib/custom_fields/controller/custom_field_groups.rb +224 -0
  64. data/lib/zen/package/custom_fields/lib/custom_fields/controller/custom_fields.rb +259 -0
  65. data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_field_groups.yml +32 -0
  66. data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_fields.yml +52 -0
  67. data/lib/zen/{packages → package}/custom_fields/lib/custom_fields/model/custom_field.rb +12 -7
  68. data/lib/zen/{packages → package}/custom_fields/lib/custom_fields/model/custom_field_group.rb +14 -4
  69. data/lib/zen/{packages → package}/custom_fields/lib/custom_fields/model/custom_field_value.rb +4 -2
  70. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-groups/edit.xhtml +7 -0
  71. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-groups/form.xhtml +30 -0
  72. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-groups/index.xhtml +100 -0
  73. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-groups/new.xhtml +7 -0
  74. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-fields/edit.xhtml +7 -0
  75. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-fields/form.xhtml +107 -0
  76. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-fields/index.xhtml +84 -0
  77. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-fields/new.xhtml +7 -0
  78. data/lib/zen/{packages → package}/custom_fields/migrations/.gitkeep +0 -0
  79. data/lib/zen/{packages → package}/custom_fields/migrations/1295255665_create_schema.rb +8 -7
  80. data/lib/zen/package/menus/lib/menus.rb +59 -0
  81. data/lib/zen/package/menus/lib/menus/controller/menu_items.rb +244 -0
  82. data/lib/zen/package/menus/lib/menus/controller/menus.rb +231 -0
  83. data/lib/zen/package/menus/lib/menus/helper/menu_item.rb +93 -0
  84. data/lib/zen/package/menus/lib/menus/language/en/menu_items.yml +41 -0
  85. data/lib/zen/package/menus/lib/menus/language/en/menus.yml +39 -0
  86. data/lib/zen/package/menus/lib/menus/liquid/menus.rb +152 -0
  87. data/lib/zen/package/menus/lib/menus/model/menu.rb +38 -0
  88. data/lib/zen/package/menus/lib/menus/model/menu_item.rb +33 -0
  89. data/lib/zen/package/menus/lib/menus/view/admin/menu-items/edit.xhtml +7 -0
  90. data/lib/zen/package/menus/lib/menus/view/admin/menu-items/form.xhtml +64 -0
  91. data/lib/zen/package/menus/lib/menus/view/admin/menu-items/index.xhtml +84 -0
  92. data/lib/zen/package/menus/lib/menus/view/admin/menu-items/new.xhtml +7 -0
  93. data/lib/zen/package/menus/lib/menus/view/admin/menus/edit.xhtml +7 -0
  94. data/lib/zen/package/menus/lib/menus/view/admin/menus/form.xhtml +42 -0
  95. data/lib/zen/package/menus/lib/menus/view/admin/menus/index.xhtml +95 -0
  96. data/lib/zen/package/menus/lib/menus/view/admin/menus/new.xhtml +7 -0
  97. data/lib/zen/{packages/sections → package/menus}/migrations/.gitkeep +0 -0
  98. data/lib/zen/package/menus/migrations/1297184342_create_schema.rb +33 -0
  99. data/lib/zen/{packages → package}/sections/lib/sections.rb +0 -0
  100. data/lib/zen/{packages → package}/sections/lib/sections/controller/section_entries.rb +132 -68
  101. data/lib/zen/{packages → package}/sections/lib/sections/controller/sections.rb +96 -48
  102. data/lib/zen/package/sections/lib/sections/language/en/section_entries.yml +43 -0
  103. data/lib/zen/package/sections/lib/sections/language/en/sections.yml +48 -0
  104. data/lib/zen/{packages → package}/sections/lib/sections/liquid/section_entries.rb +55 -43
  105. data/lib/zen/{packages → package}/sections/lib/sections/liquid/sections.rb +9 -8
  106. data/lib/zen/package/sections/lib/sections/model/section.rb +62 -0
  107. data/lib/zen/package/sections/lib/sections/model/section_entry.rb +53 -0
  108. data/lib/zen/package/sections/lib/sections/view/admin/edit.xhtml +7 -0
  109. data/lib/zen/package/sections/lib/sections/view/admin/form.xhtml +107 -0
  110. data/lib/zen/package/sections/lib/sections/view/admin/index.xhtml +93 -0
  111. data/lib/zen/package/sections/lib/sections/view/admin/new.xhtml +7 -0
  112. data/lib/zen/package/sections/lib/sections/view/admin/section-entries/edit.xhtml +7 -0
  113. data/lib/zen/package/sections/lib/sections/view/admin/section-entries/form.xhtml +233 -0
  114. data/lib/zen/package/sections/lib/sections/view/admin/section-entries/index.xhtml +82 -0
  115. data/lib/zen/package/sections/lib/sections/view/admin/section-entries/new.xhtml +7 -0
  116. data/lib/zen/{packages/settings → package/sections}/migrations/.gitkeep +0 -0
  117. data/lib/zen/{packages → package}/sections/migrations/1295251836_create_schema.rb +6 -6
  118. data/lib/zen/{packages → package}/settings/lib/settings.rb +0 -0
  119. data/lib/zen/{packages → package}/settings/lib/settings/controller/settings.rb +33 -24
  120. data/lib/zen/package/settings/lib/settings/language/en/settings.yml +26 -0
  121. data/lib/zen/{packages → package}/settings/lib/settings/liquid/setting.rb +5 -3
  122. data/lib/zen/package/settings/lib/settings/model/setting.rb +113 -0
  123. data/lib/zen/package/settings/lib/settings/view/admin/settings/index.xhtml +111 -0
  124. data/lib/zen/{packages/users → package/settings}/migrations/.gitkeep +0 -0
  125. data/lib/zen/{packages → package}/settings/migrations/1295597111_create_schema.rb +2 -2
  126. data/lib/zen/package/settings/migrations/1299538742_add_language_key.rb +62 -0
  127. data/lib/zen/{packages → package}/users/lib/users.rb +6 -2
  128. data/lib/zen/package/users/lib/users/controller/access_rules.rb +238 -0
  129. data/lib/zen/package/users/lib/users/controller/user_groups.rb +217 -0
  130. data/lib/zen/{packages → package}/users/lib/users/controller/users.rb +115 -57
  131. data/lib/zen/package/users/lib/users/language/en/access_rules.yml +35 -0
  132. data/lib/zen/package/users/lib/users/language/en/user_groups.yml +31 -0
  133. data/lib/zen/package/users/lib/users/language/en/users.yml +50 -0
  134. data/lib/zen/{packages → package}/users/lib/users/liquid/user.rb +8 -6
  135. data/lib/zen/{packages → package}/users/lib/users/liquid/users.rb +5 -3
  136. data/lib/zen/{packages → package}/users/lib/users/model/access_rule.rb +11 -3
  137. data/lib/zen/{packages → package}/users/lib/users/model/user.rb +5 -1
  138. data/lib/zen/{packages → package}/users/lib/users/model/user_group.rb +6 -3
  139. data/lib/zen/package/users/lib/users/public/admin/js/users/access_rules.js +42 -0
  140. data/lib/zen/package/users/lib/users/view/admin/access-rules/edit.xhtml +7 -0
  141. data/lib/zen/package/users/lib/users/view/admin/access-rules/form.xhtml +108 -0
  142. data/lib/zen/package/users/lib/users/view/admin/access-rules/index.xhtml +93 -0
  143. data/lib/zen/package/users/lib/users/view/admin/access-rules/new.xhtml +7 -0
  144. data/lib/zen/package/users/lib/users/view/admin/user-groups/edit.xhtml +7 -0
  145. data/lib/zen/package/users/lib/users/view/admin/user-groups/form.xhtml +37 -0
  146. data/lib/zen/package/users/lib/users/view/admin/user-groups/index.xhtml +76 -0
  147. data/lib/zen/package/users/lib/users/view/admin/user-groups/new.xhtml +7 -0
  148. data/lib/zen/package/users/lib/users/view/admin/users/edit.xhtml +7 -0
  149. data/lib/zen/package/users/lib/users/view/admin/users/form.xhtml +53 -0
  150. data/lib/zen/package/users/lib/users/view/admin/users/index.xhtml +81 -0
  151. data/lib/zen/package/users/lib/users/view/admin/users/login.xhtml +27 -0
  152. data/lib/zen/package/users/lib/users/view/admin/users/new.xhtml +7 -0
  153. data/{pkg → lib/zen/package/users/migrations}/.gitkeep +0 -0
  154. data/lib/zen/{packages → package}/users/migrations/1295281013_create_schema.rb +2 -2
  155. data/lib/zen/public/admin/css/boilerplate.css +62 -60
  156. data/lib/zen/public/admin/css/buttons.css +46 -0
  157. data/lib/zen/public/admin/css/datepicker.css +163 -0
  158. data/lib/zen/public/admin/css/editor.css +91 -0
  159. data/lib/zen/public/admin/css/forms.css +68 -0
  160. data/lib/zen/public/admin/css/general.css +34 -419
  161. data/lib/zen/public/admin/css/grid.css +26 -26
  162. data/lib/zen/public/admin/css/layout.css +73 -62
  163. data/lib/zen/public/admin/css/modals.css +63 -0
  164. data/lib/zen/public/admin/css/notifications.css +84 -0
  165. data/lib/zen/public/admin/css/tables.css +71 -0
  166. data/lib/zen/public/admin/css/tabs.css +53 -0
  167. data/lib/zen/public/admin/js/mootools/more.js +139 -51
  168. data/lib/zen/public/admin/js/vendor/datepicker/Picker.Attach.js +137 -0
  169. data/lib/zen/public/admin/js/vendor/datepicker/Picker.Date.js +576 -0
  170. data/lib/zen/public/admin/js/vendor/datepicker/Picker.js +291 -0
  171. data/lib/zen/public/admin/js/vendor/datepicker/README.md +325 -0
  172. data/lib/zen/public/admin/js/vendor/datepicker/locale.js +16 -0
  173. data/lib/zen/public/admin/js/zen/editor/base.js +173 -183
  174. data/lib/zen/public/admin/js/zen/editor/drivers/html.js +74 -89
  175. data/lib/zen/public/admin/js/zen/editor/drivers/markdown.js +72 -87
  176. data/lib/zen/public/admin/js/zen/editor/drivers/textile.js +72 -87
  177. data/lib/zen/public/admin/js/zen/init.js +65 -51
  178. data/lib/zen/public/admin/js/zen/modal.js +108 -121
  179. data/lib/zen/public/admin/js/zen/notification.js +163 -165
  180. data/lib/zen/public/admin/js/zen/tabs.js +203 -210
  181. data/lib/zen/task/build.rb +123 -0
  182. data/lib/zen/task/clean.rb +46 -0
  183. data/lib/zen/task/db.rb +120 -0
  184. data/lib/zen/task/package.rb +82 -0
  185. data/lib/zen/task/proto.rb +116 -0
  186. data/{LICENSE → license.txt} +2 -2
  187. data/proto/app/Thorfile +4 -0
  188. data/proto/app/config/middlewares.rb +3 -3
  189. data/proto/app/config/requires.rb +1 -6
  190. data/proto/app/start.rb +5 -10
  191. data/{lib/zen/packages/settings → proto/package}/LICENSE +0 -0
  192. data/{lib/zen/packages/categories → proto/package}/README.textile +0 -0
  193. data/proto/package/lib/package.rb +41 -0
  194. data/proto/{module/lib/module → package/lib/package}/controller/controllers.rb +3 -2
  195. data/proto/{module/lib/module → package/lib/package}/language/en/languages.rb +0 -0
  196. data/proto/{module/lib/module → package/lib/package}/model/model.rb +0 -0
  197. data/proto/{module/lib/module/view/admin → package/lib/package/view/admin/package}/edit.xhtml +0 -0
  198. data/proto/{module/lib/module/view/admin → package/lib/package/view/admin/package}/form.xhtml +0 -0
  199. data/proto/{module/lib/module/view/admin → package/lib/package/view/admin/package}/index.xhtml +0 -0
  200. data/proto/{module/lib/module/view/admin → package/lib/package/view/admin/package}/new.xhtml +0 -0
  201. data/proto/{module → package}/migrations/.gitkeep +0 -0
  202. metadata +199 -280
  203. data/README.textile +0 -42
  204. data/Rakefile +0 -6
  205. data/doc/Categories.html +0 -93
  206. data/doc/Categories/Controllers.html +0 -93
  207. data/doc/Categories/Controllers/Categories.html +0 -995
  208. data/doc/Categories/Controllers/CategoryGroups.html +0 -878
  209. data/doc/Categories/Models.html +0 -97
  210. data/doc/Categories/Models/Category.html +0 -269
  211. data/doc/Categories/Models/CategoryGroup.html +0 -231
  212. data/doc/Comments.html +0 -93
  213. data/doc/Comments/Controllers.html +0 -93
  214. data/doc/Comments/Controllers/Comments.html +0 -797
  215. data/doc/Comments/Controllers/CommentsForm.html +0 -487
  216. data/doc/Comments/Liquid.html +0 -93
  217. data/doc/Comments/Liquid/CommentForm.html +0 -522
  218. data/doc/Comments/Liquid/Comments.html +0 -543
  219. data/doc/Comments/Models.html +0 -95
  220. data/doc/Comments/Models/Comment.html +0 -260
  221. data/doc/CustomFields.html +0 -93
  222. data/doc/CustomFields/Controllers.html +0 -93
  223. data/doc/CustomFields/Controllers/CustomFieldGroups.html +0 -902
  224. data/doc/CustomFields/Controllers/CustomFields.html +0 -974
  225. data/doc/CustomFields/Models.html +0 -97
  226. data/doc/CustomFields/Models/CustomField.html +0 -272
  227. data/doc/CustomFields/Models/CustomFieldGroup.html +0 -259
  228. data/doc/CustomFields/Models/CustomFieldValue.html +0 -154
  229. data/doc/Ramaze.html +0 -93
  230. data/doc/Ramaze/Helper.html +0 -93
  231. data/doc/Ramaze/Helper/ACL.html +0 -531
  232. data/doc/Ramaze/Helper/Asset.html +0 -617
  233. data/doc/Ramaze/Helper/Breadcrumb.html +0 -411
  234. data/doc/Ramaze/Helper/Common.html +0 -738
  235. data/doc/Sections.html +0 -93
  236. data/doc/Sections/Controllers.html +0 -93
  237. data/doc/Sections/Controllers/SectionEntries.html +0 -1100
  238. data/doc/Sections/Controllers/Sections.html +0 -953
  239. data/doc/Sections/Liquid.html +0 -93
  240. data/doc/Sections/Liquid/SectionEntries.html +0 -674
  241. data/doc/Sections/Liquid/Sections.html +0 -494
  242. data/doc/Sections/Models.html +0 -97
  243. data/doc/Sections/Models/Section.html +0 -272
  244. data/doc/Sections/Models/SectionEntry.html +0 -264
  245. data/doc/Sequel.html +0 -91
  246. data/doc/Sequel/Model.html +0 -243
  247. data/doc/Settings.html +0 -93
  248. data/doc/Settings/Controllers.html +0 -91
  249. data/doc/Settings/Controllers/Settings.html +0 -565
  250. data/doc/Settings/Liquid.html +0 -91
  251. data/doc/Settings/Liquid/Setting.html +0 -426
  252. data/doc/Settings/Models.html +0 -95
  253. data/doc/Settings/Models/Setting.html +0 -293
  254. data/doc/Users.html +0 -93
  255. data/doc/Users/Controllers.html +0 -93
  256. data/doc/Users/Controllers/AccessRules.html +0 -904
  257. data/doc/Users/Controllers/UserGroups.html +0 -879
  258. data/doc/Users/Controllers/Users.html +0 -1124
  259. data/doc/Users/Liquid.html +0 -93
  260. data/doc/Users/Liquid/User.html +0 -480
  261. data/doc/Users/Liquid/Users.html +0 -495
  262. data/doc/Users/Models.html +0 -97
  263. data/doc/Users/Models/AccessRule.html +0 -257
  264. data/doc/Users/Models/User.html +0 -649
  265. data/doc/Users/Models/UserGroup.html +0 -267
  266. data/doc/Zen.html +0 -391
  267. data/doc/Zen/Bin.html +0 -113
  268. data/doc/Zen/Bin/Base.html +0 -727
  269. data/doc/Zen/Controllers.html +0 -115
  270. data/doc/Zen/Controllers/AdminController.html +0 -298
  271. data/doc/Zen/Controllers/BaseController.html +0 -272
  272. data/doc/Zen/Controllers/FrontendController.html +0 -164
  273. data/doc/Zen/Controllers/MainController.html +0 -421
  274. data/doc/Zen/Database.html +0 -498
  275. data/doc/Zen/Language.html +0 -660
  276. data/doc/Zen/Liquid.html +0 -117
  277. data/doc/Zen/Liquid/ControllerBehavior.html +0 -448
  278. data/doc/Zen/Liquid/General.html +0 -444
  279. data/doc/Zen/Liquid/Redirect.html +0 -435
  280. data/doc/Zen/Liquid/Strip.html +0 -447
  281. data/doc/Zen/Logger.html +0 -393
  282. data/doc/Zen/Package.html +0 -909
  283. data/doc/_index.html +0 -724
  284. data/doc/class_list.html +0 -36
  285. data/doc/css/common.css +0 -1
  286. data/doc/css/full_list.css +0 -53
  287. data/doc/css/style.css +0 -310
  288. data/doc/file.README.html +0 -86
  289. data/doc/file_list.html +0 -38
  290. data/doc/frames.html +0 -13
  291. data/doc/index.html +0 -86
  292. data/doc/js/app.js +0 -203
  293. data/doc/js/full_list.js +0 -149
  294. data/doc/js/jquery.js +0 -154
  295. data/doc/method_list.html +0 -1139
  296. data/doc/top-level-namespace.html +0 -88
  297. data/lib/zen/language/en/zen_general.rb +0 -21
  298. data/lib/zen/language/en/zen_models.rb +0 -39
  299. data/lib/zen/packages/categories/LICENSE +0 -19
  300. data/lib/zen/packages/categories/lib/categories/controller/categories.rb +0 -202
  301. data/lib/zen/packages/categories/lib/categories/controller/category_groups.rb +0 -173
  302. data/lib/zen/packages/categories/lib/categories/language/en/categories.rb +0 -38
  303. data/lib/zen/packages/categories/lib/categories/language/en/category_groups.rb +0 -37
  304. data/lib/zen/packages/categories/lib/categories/view/admin/categories/edit.xhtml +0 -7
  305. data/lib/zen/packages/categories/lib/categories/view/admin/categories/form.xhtml +0 -36
  306. data/lib/zen/packages/categories/lib/categories/view/admin/categories/index.xhtml +0 -70
  307. data/lib/zen/packages/categories/lib/categories/view/admin/categories/new.xhtml +0 -7
  308. data/lib/zen/packages/categories/lib/categories/view/admin/category_groups/edit.xhtml +0 -7
  309. data/lib/zen/packages/categories/lib/categories/view/admin/category_groups/form.xhtml +0 -18
  310. data/lib/zen/packages/categories/lib/categories/view/admin/category_groups/index.xhtml +0 -72
  311. data/lib/zen/packages/categories/lib/categories/view/admin/category_groups/new.xhtml +0 -7
  312. data/lib/zen/packages/comments/LICENSE +0 -19
  313. data/lib/zen/packages/comments/README.textile +0 -0
  314. data/lib/zen/packages/comments/lib/comments/language/en/comments.rb +0 -52
  315. data/lib/zen/packages/comments/lib/comments/view/admin/comments/edit.xhtml +0 -7
  316. data/lib/zen/packages/comments/lib/comments/view/admin/comments/form.xhtml +0 -31
  317. data/lib/zen/packages/comments/lib/comments/view/admin/comments/index.xhtml +0 -74
  318. data/lib/zen/packages/comments/migrations/1296949631_add_defensio_signature.rb +0 -11
  319. data/lib/zen/packages/custom_fields/LICENSE +0 -19
  320. data/lib/zen/packages/custom_fields/README.textile +0 -0
  321. data/lib/zen/packages/custom_fields/lib/custom_fields/controller/custom_field_groups.rb +0 -179
  322. data/lib/zen/packages/custom_fields/lib/custom_fields/controller/custom_fields.rb +0 -194
  323. data/lib/zen/packages/custom_fields/lib/custom_fields/language/en/custom_field_groups.rb +0 -45
  324. data/lib/zen/packages/custom_fields/lib/custom_fields/language/en/custom_fields.rb +0 -64
  325. data/lib/zen/packages/custom_fields/lib/custom_fields/view/admin/custom_field_groups/edit.xhtml +0 -7
  326. data/lib/zen/packages/custom_fields/lib/custom_fields/view/admin/custom_field_groups/form.xhtml +0 -18
  327. data/lib/zen/packages/custom_fields/lib/custom_fields/view/admin/custom_field_groups/index.xhtml +0 -88
  328. data/lib/zen/packages/custom_fields/lib/custom_fields/view/admin/custom_field_groups/new.xhtml +0 -7
  329. data/lib/zen/packages/custom_fields/lib/custom_fields/view/admin/custom_fields/edit.xhtml +0 -7
  330. data/lib/zen/packages/custom_fields/lib/custom_fields/view/admin/custom_fields/form.xhtml +0 -50
  331. data/lib/zen/packages/custom_fields/lib/custom_fields/view/admin/custom_fields/index.xhtml +0 -75
  332. data/lib/zen/packages/custom_fields/lib/custom_fields/view/admin/custom_fields/new.xhtml +0 -7
  333. data/lib/zen/packages/sections/LICENSE +0 -19
  334. data/lib/zen/packages/sections/README.textile +0 -43
  335. data/lib/zen/packages/sections/lib/sections/language/en/section_entries.rb +0 -58
  336. data/lib/zen/packages/sections/lib/sections/language/en/sections.rb +0 -63
  337. data/lib/zen/packages/sections/lib/sections/model/section.rb +0 -43
  338. data/lib/zen/packages/sections/lib/sections/model/section_entry.rb +0 -43
  339. data/lib/zen/packages/sections/lib/sections/view/admin/edit.xhtml +0 -7
  340. data/lib/zen/packages/sections/lib/sections/view/admin/form.xhtml +0 -54
  341. data/lib/zen/packages/sections/lib/sections/view/admin/index.xhtml +0 -77
  342. data/lib/zen/packages/sections/lib/sections/view/admin/new.xhtml +0 -7
  343. data/lib/zen/packages/sections/lib/sections/view/admin/section_entries/edit.xhtml +0 -7
  344. data/lib/zen/packages/sections/lib/sections/view/admin/section_entries/form.xhtml +0 -147
  345. data/lib/zen/packages/sections/lib/sections/view/admin/section_entries/index.xhtml +0 -74
  346. data/lib/zen/packages/sections/lib/sections/view/admin/section_entries/new.xhtml +0 -7
  347. data/lib/zen/packages/sections/migrations/1296335671_userdata_section_entries.rb +0 -18
  348. data/lib/zen/packages/sections/migrations/1296936110_drop_comment_antispam.rb +0 -11
  349. data/lib/zen/packages/settings/README.textile +0 -0
  350. data/lib/zen/packages/settings/lib/settings/language/en/settings.rb +0 -56
  351. data/lib/zen/packages/settings/lib/settings/model/setting.rb +0 -38
  352. data/lib/zen/packages/settings/lib/settings/view/admin/settings/index.xhtml +0 -79
  353. data/lib/zen/packages/users/LICENSE +0 -19
  354. data/lib/zen/packages/users/README.textile +0 -0
  355. data/lib/zen/packages/users/lib/users/controller/access_rules.rb +0 -186
  356. data/lib/zen/packages/users/lib/users/controller/user_groups.rb +0 -171
  357. data/lib/zen/packages/users/lib/users/language/en/access_rules.rb +0 -49
  358. data/lib/zen/packages/users/lib/users/language/en/user_groups.rb +0 -42
  359. data/lib/zen/packages/users/lib/users/language/en/users.rb +0 -63
  360. data/lib/zen/packages/users/lib/users/public/admin/js/users/access_rules.js +0 -43
  361. data/lib/zen/packages/users/lib/users/view/admin/access_rules/edit.xhtml +0 -7
  362. data/lib/zen/packages/users/lib/users/view/admin/access_rules/form.xhtml +0 -68
  363. data/lib/zen/packages/users/lib/users/view/admin/access_rules/index.xhtml +0 -85
  364. data/lib/zen/packages/users/lib/users/view/admin/access_rules/new.xhtml +0 -7
  365. data/lib/zen/packages/users/lib/users/view/admin/user_groups/edit.xhtml +0 -7
  366. data/lib/zen/packages/users/lib/users/view/admin/user_groups/form.xhtml +0 -19
  367. data/lib/zen/packages/users/lib/users/view/admin/user_groups/index.xhtml +0 -69
  368. data/lib/zen/packages/users/lib/users/view/admin/user_groups/new.xhtml +0 -7
  369. data/lib/zen/packages/users/lib/users/view/admin/users/edit.xhtml +0 -7
  370. data/lib/zen/packages/users/lib/users/view/admin/users/form.xhtml +0 -25
  371. data/lib/zen/packages/users/lib/users/view/admin/users/index.xhtml +0 -73
  372. data/lib/zen/packages/users/lib/users/view/admin/users/login.xhtml +0 -22
  373. data/lib/zen/packages/users/lib/users/view/admin/users/new.xhtml +0 -7
  374. data/lib/zen/tasks.rb +0 -6
  375. data/proto/app/Rakefile +0 -2
  376. data/proto/module/LICENSE +0 -0
  377. data/proto/module/README.textile +0 -0
  378. data/proto/module/lib/module.rb +0 -15
  379. data/spec/javascript/css/base.css +0 -177
  380. data/spec/javascript/css/style.css +0 -204
  381. data/spec/javascript/css/typography.css +0 -70
  382. data/spec/javascript/editor/index.html +0 -65
  383. data/spec/javascript/images/close.png +0 -0
  384. data/spec/javascript/images/info.png +0 -0
  385. data/spec/javascript/js/editor.js +0 -16
  386. data/spec/javascript/js/modal.js +0 -12
  387. data/spec/javascript/js/namespace.js +0 -2
  388. data/spec/javascript/js/notification.js +0 -43
  389. data/spec/javascript/js/tabs.js +0 -8
  390. data/spec/javascript/modal/index.html +0 -45
  391. data/spec/javascript/notification/index.html +0 -48
  392. data/spec/javascript/tabs/index.html +0 -73
  393. data/spec/javascript/tabs/tab_1.html +0 -1
  394. data/spec/javascript/tabs/tab_2.html +0 -1
  395. data/spec/zen/base/language.rb +0 -31
  396. data/spec/zen/base/logger.rb +0 -34
  397. data/spec/zen/base/package.rb +0 -47
  398. data/spec/zen/config/database.rb +0 -8
  399. data/spec/zen/helper/asset.rb +0 -26
  400. data/spec/zen/helper/breadcrumb.rb +0 -24
  401. data/spec/zen/language/en/general.rb +0 -4
  402. data/spec/zen/language/nl/general.rb +0 -4
  403. data/spec/zen/liquid/general.rb +0 -42
  404. data/spec/zen/logs/.gitkeep +0 -0
  405. data/spec/zen/spec.rb +0 -9
  406. data/spec/zen/spec_database.db +0 -0
  407. data/tasks/bacon.rake +0 -99
  408. data/tasks/build.rake +0 -72
  409. data/tasks/clean.rake +0 -18
  410. data/tasks/db.rake +0 -81
  411. data/tasks/doc.rake +0 -5
  412. data/tasks/extension.rake +0 -65
  413. data/tasks/proto.rake +0 -37
  414. data/tasks/theme.rake +0 -63
@@ -0,0 +1,82 @@
1
+ <article>
2
+ <header>
3
+ <h1>#{get_breadcrumbs}</h1>
4
+ </header>
5
+
6
+ <form method="post" action="#{@form_delete_url}">
7
+ <input type="hidden" name="csrf_token" value="#{get_csrf_token}" />
8
+
9
+ <?r if @entries and !@entries.empty? ?>
10
+
11
+ <table class="table">
12
+ <thead>
13
+ <tr>
14
+ <?r if user_authorized?([:delete]) ?>
15
+ <th>
16
+ <input type="checkbox" />
17
+ </th>
18
+ <?r end ?>
19
+
20
+ <th>#{lang('section_entries.labels.id')}</th>
21
+ <th>#{lang('section_entries.labels.title')}</th>
22
+ <th>#{lang('section_entries.labels.slug')}</th>
23
+ <th>#{lang('section_entries.labels.status')}</th>
24
+ <th>#{lang('section_entries.labels.created_at')}</th>
25
+ <th>#{lang('section_entries.labels.updated_at')}</th>
26
+ </tr>
27
+ </thead>
28
+ <tbody>
29
+ <?r @entries.each do |entry| ?>
30
+ <tr>
31
+ <?r if user_authorized?([:delete]) ?>
32
+ <td>
33
+ <input type="checkbox" name="section_entry_ids[]" value="#{entry.id}" />
34
+ </td>
35
+ <?r end ?>
36
+
37
+ <td>#{entry.id}</td>
38
+
39
+ <?r if user_authorized?([:update]) ?>
40
+ <td>
41
+ #{anchor_to(
42
+ entry.title,
43
+ Sections::Controllers::SectionEntries.r(:edit, @section_id, entry.id)
44
+ )}
45
+ </td>
46
+ <?r else ?>
47
+ <td>#{entry.title}</td>
48
+ <?r end ?>
49
+
50
+ <td>#{entry.slug}</td>
51
+ <td>#{@status_hash[entry.status]}</td>
52
+ <td>#{entry.created_at}</td>
53
+ <td>#{entry.updated_at}</td>
54
+ </tr>
55
+ <?r end ?>
56
+ </tbody>
57
+ </table>
58
+
59
+ <?r else ?>
60
+ <p>#{lang('section_entries.messages.no_entries')}</p>
61
+ <?r end ?>
62
+
63
+ <div class="clearfix">
64
+
65
+ <?r if user_authorized?([:create]) ?>
66
+ <div class="button">
67
+ #{anchor_to(
68
+ lang('section_entries.buttons.new'),
69
+ Sections::Controllers::SectionEntries.r(:new, @section_id)
70
+ )}
71
+ </div>
72
+ <?r end ?>
73
+
74
+ <?r if user_authorized?([:delete]) and @entries and !@entries.empty? ?>
75
+ <div class="button">
76
+ <input type="submit" value="#{lang('section_entries.buttons.delete')}" />
77
+ </div>
78
+ <?r end ?>
79
+ </div>
80
+ </form>
81
+
82
+ </article>
@@ -0,0 +1,7 @@
1
+ <article>
2
+ <header>
3
+ <h1>#{get_breadcrumbs}</h1>
4
+ </header>
5
+
6
+ #{render_partial :form}
7
+ </article>
@@ -10,20 +10,20 @@ Sequel.migration do
10
10
  TrueClass :comment_allow, :null => false, :default => true
11
11
  TrueClass :comment_require_account, :null => false, :default => false
12
12
  TrueClass :comment_moderate, :null => false, :default => false
13
- TrueClass :comment_antispam, :null => false, :default => true
14
- Enum :comment_format, :elements => ['plain', 'html', 'textile', 'markdown'], :null => false, :default => 'plain'
13
+ String :comment_format, :null => false, :default => 'plain'
15
14
  end
16
15
 
17
16
  create_table :section_entries do
18
17
  primary_key :id
19
18
 
20
- String :title , :default => 'Untitled'
21
- String :slug , :null => false, :unique => true
22
- Enum :status, :elements => ['published', 'draft'], :null => false, :default => 'draft'
19
+ String :title , :default => 'Untitled'
20
+ String :slug , :null => false, :index => true
21
+ String :status , :null => false, :default => 'draft'
23
22
  Time :created_at
24
23
  Time :updated_at
25
24
 
26
25
  foreign_key :section_id, :sections, :on_delete => :cascade, :on_update => :cascade, :key => :id
26
+ foreign_key :user_id , :users , :on_delete => :cascade, :on_update => :cascade, :key => :id
27
27
  end
28
28
  end
29
29
 
@@ -32,4 +32,4 @@ Sequel.migration do
32
32
  drop_table :sections
33
33
  end
34
34
 
35
- end
35
+ end
@@ -1,4 +1,6 @@
1
+ #:nodoc:
1
2
  module Settings
3
+ #:nodoc:
2
4
  module Controllers
3
5
  ##
4
6
  # Controller for managing settings. Each setting is saved as a separate
@@ -8,36 +10,38 @@ module Settings
8
10
  # @since 0.1
9
11
  #
10
12
  class Settings < Zen::Controllers::AdminController
11
- map "/admin/settings"
12
-
13
- trait :extension_identifier => 'com.zen.settings'
14
13
  include ::Settings::Models
14
+
15
+ map "/admin/settings"
16
+ trait :extension_identifier => 'com.zen.settings'
15
17
 
16
18
  before_all do
17
- csrf_protection :save, :delete do
18
- respond(@zen_general_lang.errors[:csrf], 401)
19
+ csrf_protection(:save, :delete) do
20
+ respond(lang('zen_general.errors.csrf'), 403)
19
21
  end
20
22
  end
21
23
 
22
24
  ##
23
25
  # Load our language packs, set the form URLs and define our page title.
24
26
  #
27
+ # This method loads the following language files:
28
+ #
29
+ # * settings
30
+ #
25
31
  # @author Yorick Peterse
26
32
  # @since 0.1
27
33
  #
28
34
  def initialize
29
35
  super
30
36
 
31
- @form_save_url = '/admin/settings/save'
32
- @settings_lang = Zen::Language.load 'settings'
37
+ @form_save_url = Settings.r(:save)
38
+
39
+ Zen::Language.load('settings')
33
40
 
34
41
  # Set the page title
35
42
  if !action.method.nil?
36
- method = action.method.to_sym
37
-
38
- if @settings_lang.titles.key? method
39
- @page_title = @settings_lang.titles[method]
40
- end
43
+ method = action.method.to_sym
44
+ @page_title = lang("settings.titles.#{method}") rescue nil
41
45
  end
42
46
  end
43
47
 
@@ -47,15 +51,20 @@ module Settings
47
51
  # the descriptions, names and possible values are stored in
48
52
  # the language packs that come with this module.
49
53
  #
54
+ # This method requires the following permissions:
55
+ #
56
+ # * read
57
+ # * update
58
+ #
50
59
  # @author Yorick Peterse
51
60
  # @since 0.1
52
61
  #
53
62
  def index
54
63
  if !user_authorized?([:read, :update])
55
- respond(@zen_general_lang.errors[:not_authorized], 403)
64
+ respond(lang('zen_general.errors.not_authorized'), 403)
56
65
  end
57
66
 
58
- set_breadcrumbs @settings_lang.titles[:index]
67
+ set_breadcrumbs(lang('settings.titles.index'))
59
68
 
60
69
  settings = Setting.all
61
70
  @settings = {}
@@ -75,33 +84,33 @@ module Settings
75
84
  # Saves the values of each setting. Since each setting
76
85
  # is a new row we'll have to loop through them and execute quite
77
86
  # a few queries.
87
+ #
88
+ # This method requires the following permissions:
89
+ #
90
+ # * update
78
91
  #
79
92
  # @author Yorick Peterse
80
93
  # @since 0.1
81
94
  #
82
95
  def save
83
96
  if !user_authorized?([:update])
84
- respond(@zen_general_lang.errors[:not_authorized], 403)
97
+ respond(lang('zen_general.errors.not_authorized'), 403)
85
98
  end
86
99
 
87
100
  post = request.params.dup
88
101
  post.delete('csrf_token')
89
-
90
- post.each do |key, value|
91
- post.delete(key) if value.empty?
92
- end
93
-
94
- flash_success = @settings_lang.success[:save]
95
- flash_error = @settings_lang.errors[:save]
102
+
103
+ flash_success = lang('settings.success.save')
104
+ flash_error = lang('settings.errors.save')
96
105
 
97
106
  begin
98
107
  post.each do |key, value|
99
108
  @setting = Setting[:key => key].update(:value => value)
100
109
  end
101
110
 
102
- notification(:success, @settings_lang.titles[:index], flash_success)
111
+ notification(:success, lang('settings.titles.index'), flash_success)
103
112
  rescue
104
- notification(:error, @settings_lang.titles[:index], flash_error)
113
+ notification(:error, lang('settings.titles.index'), flash_error)
105
114
 
106
115
  flash[:form_errors] = @setting.errors
107
116
  end
@@ -0,0 +1,26 @@
1
+ ---
2
+ titles:
3
+ index: 'Settings'
4
+
5
+ labels:
6
+ website_name : 'Website name'
7
+ website_description : 'Website description'
8
+ website_enabled : 'Website enabled'
9
+ language : 'Language'
10
+ default_section : 'Default section'
11
+ theme : 'Theme'
12
+ enable_antispam : 'Enable anti-spam'
13
+ defensio_key : 'Defensio API key'
14
+
15
+ tabs:
16
+ general : 'General'
17
+ security : 'Security'
18
+
19
+ buttons:
20
+ save: 'Save'
21
+
22
+ success:
23
+ save: 'The settings have been saved.'
24
+
25
+ errors:
26
+ save: 'The settings could not be saved.'
@@ -1,10 +1,12 @@
1
+ #:nodoc:
1
2
  module Settings
3
+ #:nodoc:
2
4
  module Liquid
3
5
  ##
4
6
  # Tag that can be used to retrieve the values of the given setting.
5
7
  # Using this tag couldn't be easier:
6
8
  #
7
- # bc. {% settings "website_name" %}
9
+ # {% settings "website_name" %}
8
10
  #
9
11
  # It's not required to specify quotes as setting keys don't contain
10
12
  # spaces but it's generally considered a good practice to do so anyway.
@@ -26,7 +28,7 @@ module Settings
26
28
  # @param [String] html The HTML inside the block.
27
29
  # @since 0.1
28
30
  #
29
- def initialize tag_name, key, markup
31
+ def initialize(tag_name = 'setting', key = '', markup = '')
30
32
  super
31
33
 
32
34
  @key = key.gsub('"', '').gsub("'", '')
@@ -38,7 +40,7 @@ module Settings
38
40
  # @author Yorick Peterse
39
41
  # @since 0.1
40
42
  #
41
- def render context
43
+ def render(context)
42
44
  setting = ::Settings::Models::Setting[:key => @key]
43
45
 
44
46
  if !setting.nil?
@@ -0,0 +1,113 @@
1
+ #:nodoc:
2
+ module Settings
3
+ #:nodoc:
4
+ module Models
5
+ ##
6
+ # Model that represents a single setting. This model is also used to retrieve
7
+ # all possible values for a certain settngs. This is done by calling a method
8
+ # that matches the format get_SETTING-NAME_values. For example, a setting named "theme"
9
+ # would result in a call to Settings::Models::Setting#get_theme_values.
10
+ #
11
+ # In order to add new method you'll have to monkey patch this model as following:
12
+ #
13
+ # class Setting < Sequel::Model
14
+ # def self.get_my_setting_values
15
+ # # Do something and return it...
16
+ # end
17
+ # end
18
+ #
19
+ # @author Yorick Peterse
20
+ # @since 0.1
21
+ # @todo Monkey patching a model in order to get possible values isn't the nicest way
22
+ # of solving this problem but it does allow for extra flexibility. It might be a good
23
+ # idea to refactor this and put it in it's own class/plugin/whatever.
24
+ #
25
+ class Setting < Sequel::Model
26
+ include ::Zen::Language
27
+
28
+ ##
29
+ # Retrieves all settings and returns them as a key/value hash.
30
+ #
31
+ # @author Yorick Peterse
32
+ # @since 0.1
33
+ # @return [Hash] key/value hash containing all settings and their values.
34
+ #
35
+ def self.get_settings
36
+ settings = {}
37
+
38
+ self.all.each do |s|
39
+ if s.value.nil?
40
+ value = s.default
41
+ else
42
+ value = s.value
43
+ end
44
+
45
+ settings[s.key.to_sym] = value
46
+ end
47
+
48
+ return settings
49
+ end
50
+
51
+ ##
52
+ # Generates the possible values for the setting "website_enabled".
53
+ #
54
+ # @author Yorick Peterse
55
+ # @since 0.2
56
+ # @return [Hash]
57
+ #
58
+ def self.get_website_enabled_values
59
+ hash = {
60
+ lang('zen_general.special.boolean_hash.true') => '1',
61
+ lang('zen_general.special.boolean_hash.false') => '0'
62
+ }
63
+
64
+ return hash
65
+ end
66
+
67
+ ##
68
+ # Generates the possible values for the setting "language".
69
+ #
70
+ # @author Yorick Peterse
71
+ # @since 0.2
72
+ # @return [Hash]
73
+ #
74
+ def self.get_language_values
75
+ return ::Zen.languages
76
+ end
77
+
78
+ ##
79
+ # Generates the possible values for the setting "default_section".
80
+ #
81
+ # @author Yorick Peterse
82
+ # @since 0.2
83
+ # @return [Hash]
84
+ #
85
+ def self.get_default_section_values
86
+ section_hash = {}
87
+
88
+ ::Sections::Models::Section.select(:name, :slug).each do |s|
89
+ section_hash[s.slug] = s.name
90
+ end
91
+
92
+ return section_hash
93
+ end
94
+
95
+ ##
96
+ # Generates the possible values for the setting "theme".
97
+ #
98
+ # @author Yorick Peterse
99
+ # @since 0.2
100
+ # @return [Hash]
101
+ #
102
+ def self.get_theme_values
103
+ theme_hash = {}
104
+
105
+ Zen::Package.themes.each do |ident, theme|
106
+ theme_hash[ident] = theme.name
107
+ end
108
+
109
+ return theme_hash
110
+ end
111
+ end
112
+ end
113
+ end
@@ -0,0 +1,111 @@
1
+ <article>
2
+ <header>
3
+ <h1>#{get_breadcrumbs}</h1>
4
+ </header>
5
+
6
+ <div class="tabs">
7
+ <ul>
8
+ <?r @settings.each do |group, items| ?>
9
+ <?r
10
+ begin
11
+ group_label = lang(items[0].language_group_key)
12
+ rescue
13
+ group_label = group
14
+ end
15
+ ?>
16
+ <li>
17
+ <a href="#group_#{group}">#{group_label}</a>
18
+ </li>
19
+ <?r end ?>
20
+ </ul>
21
+ </div>
22
+
23
+ #{
24
+ form_for(@settings, :method => :post, :action => @form_save_url, :id => :setting_form) do |f|
25
+ f.input_hidden(:csrf_token, get_csrf_token)
26
+
27
+ @settings.each do |group, items|
28
+
29
+ f.g.div(:id => "group_#{group}") do
30
+
31
+ items.each do |s|
32
+ # Get the label from the language pack
33
+ name = s.key.to_sym
34
+
35
+ begin
36
+ label = lang(s.language_key)
37
+ rescue
38
+ label = s.key
39
+ end
40
+
41
+ # Get the value from either the value or default getter
42
+ if s.value.nil?
43
+ value = s.default
44
+ else
45
+ value = s.value
46
+ end
47
+
48
+ # Get all possible values for the current setting from the language pack
49
+ begin
50
+ values = Settings::Models::Setting.send("get_#{s.key}_values")
51
+ rescue
52
+ values = {}
53
+ end
54
+
55
+ case s.type
56
+ when 'textbox'
57
+ f.input_text(
58
+ label,
59
+ name,
60
+ :value => value
61
+ )
62
+
63
+ when 'textarea'
64
+ f.textarea(
65
+ label,
66
+ name,
67
+ :value => value,
68
+ :rows => 8
69
+ )
70
+
71
+ when 'radio'
72
+ f.input_radio(
73
+ label,
74
+ name,
75
+ value,
76
+ :values => values
77
+ )
78
+
79
+ when 'checkbox'
80
+ f.input_checkbox(
81
+ label,
82
+ name,
83
+ value,
84
+ :values => values
85
+ )
86
+
87
+ when 'select'
88
+ f.select(
89
+ label,
90
+ name,
91
+ :values => values,
92
+ :size => 1,
93
+ :selected => value
94
+ )
95
+
96
+ end
97
+ end
98
+
99
+ end
100
+
101
+ end
102
+
103
+ f.g.div(:class => 'clearfix') do
104
+ f.g.div(:class => 'button') do
105
+ f.g.input(:type => 'submit', :value => lang('settings.buttons.save'))
106
+ end
107
+ end
108
+ end
109
+ }
110
+
111
+ </article>