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
@@ -1,54 +0,0 @@
1
- ---
2
- titles:
3
- index: 'Custom Fields'
4
- edit : 'Edit Custom Field'
5
- new : 'Add Custom Field'
6
-
7
- labels:
8
- id : '#'
9
- name : 'Name'
10
- slug : 'Slug'
11
- format : 'Format'
12
- description : 'Description'
13
- possible_values : 'Possible values (one value per line)'
14
- required : 'Requires a value'
15
- text_editor : 'Enable a text editor'
16
- textarea_rows : 'Textarea rows'
17
- text_limit : 'Character limit'
18
- sort_order : 'Sort order'
19
- custom_field_type_id: 'Field type'
20
-
21
- tabs:
22
- general : 'General'
23
- settings: 'Settings'
24
-
25
- messages:
26
- no_fields: 'No custom fields have been added yet.'
27
-
28
- errors:
29
- new : 'Failed to create a new custom field.'
30
- save : 'Failed to modify the custom field.'
31
- delete : 'Failed to delete the custom field with ID #%s.'
32
- no_delete : "You haven't specified any custom fields to delete."
33
- invalid_field: 'The specified custom field is invalid.'
34
-
35
- success:
36
- new : 'The new custom field has been created.'
37
- save : 'The custom field has been modified.'
38
- delete : 'The selected custom fields have been deleted.'
39
-
40
- special:
41
- type_hash:
42
- textbox : 'Textbox'
43
- textarea : 'Textarea'
44
- radio : 'Radio button'
45
- checkbox : 'Checkbox'
46
- date : 'Date'
47
- select : 'Select dropdown'
48
- select_multiple: 'Multi select'
49
- password : 'Password'
50
-
51
- buttons:
52
- new : 'Add custom field'
53
- delete: 'Delete selected fields'
54
- save : 'Save custom field'
@@ -1,33 +0,0 @@
1
- ---
2
- titles:
3
- index: 'Veld groepen'
4
- edit : 'Veld groep aanpassen'
5
- new : 'Veld groep aanmaken'
6
-
7
- labels:
8
- id : '#'
9
- name : 'Naam'
10
- description : 'Beschrijving'
11
- sections : 'Secties'
12
- manage_fields: 'Beheer velden'
13
- none : 'Geen'
14
-
15
- messages:
16
- no_groups: 'Er zijn nog geen veld groepen aangemaakt.'
17
-
18
- success:
19
- new : 'De veld groep is aangemaakt.'
20
- save : 'De veld groep is aangepast.'
21
- delete: 'De veld groep is verwijderd.'
22
-
23
- errors:
24
- new : 'De veld groep kon niet worden aangemaakt.'
25
- save : 'De veld groep kon niet worden aangepast.'
26
- delete : 'De veld groep met ID #%s kon niet worden verwijderd.'
27
- no_delete : 'U moet ten minste 1 groep specificeren om te verwijderen.'
28
- invalid_group: 'De opgegeven veld groep is ongeldig.'
29
-
30
- buttons:
31
- new : 'Groep aanmaken'
32
- save : 'Groep opslaan'
33
- delete: 'Geselecteerde groepen verwijderen'
@@ -1,40 +0,0 @@
1
- ---
2
- titles:
3
- index: 'Veld types'
4
- edit : 'Veld type aanpassen'
5
- new : 'Veld type toevoegen'
6
-
7
- labels:
8
- id : '#'
9
- name : 'Naam'
10
- language_string : 'Vertaal naam'
11
- html_class : 'CSS klasse'
12
- serialize : 'Serialiseren'
13
- allow_markup : 'Opmaak toegestaan'
14
- custom_field_method_id: 'Veld methode'
15
-
16
- placeholders:
17
- language_string: 'De volledige naam van de vertaling voor dit veld.'
18
- html_class : 'Een set aan HTML klasses voor alle velden van dit type.'
19
- serialize : 'De waarde wel of niet serialiseren.'
20
- allow_markup : 'Opmaak toegestaan of niet.'
21
-
22
- messages:
23
- no_field_types: 'Er zijn nog geen veld types aangemaakt.'
24
-
25
- errors:
26
- new : 'Het veld type kon niet worden aangemaakt.'
27
- save : 'Het veld type kon niet worden aangepast.'
28
- delete : 'Het veld type met ID #%s kon niet worden verwijderd.'
29
- no_delete : 'U moet ten minste 1 veld type specificeren om te verwijderen.'
30
- invalid_type: 'Het opgegeven veld type is ongeldig.'
31
-
32
- success:
33
- new : 'Het veld type is aangemaakt.'
34
- save : 'Het veld type is aangepast.'
35
- delete: 'Alle geselecteerde veld types zijn verwijderd.'
36
-
37
- buttons:
38
- new : 'Veld type toevoegen'
39
- delete: 'Geselecteerde types verwijderen'
40
- save : 'Veld type opslaan'
@@ -1,54 +0,0 @@
1
- ---
2
- titles:
3
- index: 'Velden'
4
- edit : 'Veld aanpassen'
5
- new : 'Veld aanmaken'
6
-
7
- labels:
8
- id : '#'
9
- name : 'Naam'
10
- slug : 'Slug'
11
- format : 'Formaat'
12
- description : 'Beschrijving'
13
- possible_values : 'Mogelijke waardes (een per regel)'
14
- required : 'Vereist een waarde'
15
- text_editor : 'Text verwerker'
16
- textarea_rows : 'Text veld rijen'
17
- text_limit : 'Karakter limiet'
18
- sort_order : 'Sorteer volgorde'
19
- custom_field_type_id: 'Veld type'
20
-
21
- tabs:
22
- general : 'Algemeen'
23
- settings: 'Instellingen'
24
-
25
- messages:
26
- no_fields: 'Er zijn nog geen velden aangemaakt.'
27
-
28
- success:
29
- new : 'Het veld is aangemaakt.'
30
- save : 'Het veld is aangepast.'
31
- delete: 'Alle geselecteerde velden zijn verwijderd.'
32
-
33
- errors:
34
- new : 'Het veld kon niet worden aangemaakt.'
35
- save : 'Het veld kon niet worden aangepast.'
36
- delete : 'Het veld met ID #%s kon niet worden verwijderd.'
37
- no_delete : 'U moet ten minste 1 veld specificeren om te verwijderen.'
38
- invalid_field: 'Het opgegeven veld is ongeldig.'
39
-
40
- special:
41
- type_hash:
42
- textbox : 'Text veld'
43
- textarea : 'Text gebied'
44
- radio : 'Keuze knop (enkele waarde)'
45
- checkbox : 'Keuze knop (meerdere waardes)'
46
- date : 'Datum'
47
- select : 'Lijst (enkele waarde)'
48
- select_multiple: 'Lijst (meerdere waardes)'
49
- password : 'Wachtwoord'
50
-
51
- buttons:
52
- new : 'Veld toevoegen'
53
- delete: 'Geselecteerde velden verwijderen'
54
- save : 'Veld opslaan'
@@ -1,41 +0,0 @@
1
- ---
2
- titles:
3
- index : 'Menu Items'
4
- edit : 'Edit Menu Item'
5
- new : 'Create Menu Item'
6
-
7
- labels:
8
- id : '#'
9
- parent_id : 'Parent'
10
- name : 'Name'
11
- url : 'URL'
12
- order : 'Order'
13
- html_class : 'HTML class'
14
- html_id : 'HTML ID'
15
-
16
- placeholders:
17
- name : 'The text that will be displayed in the link.'
18
- url : 'The location to which the link will point.'
19
- order : 'A number that indicates the sort order.'
20
- html_class : 'Specify a class name (or multiple names) to apply to this item.'
21
- html_id : 'Specify an ID to apply to this item.'
22
-
23
- messages:
24
- no_items : 'No menu items have been added yet.'
25
-
26
- buttons:
27
- new : 'Add menu item'
28
- save : 'Save menu item'
29
- delete : 'Delete selected menu items'
30
-
31
- success:
32
- new : 'The menu item has been created.'
33
- save : 'The menu item has been modified.'
34
- delete : 'The selected menu items have been deleted.'
35
-
36
- errors:
37
- new : 'The menu item could not be created.'
38
- save : 'The menu item could not be modified.'
39
- delete : 'The menu item with ID #%s could not be deleted.'
40
- no_delete : 'You need to specify at least one item to delete.'
41
- invalid_item : 'The specified menu item is invalid.'
@@ -1,40 +0,0 @@
1
- ---
2
- titles:
3
- index : 'Menus'
4
- edit : 'Edit Menu'
5
- new : 'Add Menu'
6
-
7
- labels:
8
- id : '#'
9
- name : 'Name'
10
- slug : 'Slug'
11
- description : 'Description'
12
- html_class : 'CSS class'
13
- html_id : 'CSS ID'
14
- manage_items : 'Manage menu items'
15
-
16
- placeholders:
17
- name : 'Specify the name of the menu.'
18
- slug : 'Specify the URL friendly name of the menu.'
19
- html_class : 'A number of classes to apply to the menu.'
20
- html_id : 'An ID to apply to the menu.'
21
-
22
- messages:
23
- no_menus: 'No menus have been added yet.'
24
-
25
- buttons:
26
- new : 'Add menu'
27
- save : 'Save menu'
28
- delete : 'Delete selected menus'
29
-
30
- success:
31
- new : 'The menu has been created.'
32
- save : 'The menu has been modified.'
33
- delete : 'The selected menus have been deleted.'
34
-
35
- errors:
36
- new : 'The menu could not be created.'
37
- save : 'The menu could not be modified.'
38
- delete : 'The menu with ID #%s could not be deleted.'
39
- no_delete : 'You need to specify at least one menu to delete.'
40
- invalid_menu: 'The specified menu is invalid.'
@@ -1,41 +0,0 @@
1
- ---
2
- titles:
3
- index: 'Menu items'
4
- edit : 'Menu item aanpassen'
5
- new : 'Menu item aanmaken'
6
-
7
- labels:
8
- id : '#'
9
- parent_id: 'Hoofd item'
10
- name : 'Naam'
11
- url : 'URL'
12
- order : 'Volgorde'
13
- html_class: 'CSS klasse'
14
- html_id : 'CSS ID'
15
-
16
- placeholders:
17
- name : 'De naam/label van het menu item.'
18
- url : 'De URL van het menu item.'
19
- order : 'De sorteer volgorde.'
20
- html_class: 'Een of meerdere klasses voor dit item.'
21
- html_id : 'Een ID voor dit item.'
22
-
23
- messages:
24
- no_items: 'Er zijn nog geen menu items aangemaakt.'
25
-
26
- buttons:
27
- new : 'Menu item toevoegen'
28
- save : 'Menu item opslaan'
29
- delete: 'Geselecteerde menu items verwijderen'
30
-
31
- success:
32
- new : 'Het menu item is aangemaakt.'
33
- save : 'Het menu item is aangepast.'
34
- delete: 'De menu items zijn verwijderd.'
35
-
36
- errors:
37
- new : 'Het menu item kon niet worden aangemaakt.'
38
- save : 'Het menu item kon niet worden aangepast.'
39
- delete : 'Het menu item met ID #%s kon niet worden verwijderd.'
40
- no_delete : 'U moet ten minste 1 item specificeren om te verwijderen.'
41
- invalid_item: 'Het opgegeven menu item is ongeldig.'
@@ -1,40 +0,0 @@
1
- ---
2
- titles:
3
- index: "Menu's"
4
- edit : 'Menu aanpassen'
5
- new : 'Menu aanmaken'
6
-
7
- labels:
8
- id : '#'
9
- name : 'Naam'
10
- slug : 'Slug'
11
- description : 'Beschrijving'
12
- html_class : 'CSS klasse'
13
- html_id : 'CSS ID'
14
- manage_items: 'Menu items beheren'
15
-
16
- placeholders:
17
- name : 'De naam van het menu.'
18
- slug : 'Een URL vriendelijke versie van de menu naam.'
19
- html_class: 'Een of meerdere klasses voor dit menu.'
20
- html_id : 'Een ID voor dit menu.'
21
-
22
- messages:
23
- no_menus: "Er zijn nog geen menu's aangemaakt."
24
-
25
- buttons:
26
- new : 'Menu toevoegen'
27
- save : 'Menu opslaan'
28
- delete: "Geselecteerde menu's verwijderen"
29
-
30
- success:
31
- new : 'Het menu is aangemaakt.'
32
- save : 'Het menu is aangepast.'
33
- delete: "De geselecteerde menu's zijn verwijderd."
34
-
35
- errors:
36
- new : 'Het menu kon niet worden aangemaakt.'
37
- save : 'Het menu kon niet worden aangepast.'
38
- delete : 'Het menu met ID #%s kon niet worden verwijderd.'
39
- no_delete : 'U moet ten minste 1 menu specificeren om te verwijderen.'
40
- invalid_menu: 'Het opgegeven menu is ongeldig.'
@@ -1,152 +0,0 @@
1
- require 'ramaze/gestalt'
2
-
3
- #:nodoc:
4
- module Menus
5
- #:nodoc:
6
- module Plugin
7
- ##
8
- # Plugin for displaying navigation menus. This plugin will take care of
9
- # recursively displaying all sub items and various other tasks, you merely
10
- # have to set a few options and then you can sit back and enjoy.
11
- #
12
- # ## Usage
13
- #
14
- # menu = plugin(:menus, :menu => 'userguide', :sub => true)
15
- #
16
- # Calling this plugin will result in a string with HTML being returned. If
17
- # you were to use this plugin in an Etanni template you'd have to wrap the
18
- # call in #{} in order to actually display the menu.
19
- #
20
- # For more information about all the available options see
21
- # Menus::Plugin::Menus#initialize().
22
- #
23
- # @author Yorick Peterse
24
- # @since 0.2.5
25
- #
26
- class Menus
27
- include ::Zen::Plugin::Helper
28
- include ::Menus::Model
29
-
30
- ##
31
- # Creates a new instance of the plugin and saves the configuration options.
32
- #
33
- # @example
34
- # plugin = Menus::Plugin::Menus.new(:limit => 10, :offset => 0, :sub => false)
35
- #
36
- # @author Yorick Peterse
37
- # @since 0.2.5
38
- # @param [Hash] options Hash with configuration options.
39
- # @option options [Integer/Fixnum] :limit The maximum amount of root items
40
- # to retrieve.
41
- # @option options [Integer/Fixnum] :offset The row offset for all root
42
- # elements.
43
- # @option options [Fixnum/Integer/String] :menu The ID or slug of the menu
44
- # for which to retrieve all menu items.
45
- # @option options [Boolean] :sub When set to false sub items will be
46
- # ignored. This option is set to true by default.
47
- #
48
- def initialize(options = {})
49
- @options = {
50
- :limit => 20,
51
- :offset => 0,
52
- :menu => nil,
53
- :sub => false,
54
- :order => :asc
55
- }.merge(options)
56
-
57
- validate_type(@options[:limit] , :limit , [Integer, Fixnum])
58
- validate_type(@options[:offset], :offset, [Integer, Fixnum])
59
- validate_type(@options[:menu] , :menu , [String , Integer, Fixnum])
60
- validate_type(@options[:order] , :order , [String , Symbol])
61
- end
62
-
63
- ##
64
- # Renders the navigation menu based on the given configuration options.
65
- #
66
- # @author Yorick Peterse
67
- # @since 0.2.5
68
- # @return [String] The HTML for the navigation menu.
69
- #
70
- def call
71
- # Retrieve the menu
72
- if @options[:menu].class == String
73
- menu = Menu[:slug => @options[:menu]]
74
- else
75
- menu = Menu[@options[:menu]]
76
- end
77
-
78
- return if !menu
79
-
80
- # Get all menu items
81
- menu_items = MenuItem.filter(:menu_id => menu.id, :parent_id => nil) \
82
- .limit(@options[:limit], @options[:offset]) \
83
- .order(:sort_order.send(@options[:order])) \
84
- .all
85
-
86
- @g = Ramaze::Gestalt.new
87
- attributes = {}
88
- items_tree = {}
89
-
90
- # Set the attributes for the main <ul> elements
91
- if !menu.html_class.nil?
92
- attributes[:class] = menu.html_class if !menu.html_class.empty?
93
- end
94
-
95
- if !menu.html_id.nil?
96
- attributes[:id] = menu.html_id if !menu.html_id.empty?
97
- end
98
-
99
- # Time to build the HTML
100
- @g.ul(attributes) do
101
- menu_items.each do |item|
102
- if item.parent_id.nil?
103
- generate_item(item)
104
- end
105
- end
106
- end
107
-
108
- return @g.to_s
109
- end
110
-
111
- private
112
-
113
- ##
114
- # Generates the HTML for a single <li> element and all sub elements.
115
- #
116
- # @author Yorick Peterse
117
- # @since 0.2.5
118
- # @param [Object] item An instance of the MenuItem model as returned by
119
- # Sequel.
120
- #
121
- def generate_item(item)
122
- attributes = {}
123
-
124
- if !item.html_class.nil?
125
- attributes[:class] = item.html_class if !item.html_class.empty?
126
- end
127
-
128
- if !item.html_id.nil?
129
- attributes[:id] = item.html_id if !item.html_id.empty?
130
- end
131
-
132
- # Render the <li> tag
133
- @g.li(attributes) do
134
- @g.a(:href => item.url, :title => item.name) { item.name }
135
-
136
- # Generate all the sub elements
137
- if @options[:sub] === true
138
- children = item.children
139
-
140
- if !children.empty?
141
- @g.ul(:class => :children) do
142
- children.each do |child|
143
- generate_item(child)
144
- end
145
- end
146
- end # if !children.empty?
147
- end
148
- end
149
- end
150
- end # Menus
151
- end # Plugin
152
- end # Menus