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
@@ -0,0 +1,291 @@
1
+ /*
2
+ ---
3
+ name: Picker
4
+ description: Creates a Picker, which can be used for anything
5
+ authors: Arian Stolwijk
6
+ requires: [Core/Element.Dimensions, Core/Fx.Tween, Core/Fx.Transitions]
7
+ provides: Picker
8
+ ...
9
+ */
10
+
11
+
12
+ var Picker = new Class({
13
+
14
+ Implements: [Options, Events],
15
+
16
+ options: {/*
17
+ onShow: function(){},
18
+ onOpen: function(){},
19
+ onHide: function(){},
20
+ onClose: function(){},*/
21
+
22
+ pickerClass: 'datepicker',
23
+ inject: null,
24
+ animationDuration: 400,
25
+ useFadeInOut: true,
26
+ positionOffset: {x: 0, y: 0},
27
+ pickerPosition: 'bottom',
28
+ draggable: true,
29
+ showOnInit: true
30
+ },
31
+
32
+ initialize: function(options){
33
+ this.setOptions(options);
34
+ this.constructPicker();
35
+ if (this.options.showOnInit) this.show();
36
+ },
37
+
38
+ constructPicker: function(){
39
+ var options = this.options;
40
+
41
+ var picker = this.picker = new Element('div', {
42
+ 'class': options.pickerClass,
43
+ styles: {
44
+ left: 0,
45
+ top: 0,
46
+ display: 'none',
47
+ opacity: 0
48
+ }
49
+ }).inject(options.inject || document.body);
50
+
51
+ if (options.useFadeInOut){
52
+ picker.set('tween', {
53
+ duration: options.animationDuration,
54
+ link: 'cancel'
55
+ });
56
+ }
57
+
58
+ // Build the header
59
+ var header = this.header = new Element('div.header').inject(picker);
60
+
61
+ this.closeButton = new Element('div.closeButton[text=x]')
62
+ .addEvent('click', this.close.pass(false, this))
63
+ .inject(header);
64
+
65
+ var title = this.title = new Element('div.title').inject(header);
66
+ this.titleText = new Element('div.titleText').inject(title);
67
+
68
+ // Build the body of the picker
69
+ var body = this.body = new Element('div.body').inject(picker);
70
+
71
+ // oldContents and newContents are used to slide from the old content to a new one.
72
+ var slider = this.slider = new Element('div.slider', {
73
+ styles: {
74
+ position: 'absolute',
75
+ top: 0,
76
+ left: 0
77
+ }
78
+ }).set('tween', {
79
+ duration: options.animationDuration,
80
+ transition: Fx.Transitions.Quad.easeInOut
81
+ }).inject(body);
82
+
83
+ this.oldContents = new Element('div', {
84
+ styles: {
85
+ position: 'absolute',
86
+ top: 0
87
+ }
88
+ }).inject(slider);
89
+
90
+ this.newContents = new Element('div', {
91
+ styles: {
92
+ position: 'absolute',
93
+ top: 0,
94
+ left: 0
95
+ }
96
+ }).inject(slider);
97
+
98
+ // IFrameShim for select fields in IE
99
+ var shim = this.shim = window['IframeShim'] ? new IframeShim(picker) : null;
100
+
101
+ // Dragging
102
+ if (options.draggable && typeOf(picker.makeDraggable) == 'function'){
103
+ this.dragger = picker.makeDraggable(shim ? {
104
+ onDrag: shim.position.bind(shim)
105
+ } : null);
106
+ picker.setStyle('cursor', 'move');
107
+ }
108
+
109
+ this.addEvent('open', function(){
110
+ picker.setStyle('display', 'block');
111
+ if (shim) shim.show();
112
+ }, true);
113
+
114
+ this.addEvent('hide', function(){
115
+ picker.setStyle('display', 'none');
116
+ if (shim) shim.hide();
117
+ }, true);
118
+
119
+ },
120
+
121
+ open: function(noFx){
122
+ if (this.opened == true) return this;
123
+ this.opened = true;
124
+ this.fireEvent('open');
125
+ if (this.options.useFadeInOut && !noFx){
126
+ this.picker.fade('in').get('tween').chain(function(){
127
+ this.fireEvent('show');
128
+ }.bind(this));
129
+ } else {
130
+ this.picker.setStyle('opacity', 1);
131
+ this.fireEvent('show');
132
+ }
133
+ return this;
134
+ },
135
+
136
+ show: function(){
137
+ return this.open(true);
138
+ },
139
+
140
+ close: function(noFx){
141
+ if (this.opened == false) return this;
142
+ this.opened = false;
143
+ this.fireEvent('close');
144
+ if (this.options.useFadeInOut && !noFx){
145
+ this.picker.fade('out').get('tween').chain(function(){
146
+ this.fireEvent('hide');
147
+ }.bind(this));
148
+ } else {
149
+ this.picker.setStyle('opacity', 0);
150
+ this.fireEvent('hide');
151
+ }
152
+ return this;
153
+ },
154
+
155
+ hide: function(){
156
+ return this.close(true);
157
+ },
158
+
159
+ toggle: function(){
160
+ return this[this.opened == true ? 'close' : 'open']();
161
+ },
162
+
163
+ destroy: function(){
164
+ this.picker.destroy();
165
+ if (this.shim) this.shim.destroy();
166
+ },
167
+
168
+ position: function(x, y){
169
+ var offset = this.options.positionOffset,
170
+ scroll = document.getScroll(),
171
+ size = document.getSize(),
172
+ pickersize = this.picker.getSize();
173
+
174
+ if (typeOf(x) == 'element'){
175
+ var element = x,
176
+ where = y || this.options.pickerPosition;
177
+
178
+ var elementCoords = element.getCoordinates();
179
+
180
+ x = (where == 'left') ? elementCoords.left - pickersize.x
181
+ : (where == 'bottom' || where == 'top') ? elementCoords.left
182
+ : elementCoords.right
183
+ y = (where == 'bottom') ? elementCoords.bottom
184
+ : (where == 'top') ? elementCoords.top - pickersize.y
185
+ : elementCoords.top;
186
+ }
187
+
188
+ x += offset.x * ((where && where == 'left') ? -1 : 1);
189
+ y += offset.y * ((where && where == 'top') ? -1: 1);
190
+
191
+ if ((x + pickersize.x) > (size.x + scroll.x)) x = (size.x + scroll.x) - pickersize.x;
192
+ if ((y + pickersize.y) > (size.y + scroll.y)) y = (size.y + scroll.y) - pickersize.y;
193
+ if (x < 0) x = 0;
194
+ if (y < 0) y = 0;
195
+
196
+ this.picker.setStyles({
197
+ left: x,
198
+ top: y
199
+ });
200
+ if (this.shim) this.shim.position();
201
+ return this;
202
+ },
203
+
204
+ setBodySize: function(){
205
+ var bodysize = this.bodysize = this.body.getSize();
206
+ this.slider.setStyles({
207
+ width: 2 * bodysize.x,
208
+ height: bodysize.y
209
+ });
210
+ this.oldContents.setStyles({
211
+ left: bodysize.x,
212
+ width: bodysize.x,
213
+ height: bodysize.y
214
+ });
215
+ this.newContents.setStyles({
216
+ width: bodysize.x,
217
+ height: bodysize.y
218
+ });
219
+ },
220
+
221
+ setContent: function(){
222
+ var content = Array.from(arguments), fx;
223
+
224
+ if (['right', 'left', 'fade'].contains(content[1])) fx = content[1];
225
+ if (content.length == 1 || fx) content = content[0];
226
+
227
+ // swap contents so we can fill the newContents again and animate
228
+ var old = this.oldContents;
229
+ this.oldContents = this.newContents;
230
+ this.newContents = old;
231
+ this.newContents.empty();
232
+
233
+ var type = typeOf(content);
234
+ if (['string', 'number'].contains(type)) this.newContents.set('text', content);
235
+ else this.newContents.adopt(content);
236
+
237
+ this.setBodySize();
238
+
239
+ if (fx){
240
+ this.fx(fx);
241
+ } else {
242
+ this.slider.setStyle('left', 0);
243
+ this.oldContents.setStyles({left: 0, opacity: 0});
244
+ this.newContents.setStyles({left: 0, opacity: 1});
245
+ }
246
+ return this;
247
+ },
248
+
249
+ fx: function(fx){
250
+ var oldContents = this.oldContents,
251
+ newContents = this.newContents,
252
+ slider = this.slider,
253
+ bodysize = this.bodysize;
254
+ if (fx == 'right'){
255
+ oldContents.setStyles({left: 0, opacity: 1});
256
+ newContents.setStyles({left: bodysize.x, opacity: 1});
257
+ slider.setStyle('left', 0).tween('left', 0, -bodysize.x);
258
+ } else if (fx == 'left'){
259
+ oldContents.setStyles({left: bodysize.x, opacity: 1});
260
+ newContents.setStyles({left: 0, opacity: 1});
261
+ slider.setStyle('left', -bodysize.x).tween('left', -bodysize.x, 0);
262
+ } else if (fx == 'fade'){
263
+ slider.setStyle('left', 0);
264
+ oldContents.setStyle('left', 0).set('tween', {
265
+ duration: this.options.animationDuration / 2
266
+ }).tween('opacity', 1, 0).get('tween').chain(function(){
267
+ oldContents.setStyle('left', bodysize.x);
268
+ });
269
+ newContents.setStyles({opacity: 0, left: 0}).set('tween', {
270
+ duration: this.options.animationDuration
271
+ }).tween('opacity', 0, 1);
272
+ }
273
+ },
274
+
275
+ toElement: function(){
276
+ return this.picker;
277
+ },
278
+
279
+ setTitle: function(text){
280
+ this.titleText.set('text', text);
281
+ return this;
282
+ },
283
+
284
+ setTitleEvent: function(fn){
285
+ this.titleText.removeEvents('click');
286
+ if (fn) this.titleText.addEvent('click', fn);
287
+ this.titleText.setStyle('cursor', fn ? 'pointer' : '');
288
+ return this;
289
+ }
290
+
291
+ });
@@ -0,0 +1,325 @@
1
+ MooTools-DatePicker
2
+ ===================
3
+
4
+ MooTools DatePicker is a nice modular and themable DatePicker. It has many features and options, such as
5
+ year, month, day or timepicker only modes, min and max dates, Localization and a lot more.
6
+
7
+ This Plugin makes use of MooTools' Locale and Date plugins in MooTools More, to provide a localized
8
+ datepicker, as well as easy formatting and parsing Dates.
9
+
10
+ This DatePicker is a fork of the original [MonkeyPhysics DatePicker](http://www.monkeyphysics.com/mootools/script/2/datepicker),
11
+ and has improved a lot since then. Though it should be (almost) backward compatible.
12
+
13
+ ![Screenshot](https://github.com/arian/mootools-datepicker/raw/master/screenshot.png)
14
+
15
+ As of version 1.60 the datepicker will only work with MooTools 1.3.
16
+
17
+ How to use
18
+ ----------
19
+
20
+ Below you will find a description and some docs how you can use the datepicker.
21
+ If you find any weird things, please create a ticket at github or fork and fix it!
22
+
23
+ The DatePicker consists out of three layers, a Picker class, which can be used to create any form of Picker, a Picker.Attach class,
24
+ which handles stuff like attaching the Picker to a input or anchor element. Finally there is the DatePicker class, which you'll probably
25
+ use. Every option of the Picker or Picker.Attach classes can be used in the DatePicker class.
26
+
27
+ Basic Example
28
+ -------------
29
+
30
+ First you need to include the following html tags:
31
+
32
+ #HTML
33
+ <script src="../Source/Locale.en-US.DatePicker.js" type="text/javascript"></script>
34
+ <script src="../Source/Picker.js" type="text/javascript"></script>
35
+ <script src="../Source/Picker.Attach.js" type="text/javascript"></script>
36
+ <script src="../Source/Picker.Date.js" type="text/javascript"></script>
37
+
38
+ <link href="../Source/datepicker_dashboard/datepicker_dashboard.css" rel="stylesheet">
39
+
40
+ Then you can simply use, for example:
41
+
42
+ #JS
43
+ new Picker.Date($$('input'), {
44
+ timePicker: true,
45
+ positionOffset: {x: 5, y: 0},
46
+ pickerClass: 'datepicker_dashboard',
47
+ useFadeInOut: !Browser.ie
48
+ });
49
+
50
+
51
+ ### Theming:
52
+
53
+ Theming is done with CSS files, there are four themes available, which you can find in the Source folder.
54
+
55
+ Just include the CSS file and set the `pickerClass` option.
56
+
57
+
58
+ ### Localization
59
+
60
+ The DatePicker uses the MooTools More Date Class, which already includes many localized strings.
61
+ For some specific strings DatePicker has its own localizations, which you can find in the Locale.__-__.DatePicker.js files.
62
+ Just include the file in your page with a script tag to use the translations.
63
+
64
+ Currently the following languages are supported
65
+
66
+ - en-US
67
+ - de-DE
68
+ - fr-FR
69
+ - it-IT
70
+ - nl-NL
71
+ - cs-CZ
72
+ - ru-RU
73
+
74
+ You can set the current language with:
75
+
76
+ #JS
77
+ Locale.use('nl-NL');
78
+
79
+
80
+ Class: DatePicker
81
+ -----------------
82
+
83
+ ### Syntax
84
+
85
+ #JS
86
+ var dp = new DatePicker([element, options]);
87
+
88
+ ### Arguments
89
+
90
+ 1. element: (*element*, *string*, *array*) The element(s) to attach the datepicker to
91
+ 2. options: (*object*, optional) The options object
92
+
93
+ ### Options:
94
+
95
+ All the options of the Picker and Picker.Attach classes, and:
96
+
97
+ - minDate: (*Date instance*, *string*, defaults to `null`) Minimum date allowed to pick. Blocks anything before.
98
+ - maxDate: (*Date instance*, *string*, defaults to `null`) Maximum date allowed to pick. Blocks anything after.
99
+ - availableDates: (*object*, defaults to `null`) When only a few dates should be selectable. An object like `{2011: {1: [19, 29, 31], 3: [5, 19, 24]}}` with all the dates (year -> months -> days).
100
+ - format: (*string*, defaults to the default localized format) The format to output into the input field. Uses [Date.format](http://mootools.net/docs/more/Types/Date#Date:format)
101
+ - timePicker: (*boolean*, defaults to 1 `false`) Enable/disable timepicker functionality. Hours/Minutes values can be changed using the scrollwheel.
102
+ - timeWheelStep: (*number*, defaults to `1`) The number of minutes the minutes field will change in the timepicker when using the scrollwheel, for example 5, 10, 15. The value will always be k * timeWheelStep.
103
+ - yearPicker: (*boolean*, defaults to `true`) Enable/disable yearpicker functionality. Makes it much easier to change years.
104
+ - yearPerPage: (*number*, defaults to `20`) Amount of years to show in the year-picking view. Be aware that this may affect your layout.
105
+ - startView: (*string*, defaults to `days`) The view that will be showed when the picker opens. The options are `time`, `days`, `months` and `years`
106
+ - pickOnly: (*string*, defaults to `false`) If you just want to pick a year, month, day or time. The options are `time`, `days`, `months` and `years`
107
+ - canAlwaysGoUp: (*array*, defaults to `['months', 'days']`) The views where you can click the title to go up. The options are `time`, `days`, `months` and `years`
108
+ - months_abbr: (*array*) An array with the month name abbreviations. If nothing is set, it will automatically use MooTools Locale to get the abbreviations
109
+ - days_abbr: (*array*) An array with the day name abbreviations. If nothing is set, it will automatically use MooTools Locale to get the abbreviations
110
+ - years_title: (*function*, defaults to a function which returns `year + '-' + (year + options.yearsPerPage - 1)`) A function that returns the title for the yearpicker with as arguments the date object and the options object.
111
+ - months_title: (*function*, defaults to a function which returns `date.format('%b %Y')`) A function that returns the title for the monthpicker with as arguments the date object and the options object.
112
+ - days_title: (*function*, defaults to a function which returns `date.format('%b %Y')`) A function that returns the title for the daypicker with as arguments the date object and the options object.
113
+ - time_title: (*function*, defaults to a function which returns `(options.pickOnly == 'time') ? Locale.get('DatePicker.select_a_time') : date.format('%d %B, %Y')`) A function that returns the title for the timepicker with as arguments the date object and the options object.
114
+
115
+
116
+
117
+ ### Events:
118
+
119
+ - onSelect: Will fire when the user has selected a date
120
+
121
+ #### signature
122
+
123
+ #JS
124
+ onSelect(date)
125
+
126
+ #### arguments
127
+
128
+ 1. date - A Date object. You could use [Date.format](http://mootools.net/docs/more/Types/Date#Date:format) to format it into a string. For example to set it into a hidden field which will be sent to the server.
129
+
130
+
131
+ ### Examples
132
+
133
+ #JS
134
+ new DatePicker('inputField', {
135
+ timePicker: true,
136
+ pickerClass: 'datepicker_jqui',
137
+ onSelect: function(date){
138
+ myHiddenField.set('value', date.format('%s');
139
+ }
140
+ });
141
+
142
+
143
+ Class: Picker.Attach
144
+ --------------------
145
+
146
+ Picker.Attach handles all the links from elements to the Picker. It handles the onfocus events of input elements etc.
147
+ The Class itself is not very useful on its own, but it is useful to extend this Class.
148
+ This class adds a outerclick as well to close the Picker if you click outside the picker.
149
+
150
+ #### Syntax:
151
+
152
+ #JS
153
+ new Picker.Attach(attachTo, options);
154
+
155
+ #### Options:
156
+
157
+ - toggle: (*element*, *string*, *array*) A collection of elements which will toggle the picker when such a link is clicked.
158
+
159
+
160
+ ### Picker.Attach Method: attach
161
+
162
+ This will attach links and input elements to the picker
163
+
164
+ #### Syntax
165
+
166
+ #JS
167
+ myPicker.attach(attachTo);
168
+
169
+ #### Arguments
170
+
171
+ 1. attachTo: (*element*, *string*, *array*) The elements or element to attach to the Picker. Can be a input element for onfocus events or other elements for click events.
172
+
173
+
174
+ ### Picker.Attach Method: detach
175
+
176
+ This will detach links and input elements from the picker
177
+
178
+ #### Syntax
179
+
180
+ #JS
181
+ myPicker.detach(detach);
182
+
183
+ #### Arguments
184
+
185
+ 1. detach: (*element*, *string*, *array*) The elements or element to detach from the Picker. Can be a input element for onfocus events or other elements for click events.
186
+
187
+
188
+ Class: Picker
189
+ -------------
190
+
191
+ This is a generic Picker Class, which is used for the basic things, like positioning, Fx, open, close, stuff like that.
192
+
193
+ #### Syntax:
194
+
195
+ #JS
196
+ new Picker(options);
197
+
198
+ #### Options:
199
+
200
+ - pickerClass: (*string*, defaults to `datepicker`) CSS class for the main datepicker container element. You can use multiple classes by separating them by a space, e.g. `class1 class2 class3`
201
+ - inject: (*element*, defaults to `document.body`) This is where the Picker element will be injected to.
202
+ - anitmationDuration: (*number*, defaults to `400`) Duration of the slide/fade animations in milliseconds.
203
+ - useFadeInOut: (*boolean*, defaults to `true`) Whether to fade-in/out the datepicker popup. You might want to set this to `false` in IE.
204
+ - positionOffset: (*object*, defaults to `{x: 0, y: 0}`) Allows you to tweak the position at which the datepicker appears, relative to the input element. Formatted as an object with x and y properties. Values can be negative.
205
+ - pickerPosition: (*string*, defaults to `bottom`) If the picker is positioned relative to an element, you can choose to position it top, bottom, left or right.
206
+ - draggable: (*boolean*, defaults to `true`) Will make the picker draggable, if Drag from MooTools More is included.
207
+
208
+ #### Events:
209
+
210
+ - open - triggered when the Picker will open (before the fx)
211
+ - close - triggered after the Picker is will get closed (before the fx)
212
+ - show - triggered when the Picker is shown
213
+ - hide - triggered when the Picker is hidden
214
+
215
+
216
+
217
+ ### Picker Method: show
218
+
219
+ A method to show the Picker manually, with a Fx.
220
+
221
+ #### Syntax
222
+
223
+ #JS
224
+ dp.show()
225
+
226
+ ### Picker Method: close
227
+
228
+ Closes the Picker with a Fx.
229
+
230
+ #### Syntax
231
+
232
+ #JS
233
+ dp.close();
234
+
235
+
236
+ ### Picker Method: toggle
237
+
238
+ Toggles the Picker with a Fx.
239
+
240
+ #### Syntax
241
+
242
+ #JS
243
+ picker.toggle();
244
+
245
+ ### Picker Method: show
246
+
247
+ Opens the Picker directly.
248
+
249
+ #### Syntax
250
+
251
+ #JS
252
+ dp.show();
253
+
254
+
255
+ ### Picker Method: hide
256
+
257
+ Hides the Picker directly.
258
+
259
+ #### Syntax
260
+
261
+ #JS
262
+ dp.hide();
263
+
264
+
265
+ ### Picker Method: destroy
266
+
267
+ Destroys the Picker
268
+
269
+ #JS
270
+ picker.destroy();
271
+
272
+
273
+ ### Picker Method: position
274
+
275
+ Positions the Picker.
276
+
277
+ #### Syntax:
278
+
279
+ #JS
280
+ picker.position(x, y);
281
+ // or
282
+ picker.position(myElement, where);
283
+
284
+ #### Arguments
285
+
286
+ 1. x: (*number*) Number of pixels from the left
287
+ 2. y: (*number*) Number of pixels from the top
288
+
289
+ Or
290
+
291
+ 1. myElement - (*element*) A element the Picker should be positioned relative to.
292
+ 2. where - (*string*, optional) Position the Picker `left` or `right` to the element.
293
+
294
+
295
+ ### Picker Method: setContent
296
+
297
+ Set the content of the Picker, either elements or text.
298
+
299
+ #### Syntax:
300
+
301
+ #JS
302
+ picker.setContent(element, fx);
303
+
304
+ #### Arguments:
305
+
306
+ 1. element: (*element*, *string*) Set the content of the Picker with this value
307
+ 2. fx: (*string*, optional) Set the content of the picker, and apply it with this Fx. Options: 'fade', 'right', 'left'
308
+
309
+
310
+ ### Picker Method: setTitle
311
+
312
+ Sets the Picker title text.
313
+
314
+ #JS
315
+ picker.setTitle(text);
316
+
317
+ #### Arguments:
318
+
319
+ 1. text: (*string*) The text which will be set into the title.
320
+
321
+
322
+ License
323
+ -------
324
+
325
+ - [MIT License](http://www.opensource.org/licenses/mit-license.php)