releaf 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (323) hide show
  1. data/LICENSE +24 -0
  2. data/README.md +74 -0
  3. data/Rakefile +62 -0
  4. data/app/assets/images/releaf/3rd_party/jquery-ui-1.9.2.custom/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  5. data/app/assets/images/releaf/3rd_party/jquery-ui-1.9.2.custom/ui-bg_flat_75_ffffff_40x100.png +0 -0
  6. data/app/assets/images/releaf/3rd_party/jquery-ui-1.9.2.custom/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  7. data/app/assets/images/releaf/3rd_party/jquery-ui-1.9.2.custom/ui-bg_glass_65_ffffff_1x400.png +0 -0
  8. data/app/assets/images/releaf/3rd_party/jquery-ui-1.9.2.custom/ui-bg_glass_75_dadada_1x400.png +0 -0
  9. data/app/assets/images/releaf/3rd_party/jquery-ui-1.9.2.custom/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  10. data/app/assets/images/releaf/3rd_party/jquery-ui-1.9.2.custom/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  11. data/app/assets/images/releaf/3rd_party/jquery-ui-1.9.2.custom/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  12. data/app/assets/images/releaf/3rd_party/jquery-ui-1.9.2.custom/ui-icons_222222_256x240.png +0 -0
  13. data/app/assets/images/releaf/3rd_party/jquery-ui-1.9.2.custom/ui-icons_2e83ff_256x240.png +0 -0
  14. data/app/assets/images/releaf/3rd_party/jquery-ui-1.9.2.custom/ui-icons_454545_256x240.png +0 -0
  15. data/app/assets/images/releaf/3rd_party/jquery-ui-1.9.2.custom/ui-icons_888888_256x240.png +0 -0
  16. data/app/assets/images/releaf/3rd_party/jquery-ui-1.9.2.custom/ui-icons_cd0a0a_256x240.png +0 -0
  17. data/app/assets/images/releaf/3rd_party/lightbox/close.png +0 -0
  18. data/app/assets/images/releaf/3rd_party/lightbox/loading.gif +0 -0
  19. data/app/assets/images/releaf/3rd_party/lightbox/next.png +0 -0
  20. data/app/assets/images/releaf/3rd_party/lightbox/prev.png +0 -0
  21. data/app/assets/images/releaf/add.png +0 -0
  22. data/app/assets/images/releaf/background.jpg +0 -0
  23. data/app/assets/images/releaf/button/button_bgr.gif +0 -0
  24. data/app/assets/images/releaf/button/button_hover_bgr.png +0 -0
  25. data/app/assets/images/releaf/controllers/content/close.gif +0 -0
  26. data/app/assets/images/releaf/controllers/content/close_active.gif +0 -0
  27. data/app/assets/images/releaf/controllers/content/close_hover.gif +0 -0
  28. data/app/assets/images/releaf/controllers/content/global_fields_bgr.png +0 -0
  29. data/app/assets/images/releaf/controllers/content/open.gif +0 -0
  30. data/app/assets/images/releaf/controllers/content/open_2.gif +0 -0
  31. data/app/assets/images/releaf/controllers/content/open_active.gif +0 -0
  32. data/app/assets/images/releaf/controllers/content/open_hover.gif +0 -0
  33. data/app/assets/images/releaf/controllers/sessions/background.jpg +0 -0
  34. data/app/assets/images/releaf/controllers/sessions/logo.jpg +0 -0
  35. data/app/assets/images/releaf/expand_tool/close.png +0 -0
  36. data/app/assets/images/releaf/expand_tool/close_hover.png +0 -0
  37. data/app/assets/images/releaf/expand_tool/close_hover_shim.png +0 -0
  38. data/app/assets/images/releaf/expand_tool/close_shim.png +0 -0
  39. data/app/assets/images/releaf/expand_tool/loader.gif +0 -0
  40. data/app/assets/images/releaf/expand_tool/open.png +0 -0
  41. data/app/assets/images/releaf/expand_tool/open_hover.png +0 -0
  42. data/app/assets/images/releaf/expand_tool/open_hover_shim.png +0 -0
  43. data/app/assets/images/releaf/expand_tool/open_shim.png +0 -0
  44. data/app/assets/images/releaf/favicon.ico +0 -0
  45. data/app/assets/images/releaf/globalFieldContainerBgr.png +0 -0
  46. data/app/assets/images/releaf/icons/129.png +0 -0
  47. data/app/assets/images/releaf/icons/130.png +0 -0
  48. data/app/assets/images/releaf/icons/accept.png +0 -0
  49. data/app/assets/images/releaf/icons/add.png +0 -0
  50. data/app/assets/images/releaf/icons/arrow_down.png +0 -0
  51. data/app/assets/images/releaf/icons/arrow_left.png +0 -0
  52. data/app/assets/images/releaf/icons/arrow_refresh.png +0 -0
  53. data/app/assets/images/releaf/icons/arrow_up.png +0 -0
  54. data/app/assets/images/releaf/icons/bin_empty.png +0 -0
  55. data/app/assets/images/releaf/icons/bullet_black.png +0 -0
  56. data/app/assets/images/releaf/icons/bullet_connect.png +0 -0
  57. data/app/assets/images/releaf/icons/bullet_start.png +0 -0
  58. data/app/assets/images/releaf/icons/bullet_tick.png +0 -0
  59. data/app/assets/images/releaf/icons/chrome.png +0 -0
  60. data/app/assets/images/releaf/icons/control_play.png +0 -0
  61. data/app/assets/images/releaf/icons/date.png +0 -0
  62. data/app/assets/images/releaf/icons/delete.png +0 -0
  63. data/app/assets/images/releaf/icons/disk.png +0 -0
  64. data/app/assets/images/releaf/icons/drag-handle.png +0 -0
  65. data/app/assets/images/releaf/icons/error.png +0 -0
  66. data/app/assets/images/releaf/icons/eye.png +0 -0
  67. data/app/assets/images/releaf/icons/firefox.png +0 -0
  68. data/app/assets/images/releaf/icons/google-not-available.gif +0 -0
  69. data/app/assets/images/releaf/icons/google.gif +0 -0
  70. data/app/assets/images/releaf/icons/keyboard.png +0 -0
  71. data/app/assets/images/releaf/icons/left_16.png +0 -0
  72. data/app/assets/images/releaf/icons/link.png +0 -0
  73. data/app/assets/images/releaf/icons/magnifier.png +0 -0
  74. data/app/assets/images/releaf/icons/notAllowed.png +0 -0
  75. data/app/assets/images/releaf/icons/page_white_add.png +0 -0
  76. data/app/assets/images/releaf/icons/page_white_edit.png +0 -0
  77. data/app/assets/images/releaf/icons/page_white_put.png +0 -0
  78. data/app/assets/images/releaf/icons/page_white_text.png +0 -0
  79. data/app/assets/images/releaf/icons/pencil.png +0 -0
  80. data/app/assets/images/releaf/icons/picture.png +0 -0
  81. data/app/assets/images/releaf/icons/right_16.png +0 -0
  82. data/app/assets/images/releaf/icons/tick.png +0 -0
  83. data/app/assets/images/releaf/icons/warning.png +0 -0
  84. data/app/assets/images/releaf/icons/world_go.png +0 -0
  85. data/app/assets/images/releaf/icons/world_link.png +0 -0
  86. data/app/assets/images/releaf/input/autocompleteExpandIcon.png +0 -0
  87. data/app/assets/images/releaf/input/input_bgr.gif +0 -0
  88. data/app/assets/images/releaf/language_root.png +0 -0
  89. data/app/assets/images/releaf/loader.gif +0 -0
  90. data/app/assets/images/releaf/logout.png +0 -0
  91. data/app/assets/images/releaf/main_menu/active_bgr.png +0 -0
  92. data/app/assets/images/releaf/main_menu/bgr.png +0 -0
  93. data/app/assets/images/releaf/main_menu/hover_bgr.png +0 -0
  94. data/app/assets/images/releaf/module.png +0 -0
  95. data/app/assets/images/releaf/panel_layout/active_bgr.png +0 -0
  96. data/app/assets/images/releaf/panel_layout/secondary_panel_horizontal_bgr.png +0 -0
  97. data/app/assets/images/releaf/panel_layout/secondary_panel_vertical_bgr.png +0 -0
  98. data/app/assets/images/releaf/releaf_table/selected_bgr.png +0 -0
  99. data/app/assets/images/releaf/releaf_table/th_bgr.gif +0 -0
  100. data/app/assets/javascripts/releaf/3rd_party/jquery-cookie/README.md +73 -0
  101. data/app/assets/javascripts/releaf/3rd_party/jquery-cookie/jquery.cookie.js +47 -0
  102. data/app/assets/javascripts/releaf/3rd_party/jquery-cookie/server.js +24 -0
  103. data/app/assets/javascripts/releaf/3rd_party/jquery-cookie/test.html +19 -0
  104. data/app/assets/javascripts/releaf/3rd_party/jquery-cookie/test.js +80 -0
  105. data/app/assets/javascripts/releaf/3rd_party/jquery-ui-timepicker-addon.js +1882 -0
  106. data/app/assets/javascripts/releaf/3rd_party/lightbox.js.erb +379 -0
  107. data/app/assets/javascripts/releaf/application.js +14 -0
  108. data/app/assets/javascripts/releaf/controllers/base.js +170 -0
  109. data/app/assets/javascripts/releaf/controllers/releaf/content.js +90 -0
  110. data/app/assets/javascripts/releaf/controllers/releaf/translations.js +31 -0
  111. data/app/assets/javascripts/releaf/include/continuous_scroll.js +321 -0
  112. data/app/assets/javascripts/releaf/include/field.type_autocomplete.js +58 -0
  113. data/app/assets/javascripts/releaf/include/field.type_richtext.js +90 -0
  114. data/app/assets/javascripts/releaf/include/localization.js +12 -0
  115. data/app/assets/javascripts/releaf/include/nested_fields.js +71 -0
  116. data/app/assets/javascripts/releaf/include/sortable.js +27 -0
  117. data/app/assets/javascripts/releaf/lib/request_url.js +183 -0
  118. data/app/assets/stylesheets/releaf/3rd_party/jquery-ui-1.9.2.custom.css.erb +464 -0
  119. data/app/assets/stylesheets/releaf/3rd_party/jquery-ui-timepicker-addon.css +10 -0
  120. data/app/assets/stylesheets/releaf/3rd_party/lightbox.css.erb +157 -0
  121. data/app/assets/stylesheets/releaf/application.css.erb +122 -0
  122. data/app/assets/stylesheets/releaf/controllers/base.css.erb +205 -0
  123. data/app/assets/stylesheets/releaf/controllers/releaf/content.css.erb +416 -0
  124. data/app/assets/stylesheets/releaf/controllers/releaf/sessions.css.scss.erb +116 -0
  125. data/app/assets/stylesheets/releaf/controllers/releaf/translations.css.erb +205 -0
  126. data/app/assets/stylesheets/releaf/include/button.css.erb +176 -0
  127. data/app/assets/stylesheets/releaf/include/field.css.erb +257 -0
  128. data/app/assets/stylesheets/releaf/include/input.css.erb +40 -0
  129. data/app/assets/stylesheets/releaf/include/main_menu.css.erb +66 -0
  130. data/app/assets/stylesheets/releaf/include/pagination.css.erb +29 -0
  131. data/app/assets/stylesheets/releaf/include/panel_layout.css.erb +251 -0
  132. data/app/assets/stylesheets/releaf/include/releaf_table.css.erb +112 -0
  133. data/app/assets/stylesheets/releaf/include/sortable.css.erb +12 -0
  134. data/app/controllers/releaf/admins_controller.rb +48 -0
  135. data/app/controllers/releaf/application_controller.rb +11 -0
  136. data/app/controllers/releaf/base_application_controller.rb +15 -0
  137. data/app/controllers/releaf/base_controller.rb +310 -0
  138. data/app/controllers/releaf/content_controller.rb +166 -0
  139. data/app/controllers/releaf/roles_controller.rb +36 -0
  140. data/app/controllers/releaf/sessions_controller.rb +5 -0
  141. data/app/controllers/releaf/tinymce_assets_controller.rb +26 -0
  142. data/app/controllers/releaf/translations_controller.rb +121 -0
  143. data/app/helpers/releaf/admin_helper.rb +79 -0
  144. data/app/helpers/releaf/application_helper.rb +4 -0
  145. data/app/helpers/releaf/pagination_renderer.rb +44 -0
  146. data/app/helpers/releaf/releaf_devise_helper.rb +8 -0
  147. data/app/models/releaf/admin.rb +51 -0
  148. data/app/models/releaf/node.rb +221 -0
  149. data/app/models/releaf/node_base.rb +25 -0
  150. data/app/models/releaf/role.rb +119 -0
  151. data/app/models/releaf/tinymce_asset.rb +6 -0
  152. data/app/views/layouts/releaf/admin.html.haml +51 -0
  153. data/app/views/releaf/aliases/_edit.body.haml +50 -0
  154. data/app/views/releaf/aliases/_edit.header.haml +19 -0
  155. data/app/views/releaf/aliases/_index.row.haml +5 -0
  156. data/app/views/releaf/aliases/_secondary_panel.haml +13 -0
  157. data/app/views/releaf/base/_edit.body.haml +19 -0
  158. data/app/views/releaf/base/_edit.field.haml +96 -0
  159. data/app/views/releaf/base/_edit.field.type_autocomplete.haml +15 -0
  160. data/app/views/releaf/base/_edit.field.type_checkbox.haml +5 -0
  161. data/app/views/releaf/base/_edit.field.type_date.haml +8 -0
  162. data/app/views/releaf/base/_edit.field.type_datetime.haml +8 -0
  163. data/app/views/releaf/base/_edit.field.type_delete_nested.haml +3 -0
  164. data/app/views/releaf/base/_edit.field.type_file.haml +10 -0
  165. data/app/views/releaf/base/_edit.field.type_image.haml +14 -0
  166. data/app/views/releaf/base/_edit.field.type_link.haml +4 -0
  167. data/app/views/releaf/base/_edit.field.type_password.haml +4 -0
  168. data/app/views/releaf/base/_edit.field.type_richtext.haml +4 -0
  169. data/app/views/releaf/base/_edit.field.type_richtext_i18n.haml +27 -0
  170. data/app/views/releaf/base/_edit.field.type_select.haml +11 -0
  171. data/app/views/releaf/base/_edit.field.type_text.haml +4 -0
  172. data/app/views/releaf/base/_edit.field.type_text_i18n.haml +27 -0
  173. data/app/views/releaf/base/_edit.field.type_textarea.haml +4 -0
  174. data/app/views/releaf/base/_edit.field.type_textarea_i18n.haml +27 -0
  175. data/app/views/releaf/base/_edit.field.type_time.haml +8 -0
  176. data/app/views/releaf/base/_edit.footer.haml +14 -0
  177. data/app/views/releaf/base/_edit.form.haml +4 -0
  178. data/app/views/releaf/base/_edit.has_many_associations.haml +45 -0
  179. data/app/views/releaf/base/_edit.header.haml +3 -0
  180. data/app/views/releaf/base/_index.body.haml +6 -0
  181. data/app/views/releaf/base/_index.cell.haml +19 -0
  182. data/app/views/releaf/base/_index.footer.haml +22 -0
  183. data/app/views/releaf/base/_index.header.haml +4 -0
  184. data/app/views/releaf/base/_index.row.haml +6 -0
  185. data/app/views/releaf/base/_index.search.haml +5 -0
  186. data/app/views/releaf/base/_index.table.haml +8 -0
  187. data/app/views/releaf/base/_secondary_panel.haml +9 -0
  188. data/app/views/releaf/base/_show.body.haml +7 -0
  189. data/app/views/releaf/base/_show.field.haml +78 -0
  190. data/app/views/releaf/base/_show.field.type_html.haml +1 -0
  191. data/app/views/releaf/base/_show.footer.haml +16 -0
  192. data/app/views/releaf/base/_show.header.haml +3 -0
  193. data/app/views/releaf/base/confirm_destroy.haml +10 -0
  194. data/app/views/releaf/base/edit.haml +1 -0
  195. data/app/views/releaf/base/index.haml +3 -0
  196. data/app/views/releaf/base/new.haml +1 -0
  197. data/app/views/releaf/base/show.haml +3 -0
  198. data/app/views/releaf/content/_edit.body.haml +45 -0
  199. data/app/views/releaf/content/_edit.content_fields.haml +19 -0
  200. data/app/views/releaf/content/_edit.slug.haml +12 -0
  201. data/app/views/releaf/content/_get_content_form.haml +7 -0
  202. data/app/views/releaf/content/_secondary_panel.haml +3 -0
  203. data/app/views/releaf/content/_show.field.content.haml +11 -0
  204. data/app/views/releaf/content/_tree_level.haml +16 -0
  205. data/app/views/releaf/content/ajax.new.haml +3 -0
  206. data/app/views/releaf/content/index.haml +0 -0
  207. data/app/views/releaf/roles/_edit.field.admins.haml +0 -0
  208. data/app/views/releaf/roles/_edit.field.permissions.haml +5 -0
  209. data/app/views/releaf/roles/_show.field.default.haml +6 -0
  210. data/app/views/releaf/roles/_show.field.permissions.haml +11 -0
  211. data/app/views/releaf/sessions/new.html.haml +17 -0
  212. data/app/views/releaf/translations/_edit.body.haml +50 -0
  213. data/app/views/releaf/translations/_edit.header.haml +19 -0
  214. data/app/views/releaf/translations/_index.row.haml +5 -0
  215. data/app/views/releaf/translations/_secondary_panel.haml +13 -0
  216. data/bin/releaf +25 -0
  217. data/lib/generators/releaf/install_generator.rb +87 -0
  218. data/lib/generators/releaf/templates/config/common_fields.yml.example +17 -0
  219. data/lib/generators/releaf/templates/controllers/home_controller.rb +4 -0
  220. data/lib/generators/releaf/templates/images/3rd_party/jquery_ui/smoothness/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  221. data/lib/generators/releaf/templates/images/3rd_party/jquery_ui/smoothness/ui-bg_flat_75_ffffff_40x100.png +0 -0
  222. data/lib/generators/releaf/templates/images/3rd_party/jquery_ui/smoothness/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  223. data/lib/generators/releaf/templates/images/3rd_party/jquery_ui/smoothness/ui-bg_glass_65_ffffff_1x400.png +0 -0
  224. data/lib/generators/releaf/templates/images/3rd_party/jquery_ui/smoothness/ui-bg_glass_75_dadada_1x400.png +0 -0
  225. data/lib/generators/releaf/templates/images/3rd_party/jquery_ui/smoothness/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  226. data/lib/generators/releaf/templates/images/3rd_party/jquery_ui/smoothness/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  227. data/lib/generators/releaf/templates/images/3rd_party/jquery_ui/smoothness/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  228. data/lib/generators/releaf/templates/images/3rd_party/jquery_ui/smoothness/ui-icons_222222_256x240.png +0 -0
  229. data/lib/generators/releaf/templates/images/3rd_party/jquery_ui/smoothness/ui-icons_2e83ff_256x240.png +0 -0
  230. data/lib/generators/releaf/templates/images/3rd_party/jquery_ui/smoothness/ui-icons_454545_256x240.png +0 -0
  231. data/lib/generators/releaf/templates/images/3rd_party/jquery_ui/smoothness/ui-icons_888888_256x240.png +0 -0
  232. data/lib/generators/releaf/templates/images/3rd_party/jquery_ui/smoothness/ui-icons_cd0a0a_256x240.png +0 -0
  233. data/lib/generators/releaf/templates/images/3rd_party/lightbox/close.png +0 -0
  234. data/lib/generators/releaf/templates/images/3rd_party/lightbox/loading.gif +0 -0
  235. data/lib/generators/releaf/templates/images/3rd_party/lightbox/next.png +0 -0
  236. data/lib/generators/releaf/templates/images/3rd_party/lightbox/prev.png +0 -0
  237. data/lib/generators/releaf/templates/initializers/releaf.rb +59 -0
  238. data/lib/generators/releaf/templates/initializers/releaf_i18n.rb +8 -0
  239. data/lib/generators/releaf/templates/initializers/releaf_store_current_template.rb +25 -0
  240. data/lib/generators/releaf/templates/javascripts/3rd_party/jquery_ui.js +14850 -0
  241. data/lib/generators/releaf/templates/javascripts/3rd_party/lightbox.js.erb +379 -0
  242. data/lib/generators/releaf/templates/javascripts/application.js +15 -0
  243. data/lib/generators/releaf/templates/javascripts/lib/js_check.js +8 -0
  244. data/lib/generators/releaf/templates/javascripts/lib/request_url.js +169 -0
  245. data/lib/generators/releaf/templates/javascripts/lib/sortable.js +29 -0
  246. data/lib/generators/releaf/templates/migrations/create_releaf_admins.rb +53 -0
  247. data/lib/generators/releaf/templates/migrations/create_releaf_nodes.rb +25 -0
  248. data/lib/generators/releaf/templates/migrations/create_releaf_roles.rb +11 -0
  249. data/lib/generators/releaf/templates/migrations/create_releaf_tinymce_assets.rb +10 -0
  250. data/lib/generators/releaf/templates/migrations/create_releaf_translations.rb +31 -0
  251. data/lib/generators/releaf/templates/models/admin_ability.rb +51 -0
  252. data/lib/generators/releaf/templates/seeds.rb +64 -0
  253. data/lib/generators/releaf/templates/stylesheets/3rd_party/jquery_ui/smoothness.css.erb +1174 -0
  254. data/lib/generators/releaf/templates/stylesheets/3rd_party/lightbox.css.erb +157 -0
  255. data/lib/generators/releaf/templates/stylesheets/3rd_party/reset.css +48 -0
  256. data/lib/generators/releaf/templates/stylesheets/application.scss +15 -0
  257. data/lib/generators/releaf/templates/stylesheets/style.scss +45 -0
  258. data/lib/generators/releaf/templates/views/home/index.html.haml +1 -0
  259. data/lib/generators/releaf/templates/views/layouts/application.html.haml +26 -0
  260. data/lib/i18n/backend/releaf.rb +96 -0
  261. data/lib/i18n/backend/releaf/translation.rb +56 -0
  262. data/lib/i18n/backend/releaf/translation_data.rb +32 -0
  263. data/lib/i18n/backend/releaf/translation_group.rb +30 -0
  264. data/lib/i18n/releaf.rb +1 -0
  265. data/lib/releaf.rb +30 -0
  266. data/lib/releaf/engine.rb +4 -0
  267. data/lib/releaf/slug.rb +79 -0
  268. data/lib/releaf/version.rb +3 -0
  269. data/lib/tasks/releaf_tasks.rake +4 -0
  270. data/spec/dummy/README.rdoc +261 -0
  271. data/spec/dummy/Rakefile +7 -0
  272. data/spec/dummy/app/assets/images/rails.png +0 -0
  273. data/spec/dummy/app/assets/javascripts/application.js +15 -0
  274. data/spec/dummy/app/assets/stylesheets/application.css +13 -0
  275. data/spec/dummy/app/controllers/application_controller.rb +3 -0
  276. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  277. data/spec/dummy/app/models/admin_ability.rb +51 -0
  278. data/spec/dummy/app/models/settings.rb +2 -0
  279. data/spec/dummy/app/views/layouts/application.html.haml +10 -0
  280. data/spec/dummy/config.ru +4 -0
  281. data/spec/dummy/config/application.rb +68 -0
  282. data/spec/dummy/config/boot.rb +6 -0
  283. data/spec/dummy/config/common_fields.yml.example +17 -0
  284. data/spec/dummy/config/database.yml +42 -0
  285. data/spec/dummy/config/environment.rb +5 -0
  286. data/spec/dummy/config/environments/development.rb +37 -0
  287. data/spec/dummy/config/environments/production.rb +67 -0
  288. data/spec/dummy/config/environments/test.rb +37 -0
  289. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  290. data/spec/dummy/config/initializers/devise.rb +232 -0
  291. data/spec/dummy/config/initializers/dragonfly.rb +1 -0
  292. data/spec/dummy/config/initializers/inflections.rb +15 -0
  293. data/spec/dummy/config/initializers/mime_types.rb +5 -0
  294. data/spec/dummy/config/initializers/releaf.rb +59 -0
  295. data/spec/dummy/config/initializers/releaf_i18n.rb +8 -0
  296. data/spec/dummy/config/initializers/releaf_store_current_template.rb +25 -0
  297. data/spec/dummy/config/initializers/secret_token.rb +7 -0
  298. data/spec/dummy/config/initializers/session_store.rb +8 -0
  299. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  300. data/spec/dummy/config/locales/devise.en.yml +58 -0
  301. data/spec/dummy/config/locales/en.yml +5 -0
  302. data/spec/dummy/config/routes.rb +11 -0
  303. data/spec/dummy/db/migrate/20130204164516_create_settings.rb +17 -0
  304. data/spec/dummy/db/migrate/20130204164523_create_releaf_nodes.rb +25 -0
  305. data/spec/dummy/db/migrate/20130204164524_create_releaf_roles.rb +11 -0
  306. data/spec/dummy/db/migrate/20130204164525_create_releaf_translations.rb +31 -0
  307. data/spec/dummy/db/migrate/20130204164526_create_releaf_admins.rb +53 -0
  308. data/spec/dummy/db/schema.rb +112 -0
  309. data/spec/dummy/db/seeds.rb +64 -0
  310. data/spec/dummy/doc/README_FOR_APP +2 -0
  311. data/spec/dummy/log/development.log +74 -0
  312. data/spec/dummy/log/test.log +129 -0
  313. data/spec/dummy/public/404.html +26 -0
  314. data/spec/dummy/public/422.html +26 -0
  315. data/spec/dummy/public/500.html +25 -0
  316. data/spec/dummy/public/favicon.ico +0 -0
  317. data/spec/dummy/script/rails +6 -0
  318. data/spec/dummy/tmp/cache/9C5/660/settings%3Ai18n_updated_at +1 -0
  319. data/spec/factories/factories.rb +24 -0
  320. data/spec/features/admin_spec.rb +41 -0
  321. data/spec/spec_helper.rb +23 -0
  322. data/templates/releaf/installer.rb +196 -0
  323. metadata +777 -0
@@ -0,0 +1,205 @@
1
+ /* primary panel */
2
+
3
+ .controller-releaf-translations.view-edit .primary_panel .body
4
+ {
5
+ border-radius: 0;
6
+ border-top: none;
7
+ padding: 0 0 20px;
8
+ top: 65px;
9
+ }
10
+
11
+ /* secondary panel */
12
+ .controller-releaf-translations.panel_layout .secondary_panel
13
+ {
14
+ width: 23%;
15
+ min-width: 270px;
16
+ }
17
+ .controller-releaf-translations .secondary_panel .standard_submenu .section_title
18
+ {
19
+ background-image: none;
20
+ cursor: default;
21
+ }
22
+
23
+ /* translations table */
24
+ /* table in general */
25
+ .controller-releaf-translations .translations_table .th
26
+ {
27
+ -webkit-transition: width .1s ease-out;
28
+ -moz-transition: width .1s ease-out;
29
+ transition: width .1s ease-out;
30
+ }
31
+ .controller-releaf-translations table.translations_table
32
+ {
33
+ font-size: 100%;
34
+ margin-top: -28px;
35
+ margin-bottom: 10px;
36
+ }
37
+ /* header */
38
+ .controller-releaf-translations .translations_table thead
39
+ {
40
+ visibility: hidden;
41
+ }
42
+ .controller-releaf-translations .translations_table_head
43
+ {
44
+ swidth: auto;
45
+ margin-left: -5px;
46
+ margin-right: -5px;
47
+ border: 1px solid #ABABAB;
48
+ border-bottom: 0;
49
+ background: url("<%= asset_path 'releaf/releaf_table/th_bgr.gif' %>") repeat-x scroll 0 bottom #F9F9F9;
50
+ border-top-left-radius: 5px;
51
+ border-top-right-radius: 5px;
52
+ white-space: nowrap;
53
+ overflow: hidden;
54
+ }
55
+ .controller-releaf-translations .translations_table th
56
+ {
57
+ font-weight: normal;
58
+ }
59
+ .controller-releaf-translations .translations_table_head .th
60
+ {
61
+ display: inline-block;
62
+
63
+ border-left: 1px solid #EEEEEE;
64
+ border-right: 1px solid #D0D0D0;
65
+ font-weight: normal;
66
+ padding-top: 5px;
67
+ padding-bottom: 5px;
68
+ text-align: center;
69
+ }
70
+ .controller-releaf-translations .translations_table_head .th:first-of-type
71
+ {
72
+ border-top-left-radius: 4px;
73
+ }
74
+ .controller-releaf-translations .translations_table .code_header
75
+ {
76
+ width: 200px;
77
+ }
78
+ .controller-releaf-translations .translations_table .delete_header
79
+ {
80
+ min-width: 20px;
81
+ max-width: 20px;
82
+ width: 20px;
83
+ }
84
+ /* body */
85
+ .controller-releaf-translations .translations_table td
86
+ {
87
+ padding: 0;
88
+ border-style: solid;
89
+ border-width: 0 1px 1px 0;
90
+ text-align: center;
91
+ background-color: white;
92
+ -webkit-transition: background-color .1s linear;
93
+ -moz-transition: background-color .2s linear;
94
+ transition: background-color .2s linear;
95
+ }
96
+ .controller-releaf-translations .translations_table td,
97
+ .controller-releaf-translations .translations_table.releaf_table.label_first_column td:first-child
98
+ {
99
+ border-color: #DDDDDD;
100
+ }
101
+ .controller-releaf-translations .translations_table tr:last-of-type td
102
+ {
103
+ border-bottom: none;
104
+ }
105
+ .controller-releaf-translations .translations_table .wrap
106
+ {
107
+ padding-right: 6px;
108
+ position: relative;
109
+ }
110
+ .controller-releaf-translations .translations_table input
111
+ {
112
+ border-width: 0;
113
+ background: transparent none;
114
+ width: 100%;
115
+ }
116
+ .controller-releaf-translations .translations_table input:focus
117
+ {
118
+ border-width: 1px;
119
+ margin: -1px;
120
+ }
121
+ .controller-releaf-translations .translations_table .delete_column
122
+ {
123
+ border-right: none;
124
+ }
125
+
126
+ /* highlighted row */
127
+ .controller-releaf-translations .highlighted td,
128
+ .controller-releaf-translations .releaf_table.label_first_column tbody tr.highlighted td:first-child,
129
+ .controller-releaf-translations .releaf_table.label_first_column tbody tr.highlighted:hover td:first-child
130
+ {
131
+ background-color: #7AD528;
132
+ border-color: #C1AD2F;
133
+ }
134
+
135
+ /* visibleLanguagesSwitch */
136
+ .controller-releaf-translations .visibleLanguagesSwitch
137
+ {
138
+ position: absolute;
139
+ top: 7px;
140
+ right: 15px;
141
+ text-align: right;
142
+ z-index: 3;
143
+ }
144
+ .controller-releaf-translations .visibleLanguagesSwitch button img
145
+ {
146
+ margin: 0 0 0 8px;
147
+ }
148
+ .controller-releaf-translations .visibleLanguagesSwitch ul
149
+ {
150
+ display: none;
151
+ text-align: left;
152
+
153
+ background-color: #F2F1F1;
154
+ border: 1px solid gray;
155
+ border-top: 0;
156
+ margin: 0 2px;
157
+ box-shadow: 0px 1px 3px rgba(0,0,0,.5);
158
+ }
159
+ .controller-releaf-translations .visibleLanguagesSwitch ul label
160
+ {
161
+ display: block;
162
+ padding: 0px 4px;
163
+ }
164
+ .controller-releaf-translations .visibleLanguagesSwitch ul label:hover
165
+ {
166
+ background-color: rgba(0,0,0,.1);
167
+ }
168
+ .controller-releaf-translations .visibleLanguagesSwitch ul input
169
+ {
170
+ vertical-align: -15%;
171
+ }
172
+
173
+ /* header */
174
+ .controller-releaf-translations .header .groupInfo
175
+ {
176
+ padding-top: 4px;
177
+ margin-bottom: 7px;
178
+ }
179
+ .controller-releaf-translations .header .field
180
+ {
181
+ swidth: 50%;
182
+ display: inline-block;
183
+ padding: 0 20px 0 0;
184
+ }
185
+ .controller-releaf-translations .header .field label
186
+ {
187
+ margin-right: 3px;
188
+ }
189
+
190
+ /* dragInProgress */
191
+ .module-aliases .primary_panel .body.dragInProgress
192
+ {
193
+ box-shadow: 0px 0px 8px 2px #724FC1;
194
+ }
195
+ .module-aliases .primary_panel .body.dragInProgress,
196
+ .module-aliases .primary_panel .body.dragInProgress input,
197
+ .module-aliases .primary_panel .body.dragInProgress td
198
+ {
199
+ background-color: yellow;
200
+ }
201
+
202
+ .controller-releaf-translations.action-edit .primary_panel button.add.new {
203
+ margin-left: 10px;
204
+ }
205
+
@@ -0,0 +1,176 @@
1
+ button,
2
+ input[type="button"],
3
+ input[type="submit"],
4
+ .button,
5
+ button[disabled]
6
+ {
7
+ padding: 2px 8px 3px 8px;
8
+ color: black;
9
+ cursor: pointer;
10
+ border: 1px solid #adadad;
11
+ border-right-color: #888686;
12
+ border-bottom-color: #888686;
13
+ border-radius: 3px;
14
+ box-shadow: 0px 1px 0px rgba(255,255,255,.6);
15
+ background: #dcdcdc url("<%= asset_path 'releaf/button/button_bgr.gif' %>") repeat-x top left;
16
+ vertical-align: middle;
17
+ margin: 0;
18
+ text-shadow: rgba(255, 255, 255, 0.4) 0 1px;
19
+ /* normalize user agent differences */
20
+ -moz-box-sizing: content-box;
21
+ -webkit-box-sizing: content-box;
22
+ box-sizing: content-box;
23
+ display: inline-block;
24
+ font-family: inherit;
25
+ height: 18px;
26
+ font-size: 100%;
27
+ }
28
+ button::-moz-focus-inner
29
+ {
30
+ padding: 0;
31
+ border: 0
32
+ }
33
+ button:hover,
34
+ input[type="button"]:hover,
35
+ input[type="submit"]:hover,
36
+ .button:hover
37
+ {
38
+ text-decoration: none;
39
+ background-image: url("<%= asset_path 'releaf/button/button_hover_bgr.png' %>");
40
+ background-color: #cfcece;
41
+ }
42
+ button > *,
43
+ input[type="button"] > *,
44
+ input[type="submit"] > *,
45
+ .button > *
46
+ {
47
+ vertical-align: middle;
48
+ }
49
+ /* fix element alignment, TODO: find a better way */
50
+ button > *:only-child,
51
+ input[type="button"] > *:only-child,
52
+ input[type="submit"] > *:only-child,
53
+ .button > *:only-child
54
+ {
55
+ display: inline-block;
56
+ padding-top: 2px;
57
+ }
58
+ button[disabled],
59
+ input[type="button"][disabled],
60
+ input[type="submit"][disabled],
61
+ .button[disabled],
62
+ .button.disabled
63
+ {
64
+ opacity: .4;
65
+ cursor: default;
66
+ }
67
+ button[disabled]:hover,
68
+ button[disabled]:focus,
69
+ input[type="button"][disabled]:hover,
70
+ input[type="button"][disabled]:focus,
71
+ input[type="submit"][disabled]:hover,
72
+ input[type="submit"][disabled]:focus,
73
+ .button[disabled]:hover,
74
+ .button[disabled]:focus,
75
+ .button.disabled:hover,
76
+ .button.disabled:focus
77
+ {
78
+ background: #dcdcdc url("<%= asset_path 'releaf/button/button_bgr.gif' %>") repeat-x top left;
79
+ border: 1px solid #adadad;
80
+ border-right-color: #888686;
81
+ border-bottom-color: #888686;
82
+ }
83
+ button > img + span,
84
+ input[type="button"] > img + span,
85
+ input[type="submit"] > img + span,
86
+ .button > img + span
87
+ {
88
+ margin-left: 5px;
89
+ }
90
+ button:focus,
91
+ input[type="button"]:focus,
92
+ input[type="submit"]:focus,
93
+ .button:focus
94
+ {
95
+ outline: none;
96
+ box-shadow: 0 0 4px 1px #2878D4;
97
+ position: relative;
98
+ z-index: 2;
99
+ }
100
+ button:active,
101
+ button.active,
102
+ input[type="button"]:active,
103
+ input[type="button"].active,
104
+ input[type="submit"]:active,
105
+ input[type="submit"].active,
106
+ .button:active,
107
+ .button.active
108
+ {
109
+ border: 1px solid rgba(0, 0, 0, 0.6);
110
+ outline: none;
111
+ box-shadow: inset rgba(0, 0, 0, 0.4) 0 -5px 12px, inset rgba(0, 0, 0, 1) 0 1px 3px, rgba(255, 255, 255, 0.4) 0 1px;
112
+ }
113
+ button.active:focus,
114
+ input[type="button"].active:focus,
115
+ input[type="submit"].active:focus,
116
+ .button.active:focus
117
+ {
118
+ box-shadow: inset rgba(0, 0, 0, 0.4) 0 -5px 12px, inset rgba(0, 0, 0, 1) 0 1px 3px, rgba(255, 255, 255, 0.4) 0 1px, 0 0 4px 1px #2878D4;
119
+ }
120
+ button.no_styling,
121
+ button.no_styling:focus,
122
+ button.no_styling:hover,
123
+ input[type="button"].no_styling,
124
+ input[type="button"].no_styling:focus,
125
+ input[type="button"].no_styling:hover,
126
+ input[type="submit"].no_styling,
127
+ input[type="submit"].no_styling:focus,
128
+ input[type="submit"].no_styling:hover,
129
+ .button.no_styling,
130
+ .button.no_styling:focus,
131
+ .button.no_styling:hover
132
+ {
133
+ background-color: transparent;
134
+ background-image: none;
135
+ border: 0 none;
136
+ border-radius: 0;
137
+ padding: 0;
138
+ box-shadow: none;
139
+ }
140
+
141
+ .button_group
142
+ {
143
+ display: inline-block;
144
+ margin-right: 25px;
145
+ }
146
+ .button_group.compensate
147
+ {
148
+ padding-top: 4px;
149
+ }
150
+ .button_group.compact button,
151
+ .button_group.compact input[type="button"],
152
+ .button_group.compact input[type="submit"],
153
+ .button_group.compact .button
154
+ {
155
+ padding-left: 5px;
156
+ padding-right: 5px;
157
+ }
158
+ .button_group button:not(:first-child),
159
+ .button_group input[type="button"]:not(:first-child),
160
+ .button_group input[type="submit"]:not(:first-child),
161
+ .button_group .button:not(:first-child)
162
+ {
163
+ border-left: none;
164
+ border-top-left-radius: 0;
165
+ border-bottom-left-radius: 0;
166
+ }
167
+ .button_group button:not(:last-child),
168
+ .button_group input[type="button"]:not(:last-child),
169
+ .button_group input[type="submit"]:not(:last-child),
170
+ .button_group .button:not(:last-child)
171
+ {
172
+ border-right-color: #b1b1b1;
173
+ border-top-right-radius: 0;
174
+ border-bottom-right-radius: 0;
175
+ }
176
+
@@ -0,0 +1,257 @@
1
+ /* field */
2
+ .field
3
+ {
4
+ padding-bottom: 15px;
5
+ }
6
+ .field.disabled
7
+ {
8
+ background-color: inherit;
9
+ }
10
+ .field.disabled label,
11
+ .field.disabled .label
12
+ {
13
+ color: gray;
14
+ }
15
+ /* label wrap */
16
+ .field .label_wrap
17
+ {
18
+ width: 35%;
19
+ float: left;
20
+ text-align: right;
21
+ padding: 3px 5px 0 0;
22
+ }
23
+ .field.no_label_wrap_padding .label_wrap
24
+ {
25
+ padding-top: 0;
26
+ }
27
+ .field .label_wrap .description
28
+ {
29
+ font-size: 80%;
30
+ padding-right: 4px;
31
+ color: #494C48;
32
+ }
33
+ /* label */
34
+ .field label,
35
+ .field .label
36
+ {
37
+ font-weight: bold;
38
+ color: #494C48;
39
+ }
40
+ .field .label_wrap.label
41
+ {
42
+ padding-top: 0;
43
+ }
44
+ /* value */
45
+ .field .value
46
+ {
47
+ margin-left: 35%;
48
+ padding-left: 5px;
49
+ }
50
+ /* input */
51
+ .field input[type="text"],
52
+ .field input[type="email"],
53
+ .field input[type="password"]
54
+ {
55
+ width: 250px;
56
+ }
57
+ .field input.short
58
+ {
59
+ width: 50px;
60
+ }
61
+ .field input[type="checkbox"] + label,
62
+ .field input[type="radio"] + label
63
+ {
64
+ font-weight: normal;
65
+ margin-right: 30px;
66
+ }
67
+ .field input[type="checkbox"][disabled] + label,
68
+ .field input[type="radio"][disabled] + label
69
+ {
70
+ color: gray;
71
+ }
72
+ /* trigger */
73
+ .field .trigger
74
+ {
75
+ vertical-align: -15%;
76
+ margin-left: 5px;
77
+ cursor: pointer;
78
+ }
79
+
80
+ /* type: textarea */
81
+ .field.type_textarea,
82
+ .field.type_richtext
83
+ {
84
+ width: 710px;
85
+ margin: 0 auto;
86
+ }
87
+
88
+ .field.type_textarea .label_wrap,
89
+ .field.type_richtext .label_wrap
90
+ {
91
+ float: none;
92
+ text-align: left;
93
+ width: auto;
94
+ }
95
+ .field.type_textarea .value,
96
+ .field.type_richtext .value
97
+ {
98
+ margin-left: 0;
99
+ padding-left: 0;
100
+ }
101
+ .field.type_textarea textarea,
102
+ .field.type_richtext textarea
103
+ {
104
+ min-width: 650px;
105
+ <%# width: 100%; %>
106
+ -moz-box-sizing: border-box;
107
+ box-sizing: border-box;
108
+ }
109
+
110
+
111
+ /* TODO: refactor below this line */
112
+
113
+ .checkboxGroup .field:not(:last-child)
114
+ {
115
+ padding-bottom: 5px;
116
+ }
117
+
118
+ /* richtext styling */
119
+ .richtextField .mceEditor .mceLayout
120
+ {
121
+ border-color: #ABABAB;
122
+ }
123
+ .richtextField .mceEditor .mceLayout .mceToolbar
124
+ {
125
+ border-top-color: #707070;
126
+ }
127
+ .richtextField .mceEditor .mceLayout .mceStatusbar
128
+ {
129
+ border-bottom-color: #CECECE;
130
+ }
131
+ .richtextField .mceEditor .mceLayout .mceButtonActive
132
+ {
133
+ border-color: #cccccc;
134
+ background-color: #f0f0ee;
135
+ }
136
+ .richtextField .mceEditor .mceLayout .mceButtonActive:hover
137
+ {
138
+ background-color: #b2bbd0;
139
+ }
140
+ /* focus */
141
+ .richtextField .mceEditor .mceLayout.focus .mceToolbar
142
+ {
143
+ border-top-color: #7c8288;
144
+ background-color: #e6e7ea;
145
+ }
146
+ .richtextField .mceEditor .mceLayout.focus .mceStatusbar
147
+ {
148
+ border-bottom-color: #a8aeb4;
149
+ background-color: #e6e7ea;
150
+ }
151
+ .richtextField .mceEditor .mceLayout.focus .mceButton
152
+ {
153
+ border-color: #e6e7ea;
154
+ }
155
+ .richtextField .mceEditor .mceLayout.focus .mceButtonActive
156
+ {
157
+ border-color: #969696;
158
+ background-color: #b2bbd0;
159
+ }
160
+ .richtextField .mceEditor .mceLayout .mceButton:hover
161
+ {
162
+ border-color: #969696;
163
+ }
164
+ .richtextField .mceEditor .mceLayout.focus .mceButtonActive:hover
165
+ {
166
+ border-color: #585858;
167
+ }
168
+ /* --richtext styling */
169
+
170
+
171
+ .field.type_autocomplete .autocomplete_expand_icon {
172
+ margin: 0 6px 0 -16px;
173
+ vertical-align: -10%;
174
+ }
175
+
176
+ .nested_object {
177
+ padding: 5px;
178
+ }
179
+ .nested_wrap .nested_title {
180
+ padding-top: 20px;
181
+ font-size: 16px;
182
+ font-weight: bold;
183
+ padding-bottom: 5px;
184
+ }
185
+
186
+ .localization_buttons {
187
+ margin-left: 35%;
188
+ padding-left: 5px;
189
+ }
190
+ .field.type_textarea .localization_buttons, .field.type_richtext .localization_buttons {
191
+ margin-left: 0;
192
+ padding-left: 0;
193
+ }
194
+ .localization_buttons button {
195
+ border-color: transparent #B0AFAF #999;
196
+ border-radius: 0 0 3px 3px;
197
+ min-width: 35px;
198
+ text-align: center;
199
+ color: #585757;
200
+ margin-right: 4px;
201
+ background-color: transparent;
202
+ background-image: none;
203
+ border: 0 none;
204
+ padding: 0;
205
+ box-shadow: none;
206
+ text-transform: lowercase;
207
+ background: gainsboro url(<% asset_path("/button/buttonBgr.gif") %>) repeat-x top left;
208
+ vertical-align: middle;
209
+ border: 1px solid #B0AFAF;
210
+ border-top: 0;
211
+ }
212
+ .localization_buttons button:focus {
213
+ outline: 1px dotted gray;
214
+ box-shadow: none;
215
+ }
216
+
217
+ .localization_buttons button.active {
218
+ background-color: white;
219
+ color: black;
220
+ }
221
+
222
+
223
+
224
+
225
+
226
+
227
+
228
+
229
+ .nested_wrap .item {
230
+ position: relative;
231
+ background-color: #F3F3F3;
232
+ margin: 3px 5px;
233
+ padding: 5px;
234
+ min-height: 24px;
235
+ }
236
+ .nested_wrap .item .field.type_delete_nested {
237
+ position: absolute;
238
+ top: 10px;
239
+ right: 10px;
240
+ padding: 0;
241
+ border: none;
242
+ }
243
+
244
+ .nested_wrap .field .label_wrap {
245
+ width: auto;
246
+ float: none;
247
+ text-align: left;
248
+ }
249
+ .nested_wrap .field .value {
250
+ margin-left: 0;
251
+ }
252
+ .nested_wrap .field {
253
+ border-bottom: 1px dotted #DDD;
254
+ }
255
+ .value_preview {
256
+ padding: 5px;
257
+ }