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.
Files changed (303) hide show
  1. data/.gitignore +15 -0
  2. data/.mailmap +2 -0
  3. data/.rvmrc +2 -0
  4. data/.travis.yml +8 -3
  5. data/AUTHORS +1 -2
  6. data/CHANGELOG.md +48 -17
  7. data/README.md +44 -39
  8. data/Rakefile +4 -0
  9. data/bin/zen +5 -30
  10. data/lib/zen.rb +13 -19
  11. data/lib/zen/asset.rb +99 -64
  12. data/lib/zen/bin/create.rb +94 -0
  13. data/lib/zen/bin/runner.rb +118 -0
  14. data/lib/zen/controller/admin_controller.rb +52 -36
  15. data/lib/zen/controller/base_controller.rb +5 -5
  16. data/lib/zen/controller/frontend_controller.rb +7 -7
  17. data/lib/zen/controller/main_controller.rb +12 -10
  18. data/lib/zen/controller/preview.rb +15 -11
  19. data/lib/zen/helper/acl.rb +73 -53
  20. data/lib/zen/helper/blue_form_vendor.rb +689 -0
  21. data/lib/zen/helper/breadcrumb.rb +23 -19
  22. data/lib/zen/helper/message.rb +3 -3
  23. data/lib/zen/helper/theme.rb +18 -13
  24. data/lib/zen/language.rb +62 -58
  25. data/lib/zen/language/en/zen_general.yml +2 -4
  26. data/lib/zen/language/nl/zen_general.yml +2 -4
  27. data/lib/zen/layout/admin.xhtml +3 -12
  28. data/lib/zen/layout/login.xhtml +1 -6
  29. data/lib/zen/model/methods.rb +6 -6
  30. data/lib/zen/model/settings.rb +5 -4
  31. data/lib/zen/package.rb +47 -38
  32. data/lib/zen/package/all.rb +3 -5
  33. data/lib/zen/package/base.rb +7 -7
  34. data/lib/zen/package/categories/lib/categories.rb +8 -3
  35. data/lib/zen/package/categories/lib/categories/controller/categories.rb +81 -55
  36. data/lib/zen/package/categories/lib/categories/controller/category_groups.rb +45 -44
  37. data/lib/zen/package/categories/lib/categories/helper/category.rb +88 -0
  38. data/lib/zen/package/categories/lib/categories/language/en/categories.yml +5 -4
  39. data/lib/zen/package/categories/lib/categories/language/en/category_groups.yml +5 -4
  40. data/lib/zen/package/categories/lib/categories/language/nl/categories.yml +5 -4
  41. data/lib/zen/package/categories/lib/categories/language/nl/category_groups.yml +5 -4
  42. data/lib/zen/package/categories/lib/categories/model/category.rb +15 -13
  43. data/lib/zen/package/categories/lib/categories/model/category_group.rb +3 -3
  44. data/lib/zen/package/categories/lib/categories/plugin/categories.rb +36 -25
  45. data/lib/zen/package/categories/lib/categories/view/admin/categories/form.xhtml +49 -56
  46. data/lib/zen/package/categories/lib/categories/view/admin/categories/index.xhtml +48 -35
  47. data/lib/zen/package/categories/lib/categories/view/admin/category-groups/form.xhtml +36 -29
  48. data/lib/zen/package/categories/lib/categories/view/admin/category-groups/index.xhtml +42 -37
  49. data/lib/zen/package/comments/lib/comments.rb +4 -1
  50. data/lib/zen/package/comments/lib/comments/controller/comments.rb +39 -32
  51. data/lib/zen/package/comments/lib/comments/controller/comments_form.rb +45 -26
  52. data/lib/zen/package/comments/lib/comments/helper/comment.rb +35 -0
  53. data/lib/zen/package/comments/lib/comments/language/en/comments.yml +9 -7
  54. data/lib/zen/package/comments/lib/comments/language/nl/comments.yml +10 -8
  55. data/lib/zen/package/comments/lib/comments/model/comment.rb +31 -17
  56. data/lib/zen/package/comments/lib/comments/model/comment_status.rb +15 -0
  57. data/lib/zen/package/comments/lib/comments/plugin/anti_spam.rb +27 -18
  58. data/lib/zen/package/comments/lib/comments/plugin/comments.rb +25 -20
  59. data/lib/zen/package/comments/lib/comments/view/admin/comments/form.xhtml +61 -54
  60. data/lib/zen/package/comments/lib/comments/view/admin/comments/index.xhtml +38 -23
  61. data/lib/zen/package/comments/migrations/1308774099_comment_status.rb +60 -0
  62. data/lib/zen/package/custom_fields/lib/custom_fields.rb +33 -7
  63. data/lib/zen/package/custom_fields/lib/custom_fields/blue_form_parameters.rb +209 -0
  64. data/lib/zen/package/custom_fields/lib/custom_fields/controller/custom_field_groups.rb +50 -47
  65. data/lib/zen/package/custom_fields/lib/custom_fields/controller/custom_field_types.rb +215 -0
  66. data/lib/zen/package/custom_fields/lib/custom_fields/controller/custom_fields.rb +111 -73
  67. data/lib/zen/package/custom_fields/lib/custom_fields/helper/custom_field.rb +79 -0
  68. data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_field_groups.yml +20 -19
  69. data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_field_types.yml +40 -0
  70. data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_fields.yml +34 -32
  71. data/lib/zen/package/custom_fields/lib/custom_fields/language/nl/custom_field_groups.yml +5 -4
  72. data/lib/zen/package/custom_fields/lib/custom_fields/language/nl/custom_field_types.yml +40 -0
  73. data/lib/zen/package/custom_fields/lib/custom_fields/language/nl/custom_fields.yml +18 -16
  74. data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field.rb +31 -11
  75. data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_method.rb +15 -0
  76. data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_type.rb +50 -0
  77. data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_value.rb +28 -7
  78. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-groups/form.xhtml +33 -28
  79. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-groups/index.xhtml +48 -46
  80. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-types/form.xhtml +61 -0
  81. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-types/index.xhtml +93 -0
  82. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-fields/form.xhtml +105 -99
  83. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-fields/index.xhtml +43 -39
  84. data/lib/zen/package/custom_fields/migrations/1295255665_create_schema.rb +47 -16
  85. data/lib/zen/package/custom_fields/migrations/1310659580_custom_field_types.rb +148 -0
  86. data/lib/zen/package/custom_fields/migrations/1311694920_rename_css_class.rb +11 -0
  87. data/lib/zen/package/menus/lib/menus/controller/menu_items.rb +40 -35
  88. data/lib/zen/package/menus/lib/menus/controller/menus.rb +47 -43
  89. data/lib/zen/package/menus/lib/menus/helper/{menu_item.rb → menu.rb} +42 -15
  90. data/lib/zen/package/menus/lib/menus/language/en/menu_items.yml +5 -5
  91. data/lib/zen/package/menus/lib/menus/language/en/menus.yml +9 -8
  92. data/lib/zen/package/menus/lib/menus/language/nl/menu_items.yml +8 -8
  93. data/lib/zen/package/menus/lib/menus/language/nl/menus.yml +11 -10
  94. data/lib/zen/package/menus/lib/menus/model/menu.rb +5 -5
  95. data/lib/zen/package/menus/lib/menus/model/menu_item.rb +6 -5
  96. data/lib/zen/package/menus/lib/menus/plugin/menus.rb +41 -43
  97. data/lib/zen/package/menus/lib/menus/view/admin/menu-items/form.xhtml +59 -63
  98. data/lib/zen/package/menus/lib/menus/view/admin/menu-items/index.xhtml +35 -30
  99. data/lib/zen/package/menus/lib/menus/view/admin/menus/form.xhtml +46 -37
  100. data/lib/zen/package/menus/lib/menus/view/admin/menus/index.xhtml +37 -37
  101. data/lib/zen/package/menus/migrations/1297184342_create_schema.rb +5 -5
  102. data/lib/zen/package/menus/migrations/1308671733_rename_order_column.rb +11 -0
  103. data/lib/zen/package/menus/migrations/1311695030_rename_css_class.rb +17 -0
  104. data/lib/zen/package/sections/lib/sections.rb +18 -11
  105. data/lib/zen/package/sections/lib/sections/controller/section_entries.rb +115 -109
  106. data/lib/zen/package/sections/lib/sections/controller/sections.rb +72 -50
  107. data/lib/zen/package/sections/lib/sections/helper/section.rb +53 -0
  108. data/lib/zen/package/sections/lib/sections/language/en/section_entries.yml +5 -4
  109. data/lib/zen/package/sections/lib/sections/language/en/sections.yml +5 -4
  110. data/lib/zen/package/sections/lib/sections/language/nl/section_entries.yml +5 -4
  111. data/lib/zen/package/sections/lib/sections/language/nl/sections.yml +5 -4
  112. data/lib/zen/package/sections/lib/sections/model/section.rb +17 -9
  113. data/lib/zen/package/sections/lib/sections/model/section_entry.rb +192 -13
  114. data/lib/zen/package/sections/lib/sections/model/section_entry_status.rb +13 -0
  115. data/lib/zen/package/sections/lib/sections/plugin/section_entries.rb +60 -39
  116. data/lib/zen/package/sections/lib/sections/plugin/sections.rb +14 -11
  117. data/lib/zen/package/sections/lib/sections/view/admin/form.xhtml +100 -97
  118. data/lib/zen/package/sections/lib/sections/view/admin/index.xhtml +41 -39
  119. data/lib/zen/package/sections/lib/sections/view/admin/section-entries/form.xhtml +95 -215
  120. data/lib/zen/package/sections/lib/sections/view/admin/section-entries/index.xhtml +48 -40
  121. data/lib/zen/package/sections/migrations/1308672298_use_id_for_default_section.rb +40 -0
  122. data/lib/zen/package/sections/migrations/1308813320_section_entry_statuses.rb +58 -0
  123. data/lib/zen/package/settings/lib/settings/controller/settings.rb +5 -8
  124. data/lib/zen/package/settings/lib/settings/model/setting.rb +2 -37
  125. data/lib/zen/package/settings/lib/settings/plugin/setting_base.rb +18 -1
  126. data/lib/zen/package/settings/lib/settings/plugin/settings.rb +13 -7
  127. data/lib/zen/package/settings/lib/settings/view/admin/settings/index.xhtml +2 -1
  128. data/lib/zen/package/users/lib/users.rb +3 -1
  129. data/lib/zen/package/users/lib/users/controller/access_rules.rb +77 -60
  130. data/lib/zen/package/users/lib/users/controller/user_groups.rb +41 -36
  131. data/lib/zen/package/users/lib/users/controller/users.rb +48 -42
  132. data/lib/zen/package/users/lib/users/helper/users.rb +72 -0
  133. data/lib/zen/package/users/lib/users/language/en/access_rules.yml +6 -5
  134. data/lib/zen/package/users/lib/users/language/en/user_groups.yml +5 -4
  135. data/lib/zen/package/users/lib/users/language/en/users.yml +1 -0
  136. data/lib/zen/package/users/lib/users/language/nl/access_rules.yml +5 -4
  137. data/lib/zen/package/users/lib/users/language/nl/user_groups.yml +5 -4
  138. data/lib/zen/package/users/lib/users/language/nl/users.yml +1 -0
  139. data/lib/zen/package/users/lib/users/model/access_rule.rb +5 -1
  140. data/lib/zen/package/users/lib/users/model/user.rb +17 -10
  141. data/lib/zen/package/users/lib/users/public/admin/js/users/access_rules.js +10 -37
  142. data/lib/zen/package/users/lib/users/public/admin/js/users/lib/access_rules.js +49 -0
  143. data/lib/zen/package/users/lib/users/view/admin/access-rules/form.xhtml +105 -96
  144. data/lib/zen/package/users/lib/users/view/admin/access-rules/index.xhtml +48 -41
  145. data/lib/zen/package/users/lib/users/view/admin/user-groups/form.xhtml +42 -32
  146. data/lib/zen/package/users/lib/users/view/admin/user-groups/index.xhtml +43 -38
  147. data/lib/zen/package/users/lib/users/view/admin/users/form.xhtml +76 -67
  148. data/lib/zen/package/users/lib/users/view/admin/users/index.xhtml +43 -41
  149. data/lib/zen/package/users/lib/users/view/admin/users/login.xhtml +12 -9
  150. data/lib/zen/package/users/migrations/1295281013_create_schema.rb +2 -2
  151. data/lib/zen/plugin.rb +56 -50
  152. data/lib/zen/plugin/markup/lib/markup/markup.rb +33 -21
  153. data/lib/zen/public/admin/css/zen/buttons.css +11 -7
  154. data/lib/zen/public/admin/css/zen/datepicker.css +6 -6
  155. data/lib/zen/public/admin/css/zen/forms.css +2 -1
  156. data/lib/zen/public/admin/css/zen/general.css +15 -10
  157. data/lib/zen/public/admin/css/zen/layout.css +51 -20
  158. data/lib/zen/public/admin/css/zen/tables.css +39 -11
  159. data/lib/zen/public/admin/css/zen/tabs.css +6 -4
  160. data/lib/zen/public/admin/css/zen/window.css +11 -11
  161. data/lib/zen/public/{favicon.ico → admin/favicon.ico} +0 -0
  162. data/lib/zen/public/admin/images/zen/icons/asc.png +0 -0
  163. data/lib/zen/public/admin/images/zen/icons/desc.png +0 -0
  164. data/lib/zen/public/admin/js/vendor/datepicker.js +0 -11
  165. data/lib/zen/public/admin/js/{mootools → vendor/mootools}/core.js +0 -1
  166. data/lib/zen/public/admin/js/{mootools → vendor/mootools}/more.js +100 -29
  167. data/lib/zen/public/admin/js/zen/index.js +48 -0
  168. data/lib/zen/public/admin/js/zen/lib/asset.js +111 -0
  169. data/lib/zen/public/admin/js/zen/{editor.js → lib/editor.js} +107 -127
  170. data/lib/zen/public/admin/js/zen/{editor → lib/editor}/markdown.js +7 -9
  171. data/lib/zen/public/admin/js/zen/{editor → lib/editor}/textile.js +7 -9
  172. data/lib/zen/public/admin/js/zen/lib/html_table.js +143 -0
  173. data/lib/zen/public/admin/js/zen/{tabs.js → lib/tabs.js} +40 -37
  174. data/lib/zen/public/admin/js/zen/{window.js → lib/window.js} +24 -20
  175. data/lib/zen/spec/bacon/color_output.rb +39 -0
  176. data/lib/zen/spec/helper.rb +152 -0
  177. data/lib/zen/spec/simplecov.rb +22 -0
  178. data/lib/zen/task/build.rake +20 -43
  179. data/lib/zen/task/clean.rake +2 -6
  180. data/lib/zen/task/db.rake +8 -12
  181. data/lib/zen/task/package.rake +4 -10
  182. data/lib/zen/task/plugin.rake +3 -9
  183. data/lib/zen/task/proto.rake +0 -62
  184. data/lib/zen/task/test.rake +6 -3
  185. data/lib/zen/task/theme.rake +4 -11
  186. data/lib/zen/theme.rb +22 -24
  187. data/lib/zen/validation.rb +34 -27
  188. data/lib/zen/version.rb +2 -8
  189. data/lib/zen/view/head.xhtml +7 -0
  190. data/lib/zen/view/main.xhtml +7 -22
  191. data/{proto/package/migrations → pkg}/.gitkeep +0 -0
  192. data/proto/app/app.rb +1 -0
  193. data/proto/app/config/config.rb +5 -4
  194. data/proto/app/config/database.rb +19 -41
  195. data/proto/app/config/middlewares.rb +32 -29
  196. data/proto/{package/lib/package/view/admin/package/index.xhtml → app/log/database/dev/.gitkeep} +0 -0
  197. data/proto/app/log/database/live/.gitkeep +0 -0
  198. data/spec/Rakefile +26 -0
  199. data/spec/fixtures/zen/asset.rb +18 -0
  200. data/spec/fixtures/zen/helper/acl.rb +39 -0
  201. data/spec/fixtures/zen/helper/message.rb +19 -0
  202. data/spec/fixtures/zen/language/en/spec.yml +10 -0
  203. data/spec/fixtures/zen/language/nl/spec.yml +7 -0
  204. data/spec/fixtures/zen/package.rb +17 -0
  205. data/spec/fixtures/zen/package/comments/controller/comments_form.rb +27 -0
  206. data/spec/fixtures/zen/package/settings/plugin/settings.rb +20 -0
  207. data/spec/fixtures/zen/plugin.rb +7 -0
  208. data/spec/fixtures/zen/theme/404.xhtml +1 -0
  209. data/spec/fixtures/zen/theme/default-section/index.xhtml +1 -0
  210. data/spec/fixtures/zen/theme/helper/404.xhtml +1 -0
  211. data/spec/fixtures/zen/theme/helper/partial.xhtml +1 -0
  212. data/spec/fixtures/zen/theme/helper/wrong_partial.xhtml +1 -0
  213. data/spec/fixtures/zen/theme/partials/partial.xhtml +1 -0
  214. data/spec/fixtures/zen/theme/theme.rb +11 -0
  215. data/spec/fixtures/zen/validation.rb +22 -0
  216. data/spec/helper.rb +41 -0
  217. data/spec/zen/all.rb +5 -0
  218. data/spec/zen/asset.rb +97 -0
  219. data/spec/zen/bin/create.rb +89 -0
  220. data/spec/zen/bin/runner.rb +47 -0
  221. data/spec/zen/controller/admin_controller.rb +26 -0
  222. data/spec/zen/controller/main_controller.rb +81 -0
  223. data/spec/zen/controller/preview.rb +33 -0
  224. data/spec/zen/helper/acl.rb +149 -0
  225. data/spec/zen/helper/breadcrumb.rb +38 -0
  226. data/spec/zen/helper/message.rb +31 -0
  227. data/spec/zen/helper/theme.rb +58 -0
  228. data/spec/zen/language.rb +55 -0
  229. data/spec/zen/package.rb +23 -0
  230. data/spec/zen/package/categories/controller/categories.rb +123 -0
  231. data/spec/zen/package/categories/controller/category_groups.rb +108 -0
  232. data/spec/zen/package/categories/helper/category.rb +75 -0
  233. data/spec/zen/package/categories/plugin/categories.rb +92 -0
  234. data/spec/zen/package/comments/controller/comments.rb +134 -0
  235. data/spec/zen/package/comments/controller/comments_form.rb +343 -0
  236. data/spec/zen/package/comments/helper/comment.rb +47 -0
  237. data/spec/zen/package/comments/plugin/anti_spam.rb +59 -0
  238. data/spec/zen/package/comments/plugin/comments.rb +107 -0
  239. data/spec/zen/package/custom_fields/blue_form_parameters.rb +183 -0
  240. data/spec/zen/package/custom_fields/controller/custom_field_groups.rb +120 -0
  241. data/spec/zen/package/custom_fields/controller/custom_field_types.rb +169 -0
  242. data/spec/zen/package/custom_fields/controller/custom_fields.rb +158 -0
  243. data/spec/zen/package/custom_fields/helper/custom_field.rb +86 -0
  244. data/spec/zen/package/menus/controller/menu_items.rb +110 -0
  245. data/spec/zen/package/menus/controller/menus.rb +110 -0
  246. data/spec/zen/package/menus/helper/menu.rb +75 -0
  247. data/spec/zen/package/menus/plugin/menus.rb +120 -0
  248. data/spec/zen/package/sections/controller/section_entries.rb +201 -0
  249. data/spec/zen/package/sections/controller/sections.rb +116 -0
  250. data/spec/zen/package/sections/helper/section.rb +74 -0
  251. data/spec/zen/package/sections/plugin/section_entries.rb +161 -0
  252. data/spec/zen/package/sections/plugin/sections.rb +75 -0
  253. data/spec/zen/package/settings/controller/settings.rb +36 -0
  254. data/spec/zen/package/settings/plugin/settings.rb +33 -0
  255. data/spec/zen/package/users/controller/access_rules.rb +90 -0
  256. data/spec/zen/package/users/controller/user_groups.rb +101 -0
  257. data/spec/zen/package/users/controller/users.rb +130 -0
  258. data/spec/zen/package/users/helper/users.rb +97 -0
  259. data/spec/zen/plugin.rb +64 -0
  260. data/spec/zen/plugin/helper.rb +11 -0
  261. data/spec/zen/plugin/markup.rb +44 -0
  262. data/spec/zen/theme.rb +41 -0
  263. data/spec/zen/validation.rb +63 -0
  264. data/zen.gemspec +36 -0
  265. metadata +159 -113
  266. data/MANIFEST +0 -266
  267. data/lib/zen/bin/app.rb +0 -40
  268. data/lib/zen/ext/string.rb +0 -185
  269. data/lib/zen/helper/common.rb +0 -106
  270. data/lib/zen/package/categories/lib/categories/view/admin/categories/edit.xhtml +0 -7
  271. data/lib/zen/package/categories/lib/categories/view/admin/categories/new.xhtml +0 -7
  272. data/lib/zen/package/categories/lib/categories/view/admin/category-groups/edit.xhtml +0 -7
  273. data/lib/zen/package/categories/lib/categories/view/admin/category-groups/new.xhtml +0 -7
  274. data/lib/zen/package/comments/lib/comments/view/admin/comments/edit.xhtml +0 -7
  275. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-groups/edit.xhtml +0 -7
  276. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-groups/new.xhtml +0 -7
  277. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-fields/edit.xhtml +0 -7
  278. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-fields/new.xhtml +0 -7
  279. data/lib/zen/package/menus/lib/menus/view/admin/menu-items/edit.xhtml +0 -7
  280. data/lib/zen/package/menus/lib/menus/view/admin/menu-items/new.xhtml +0 -7
  281. data/lib/zen/package/menus/lib/menus/view/admin/menus/edit.xhtml +0 -7
  282. data/lib/zen/package/menus/lib/menus/view/admin/menus/new.xhtml +0 -7
  283. data/lib/zen/package/sections/lib/sections/view/admin/edit.xhtml +0 -7
  284. data/lib/zen/package/sections/lib/sections/view/admin/new.xhtml +0 -7
  285. data/lib/zen/package/sections/lib/sections/view/admin/section-entries/edit.xhtml +0 -7
  286. data/lib/zen/package/sections/lib/sections/view/admin/section-entries/new.xhtml +0 -7
  287. data/lib/zen/package/users/lib/users/view/admin/access-rules/edit.xhtml +0 -7
  288. data/lib/zen/package/users/lib/users/view/admin/access-rules/new.xhtml +0 -7
  289. data/lib/zen/package/users/lib/users/view/admin/user-groups/edit.xhtml +0 -7
  290. data/lib/zen/package/users/lib/users/view/admin/user-groups/new.xhtml +0 -7
  291. data/lib/zen/package/users/lib/users/view/admin/users/edit.xhtml +0 -7
  292. data/lib/zen/package/users/lib/users/view/admin/users/new.xhtml +0 -7
  293. data/lib/zen/plugin/controller.rb +0 -59
  294. data/lib/zen/public/admin/css/zen/notifications.css +0 -84
  295. data/lib/zen/public/admin/images/zen/icons/large/error.png +0 -0
  296. data/lib/zen/public/admin/images/zen/icons/large/notice.png +0 -0
  297. data/lib/zen/public/admin/images/zen/icons/large/success.png +0 -0
  298. data/lib/zen/public/admin/js/zen/core.js +0 -73
  299. data/lib/zen/public/admin/js/zen/init.js +0 -80
  300. data/proto/package/lib/package.rb +0 -21
  301. data/proto/package/lib/package/controller/controllers.rb +0 -50
  302. data/proto/package/lib/package/language/en/languages.yml +0 -4
  303. data/proto/package/lib/package/model/model.rb +0 -12
@@ -21,15 +21,16 @@ messages:
21
21
  no_rules: 'No access rules have been added yet.'
22
22
 
23
23
  errors:
24
- new : 'Failed to create a new access rule.'
25
- save : 'Failed to save the access rule.'
26
- delete : 'Failed to delete the access rule with ID #%s.'
27
- no_delete : 'You have to specify at least one rule to delete.'
24
+ new : 'Failed to create a new access rule.'
25
+ save : 'Failed to save the access rule.'
26
+ delete : 'Failed to delete the access rule with ID #%s.'
27
+ no_delete : 'You have to specify at least one rule to delete.'
28
+ invalid_rule: 'The specified access rule is invalid.'
28
29
 
29
30
  success:
30
31
  new : 'The access rule has been created.'
31
32
  save : 'The access rule has been modified.'
32
- delete : 'The access rule with ID #%s has been deleted.'
33
+ delete : 'The selected access rules have been deleted.'
33
34
 
34
35
  buttons:
35
36
  new : 'New rule'
@@ -15,10 +15,11 @@ messages:
15
15
  no_groups: 'No user groups have been added yet.'
16
16
 
17
17
  errors:
18
- new : 'Failed to create a new user group.'
19
- save : 'Failed to modify the user group.'
20
- delete : 'Failed to delete the user group with ID #%s.'
21
- no_delete : 'You have to specify at least one group to delete.'
18
+ new : 'Failed to create a new user group.'
19
+ save : 'Failed to modify the user group.'
20
+ delete : 'Failed to delete the user group with ID #%s.'
21
+ no_delete : 'You have to specify at least one group to delete.'
22
+ invalid_group: 'The specified user group is invalid.'
22
23
 
23
24
  success:
24
25
  new : 'The new user group has been created.'
@@ -41,6 +41,7 @@ errors:
41
41
  no_password_match : 'The specified passwords did not match.'
42
42
  login : 'Failed to log in with the specified details.'
43
43
  logout : 'Failed to log out, perhaps you are already logged out.'
44
+ invalid_user : 'The specified user is invalid.'
44
45
 
45
46
  success:
46
47
  new : 'The new user has been created.'
@@ -26,10 +26,11 @@ success:
26
26
  delete: 'Alle gespecificeerde regels zijn verwijderd.'
27
27
 
28
28
  errors:
29
- new : 'De toegangs regel kon niet worden aangemaakt.'
30
- save : 'De toegangs regel kon niet worden aangepast.'
31
- delete : 'De toegangs regel met ID #%s kon niet worden verwijderd.'
32
- no_delete: 'U moet ten minste 1 regel specificeren om te verwijderen.'
29
+ new : 'De toegangs regel kon niet worden aangemaakt.'
30
+ save : 'De toegangs regel kon niet worden aangepast.'
31
+ delete : 'De toegangs regel met ID #%s kon niet worden verwijderd.'
32
+ no_delete : 'U moet ten minste 1 regel specificeren om te verwijderen.'
33
+ invalid_rule: 'De opgegeven regel is ongeldig.'
33
34
 
34
35
  buttons:
35
36
  new : 'Regel toevoegen'
@@ -20,10 +20,11 @@ success:
20
20
  delete: 'De geselecteerde groepen zijn verwijderd.'
21
21
 
22
22
  errors:
23
- new : 'De gebruikers groep kon niet worden aangemaakt.'
24
- save : 'De gebruikers groep kon niet worden aangepast.'
25
- delete : 'De gebruikers groep met ID #%s kon niet worden verwijderd.'
26
- no_delete: 'U moet ten minste 1 groep specificeren om te verwijderen.'
23
+ new : 'De gebruikers groep kon niet worden aangemaakt.'
24
+ save : 'De gebruikers groep kon niet worden aangepast.'
25
+ delete : 'De gebruikers groep met ID #%s kon niet worden verwijderd.'
26
+ no_delete : 'U moet ten minste 1 groep specificeren om te verwijderen.'
27
+ invalid_group: 'De opgegeven gebruikers groep is ongeldig.'
27
28
 
28
29
  buttons:
29
30
  new : 'Groep toevoegen'
@@ -48,6 +48,7 @@ errors:
48
48
  no_password_match: 'De opgegeven wachtwoorden komen niet overeen.'
49
49
  login : 'U kon niet worden ingelogd.'
50
50
  logout : 'U kon niet worden uitgelogd, misschien bent u al uitgelogd.'
51
+ invalid_user : 'De opgegeven gebruiker is ongeldig.'
51
52
 
52
53
  buttons:
53
54
  login : 'Inloggen'
@@ -24,7 +24,11 @@ module Users
24
24
  #
25
25
  def validate
26
26
  validates_presence([
27
- :package, :controller, :create_access, :read_access, :update_access,
27
+ :package,
28
+ :controller,
29
+ :create_access,
30
+ :read_access,
31
+ :update_access,
28
32
  :delete_access
29
33
  ])
30
34
 
@@ -26,16 +26,21 @@ module Users
26
26
 
27
27
  plugin :timestamps, :create => :created_at, :update => :updated_at
28
28
 
29
- many_to_many :user_groups, :class => "Users::Model::UserGroup", :eager => [:access_rules]
30
- one_to_many :access_rules, :class => "Users::Model::AccessRule"
29
+ many_to_many(
30
+ :user_groups,
31
+ :class => "Users::Model::UserGroup",
32
+ :eager => [:access_rules]
33
+ )
34
+
35
+ one_to_many(:access_rules, :class => "Users::Model::AccessRule")
31
36
 
32
37
  ##
33
38
  # Try to authenticate the user based on the specified credentials.
34
39
  # If the user credentials were incorrect false will be returned,
35
40
  # true otherwise.
36
41
  #
37
- # Note that this method will NOT perform any sanitizing, that should be handled
38
- # by the controller instead.
42
+ # Note that this method will NOT perform any sanitizing, that should be
43
+ # handled by the controller instead.
39
44
  #
40
45
  # @author Yorick Peterse
41
46
  # @since 0.1
@@ -53,9 +58,7 @@ module Users
53
58
  if !user.nil? and user.password == password and user.status == 'open'
54
59
  # Overwrite all the global settings with the user specific ones
55
60
  [:language, :frontend_language, :date_format].each do |setting|
56
- # "plugin" is already defined by Sequel so we'll have to call the plugin
57
- # manually.
58
- value = ::Zen::Plugin[:settings].plugin.new(:get, setting).call.value
61
+ value = Zen::Plugin.plugin(:settings, :get, setting).value
59
62
 
60
63
  if user.respond_to?(setting)
61
64
  got = user.send(setting)
@@ -104,13 +107,17 @@ module Users
104
107
  #
105
108
  # @author Yorick Peterse
106
109
  # @since 0.1
107
- # @todo Email validation using regular expressions is bad, a DNS call would be
108
- # much better.
110
+ # @todo Email validation using regular expressions is bad, a DNS call
111
+ # would be much better.
109
112
  #
110
113
  def validate
111
114
  validates_presence [:email, :name]
112
115
  validates_presence :status unless new?
113
- validates_format(/[a-zA-Z0-9\.\_\%\+\-]+@[a-zA-Z0-9\.\-]+\.[a-zA-Z]{2,4}/, :email)
116
+ validates_presence :password if new?
117
+
118
+ validates_format(
119
+ /[a-zA-Z0-9\.\_\%\+\-]+@[a-zA-Z0-9\.\-]+\.[a-zA-Z]{2,4}/, :email
120
+ )
114
121
  end
115
122
  end
116
123
  end
@@ -1,33 +1,3 @@
1
- /**
2
- * Function that toggles a given select element from the list of elements.
3
- *
4
- * @author Yorick Peterse
5
- * @since 0.2.5
6
- * @param {array} controllers A list of select boxes containing all controllers.
7
- * @param {string} selected The ID of the select element that has to be displayed.
8
- *
9
- */
10
- function toggleSelect(controllers, selected)
11
- {
12
- // Show the correct box and hide all others
13
- controllers.each(function(element)
14
- {
15
- if ( element.id === selected )
16
- {
17
- element.removeClass('hidden').set('disabled', false);
18
- }
19
- else
20
- {
21
- if ( !element.hasClass('hidden') )
22
- {
23
- element.addClass('hidden');
24
- }
25
-
26
- element.set('disabled', true);
27
- }
28
- });
29
- }
30
-
31
1
  window.addEvent('domready', function()
32
2
  {
33
3
  // Hide the fields that allow a user to pick a user or group
@@ -74,19 +44,22 @@ window.addEvent('domready', function()
74
44
 
75
45
  if ( package_select )
76
46
  {
77
- // Hide all the controller select boxes and only show the ones that belong to the
78
- // currently selected package.
47
+ // Hide all the controller select boxes and only show the ones that
48
+ // belong to the currently selected package.
79
49
  var controllers = $$('select.controllers');
80
50
 
81
51
  // Show the first box by default
82
- toggleSelect(controllers, package_select.get('value') + '_controllers');
52
+ Users.AccessRules.toggleSelect(
53
+ controllers, package_select.get('value') + '_controllers'
54
+ );
83
55
 
84
- // When the select element's value is changed the correct controller box should
85
- // be displayed and the old one should be hidden
56
+ // When the select element's value is changed the correct controller box
57
+ // should be displayed and the old one should be hidden
86
58
  package_select.addEvent('change', function()
87
59
  {
88
- var selected = this.get('value') + '_controllers';
89
- toggleSelect(controllers, selected);
60
+ Users.AccessRules.toggleSelect(
61
+ controllers, this.get('value') + '_controllers'
62
+ );
90
63
  });
91
64
  }
92
65
  });
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Namespace for the Users package. The Users package is used to manage users,
3
+ * user groups and access rules.
4
+ *
5
+ * @author Yorick Peterse
6
+ * @since 0.2.8
7
+ */
8
+ var Users = {};
9
+
10
+ /**
11
+ * Object used when managing access rules in the backend.
12
+ *
13
+ * @author Yorick Peterse
14
+ * @since 0.2.8
15
+ */
16
+ Users.AccessRules =
17
+ {
18
+ /**
19
+ * Method that can be used to toggle the visibility of a <select>
20
+ * element based on a list of other elements.
21
+ *
22
+ * @author Yorick Peterse
23
+ * @since 0.2.5
24
+ * @param {array} controllers A list of select boxes containing all
25
+ * controllers.
26
+ * @param {string} selected The ID of the select element that has to be
27
+ * displayed.
28
+ */
29
+ toggleSelect: function(controllers, selected)
30
+ {
31
+ // Show the correct box and hide all others
32
+ controllers.each(function(element)
33
+ {
34
+ if ( element.id === selected )
35
+ {
36
+ element.removeClass('hidden').set('disabled', false);
37
+ }
38
+ else
39
+ {
40
+ if ( !element.hasClass('hidden') )
41
+ {
42
+ element.addClass('hidden');
43
+ }
44
+
45
+ element.set('disabled', true);
46
+ }
47
+ });
48
+ }
49
+ }
@@ -1,111 +1,120 @@
1
- #{
2
- form_for(
3
- @access_rule, :method => :post, :action => @form_save_url, :id => :access_rule_form
4
- ) do |f|
5
-
6
- if !@access_rule.user_id.nil?
7
- rule_applies = 'div_user_id'
8
- else
9
- rule_applies = 'div_user_group_id'
10
- end
11
-
12
- f.input_hidden(:id, @access_rule.id)
13
- f.input_hidden(:csrf_token, get_csrf_token)
14
-
15
- f.input_radio(
16
- lang('access_rules.labels.rule_applies'),
17
- :rule_applies,
18
- rule_applies,
19
- :values => @rule_applies_hash
20
- )
21
-
22
- f.g.div(:id => 'div_user_id') do
23
- f.select(
24
- lang('access_rules.labels.user'),
25
- :user_id,
26
- :values => @form_users,
27
- :selected => @access_rule.user_id,
28
- :size => 1
29
- )
30
- end
31
-
32
- f.g.div(:id => 'div_user_group_id') do
1
+ <article>
2
+ <header>
3
+ <h1>#{get_breadcrumbs}</h1>
4
+ </header>
5
+
6
+ #{
7
+ form_for(
8
+ @access_rule,
9
+ :method => :post,
10
+ :action => Users::Controller::AccessRules.r(:save),
11
+ :id => :access_rule_form
12
+ ) do |f|
13
+
14
+ if !@access_rule.user_id.nil?
15
+ rule_applies = 'div_user_id'
16
+ else
17
+ rule_applies = 'div_user_group_id'
18
+ end
19
+
20
+ f.input_hidden(:id, @access_rule.id)
21
+ f.input_hidden(:csrf_token, get_csrf_token)
22
+
23
+ f.input_radio(
24
+ lang('access_rules.labels.rule_applies'),
25
+ :rule_applies,
26
+ rule_applies,
27
+ :values => @rule_applies_hash
28
+ )
29
+
30
+ f.g.div(:id => 'div_user_id') do
31
+ f.select(
32
+ lang('access_rules.labels.user'),
33
+ :user_id,
34
+ :values => @form_users,
35
+ :selected => @access_rule.user_id,
36
+ :size => 1
37
+ )
38
+ end
39
+
40
+ f.g.div(:id => 'div_user_group_id') do
41
+ f.select(
42
+ lang('access_rules.labels.user_group'),
43
+ :user_group_id,
44
+ :values => @form_groups,
45
+ :selected => @access_rule.user_group_id,
46
+ :size => 1
47
+ )
48
+ end
49
+
33
50
  f.select(
34
- lang('access_rules.labels.user_group'),
35
- :user_group_id,
36
- :values => @form_groups,
37
- :selected => @access_rule.user_group_id,
51
+ lang('access_rules.labels.package'),
52
+ :package,
53
+ :values => @form_packages,
54
+ :selected => @access_rule.package,
38
55
  :size => 1
39
56
  )
40
- end
41
-
42
- f.select(
43
- lang('access_rules.labels.package'),
44
- :package,
45
- :values => @form_packages,
46
- :selected => @access_rule.package,
47
- :size => 1
48
- )
49
57
 
50
- # Build the select boxes for all controllers
51
- f.g.p do
52
- f.g.label { lang('access_rules.labels.controller') }
53
- @form_controllers.each do |pkg, controllers|
54
- f.g.select(
55
- :id => "#{pkg}_controllers", :class => 'controllers hidden', :name => 'controller'
56
- ) do
57
- # Show all the options
58
- controllers.each do |key, value|
59
- args = {:value => value}
58
+ # Build the select boxes for all controllers
59
+ f.g.p do
60
+ f.g.label { lang('access_rules.labels.controller') }
61
+ @form_controllers.each do |pkg, controllers|
62
+ f.g.select(
63
+ :id => "#{pkg}_controllers",
64
+ :class => 'controllers hidden',
65
+ :name => 'controller'
66
+ ) do
67
+ # Show all the options
68
+ controllers.each do |key, value|
69
+ args = {:value => value}
60
70
 
61
- # Is it selected?
62
- if value === @access_rule.controller
63
- args[:selected] = 'selected'
64
- else
65
- args.delete(:selected)
66
- end
71
+ # Is it selected?
72
+ if value === @access_rule.controller
73
+ args[:selected] = 'selected'
74
+ else
75
+ args.delete(:selected)
76
+ end
67
77
 
68
- f.g.option(args) do
69
- key
78
+ f.g.option(args) { key }
70
79
  end
71
80
  end
72
81
  end
73
82
  end
74
- end
75
83
 
76
- f.input_radio(
77
- lang('access_rules.labels.create'),
78
- :create_access,
79
- @access_rule.create_access,
80
- :values => @boolean_hash
81
- )
82
-
83
- f.input_radio(
84
- lang('access_rules.labels.read'),
85
- :read_access,
86
- @access_rule.read_access,
87
- :values => @boolean_hash
88
- )
89
-
90
- f.input_radio(
91
- lang('access_rules.labels.update'),
92
- :update_access,
93
- @access_rule.update_access,
94
- :values => @boolean_hash
95
- )
84
+ f.input_radio(
85
+ lang('access_rules.labels.create'),
86
+ :create_access,
87
+ @access_rule.create_access,
88
+ :values => @boolean_hash.invert
89
+ )
90
+
91
+ f.input_radio(
92
+ lang('access_rules.labels.read'),
93
+ :read_access,
94
+ @access_rule.read_access,
95
+ :values => @boolean_hash.invert
96
+ )
97
+
98
+ f.input_radio(
99
+ lang('access_rules.labels.update'),
100
+ :update_access,
101
+ @access_rule.update_access,
102
+ :values => @boolean_hash.invert
103
+ )
104
+
105
+ f.input_radio(
106
+ lang('access_rules.labels.delete'),
107
+ :delete_access,
108
+ @access_rule.delete_access,
109
+ :values => @boolean_hash.invert
110
+ )
96
111
 
97
- f.input_radio(
98
- lang('access_rules.labels.delete'),
99
- :delete_access,
100
- @access_rule.delete_access,
101
- :values => @boolean_hash
102
- )
103
-
104
- f.g.div(:class => 'clearfix') do
105
112
  f.g.div(:class => 'button') do
106
- f.g.input(:type => 'submit', :value => lang('access_rules.buttons.save'))
113
+ f.g.input(
114
+ :type => 'submit',
115
+ :value => lang('access_rules.buttons.save')
116
+ )
107
117
  end
108
118
  end
109
-
110
- end
111
- }
119
+ }
120
+ </article>