zen 0.1a → 0.2

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 (414) hide show
  1. data/CHANGELOG.md +17 -0
  2. data/MANIFEST +161 -264
  3. data/README.md +114 -0
  4. data/ROADMAP.md +31 -0
  5. data/Thorfile +8 -0
  6. data/lib/zen.rb +13 -10
  7. data/lib/zen/base/database.rb +34 -28
  8. data/lib/zen/base/language.rb +174 -92
  9. data/lib/zen/base/logger.rb +8 -6
  10. data/lib/zen/base/package.rb +36 -29
  11. data/lib/zen/base/version.rb +2 -1
  12. data/lib/zen/bin/zen_binary.rb +7 -71
  13. data/lib/zen/controller/admin_controller.rb +31 -11
  14. data/lib/zen/controller/base_controller.rb +13 -13
  15. data/lib/zen/controller/frontend_controller.rb +2 -0
  16. data/lib/zen/controller/main_controller.rb +9 -8
  17. data/lib/zen/helper/acl.rb +4 -1
  18. data/lib/zen/helper/asset.rb +5 -3
  19. data/lib/zen/helper/breadcrumb.rb +10 -8
  20. data/lib/zen/helper/common.rb +28 -13
  21. data/lib/zen/language/en/zen_general.yml +31 -0
  22. data/lib/zen/language/en/zen_models.yml +13 -0
  23. data/lib/zen/layout/admin.xhtml +76 -68
  24. data/lib/zen/layout/login.xhtml +48 -42
  25. data/lib/zen/liquid/controller_behavior.rb +2 -0
  26. data/lib/zen/liquid/general.rb +60 -9
  27. data/lib/zen/liquid/redirect.rb +29 -6
  28. data/lib/zen/liquid/strip.rb +3 -1
  29. data/lib/zen/model/methods.rb +7 -5
  30. data/lib/zen/model/settings.rb +69 -18
  31. data/lib/zen/package/all.rb +7 -0
  32. data/lib/zen/{packages → package}/categories/lib/categories.rb +3 -3
  33. data/lib/zen/package/categories/lib/categories/controller/categories.rb +250 -0
  34. data/lib/zen/package/categories/lib/categories/controller/category_groups.rb +216 -0
  35. data/lib/zen/package/categories/lib/categories/language/en/categories.yml +35 -0
  36. data/lib/zen/package/categories/lib/categories/language/en/category_groups.yml +32 -0
  37. data/lib/zen/package/categories/lib/categories/liquid/categories.rb +16 -0
  38. data/lib/zen/{packages → package}/categories/lib/categories/model/category.rb +9 -9
  39. data/lib/zen/{packages → package}/categories/lib/categories/model/category_group.rb +6 -4
  40. data/lib/zen/package/categories/lib/categories/view/admin/categories/edit.xhtml +7 -0
  41. data/lib/zen/package/categories/lib/categories/view/admin/categories/form.xhtml +59 -0
  42. data/lib/zen/package/categories/lib/categories/view/admin/categories/index.xhtml +78 -0
  43. data/lib/zen/package/categories/lib/categories/view/admin/categories/new.xhtml +7 -0
  44. data/lib/zen/package/categories/lib/categories/view/admin/category-groups/edit.xhtml +7 -0
  45. data/lib/zen/package/categories/lib/categories/view/admin/category-groups/form.xhtml +31 -0
  46. data/lib/zen/package/categories/lib/categories/view/admin/category-groups/index.xhtml +85 -0
  47. data/lib/zen/package/categories/lib/categories/view/admin/category-groups/new.xhtml +7 -0
  48. data/lib/zen/{packages → package}/categories/migrations/.gitkeep +0 -0
  49. data/lib/zen/{packages → package}/categories/migrations/1295282303_create_schema.rb +3 -2
  50. data/lib/zen/{packages → package}/comments/lib/comments.rb +1 -1
  51. data/lib/zen/{packages → package}/comments/lib/comments/controller/comments.rb +81 -41
  52. data/lib/zen/{packages → package}/comments/lib/comments/controller/comments_form.rb +15 -13
  53. data/lib/zen/package/comments/lib/comments/language/en/comments.yml +42 -0
  54. data/lib/zen/{packages → package}/comments/lib/comments/liquid/comment_form.rb +43 -13
  55. data/lib/zen/{packages → package}/comments/lib/comments/liquid/comments.rb +10 -12
  56. data/lib/zen/{packages → package}/comments/lib/comments/model/comment.rb +24 -0
  57. data/lib/zen/package/comments/lib/comments/view/admin/comments/edit.xhtml +7 -0
  58. data/lib/zen/package/comments/lib/comments/view/admin/comments/form.xhtml +57 -0
  59. data/lib/zen/package/comments/lib/comments/view/admin/comments/index.xhtml +79 -0
  60. data/lib/zen/{packages → package}/comments/migrations/.gitkeep +0 -0
  61. data/lib/zen/{packages → package}/comments/migrations/1295282202_create_schema.rb +6 -4
  62. data/lib/zen/{packages → package}/custom_fields/lib/custom_fields.rb +2 -2
  63. data/lib/zen/package/custom_fields/lib/custom_fields/controller/custom_field_groups.rb +224 -0
  64. data/lib/zen/package/custom_fields/lib/custom_fields/controller/custom_fields.rb +259 -0
  65. data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_field_groups.yml +32 -0
  66. data/lib/zen/package/custom_fields/lib/custom_fields/language/en/custom_fields.yml +52 -0
  67. data/lib/zen/{packages → package}/custom_fields/lib/custom_fields/model/custom_field.rb +12 -7
  68. data/lib/zen/{packages → package}/custom_fields/lib/custom_fields/model/custom_field_group.rb +14 -4
  69. data/lib/zen/{packages → package}/custom_fields/lib/custom_fields/model/custom_field_value.rb +4 -2
  70. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-groups/edit.xhtml +7 -0
  71. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-groups/form.xhtml +30 -0
  72. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-groups/index.xhtml +100 -0
  73. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-field-groups/new.xhtml +7 -0
  74. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-fields/edit.xhtml +7 -0
  75. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-fields/form.xhtml +107 -0
  76. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-fields/index.xhtml +84 -0
  77. data/lib/zen/package/custom_fields/lib/custom_fields/view/admin/custom-fields/new.xhtml +7 -0
  78. data/lib/zen/{packages → package}/custom_fields/migrations/.gitkeep +0 -0
  79. data/lib/zen/{packages → package}/custom_fields/migrations/1295255665_create_schema.rb +8 -7
  80. data/lib/zen/package/menus/lib/menus.rb +59 -0
  81. data/lib/zen/package/menus/lib/menus/controller/menu_items.rb +244 -0
  82. data/lib/zen/package/menus/lib/menus/controller/menus.rb +231 -0
  83. data/lib/zen/package/menus/lib/menus/helper/menu_item.rb +93 -0
  84. data/lib/zen/package/menus/lib/menus/language/en/menu_items.yml +41 -0
  85. data/lib/zen/package/menus/lib/menus/language/en/menus.yml +39 -0
  86. data/lib/zen/package/menus/lib/menus/liquid/menus.rb +152 -0
  87. data/lib/zen/package/menus/lib/menus/model/menu.rb +38 -0
  88. data/lib/zen/package/menus/lib/menus/model/menu_item.rb +33 -0
  89. data/lib/zen/package/menus/lib/menus/view/admin/menu-items/edit.xhtml +7 -0
  90. data/lib/zen/package/menus/lib/menus/view/admin/menu-items/form.xhtml +64 -0
  91. data/lib/zen/package/menus/lib/menus/view/admin/menu-items/index.xhtml +84 -0
  92. data/lib/zen/package/menus/lib/menus/view/admin/menu-items/new.xhtml +7 -0
  93. data/lib/zen/package/menus/lib/menus/view/admin/menus/edit.xhtml +7 -0
  94. data/lib/zen/package/menus/lib/menus/view/admin/menus/form.xhtml +42 -0
  95. data/lib/zen/package/menus/lib/menus/view/admin/menus/index.xhtml +95 -0
  96. data/lib/zen/package/menus/lib/menus/view/admin/menus/new.xhtml +7 -0
  97. data/lib/zen/{packages/sections → package/menus}/migrations/.gitkeep +0 -0
  98. data/lib/zen/package/menus/migrations/1297184342_create_schema.rb +33 -0
  99. data/lib/zen/{packages → package}/sections/lib/sections.rb +0 -0
  100. data/lib/zen/{packages → package}/sections/lib/sections/controller/section_entries.rb +132 -68
  101. data/lib/zen/{packages → package}/sections/lib/sections/controller/sections.rb +96 -48
  102. data/lib/zen/package/sections/lib/sections/language/en/section_entries.yml +43 -0
  103. data/lib/zen/package/sections/lib/sections/language/en/sections.yml +48 -0
  104. data/lib/zen/{packages → package}/sections/lib/sections/liquid/section_entries.rb +55 -43
  105. data/lib/zen/{packages → package}/sections/lib/sections/liquid/sections.rb +9 -8
  106. data/lib/zen/package/sections/lib/sections/model/section.rb +62 -0
  107. data/lib/zen/package/sections/lib/sections/model/section_entry.rb +53 -0
  108. data/lib/zen/package/sections/lib/sections/view/admin/edit.xhtml +7 -0
  109. data/lib/zen/package/sections/lib/sections/view/admin/form.xhtml +107 -0
  110. data/lib/zen/package/sections/lib/sections/view/admin/index.xhtml +93 -0
  111. data/lib/zen/package/sections/lib/sections/view/admin/new.xhtml +7 -0
  112. data/lib/zen/package/sections/lib/sections/view/admin/section-entries/edit.xhtml +7 -0
  113. data/lib/zen/package/sections/lib/sections/view/admin/section-entries/form.xhtml +233 -0
  114. data/lib/zen/package/sections/lib/sections/view/admin/section-entries/index.xhtml +82 -0
  115. data/lib/zen/package/sections/lib/sections/view/admin/section-entries/new.xhtml +7 -0
  116. data/lib/zen/{packages/settings → package/sections}/migrations/.gitkeep +0 -0
  117. data/lib/zen/{packages → package}/sections/migrations/1295251836_create_schema.rb +6 -6
  118. data/lib/zen/{packages → package}/settings/lib/settings.rb +0 -0
  119. data/lib/zen/{packages → package}/settings/lib/settings/controller/settings.rb +33 -24
  120. data/lib/zen/package/settings/lib/settings/language/en/settings.yml +26 -0
  121. data/lib/zen/{packages → package}/settings/lib/settings/liquid/setting.rb +5 -3
  122. data/lib/zen/package/settings/lib/settings/model/setting.rb +113 -0
  123. data/lib/zen/package/settings/lib/settings/view/admin/settings/index.xhtml +111 -0
  124. data/lib/zen/{packages/users → package/settings}/migrations/.gitkeep +0 -0
  125. data/lib/zen/{packages → package}/settings/migrations/1295597111_create_schema.rb +2 -2
  126. data/lib/zen/package/settings/migrations/1299538742_add_language_key.rb +62 -0
  127. data/lib/zen/{packages → package}/users/lib/users.rb +6 -2
  128. data/lib/zen/package/users/lib/users/controller/access_rules.rb +238 -0
  129. data/lib/zen/package/users/lib/users/controller/user_groups.rb +217 -0
  130. data/lib/zen/{packages → package}/users/lib/users/controller/users.rb +115 -57
  131. data/lib/zen/package/users/lib/users/language/en/access_rules.yml +35 -0
  132. data/lib/zen/package/users/lib/users/language/en/user_groups.yml +31 -0
  133. data/lib/zen/package/users/lib/users/language/en/users.yml +50 -0
  134. data/lib/zen/{packages → package}/users/lib/users/liquid/user.rb +8 -6
  135. data/lib/zen/{packages → package}/users/lib/users/liquid/users.rb +5 -3
  136. data/lib/zen/{packages → package}/users/lib/users/model/access_rule.rb +11 -3
  137. data/lib/zen/{packages → package}/users/lib/users/model/user.rb +5 -1
  138. data/lib/zen/{packages → package}/users/lib/users/model/user_group.rb +6 -3
  139. data/lib/zen/package/users/lib/users/public/admin/js/users/access_rules.js +42 -0
  140. data/lib/zen/package/users/lib/users/view/admin/access-rules/edit.xhtml +7 -0
  141. data/lib/zen/package/users/lib/users/view/admin/access-rules/form.xhtml +108 -0
  142. data/lib/zen/package/users/lib/users/view/admin/access-rules/index.xhtml +93 -0
  143. data/lib/zen/package/users/lib/users/view/admin/access-rules/new.xhtml +7 -0
  144. data/lib/zen/package/users/lib/users/view/admin/user-groups/edit.xhtml +7 -0
  145. data/lib/zen/package/users/lib/users/view/admin/user-groups/form.xhtml +37 -0
  146. data/lib/zen/package/users/lib/users/view/admin/user-groups/index.xhtml +76 -0
  147. data/lib/zen/package/users/lib/users/view/admin/user-groups/new.xhtml +7 -0
  148. data/lib/zen/package/users/lib/users/view/admin/users/edit.xhtml +7 -0
  149. data/lib/zen/package/users/lib/users/view/admin/users/form.xhtml +53 -0
  150. data/lib/zen/package/users/lib/users/view/admin/users/index.xhtml +81 -0
  151. data/lib/zen/package/users/lib/users/view/admin/users/login.xhtml +27 -0
  152. data/lib/zen/package/users/lib/users/view/admin/users/new.xhtml +7 -0
  153. data/{pkg → lib/zen/package/users/migrations}/.gitkeep +0 -0
  154. data/lib/zen/{packages → package}/users/migrations/1295281013_create_schema.rb +2 -2
  155. data/lib/zen/public/admin/css/boilerplate.css +62 -60
  156. data/lib/zen/public/admin/css/buttons.css +46 -0
  157. data/lib/zen/public/admin/css/datepicker.css +163 -0
  158. data/lib/zen/public/admin/css/editor.css +91 -0
  159. data/lib/zen/public/admin/css/forms.css +68 -0
  160. data/lib/zen/public/admin/css/general.css +34 -419
  161. data/lib/zen/public/admin/css/grid.css +26 -26
  162. data/lib/zen/public/admin/css/layout.css +73 -62
  163. data/lib/zen/public/admin/css/modals.css +63 -0
  164. data/lib/zen/public/admin/css/notifications.css +84 -0
  165. data/lib/zen/public/admin/css/tables.css +71 -0
  166. data/lib/zen/public/admin/css/tabs.css +53 -0
  167. data/lib/zen/public/admin/js/mootools/more.js +139 -51
  168. data/lib/zen/public/admin/js/vendor/datepicker/Picker.Attach.js +137 -0
  169. data/lib/zen/public/admin/js/vendor/datepicker/Picker.Date.js +576 -0
  170. data/lib/zen/public/admin/js/vendor/datepicker/Picker.js +291 -0
  171. data/lib/zen/public/admin/js/vendor/datepicker/README.md +325 -0
  172. data/lib/zen/public/admin/js/vendor/datepicker/locale.js +16 -0
  173. data/lib/zen/public/admin/js/zen/editor/base.js +173 -183
  174. data/lib/zen/public/admin/js/zen/editor/drivers/html.js +74 -89
  175. data/lib/zen/public/admin/js/zen/editor/drivers/markdown.js +72 -87
  176. data/lib/zen/public/admin/js/zen/editor/drivers/textile.js +72 -87
  177. data/lib/zen/public/admin/js/zen/init.js +65 -51
  178. data/lib/zen/public/admin/js/zen/modal.js +108 -121
  179. data/lib/zen/public/admin/js/zen/notification.js +163 -165
  180. data/lib/zen/public/admin/js/zen/tabs.js +203 -210
  181. data/lib/zen/task/build.rb +123 -0
  182. data/lib/zen/task/clean.rb +46 -0
  183. data/lib/zen/task/db.rb +120 -0
  184. data/lib/zen/task/package.rb +82 -0
  185. data/lib/zen/task/proto.rb +116 -0
  186. data/{LICENSE → license.txt} +2 -2
  187. data/proto/app/Thorfile +4 -0
  188. data/proto/app/config/middlewares.rb +3 -3
  189. data/proto/app/config/requires.rb +1 -6
  190. data/proto/app/start.rb +5 -10
  191. data/{lib/zen/packages/settings → proto/package}/LICENSE +0 -0
  192. data/{lib/zen/packages/categories → proto/package}/README.textile +0 -0
  193. data/proto/package/lib/package.rb +41 -0
  194. data/proto/{module/lib/module → package/lib/package}/controller/controllers.rb +3 -2
  195. data/proto/{module/lib/module → package/lib/package}/language/en/languages.rb +0 -0
  196. data/proto/{module/lib/module → package/lib/package}/model/model.rb +0 -0
  197. data/proto/{module/lib/module/view/admin → package/lib/package/view/admin/package}/edit.xhtml +0 -0
  198. data/proto/{module/lib/module/view/admin → package/lib/package/view/admin/package}/form.xhtml +0 -0
  199. data/proto/{module/lib/module/view/admin → package/lib/package/view/admin/package}/index.xhtml +0 -0
  200. data/proto/{module/lib/module/view/admin → package/lib/package/view/admin/package}/new.xhtml +0 -0
  201. data/proto/{module → package}/migrations/.gitkeep +0 -0
  202. metadata +199 -280
  203. data/README.textile +0 -42
  204. data/Rakefile +0 -6
  205. data/doc/Categories.html +0 -93
  206. data/doc/Categories/Controllers.html +0 -93
  207. data/doc/Categories/Controllers/Categories.html +0 -995
  208. data/doc/Categories/Controllers/CategoryGroups.html +0 -878
  209. data/doc/Categories/Models.html +0 -97
  210. data/doc/Categories/Models/Category.html +0 -269
  211. data/doc/Categories/Models/CategoryGroup.html +0 -231
  212. data/doc/Comments.html +0 -93
  213. data/doc/Comments/Controllers.html +0 -93
  214. data/doc/Comments/Controllers/Comments.html +0 -797
  215. data/doc/Comments/Controllers/CommentsForm.html +0 -487
  216. data/doc/Comments/Liquid.html +0 -93
  217. data/doc/Comments/Liquid/CommentForm.html +0 -522
  218. data/doc/Comments/Liquid/Comments.html +0 -543
  219. data/doc/Comments/Models.html +0 -95
  220. data/doc/Comments/Models/Comment.html +0 -260
  221. data/doc/CustomFields.html +0 -93
  222. data/doc/CustomFields/Controllers.html +0 -93
  223. data/doc/CustomFields/Controllers/CustomFieldGroups.html +0 -902
  224. data/doc/CustomFields/Controllers/CustomFields.html +0 -974
  225. data/doc/CustomFields/Models.html +0 -97
  226. data/doc/CustomFields/Models/CustomField.html +0 -272
  227. data/doc/CustomFields/Models/CustomFieldGroup.html +0 -259
  228. data/doc/CustomFields/Models/CustomFieldValue.html +0 -154
  229. data/doc/Ramaze.html +0 -93
  230. data/doc/Ramaze/Helper.html +0 -93
  231. data/doc/Ramaze/Helper/ACL.html +0 -531
  232. data/doc/Ramaze/Helper/Asset.html +0 -617
  233. data/doc/Ramaze/Helper/Breadcrumb.html +0 -411
  234. data/doc/Ramaze/Helper/Common.html +0 -738
  235. data/doc/Sections.html +0 -93
  236. data/doc/Sections/Controllers.html +0 -93
  237. data/doc/Sections/Controllers/SectionEntries.html +0 -1100
  238. data/doc/Sections/Controllers/Sections.html +0 -953
  239. data/doc/Sections/Liquid.html +0 -93
  240. data/doc/Sections/Liquid/SectionEntries.html +0 -674
  241. data/doc/Sections/Liquid/Sections.html +0 -494
  242. data/doc/Sections/Models.html +0 -97
  243. data/doc/Sections/Models/Section.html +0 -272
  244. data/doc/Sections/Models/SectionEntry.html +0 -264
  245. data/doc/Sequel.html +0 -91
  246. data/doc/Sequel/Model.html +0 -243
  247. data/doc/Settings.html +0 -93
  248. data/doc/Settings/Controllers.html +0 -91
  249. data/doc/Settings/Controllers/Settings.html +0 -565
  250. data/doc/Settings/Liquid.html +0 -91
  251. data/doc/Settings/Liquid/Setting.html +0 -426
  252. data/doc/Settings/Models.html +0 -95
  253. data/doc/Settings/Models/Setting.html +0 -293
  254. data/doc/Users.html +0 -93
  255. data/doc/Users/Controllers.html +0 -93
  256. data/doc/Users/Controllers/AccessRules.html +0 -904
  257. data/doc/Users/Controllers/UserGroups.html +0 -879
  258. data/doc/Users/Controllers/Users.html +0 -1124
  259. data/doc/Users/Liquid.html +0 -93
  260. data/doc/Users/Liquid/User.html +0 -480
  261. data/doc/Users/Liquid/Users.html +0 -495
  262. data/doc/Users/Models.html +0 -97
  263. data/doc/Users/Models/AccessRule.html +0 -257
  264. data/doc/Users/Models/User.html +0 -649
  265. data/doc/Users/Models/UserGroup.html +0 -267
  266. data/doc/Zen.html +0 -391
  267. data/doc/Zen/Bin.html +0 -113
  268. data/doc/Zen/Bin/Base.html +0 -727
  269. data/doc/Zen/Controllers.html +0 -115
  270. data/doc/Zen/Controllers/AdminController.html +0 -298
  271. data/doc/Zen/Controllers/BaseController.html +0 -272
  272. data/doc/Zen/Controllers/FrontendController.html +0 -164
  273. data/doc/Zen/Controllers/MainController.html +0 -421
  274. data/doc/Zen/Database.html +0 -498
  275. data/doc/Zen/Language.html +0 -660
  276. data/doc/Zen/Liquid.html +0 -117
  277. data/doc/Zen/Liquid/ControllerBehavior.html +0 -448
  278. data/doc/Zen/Liquid/General.html +0 -444
  279. data/doc/Zen/Liquid/Redirect.html +0 -435
  280. data/doc/Zen/Liquid/Strip.html +0 -447
  281. data/doc/Zen/Logger.html +0 -393
  282. data/doc/Zen/Package.html +0 -909
  283. data/doc/_index.html +0 -724
  284. data/doc/class_list.html +0 -36
  285. data/doc/css/common.css +0 -1
  286. data/doc/css/full_list.css +0 -53
  287. data/doc/css/style.css +0 -310
  288. data/doc/file.README.html +0 -86
  289. data/doc/file_list.html +0 -38
  290. data/doc/frames.html +0 -13
  291. data/doc/index.html +0 -86
  292. data/doc/js/app.js +0 -203
  293. data/doc/js/full_list.js +0 -149
  294. data/doc/js/jquery.js +0 -154
  295. data/doc/method_list.html +0 -1139
  296. data/doc/top-level-namespace.html +0 -88
  297. data/lib/zen/language/en/zen_general.rb +0 -21
  298. data/lib/zen/language/en/zen_models.rb +0 -39
  299. data/lib/zen/packages/categories/LICENSE +0 -19
  300. data/lib/zen/packages/categories/lib/categories/controller/categories.rb +0 -202
  301. data/lib/zen/packages/categories/lib/categories/controller/category_groups.rb +0 -173
  302. data/lib/zen/packages/categories/lib/categories/language/en/categories.rb +0 -38
  303. data/lib/zen/packages/categories/lib/categories/language/en/category_groups.rb +0 -37
  304. data/lib/zen/packages/categories/lib/categories/view/admin/categories/edit.xhtml +0 -7
  305. data/lib/zen/packages/categories/lib/categories/view/admin/categories/form.xhtml +0 -36
  306. data/lib/zen/packages/categories/lib/categories/view/admin/categories/index.xhtml +0 -70
  307. data/lib/zen/packages/categories/lib/categories/view/admin/categories/new.xhtml +0 -7
  308. data/lib/zen/packages/categories/lib/categories/view/admin/category_groups/edit.xhtml +0 -7
  309. data/lib/zen/packages/categories/lib/categories/view/admin/category_groups/form.xhtml +0 -18
  310. data/lib/zen/packages/categories/lib/categories/view/admin/category_groups/index.xhtml +0 -72
  311. data/lib/zen/packages/categories/lib/categories/view/admin/category_groups/new.xhtml +0 -7
  312. data/lib/zen/packages/comments/LICENSE +0 -19
  313. data/lib/zen/packages/comments/README.textile +0 -0
  314. data/lib/zen/packages/comments/lib/comments/language/en/comments.rb +0 -52
  315. data/lib/zen/packages/comments/lib/comments/view/admin/comments/edit.xhtml +0 -7
  316. data/lib/zen/packages/comments/lib/comments/view/admin/comments/form.xhtml +0 -31
  317. data/lib/zen/packages/comments/lib/comments/view/admin/comments/index.xhtml +0 -74
  318. data/lib/zen/packages/comments/migrations/1296949631_add_defensio_signature.rb +0 -11
  319. data/lib/zen/packages/custom_fields/LICENSE +0 -19
  320. data/lib/zen/packages/custom_fields/README.textile +0 -0
  321. data/lib/zen/packages/custom_fields/lib/custom_fields/controller/custom_field_groups.rb +0 -179
  322. data/lib/zen/packages/custom_fields/lib/custom_fields/controller/custom_fields.rb +0 -194
  323. data/lib/zen/packages/custom_fields/lib/custom_fields/language/en/custom_field_groups.rb +0 -45
  324. data/lib/zen/packages/custom_fields/lib/custom_fields/language/en/custom_fields.rb +0 -64
  325. data/lib/zen/packages/custom_fields/lib/custom_fields/view/admin/custom_field_groups/edit.xhtml +0 -7
  326. data/lib/zen/packages/custom_fields/lib/custom_fields/view/admin/custom_field_groups/form.xhtml +0 -18
  327. data/lib/zen/packages/custom_fields/lib/custom_fields/view/admin/custom_field_groups/index.xhtml +0 -88
  328. data/lib/zen/packages/custom_fields/lib/custom_fields/view/admin/custom_field_groups/new.xhtml +0 -7
  329. data/lib/zen/packages/custom_fields/lib/custom_fields/view/admin/custom_fields/edit.xhtml +0 -7
  330. data/lib/zen/packages/custom_fields/lib/custom_fields/view/admin/custom_fields/form.xhtml +0 -50
  331. data/lib/zen/packages/custom_fields/lib/custom_fields/view/admin/custom_fields/index.xhtml +0 -75
  332. data/lib/zen/packages/custom_fields/lib/custom_fields/view/admin/custom_fields/new.xhtml +0 -7
  333. data/lib/zen/packages/sections/LICENSE +0 -19
  334. data/lib/zen/packages/sections/README.textile +0 -43
  335. data/lib/zen/packages/sections/lib/sections/language/en/section_entries.rb +0 -58
  336. data/lib/zen/packages/sections/lib/sections/language/en/sections.rb +0 -63
  337. data/lib/zen/packages/sections/lib/sections/model/section.rb +0 -43
  338. data/lib/zen/packages/sections/lib/sections/model/section_entry.rb +0 -43
  339. data/lib/zen/packages/sections/lib/sections/view/admin/edit.xhtml +0 -7
  340. data/lib/zen/packages/sections/lib/sections/view/admin/form.xhtml +0 -54
  341. data/lib/zen/packages/sections/lib/sections/view/admin/index.xhtml +0 -77
  342. data/lib/zen/packages/sections/lib/sections/view/admin/new.xhtml +0 -7
  343. data/lib/zen/packages/sections/lib/sections/view/admin/section_entries/edit.xhtml +0 -7
  344. data/lib/zen/packages/sections/lib/sections/view/admin/section_entries/form.xhtml +0 -147
  345. data/lib/zen/packages/sections/lib/sections/view/admin/section_entries/index.xhtml +0 -74
  346. data/lib/zen/packages/sections/lib/sections/view/admin/section_entries/new.xhtml +0 -7
  347. data/lib/zen/packages/sections/migrations/1296335671_userdata_section_entries.rb +0 -18
  348. data/lib/zen/packages/sections/migrations/1296936110_drop_comment_antispam.rb +0 -11
  349. data/lib/zen/packages/settings/README.textile +0 -0
  350. data/lib/zen/packages/settings/lib/settings/language/en/settings.rb +0 -56
  351. data/lib/zen/packages/settings/lib/settings/model/setting.rb +0 -38
  352. data/lib/zen/packages/settings/lib/settings/view/admin/settings/index.xhtml +0 -79
  353. data/lib/zen/packages/users/LICENSE +0 -19
  354. data/lib/zen/packages/users/README.textile +0 -0
  355. data/lib/zen/packages/users/lib/users/controller/access_rules.rb +0 -186
  356. data/lib/zen/packages/users/lib/users/controller/user_groups.rb +0 -171
  357. data/lib/zen/packages/users/lib/users/language/en/access_rules.rb +0 -49
  358. data/lib/zen/packages/users/lib/users/language/en/user_groups.rb +0 -42
  359. data/lib/zen/packages/users/lib/users/language/en/users.rb +0 -63
  360. data/lib/zen/packages/users/lib/users/public/admin/js/users/access_rules.js +0 -43
  361. data/lib/zen/packages/users/lib/users/view/admin/access_rules/edit.xhtml +0 -7
  362. data/lib/zen/packages/users/lib/users/view/admin/access_rules/form.xhtml +0 -68
  363. data/lib/zen/packages/users/lib/users/view/admin/access_rules/index.xhtml +0 -85
  364. data/lib/zen/packages/users/lib/users/view/admin/access_rules/new.xhtml +0 -7
  365. data/lib/zen/packages/users/lib/users/view/admin/user_groups/edit.xhtml +0 -7
  366. data/lib/zen/packages/users/lib/users/view/admin/user_groups/form.xhtml +0 -19
  367. data/lib/zen/packages/users/lib/users/view/admin/user_groups/index.xhtml +0 -69
  368. data/lib/zen/packages/users/lib/users/view/admin/user_groups/new.xhtml +0 -7
  369. data/lib/zen/packages/users/lib/users/view/admin/users/edit.xhtml +0 -7
  370. data/lib/zen/packages/users/lib/users/view/admin/users/form.xhtml +0 -25
  371. data/lib/zen/packages/users/lib/users/view/admin/users/index.xhtml +0 -73
  372. data/lib/zen/packages/users/lib/users/view/admin/users/login.xhtml +0 -22
  373. data/lib/zen/packages/users/lib/users/view/admin/users/new.xhtml +0 -7
  374. data/lib/zen/tasks.rb +0 -6
  375. data/proto/app/Rakefile +0 -2
  376. data/proto/module/LICENSE +0 -0
  377. data/proto/module/README.textile +0 -0
  378. data/proto/module/lib/module.rb +0 -15
  379. data/spec/javascript/css/base.css +0 -177
  380. data/spec/javascript/css/style.css +0 -204
  381. data/spec/javascript/css/typography.css +0 -70
  382. data/spec/javascript/editor/index.html +0 -65
  383. data/spec/javascript/images/close.png +0 -0
  384. data/spec/javascript/images/info.png +0 -0
  385. data/spec/javascript/js/editor.js +0 -16
  386. data/spec/javascript/js/modal.js +0 -12
  387. data/spec/javascript/js/namespace.js +0 -2
  388. data/spec/javascript/js/notification.js +0 -43
  389. data/spec/javascript/js/tabs.js +0 -8
  390. data/spec/javascript/modal/index.html +0 -45
  391. data/spec/javascript/notification/index.html +0 -48
  392. data/spec/javascript/tabs/index.html +0 -73
  393. data/spec/javascript/tabs/tab_1.html +0 -1
  394. data/spec/javascript/tabs/tab_2.html +0 -1
  395. data/spec/zen/base/language.rb +0 -31
  396. data/spec/zen/base/logger.rb +0 -34
  397. data/spec/zen/base/package.rb +0 -47
  398. data/spec/zen/config/database.rb +0 -8
  399. data/spec/zen/helper/asset.rb +0 -26
  400. data/spec/zen/helper/breadcrumb.rb +0 -24
  401. data/spec/zen/language/en/general.rb +0 -4
  402. data/spec/zen/language/nl/general.rb +0 -4
  403. data/spec/zen/liquid/general.rb +0 -42
  404. data/spec/zen/logs/.gitkeep +0 -0
  405. data/spec/zen/spec.rb +0 -9
  406. data/spec/zen/spec_database.db +0 -0
  407. data/tasks/bacon.rake +0 -99
  408. data/tasks/build.rake +0 -72
  409. data/tasks/clean.rake +0 -18
  410. data/tasks/db.rake +0 -81
  411. data/tasks/doc.rake +0 -5
  412. data/tasks/extension.rake +0 -65
  413. data/tasks/proto.rake +0 -37
  414. data/tasks/theme.rake +0 -63
@@ -3,157 +3,144 @@
3
3
  * modal windows. The class itself does not apply any CSS styles, it only adds
4
4
  * a few IDs/classes. All styling should be done in separate CSS files.
5
5
  *
6
- * h2. Basic Usage
6
+ * ## Basic Usage
7
7
  *
8
8
  * Using this class is super-duper simple:
9
9
  *
10
- * bc. new Modal("Hello, world!");
10
+ * new Modal("Hello, world!");
11
11
  *
12
12
  * That creates a container, a background div and the actual modal window
13
13
  * along with the specified content. It doesn't matter what kind of content
14
14
  * you're trying to add as long as it's valid HTML you're good to go.
15
15
  * For example, an image could be shown as following:
16
16
  *
17
- * bc. new Modal($('some_image_id'))
17
+ * new Modal($('some_image_id'))
18
18
  *
19
19
  * Note that iFrames are not supported simply because I never had the need for them.
20
20
  * If you want to load remote data you'd have to do some processing before generating
21
21
  * the modal window:
22
22
  *
23
- * bc. var iframe = new Element('iframe', {src: 'url/of/iframe'});
24
- * new Modal(iframe);
23
+ * var iframe = new Element('iframe', {src: 'url/of/iframe'});
24
+ * new Modal(iframe);
25
25
  *
26
26
  * This class also does not animate the modals, this should also be handled by CSS
27
27
  * and can be done quite easily using CSS3.
28
28
  *
29
- * h2. Closing Modal Windows
29
+ * ## Closing Modal Windows
30
30
  *
31
31
  * The Modal class will add a div element with an id of "modal_close" to the modal window.
32
32
  * Whenever this element is clicked the callback specified in options.callback will be triggered.
33
33
  *
34
- * h2. HTML
34
+ * ## HTML
35
35
  *
36
36
  * The Modal class generates the following HTML:
37
37
  *
38
- * bc. <div id="modal_container">
39
- * <div id="modal_window">
40
- * <div id="modal_close"></div>
41
- * <!-- Content goes here -->
42
- * </div>
43
- * </div>
44
- * <div id="modal_background"></div>
38
+ * <div id="modal_container">
39
+ * <div id="modal_window">
40
+ * <div id="modal_close"></div>
41
+ * <!-- Content goes here -->
42
+ * </div>
43
+ * <div id="modal_background"></div>
44
+ * </div>
45
45
  *
46
46
  * @author Yorick Peterse
47
- * @link http://yorickpeterse.com/
48
- * @license MIT License
49
- * @package Zen
47
+ * @link http://yorickpeterse.com/ Yorick Peterse's Website
48
+ * @link http://zen-cms.com/ Zen Website
49
+ * @license http://code.yorickpeterse.com/license.txt The MIT license
50
50
  * @since 0.1
51
- *
52
- * Copyright (c) 2011, Yorick Peterse
53
- *
54
- * Permission is hereby granted, free of charge, to any person obtaining a copy
55
- * of this software and associated documentation files (the "Software"), to deal
56
- * in the Software without restriction, including without limitation the rights
57
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
58
- * copies of the Software, and to permit persons to whom the Software is
59
- * furnished to do so, subject to the following conditions:
60
- *
61
- * The above copyright notice and this permission notice shall be included in
62
- * all copies or substantial portions of the Software.
63
- *
64
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
65
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
66
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
67
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
68
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
69
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
70
- * THE SOFTWARE.
71
51
  */
72
52
  Zen.Modal = new Class(
73
53
  {
74
- Implements: Options,
75
-
76
- /**
77
- * Object containing all default options for each modal window.
78
- * The following options are available:
79
- *
80
- * * height: specifies the width of the window (pixels, em, etc)
81
- * * width: specifies the height of the modal window
82
- * * fullscreen: specifies if the modal window should have a class of "fullscreen".
83
- * * callback: an event that's triggered whenever the close element is clicked.
84
- *
85
- * @var object
86
- */
87
- options: {
88
- height: '200px',
89
- width: '200px',
90
- fullscreen: false,
91
- callback: function()
92
- {
93
- // Remove all elements
94
- $('modal_background').destroy();
95
- $('modal_container').destroy();
96
- }
97
- },
98
-
99
- /**
100
- * Creates a new instance of the modal window and shows it.
101
- * Basic usage is as following:
102
- *
103
- * bc. modal = new Modal("Hello, world!");
104
- *
105
- * If you want to specify any additional options you can do so as following:
106
- *
107
- * bc. modal = new Modal("Hello, world!", {fullscreen: true});
108
- *
109
- * Note that calling this method will also show the message rather than just
110
- * initializing the class.
111
- *
112
- * @author Yorick Peterse
113
- * @param [String] content The content to display inside the modal window.
114
- * @param [Object] options JSON object containing all custom options.
115
- * @return [Object]
116
- */
117
- initialize: function(content, options)
118
- {
119
- this.setOptions(options);
120
-
121
- if ( this.options.fullscreen == true )
122
- {
123
- var modal_class = "fullscreen";
124
- }
125
- else
126
- {
127
- var modal_class = null;
128
- }
129
-
130
- var styles = {width: this.options.width, height: this.options.height};
131
-
132
- // Create our base elements
133
- var modal_container = new Element('div', {id: 'modal_container'});
134
- var modal_window = new Element('div', {id: 'modal_window', 'class': modal_class});
135
- var modal_close = new Element('div', {id: 'modal_close'});
136
- var modal_background = new Element('div', {id: 'modal_background'});
137
-
138
- // Strings will be inserted using the html() method. Other elements
139
- // will be injected into the modal window.
140
- if ( typeof content == "string" )
141
- {
142
- modal_window.set('html', content);
143
- }
144
- else
54
+ Implements: Options,
55
+
56
+ /**
57
+ * Object containing all default options for each modal window.
58
+ * The following options are available:
59
+ *
60
+ * * height: specifies the width of the window (pixels, em, etc)
61
+ * * width: specifies the height of the modal window
62
+ * * fullscreen: specifies if the modal window should have a class of "fullscreen".
63
+ * * callback: an event that's triggered whenever the close element is clicked.
64
+ *
65
+ * @author Yorick Peterse
66
+ * @since 0.1
67
+ * @var {object}
68
+ */
69
+ options: {
70
+ height: '200px',
71
+ width: '200px',
72
+ fullscreen: false,
73
+ callback: function()
74
+ {
75
+ // Remove all elements
76
+ $('modal_background').destroy();
77
+ $('modal_container').destroy();
78
+ }
79
+ },
80
+
81
+ /**
82
+ * Creates a new instance of the modal window and shows it.
83
+ * Basic usage is as following:
84
+ *
85
+ * modal = new Modal("Hello, world!");
86
+ *
87
+ * If you want to specify any additional options you can do so as following:
88
+ *
89
+ * modal = new Modal("Hello, world!", {fullscreen: true});
90
+ *
91
+ * Note that calling this method will also show the message rather than just
92
+ * initializing the class.
93
+ *
94
+ * @author Yorick Peterse
95
+ * @since 0.1
96
+ * @param {string} content The content to display inside the modal window.
97
+ * @param {object} options Object containing all custom options.
98
+ * @return {void}
99
+ */
100
+ initialize: function(content, options)
145
101
  {
146
- modal_window.adopt(content.clone());
102
+ this.setOptions(options);
103
+
104
+ var modal_class = null;
105
+
106
+ if ( this.options.fullscreen === true )
107
+ {
108
+ modal_class = "fullscreen";
109
+ }
110
+
111
+ var styles = {width: this.options.width, height: this.options.height};
112
+
113
+ // Create our base elements
114
+ var modal_container = new Element('div', {id: 'modal_container'});
115
+ var modal_window = new Element('div',
116
+ {
117
+ id : 'modal_window',
118
+ 'class': modal_class,
119
+ styles : styles
120
+ });
121
+
122
+ var modal_close = new Element('div', {id: 'modal_close'});
123
+ var modal_background = new Element('div', {id: 'modal_background'});
124
+
125
+ // Strings will be inserted using the html() method. Other elements
126
+ // will be injected into the modal window.
127
+ if ( typeof content === "string" )
128
+ {
129
+ modal_window.set('html', content);
130
+ }
131
+ else
132
+ {
133
+ modal_window.adopt(content.clone());
134
+ }
135
+
136
+ // Inject the close button
137
+ modal_close.inject(modal_window);
138
+
139
+ // Bind the events
140
+ modal_close.addEvent('click', this.options.callback);
141
+
142
+ modal_window.inject(modal_container);
143
+ modal_background.inject(document.body);
144
+ modal_container.inject(document.body);
147
145
  }
148
-
149
- // Inject the close button
150
- modal_close.inject(modal_window);
151
-
152
- // Bind the events
153
- modal_close.addEvent('click', this.options.callback);
154
-
155
- modal_window.inject(modal_container);
156
- modal_background.inject(document.body);
157
- modal_container.inject(document.body);
158
- }
159
- });
146
+ });
@@ -4,22 +4,22 @@
4
4
  * has been posted, etc. Note that this class only inserts/animates the HTML, you'll have to
5
5
  * style the notifications yourself (more on that later on).
6
6
  *
7
- * h2. Basic Usage
7
+ * ## Basic Usage
8
8
  *
9
9
  * Creating a new notification is fairly easy. The most basic notification only requires some content
10
10
  * and a title.
11
11
  *
12
- * bc. notification = new Zen.Notification(
13
- * {
14
- * title: 'My title',
15
- * content: 'Hello, world!'
16
- * });
12
+ * notification = new Zen.Notification(
13
+ * {
14
+ * title: 'My title',
15
+ * content: 'Hello, world!'
16
+ * });
17
17
  *
18
18
  * This will show a new notification without a title and an image, just the text "Hello, world!".
19
19
  * You're not limited to plain text so feel free to use Comic Sans MS, pink colors and other funky
20
20
  * elements.
21
21
  *
22
- * h2. Configuring Notifications
22
+ * ## Configuring Notifications
23
23
  *
24
24
  * Obviously just a message isn't enough and you might want to add an image or a title. When creating
25
25
  * a new notification you can use the following configuration options:
@@ -30,184 +30,182 @@
30
30
  * * sticky: boolean that indicates that the message can't be hidden by clicking on it
31
31
  * * duration: the time (in miliseconds) after which the notification should be removed
32
32
  *
33
- * h2. Styling Notifications
33
+ * ## Styling Notifications
34
34
  *
35
35
  * The HTML generated by the Notification class is fairly straightforward. There
36
36
  * are 2 important elements. The notification container and the notification itself.
37
37
  * The container will, how unexpected it may sound, contain all notifications. It's
38
38
  * HTML looks like the following:
39
39
  *
40
- * bc. <div id="notification_container">
40
+ * <div id="notification_container">
41
41
  *
42
- * </div>
42
+ * </div>
43
43
  *
44
44
  * The HTML for a notification is slightly more complicated and looks like the following:
45
45
  *
46
- * bc. <div class="notification">
47
- * <div class="close"></div>
48
- * <div class="image">
49
- * <img src="..." />
50
- * </div>
51
- * <div class="title">
52
- * Notification Title
53
- * </div>
54
- * <div class="content">
55
- * Content goes here
56
- * </div>
57
- * </div>
46
+ * <div class="notification">
47
+ * <div class="close"></div>
48
+ * <div class="image">
49
+ * <img src="..." />
50
+ * </div>
51
+ * <div class="title">
52
+ * Notification Title
53
+ * </div>
54
+ * <div class="content">
55
+ * Content goes here
56
+ * </div>
57
+ * </div>
58
58
  *
59
59
  * As you can see it uses quite a few div elements but it's nothing ground breaking.
60
60
  * The image and title div elements will only be displayed if a title and/or image has been
61
61
  * specified. The close and content div will always be displayed.
62
62
  *
63
- * @author Yorick Peterse
64
- * @link http://yorickpeterse.com/
65
- * @license MIT License
66
- * @package Zen
67
- * @since 0.1
68
- *
69
- * Copyright (c) 2011, Yorick Peterse
70
- *
71
- * Permission is hereby granted, free of charge, to any person obtaining a copy
72
- * of this software and associated documentation files (the "Software"), to deal
73
- * in the Software without restriction, including without limitation the rights
74
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
75
- * copies of the Software, and to permit persons to whom the Software is
76
- * furnished to do so, subject to the following conditions:
77
- *
78
- * The above copyright notice and this permission notice shall be included in
79
- * all copies or substantial portions of the Software.
80
- *
81
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
82
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
83
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
84
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
85
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
86
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
87
- * THE SOFTWARE.
63
+ * @author Yorick Peterse
64
+ * @link http://yorickpeterse.com/ Yorick Peterse's Website
65
+ * @link http://zen-cms.com/ Zen Website
66
+ * @license http://code.yorickpeterse.com/license.txt The MIT license
67
+ * @since 0.1
88
68
  */
89
69
  Zen.Notification = new Class(
90
70
  {
91
- Implements: Options,
92
-
93
- /**
94
- * JSON object containing all default and user defined options.
95
- * The following options are available:
96
- *
97
- * * title: the title for the notification
98
- * * content: the text or HTML to display in the message
99
- * * image: a custom image to show in the notification
100
- * * sticky: boolean that indicates that the message can't be hidden by clicking on it
101
- * * duration: the time (in miliseconds) after which the notification should be removed
102
- *
103
- * @var [Object]
104
- */
105
- options:
106
- {
107
- title: '',
108
- content: '',
109
- image: '',
110
- sticky: false,
111
- duration: 3000
112
- },
113
-
114
- /**
115
- * Creates a new instance of the notification class
116
- * and shows the notification based on the specified options.
117
- *
118
- * @author Yorick Peterse
119
- * @param [Object] options JSON objects containing all custom configuration parameters.
120
- * @return [Object]
121
- */
122
- initialize: function(options)
123
- {
124
- this.setOptions(options);
125
- this.generateContainer();
126
- this.generateNotification();
127
- },
128
-
129
- /**
130
- * Generates a new notification container in case it doesn't already exist.
131
- *
132
- * @author Yorick Peterse
133
- * @return [Void]
134
- */
135
- generateContainer: function()
136
- {
137
- // The container only has to be created once
138
- if ( $('notification_container') != null )
71
+ Implements: Options,
72
+
73
+ /**
74
+ * JSON object containing all default and user defined options.
75
+ * The following options are available:
76
+ *
77
+ * * title: the title for the notification
78
+ * * content: the text or HTML to display in the message
79
+ * * image: a custom image to show in the notification
80
+ * * sticky: boolean that indicates that the message can't be hidden by clicking on it
81
+ * * duration: the time (in miliseconds) after which the notification should be removed
82
+ *
83
+ * @author Yorick Peterse
84
+ * @since 0.1
85
+ * @var {object}
86
+ */
87
+ options:
139
88
  {
140
- return;
141
- }
142
-
143
- container = new Element('div', {id: 'notification_container'});
144
- container.inject(document.body);
145
- },
146
-
147
- /**
148
- * Generates a new notification and inserts it into the notification
149
- * container.
150
- *
151
- * @author Yorick Peterse
152
- * @return [Void]
153
- */
154
- generateNotification: function()
155
- {
156
- var self = this;
157
- var notification = new Element('div', {
158
- class: 'notification',
159
- styles: {visibility: 'hidden'}
160
- });
161
-
162
- notification.adopt(new Element('div', {class: 'close'}));
163
-
164
- // We'll only add the title and the image if they've been set
165
- if ( this.options.image != '' )
89
+ title: '',
90
+ content: '',
91
+ image: '',
92
+ sticky: false,
93
+ duration: 3000
94
+ },
95
+
96
+ /**
97
+ * Creates a new instance of the notification class
98
+ * and shows the notification based on the specified options.
99
+ *
100
+ * @author Yorick Peterse
101
+ * @since 0.1
102
+ * @param {object} options An object containing all custom configuration parameters.
103
+ * @return {void}
104
+ */
105
+ initialize: function(options)
166
106
  {
167
- var image_div = new Element('div', {class: 'image'});
168
- var image_tag = new Element('img', {src: this.options.image});
169
-
170
- notification.adopt(image_div.adopt(image_tag));
171
- }
172
-
173
- var title_div = new Element('div', {class: 'title' , html: this.options.title });
174
- var content_div = new Element('div', {class: 'content', html: this.options.content});
175
-
176
- notification.adopt(title_div, content_div).inject($('notification_container'));
177
-
178
- // Add a new event listener so we can close our event
179
- notification.addEvent('click', function()
107
+ this.setOptions(options);
108
+ this.generateContainer();
109
+ this.generateNotification();
110
+ },
111
+
112
+ /**
113
+ * Generates a new notification container in case it doesn't already exist.
114
+ *
115
+ * @author Yorick Peterse
116
+ * @since 0.1
117
+ * @return {void}
118
+ */
119
+ generateContainer: function()
180
120
  {
181
- self.removeNotification(notification);
182
- });
183
-
184
- notification.tween('opacity', 0, 1);
185
-
186
- // Automatically remove the notification after 3 seconds if "sticky" is set to false
187
- if ( this.options.sticky != true )
121
+ // The container only has to be created once
122
+ if ( $('notification_container') !== null )
123
+ {
124
+ return;
125
+ }
126
+
127
+ container = new Element('div', {id: 'notification_container'});
128
+ container.inject(document.body);
129
+ },
130
+
131
+ /**
132
+ * Generates a new notification and inserts it into the notification
133
+ * container.
134
+ *
135
+ * @author Yorick Peterse
136
+ * @since 0.1
137
+ * @return {void}
138
+ */
139
+ generateNotification: function()
188
140
  {
189
- this.removeNotification.delay(this.options.duration, this, [notification]);
190
- }
191
- },
192
-
193
- /**
194
- * Removes the specified notification by fading it out and them removing the DOM element.
195
- *
196
- * @author Yorick peterse
197
- * @param [Object] notification The notification to remove.
198
- * @return [Void]
199
- */
200
- removeNotification: function(notification)
201
- {
202
- // Fade the notification along with a callback so we can remove the element
203
- // once the animation is finished
204
- effect = new Fx.Tween(notification);
205
-
206
- effect.addEvent('complete', function()
141
+ var self = this;
142
+ var notification = new Element('div',
143
+ {
144
+ 'class': 'notification',
145
+ styles : {
146
+ visibility: 'hidden'
147
+ }
148
+ });
149
+
150
+ notification.adopt(new Element('div', {'class': 'close'}));
151
+
152
+ // We'll only add the title and the image if they've been set
153
+ if ( this.options.image !== '' )
154
+ {
155
+ var image_div = new Element('div', {'class': 'image'});
156
+ var image_tag = new Element('img', {src: this.options.image});
157
+
158
+ notification.adopt(image_div.adopt(image_tag));
159
+ }
160
+
161
+ var title_div = new Element('div',
162
+ {
163
+ 'class': 'title',
164
+ html : this.options.title
165
+ });
166
+
167
+ var content_div = new Element('div',
168
+ {
169
+ 'class' : 'content',
170
+ html : this.options.content
171
+ });
172
+
173
+ notification.adopt(title_div, content_div).inject($('notification_container'));
174
+
175
+ // Add a new event listener so we can close our event
176
+ notification.addEvent('click', function()
177
+ {
178
+ self.removeNotification(notification);
179
+ });
180
+
181
+ notification.tween('opacity', 0, 1);
182
+
183
+ // Automatically remove the notification after 3 seconds if "sticky" is set to false
184
+ if ( this.options.sticky !== true )
185
+ {
186
+ this.removeNotification.delay(this.options.duration, this, [notification]);
187
+ }
188
+ },
189
+
190
+ /**
191
+ * Removes the specified notification by fading it out and them removing the DOM element.
192
+ *
193
+ * @author Yorick peterse
194
+ * @since 0.1
195
+ * @param {object} notification The notification to remove.
196
+ * @return {void}
197
+ */
198
+ removeNotification: function(notification)
207
199
  {
208
- notification.destroy();
209
- });
210
-
211
- effect.start('opacity', 1, 0);
212
- }
213
- });
200
+ // Fade the notification along with a callback so we can remove the element
201
+ // once the animation is finished
202
+ effect = new Fx.Tween(notification);
203
+
204
+ effect.addEvent('complete', function()
205
+ {
206
+ notification.destroy();
207
+ });
208
+
209
+ effect.start('opacity', 1, 0);
210
+ }
211
+ });