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,137 @@
1
+ #:nodoc:
2
+ module Sequel
3
+ #:nodoc:
4
+ module Plugins
5
+
6
+ # The Sluggable plugin creates hook that automatically sets
7
+ # 'slug' field to the slugged value of the column specified
8
+ # by :source option.
9
+ #
10
+ # You need to have "target" column in your model.
11
+ module Sluggable
12
+ #:nodoc:
13
+ DEFAULT_TARGET_COLUMN = :slug
14
+
15
+ # Plugin configuration
16
+ def self.configure(model, opts={})
17
+ model.sluggable_options = opts
18
+ model.sluggable_options.freeze
19
+
20
+ model.class_eval do
21
+ # Sets the slug to the normalized URL friendly string
22
+ #
23
+ # Compute slug for the value
24
+ #
25
+ # @param [String] String to be slugged
26
+ # @return [String]
27
+ define_method("#{sluggable_options[:target]}=") do |value|
28
+ sluggator = self.class.sluggable_options[:sluggator]
29
+
30
+ if sluggator.respond_to?(:call)
31
+ slug = sluggator.call(value, self)
32
+ end
33
+
34
+ if sluggator
35
+ slug ||= self.send(sluggator, value)
36
+ end
37
+
38
+ # If a slug is an empty string or a nil value it's value should be
39
+ # pulled from the source attribute.
40
+ if value.nil? or (value.respond_to?(:empty?) and value.empty?)
41
+ slug = self.send(self.class.sluggable_options[:source])
42
+ end
43
+
44
+ slug ||= to_slug(value)
45
+
46
+ super(slug)
47
+ end
48
+ end
49
+
50
+ end
51
+
52
+ #:nodoc:
53
+ module ClassMethods
54
+ attr_reader :sluggable_options
55
+
56
+ # Finds model by slug or PK
57
+ #
58
+ # @return [Sequel::Model, nil]
59
+ def find_by_pk_or_slug(value)
60
+ value.to_s =~ /^\d+$/ ? self[value] : self.find_by_slug(value)
61
+ end
62
+
63
+ # Finds model by Slug column
64
+ #
65
+ # @return [Sequel::Model, nil]
66
+ def find_by_slug(value)
67
+ self[@sluggable_options[:target] => value.chomp]
68
+ end
69
+
70
+ # Propagate settings to the child classes
71
+ #
72
+ # @param [Class] Child class
73
+ def inherited(klass)
74
+ super
75
+ klass.sluggable_options = self.sluggable_options.dup
76
+ end
77
+
78
+ # Set the plugin options
79
+ #
80
+ # Options:
81
+ # @param [Hash] plugin options
82
+ # @option frozen [Boolean] :Is slug frozen, default true
83
+ # @option sluggator [Proc, Symbol] :Algorithm to convert string to slug.
84
+ # @option source [Symbol] :Column to get value to be slugged from.
85
+ # @option target [Symbol] :Column to write value of the slug to.
86
+ def sluggable_options=(options)
87
+ raise ArgumentError, "You must provide :source column" unless options[:source]
88
+ sluggator = options[:sluggator]
89
+ if sluggator && !sluggator.is_a?(Symbol) && !sluggator.respond_to?(:call)
90
+ raise ArgumentError, "If you provide :sluggator it must be Symbol or callable."
91
+ end
92
+ options[:source] = options[:source].to_sym
93
+ options[:target] = options[:target] ? options[:target].to_sym : DEFAULT_TARGET_COLUMN
94
+ options[:frozen] = options[:frozen].nil? ? true : !!options[:frozen]
95
+ @sluggable_options = options
96
+ end
97
+ end
98
+
99
+ #:nodoc:
100
+ module InstanceMethods
101
+
102
+ # Sets a slug column to the slugged value
103
+ def before_create
104
+ super
105
+ target = self.class.sluggable_options[:target]
106
+ set_target_column unless self.send(target)
107
+ end
108
+
109
+ # Sets a slug column to the slugged value
110
+ def before_update
111
+ super
112
+ target = self.class.sluggable_options[:target]
113
+ frozen = self.class.sluggable_options[:frozen]
114
+ set_target_column if !self.send(target) || !frozen
115
+ end
116
+
117
+ private
118
+
119
+ # Generate slug from the passed value
120
+ #
121
+ # @param [String] String to be slugged
122
+ # @return [String]
123
+ def to_slug(value)
124
+ value.chomp.downcase.gsub(/[^a-z0-9]+/,'-')
125
+ end
126
+
127
+ # Sets target column with source column which
128
+ # effectively triggers slug generation
129
+ def set_target_column
130
+ target = self.class.sluggable_options[:target]
131
+ source = self.class.sluggable_options[:source]
132
+ self.send("#{target}=", self.send(source))
133
+ end
134
+ end # InstanceMethods
135
+ end # Sluggable
136
+ end # Plugins
137
+ end # Sequel
data/lib/yard/tags.rb ADDED
@@ -0,0 +1,13 @@
1
+ require 'yard'
2
+
3
+ # The @map tag is used to indicate at what URI a controller is mapped.
4
+ YARD::Tags::Library.define_tag('Mapped URI', :map)
5
+
6
+ # The @permission tag can be used to define the required permissions.
7
+ YARD::Tags::Library.define_tag('Required permissions', :permission)
8
+
9
+ # The @event tag is a tag that indicates all the available events in a block of
10
+ # code.
11
+ YARD::Tags::Library.define_tag('Available Events', :event)
12
+
13
+ YARD::Tags::Library.visible_tags += [:permission, :map, :event]
data/lib/zen.rb CHANGED
@@ -1,123 +1,193 @@
1
- require 'rubygems'
2
1
  require 'ramaze'
3
- require 'yaml'
4
2
 
5
3
  Ramaze.setup(:verbose => false) do
6
- gem 'sequel' , ['~> 3.26']
7
- gem 'bcrypt-ruby' , ['~> 2.1.4'], :lib => 'bcrypt'
8
- gem 'sequel_sluggable', ['~> 0.0.6']
9
- gem 'loofah' , ['~> 1.0.0']
4
+ gem 'sequel' , ['~> 3.28.0']
5
+ gem 'bcrypt-ruby' , ['~> 3.0.1'], :lib => 'bcrypt'
6
+ gem 'loofah' , ['~> 1.2.0']
7
+ gem 'ramaze-asset', ['~> 0.2.3'], :lib => 'ramaze/asset'
10
8
  end
11
9
 
12
- require __DIR__('zen/version')
10
+ unless $LOAD_PATH.include?(__DIR__)
11
+ $LOAD_PATH.unshift(__DIR__)
12
+ end
13
13
 
14
14
  ##
15
15
  # Main module for Zen, all other modules and classes will be placed inside this
16
- # module. This module loads all required classes and is used for starting the
17
- # application.
16
+ # module.
18
17
  #
19
- # @author Yorick Peterse
20
18
  # @since 0.1
21
19
  #
22
20
  module Zen
23
- # Update several paths so we can load helpers/layouts from the Zen gem
24
- Innate::HelpersHelper.options.paths.push(__DIR__('zen'))
25
- Ramaze.options.roots.push(__DIR__('zen'))
26
-
27
21
  class << self
28
- ##
29
- # Variable that will contain a database connection that was established
30
- # using Sequel.connect.
31
- #
32
- # @author Yorick Peterse
33
- # @since 0.2.6
34
- #
22
+ # The database connection to use for Sequel.
35
23
  attr_accessor :database
36
24
 
25
+ # Instance of Ramaze::Asset::Environment to use for all backend assets.
26
+ attr_accessor :asset
27
+
28
+ # The root directory of the application.
29
+ attr_reader :root
30
+
37
31
  ##
38
- # String containing the path to the root directory of the Zen application.
32
+ # Sets the root directory and adds the path to Ramaze.options.roots.
39
33
  #
40
- # @author Yorick Peterse
41
- # @since 0.2.6
34
+ # @since 0.3
42
35
  #
43
- attr_accessor :root
36
+ def root=(path)
37
+ @root = path
38
+
39
+ if !Ramaze.options.roots.include?(@root)
40
+ Ramaze.options.roots.push(@root)
41
+ end
42
+ end
44
43
 
45
44
  ##
46
- # Loads the database and the required models.
45
+ # Prepares Zen for the party of it's life.
47
46
  #
48
- # @author Yorick Peterse
49
- # @since 0.1
47
+ # @since 0.3
50
48
  #
51
- def init
52
- # Initialize the database
53
- Zen::Language.load('zen_general')
49
+ def start
50
+ if root.nil?
51
+ raise('You need to specify a valid root directory in Zen.root')
52
+ end
54
53
 
55
- require __DIR__('zen/model/settings')
56
- require __DIR__('zen/model/methods')
54
+ # Set up Ramaze::Cache manually. This makes it possible for the langauge
55
+ # files to cache their data in the custom cache without having to wait for
56
+ # Ramaze to set it up.
57
+ Ramaze::Cache.setup
58
+ Ramaze.options.setup.delete(Ramaze::Cache)
59
+
60
+ require 'zen/model/init'
61
+ require 'zen/model/methods'
62
+
63
+ setup_assets
64
+
65
+ require 'zen/package/all'
57
66
 
58
67
  # Load the global stylesheet and Javascript file if they're located in
59
68
  # ROOT/public/css/admin/global.css and ROOT/public/js/admin/global.js
60
- publics = ::Ramaze.options.publics
69
+ load_global_assets
61
70
 
62
- publics.each do |p|
63
- p = File.join(Zen.root, p)
64
- css = File.join(p, 'admin/css/global.css')
65
- js = File.join(p, 'admin/js/global.js')
71
+ # Migrate all settings
72
+ begin
73
+ Settings::Setting.migrate
74
+ rescue => e
75
+ Ramaze::Log.warn(
76
+ 'Failed to migrate the settings, make sure the database ' \
77
+ 'table is up to date and that you executed rake db:migrate.'
78
+ )
79
+ end
66
80
 
67
- Zen::Asset.stylesheet(['global'], :global => true) if File.exist?(css)
68
- Zen::Asset.javascript(['global'], :global => true) if File.exist?(js)
81
+ Zen.asset.build(:javascript)
82
+ Zen.asset.build(:css)
83
+ end
84
+
85
+ private
86
+
87
+ ##
88
+ # Configures Ramaze::Asset and loads all the global assets.
89
+ #
90
+ # @since 0.3
91
+ #
92
+ def setup_assets
93
+ cache_path = File.join(root, 'public', 'minified')
94
+
95
+ if !File.directory?(cache_path)
96
+ Dir.mkdir(cache_path)
69
97
  end
98
+
99
+ Zen.asset = Ramaze::Asset::Environment.new(
100
+ :cache_path => cache_path,
101
+ :minify => Ramaze.options.mode == :live
102
+ )
103
+
104
+ Zen.asset.serve(
105
+ :css,
106
+ [
107
+ 'admin/css/zen/reset',
108
+ 'admin/css/zen/grid',
109
+ 'admin/css/zen/layout',
110
+ 'admin/css/zen/general',
111
+ 'admin/css/zen/forms',
112
+ 'admin/css/zen/tables',
113
+ 'admin/css/zen/buttons',
114
+ 'admin/css/zen/messages'
115
+ ],
116
+ :name => 'zen_core'
117
+ )
118
+
119
+ Zen.asset.serve(
120
+ :javascript,
121
+ [
122
+ 'admin/js/vendor/mootools/core',
123
+ 'admin/js/vendor/mootools/more',
124
+ 'admin/js/zen/lib/html_table',
125
+ 'admin/js/zen/index'
126
+ ],
127
+ :name => 'zen_core'
128
+ )
129
+
130
+ require 'zen/asset_groups'
70
131
  end
71
132
 
72
133
  ##
73
- # Method executed after everything has been set up and loaded.
134
+ # Loads a global CSS and JS file.
74
135
  #
75
- # @author Yorick Peterse
76
- # @since 0.2.6
136
+ # @since 0.3
77
137
  #
78
- def post_init
79
- # Migrate all settings
80
- begin
81
- plugin(:settings, :migrate)
82
- rescue => e
83
- Ramaze::Log.warn(
84
- 'Failed to migrate the settings, make sure the database ' + \
85
- 'table is up to date'
86
- )
138
+ def load_global_assets
139
+ publics = Ramaze.options.publics
140
+ css_loaded = false
141
+ js_loaded = false
142
+
143
+ publics.each do |p|
144
+ p = File.join(Zen.root, p)
145
+ css = File.join(p, 'admin', 'css', 'global.css')
146
+ js = File.join(p, 'admin', 'js', 'global.js')
147
+
148
+ if File.exist?(css) and css_loaded == false
149
+ Zen.asset.serve(:css, ['admin/css/global'])
150
+ css_loaded = true
151
+ end
152
+
153
+ if File.exist?(js) and js_loaded == false
154
+ Zen.asset.serve(:javascript, ['admin/js/global'])
155
+ js_loaded = true
156
+ end
87
157
  end
88
158
  end
89
159
  end # class << self
90
160
  end # Zen
91
161
 
92
- # Load all classes/modules provided by Zen itself.
93
- require __DIR__('zen/validation')
94
- require __DIR__('zen/plugin')
95
- require __DIR__('zen/language')
96
- require __DIR__('zen/asset')
162
+ require __DIR__('vendor/sequel_sluggable')
163
+ require 'zen/version'
97
164
 
98
- # Load a set of modules into the global namespace
99
- include Zen::Plugin::SingletonMethods
100
- include Zen::Language::SingletonMethods
165
+ Ramaze::Cache.options.names.push(:settings, :translations)
166
+ Ramaze::Cache.options.settings = Ramaze::Cache::LRU
167
+ Ramaze::Cache.options.translations = Ramaze::Cache::LRU
101
168
 
102
- # Update the language path
103
- Zen::Language.options.paths.push(__DIR__('zen'))
104
- Zen::Language.load('zen_general')
169
+ # Load all classes/modules provided by Zen itself.
170
+ require 'zen/error'
171
+ require 'zen/validation'
172
+ require 'zen/language'
173
+ require 'zen/event'
174
+ require 'zen/model/helper'
175
+ require 'zen/languages'
105
176
 
106
- # Load all additional files
107
- require __DIR__('zen/plugin/helper')
108
- require __DIR__('zen/plugin/markup/lib/markup')
177
+ Ramaze::HelpersHelper.options.paths.push(__DIR__('zen'))
178
+ Ramaze.options.roots.push(__DIR__('zen'))
179
+ Zen::Language.options.paths.push(__DIR__('zen/language'))
180
+
181
+ include Zen::Language::SingletonMethods
109
182
 
110
- require __DIR__('zen/package')
111
- require __DIR__('zen/theme')
183
+ require 'zen/markup'
184
+ require 'zen/package'
185
+ require 'zen/theme'
112
186
 
113
187
  # Load all the base controllers
114
- require __DIR__('zen/controller/base_controller')
115
- require __DIR__('zen/controller/frontend_controller')
116
- require __DIR__('zen/controller/admin_controller')
117
- require __DIR__('zen/controller/main_controller')
118
- require __DIR__('zen/controller/preview')
119
-
120
- # Load the cache for the settings. This has to be done outside any of the init
121
- # methods as that would make it impossible to set a custom cache.
122
- Ramaze::Cache.options.names.push(:settings)
123
- Ramaze::Cache.options.settings = Ramaze::Cache::LRU
188
+ require 'zen/controller/base_controller'
189
+ require 'zen/controller/frontend_controller'
190
+ require 'zen/controller/admin_controller'
191
+ require 'zen/controller/main_controller'
192
+ require 'zen/controller/preview'
193
+ require 'zen/controller/translations'
@@ -0,0 +1,85 @@
1
+ Zen.asset.register_asset_group(:tabs) do |asset, controller, methods|
2
+ asset.serve(
3
+ :javascript,
4
+ ['admin/js/zen/lib/tabs'],
5
+ :name => 'zen_tabs',
6
+ :controller => controller,
7
+ :minify => true,
8
+ :methods => methods
9
+ )
10
+
11
+ asset.serve(
12
+ :css,
13
+ ['admin/css/zen/tabs'],
14
+ :name => 'zen_tabs',
15
+ :controller => controller,
16
+ :minify => true,
17
+ :methods => methods
18
+ )
19
+ end
20
+
21
+ Zen.asset.register_asset_group(:datepicker) do |asset, controller, methods|
22
+ asset.serve(
23
+ :javascript,
24
+ ['admin/js/vendor/datepicker'],
25
+ :name => 'vendor_datepicker',
26
+ :controller => controller,
27
+ :minify => true,
28
+ :methods => methods
29
+ )
30
+
31
+ asset.serve(
32
+ :css,
33
+ ['admin/css/zen/datepicker'],
34
+ :name => 'vendor_datepicker',
35
+ :controller => controller,
36
+ :minify => true,
37
+ :methods => methods
38
+ )
39
+ end
40
+
41
+ Zen.asset.register_asset_group(:window) do |asset, controller, methods|
42
+ asset.serve(
43
+ :javascript,
44
+ ['admin/js/zen/lib/window'],
45
+ :name => 'zen_window',
46
+ :controller => controller,
47
+ :minify => true,
48
+ :methods => methods
49
+ )
50
+
51
+ asset.serve(
52
+ :css,
53
+ ['admin/css/zen/window'],
54
+ :name => 'zen_window',
55
+ :controller => controller,
56
+ :minify => true,
57
+ :methods => methods
58
+ )
59
+ end
60
+
61
+ Zen.asset.register_asset_group(:editor) do |asset, controller, methods|
62
+ asset.load_asset_group(:window, controller, methods)
63
+
64
+ asset.serve(
65
+ :javascript,
66
+ [
67
+ 'admin/js/zen/lib/editor',
68
+ 'admin/js/zen/lib/editor/markdown',
69
+ 'admin/js/zen/lib/editor/textile'
70
+ ],
71
+ :name => 'zen_editor',
72
+ :controller => controller,
73
+ :minify => true,
74
+ :methods => methods
75
+ )
76
+
77
+ asset.serve(
78
+ :css,
79
+ ['admin/css/zen/editor'],
80
+ :name => 'zen_editor',
81
+ :controller => controller,
82
+ :minify => true,
83
+ :methods => methods
84
+ )
85
+ end