crystal-ext 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (327) hide show
  1. data/.gitignore +4 -0
  2. data/Rakefile +66 -0
  3. data/lib/abstract_interface/controller_helper.rb +30 -0
  4. data/lib/abstract_interface/form_builders/abstract_form_builder.rb +79 -0
  5. data/lib/abstract_interface/form_builders/themed_form_builder.rb +46 -0
  6. data/lib/abstract_interface/form_builders/themed_form_tag_builder.rb +13 -0
  7. data/lib/abstract_interface/haml_builder.rb +56 -0
  8. data/lib/abstract_interface/model_stub.rb +20 -0
  9. data/lib/abstract_interface/support.rb +56 -0
  10. data/lib/abstract_interface/theme.rb +37 -0
  11. data/lib/abstract_interface/view_builder.rb +158 -0
  12. data/lib/abstract_interface/view_helper.rb +31 -0
  13. data/lib/abstract_interface.rb +78 -0
  14. data/lib/common_interface/MIT-LICENSE +20 -0
  15. data/lib/common_interface/README.md +51 -0
  16. data/lib/common_interface/app/controllers/theme_controller.rb +65 -0
  17. data/lib/common_interface/app/controllers/theme_site_controller.rb +2 -0
  18. data/lib/common_interface/app/views/layouts/theme.html.erb +1 -0
  19. data/lib/common_interface/app/views/layouts/theme.js.erb +11 -0
  20. data/lib/common_interface/app/views/theme/_dialog.html.haml +7 -0
  21. data/lib/common_interface/app/views/theme/_popup.html.haml +4 -0
  22. data/lib/common_interface/app/views/theme/aspects.html.haml +32 -0
  23. data/lib/common_interface/app/views/theme/basic.html.haml +123 -0
  24. data/lib/common_interface/app/views/theme/dialog.js.erb +1 -0
  25. data/lib/common_interface/app/views/theme/folder.html.haml +45 -0
  26. data/lib/common_interface/app/views/theme/help.html.haml +7 -0
  27. data/lib/common_interface/app/views/theme/index.html.haml +24 -0
  28. data/lib/common_interface/app/views/theme/items.html.haml +91 -0
  29. data/lib/common_interface/app/views/theme/list.html.haml +23 -0
  30. data/lib/common_interface/app/views/theme/page/_folder.html.haml +10 -0
  31. data/lib/common_interface/app/views/theme/page/_note.html.haml +4 -0
  32. data/lib/common_interface/app/views/theme/page/_toolbar.html.haml +5 -0
  33. data/lib/common_interface/app/views/theme/page.html.haml +19 -0
  34. data/lib/common_interface/app/views/theme/popup.js.erb +1 -0
  35. data/lib/common_interface/app/views/theme/selector.html.haml +38 -0
  36. data/lib/common_interface/app/views/theme/style.html.erb +113 -0
  37. data/lib/common_interface/app/views/theme/tmp.html.erb +31 -0
  38. data/lib/common_interface/app/views/theme/user.html.haml +16 -0
  39. data/lib/common_interface/app/views/theme_shared/_comments.html.haml +11 -0
  40. data/lib/common_interface/app/views/theme_shared/_core_tools.html.haml +6 -0
  41. data/lib/common_interface/app/views/theme_shared/_line_previews.html.haml +39 -0
  42. data/lib/common_interface/app/views/theme_shared/_paginator.html.haml +7 -0
  43. data/lib/common_interface/app/views/theme_shared/_tools.html.haml +27 -0
  44. data/lib/common_interface/app/views/theme_shared/_top_navigation_bottom.html.haml +32 -0
  45. data/lib/common_interface/app/views/theme_site/blog.html.haml +13 -0
  46. data/lib/common_interface/app/views/theme_site/home.html.haml +9 -0
  47. data/lib/common_interface/app/views/theme_site/post.html.haml +11 -0
  48. data/lib/common_interface/app/views/theme_site/style.html.haml +9 -0
  49. data/lib/common_interface/app/views/themes/default/_application_t.html.haml +29 -0
  50. data/lib/common_interface/app/views/themes/default/_help_t.html.haml +1 -0
  51. data/lib/common_interface/app/views/themes/default/aspects/_comment_t.html.haml +14 -0
  52. data/lib/common_interface/app/views/themes/default/aspects/_controls_t.html.haml +3 -0
  53. data/lib/common_interface/app/views/themes/default/aspects/_details_t.html.haml +6 -0
  54. data/lib/common_interface/app/views/themes/default/aspects/_discussion_t.html.haml +9 -0
  55. data/lib/common_interface/app/views/themes/default/aspects/_paginator_t.html.haml +8 -0
  56. data/lib/common_interface/app/views/themes/default/aspects/_tag_selector_t.html.haml +11 -0
  57. data/lib/common_interface/app/views/themes/default/basic/_bottom_panel_t.html.haml +9 -0
  58. data/lib/common_interface/app/views/themes/default/basic/_dialog_t.html.haml +1 -0
  59. data/lib/common_interface/app/views/themes/default/basic/_divider_t.html.haml +2 -0
  60. data/lib/common_interface/app/views/themes/default/basic/_html_t.html.haml +1 -0
  61. data/lib/common_interface/app/views/themes/default/basic/_inplace_t.html.haml +1 -0
  62. data/lib/common_interface/app/views/themes/default/basic/_message_t.html.haml +3 -0
  63. data/lib/common_interface/app/views/themes/default/basic/_more_t.html.haml +5 -0
  64. data/lib/common_interface/app/views/themes/default/basic/_narrow_t.html.haml +1 -0
  65. data/lib/common_interface/app/views/themes/default/basic/_navigation_t.html.haml +9 -0
  66. data/lib/common_interface/app/views/themes/default/basic/_popup_t.html.haml +1 -0
  67. data/lib/common_interface/app/views/themes/default/basic/_text_t.html.haml +1 -0
  68. data/lib/common_interface/app/views/themes/default/basic/_title_t.html.haml +3 -0
  69. data/lib/common_interface/app/views/themes/default/basic/_tool_t.html.haml +4 -0
  70. data/lib/common_interface/app/views/themes/default/basic/_top_panel_t.html.haml +18 -0
  71. data/lib/common_interface/app/views/themes/default/components/_basic_list_item_t.html.haml +4 -0
  72. data/lib/common_interface/app/views/themes/default/components/_basic_list_t.html.haml +1 -0
  73. data/lib/common_interface/app/views/themes/default/components/_table_row_t.html.haml +5 -0
  74. data/lib/common_interface/app/views/themes/default/components/_table_t.html.haml +12 -0
  75. data/lib/common_interface/app/views/themes/default/components/_tabs_item_t.html.haml +4 -0
  76. data/lib/common_interface/app/views/themes/default/components/_tabs_t.html.haml +4 -0
  77. data/lib/common_interface/app/views/themes/default/components/_toolbar_t.html.haml +14 -0
  78. data/lib/common_interface/app/views/themes/default/forms/_begin_t.html.erb +3 -0
  79. data/lib/common_interface/app/views/themes/default/forms/_end_t.html.erb +3 -0
  80. data/lib/common_interface/app/views/themes/default/forms/_errors_t.html.haml +5 -0
  81. data/lib/common_interface/app/views/themes/default/forms/_field_t.html.haml +19 -0
  82. data/lib/common_interface/app/views/themes/default/forms/_line_t.html.haml +6 -0
  83. data/lib/common_interface/app/views/themes/default/items/_file_t.html.haml +19 -0
  84. data/lib/common_interface/app/views/themes/default/items/_folder_t.html.haml +23 -0
  85. data/lib/common_interface/app/views/themes/default/items/_line_t.html.haml +34 -0
  86. data/lib/common_interface/app/views/themes/default/items/_list_item_t.html.haml +16 -0
  87. data/lib/common_interface/app/views/themes/default/items/_list_t.html.haml +35 -0
  88. data/lib/common_interface/app/views/themes/default/items/_note_t.html.haml +16 -0
  89. data/lib/common_interface/app/views/themes/default/items/_page_t.html.haml +29 -0
  90. data/lib/common_interface/app/views/themes/default/items/_selector_t.html.haml +18 -0
  91. data/lib/common_interface/app/views/themes/default/items/_thumb_t.html.haml +12 -0
  92. data/lib/common_interface/app/views/themes/default/items/_user_t.html.haml +12 -0
  93. data/lib/common_interface/app/views/themes/default/layout_templates/_dashboard_t.html.haml +1 -0
  94. data/lib/common_interface/app/views/themes/default/layout_templates/_default_t.html.haml +11 -0
  95. data/lib/common_interface/app/views/themes/default/metadata.rb +117 -0
  96. data/lib/common_interface/app/views/themes/simple_organization/_application_js_t.html.erb +12 -0
  97. data/lib/common_interface/app/views/themes/simple_organization/_application_t.html.erb +45 -0
  98. data/lib/common_interface/app/views/themes/simple_organization/_help_t.html.erb +1 -0
  99. data/lib/common_interface/app/views/themes/simple_organization/aspects/_comment_t.html.haml +21 -0
  100. data/lib/common_interface/app/views/themes/simple_organization/aspects/_discussion_t.html.haml +14 -0
  101. data/lib/common_interface/app/views/themes/simple_organization/aspects/_paginator_t.html.haml +5 -0
  102. data/lib/common_interface/app/views/themes/simple_organization/aspects/_tag_selector_t.html.haml +10 -0
  103. data/lib/common_interface/app/views/themes/simple_organization/basic/_bottom_panel_t.html.erb +12 -0
  104. data/lib/common_interface/app/views/themes/simple_organization/basic/_divider_t.html.erb +3 -0
  105. data/lib/common_interface/app/views/themes/simple_organization/basic/_message_t.html.erb +7 -0
  106. data/lib/common_interface/app/views/themes/simple_organization/basic/_more_t.html.haml +5 -0
  107. data/lib/common_interface/app/views/themes/simple_organization/basic/_navigation_t.html.erb +15 -0
  108. data/lib/common_interface/app/views/themes/simple_organization/basic/_text_t.html.haml +1 -0
  109. data/lib/common_interface/app/views/themes/simple_organization/basic/_tool_t.html.erb +9 -0
  110. data/lib/common_interface/app/views/themes/simple_organization/basic/_top_panel_t.html.erb +14 -0
  111. data/lib/common_interface/app/views/themes/simple_organization/items/_line_t.html.haml +17 -0
  112. data/lib/common_interface/app/views/themes/simple_organization/items/_note_t.html.haml +16 -0
  113. data/lib/common_interface/app/views/themes/simple_organization/items/_selector_t.html.haml +11 -0
  114. data/lib/common_interface/app/views/themes/simple_organization/layout_templates/_default_t.html.erb +20 -0
  115. data/lib/common_interface/app/views/themes/simple_organization/layout_templates/_home_t.html.erb +14 -0
  116. data/lib/common_interface/app/views/themes/simple_organization/metadata.rb +193 -0
  117. data/lib/common_interface/asset_packages.yml +89 -0
  118. data/lib/common_interface/init.rb +21 -0
  119. data/lib/common_interface/lib/common_interface_helper.rb +49 -0
  120. data/lib/common_interface/public/common_interface/images/img1.jpg +0 -0
  121. data/lib/common_interface/public/common_interface/images/img1_200.jpg +0 -0
  122. data/lib/common_interface/public/common_interface/images/img1_icon.jpg +0 -0
  123. data/lib/common_interface/public/common_interface/images/img1_thumb.jpg +0 -0
  124. data/lib/common_interface/public/common_interface/images/img2.jpg +0 -0
  125. data/lib/common_interface/public/common_interface/images/img2_200.jpg +0 -0
  126. data/lib/common_interface/public/common_interface/images/img2_icon.jpg +0 -0
  127. data/lib/common_interface/public/common_interface/images/img2_thumb.jpg +0 -0
  128. data/lib/common_interface/public/common_interface/images/img3.jpg +0 -0
  129. data/lib/common_interface/public/common_interface/images/img3_200.jpg +0 -0
  130. data/lib/common_interface/public/common_interface/images/img3_icon.jpg +0 -0
  131. data/lib/common_interface/public/common_interface/images/img3_thumb.jpg +0 -0
  132. data/lib/common_interface/public/common_interface/images/video_icon.png +0 -0
  133. data/lib/common_interface/public/common_interface/js/aspects.js +0 -0
  134. data/lib/common_interface/public/common_interface/js/basic.js +229 -0
  135. data/lib/common_interface/public/common_interface/js/files_upload.js +115 -0
  136. data/lib/common_interface/public/common_interface/js/items.js +118 -0
  137. data/lib/common_interface/public/common_interface/js/style.js +50 -0
  138. data/lib/common_interface/public/common_interface/lib/jquery.elastic.js +117 -0
  139. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/blank.gif +0 -0
  140. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/fancy_close.png +0 -0
  141. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/fancy_loading.png +0 -0
  142. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/fancy_nav_left.png +0 -0
  143. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/fancy_nav_right.png +0 -0
  144. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/fancy_shadow_e.png +0 -0
  145. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/fancy_shadow_n.png +0 -0
  146. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/fancy_shadow_ne.png +0 -0
  147. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/fancy_shadow_nw.png +0 -0
  148. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/fancy_shadow_s.png +0 -0
  149. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/fancy_shadow_se.png +0 -0
  150. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/fancy_shadow_sw.png +0 -0
  151. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/fancy_shadow_w.png +0 -0
  152. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/fancy_title_left.png +0 -0
  153. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/fancy_title_main.png +0 -0
  154. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/fancy_title_over.png +0 -0
  155. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/fancy_title_right.png +0 -0
  156. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/fancybox-x.png +0 -0
  157. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/fancybox-y.png +0 -0
  158. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/fancybox.png +0 -0
  159. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/jquery.easing-1.3.pack.js +72 -0
  160. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/jquery.fancybox-1.3.1.js +1077 -0
  161. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/jquery.fancybox.css +363 -0
  162. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/jquery.fancybox.js +44 -0
  163. data/lib/common_interface/public/common_interface/lib/jquery.fancybox/jquery.mousewheel-3.0.2.pack.js +13 -0
  164. data/lib/common_interface/public/common_interface/lib/jquery.form.js +660 -0
  165. data/lib/common_interface/public/common_interface/lib/jquery.hoverIntent.js +111 -0
  166. data/lib/common_interface/public/common_interface/lib/jquery.jgrowl/jquery.jgrowl.css +128 -0
  167. data/lib/common_interface/public/common_interface/lib/jquery.jgrowl/jquery.jgrowl.js +307 -0
  168. data/lib/common_interface/public/common_interface/lib/jquery.js +4376 -0
  169. data/lib/common_interface/public/common_interface/lib/jquery.json.js +178 -0
  170. data/lib/common_interface/public/common_interface/lib/jquery.swfupload/cancel.png +0 -0
  171. data/lib/common_interface/public/common_interface/lib/jquery.swfupload/jquery.swfupload.js +64 -0
  172. data/lib/common_interface/public/common_interface/lib/jquery.swfupload/style.css +8 -0
  173. data/lib/common_interface/public/common_interface/lib/jquery.swfupload/swfupload/swfupload.js +980 -0
  174. data/lib/common_interface/public/common_interface/lib/jquery.swfupload/swfupload/swfupload.queue.js +98 -0
  175. data/lib/common_interface/public/common_interface/lib/jquery.swfupload/swfupload/swfupload.swf +0 -0
  176. data/lib/common_interface/public/common_interface/lib/jquery.swfupload/swfupload/wdp_buttons_upload_61x22.png +0 -0
  177. data/lib/common_interface/public/common_interface/lib/jquery.template.js +255 -0
  178. data/lib/common_interface/public/common_interface/lib/jquery.ui/images/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
  179. data/lib/common_interface/public/common_interface/lib/jquery.ui/images/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
  180. data/lib/common_interface/public/common_interface/lib/jquery.ui/images/ui-bg_flat_10_000000_40x100.png +0 -0
  181. data/lib/common_interface/public/common_interface/lib/jquery.ui/images/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
  182. data/lib/common_interface/public/common_interface/lib/jquery.ui/images/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
  183. data/lib/common_interface/public/common_interface/lib/jquery.ui/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  184. data/lib/common_interface/public/common_interface/lib/jquery.ui/images/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
  185. data/lib/common_interface/public/common_interface/lib/jquery.ui/images/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
  186. data/lib/common_interface/public/common_interface/lib/jquery.ui/images/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
  187. data/lib/common_interface/public/common_interface/lib/jquery.ui/images/ui-icons_222222_256x240.png +0 -0
  188. data/lib/common_interface/public/common_interface/lib/jquery.ui/images/ui-icons_228ef1_256x240.png +0 -0
  189. data/lib/common_interface/public/common_interface/lib/jquery.ui/images/ui-icons_ef8c08_256x240.png +0 -0
  190. data/lib/common_interface/public/common_interface/lib/jquery.ui/images/ui-icons_ffd27a_256x240.png +0 -0
  191. data/lib/common_interface/public/common_interface/lib/jquery.ui/images/ui-icons_ffffff_256x240.png +0 -0
  192. data/lib/common_interface/public/common_interface/lib/jquery.ui/jquery.ui.css +406 -0
  193. data/lib/common_interface/public/common_interface/lib/jquery.ui/jquery.ui.js +71 -0
  194. data/lib/common_interface/public/common_interface/themes/default/_aspects.scss +58 -0
  195. data/lib/common_interface/public/common_interface/themes/default/_basic.scss +228 -0
  196. data/lib/common_interface/public/common_interface/themes/default/_components.scss +151 -0
  197. data/lib/common_interface/public/common_interface/themes/default/_custom_reset.scss +12 -0
  198. data/lib/common_interface/public/common_interface/themes/default/_elastic.scss +72 -0
  199. data/lib/common_interface/public/common_interface/themes/default/_items.scss +88 -0
  200. data/lib/common_interface/public/common_interface/themes/default/_mixins.scss +39 -0
  201. data/lib/common_interface/public/common_interface/themes/default/_special.scss +34 -0
  202. data/lib/common_interface/public/common_interface/themes/default/_variables.scss +15 -0
  203. data/lib/common_interface/public/common_interface/themes/default/_yui_reset.scss +127 -0
  204. data/lib/common_interface/public/common_interface/themes/default/elastic.js +307 -0
  205. data/lib/common_interface/public/common_interface/themes/default/elastic.print.css +8 -0
  206. data/lib/common_interface/public/common_interface/themes/default/reset.css +157 -0
  207. data/lib/common_interface/public/common_interface/themes/default/reset.scss +5 -0
  208. data/lib/common_interface/public/common_interface/themes/default/style.css +580 -0
  209. data/lib/common_interface/public/common_interface/themes/default/style.js +84 -0
  210. data/lib/common_interface/public/common_interface/themes/default/style.scss +11 -0
  211. data/lib/common_interface/public/common_interface/themes/simple_organization/_fixes.scss +130 -0
  212. data/lib/common_interface/public/common_interface/themes/simple_organization/_original.scss +852 -0
  213. data/lib/common_interface/public/common_interface/themes/simple_organization/img/comment-arrow.gif +0 -0
  214. data/lib/common_interface/public/common_interface/themes/simple_organization/img/comment-gravatar.gif +0 -0
  215. data/lib/common_interface/public/common_interface/themes/simple_organization/img/comment-reply.gif +0 -0
  216. data/lib/common_interface/public/common_interface/themes/simple_organization/img/logo-small.gif +0 -0
  217. data/lib/common_interface/public/common_interface/themes/simple_organization/img/logo.gif +0 -0
  218. data/lib/common_interface/public/common_interface/themes/simple_organization/img/main-two-columns-left.gif +0 -0
  219. data/lib/common_interface/public/common_interface/themes/simple_organization/img/main-two-columns.gif +0 -0
  220. data/lib/common_interface/public/common_interface/themes/simple_organization/img/sample-event.jpg +0 -0
  221. data/lib/common_interface/public/common_interface/themes/simple_organization/img/sample-gravatar.gif +0 -0
  222. data/lib/common_interface/public/common_interface/themes/simple_organization/img/sample-image.jpg +0 -0
  223. data/lib/common_interface/public/common_interface/themes/simple_organization/img/sample-thumbnail.jpg +0 -0
  224. data/lib/common_interface/public/common_interface/themes/simple_organization/original/archives.html +389 -0
  225. data/lib/common_interface/public/common_interface/themes/simple_organization/original/comments.html +486 -0
  226. data/lib/common_interface/public/common_interface/themes/simple_organization/original/empty-page.html +107 -0
  227. data/lib/common_interface/public/common_interface/themes/simple_organization/original/img/comment-arrow.gif +0 -0
  228. data/lib/common_interface/public/common_interface/themes/simple_organization/original/img/comment-gravatar.gif +0 -0
  229. data/lib/common_interface/public/common_interface/themes/simple_organization/original/img/comment-reply.gif +0 -0
  230. data/lib/common_interface/public/common_interface/themes/simple_organization/original/img/logo-small.gif +0 -0
  231. data/lib/common_interface/public/common_interface/themes/simple_organization/original/img/logo.gif +0 -0
  232. data/lib/common_interface/public/common_interface/themes/simple_organization/original/img/main-two-columns-left.gif +0 -0
  233. data/lib/common_interface/public/common_interface/themes/simple_organization/original/img/main-two-columns.gif +0 -0
  234. data/lib/common_interface/public/common_interface/themes/simple_organization/original/img/sample-event.jpg +0 -0
  235. data/lib/common_interface/public/common_interface/themes/simple_organization/original/img/sample-gravatar.gif +0 -0
  236. data/lib/common_interface/public/common_interface/themes/simple_organization/original/img/sample-image.jpg +0 -0
  237. data/lib/common_interface/public/common_interface/themes/simple_organization/original/img/sample-thumbnail.jpg +0 -0
  238. data/lib/common_interface/public/common_interface/themes/simple_organization/original/index.html +307 -0
  239. data/lib/common_interface/public/common_interface/themes/simple_organization/original/left-sidebar.html +307 -0
  240. data/lib/common_interface/public/common_interface/themes/simple_organization/original/no-subnavigation.html +290 -0
  241. data/lib/common_interface/public/common_interface/themes/simple_organization/original/single-column.html +209 -0
  242. data/lib/common_interface/public/common_interface/themes/simple_organization/original/style-demo.html +355 -0
  243. data/lib/common_interface/public/common_interface/themes/simple_organization/original/style.css +658 -0
  244. data/lib/common_interface/public/common_interface/themes/simple_organization/style.css +965 -0
  245. data/lib/common_interface/public/common_interface/themes/simple_organization/style.scss +2 -0
  246. data/lib/common_interface/public/common_interface/themes/simple_organization/tmp/comments.html +486 -0
  247. data/lib/common_interface/public/common_interface/themes/simple_organization/tmp/tmp.html +307 -0
  248. data/lib/common_interface/spec/controllers/theme_controller_spec.rb +50 -0
  249. data/lib/common_interface/spec/spec.opts +4 -0
  250. data/lib/common_interface/spec/spec_helper.rb +1 -0
  251. data/lib/common_interface/tmp/html.html +39 -0
  252. data/lib/common_interface/tmp/js.js +78 -0
  253. data/lib/mongo_mapper_ext/db_config.rb +76 -0
  254. data/lib/mongo_mapper_ext/hacks/fixes.rb +32 -0
  255. data/lib/mongo_mapper_ext/hacks/time_measuring.rb +44 -0
  256. data/lib/mongo_mapper_ext/micelaneous.rb +9 -0
  257. data/lib/mongo_mapper_ext/migrate.rake +33 -0
  258. data/lib/mongo_mapper_ext/migration.rb +108 -0
  259. data/lib/mongo_mapper_ext/mongo_mapper.rb +25 -0
  260. data/lib/mongo_mapper_ext/plugins/attributes_cache.rb +22 -0
  261. data/lib/mongo_mapper_ext/plugins/default_scope.rb +76 -0
  262. data/lib/mongo_mapper_ext/plugins/micelaneous.rb +81 -0
  263. data/lib/mongo_mapper_ext/spec_helper.rb +10 -0
  264. data/lib/mongo_mapper_ext/view_helpers.rb +10 -0
  265. data/lib/mongo_mapper_ext.rb +29 -0
  266. data/lib/rails_ext/README.markdown +13 -0
  267. data/lib/rails_ext/action_controller/global_path_prefix.rb +56 -0
  268. data/lib/rails_ext/action_controller/micelaneous.rb +118 -0
  269. data/lib/rails_ext/action_controller/persistent_params.rb +96 -0
  270. data/lib/rails_ext/action_controller/redirect_helper.rb +14 -0
  271. data/lib/rails_ext/action_controller/reload_page.rb +7 -0
  272. data/lib/rails_ext/action_controller.rb +19 -0
  273. data/lib/rails_ext/action_view/common_helper.rb +96 -0
  274. data/lib/rails_ext/action_view/ruby_template.rb +13 -0
  275. data/lib/rails_ext/action_view.rb +5 -0
  276. data/lib/rails_ext/active_record/merge_default_scope/hash_poser.rb +40 -0
  277. data/lib/rails_ext/active_record/merge_default_scope.rb +16 -0
  278. data/lib/rails_ext/active_record/micelaneous.rb +14 -0
  279. data/lib/rails_ext/active_record.rb +7 -0
  280. data/lib/rails_ext/active_support/micelaneous.rb +7 -0
  281. data/lib/rails_ext/active_support.rb +1 -0
  282. data/lib/rails_ext/asset_packager/action_view.rb +47 -0
  283. data/lib/rails_ext/asset_packager/asset_packager.rb +112 -0
  284. data/lib/rails_ext/asset_packager/jsmin.rb +205 -0
  285. data/lib/rails_ext/asset_packager/tasks.rb +27 -0
  286. data/lib/rails_ext/asset_packager.rb +4 -0
  287. data/lib/rails_ext/basic/handy_environment.rb +45 -0
  288. data/lib/rails_ext/basic/user_error.rb +12 -0
  289. data/lib/rails_ext/basic.rb +6 -0
  290. data/lib/rails_ext/hacks/ajax_flash.rb +9 -0
  291. data/lib/rails_ext/hacks/ajax_redirect_to.rb +19 -0
  292. data/lib/rails_ext/hacks/defer_static_javascripts.rb +18 -0
  293. data/lib/rails_ext/hacks/global_path_prefix.rb +33 -0
  294. data/lib/rails_ext/hacks/link_to.rb +105 -0
  295. data/lib/rails_ext/hacks/merge_default_scope.rb +20 -0
  296. data/lib/rails_ext/hacks/persistent_params.rb +16 -0
  297. data/lib/rails_ext/hacks/rjs_layout.rb +2 -0
  298. data/lib/rails_ext/micelaneous/addressable_uri.rb +45 -0
  299. data/lib/rails_ext/micelaneous/config_files.rb +18 -0
  300. data/lib/rails_ext/micelaneous/create_public_symlinks.rb +11 -0
  301. data/lib/rails_ext/micelaneous/defer_static_javascripts.rb +50 -0
  302. data/lib/rails_ext/micelaneous/email_config.rb +8 -0
  303. data/lib/rails_ext/micelaneous/i18n_helper.rb +143 -0
  304. data/lib/rails_ext/micelaneous/rails_require.rb +4 -0
  305. data/lib/rails_ext/micelaneous/safe_hash.rb +104 -0
  306. data/lib/rails_ext/micelaneous.rb +17 -0
  307. data/lib/rails_ext/public/rails_ext/rails_ext.css +2 -0
  308. data/lib/rails_ext/public/rails_ext/rails_ext.js +283 -0
  309. data/lib/rails_ext/spec/mongo_mapper_ext/micelaneous_plugin_spec.rb +56 -0
  310. data/lib/rails_ext/spec/mongo_mapper_ext/micelaneous_spec.rb +51 -0
  311. data/lib/rails_ext/spec/mongo_mapper_ext/mongo_mapper_migration_spec.rb +76 -0
  312. data/lib/rails_ext/spec/mongo_mapper_ext/scope_spec.rb +125 -0
  313. data/lib/rails_ext/spec/rails_ext/haml_builder_spec.rb +136 -0
  314. data/lib/rails_ext/spec/rails_ext/safe_hash_spec.rb +71 -0
  315. data/lib/rails_ext/spec/spec.opts +3 -0
  316. data/lib/sunspot/mongo_mapper/adapters.rb +79 -0
  317. data/lib/sunspot/mongo_mapper/searchable.rb +409 -0
  318. data/lib/sunspot/spec_helper.rb +11 -0
  319. data/readme.md +1 -0
  320. data/spec/mongo_mapper_ext/micelaneous_plugin_spec.rb +56 -0
  321. data/spec/mongo_mapper_ext/micelaneous_spec.rb +51 -0
  322. data/spec/mongo_mapper_ext/mongo_mapper_migration_spec.rb +76 -0
  323. data/spec/mongo_mapper_ext/scope_spec.rb +125 -0
  324. data/spec/rails_ext/haml_builder_spec.rb +136 -0
  325. data/spec/rails_ext/safe_hash_spec.rb +71 -0
  326. data/spec/spec.opts +4 -0
  327. metadata +405 -0
@@ -0,0 +1,193 @@
1
+ base = "/common_interface/themes/simple_organization"
2
+
3
+ m = {
4
+ :logo => %{<a href="/"><img src="#{base}/img/logo.gif" alt=""></a>}
5
+ }
6
+
7
+ m[:homepage_html] = <<HTML\
8
+ <div class="col3 left">
9
+
10
+ <h2 class="decoration decoration-green">Mission Statement</h2>
11
+
12
+ <p class="quiet large">What we want to achieve</p>
13
+
14
+ <p>Vestibulum eu pellentesque ante. Sed tincidunt quam eu nisl luctus id mattis tellus rhoncus.</p>
15
+ <p>Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae. Donec dapibus eros vitae nibh venenatis faucibus.</p>
16
+ <p><a class="more" href="#">Learn more »</a></p>
17
+
18
+ </div>
19
+
20
+ <div class="col3-mid left">
21
+
22
+ <h2 class="decoration decoration-orange">Next Event</h2>
23
+
24
+ <p class="quiet large">Friday, August 18, 2009</p>
25
+
26
+ <p><img height="80" width="240" class="bordered" alt="" src="#{base}/img/sample-event.jpg"></p>
27
+ <p><em>Aliquam augue neque, rhoncus et dictum in, cursus eget mauris.</em></p>
28
+
29
+ </div>
30
+
31
+ <div class="col3 right">
32
+
33
+ <h2 class="decoration decoration-blue">Follow Us</h2>
34
+
35
+ <p class="quiet large">http://twitter.com/username</p>
36
+
37
+ <p>Nulla mollis sollicitudin nulla et mattis.<span class="quiet">(2 hours ago)</span></p>
38
+ <p>Torquent per conubia nostra, per inceptos himenaeos. <span class="quiet">(2 hours ago)</span></p>
39
+ <p>In sed ante at velit hendrerit blandit a et nibh. Cras sed cursus nulla. <span class="quiet">(3 hours ago)</span></p>
40
+ <p>Nullam vitae mi at nulla blandit. <span class="quiet">(5 hours ago)</span></p>
41
+
42
+ </div>
43
+
44
+ <div class="clearer">&nbsp;</div>
45
+
46
+
47
+
48
+ <div class="content-separator"></div>
49
+
50
+ <h2>Images in text</h2>
51
+
52
+ <p>Curabitur faucibus risus quis lectus. <a href="#">Donec vehicula</a>. Pellentesque nec, lectus. Nullam dictum sem. Phasellus varius. Vestibulum in felis in mauris consequat molestie</p>
53
+
54
+ <div class='left'>
55
+ <img height="75" width="75" alt="" src="#{base}/img/sample-thumbnail.jpg">
56
+ </div>
57
+
58
+ <p>Consectetur adipiscing elit. In nisi. Duis condimentum est nec augue blandit scelerisque. Phasellus varius. Vestibulum in felis in mauris consequat molestie. Sem nec pellentesque condimentum, turpis massa ultricies nisi, at molestie justo eros ac velit.</p>
59
+
60
+ <div class='right'>
61
+ <img height="75" width="75" alt="" src="#{base}/img/sample-thumbnail.jpg">
62
+ </div>
63
+
64
+ <p>Curabitur euismod mi ac neque. Cras vel tortor molestie <a href="#">tortor luctus</a> facilisis. Nulla a nunc. Vivamus est. Integer ac sem quis ipsum dignissim sodales. Nam pulvinar sem eu nibh. Suspendisse non nulla et ligula bibendum facilisis. Suspendisse potenti. Vivamus leo.</p>
65
+
66
+ <p>Nulla lacus tortor, ornare vitae, vulputate vitae, sed quis magna. Pellentesque urna urna, bibendum non, ornare in, sollicitudin quis, est.</p>
67
+
68
+ <div class="clearer">&nbsp;</div>
69
+
70
+ HTML
71
+
72
+ m[:style_html] = <<HTML\
73
+ <h1>Heading 1</h1>
74
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
75
+
76
+ <h2>Heading 2</h2>
77
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
78
+
79
+ <h3>Heading 3</h3>
80
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
81
+
82
+ <h4>Heading 4</h4>
83
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
84
+
85
+ <div class="content-separator"></div>
86
+
87
+ <h2>Images in text</h2>
88
+
89
+ <img height="75" width="75" src="#{base}/img/sample-thumbnail.jpg">
90
+
91
+ <p>Curabitur faucibus risus quis lectus. <a href="#">Donec vehicula</a>. Pellentesque nec, lectus. Nullam dictum sem. Phasellus varius. Vestibulum in felis in mauris consequat molestie</p>
92
+
93
+ <div class="content-separator"></div>
94
+
95
+ <div class='left'>
96
+ <img height="75" width="75" alt="" src="#{base}/img/sample-thumbnail.jpg">
97
+ </div>
98
+
99
+ <p>Consectetur adipiscing elit. In nisi. Duis condimentum est nec augue blandit scelerisque. Phasellus varius. Vestibulum in felis in mauris consequat molestie. Sem nec pellentesque condimentum, turpis massa ultricies nisi, at molestie justo eros ac velit.</p>
100
+
101
+ <div class='right'>
102
+ <img height="75" width="75" alt="" src="#{base}/img/sample-thumbnail.jpg">
103
+ </div>
104
+
105
+ <p>Curabitur euismod mi ac neque. Cras vel tortor molestie <a href="#">tortor luctus</a> facilisis. Nulla a nunc. Vivamus est. Integer ac sem quis ipsum dignissim sodales. Nam pulvinar sem eu nibh. Suspendisse non nulla et ligula bibendum facilisis. Suspendisse potenti. Vivamus leo.</p>
106
+
107
+ <p>Nulla lacus tortor, ornare vitae, vulputate vitae, sed quis magna. Pellentesque urna urna, bibendum non, ornare in, sollicitudin quis, est.</p>
108
+
109
+ <div class="clearer">&nbsp;</div>
110
+
111
+ <div class="content-separator"></div>
112
+
113
+ <h2>Blockquote</h2>
114
+
115
+ <blockquote>
116
+ <p>Praesent orci nisi, interdum quis, tristique vitae, consectetur sed, arcu. Ut at sapien non dolor semper sollicitudin. Etiam semper erat quis odio. Quisque commodo suscipit velit. Nulla facilisi.</p>
117
+ <p><cite>- Duis justo quam</cite></p>
118
+ </blockquote>
119
+
120
+ <div class="content-separator"></div>
121
+
122
+ <h2>Lists</h2>
123
+
124
+ <h3>Unsorted list</h3>
125
+ <ul>
126
+ <li>Blandit in, interdum a</li>
127
+ <li>Ultrices non lectus</li>
128
+ <li>Nunc id odio</li>
129
+ <li>Fusce ultricies</li>
130
+ </ul>
131
+
132
+ <h3>Ordered list</h3>
133
+ <ol>
134
+ <li>Blandit in, interdum a</li>
135
+ <li>Ultrices non lectus</li>
136
+ <li>Nunc id odio</li>
137
+ <li>Fusce ultricies</li>
138
+ </ol>
139
+
140
+ <h3>Definition list</h3>
141
+
142
+ <dl>
143
+ <dt>title</dt>
144
+ <dd>definition</dd>
145
+ <dd>definition</dd>
146
+ <dt>title</dt>
147
+ <dt>title</dt>
148
+ <dd>definition</dd>
149
+ <dt>title</dt>
150
+ <dd>definition</dd>
151
+ </dl>
152
+
153
+ <div class="content-separator"></div>
154
+
155
+ <h2>Tables</h2>
156
+
157
+ <h3>Data table</h3>
158
+
159
+ <table class="data-table">
160
+ <tbody><tr>
161
+ <th>Property 1</th>
162
+ <th>Property 2</th>
163
+ <th>Property 3</th>
164
+ <th>Property 4</th>
165
+ </tr>
166
+ <tr class="even">
167
+ <td>Value 1.1</td>
168
+ <td>Value 1.2</td>
169
+ <td>Value 1.3</td>
170
+ <td>Value 1.4</td>
171
+ </tr>
172
+ <tr>
173
+ <td>Value 2.1</td>
174
+ <td>Value 2.2</td>
175
+ <td>Value 2.3</td>
176
+ <td>Value 2.4</td>
177
+ </tr>
178
+ <tr class="even">
179
+ <td>Value 3.1</td>
180
+ <td>Value 3.2</td>
181
+ <td>Value 3.3</td>
182
+ <td>Value 3.4</td>
183
+ </tr>
184
+ <tr>
185
+ <td>Value 4.1</td>
186
+ <td>Value 4.2</td>
187
+ <td>Value 4.3</td>
188
+ <td>Value 4.4</td>
189
+ </tr>
190
+ </tbody></table>
191
+ HTML
192
+
193
+ m
@@ -0,0 +1,89 @@
1
+ ---
2
+ javascripts:
3
+ common_interface_base:
4
+ # Core
5
+ - common_interface/lib/jquery.js
6
+ - common_interface/lib/jquery.json.js
7
+ - common_interface/lib/jquery.hoverIntent.js
8
+ - common_interface/lib/jquery.template.js
9
+ - common_interface/lib/jquery.jgrowl/jquery.jgrowl.js
10
+ - common_interface/lib/jquery.form.js
11
+
12
+ - /rails_ext/rails_ext.js
13
+
14
+ - common_interface/js/basic.js
15
+ - common_interface/js/items.js
16
+ - common_interface/js/aspects.js
17
+ - common_interface/js/style.js
18
+
19
+ #
20
+ # Files Upload, TODO3 (load it dynamically)
21
+ # using $.getScript("/some_script.js");
22
+ # - files_upload:
23
+ - common_interface/lib/jquery.swfupload/swfupload/swfupload.js
24
+ - common_interface/lib/jquery.swfupload/swfupload/swfupload.queue.js
25
+ - common_interface/lib/jquery.swfupload/jquery.swfupload.js
26
+ - common_interface/js/files_upload.js
27
+
28
+ # Images, Slides
29
+ - common_interface/lib/jquery.fancybox/jquery.fancybox.js
30
+
31
+ # Interactions
32
+ - common_interface/lib/jquery.ui/jquery.ui.js
33
+
34
+ # Elastic TextArea
35
+ - common_interface/lib/jquery.elastic.js
36
+
37
+ # Default theme
38
+ - common_interface/themes/default/elastic.js
39
+ - common_interface/themes/default/style.js
40
+
41
+
42
+ stylesheets:
43
+ common_interface_base:
44
+ # CSS Reset
45
+ - common_interface/themes/default/reset.css
46
+
47
+ # Default theme
48
+ - common_interface/themes/default/style.css
49
+
50
+ # Core
51
+ - common_interface/lib/jquery.jgrowl/jquery.jgrowl.css
52
+
53
+ - /rails_ext/rails_ext.css
54
+
55
+ #
56
+ # Files Upload, TODO3 (load it dynamically)
57
+ # - files_upload:
58
+ - common_interface/lib/jquery.swfupload/style.css
59
+
60
+ # Images, Slides
61
+ - common_interface/lib/jquery.fancybox/jquery.fancybox.css
62
+
63
+ # Interactions
64
+ - common_interface/lib/jquery.ui/jquery.ui.css
65
+
66
+
67
+ #
68
+ # Mixin, for usage in incomplete themes, to support default theme partials.
69
+ # The same as common_interface_base but without global 'reset.css'
70
+ #
71
+ common_interface_base_mixin:
72
+ # Default theme
73
+ - common_interface/themes/default/style.css
74
+
75
+ # Core
76
+ - common_interface/lib/jquery.jgrowl/jquery.jgrowl.css
77
+
78
+ - /rails_ext/rails_ext.css
79
+
80
+ #
81
+ # Files Upload, TODO3 (load it dynamically)
82
+ # - files_upload:
83
+ - common_interface/lib/jquery.swfupload/style.css
84
+
85
+ # Images, Slides
86
+ - common_interface/lib/jquery.fancybox/jquery.fancybox.css
87
+
88
+ # Interactions
89
+ - common_interface/lib/jquery.ui/jquery.ui.css
@@ -0,0 +1,21 @@
1
+ require 'abstract_interface'
2
+
3
+ AbstractInterface.available_themes.push *%w{default simple_organization}
4
+ # AVAILABLE_LAYOUT_TEMPLATES = %w{default home dashboard}
5
+
6
+ # ['basic/dialog', 'basic/popup'].each{|t| AbstractInterface.dont_wrap_into_placeholder.add t}
7
+
8
+ AbstractInterface.plugin_name = 'common_interface'
9
+
10
+ AbstractInterface.generate_helper_methods \
11
+ :aspects => %w{discussion comment controls details paginator tag_selector},
12
+ :basic => %w{bottom_panel dialog divider inplace message more narrow navigation navigation_item popup text title top_panel tool},
13
+ :components => %w{basic_list basic_list_item table table_row tabs tabs_item toolbar},
14
+ :items => %w{folder list list_item note page user thumb line file selector}
15
+
16
+ ActionController::Base.class_eval do
17
+ helper CommonInterfaceHelper
18
+ end
19
+
20
+ dir = File.dirname __FILE__
21
+ AssetPackager.add "#{dir}/asset_packages.yml", "#{dir}/public"
@@ -0,0 +1,49 @@
1
+ module CommonInterfaceHelper
2
+ #
3
+ # Form Buttons
4
+ #
5
+ def ok_button text = t(:ok)
6
+ submit_tag text, :class => '_submit_form_or_ajax_form'
7
+ end
8
+
9
+ def cancel_button text = t(:cancel)
10
+ link_to text, :back, :class => '_redirect_back_or_close_dialog'
11
+ end
12
+
13
+ #
14
+ # Custom
15
+ #
16
+ def tag_cloud tags, classes, &block
17
+ return if tags.empty?
18
+
19
+ max_count = tags.sort{|a, b| a.count <=> b.count}.last.count.to_f
20
+
21
+ tags.sort{|a, b| a.name <=> b.name}.each do |tag|
22
+ index = ((tag.count / max_count) * (classes.size - 1)).round
23
+ block.call tag, classes[index]
24
+ end
25
+ end
26
+
27
+
28
+ #
29
+ # Folder
30
+ #
31
+ # params = {
32
+ # :l => I18n.locale,
33
+ # }
34
+ #
35
+ # opt = {
36
+ # :upload_url => item_files_path(folder),
37
+ # :view => 'folder_thumb',
38
+ # :select_files => t(:select_files),
39
+ # }
40
+ def build_files_uploader_for params, opt
41
+ session_key = ActionController::Base.session_options[:key]
42
+
43
+ params = {
44
+ session_key => cookies[session_key]
45
+ }.merge(params)
46
+
47
+ "new FilesUpload(#{params.to_json}, #{opt.to_json});"
48
+ end
49
+ end
@@ -0,0 +1,229 @@
1
+ // requirements
2
+ railsExt;
3
+
4
+ //
5
+ // More
6
+ //
7
+ $._opened_more_containers = {};
8
+ $.callOnceForEvery('more', '._more', function(){
9
+ var more = $(this);
10
+ var button = more.find('._button:first');
11
+ var content = more.find('._content:first');
12
+
13
+ // more button
14
+ button.click(function(){
15
+ $._opened_more_containers[more.attr('id')] = true;
16
+ more.replaceWith(content.contents());
17
+ $.processInitializers();
18
+ return false
19
+ });
20
+
21
+ // if opened once, keep it open in all next ajax updates
22
+ if($._opened_more_containers[more.attr('id')]){
23
+ more.replaceWith(content.contents());
24
+ $.processInitializers();
25
+ };
26
+ });
27
+
28
+ //
29
+ // Messages
30
+ //
31
+ $.jGrowl.defaults.position = 'bottom-right'
32
+ $.extend({
33
+ infoMessage: function(message){
34
+ this.jGrowl(message);
35
+ },
36
+
37
+ errorMessage: function(message){
38
+ this.jGrowl(message);
39
+ }
40
+ });
41
+
42
+
43
+ //
44
+ // Inplace Editor
45
+ //
46
+ $.callOnceForEvery('inplace', '._inplace', function() {
47
+ var inplace = $(this);
48
+ var id = inplace.dataAttr('original_id');
49
+ if(!id) warn("inplace original_id isn't defined!");
50
+
51
+ // Universal Cancel Button (for General and AJAX forms)
52
+ inplace.find('._redirect_back_or_close_dialog').click(function(){
53
+ inplace.remove();
54
+ $('#' + id).show();
55
+ $.processInitializers();
56
+ return false;
57
+ });
58
+
59
+ // Universal Submit Button (for General and AJAX forms)
60
+ inplace.find('._submit_form_or_ajax_form').click(function(){
61
+ var form = inplace.find('form');
62
+
63
+ var data = {
64
+ format: 'js',
65
+ target: $(this).identify(),
66
+ };
67
+
68
+ // Calculating index inside container (only if it's inside container)
69
+ if(!inplace.parents('._container').blank()){
70
+ var container = inplace.parents('._container').first();
71
+ var list = container.find('> ._item, #' + inplace.identify());
72
+ var index = list.index(inplace);
73
+ data['index'] = index;
74
+ }
75
+
76
+ form.ajaxSubmit({data: data, dataType: 'script'});
77
+
78
+ return false;
79
+ });
80
+ });
81
+
82
+ $.fn.extend({
83
+ add_inplace: function(container, html, add_method){
84
+ var target = $(this).parents('._inplace_target');
85
+ if(!target.blank()){
86
+ target.after(html);
87
+ }else{
88
+ // if($(container + ' ._inplace._new_inplace').blank()) {
89
+ // var inplace = $(html).addClass('_new_inplace');
90
+ var inplace = $(html);
91
+ var container = $(container);
92
+ add_method = add_method || 'append';
93
+ container[add_method](inplace);
94
+ // }
95
+ }
96
+ },
97
+
98
+ edit_inplace: function(id, html){
99
+ var inplace = $(html);
100
+ inplace.dataAttr('original_id', id);
101
+
102
+ var original = $('#' + id);
103
+ original.hide();
104
+
105
+ var previous_inplace = $(this).parents('._inplace');
106
+ if(!previous_inplace.blank()){
107
+ previous_inplace.replaceWith(inplace);
108
+ }else{
109
+ original.after(inplace);
110
+ }
111
+ },
112
+
113
+ update_inplace: function(id, html){
114
+ var original = $('#' + id);
115
+ original.remove();
116
+
117
+ var previous_inplace = $(this).parents('._inplace');
118
+ previous_inplace.replaceWith(html);
119
+ }
120
+ });
121
+
122
+
123
+ //
124
+ // Dialog
125
+ //
126
+ $.callOnceForEvery('dialog', '._dialog', function() {
127
+ // Universal Form Cancel Button (for General and AJAX forms)
128
+ var dialog = $(this);
129
+ dialog.find('._redirect_back_or_close_dialog').click(function(){
130
+ dialog.remove();
131
+ return false;
132
+ });
133
+
134
+ // Universal Submit Button (for General and AJAX forms)
135
+ dialog.find('._submit_form_or_ajax_form').click(function(){
136
+ dialog.hide();
137
+
138
+ var form = dialog.find('form');
139
+ form.ajaxSubmit({
140
+ data: {
141
+ format: 'js'
142
+ },
143
+ dataType: 'script',
144
+ success: function(){
145
+ dialog.remove(); // can be removed only when form is posted, othervise it doesn't works with files
146
+ }
147
+ });
148
+
149
+ return false;
150
+ });
151
+
152
+ // Center dialog
153
+ var winH = $(window).height();
154
+ var winW = $(window).width();
155
+ var scroll_top = $(window).scrollTop();
156
+ var layoutW = $('._layout_content').width();
157
+ dialog.css('top', winH/3 + scroll_top - dialog.height()/2);
158
+ dialog.css('left', layoutW/2 - dialog.width()/2);
159
+ // More about cool modal dialog: http://www.queness.com/post/77/simple-jquery-modal-window-tutorial
160
+ });
161
+
162
+ $.fn.extend({
163
+ showDialog: function(dialogHtml){
164
+ $('._dialog').remove();
165
+ $('._main').append(dialogHtml);
166
+
167
+ $.refresh_js_css();
168
+ }
169
+ });
170
+
171
+ //
172
+ // Popup
173
+ //
174
+ $.callOnceForEvery('popup', 'body', function() {
175
+ $(this).click(function(){
176
+ $('._active_popup').remove();
177
+ });
178
+ });
179
+
180
+ // Embedded popup (popup without AJAX)
181
+ $.callOnceForEvery('embedded_popup', '._embedded_popup', function() {
182
+ var e = $(this);
183
+ e.click(function(){
184
+ var content = $("#" + e.dataAttr('content_id'));
185
+ e.showPopup(content.html());
186
+ return false;
187
+ });
188
+ });
189
+
190
+ // showPopup
191
+ $.fn.extend({
192
+ showPopup: function(popupHtml){
193
+ if(popupHtml.blank()){
194
+ log("Content for PopUp is blank!");
195
+ return;
196
+ }
197
+
198
+ $('._active_popup').remove();
199
+ var popup = $(popupHtml)
200
+ popup.addClass('_active_popup');
201
+ $('._main').append(popup);
202
+
203
+ $.refresh_js_css();
204
+
205
+ // Positioning
206
+ var layout_content = $('._layout_content');
207
+
208
+ var left = $(this).offset().left + this.width() / 2;
209
+ var top = $(this).offset().top + this.height() / 2;
210
+
211
+ var border_bottom = $(window).scrollTop() + $(window).height();
212
+ var border_right = layout_content.width();
213
+ var left_pos, top_pos;
214
+ var offset = 5;
215
+ if(border_right - (offset * 2) >= left + popup.width()){
216
+ left_pos = left + offset;
217
+ }else{
218
+ left_pos = border_right - popup.width() - (offset * 3);
219
+ }
220
+
221
+ if(border_bottom + (offset * 2) >= top + popup.height()){
222
+ top_pos = top + offset;
223
+ }else{
224
+ top_pos = top - popup.height() - offset;
225
+ }
226
+
227
+ popup.css({left:left_pos, top:top_pos});
228
+ }
229
+ });