zen 0.3 → 0.4

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 (373) hide show
  1. data/.gems +3 -2
  2. data/.rvmrc +1 -1
  3. data/.travis.yml +5 -0
  4. data/.yardopts +2 -1
  5. data/LICENSE +1 -1
  6. data/README.md +28 -24
  7. data/Rakefile +5 -2
  8. data/guide/asset_management.md +6 -6
  9. data/guide/autosaving_forms.md +42 -0
  10. data/guide/changelog.md +41 -0
  11. data/guide/faq.md +49 -0
  12. data/guide/getting_started.md +24 -13
  13. data/guide/hacking.md +40 -9
  14. data/guide/images/categories/categories.png +0 -0
  15. data/guide/images/categories/category_groups.png +0 -0
  16. data/guide/images/categories/new_category.png +0 -0
  17. data/guide/images/categories/new_category_group.png +0 -0
  18. data/guide/images/comments/comments.png +0 -0
  19. data/guide/images/comments/edit_comment.png +0 -0
  20. data/guide/images/custom_fields/custom_field_groups.png +0 -0
  21. data/guide/images/custom_fields/custom_field_types.png +0 -0
  22. data/guide/images/custom_fields/custom_fields.png +0 -0
  23. data/guide/images/custom_fields/edit_custom_field_general.png +0 -0
  24. data/guide/images/custom_fields/edit_custom_field_group.png +0 -0
  25. data/guide/images/custom_fields/edit_custom_field_settings.png +0 -0
  26. data/guide/images/custom_fields/edit_custom_field_type.png +0 -0
  27. data/guide/images/dashboard/added.png +0 -0
  28. data/guide/images/dashboard/columns.png +0 -0
  29. data/guide/images/dashboard/dashboard.png +0 -0
  30. data/guide/images/dashboard/options.png +0 -0
  31. data/guide/images/menus/edit_menu.png +0 -0
  32. data/guide/images/menus/edit_menu_item.png +0 -0
  33. data/guide/images/menus/menu_item_hierarchy.png +0 -0
  34. data/guide/images/menus/menu_items.png +0 -0
  35. data/guide/images/menus/menus.png +0 -0
  36. data/guide/images/sections/edit_entry.png +0 -0
  37. data/guide/images/sections/edit_entry_categories.png +0 -0
  38. data/guide/images/sections/edit_entry_general.png +0 -0
  39. data/guide/images/sections/edit_entry_meta.png +0 -0
  40. data/guide/images/sections/edit_section_comments.png +0 -0
  41. data/guide/images/sections/edit_section_general.png +0 -0
  42. data/guide/images/sections/edit_section_groups.png +0 -0
  43. data/guide/images/sections/entries.png +0 -0
  44. data/guide/images/sections/sections.png +0 -0
  45. data/guide/images/settings/overview_general.png +0 -0
  46. data/guide/images/settings/overview_security.png +0 -0
  47. data/guide/images/settings/overview_user.png +0 -0
  48. data/guide/images/users/edit_user.png +0 -0
  49. data/guide/images/users/edit_user_group.png +0 -0
  50. data/guide/images/users/edit_user_group_permissions.png +0 -0
  51. data/guide/images/users/edit_user_permissions.png +0 -0
  52. data/guide/images/users/overview.png +0 -0
  53. data/guide/images/users/user_groups_overview.png +0 -0
  54. data/guide/installation.md +7 -1
  55. data/guide/javascript.md +36 -273
  56. data/guide/javascript/zen_autosave.md +26 -0
  57. data/guide/javascript/zen_editor.md +83 -0
  58. data/guide/javascript/zen_hash.md +34 -0
  59. data/guide/javascript/zen_htmltable.md +78 -0
  60. data/guide/javascript/zen_tabs.md +44 -0
  61. data/guide/javascript/zen_window.md +49 -0
  62. data/guide/zen_compared.md +201 -0
  63. data/lib/vendor/sequel_sluggable.rb +1 -1
  64. data/lib/zen.rb +64 -44
  65. data/lib/zen/asset_groups.rb +10 -10
  66. data/lib/zen/bin/create.rb +8 -1
  67. data/lib/zen/helper/breadcrumb.rb +4 -12
  68. data/lib/zen/helper/controller.rb +209 -6
  69. data/lib/zen/helper/locale.rb +19 -0
  70. data/lib/zen/helper/search.rb +1 -1
  71. data/lib/zen/helper/stacked_aspect.rb +7 -43
  72. data/lib/zen/helper/theme.rb +3 -3
  73. data/lib/zen/language.rb +5 -10
  74. data/lib/zen/language/translation.rb +1 -1
  75. data/lib/zen/layout/admin.xhtml +41 -25
  76. data/lib/zen/layout/login.xhtml +8 -3
  77. data/lib/zen/migrator.rb +54 -0
  78. data/lib/zen/model/helper.rb +20 -1
  79. data/lib/zen/model/init.rb +2 -0
  80. data/lib/zen/model/plugin/events.rb +158 -0
  81. data/lib/zen/package.rb +32 -6
  82. data/lib/zen/package/all.rb +1 -0
  83. data/lib/zen/package/categories/lib/categories.rb +6 -6
  84. data/lib/zen/package/categories/lib/categories/controller/categories.rb +20 -83
  85. data/lib/zen/package/categories/lib/categories/controller/category_groups.rb +23 -74
  86. data/lib/zen/package/categories/lib/categories/model/category.rb +58 -1
  87. data/lib/zen/package/categories/lib/categories/model/category_group.rb +62 -2
  88. data/lib/zen/package/categories/lib/categories/view/admin/categories/form.xhtml +46 -40
  89. data/lib/zen/package/categories/lib/categories/view/admin/categories/index.xhtml +74 -75
  90. data/lib/zen/package/categories/lib/categories/view/admin/category-groups/form.xhtml +27 -24
  91. data/lib/zen/package/categories/lib/categories/view/admin/category-groups/index.xhtml +83 -86
  92. data/lib/zen/package/comments/lib/comments.rb +5 -5
  93. data/lib/zen/package/comments/lib/comments/controller/comments.rb +12 -64
  94. data/lib/zen/package/comments/lib/comments/controller/comments_form.rb +4 -22
  95. data/lib/zen/package/comments/lib/comments/model/comment.rb +65 -16
  96. data/lib/zen/package/comments/lib/comments/view/admin/comments/form.xhtml +52 -49
  97. data/lib/zen/package/comments/lib/comments/view/admin/comments/index.xhtml +52 -60
  98. data/lib/zen/package/comments/migrations/1308774099_comment_status.rb +1 -1
  99. data/lib/zen/package/custom_fields/lib/custom_fields.rb +11 -13
  100. data/lib/zen/package/custom_fields/lib/custom_fields/blue_form_parameters.rb +29 -13
  101. data/lib/zen/package/custom_fields/lib/custom_fields/controller/custom_field_groups.rb +21 -50
  102. data/lib/zen/package/custom_fields/lib/custom_fields/controller/custom_field_types.rb +27 -71
  103. data/lib/zen/package/custom_fields/lib/custom_fields/controller/custom_fields.rb +25 -78
  104. data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field.rb +48 -1
  105. data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_group.rb +35 -1
  106. data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_method.rb +3 -0
  107. data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_type.rb +40 -1
  108. data/lib/zen/package/custom_fields/lib/custom_fields/model/custom_field_value.rb +1 -0
  109. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-groups/form.xhtml +29 -26
  110. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-groups/index.xhtml +96 -100
  111. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-types/form.xhtml +56 -53
  112. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-types/index.xhtml +82 -82
  113. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-fields/form.xhtml +88 -85
  114. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-fields/index.xhtml +83 -80
  115. data/lib/zen/package/dashboard/lib/dashboard.rb +28 -0
  116. data/lib/zen/package/dashboard/lib/dashboard/controller/dashboard.rb +154 -0
  117. data/lib/zen/package/dashboard/lib/dashboard/language/en/dashboard.rb +35 -0
  118. data/lib/zen/package/dashboard/lib/dashboard/language/nl/dashboard.rb +36 -0
  119. data/lib/zen/package/dashboard/lib/dashboard/model/widget.rb +45 -0
  120. data/lib/zen/package/dashboard/lib/dashboard/public/admin/dashboard/css/dashboard.css +74 -0
  121. data/lib/zen/package/dashboard/lib/dashboard/public/admin/dashboard/js/dashboard.js +102 -0
  122. data/lib/zen/package/dashboard/lib/dashboard/view/admin/index.xhtml +29 -0
  123. data/lib/zen/package/dashboard/lib/dashboard/view/admin/widget/welcome.xhtml +28 -0
  124. data/lib/zen/package/dashboard/lib/dashboard/widget.rb +292 -0
  125. data/lib/zen/package/dashboard/lib/dashboard/widget/welcome.rb +9 -0
  126. data/lib/zen/package/dashboard/migrations/1326411254_create_schema.rb +28 -0
  127. data/lib/zen/package/extensions/lib/extensions.rb +5 -5
  128. data/lib/zen/package/extensions/lib/extensions/view/admin/extensions/index.xhtml +72 -67
  129. data/lib/zen/package/menu.rb +6 -1
  130. data/lib/zen/package/menus/lib/menus.rb +6 -4
  131. data/lib/zen/package/menus/lib/menus/controller/menu_items.rb +69 -104
  132. data/lib/zen/package/menus/lib/menus/controller/menus.rb +19 -76
  133. data/lib/zen/package/menus/lib/menus/helper/menu.rb +54 -38
  134. data/lib/zen/package/menus/lib/menus/helper/menu_frontend.rb +7 -13
  135. data/lib/zen/package/menus/lib/menus/model/menu.rb +158 -2
  136. data/lib/zen/package/menus/lib/menus/model/menu_item.rb +73 -10
  137. data/lib/zen/package/menus/lib/menus/public/admin/menus/css/menus.css +47 -0
  138. data/lib/zen/package/menus/lib/menus/public/admin/menus/js/lib/nested_sortables.js +549 -0
  139. data/lib/zen/package/menus/lib/menus/public/admin/menus/js/menu_items.js +38 -0
  140. data/lib/zen/package/menus/lib/menus/view/admin/menu-items/form.xhtml +51 -61
  141. data/lib/zen/package/menus/lib/menus/view/admin/menu-items/index.xhtml +18 -81
  142. data/lib/zen/package/menus/lib/menus/view/admin/menus/form.xhtml +49 -44
  143. data/lib/zen/package/menus/lib/menus/view/admin/menus/index.xhtml +81 -83
  144. data/lib/zen/package/sections/lib/sections.rb +9 -4
  145. data/lib/zen/package/sections/lib/sections/controller/section_entries.rb +80 -132
  146. data/lib/zen/package/sections/lib/sections/controller/sections.rb +27 -73
  147. data/lib/zen/package/sections/lib/sections/helper/section.rb +44 -1
  148. data/lib/zen/package/sections/lib/sections/language/en/section_entries.rb +2 -0
  149. data/lib/zen/package/sections/lib/sections/language/nl/section_entries.rb +2 -0
  150. data/lib/zen/package/sections/lib/sections/model/section.rb +48 -1
  151. data/lib/zen/package/sections/lib/sections/model/section_entry.rb +55 -5
  152. data/lib/zen/package/sections/lib/sections/model/section_entry_status.rb +2 -0
  153. data/lib/zen/package/sections/lib/sections/view/admin/section-entries/form.xhtml +76 -67
  154. data/lib/zen/package/sections/lib/sections/view/admin/section-entries/index.xhtml +74 -79
  155. data/lib/zen/package/sections/lib/sections/view/admin/section-entries/recent_entries.xhtml +45 -0
  156. data/lib/zen/package/sections/lib/sections/view/admin/sections/form.xhtml +119 -0
  157. data/lib/zen/package/sections/lib/sections/view/admin/sections/index.xhtml +96 -0
  158. data/lib/zen/package/sections/lib/sections/widget/recent_entries.rb +14 -0
  159. data/lib/zen/package/sections/migrations/1308813320_section_entry_statuses.rb +1 -1
  160. data/lib/zen/package/settings/lib/settings.rb +14 -5
  161. data/lib/zen/package/settings/lib/settings/controller/settings.rb +4 -4
  162. data/lib/zen/package/settings/lib/settings/language/nl/settings.rb +1 -1
  163. data/lib/zen/package/settings/lib/settings/setting.rb +1 -1
  164. data/lib/zen/package/settings/lib/settings/view/admin/settings/index.xhtml +21 -17
  165. data/lib/zen/package/users/lib/users.rb +18 -19
  166. data/lib/zen/package/users/lib/users/controller/user_groups.rb +23 -50
  167. data/lib/zen/package/users/lib/users/controller/users.rb +57 -89
  168. data/lib/zen/package/users/lib/users/helper/acl.rb +1 -0
  169. data/lib/zen/package/users/lib/users/language/en/user_groups.rb +1 -0
  170. data/lib/zen/package/users/lib/users/language/en/users.rb +2 -1
  171. data/lib/zen/package/users/lib/users/language/nl/user_groups.rb +1 -0
  172. data/lib/zen/package/users/lib/users/language/nl/users.rb +2 -1
  173. data/lib/zen/package/users/lib/users/model/permission.rb +13 -0
  174. data/lib/zen/package/users/lib/users/model/user.rb +57 -4
  175. data/lib/zen/package/users/lib/users/model/user_group.rb +37 -3
  176. data/lib/zen/package/users/lib/users/model/user_status.rb +4 -0
  177. data/lib/zen/package/users/lib/users/public/admin/{css/users/permissions.css → users/css/users.css} +0 -0
  178. data/lib/zen/package/users/lib/users/public/admin/{js/users/permissions.js → users/js/users.js} +4 -2
  179. data/lib/zen/package/users/lib/users/view/admin/user-groups/form.xhtml +51 -47
  180. data/lib/zen/package/users/lib/users/view/admin/user-groups/index.xhtml +62 -69
  181. data/lib/zen/package/users/lib/users/view/admin/users/form.xhtml +92 -82
  182. data/lib/zen/package/users/lib/users/view/admin/users/index.xhtml +68 -66
  183. data/lib/zen/package/users/lib/users/view/admin/users/login.xhtml +36 -28
  184. data/lib/zen/package/users/lib/users/view/admin/users/permissions.xhtml +5 -7
  185. data/lib/zen/package/users/lib/users/view/admin/users/register.xhtml +47 -41
  186. data/lib/zen/package/users/migrations/1320272365_status_ids.rb +1 -1
  187. data/lib/zen/public/admin/{js/vendor/mootools → mootools/js}/core.js +113 -108
  188. data/lib/zen/public/admin/{js/vendor/mootools → mootools/js}/more.js +99 -6
  189. data/lib/zen/public/admin/zen/css/buttons.css +106 -0
  190. data/lib/zen/public/admin/{css/zen → zen/css}/datepicker.css +45 -30
  191. data/lib/zen/public/admin/zen/css/editor.css +69 -0
  192. data/lib/zen/public/admin/{css/zen → zen/css}/forms.css +28 -30
  193. data/lib/zen/public/admin/zen/css/general.css +183 -0
  194. data/lib/zen/public/admin/zen/css/layout.css +224 -0
  195. data/lib/zen/public/admin/zen/css/messages.css +34 -0
  196. data/lib/zen/public/admin/{css/zen → zen/css}/reset.css +4 -9
  197. data/lib/zen/public/admin/zen/css/tables.css +57 -0
  198. data/lib/zen/public/admin/zen/css/tabs.css +84 -0
  199. data/lib/zen/public/admin/zen/css/window.css +74 -0
  200. data/lib/zen/public/admin/{images/zen → zen/images}/icons/asc.png +0 -0
  201. data/lib/zen/public/admin/{images/zen → zen/images}/icons/bold.png +0 -0
  202. data/lib/zen/public/admin/zen/images/icons/box.png +0 -0
  203. data/lib/zen/public/admin/zen/images/icons/categories.png +0 -0
  204. data/lib/zen/public/admin/{images/zen → zen/images}/icons/close.png +0 -0
  205. data/lib/zen/public/admin/zen/images/icons/comment.png +0 -0
  206. data/lib/zen/public/admin/{images/zen → zen/images}/icons/desc.png +0 -0
  207. data/lib/zen/public/admin/{images/zen → zen/images}/icons/edit.png +0 -0
  208. data/lib/zen/public/admin/{images/zen → zen/images}/icons/error.png +0 -0
  209. data/lib/zen/public/admin/zen/images/icons/external.png +0 -0
  210. data/lib/zen/public/admin/zen/images/icons/globe.png +0 -0
  211. data/lib/zen/public/admin/{images/zen → zen/images}/icons/italic.png +0 -0
  212. data/lib/zen/public/admin/{images/zen → zen/images}/icons/link.png +0 -0
  213. data/lib/zen/public/admin/zen/images/icons/lock.png +0 -0
  214. data/lib/zen/public/admin/{images/zen → zen/images}/icons/ol.png +0 -0
  215. data/lib/zen/public/admin/zen/images/icons/pages.png +0 -0
  216. data/lib/zen/public/admin/{images/zen → zen/images}/icons/preview.png +0 -0
  217. data/lib/zen/public/admin/zen/images/icons/relation.png +0 -0
  218. data/lib/zen/public/admin/zen/images/icons/settings.png +0 -0
  219. data/lib/zen/public/admin/zen/images/icons/template.png +0 -0
  220. data/lib/zen/public/admin/{images/zen → zen/images}/icons/ul.png +0 -0
  221. data/lib/zen/public/admin/{images/zen → zen/images}/icons/user.png +0 -0
  222. data/lib/zen/public/admin/zen/images/icons/user_group.png +0 -0
  223. data/lib/zen/public/admin/{js/zen → zen/js}/index.js +21 -9
  224. data/lib/zen/public/admin/zen/js/lib/autosave.js +185 -0
  225. data/lib/zen/public/admin/zen/js/lib/base.js +60 -0
  226. data/lib/zen/public/admin/{js/vendor → zen/js/lib}/datepicker.js +52 -28
  227. data/lib/zen/public/admin/{js/zen → zen/js}/lib/editor.js +23 -34
  228. data/lib/zen/public/admin/{js/zen → zen/js}/lib/editor/markdown.js +5 -1
  229. data/lib/zen/public/admin/{js/zen → zen/js}/lib/editor/textile.js +4 -0
  230. data/lib/zen/public/admin/zen/js/lib/hash.js +218 -0
  231. data/lib/zen/public/admin/{js/zen → zen/js}/lib/html_table.js +5 -0
  232. data/lib/zen/public/admin/zen/js/lib/tabs.js +194 -0
  233. data/lib/zen/public/admin/{js/zen → zen/js}/lib/window.js +54 -29
  234. data/lib/zen/security.rb +50 -0
  235. data/lib/zen/spec/helper.rb +5 -120
  236. data/lib/zen/spec/helper/capybara.rb +75 -0
  237. data/lib/zen/spec/helper/general.rb +75 -0
  238. data/lib/zen/spec/simplecov.rb +1 -0
  239. data/lib/zen/task/build.rake +2 -21
  240. data/lib/zen/task/clean.rake +1 -10
  241. data/lib/zen/task/db.rake +4 -10
  242. data/lib/zen/task/package.rake +2 -5
  243. data/lib/zen/task/setup.rake +1 -1
  244. data/lib/zen/task/test.rake +6 -6
  245. data/lib/zen/task/theme.rake +2 -5
  246. data/lib/zen/theme.rb +26 -22
  247. data/lib/zen/version.rb +1 -1
  248. data/lib/zen/view/bottom.xhtml +2 -3
  249. data/lib/zen/view/search.xhtml +3 -5
  250. data/proto/app/config/config.rb.erb +1 -1
  251. data/proto/app/theme/default/index.xhtml +116 -20
  252. data/proto/app/theme/partials/head.xhtml +9 -0
  253. data/proto/app/theme/partials/sidebar.xhtml +40 -0
  254. data/proto/app/theme/theme.rb +3 -0
  255. data/spec/Rakefile +1 -2
  256. data/spec/fixtures/zen/helper/stacked_aspect.rb +54 -0
  257. data/spec/fixtures/zen/package/dashboard/controller/widget.rb +15 -0
  258. data/spec/fixtures/zen/package/dashboard/widget.rb +5 -0
  259. data/spec/fixtures/zen/theme/theme.rb +2 -2
  260. data/spec/helper.rb +19 -10
  261. data/spec/zen/controller/admin_controller.rb +3 -3
  262. data/spec/zen/controller/main_controller.rb +7 -7
  263. data/spec/zen/controller/preview.rb +3 -3
  264. data/spec/zen/event.rb +4 -4
  265. data/spec/zen/helper/breadcrumb.rb +4 -8
  266. data/spec/zen/helper/controller.rb +47 -4
  267. data/spec/zen/helper/locale.rb +3 -3
  268. data/spec/zen/helper/message.rb +4 -4
  269. data/spec/zen/helper/stacked_aspect.rb +40 -0
  270. data/spec/zen/helper/theme.rb +9 -9
  271. data/spec/zen/language.rb +8 -8
  272. data/spec/zen/markup.rb +6 -6
  273. data/spec/zen/package.rb +11 -9
  274. data/spec/zen/package/categories/controller/categories.rb +56 -24
  275. data/spec/zen/package/categories/controller/category_groups.rb +55 -23
  276. data/spec/zen/package/categories/helper/category.rb +5 -5
  277. data/spec/zen/package/categories/helper/category_frontend.rb +5 -5
  278. data/spec/zen/package/comments/anti_spam.rb +4 -4
  279. data/spec/zen/package/comments/controller/comments.rb +95 -24
  280. data/spec/zen/package/comments/controller/comments_form.rb +31 -26
  281. data/spec/zen/package/comments/helper/comment.rb +3 -3
  282. data/spec/zen/package/comments/helper/comment_frontend.rb +6 -6
  283. data/spec/zen/package/custom_fields/blue_form_parameters.rb +8 -8
  284. data/spec/zen/package/custom_fields/controller/custom_field_groups.rb +58 -27
  285. data/spec/zen/package/custom_fields/controller/custom_field_types.rb +57 -27
  286. data/spec/zen/package/custom_fields/controller/custom_fields.rb +58 -27
  287. data/spec/zen/package/custom_fields/helper/custom_field.rb +7 -7
  288. data/spec/zen/package/dashboard/controller/dashboard.rb +147 -0
  289. data/spec/zen/package/dashboard/widget.rb +56 -0
  290. data/spec/zen/package/extensions/controller/extensions.rb +4 -4
  291. data/spec/zen/package/menus/controller/menu_items.rb +48 -39
  292. data/spec/zen/package/menus/controller/menus.rb +55 -24
  293. data/spec/zen/package/menus/helper/menu.rb +6 -14
  294. data/spec/zen/package/menus/helper/menu_frontend.rb +7 -7
  295. data/spec/zen/package/menus/model/menu.rb +121 -0
  296. data/spec/zen/package/menus/model/menu_item.rb +34 -0
  297. data/spec/zen/package/sections/controller/section_entries.rb +104 -39
  298. data/spec/zen/package/sections/controller/sections.rb +60 -27
  299. data/spec/zen/package/sections/helper/section.rb +5 -5
  300. data/spec/zen/package/sections/helper/section_frontend.rb +9 -9
  301. data/spec/zen/package/sections/widget.rb +44 -0
  302. data/spec/zen/package/settings/controller/settings.rb +18 -16
  303. data/spec/zen/package/settings/settings.rb +12 -12
  304. data/spec/zen/package/users/controller/user_groups.rb +61 -29
  305. data/spec/zen/package/users/controller/users.rb +118 -39
  306. data/spec/zen/package/users/helper/access.rb +3 -3
  307. data/spec/zen/package/users/helper/acl.rb +4 -4
  308. data/spec/zen/package/users/helper/users.rb +5 -5
  309. data/spec/zen/security.rb +25 -0
  310. data/spec/zen/theme.rb +20 -18
  311. data/spec/zen/validation.rb +5 -5
  312. data/spec/zen/vendor/sequel_sluggable.rb +12 -0
  313. data/zen.gemspec +27 -4
  314. metadata +182 -124
  315. data/AUTHORS +0 -4
  316. data/guide/_static/categories/categories.png +0 -0
  317. data/guide/_static/categories/category_groups.png +0 -0
  318. data/guide/_static/categories/new_category.png +0 -0
  319. data/guide/_static/categories/new_category_group.png +0 -0
  320. data/guide/_static/comments/comments.png +0 -0
  321. data/guide/_static/comments/edit_comment.png +0 -0
  322. data/guide/_static/custom_fields/custom_field_groups.png +0 -0
  323. data/guide/_static/custom_fields/custom_field_types.png +0 -0
  324. data/guide/_static/custom_fields/custom_fields.png +0 -0
  325. data/guide/_static/custom_fields/edit_custom_field_general.png +0 -0
  326. data/guide/_static/custom_fields/edit_custom_field_group.png +0 -0
  327. data/guide/_static/custom_fields/edit_custom_field_settings.png +0 -0
  328. data/guide/_static/custom_fields/edit_custom_field_type.png +0 -0
  329. data/guide/_static/menus/edit_menu.png +0 -0
  330. data/guide/_static/menus/edit_menu_item.png +0 -0
  331. data/guide/_static/menus/menu_items.png +0 -0
  332. data/guide/_static/menus/menus.png +0 -0
  333. data/guide/_static/sections/edit_entry.png +0 -0
  334. data/guide/_static/sections/edit_entry_categories.png +0 -0
  335. data/guide/_static/sections/edit_entry_general.png +0 -0
  336. data/guide/_static/sections/edit_entry_meta.png +0 -0
  337. data/guide/_static/sections/edit_section_comments.png +0 -0
  338. data/guide/_static/sections/edit_section_general.png +0 -0
  339. data/guide/_static/sections/edit_section_groups.png +0 -0
  340. data/guide/_static/sections/entries.png +0 -0
  341. data/guide/_static/sections/sections.png +0 -0
  342. data/guide/_static/settings/overview_general.png +0 -0
  343. data/guide/_static/settings/overview_security.png +0 -0
  344. data/guide/_static/settings/overview_user.png +0 -0
  345. data/guide/_static/users/edit_user.png +0 -0
  346. data/guide/_static/users/edit_user_group.png +0 -0
  347. data/guide/_static/users/edit_user_group_permissions.png +0 -0
  348. data/guide/_static/users/edit_user_permissions.png +0 -0
  349. data/guide/_static/users/overview.png +0 -0
  350. data/guide/_static/users/user_groups_overview.png +0 -0
  351. data/lib/zen/controller/translations.rb +0 -49
  352. data/lib/zen/package/sections/lib/sections/view/admin/form.xhtml +0 -113
  353. data/lib/zen/package/sections/lib/sections/view/admin/index.xhtml +0 -97
  354. data/lib/zen/public/admin/css/zen/buttons.css +0 -46
  355. data/lib/zen/public/admin/css/zen/editor.css +0 -88
  356. data/lib/zen/public/admin/css/zen/general.css +0 -109
  357. data/lib/zen/public/admin/css/zen/grid.css +0 -100
  358. data/lib/zen/public/admin/css/zen/layout.css +0 -184
  359. data/lib/zen/public/admin/css/zen/messages.css +0 -54
  360. data/lib/zen/public/admin/css/zen/tables.css +0 -97
  361. data/lib/zen/public/admin/css/zen/tabs.css +0 -47
  362. data/lib/zen/public/admin/css/zen/window.css +0 -73
  363. data/lib/zen/public/admin/images/zen/icons/accept.png +0 -0
  364. data/lib/zen/public/admin/images/zen/icons/add.png +0 -0
  365. data/lib/zen/public/admin/images/zen/icons/back.png +0 -0
  366. data/lib/zen/public/admin/images/zen/icons/delete.png +0 -0
  367. data/lib/zen/public/admin/images/zen/icons/help.png +0 -0
  368. data/lib/zen/public/admin/images/zen/icons/info.png +0 -0
  369. data/lib/zen/public/admin/images/zen/icons/logout.png +0 -0
  370. data/lib/zen/public/admin/images/zen/icons/pdf.png +0 -0
  371. data/lib/zen/public/admin/images/zen/icons/view.png +0 -0
  372. data/lib/zen/public/admin/js/zen/lib/tabs.js +0 -207
  373. data/lib/zen/view/main.xhtml +0 -19
@@ -17,6 +17,7 @@ SimpleCov.configure do
17
17
  add_filter 'lib/zen/model/settings'
18
18
  add_filter 'vendor'
19
19
  add_filter 'lib/zen/model/init'
20
+ add_filter 'lib/zen/migrator'
20
21
  end
21
22
 
22
23
  SimpleCov.start
@@ -1,5 +1,5 @@
1
1
  namespace :build do
2
- desc 'Builds the documentation using YARD'
2
+ desc 'Build the YARD docs'
3
3
  task :doc => ['clean:yard'] do
4
4
  root = File.expand_path('../../../../', __FILE__)
5
5
  Dir.chdir(root)
@@ -20,26 +20,7 @@ namespace :build do
20
20
  sh('gem', 'install', pkg)
21
21
  end
22
22
 
23
- # Stolen from Ramaze
24
- desc 'Builds a list of all the people that have contributed to Zen'
25
- task :authors do
26
- authors = Hash.new(0)
27
-
28
- `git shortlog -nse`.scan(/(\d+)\s(.+)\s<(.*)>$/) do |count, name, email|
29
- authors[[name, email]] += count.to_i
30
- end
31
-
32
- File.open('AUTHORS', 'w+') do |io|
33
- io.puts "Following persons have contributed to Zen."
34
- io.puts '(Sorted by number of submitted patches, then alphabetically)'
35
- io.puts ''
36
- authors.sort_by { |(n,e),c| [-c, n.downcase] }.each do |(name, email), count|
37
- io.puts("%6d %s <%s>" % [count, name, email])
38
- end
39
- end
40
- end
41
-
42
- desc 'Builds a list of changes since a given Git tag and outputs it'
23
+ desc 'Build a list of changes'
43
24
  task :changes, [:tag] do |t, args|
44
25
  args.with_defaults(:tag => `git tag`.split(/\n/)[-1])
45
26
 
@@ -1,5 +1,5 @@
1
1
  namespace :clean do
2
- desc 'Removes all the gems located in pkg/'
2
+ desc 'Removes all built gems'
3
3
  task :gem do
4
4
  glob_pattern = File.expand_path('../../../../pkg/*.gem', __FILE__)
5
5
 
@@ -17,13 +17,4 @@ namespace :clean do
17
17
  FileUtils.rm_rf("#{root}/doc")
18
18
  FileUtils.rm_rf("#{root}/.yardoc")
19
19
  end
20
-
21
- desc 'Removes all the minified assets used for the specs'
22
- task :assets do
23
- path = File.expand_path('../../../../spec/public/minified/*', __FILE__)
24
-
25
- Dir.glob(path).each do |file|
26
- File.unlink(file)
27
- end
28
- end
29
20
  end
@@ -1,5 +1,5 @@
1
1
  namespace :db do
2
- desc 'Migrates the database to the newest version'
2
+ desc 'Migrates the entire database'
3
3
  task :migrate do
4
4
  require File.expand_path('../../../zen', __FILE__)
5
5
 
@@ -25,9 +25,7 @@ namespace :db do
25
25
 
26
26
  table = 'migrations_package_' + pkg.name.to_s
27
27
 
28
- # Migration time
29
- Sequel::Migrator.run(Zen.database, dir, :table => table)
30
- Ramaze::Log.info("Successfully migrated \"#{pkg.name}\"")
28
+ Zen::Migrator.run(pkg.name, dir, table)
31
29
  end
32
30
  end
33
31
 
@@ -59,15 +57,11 @@ namespace :db do
59
57
 
60
58
  table = 'migrations_package_' + pkg.name.to_s
61
59
 
62
- # Migration time
63
- Sequel::Migrator.run(Zen.database, dir, :table => table, :target => 0)
64
- Zen.database.drop_table(table)
65
-
66
- Ramaze::Log.info("Successfully uninstalled \"#{pkg.name}\"")
60
+ Zen::Migrator.run(pkg.name, dir, table, 0)
67
61
  end
68
62
  end
69
63
 
70
- desc 'Creates a default administrator with a random password'
64
+ desc 'Creates a default admin user'
71
65
  task :user do
72
66
  require File.expand_path('../../../zen', __FILE__)
73
67
 
@@ -12,7 +12,7 @@ namespace :package do
12
12
  end
13
13
  end
14
14
 
15
- desc 'Migrates a package to a certain version'
15
+ desc 'Migrates a specific package'
16
16
  task :migrate, :name, :version do |task, args|
17
17
  require File.expand_path('../../../zen', __FILE__)
18
18
 
@@ -49,9 +49,6 @@ namespace :package do
49
49
 
50
50
  table = 'migrations_package_' + package.name.to_s
51
51
 
52
- Ramaze::Log.info('Migrating package...')
53
-
54
- # Run all migrations
55
- Sequel::Migrator.run(Zen.database, dir, :table => table, :target => version)
52
+ Zen::Migrator.run(package.name, dir, table, version)
56
53
  end
57
54
  end
@@ -1,4 +1,4 @@
1
- desc 'Installs all the required gems (requires RVM)'
1
+ desc 'Installs all the required gems'
2
2
  task :setup do
3
3
  sh('rvm gemset import .gems')
4
4
  end
@@ -3,15 +3,15 @@ namespace :test do
3
3
  command = 'rake db:delete; rake db:migrate; rake db:test_user; ' \
4
4
  'ruby zen/all.rb'
5
5
 
6
- desc 'Runs all specifications using SQLite3 or custom settings'
7
- task :default => ['clean:assets'] do
6
+ desc 'Run specifications'
7
+ task :default do
8
8
  Dir.chdir(spec_dir)
9
9
 
10
10
  sh(command)
11
11
  end
12
12
 
13
- desc 'Runs all specifications using MySQL'
14
- task :mysql => ['clean:assets'] do
13
+ desc 'Runs specifications using MySQL'
14
+ task :mysql do
15
15
  Dir.chdir(spec_dir)
16
16
 
17
17
  ENV['DATABASE'] = 'zen_dev'
@@ -21,8 +21,8 @@ namespace :test do
21
21
  sh(command)
22
22
  end
23
23
 
24
- desc 'Runs all specifications using PostgreSQL'
25
- task :postgres => ['clean:assets'] do
24
+ desc 'Runs specifications using PostgreSQL'
25
+ task :postgres do
26
26
  Dir.chdir(spec_dir)
27
27
 
28
28
  ENV['DATABASE'] = 'zen_dev'
@@ -12,7 +12,7 @@ namespace :theme do
12
12
  end
13
13
  end
14
14
 
15
- desc 'Migrates a theme to the given version'
15
+ desc 'Migrates a specific theme'
16
16
  task :migrate, :name, :version do |task, args|
17
17
  require File.expand_path('../../../zen', __FILE__)
18
18
 
@@ -47,9 +47,6 @@ namespace :theme do
47
47
  abort 'The theme\'s migration directory doesn\'t exist.'
48
48
  end
49
49
 
50
- # Time to migrate the theme
51
- Ramaze::Log.info('Migrating package...')
52
-
53
- Sequel::Migrator.run(Zen.database, dir, :table => table, :target => version)
50
+ Zen::Migrator.run(theme.name, dir, table, version)
54
51
  end
55
52
  end
@@ -1,4 +1,5 @@
1
1
  require 'pathname'
2
+ require 'ostruct'
2
3
 
3
4
  module Zen
4
5
  ##
@@ -39,7 +40,7 @@ module Zen
39
40
  # |__ templates/
40
41
  # |__ partials/
41
42
  # |__ pages/
42
- # |__ foobar/
43
+ # |__ example/
43
44
  #
44
45
  # Lets assume the theme is called "test" and is available on Rubygems (under
45
46
  # the same name). In that case you can install it as following:
@@ -68,8 +69,7 @@ module Zen
68
69
  # |__ theme/
69
70
  # |__ partials/
70
71
  # |__ pages/
71
- # |__ foobar/
72
- # |__ partials/
72
+ # |__ example/
73
73
  # |__ test.rb
74
74
  #
75
75
  # Because the theme is located in the application root, which isn't added to
@@ -92,8 +92,7 @@ module Zen
92
92
  # |__ test/
93
93
  # |__ partials/
94
94
  # |__ pages/
95
- # |__ foobar/
96
- # |__ partials/
95
+ # |__ example/
97
96
  # |__ test.rb
98
97
  #
99
98
  # <div class="note deprecated">
@@ -138,6 +137,8 @@ module Zen
138
137
  # data into the database.
139
138
  # * default_template_group: the name of the default template group to use in
140
139
  # case no custom one has been specified in the URI.
140
+ # * env: an instance of ``OpenStruct`` that can be used to store custom data
141
+ # such as an instance of ``Ramaze::Asset::Environment``.
141
142
  #
142
143
  # An example call to ``Zen::Theme.add`` using these options:
143
144
  #
@@ -165,7 +166,7 @@ module Zen
165
166
  # Some examples:
166
167
  #
167
168
  # GET /pages/entry/hello-world => /pages/entry.xhtml
168
- # GET /pages/foobar => /404.xhtml (if "foobar" doesn't exist)
169
+ # GET /pages/example => /404.xhtml (if "example" doesn't exist)
169
170
  # GET /pages => /pages/index.xhtml
170
171
  #
171
172
  # Templates have access to the special instance variable ``@request_uri``.
@@ -174,7 +175,7 @@ module Zen
174
175
  # with the following values for this array:
175
176
  #
176
177
  # GET /pages/entry/hello-world => ['pages', 'entry', 'hello-world']
177
- # GET /pages/foobar => ['pages', 'foobar']
178
+ # GET /pages/example => ['pages', 'example']
178
179
  # GET /pages => ['pages', 'index']
179
180
  #
180
181
  # ## Retrieving Data
@@ -271,6 +272,10 @@ module Zen
271
272
  # The name of the default template group to use.
272
273
  attr_writer :default_template_group
273
274
 
275
+ # Instance of OpenStruct that can be used for storing custom data such as an
276
+ # instance of ``Ramaze::Asset::Environment``.
277
+ attr_reader :env
278
+
274
279
  ##
275
280
  # Hash containing all registered themes. The keys are the names of the
276
281
  # themes and the values instances of Zen::Theme::Base.
@@ -312,6 +317,15 @@ module Zen
312
317
  return REGISTERED[name]
313
318
  end
314
319
 
320
+ ##
321
+ # Creates a new instance of the theme.
322
+ #
323
+ # @since 12-02-2012
324
+ #
325
+ def initialize
326
+ @env = OpenStruct.new
327
+ end
328
+
315
329
  ##
316
330
  # Sets the name of the theme.
317
331
  #
@@ -331,7 +345,11 @@ module Zen
331
345
  #
332
346
  def formatted_name
333
347
  if url
334
- return '<a href="%s" title="%s">%s</a>' % [url, name, name]
348
+ return '<a href="%s" title="%s" class="icon external">%s</a>' % [
349
+ url,
350
+ name,
351
+ name
352
+ ]
335
353
  else
336
354
  return name
337
355
  end
@@ -406,19 +424,5 @@ module Zen
406
424
  )
407
425
  end
408
426
  end
409
-
410
- # Aliases to keep Zen backwards compatible. These aliases will be removed in
411
- # Zen 0.3.
412
- alias :template_dir :templates
413
- alias :template_dir= :templates=
414
-
415
- alias :partial_dir :partials
416
- alias :partial_dir= :partials=
417
-
418
- alias :migration_dir :migrations
419
- alias :migration_dir= :migrations=
420
-
421
- alias :public_dir :public
422
- alias :public_dir= :public=
423
427
  end # Theme
424
428
  end # Zen
@@ -1,4 +1,4 @@
1
1
  module Zen
2
2
  # :nodoc:
3
- VERSION = '0.3'
3
+ VERSION = '0.4'
4
4
  end
@@ -1,9 +1,8 @@
1
1
  <script>
2
2
  var Zen = {
3
- date_format: "#{date_format}",
3
+ date_format: "#{date_format}",
4
+ translations: #{javascript_translations}
4
5
  };
5
6
  </script>
6
7
 
7
- <script src="/admin/js/zen/lib/translations.js"></script>
8
-
9
8
  #{Zen.asset.build_html(:javascript)}
@@ -1,9 +1,7 @@
1
- <form action="#{@url}"
2
- method="get" id="search_form">
1
+ <form action="#{@url}" method="get" id="search_form">
3
2
  <input name="query" type="text" value="#{request.params['query']}"
4
3
  placeholder="#{lang('zen_general.descriptions.search')}" />
5
4
 
6
- <div class="button">
7
- <input type="submit" value="#{lang('zen_general.buttons.search')}" />
8
- </div>
5
+ <input type="submit" value="#{lang('zen_general.buttons.search')}"
6
+ class="button" />
9
7
  </form>
@@ -17,7 +17,7 @@ Ramaze.options.mode = :dev
17
17
  # especially when a cache is shared among different Ramaze applications. If
18
18
  # these applications were to use the same name they might end up retrieving the
19
19
  # wrong data.
20
- Ramaze.options.app.name = :<%= PROJECT_SETTINGS[:name] %>
20
+ Ramaze.options.app.name = <%= PROJECT_SETTINGS[:name].to_sym.inspect %>
21
21
 
22
22
  # The session identifier to use for cookies.
23
23
  Ramaze.options.session.key = '<%= PROJECT_SETTINGS[:name] %>.sid'
@@ -1,25 +1,121 @@
1
- <!DOCTYPE HTML>
2
- <html lang="#{get_setting(:frontend_language).value}">
1
+ <!DOCTYPE html>
2
+ <html lang="#{get_setting(:frontend_language).value}" id="admin"
3
+ class="#{browser_name}">
3
4
  <head>
4
- <meta charset="utf-8" />
5
-
6
- <title>#{get_setting(:website_name).value}</title>
5
+ #{partial(:head)}
7
6
  </head>
8
7
  <body>
9
- <h1>#{get_setting(:website_name).value}</h1>
10
-
11
- <p>
12
- Congratulations, you have successfully set up your Zen application.
13
- For more information on how to create a website using Zen you should
14
- take a look at the
15
- <a href="http://zen-cms.com/documentation/index.html">
16
- documentation
17
- </a>.
18
- </p>
19
-
20
- <p>
21
- If you want to log in instead you can do so by going to the
22
- <a href="/admin/users/login">admin panel</a>.
23
- </p>
8
+ #{partial(:sidebar)}
9
+
10
+ <div id="main" role="main">
11
+ <section>
12
+ <header>
13
+ <h1>Welcome to Zen</h1>
14
+ </header>
15
+
16
+ <div class="body max_width">
17
+ <p>
18
+ Congratulations, You have successfully created a new
19
+ project using Zen.
20
+ </p>
21
+
22
+ <p>
23
+ For more information on getting
24
+ started and other useful information see the
25
+
26
+ <a href="http://zen-cms.com/documentation"
27
+ title="Documentation">
28
+ documentation
29
+ </a>.
30
+ </p>
31
+
32
+ <h2>Common commands</h2>
33
+
34
+ <p>Starting a Zen application using Thin as the server:</p>
35
+
36
+ <pre><code>$ ramaze start -s thin</code></pre>
37
+
38
+ <p>Opening the Ramaze console:</p>
39
+
40
+ <pre><code>$ ramaze console</code></pre>
41
+
42
+ <p>Migrating your database:</p>
43
+
44
+ <pre><code>$ rake db:migrate</code></pre>
45
+
46
+ <h2>Zen and Multi Processing</h2>
47
+
48
+ <p>
49
+ Keep in mind that the default configuration that comes
50
+ with Zen does not work very well for multi process based
51
+ servers such as Unicorn.
52
+ </p>
53
+
54
+ <p>
55
+ Out of the box Zen will store
56
+ session data as well as translations in the memory of
57
+ the current process. This means that users may be logged
58
+ out whenever their requests are handled by a process
59
+ that doesn't contain the session data.
60
+ </p>
61
+
62
+ <p>
63
+ Luckily this is very easy to fix by updating your
64
+ config.rb file so that it contains the following line of
65
+ code (make sure that you remove the existing one):
66
+ </p>
67
+
68
+ <pre><code>Ramaze::Cache.options.session = Ramaze::Cache::MemCache</code></pre>
69
+
70
+ <p>
71
+ Note that the use of Memcached is not enforced, you are
72
+ free to use a different external cache such as
73
+ <code>Ramaze::Cache::Redis</code>
74
+ </p>
75
+
76
+ <p>
77
+ For more information see the documentation in the file
78
+ config/config.rb.
79
+ </p>
80
+
81
+ <h2>System Information</h2>
82
+
83
+ <table>
84
+ <thead>
85
+ <tr>
86
+ <th></th>
87
+ <th></th>
88
+ </tr>
89
+ </thead>
90
+ <tbody>
91
+ <tr>
92
+ <td>Ruby</td>
93
+ <td>#{RUBY_DESCRIPTION}</td>
94
+ </tr>
95
+ <tr>
96
+ <td>Database Adapter</td>
97
+ <td>#{Zen.database.adapter_scheme}</td>
98
+ </tr>
99
+ <tr>
100
+ <td>Sequel version</td>
101
+ <td>#{Sequel::VERSION}</td>
102
+ </tr>
103
+ <tr>
104
+ <td>Zen version</td>
105
+ <td>#{Zen::VERSION}</td>
106
+ </tr>
107
+ <tr>
108
+ <td>Ramaze version</td>
109
+ <td>#{Ramaze::VERSION}</td>
110
+ </tr>
111
+ <tr>
112
+ <td>Rack version</td>
113
+ <td>#{Rack::VERSION.join('.')}</td>
114
+ </tr>
115
+ </tbody>
116
+ </table>
117
+ </div>
118
+ </section>
119
+ </div>
24
120
  </body>
25
121
  </html>