zen 0.2.8 → 0.3b

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (422) hide show
  1. data/.gems +20 -0
  2. data/.mailmap +3 -2
  3. data/.rvmrc +1 -1
  4. data/.travis.yml +13 -2
  5. data/.yardopts +13 -0
  6. data/AUTHORS +1 -1
  7. data/README.md +115 -77
  8. data/Rakefile +6 -7
  9. data/bin/zen +12 -5
  10. data/guide/_static/categories/categories.png +0 -0
  11. data/guide/_static/categories/category_groups.png +0 -0
  12. data/guide/_static/categories/new_category.png +0 -0
  13. data/guide/_static/categories/new_category_group.png +0 -0
  14. data/guide/_static/comments/comments.png +0 -0
  15. data/guide/_static/comments/edit_comment.png +0 -0
  16. data/guide/_static/custom_fields/custom_field_groups.png +0 -0
  17. data/guide/_static/custom_fields/custom_field_types.png +0 -0
  18. data/guide/_static/custom_fields/custom_fields.png +0 -0
  19. data/guide/_static/custom_fields/edit_custom_field_general.png +0 -0
  20. data/guide/_static/custom_fields/edit_custom_field_group.png +0 -0
  21. data/guide/_static/custom_fields/edit_custom_field_settings.png +0 -0
  22. data/guide/_static/custom_fields/edit_custom_field_type.png +0 -0
  23. data/guide/_static/menus/edit_menu.png +0 -0
  24. data/guide/_static/menus/edit_menu_item.png +0 -0
  25. data/guide/_static/menus/menu_items.png +0 -0
  26. data/guide/_static/menus/menus.png +0 -0
  27. data/guide/_static/sections/edit_entry.png +0 -0
  28. data/guide/_static/sections/edit_entry_categories.png +0 -0
  29. data/guide/_static/sections/edit_entry_general.png +0 -0
  30. data/guide/_static/sections/edit_entry_meta.png +0 -0
  31. data/guide/_static/sections/edit_section_comments.png +0 -0
  32. data/guide/_static/sections/edit_section_general.png +0 -0
  33. data/guide/_static/sections/edit_section_groups.png +0 -0
  34. data/guide/_static/sections/entries.png +0 -0
  35. data/guide/_static/sections/sections.png +0 -0
  36. data/guide/_static/settings/overview_general.png +0 -0
  37. data/guide/_static/settings/overview_security.png +0 -0
  38. data/guide/_static/settings/overview_user.png +0 -0
  39. data/guide/_static/users/edit_user.png +0 -0
  40. data/guide/_static/users/edit_user_group.png +0 -0
  41. data/guide/_static/users/edit_user_group_permissions.png +0 -0
  42. data/guide/_static/users/edit_user_permissions.png +0 -0
  43. data/guide/_static/users/overview.png +0 -0
  44. data/guide/_static/users/user_groups_overview.png +0 -0
  45. data/guide/asset_management.md +117 -0
  46. data/{CHANGELOG.md → guide/changelog.md} +42 -0
  47. data/guide/css/common.css +20 -0
  48. data/guide/getting_started.md +61 -0
  49. data/guide/hacking.md +52 -0
  50. data/guide/installation.md +44 -0
  51. data/guide/javascript.md +352 -0
  52. data/lib/vendor/sequel_sluggable.rb +137 -0
  53. data/lib/yard/tags.rb +13 -0
  54. data/lib/zen.rb +148 -78
  55. data/lib/zen/asset_groups.rb +85 -0
  56. data/lib/zen/bin/create.rb +267 -56
  57. data/lib/zen/bin/default.rb +84 -0
  58. data/lib/zen/controller/admin_controller.rb +1 -82
  59. data/lib/zen/controller/base_controller.rb +9 -5
  60. data/lib/zen/controller/frontend_controller.rb +0 -1
  61. data/lib/zen/controller/main_controller.rb +30 -42
  62. data/lib/zen/controller/preview.rb +9 -8
  63. data/lib/zen/controller/translations.rb +49 -0
  64. data/lib/zen/error.rb +17 -0
  65. data/lib/zen/event.rb +118 -0
  66. data/lib/zen/helper/asset.rb +63 -0
  67. data/lib/zen/helper/breadcrumb.rb +1 -4
  68. data/lib/zen/helper/controller.rb +73 -0
  69. data/lib/zen/helper/locale.rb +42 -0
  70. data/lib/zen/helper/message.rb +0 -3
  71. data/lib/zen/helper/search.rb +54 -0
  72. data/lib/zen/helper/stacked_aspect.rb +249 -0
  73. data/lib/zen/helper/theme.rb +3 -10
  74. data/lib/zen/language.rb +356 -181
  75. data/lib/zen/language/en/zen_general.rb +52 -0
  76. data/lib/zen/language/en/zen_models.rb +19 -0
  77. data/lib/zen/language/nl/zen_general.rb +57 -0
  78. data/lib/zen/language/nl/zen_models.rb +22 -0
  79. data/lib/zen/language/translation.rb +132 -0
  80. data/lib/zen/languages.rb +9 -0
  81. data/lib/zen/layout/admin.xhtml +3 -3
  82. data/lib/zen/layout/login.xhtml +1 -1
  83. data/lib/zen/markup.rb +189 -0
  84. data/lib/zen/model/helper.rb +65 -0
  85. data/lib/zen/model/init.rb +62 -0
  86. data/lib/zen/model/methods.rb +6 -7
  87. data/lib/zen/package.rb +312 -201
  88. data/lib/zen/package/all.rb +4 -3
  89. data/lib/zen/package/categories/lib/categories.rb +29 -41
  90. data/lib/zen/package/categories/lib/categories/controller/categories.rb +185 -130
  91. data/lib/zen/package/categories/lib/categories/controller/category_groups.rb +172 -102
  92. data/lib/zen/package/categories/lib/categories/helper/category.rb +4 -9
  93. data/lib/zen/package/categories/lib/categories/helper/category_frontend.rb +86 -0
  94. data/lib/zen/package/categories/lib/categories/language/en/categories.rb +40 -0
  95. data/lib/zen/package/categories/lib/categories/language/en/category_groups.rb +39 -0
  96. data/lib/zen/package/categories/lib/categories/language/nl/categories.rb +42 -0
  97. data/lib/zen/package/categories/lib/categories/language/nl/category_groups.rb +42 -0
  98. data/lib/zen/package/categories/lib/categories/model/category.rb +21 -25
  99. data/lib/zen/package/categories/lib/categories/model/category_group.rb +21 -15
  100. data/lib/zen/package/categories/lib/categories/view/admin/categories/form.xhtml +25 -26
  101. data/lib/zen/package/categories/lib/categories/view/admin/categories/index.xhtml +24 -24
  102. data/lib/zen/package/categories/lib/categories/view/admin/category-groups/form.xhtml +18 -20
  103. data/lib/zen/package/categories/lib/categories/view/admin/category-groups/index.xhtml +21 -18
  104. data/lib/zen/package/comments/lib/comments.rb +30 -50
  105. data/lib/zen/package/comments/lib/comments/anti_spam.rb +138 -0
  106. data/lib/zen/package/comments/lib/comments/controller/comments.rb +159 -92
  107. data/lib/zen/package/comments/lib/comments/controller/comments_form.rb +122 -34
  108. data/lib/zen/package/comments/lib/comments/helper/comment.rb +0 -3
  109. data/lib/zen/package/comments/lib/comments/helper/comment_frontend.rb +90 -0
  110. data/lib/zen/package/comments/lib/comments/language/en/comments.rb +57 -0
  111. data/lib/zen/package/comments/lib/comments/language/nl/comments.rb +61 -0
  112. data/lib/zen/package/comments/lib/comments/model/comment.rb +147 -49
  113. data/lib/zen/package/comments/lib/comments/model/comment_status.rb +0 -2
  114. data/lib/zen/package/comments/lib/comments/view/admin/comments/form.xhtml +37 -40
  115. data/lib/zen/package/comments/lib/comments/view/admin/comments/index.xhtml +23 -42
  116. data/lib/zen/package/comments/migrations/1308774099_comment_status.rb +12 -4
  117. data/lib/zen/package/comments/migrations/1313851786_remove_defensio_signature.rb +11 -0
  118. data/lib/zen/package/custom_fields/lib/custom_fields.rb +40 -43
  119. data/lib/zen/package/custom_fields/lib/custom_fields/blue_form_parameters.rb +72 -17
  120. data/lib/zen/package/custom_fields/lib/custom_fields/controller/custom_field_groups.rb +154 -118
  121. data/lib/zen/package/custom_fields/lib/custom_fields/controller/custom_field_types.rb +147 -90
  122. data/lib/zen/package/custom_fields/lib/custom_fields/controller/custom_fields.rb +161 -131
  123. data/lib/zen/package/custom_fields/lib/custom_fields/helper/custom_field.rb +4 -9
  124. data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_field_groups.rb +42 -0
  125. data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_field_types.rb +51 -0
  126. data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_fields.rb +60 -0
  127. data/lib/zen/package/custom_fields/lib/custom_fields/language/nl/custom_field_groups.rb +41 -0
  128. data/lib/zen/package/custom_fields/lib/custom_fields/language/nl/custom_field_types.rb +49 -0
  129. data/lib/zen/package/custom_fields/lib/custom_fields/language/nl/custom_fields.rb +61 -0
  130. data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field.rb +18 -23
  131. data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_group.rb +20 -19
  132. data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_method.rb +1 -3
  133. data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_type.rb +19 -9
  134. data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_value.rb +18 -15
  135. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-groups/form.xhtml +18 -18
  136. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-groups/index.xhtml +30 -24
  137. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-types/form.xhtml +15 -10
  138. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-types/index.xhtml +24 -19
  139. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-fields/form.xhtml +18 -13
  140. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-fields/index.xhtml +30 -20
  141. data/lib/zen/package/extensions/lib/extensions.rb +20 -0
  142. data/lib/zen/package/extensions/lib/extensions/controller/extensions.rb +41 -0
  143. data/lib/zen/package/extensions/lib/extensions/language/en/extensions.rb +23 -0
  144. data/lib/zen/package/extensions/lib/extensions/language/nl/extensions.rb +25 -0
  145. data/lib/zen/package/extensions/lib/extensions/view/admin/extensions/index.xhtml +86 -0
  146. data/lib/zen/package/menu.rb +109 -0
  147. data/lib/zen/package/menus/lib/menus.rb +25 -34
  148. data/lib/zen/package/menus/lib/menus/controller/menu_items.rb +143 -107
  149. data/lib/zen/package/menus/lib/menus/controller/menus.rb +166 -115
  150. data/lib/zen/package/menus/lib/menus/helper/menu.rb +2 -8
  151. data/lib/zen/package/menus/lib/menus/helper/menu_frontend.rb +114 -0
  152. data/lib/zen/package/menus/lib/menus/language/en/menu_items.rb +48 -0
  153. data/lib/zen/package/menus/lib/menus/language/en/menus.rb +48 -0
  154. data/lib/zen/package/menus/lib/menus/language/nl/menu_items.rb +48 -0
  155. data/lib/zen/package/menus/lib/menus/language/nl/menus.rb +50 -0
  156. data/lib/zen/package/menus/lib/menus/model/menu.rb +24 -17
  157. data/lib/zen/package/menus/lib/menus/model/menu_item.rb +37 -13
  158. data/lib/zen/package/menus/lib/menus/view/admin/menu-items/form.xhtml +32 -25
  159. data/lib/zen/package/menus/lib/menus/view/admin/menu-items/index.xhtml +23 -17
  160. data/lib/zen/package/menus/lib/menus/view/admin/menus/form.xhtml +31 -26
  161. data/lib/zen/package/menus/lib/menus/view/admin/menus/index.xhtml +20 -22
  162. data/lib/zen/package/sections/lib/sections.rb +25 -68
  163. data/lib/zen/package/sections/lib/sections/controller/section_entries.rb +178 -138
  164. data/lib/zen/package/sections/lib/sections/controller/sections.rb +173 -140
  165. data/lib/zen/package/sections/lib/sections/helper/section.rb +3 -6
  166. data/lib/zen/package/sections/lib/sections/helper/section_frontend.rb +146 -0
  167. data/lib/zen/package/sections/lib/sections/language/en/section_entries.rb +50 -0
  168. data/lib/zen/package/sections/lib/sections/language/en/sections.rb +55 -0
  169. data/lib/zen/package/sections/lib/sections/language/nl/section_entries.rb +50 -0
  170. data/lib/zen/package/sections/lib/sections/language/nl/sections.rb +55 -0
  171. data/lib/zen/package/sections/lib/sections/model/section.rb +36 -36
  172. data/lib/zen/package/sections/lib/sections/model/section_entry.rb +52 -59
  173. data/lib/zen/package/sections/lib/sections/model/section_entry_status.rb +2 -2
  174. data/lib/zen/package/sections/lib/sections/view/admin/form.xhtml +24 -21
  175. data/lib/zen/package/sections/lib/sections/view/admin/index.xhtml +24 -26
  176. data/lib/zen/package/sections/lib/sections/view/admin/section-entries/form.xhtml +33 -31
  177. data/lib/zen/package/sections/lib/sections/view/admin/section-entries/index.xhtml +24 -25
  178. data/lib/zen/package/sections/migrations/1308672298_use_id_for_default_section.rb +14 -10
  179. data/lib/zen/package/sections/migrations/1308813320_section_entry_statuses.rb +12 -6
  180. data/lib/zen/package/settings/lib/settings.rb +25 -120
  181. data/lib/zen/package/settings/lib/settings/blue_form_parameters.rb +157 -0
  182. data/lib/zen/package/settings/lib/settings/controller/settings.rb +94 -69
  183. data/lib/zen/package/settings/lib/settings/language/en/settings.rb +41 -0
  184. data/lib/zen/package/settings/lib/settings/language/nl/settings.rb +41 -0
  185. data/lib/zen/package/settings/lib/settings/model/setting.rb +0 -2
  186. data/lib/zen/package/settings/lib/settings/setting.rb +379 -0
  187. data/lib/zen/package/settings/lib/settings/setting_groups.rb +11 -0
  188. data/lib/zen/package/settings/lib/settings/settings.rb +83 -0
  189. data/lib/zen/package/settings/lib/settings/settings_group.rb +84 -0
  190. data/lib/zen/package/settings/lib/settings/singleton_methods.rb +35 -0
  191. data/lib/zen/package/settings/lib/settings/view/admin/settings/index.xhtml +15 -57
  192. data/lib/zen/package/settings/migrations/1321197919_remove_unused_columns.rb +17 -0
  193. data/lib/zen/package/users/lib/users.rb +51 -36
  194. data/lib/zen/package/users/lib/users/controller/user_groups.rb +133 -98
  195. data/lib/zen/package/users/lib/users/controller/users.rb +253 -136
  196. data/lib/zen/package/users/lib/users/helper/access.rb +102 -0
  197. data/lib/zen/package/users/lib/users/helper/acl.rb +113 -0
  198. data/lib/zen/package/users/lib/users/helper/users.rb +41 -24
  199. data/lib/zen/package/users/lib/users/language/en/permissions.rb +16 -0
  200. data/lib/zen/package/users/lib/users/language/en/user_groups.rb +39 -0
  201. data/lib/zen/package/users/lib/users/language/en/users.rb +73 -0
  202. data/lib/zen/package/users/lib/users/language/nl/permissions.rb +16 -0
  203. data/lib/zen/package/users/lib/users/language/nl/user_groups.rb +41 -0
  204. data/lib/zen/package/users/lib/users/language/nl/users.rb +74 -0
  205. data/lib/zen/package/users/lib/users/model/permission.rb +28 -0
  206. data/lib/zen/package/users/lib/users/model/user.rb +104 -65
  207. data/lib/zen/package/users/lib/users/model/user_group.rb +28 -24
  208. data/lib/zen/package/users/lib/users/model/user_status.rb +27 -0
  209. data/lib/zen/package/users/lib/users/public/admin/css/users/permissions.css +22 -0
  210. data/lib/zen/package/users/lib/users/public/admin/js/users/permissions.js +33 -0
  211. data/lib/zen/package/users/lib/users/settings.rb +19 -0
  212. data/lib/zen/package/users/lib/users/view/admin/user-groups/form.xhtml +58 -28
  213. data/lib/zen/package/users/lib/users/view/admin/user-groups/index.xhtml +19 -15
  214. data/lib/zen/package/users/lib/users/view/admin/users/form.xhtml +93 -62
  215. data/lib/zen/package/users/lib/users/view/admin/users/index.xhtml +23 -36
  216. data/lib/zen/package/users/lib/users/view/admin/users/login.xhtml +13 -6
  217. data/lib/zen/package/users/lib/users/view/admin/users/permissions.xhtml +33 -0
  218. data/lib/zen/package/users/lib/users/view/admin/users/register.xhtml +52 -0
  219. data/lib/zen/package/users/migrations/1313786058_update_default_date.rb +41 -0
  220. data/lib/zen/package/users/migrations/1316432327_permissions.rb +36 -0
  221. data/lib/zen/package/users/migrations/1320272365_status_ids.rb +67 -0
  222. data/lib/zen/public/admin/css/zen/buttons.css +3 -11
  223. data/lib/zen/public/admin/css/zen/datepicker.css +23 -13
  224. data/lib/zen/public/admin/css/zen/editor.css +6 -14
  225. data/lib/zen/public/admin/css/zen/forms.css +19 -12
  226. data/lib/zen/public/admin/css/zen/general.css +22 -18
  227. data/lib/zen/public/admin/css/zen/grid.css +1 -20
  228. data/lib/zen/public/admin/css/zen/layout.css +26 -11
  229. data/lib/zen/public/admin/css/zen/messages.css +3 -10
  230. data/lib/zen/public/admin/css/zen/reset.css +13 -15
  231. data/lib/zen/public/admin/css/zen/tables.css +8 -10
  232. data/lib/zen/public/admin/css/zen/tabs.css +2 -10
  233. data/lib/zen/public/admin/css/zen/window.css +2 -8
  234. data/lib/zen/public/admin/js/vendor/datepicker.js +540 -240
  235. data/lib/zen/public/admin/js/vendor/mootools/core.js +273 -283
  236. data/lib/zen/public/admin/js/vendor/mootools/more.js +131 -136
  237. data/lib/zen/public/admin/js/zen/index.js +8 -14
  238. data/lib/zen/public/admin/js/zen/lib/editor.js +36 -33
  239. data/lib/zen/public/admin/js/zen/lib/editor/markdown.js +0 -6
  240. data/lib/zen/public/admin/js/zen/lib/editor/textile.js +0 -6
  241. data/lib/zen/public/admin/js/zen/lib/html_table.js +0 -5
  242. data/lib/zen/public/admin/js/zen/lib/tabs.js +22 -79
  243. data/lib/zen/public/admin/js/zen/lib/window.js +12 -22
  244. data/lib/zen/spec/bacon/color_output.rb +1 -1
  245. data/lib/zen/spec/helper.rb +6 -11
  246. data/lib/zen/spec/simplecov.rb +3 -3
  247. data/lib/zen/task.rb +0 -1
  248. data/lib/zen/task/build.rake +46 -26
  249. data/lib/zen/task/clean.rake +14 -7
  250. data/lib/zen/task/db.rake +31 -29
  251. data/lib/zen/task/package.rake +19 -23
  252. data/lib/zen/task/proto.rake +3 -5
  253. data/lib/zen/task/setup.rake +4 -0
  254. data/lib/zen/task/test.rake +31 -6
  255. data/lib/zen/task/theme.rake +13 -19
  256. data/lib/zen/theme.rb +377 -52
  257. data/lib/zen/validation.rb +22 -30
  258. data/lib/zen/version.rb +1 -2
  259. data/lib/zen/view/bottom.xhtml +9 -1
  260. data/lib/zen/view/head.xhtml +1 -1
  261. data/lib/zen/view/main.xhtml +1 -1
  262. data/lib/zen/view/search.xhtml +9 -0
  263. data/proto/app/Rakefile +0 -1
  264. data/proto/app/app.rb +21 -16
  265. data/proto/app/config/config.rb.erb +41 -0
  266. data/proto/app/config/{database.rb → database.rb.erb} +17 -14
  267. data/proto/app/config/middlewares.rb +1 -1
  268. data/proto/app/theme/default/index.xhtml +25 -0
  269. data/proto/app/theme/theme.rb +19 -0
  270. data/proto/app/{log/database/dev → tmp}/.gitkeep +0 -0
  271. data/proto/migration.rb +3 -5
  272. data/proto/rack/thin.yml +41 -0
  273. data/proto/rack/unicorn.rb +38 -0
  274. data/spec/Rakefile +15 -11
  275. data/spec/fixtures/zen/helper/controller.rb +13 -0
  276. data/spec/fixtures/zen/helper/locale.rb +7 -0
  277. data/spec/fixtures/zen/helper/message.rb +0 -4
  278. data/spec/fixtures/zen/language.rb +31 -0
  279. data/spec/fixtures/zen/language/en/spec.rb +11 -0
  280. data/spec/fixtures/zen/language/nl/spec.rb +11 -0
  281. data/spec/fixtures/zen/package.rb +0 -10
  282. data/spec/fixtures/zen/package/categories/helper/category_frontend.rb +16 -0
  283. data/spec/fixtures/zen/package/comments/helper/comment_frontend.rb +16 -0
  284. data/spec/fixtures/zen/package/sections/helper/section_frontend.rb +16 -0
  285. data/spec/fixtures/zen/package/settings/controller/settings.rb +17 -0
  286. data/spec/fixtures/zen/package/users/helper/access.rb +18 -0
  287. data/spec/fixtures/zen/package/users/helper/acl.rb +23 -0
  288. data/spec/fixtures/zen/theme/{default-section → default}/index.xhtml +0 -0
  289. data/spec/helper.rb +12 -27
  290. data/{proto/app/log/database/live → spec/public}/.gitkeep +0 -0
  291. data/spec/zen/controller/admin_controller.rb +5 -6
  292. data/spec/zen/controller/main_controller.rb +29 -35
  293. data/spec/zen/controller/preview.rb +9 -10
  294. data/spec/zen/event.rb +44 -0
  295. data/spec/zen/helper/breadcrumb.rb +4 -5
  296. data/spec/zen/helper/controller.rb +21 -0
  297. data/spec/zen/helper/locale.rb +25 -0
  298. data/spec/zen/helper/message.rb +4 -11
  299. data/spec/zen/helper/theme.rb +11 -14
  300. data/spec/zen/language.rb +48 -22
  301. data/spec/zen/markup.rb +39 -0
  302. data/spec/zen/package.rb +48 -11
  303. data/spec/zen/package/categories/controller/categories.rb +99 -45
  304. data/spec/zen/package/categories/controller/category_groups.rb +109 -33
  305. data/spec/zen/package/categories/helper/category.rb +19 -32
  306. data/spec/zen/package/categories/helper/category_frontend.rb +61 -0
  307. data/spec/zen/package/comments/anti_spam.rb +50 -0
  308. data/spec/zen/package/comments/controller/comments.rb +121 -61
  309. data/spec/zen/package/comments/controller/comments_form.rb +120 -94
  310. data/spec/zen/package/comments/helper/comment.rb +13 -13
  311. data/spec/zen/package/comments/helper/comment_frontend.rb +92 -0
  312. data/spec/zen/package/custom_fields/blue_form_parameters.rb +50 -50
  313. data/spec/zen/package/custom_fields/controller/custom_field_groups.rb +135 -43
  314. data/spec/zen/package/custom_fields/controller/custom_field_types.rb +153 -48
  315. data/spec/zen/package/custom_fields/controller/custom_fields.rb +130 -51
  316. data/spec/zen/package/custom_fields/helper/custom_field.rb +8 -8
  317. data/spec/zen/package/extensions/controller/extensions.rb +38 -0
  318. data/spec/zen/package/menus/controller/menu_items.rb +121 -42
  319. data/spec/zen/package/menus/controller/menus.rb +125 -38
  320. data/spec/zen/package/menus/helper/menu.rb +26 -26
  321. data/spec/zen/package/menus/helper/menu_frontend.rb +104 -0
  322. data/spec/zen/package/sections/controller/section_entries.rb +145 -89
  323. data/spec/zen/package/sections/controller/sections.rb +130 -35
  324. data/spec/zen/package/sections/helper/section.rb +27 -38
  325. data/spec/zen/package/sections/helper/section_frontend.rb +160 -0
  326. data/spec/zen/package/settings/controller/settings.rb +73 -8
  327. data/spec/zen/package/settings/settings.rb +119 -0
  328. data/spec/zen/package/users/controller/user_groups.rb +134 -34
  329. data/spec/zen/package/users/controller/users.rb +189 -44
  330. data/spec/zen/package/users/helper/access.rb +29 -0
  331. data/spec/zen/package/users/helper/acl.rb +46 -0
  332. data/spec/zen/package/users/helper/users.rb +20 -64
  333. data/spec/zen/theme.rb +7 -9
  334. data/spec/zen/validation.rb +1 -2
  335. data/zen.gemspec +25 -22
  336. metadata +303 -222
  337. data/lib/zen/asset.rb +0 -292
  338. data/lib/zen/bin/runner.rb +0 -118
  339. data/lib/zen/error/language_error.rb +0 -10
  340. data/lib/zen/error/package_error.rb +0 -10
  341. data/lib/zen/error/plugin_error.rb +0 -10
  342. data/lib/zen/error/theme_error.rb +0 -10
  343. data/lib/zen/error/validation_error.rb +0 -10
  344. data/lib/zen/helper/acl.rb +0 -182
  345. data/lib/zen/helper/blue_form_vendor.rb +0 -689
  346. data/lib/zen/language/en/zen_general.yml +0 -25
  347. data/lib/zen/language/en/zen_models.yml +0 -13
  348. data/lib/zen/language/nl/zen_general.yml +0 -25
  349. data/lib/zen/language/nl/zen_models.yml +0 -13
  350. data/lib/zen/model/settings.rb +0 -78
  351. data/lib/zen/package/base.rb +0 -62
  352. data/lib/zen/package/categories/lib/categories/language/en/categories.yml +0 -36
  353. data/lib/zen/package/categories/lib/categories/language/en/category_groups.yml +0 -34
  354. data/lib/zen/package/categories/lib/categories/language/nl/categories.yml +0 -40
  355. data/lib/zen/package/categories/lib/categories/language/nl/category_groups.yml +0 -34
  356. data/lib/zen/package/categories/lib/categories/plugin/categories.rb +0 -141
  357. data/lib/zen/package/comments/lib/comments/language/en/comments.yml +0 -48
  358. data/lib/zen/package/comments/lib/comments/language/nl/comments.yml +0 -50
  359. data/lib/zen/package/comments/lib/comments/plugin/anti_spam.rb +0 -156
  360. data/lib/zen/package/comments/lib/comments/plugin/comments.rb +0 -115
  361. data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_field_groups.yml +0 -33
  362. data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_field_types.yml +0 -40
  363. data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_fields.yml +0 -54
  364. data/lib/zen/package/custom_fields/lib/custom_fields/language/nl/custom_field_groups.yml +0 -33
  365. data/lib/zen/package/custom_fields/lib/custom_fields/language/nl/custom_field_types.yml +0 -40
  366. data/lib/zen/package/custom_fields/lib/custom_fields/language/nl/custom_fields.yml +0 -54
  367. data/lib/zen/package/menus/lib/menus/language/en/menu_items.yml +0 -41
  368. data/lib/zen/package/menus/lib/menus/language/en/menus.yml +0 -40
  369. data/lib/zen/package/menus/lib/menus/language/nl/menu_items.yml +0 -41
  370. data/lib/zen/package/menus/lib/menus/language/nl/menus.yml +0 -40
  371. data/lib/zen/package/menus/lib/menus/plugin/menus.rb +0 -152
  372. data/lib/zen/package/sections/lib/sections/language/en/section_entries.yml +0 -44
  373. data/lib/zen/package/sections/lib/sections/language/en/sections.yml +0 -48
  374. data/lib/zen/package/sections/lib/sections/language/nl/section_entries.yml +0 -44
  375. data/lib/zen/package/sections/lib/sections/language/nl/sections.yml +0 -48
  376. data/lib/zen/package/sections/lib/sections/plugin/section_entries.rb +0 -244
  377. data/lib/zen/package/sections/lib/sections/plugin/sections.rb +0 -87
  378. data/lib/zen/package/settings/lib/settings/language/en/settings.yml +0 -36
  379. data/lib/zen/package/settings/lib/settings/language/nl/settings.yml +0 -37
  380. data/lib/zen/package/settings/lib/settings/plugin/group_base.rb +0 -39
  381. data/lib/zen/package/settings/lib/settings/plugin/setting_base.rb +0 -133
  382. data/lib/zen/package/settings/lib/settings/plugin/settings.rb +0 -251
  383. data/lib/zen/package/users/lib/users/controller/access_rules.rb +0 -284
  384. data/lib/zen/package/users/lib/users/language/en/access_rules.yml +0 -38
  385. data/lib/zen/package/users/lib/users/language/en/user_groups.yml +0 -32
  386. data/lib/zen/package/users/lib/users/language/en/users.yml +0 -57
  387. data/lib/zen/package/users/lib/users/language/nl/access_rules.yml +0 -38
  388. data/lib/zen/package/users/lib/users/language/nl/user_groups.yml +0 -32
  389. data/lib/zen/package/users/lib/users/language/nl/users.yml +0 -57
  390. data/lib/zen/package/users/lib/users/model/access_rule.rb +0 -42
  391. data/lib/zen/package/users/lib/users/public/admin/js/users/access_rules.js +0 -65
  392. data/lib/zen/package/users/lib/users/public/admin/js/users/lib/access_rules.js +0 -49
  393. data/lib/zen/package/users/lib/users/view/admin/access-rules/form.xhtml +0 -120
  394. data/lib/zen/package/users/lib/users/view/admin/access-rules/index.xhtml +0 -102
  395. data/lib/zen/plugin.rb +0 -182
  396. data/lib/zen/plugin/base.rb +0 -46
  397. data/lib/zen/plugin/helper.rb +0 -47
  398. data/lib/zen/plugin/markup/lib/markup.rb +0 -14
  399. data/lib/zen/plugin/markup/lib/markup/language/en/markup.yml +0 -6
  400. data/lib/zen/plugin/markup/lib/markup/markup.rb +0 -165
  401. data/lib/zen/public/admin/js/zen/lib/asset.js +0 -111
  402. data/lib/zen/task/plugin.rake +0 -18
  403. data/lib/zen/theme/base.rb +0 -65
  404. data/proto/app/config/config.rb +0 -18
  405. data/spec/fixtures/zen/language/en/spec.yml +0 -10
  406. data/spec/fixtures/zen/language/nl/spec.yml +0 -7
  407. data/spec/fixtures/zen/package/settings/plugin/settings.rb +0 -20
  408. data/spec/zen/asset.rb +0 -97
  409. data/spec/zen/bin/create.rb +0 -89
  410. data/spec/zen/bin/runner.rb +0 -47
  411. data/spec/zen/helper/acl.rb +0 -149
  412. data/spec/zen/package/categories/plugin/categories.rb +0 -92
  413. data/spec/zen/package/comments/plugin/anti_spam.rb +0 -59
  414. data/spec/zen/package/comments/plugin/comments.rb +0 -107
  415. data/spec/zen/package/menus/plugin/menus.rb +0 -120
  416. data/spec/zen/package/sections/plugin/section_entries.rb +0 -161
  417. data/spec/zen/package/sections/plugin/sections.rb +0 -75
  418. data/spec/zen/package/settings/plugin/settings.rb +0 -33
  419. data/spec/zen/package/users/controller/access_rules.rb +0 -90
  420. data/spec/zen/plugin.rb +0 -64
  421. data/spec/zen/plugin/helper.rb +0 -11
  422. data/spec/zen/plugin/markup.rb +0 -44
@@ -0,0 +1,40 @@
1
+ Zen::Language::Translation.add do |trans|
2
+ trans.language = 'en'
3
+ trans.name = 'categories'
4
+
5
+ trans.translate do |t|
6
+ t['titles.index'] = 'Categories'
7
+ t['titles.edit'] = 'Edit Category'
8
+ t['titles.new'] = 'Add Category'
9
+
10
+ t['labels.id'] = '#'
11
+ t['labels.name'] = 'Name'
12
+ t['labels.description'] = 'Description'
13
+ t['labels.parent'] = 'Parent'
14
+ t['labels.slug'] = 'Slug'
15
+
16
+ t['descriptions.name'] = 'The name of the category'
17
+ t['descriptions.slug'] = 'A URL friendly name of the category'
18
+
19
+ t['messages.no_categories'] = 'No categories were found.'
20
+
21
+ t['success.new'] = 'The category has been created.'
22
+ t['success.save'] = 'The category has been modified.'
23
+ t['success.delete'] = 'The selected categories have been deleted.'
24
+
25
+ t['errors.new'] = 'Failed to add a new category.'
26
+ t['errors.save'] = 'Failed to save the category.'
27
+ t['errors.delete'] = 'Failed to delete the category with ID #%s.'
28
+ t['errors.no_delete'] = 'You haven\'t specified any categories to delete.'
29
+ t['errors.invalid_category'] = 'The specified category is invalid.'
30
+
31
+ t['buttons.new'] = 'Add category'
32
+ t['buttons.save'] = 'Save category'
33
+ t['buttons.delete'] = 'Delete selected categories'
34
+
35
+ t['permissions.show'] = 'Show category'
36
+ t['permissions.edit'] = 'Edit category'
37
+ t['permissions.new'] = 'Add category'
38
+ t['permissions.delete'] = 'Delete category'
39
+ end
40
+ end
@@ -0,0 +1,39 @@
1
+ Zen::Language::Translation.add do |trans|
2
+ trans.language = 'en'
3
+ trans.name = 'category_groups'
4
+
5
+ trans.translate do |t|
6
+ t['titles.index'] = 'Category Groups'
7
+ t['titles.edit'] = 'Edit Category'
8
+ t['titles.new'] = 'Add Category Group'
9
+
10
+ t['labels.id'] = '#'
11
+ t['labels.name'] = 'Name'
12
+ t['labels.description'] = 'Description'
13
+ t['labels.manage'] = 'Manage categories'
14
+
15
+ t['descriptions.name'] = 'The name of the category group'
16
+ t['messages.no_groups'] = 'No category groups were found.'
17
+
18
+ t['success.new'] = 'The category group has been created.'
19
+ t['success.save'] = 'The category group has been modified.'
20
+ t['success.delete'] = 'All selected category groups have been deleted.'
21
+
22
+ t['errors.new'] = 'Failed to add the new category group.'
23
+ t['errors.save'] = 'Failed to modify the category group.'
24
+ t['errors.delete'] = 'Failed to delete the category group with ID #%s.'
25
+ t['errors.invalid_group'] = 'The specified group is invalid.'
26
+ t['errors.no_delete'] = 'You need to specify a category group to delete.'
27
+
28
+ t['buttons.new'] = 'Add group'
29
+ t['buttons.save'] = 'Save group'
30
+ t['buttons.delete'] = 'Delete selected groups'
31
+
32
+ t['permissions.show'] = 'Show category group'
33
+ t['permissions.edit'] = 'Edit category group'
34
+ t['permissions.new'] = 'Add category group'
35
+ t['permissions.delete'] = 'Delete group'
36
+
37
+ t['description'] = 'Managing categories and category groups.'
38
+ end
39
+ end
@@ -0,0 +1,42 @@
1
+ # encoding: utf-8
2
+
3
+ Zen::Language::Translation.add do |trans|
4
+ trans.language = 'nl'
5
+ trans.name = 'categories'
6
+
7
+ trans.translate do |t|
8
+ t['titles.index'] = 'Categoriën'
9
+ t['titles.edit'] = 'Categorie aanpassen'
10
+ t['titles.new'] = 'Categorie aanmaken'
11
+
12
+ t['labels.id'] = '#'
13
+ t['labels.name'] = 'Naam'
14
+ t['labels.description'] = 'Beschrijving'
15
+ t['labels.parent'] = 'Ouder'
16
+ t['labels.slug'] = 'Slug'
17
+
18
+ t['descriptions.name'] = 'De naam van de categorie'
19
+ t['descriptions.slug'] = 'Een URL vriendelijke versie van de naam'
20
+
21
+ t['messages.no_categories'] = 'Er konden geen categoriën worden gevonden'
22
+
23
+ t['success.new'] = 'De categorie is aangemaakt.'
24
+ t['success.save'] = 'De categorie is aangepast.'
25
+ t['success.delete'] = 'De categorie is verwijderd.'
26
+
27
+ t['errors.new'] = 'De categorie kon niet worden aangemaakt.'
28
+ t['errors.save'] = 'De categorie kon niet worden aangepast.'
29
+ t['errors.delete'] = 'De categorie met ID #%s kon niet worden verwijderd.'
30
+ t['errors.no_delete'] = 'U moet ten minste 1 categorie specificeren.'
31
+ t['errors.invalid_category'] = 'De opgegeven categorie is ongeldig.'
32
+
33
+ t['buttons.new'] = 'Categorie aanmaken'
34
+ t['buttons.save'] = 'Categorie opslaan'
35
+ t['buttons.delete'] = 'Geselecteerde categoriën verwijderen'
36
+
37
+ t['permissions.show'] = 'Categorie weergeven'
38
+ t['permissions.edit'] = 'Categorie aanpassen'
39
+ t['permissions.new'] = 'Categorie aanmaken'
40
+ t['permissions.delete'] = 'Categorie verwijderen'
41
+ end
42
+ end
@@ -0,0 +1,42 @@
1
+ # encoding: utf-8
2
+
3
+ Zen::Language::Translation.add do |trans|
4
+ trans.language = 'nl'
5
+ trans.name = 'category_groups'
6
+
7
+ trans.translate do |t|
8
+ t['titles.index'] = 'Categorie groepen'
9
+ t['titles.edit'] = 'Categorie groep aanpassen'
10
+ t['titles.new'] = 'Categorie groep aanmaken'
11
+
12
+ t['labels.id'] = '#'
13
+ t['labels.name'] = 'Naam'
14
+ t['labels.description'] = 'Beschrijving'
15
+ t['labels.manage'] = 'Categoriën beheren'
16
+
17
+ t['description.name'] = 'De naam van de group'
18
+ t['messages.no_groups'] = 'Er konden geen groepen worden gevonden.'
19
+
20
+ t['success.new'] = 'De categorie groep is aangemaakt.'
21
+ t['success.save'] = 'De categorie groep is aangepast.'
22
+ t['success.delete'] = 'De categorie groep is verwijderd.'
23
+
24
+ t['errors.new'] = 'De categorie groep kon niet worden aangemaakt.'
25
+ t['errors.save'] = 'De categorie groep kon niet worden aangepast.'
26
+ t['errors.delete'] = 'De categorie groep met ID #%s kon niet worden ' \
27
+ 'verwijderd.'
28
+ t['errors.invalid_group'] = 'De opgegeven categorie groep is ongeldig.'
29
+ t['errors.no_delete'] = 'U moet een groep opgeven om te verwijderen.'
30
+
31
+ t['buttons.new'] = 'Groep aanmaken'
32
+ t['buttons.save'] = 'Groep opslaan'
33
+ t['buttons.delete'] = 'Geselecteerde groepen verwijderen'
34
+
35
+ t['permissions.show'] = 'Categorie groep weergeven'
36
+ t['permissions.edit'] = 'Categorie groep aanpassen'
37
+ t['permissions.new'] = 'Categorie groep aanmaken'
38
+ t['permissions.delete'] = 'Categorie groep verwijderen'
39
+
40
+ t['description'] = 'Beheren van categorie groepen en categoriën.'
41
+ end
42
+ end
@@ -1,43 +1,39 @@
1
- #:nodoc:
2
1
  module Categories
3
2
  #:nodoc:
4
3
  module Model
5
4
  ##
6
- # Model that represents a single category. This model has the following
7
- # relations:
5
+ # Model for managing and retrieving categories.
8
6
  #
9
- # * category groups (one to one)
10
- # * self (many to one)
11
- #
12
- # This model uses the following plugins:
13
- #
14
- # * sluggable (source: "name")
15
- #
16
- # When creating or saving a category the fields "name" and "slug" are
17
- # required. The latter is only needed when saving an existing category as a
18
- # slug will be generated whenever the field is empty. It's also important to
19
- # remember that slugs have to be unique. For more info see the validate()
20
- # method.
21
- #
22
- # @author Yorick Peterse
23
7
  # @since 0.1
24
8
  #
25
9
  class Category < Sequel::Model
26
- many_to_one :category_group, :class => "Categories::Model::CategoryGroup"
10
+ include Zen::Model::Helper
11
+
12
+ many_to_one :category_group, :class => 'Categories::Model::CategoryGroup'
27
13
  many_to_one :parent , :class => self
28
-
14
+
29
15
  plugin :sluggable, :source => :name, :frozen => false
30
-
16
+
17
+ ##
18
+ # Searches for a set of category groups using the specified search query.
19
+ #
20
+ # @since 16-10-2011
21
+ # @param [String] query The search query.
22
+ # @return [Mixed]
23
+ #
24
+ def self.search(query)
25
+ return filter(search_column(:name, query))
26
+ end
27
+
31
28
  ##
32
- # Validation rules for our model.
29
+ # Validates the model.
33
30
  #
34
- # @author Yorick Peterse
35
31
  # @since 0.1
36
32
  #
37
33
  def validate
38
- validates_presence :name
39
- validates_max_length 255, [:name, :slug]
40
- validates_unique :slug
34
+ validates_presence([:name, :category_group_id])
35
+ validates_max_length(255, [:name, :slug])
36
+ validates_unique(:slug)
41
37
  end
42
38
  end # Category
43
39
  end # Model
@@ -1,30 +1,36 @@
1
- #:nodoc:
2
1
  module Categories
3
2
  #:nodoc:
4
3
  module Model
5
4
  ##
6
- # Model that represents a single category group. Each category group
7
- # has the following relations to other models:
5
+ # Model that represents a single category group.
8
6
  #
9
- # * categories (one to many)
10
- # * sections (many to many)
11
- #
12
- # When saving or creating a category group the "name" field is required
13
- # and should be no longer than 255 characters.
7
+ # @since 0.1
14
8
  #
15
9
  class CategoryGroup < Sequel::Model
16
- one_to_many :categories, :class => "Categories::Model::Category"
17
- many_to_many :sections , :class => "Sections::Model::Section"
18
-
10
+ include Zen::Model::Helper
11
+
12
+ one_to_many :categories, :class => 'Categories::Model::Category'
13
+ many_to_many :sections , :class => 'Sections::Model::Section'
14
+
15
+ ##
16
+ # Searches for a set of category groups using the specified search query.
17
+ #
18
+ # @since 16-10-2011
19
+ # @param [String] query The search query.
20
+ # @return [Mixed]
21
+ #
22
+ def self.search(query)
23
+ return filter(search_column(:name, query))
24
+ end
25
+
19
26
  ##
20
- # Validation rules for our model.
27
+ # Validation rules for the model.
21
28
  #
22
- # @author Yorick Peterse
23
29
  # @since 0.1
24
30
  #
25
31
  def validate
26
- validates_presence :name
27
- validates_max_length 255, :name
32
+ validates_presence(:name)
33
+ validates_max_length(255, :name)
28
34
  end
29
35
  end # CategoryGroup
30
36
  end # Model
@@ -1,52 +1,51 @@
1
- <article>
1
+ <section>
2
2
  <header>
3
3
  <h1>#{get_breadcrumbs}</h1>
4
4
  </header>
5
-
6
- #{
7
- form_for(
8
- @category,
9
- :method => :post,
10
- :action => Categories::Controller::Categories.r(:save),
5
+
6
+ #{form_for(
7
+ @category,
8
+ :method => :post,
9
+ :action => Categories::Controller::Categories.r(:save),
11
10
  :id => :category_form
12
11
  ) do |f|
13
12
  f.input_hidden(:category_group_id, @category_group_id)
14
13
  f.input_hidden(:id , @category.id)
15
14
  f.input_hidden(:csrf_token , get_csrf_token)
16
-
15
+
17
16
  f.g.div(:id => 'general') do
18
17
  f.input_text(
19
- lang('categories.labels.name'),
20
- :name,
21
- :placeholder => lang('categories.placeholders.name'),
22
- :required => :required,
18
+ lang('categories.labels.name'),
19
+ :name,
20
+ :title => lang('categories.descriptions.name'),
21
+ :required => :required,
23
22
  :maxlength => 255
24
23
  )
25
24
 
26
25
  f.input_text(
27
26
  lang('categories.labels.slug'),
28
- :slug,
29
- :placeholder => lang('categories.placeholders.slug')
27
+ :slug,
28
+ :title => lang('categories.descriptions.slug'),
29
+ :maxlength => 255
30
30
  )
31
-
31
+
32
32
  f.select(
33
- lang('categories.labels.parent'),
34
- :parent_id,
35
- :values => parent_categories(@category.id, @category_group_id),
36
- :size => 1,
33
+ lang('categories.labels.parent'),
34
+ :parent_id,
35
+ :values => parent_categories(@category.id, @category_group_id),
36
+ :size => 1,
37
37
  :selected => @category.parent_id
38
38
  )
39
-
39
+
40
40
  f.textarea(
41
- lang('categories.labels.description'),
42
- :description,
41
+ lang('categories.labels.description'),
42
+ :description,
43
43
  :rows => 8
44
44
  )
45
45
  end
46
-
46
+
47
47
  f.g.div(:class => 'button') do
48
48
  f.g.input(:type => 'submit', :value => lang('categories.buttons.save'))
49
49
  end
50
- end
51
- }
52
- </article>
50
+ end}
51
+ </section>
@@ -1,4 +1,8 @@
1
- <article>
1
+ <section>
2
+ #{render_search_form(
3
+ ::Categories::Controller::Categories.r(:index, @category_group_id)
4
+ )}
5
+
2
6
  <header>
3
7
  <h1>#{get_breadcrumbs}</h1>
4
8
  </header>
@@ -6,15 +10,13 @@
6
10
  <form method="post"
7
11
  action="#{Categories::Controller::Categories.r(:delete)}">
8
12
  <input type="hidden" name="csrf_token" value="#{get_csrf_token}" />
9
- <input type="hidden" name="category_group_id"
10
- value="#{@category_group_id}" />
11
13
 
12
14
  <?r if !@categories.empty? ?>
13
15
 
14
16
  <table>
15
17
  <thead>
16
18
  <tr>
17
- <?r if user_authorized?([:delete]) ?>
19
+ <?r if user_authorized?(:delete_category) ?>
18
20
  <th class="no_sort">
19
21
  <input type="checkbox" />
20
22
  </th>
@@ -29,7 +31,7 @@
29
31
  <tbody>
30
32
  <?r @categories.each do |category| ?>
31
33
  <tr>
32
- <?r if user_authorized?([:delete]) ?>
34
+ <?r if user_authorized?(:delete_category_group) ?>
33
35
  <td>
34
36
  <input type="checkbox" name="category_ids[]"
35
37
  value="#{category.id}" />
@@ -37,20 +39,18 @@
37
39
  <?r end ?>
38
40
 
39
41
  <td>#{category.id}</td>
40
-
41
- <?r if user_authorized?([:update]) ?>
42
42
  <td>
43
- #{Categories::Controller::Categories.a(
44
- category.name,
45
- :edit,
46
- @category_group_id,
47
- category.id
48
- )}
43
+ #{if user_authorized?(:edit_category_group)
44
+ Categories::Controller::Categories.a(
45
+ category.name,
46
+ :edit,
47
+ @category_group_id,
48
+ category.id
49
+ )
50
+ else
51
+ category.name
52
+ end}
49
53
  </td>
50
- <?r else ?>
51
- <td>#{category.name}</td>
52
- <?r end ?>
53
-
54
54
  <td>#{category.slug}</td>
55
55
  <td>
56
56
  #{category.parent.name \
@@ -61,17 +61,17 @@
61
61
  </tbody>
62
62
  </table>
63
63
 
64
- #{
65
- if @categories.respond_to?(:navigation) and @categories.page_count > 1
64
+ #{if @categories.respond_to?(:navigation) and @categories.page_count > 1
66
65
  @categories.navigation
67
- end
68
- }
66
+ end}
69
67
 
70
68
  <?r else ?>
69
+
71
70
  <p>#{lang('categories.messages.no_categories')}</p>
71
+
72
72
  <?r end ?>
73
73
 
74
- <?r if user_authorized?([:create]) ?>
74
+ <?r if user_authorized?(:new_category) ?>
75
75
  <div class="button">
76
76
  #{Categories::Controller::Categories.a(
77
77
  lang('categories.buttons.new'),
@@ -81,11 +81,11 @@
81
81
  </div>
82
82
  <?r end ?>
83
83
 
84
- <?r if user_authorized?([:delete]) and !@categories.empty? ?>
84
+ <?r if user_authorized?(:delete_category) and !@categories.empty? ?>
85
85
  <div class="button">
86
86
  <input type="submit"
87
87
  value="#{lang('categories.buttons.delete')}" />
88
88
  </div>
89
89
  <?r end ?>
90
90
  </form>
91
- </article>
91
+ </section>