qbrick 2.5.0.pre

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 (297) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +423 -0
  3. data/Rakefile +82 -0
  4. data/app/assets/javascripts/ckeditor/plugins/adv_link/LICENSE.txt +674 -0
  5. data/app/assets/javascripts/ckeditor/plugins/adv_link/README.md +62 -0
  6. data/app/assets/javascripts/ckeditor/plugins/adv_link/dialogs/anchor.js.coffee +81 -0
  7. data/app/assets/javascripts/ckeditor/plugins/adv_link/dialogs/link.js.coffee +1353 -0
  8. data/app/assets/javascripts/ckeditor/plugins/adv_link/images/anchor.png +0 -0
  9. data/app/assets/javascripts/ckeditor/plugins/adv_link/images/hidpi/anchor.png +0 -0
  10. data/app/assets/javascripts/ckeditor/plugins/adv_link/lang/de.js +68 -0
  11. data/app/assets/javascripts/ckeditor/plugins/adv_link/lang/en.js +68 -0
  12. data/app/assets/javascripts/ckeditor/plugins/adv_link/plugin.js.coffee +282 -0
  13. data/app/assets/javascripts/kuhsaft/application.js.coffee +7 -0
  14. data/app/assets/javascripts/kuhsaft/cms/application.js.coffee.erb +136 -0
  15. data/app/assets/javascripts/kuhsaft/views/read_more_view.js.coffee +17 -0
  16. data/app/assets/stylesheets/kuhsaft/application.css.sass +1 -0
  17. data/app/assets/stylesheets/kuhsaft/cms/application.css.sass +204 -0
  18. data/app/assets/stylesheets/kuhsaft/modules/_text_brick.css.sass +16 -0
  19. data/app/controllers/kuhsaft/api/pages_controller.rb +14 -0
  20. data/app/controllers/kuhsaft/cms/admin_controller.rb +18 -0
  21. data/app/controllers/kuhsaft/cms/assets_controller.rb +38 -0
  22. data/app/controllers/kuhsaft/cms/bricks_controller.rb +61 -0
  23. data/app/controllers/kuhsaft/cms/ckimages_controller.rb +26 -0
  24. data/app/controllers/kuhsaft/cms/pages_controller.rb +71 -0
  25. data/app/controllers/kuhsaft/pages_controller.rb +38 -0
  26. data/app/controllers/kuhsaft/sitemaps_controller.rb +12 -0
  27. data/app/helpers/cms_helper.rb +27 -0
  28. data/app/helpers/kuhsaft/admin_helper.rb +20 -0
  29. data/app/helpers/kuhsaft/cms/admin_helper.rb +21 -0
  30. data/app/helpers/kuhsaft/cms/pages_helper.rb +17 -0
  31. data/app/helpers/pages_helper.rb +49 -0
  32. data/app/helpers/sitemaps_helper.rb +12 -0
  33. data/app/models/kuhsaft/accordion_brick.rb +15 -0
  34. data/app/models/kuhsaft/accordion_item_brick.rb +21 -0
  35. data/app/models/kuhsaft/anchor_brick.rb +17 -0
  36. data/app/models/kuhsaft/asset.rb +29 -0
  37. data/app/models/kuhsaft/asset_brick.rb +26 -0
  38. data/app/models/kuhsaft/brick.rb +137 -0
  39. data/app/models/kuhsaft/brick_type.rb +7 -0
  40. data/app/models/kuhsaft/brick_type_filter.rb +18 -0
  41. data/app/models/kuhsaft/ckimage.rb +5 -0
  42. data/app/models/kuhsaft/cms.rb +7 -0
  43. data/app/models/kuhsaft/column_brick.rb +22 -0
  44. data/app/models/kuhsaft/image_brick.rb +16 -0
  45. data/app/models/kuhsaft/image_size.rb +51 -0
  46. data/app/models/kuhsaft/link_brick.rb +21 -0
  47. data/app/models/kuhsaft/page.rb +160 -0
  48. data/app/models/kuhsaft/page_type.rb +11 -0
  49. data/app/models/kuhsaft/partition.rb +18 -0
  50. data/app/models/kuhsaft/placeholder_brick.rb +23 -0
  51. data/app/models/kuhsaft/publish_state.rb +24 -0
  52. data/app/models/kuhsaft/slider_brick.rb +18 -0
  53. data/app/models/kuhsaft/text_brick.rb +23 -0
  54. data/app/models/kuhsaft/two_column_brick.rb +46 -0
  55. data/app/models/kuhsaft/video_brick.rb +22 -0
  56. data/app/uploaders/kuhsaft/asset_brick_asset_uploader.rb +43 -0
  57. data/app/uploaders/kuhsaft/asset_uploader.rb +50 -0
  58. data/app/uploaders/kuhsaft/ckimage_uploader.rb +16 -0
  59. data/app/uploaders/kuhsaft/image_brick_image_uploader.rb +35 -0
  60. data/app/views/kuhsaft/accordion_bricks/_accordion_brick.html.haml +3 -0
  61. data/app/views/kuhsaft/accordion_bricks/accordion_brick/_edit.html.haml +0 -0
  62. data/app/views/kuhsaft/accordion_item_bricks/_accordion_item_brick.html.haml +8 -0
  63. data/app/views/kuhsaft/accordion_item_bricks/accordion_item_brick/_edit.html.haml +1 -0
  64. data/app/views/kuhsaft/anchor_bricks/_anchor_brick.html.haml +1 -0
  65. data/app/views/kuhsaft/anchor_bricks/anchor_brick/_edit.html.haml +1 -0
  66. data/app/views/kuhsaft/asset_bricks/_asset_brick.html.haml +2 -0
  67. data/app/views/kuhsaft/asset_bricks/asset_brick/_edit.html.haml +8 -0
  68. data/app/views/kuhsaft/cms/admin/_brick_type_dropdown.html.haml +14 -0
  69. data/app/views/kuhsaft/cms/admin/_content_language_switch.html.haml +7 -0
  70. data/app/views/kuhsaft/cms/admin/_empty_state.html.haml +5 -0
  71. data/app/views/kuhsaft/cms/admin/_flash.html.haml +7 -0
  72. data/app/views/kuhsaft/cms/admin/_main_navigation.html.haml +6 -0
  73. data/app/views/kuhsaft/cms/assets/_form.html.haml +15 -0
  74. data/app/views/kuhsaft/cms/assets/_list.html.haml +11 -0
  75. data/app/views/kuhsaft/cms/assets/edit.html.haml +2 -0
  76. data/app/views/kuhsaft/cms/assets/index.html.haml +3 -0
  77. data/app/views/kuhsaft/cms/assets/new.html.haml +2 -0
  78. data/app/views/kuhsaft/cms/bricks/_brick_header.html.haml +43 -0
  79. data/app/views/kuhsaft/cms/bricks/_brick_item.html.haml +25 -0
  80. data/app/views/kuhsaft/cms/bricks/_brick_list.html.haml +4 -0
  81. data/app/views/kuhsaft/cms/bricks/_new.html.haml +41 -0
  82. data/app/views/kuhsaft/cms/bricks/_sort_form.html.haml +3 -0
  83. data/app/views/kuhsaft/cms/bricks/create.js.erb +11 -0
  84. data/app/views/kuhsaft/cms/bricks/destroy.js.erb +10 -0
  85. data/app/views/kuhsaft/cms/bricks/new.js.erb +14 -0
  86. data/app/views/kuhsaft/cms/bricks/update.js.erb +8 -0
  87. data/app/views/kuhsaft/cms/ckimages/create.html.haml +11 -0
  88. data/app/views/kuhsaft/cms/ckimages/destroy.js.erb +2 -0
  89. data/app/views/kuhsaft/cms/ckimages/index.html.haml +13 -0
  90. data/app/views/kuhsaft/cms/pages/_branch.html.haml +19 -0
  91. data/app/views/kuhsaft/cms/pages/_form.html.haml +45 -0
  92. data/app/views/kuhsaft/cms/pages/edit.html.haml +16 -0
  93. data/app/views/kuhsaft/cms/pages/index.html.haml +14 -0
  94. data/app/views/kuhsaft/cms/pages/new.html.haml +1 -0
  95. data/app/views/kuhsaft/cms/pages/show.html.haml +0 -0
  96. data/app/views/kuhsaft/cms/pages/sort.js.erb +0 -0
  97. data/app/views/kuhsaft/column_bricks/_column_brick.html.haml +3 -0
  98. data/app/views/kuhsaft/column_bricks/column_brick/_edit.html.haml +0 -0
  99. data/app/views/kuhsaft/image_bricks/_image_brick.html.haml +11 -0
  100. data/app/views/kuhsaft/image_bricks/image_brick/_edit.html.haml +13 -0
  101. data/app/views/kuhsaft/link_bricks/_link_brick.html.haml +2 -0
  102. data/app/views/kuhsaft/link_bricks/link_brick/_edit.html.haml +4 -0
  103. data/app/views/kuhsaft/pages/index.html.haml +7 -0
  104. data/app/views/kuhsaft/pages/show.html.haml +11 -0
  105. data/app/views/kuhsaft/placeholder_bricks/_placeholder_brick.html.haml +2 -0
  106. data/app/views/kuhsaft/placeholder_bricks/placeholder_brick/_edit.html.haml +1 -0
  107. data/app/views/kuhsaft/search/_form.html.haml +2 -0
  108. data/app/views/kuhsaft/search/_results.html.haml +8 -0
  109. data/app/views/kuhsaft/search/_results_entry.html.haml +13 -0
  110. data/app/views/kuhsaft/sitemaps/index.xml.haml +9 -0
  111. data/app/views/kuhsaft/slider_bricks/_slider_brick.html.haml +10 -0
  112. data/app/views/kuhsaft/slider_bricks/slider_brick/_edit.html.haml +0 -0
  113. data/app/views/kuhsaft/text_bricks/_text_brick.html.haml +11 -0
  114. data/app/views/kuhsaft/text_bricks/text_brick/_edit.html.haml +2 -0
  115. data/app/views/kuhsaft/two_column_bricks/_two_column_brick.html.haml +3 -0
  116. data/app/views/kuhsaft/two_column_bricks/two_column_brick/_childs.html.haml +5 -0
  117. data/app/views/kuhsaft/two_column_bricks/two_column_brick/_edit.html.haml +1 -0
  118. data/app/views/kuhsaft/video_bricks/_video_brick.html.haml +9 -0
  119. data/app/views/kuhsaft/video_bricks/video_brick/_edit.html.haml +8 -0
  120. data/app/views/layouts/kuhsaft/cms/application.html.haml +25 -0
  121. data/app/views/layouts/kuhsaft/cms/ckimages.html.haml +18 -0
  122. data/config/initializers/simple_form.rb +142 -0
  123. data/config/initializers/simple_form_bootstrap.rb +45 -0
  124. data/config/locales/de.yml +207 -0
  125. data/config/locales/en.yml +211 -0
  126. data/config/locales/models/kuhsaft/accordion_brick/de.yml +4 -0
  127. data/config/locales/models/kuhsaft/accordion_brick/en.yml +4 -0
  128. data/config/locales/models/kuhsaft/accordion_item_brick/de.yml +7 -0
  129. data/config/locales/models/kuhsaft/accordion_item_brick/en.yml +7 -0
  130. data/config/locales/models/kuhsaft/anchor_brick/de.yml +7 -0
  131. data/config/locales/models/kuhsaft/anchor_brick/en.yml +7 -0
  132. data/config/locales/models/kuhsaft/asset_brick/de.yml +9 -0
  133. data/config/locales/models/kuhsaft/asset_brick/en.yml +9 -0
  134. data/config/locales/models/kuhsaft/brick/de.yml +5 -0
  135. data/config/locales/models/kuhsaft/brick/en.yml +5 -0
  136. data/config/locales/models/kuhsaft/column_brick/de.yml +4 -0
  137. data/config/locales/models/kuhsaft/column_brick/en.yml +4 -0
  138. data/config/locales/models/kuhsaft/image_brick/de.yml +11 -0
  139. data/config/locales/models/kuhsaft/image_brick/en.yml +11 -0
  140. data/config/locales/models/kuhsaft/image_size/de.yml +13 -0
  141. data/config/locales/models/kuhsaft/image_size/en.yml +13 -0
  142. data/config/locales/models/kuhsaft/link_brick/de.yml +10 -0
  143. data/config/locales/models/kuhsaft/link_brick/en.yml +10 -0
  144. data/config/locales/models/kuhsaft/page/de.yml +19 -0
  145. data/config/locales/models/kuhsaft/page/en.yml +19 -0
  146. data/config/locales/models/kuhsaft/placeholder_brick/de.yml +8 -0
  147. data/config/locales/models/kuhsaft/placeholder_brick/en.yml +8 -0
  148. data/config/locales/models/kuhsaft/slider_brick/de.yml +4 -0
  149. data/config/locales/models/kuhsaft/slider_brick/en.yml +4 -0
  150. data/config/locales/models/kuhsaft/text_brick/de.yml +11 -0
  151. data/config/locales/models/kuhsaft/text_brick/en.yml +11 -0
  152. data/config/locales/models/kuhsaft/two_column_brick/de.yml +7 -0
  153. data/config/locales/models/kuhsaft/two_column_brick/en.yml +7 -0
  154. data/config/locales/models/kuhsaft/video_brick/de.yml +9 -0
  155. data/config/locales/models/kuhsaft/video_brick/en.yml +9 -0
  156. data/config/locales/simple_form.en.yml +26 -0
  157. data/config/locales/views/kuhsaft/cms/admin/de.yml +13 -0
  158. data/config/locales/views/kuhsaft/cms/admin/en.yml +12 -0
  159. data/config/locales/views/kuhsaft/cms/bricks/de.yml +18 -0
  160. data/config/locales/views/kuhsaft/cms/bricks/en.yml +18 -0
  161. data/config/locales/views/kuhsaft/cms/pages/de.yml +31 -0
  162. data/config/locales/views/kuhsaft/cms/pages/en.yml +31 -0
  163. data/config/locales/views/kuhsaft/image_brick/de.yml +6 -0
  164. data/config/locales/views/kuhsaft/image_brick/en.yml +6 -0
  165. data/config/locales/views/kuhsaft/search/de.yml +12 -0
  166. data/config/locales/views/kuhsaft/search/en.yml +12 -0
  167. data/config/locales/views/kuhsaft/text_brick/de.yml +6 -0
  168. data/config/locales/views/kuhsaft/text_brick/en.yml +6 -0
  169. data/config/locales/views/kuhsaft/video_brick/de.yml +7 -0
  170. data/config/locales/views/kuhsaft/video_brick/en.yml +7 -0
  171. data/config/routes.rb +30 -0
  172. data/db/migrate/01_create_kuhsaft_pages.rb +31 -0
  173. data/db/migrate/02_create_kuhsaft_bricks.rb +23 -0
  174. data/db/migrate/03_create_kuhsaft_brick_types.rb +12 -0
  175. data/db/migrate/04_create_kuhsaft_assets.rb +10 -0
  176. data/db/migrate/05_remove_cms_admin.rb +9 -0
  177. data/db/migrate/06_add_template_name_to_kuhsaft_bricks.rb +7 -0
  178. data/db/migrate/07_add_default_value_to_brick_type_enabled.rb +6 -0
  179. data/db/migrate/08_add_display_styles_to_bricks.rb +5 -0
  180. data/db/migrate/09_add_additional_fields_to_kuhsaft_bricks.rb +6 -0
  181. data/db/migrate/10_add_redirect_url_to_kuhsaft_pages.rb +7 -0
  182. data/db/migrate/11_update_url_and_redirect_url_value.rb +45 -0
  183. data/db/migrate/12_regenerate_fulltext.rb +12 -0
  184. data/db/migrate/13_add_page_title_to_pages.rb +7 -0
  185. data/db/migrate/14_move_kuhsaft_assets.rb +22 -0
  186. data/db/migrate/15_add_alt_text_to_bricks.rb +5 -0
  187. data/db/migrate/16_update_default_value_for_page_type.rb +9 -0
  188. data/db/migrate/17_set_page_type_to_content_for_empty_fields.rb +7 -0
  189. data/db/migrate/18_add_identifier_to_kuhsaft_pages.rb +6 -0
  190. data/db/migrate/19_add_col_count_to_bricks.rb +5 -0
  191. data/db/migrate/20_create_kuhsaft_ckimages.rb +9 -0
  192. data/db/seeds.rb +20 -0
  193. data/lib/generators/kuhsaft/assets/install_generator.rb +25 -0
  194. data/lib/generators/kuhsaft/translations/add_generator.rb +41 -0
  195. data/lib/kuhsaft.rb +22 -0
  196. data/lib/kuhsaft/brick_list.rb +87 -0
  197. data/lib/kuhsaft/engine.rb +27 -0
  198. data/lib/kuhsaft/gridded.rb +20 -0
  199. data/lib/kuhsaft/image_uploader_mounting.rb +22 -0
  200. data/lib/kuhsaft/orderable.rb +71 -0
  201. data/lib/kuhsaft/page_tree.rb +14 -0
  202. data/lib/kuhsaft/partial_extractor.rb +21 -0
  203. data/lib/kuhsaft/searchable.rb +69 -0
  204. data/lib/kuhsaft/touch_placeholders.rb +31 -0
  205. data/lib/kuhsaft/translatable.rb +54 -0
  206. data/lib/kuhsaft/version.rb +3 -0
  207. data/lib/tasks/kuhsaft_tasks.rake +22 -0
  208. data/lib/templates/kuhsaft/assets/ck-config.js.coffee +48 -0
  209. data/lib/templates/kuhsaft/assets/customizations.css.sass +0 -0
  210. data/lib/templates/kuhsaft/assets/customizations.js.coffee +0 -0
  211. data/lib/templates/kuhsaft/translations/add_translation.erb +8 -0
  212. data/spec/controllers/kuhsaft/api/pages_controller_spec.rb +70 -0
  213. data/spec/controllers/kuhsaft/pages_controller_spec.rb +90 -0
  214. data/spec/controllers/kuhsaft/sitemaps_controller_spec.rb +13 -0
  215. data/spec/dummy/Rakefile +7 -0
  216. data/spec/dummy/app/assets/images/spec-image.png +0 -0
  217. data/spec/dummy/app/assets/javascripts/application.js +15 -0
  218. data/spec/dummy/app/assets/javascripts/kuhsaft/cms/ck-config.js.coffee +48 -0
  219. data/spec/dummy/app/assets/javascripts/kuhsaft/cms/customizations.js.coffee +0 -0
  220. data/spec/dummy/app/assets/stylesheets/application.css +13 -0
  221. data/spec/dummy/app/assets/stylesheets/kuhsaft/cms/customizations.css.sass +0 -0
  222. data/spec/dummy/app/controllers/application_controller.rb +4 -0
  223. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  224. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  225. data/spec/dummy/bin/bundle +3 -0
  226. data/spec/dummy/bin/rails +4 -0
  227. data/spec/dummy/bin/rake +4 -0
  228. data/spec/dummy/config.ru +4 -0
  229. data/spec/dummy/config/application.rb +26 -0
  230. data/spec/dummy/config/boot.rb +3 -0
  231. data/spec/dummy/config/database.yml +19 -0
  232. data/spec/dummy/config/environment.rb +5 -0
  233. data/spec/dummy/config/environments/development.rb +29 -0
  234. data/spec/dummy/config/environments/production.rb +81 -0
  235. data/spec/dummy/config/environments/test.rb +36 -0
  236. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  237. data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  238. data/spec/dummy/config/initializers/inflections.rb +16 -0
  239. data/spec/dummy/config/initializers/kuhsaft.rb +5 -0
  240. data/spec/dummy/config/initializers/mime_types.rb +5 -0
  241. data/spec/dummy/config/initializers/secret_token.rb +12 -0
  242. data/spec/dummy/config/initializers/session_store.rb +3 -0
  243. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  244. data/spec/dummy/config/locales/en.yml +23 -0
  245. data/spec/dummy/config/routes.rb +3 -0
  246. data/spec/dummy/db/.gitkeep +0 -0
  247. data/spec/dummy/lib/assets/.gitkeep +0 -0
  248. data/spec/dummy/log/.gitkeep +0 -0
  249. data/spec/dummy/public/404.html +26 -0
  250. data/spec/dummy/public/422.html +26 -0
  251. data/spec/dummy/public/500.html +25 -0
  252. data/spec/dummy/public/favicon.ico +0 -0
  253. data/spec/dummy/public/stylesheets/.gitkeep +0 -0
  254. data/spec/dummy/script/rails +6 -0
  255. data/spec/factories.rb +26 -0
  256. data/spec/features/cms_pages_spec.rb +76 -0
  257. data/spec/features/search_spec.rb +78 -0
  258. data/spec/helpers/kuhsaft/cms/admin_helper_spec.rb +25 -0
  259. data/spec/helpers/kuhsaft/cms/pages_helper_spec.rb +46 -0
  260. data/spec/helpers/kuhsaft/pages_helper_spec.rb +21 -0
  261. data/spec/kuhsaft_spec.rb +7 -0
  262. data/spec/lib/brick_list_spec.rb +50 -0
  263. data/spec/lib/engine_spec.rb +25 -0
  264. data/spec/lib/gridded_spec.rb +24 -0
  265. data/spec/lib/image_uploader_mounting_spec.rb +14 -0
  266. data/spec/lib/page_tree_spec.rb +38 -0
  267. data/spec/lib/searchable_spec.rb +30 -0
  268. data/spec/lib/touch_placeholders_spec.rb +44 -0
  269. data/spec/lib/translatable_spec.rb +155 -0
  270. data/spec/models/accordion_brick_spec.rb +38 -0
  271. data/spec/models/accordion_item_brick_spec.rb +50 -0
  272. data/spec/models/anchor_brick_spec.rb +26 -0
  273. data/spec/models/asset_brick_spec.rb +45 -0
  274. data/spec/models/asset_spec.rb +41 -0
  275. data/spec/models/brick_spec.rb +134 -0
  276. data/spec/models/brick_type_filter_spec.rb +64 -0
  277. data/spec/models/column_brick_spec.rb +32 -0
  278. data/spec/models/image_brick_spec.rb +49 -0
  279. data/spec/models/image_size_spec.rb +36 -0
  280. data/spec/models/link_brick_spec.rb +51 -0
  281. data/spec/models/page_spec.rb +472 -0
  282. data/spec/models/placeholder_brick_spec.rb +46 -0
  283. data/spec/models/publish_state_spec.rb +33 -0
  284. data/spec/models/slider_brick_spec.rb +26 -0
  285. data/spec/models/text_brick_spec.rb +30 -0
  286. data/spec/models/two_column_brick_spec.rb +82 -0
  287. data/spec/models/video_brick_spec.rb +32 -0
  288. data/spec/spec_helper.rb +81 -0
  289. data/spec/support/kuhsaft_spec_helper.rb +8 -0
  290. data/spec/support/write_expectation.rb +57 -0
  291. data/spec/views/kuhsaft/sitemaps/index.xml.haml_spec.rb +67 -0
  292. data/vendor/assets/javascripts/bootstrap-modal-v2.js +376 -0
  293. data/vendor/assets/javascripts/bootstrap-modalmanager.js +423 -0
  294. data/vendor/assets/javascripts/jquery.nestable.js +485 -0
  295. data/vendor/assets/stylesheets/bootstrap_modal.css +214 -0
  296. data/vendor/assets/stylesheets/nestable.css +84 -0
  297. metadata +870 -0
@@ -0,0 +1,17 @@
1
+ class window.ReadMoreView
2
+
3
+ constructor: (readMoreElem)->
4
+ @readMoreElem = readMoreElem
5
+ @readMoreElem.on 'show', @handleShow
6
+ @readMoreElem.on 'hide', @handleClose
7
+ @readMoreElem.find('.button-read-more').on 'click', @handleClick
8
+
9
+ handleShow: (e) =>
10
+ @readMoreElem.addClass('is-open')
11
+
12
+ handleClose: (e) =>
13
+ @readMoreElem.removeClass('is-open')
14
+
15
+ handleClick: (e) =>
16
+ if e.preventDefault
17
+ e.preventDefault()
@@ -0,0 +1 @@
1
+ //= require_self
@@ -0,0 +1,204 @@
1
+ // This is a manifest file that'll automatically include all the stylesheets available in this directory
2
+ // and any sub-directories. You're free to add application-wide styles to this file and they'll appear at
3
+ // the top of the compiled file, but it's generally better to create a new file per style scope.
4
+ // = require_self
5
+ // = require_tree .
6
+
7
+
8
+ $baseBorderRadius: 0px
9
+ $borderRadiusLarge: 0px
10
+ $borderRadiusSmall: 0px
11
+
12
+ @import bootstrap
13
+ // base styles
14
+
15
+ body
16
+ // disable page skipping when changing tabs in page form
17
+ overflow: scroll
18
+
19
+ h1
20
+ margin-top: 1em
21
+ margin-bottom: 0.5em
22
+ font-size: 3.5em
23
+
24
+ form
25
+ margin: 0 !important
26
+
27
+ // bootrap overrides
28
+
29
+ .breadcrumb
30
+ background: #fff
31
+ opacity: 0.4
32
+ @include transition(all, 0.3s)
33
+
34
+ .breadcrumb:hover
35
+ opacity: 1
36
+
37
+ .dropdown-menu
38
+ text-align: left
39
+
40
+ .container.cms
41
+ padding-top: 60px
42
+
43
+ .form-horizontal
44
+ .help-block
45
+ width: 470px
46
+ margin-top: 0 !important
47
+
48
+ // modules
49
+
50
+ .brick-caption
51
+ font-size: 1.25em
52
+
53
+ .brick-caption
54
+ @extend .muted
55
+ font-weight: normal
56
+ font-style: italic
57
+
58
+ .brick-item-header
59
+ background: #efefef
60
+ padding: 0.5em
61
+
62
+ .btn
63
+ &.resize-toggler
64
+ .icon-resize-small
65
+ display: block
66
+ .icon-resize-full
67
+ display: none
68
+
69
+ &.collapsed
70
+ .icon-resize-small
71
+ display: none
72
+ .icon-resize-full
73
+ display: block
74
+
75
+ .btn-toolbar
76
+ margin-top: 0
77
+ margin-bottom: 0
78
+
79
+ .brick-list
80
+ padding-left: 2em
81
+
82
+ // The single column brick and the page-content (the "root") needs no level indentation
83
+ // It usually acts as a helper container and is therefore not relevant
84
+ // for the visual hierarchy
85
+ .kuhsaft-column-brick
86
+ border: 0px solid #fff
87
+ > .brick-item-childs
88
+ > .brick-list
89
+ padding-left: 0
90
+
91
+ #page-content
92
+ padding-bottom: 6em
93
+ > .brick-list
94
+ padding-left: 0
95
+
96
+ .tab-content
97
+ display: table
98
+ width: 100%
99
+
100
+ .brick-item
101
+ border: 1px solid #e3e3e3
102
+ // collapse multiple borders
103
+ margin: -1px
104
+ background: #fff
105
+
106
+ .brick-item-content.in
107
+ padding: 1em
108
+
109
+ .empty-state
110
+ margin: 1em
111
+
112
+ .muted
113
+ padding: 0.5em
114
+
115
+ .clear
116
+ clear: both
117
+
118
+ .centered
119
+ text-align: center
120
+
121
+ .actions
122
+ margin-top: 1em
123
+ margin-bottom: 1em
124
+ text-align: right
125
+
126
+ .branch
127
+ border-bottom: 1px solid #ccc
128
+ padding: 0.35em 0
129
+
130
+ .unpublished
131
+ a
132
+ color: #666
133
+
134
+ .pages-list
135
+ > .branch-group
136
+ > .branch
137
+ .branch-title
138
+ font-weight: bold
139
+
140
+ .branch-group
141
+ .branch-group
142
+ .branch-title
143
+ margin-left: 2em
144
+
145
+ .branch-group
146
+ .branch-title
147
+ margin-left: 4em
148
+
149
+ .branch-group
150
+ .branch-title
151
+ margin-left: 6em
152
+
153
+ #flash
154
+ p
155
+ margin: 0
156
+
157
+ .dropdown-menu
158
+ > li
159
+ > .control-group
160
+ padding: 3px 20px
161
+
162
+ .control-label
163
+ font-weight: bold
164
+
165
+ .modal
166
+ width: 900px
167
+ margin-left: -450px
168
+
169
+ .modal-body
170
+ max-height: none
171
+
172
+ .btn-group
173
+ position: relative
174
+ top: -10px
175
+ padding-left: 10px
176
+
177
+ .control-group.text
178
+ min-height: 310px
179
+
180
+ textarea
181
+ height: 263px
182
+ width: 98%
183
+
184
+ .ckimage-wrapper
185
+ float: left
186
+ margin-left: 10px
187
+ margin-top: 10px
188
+ padding-bottom: 20px
189
+ position: relative
190
+
191
+ .ckimage-thumb
192
+ width: 150px
193
+ height: 150px
194
+ border: 1px solid black
195
+
196
+ .ckimage-delete
197
+ display: block
198
+ position: absolute
199
+ bottom: 0
200
+ height: 20px
201
+
202
+ @import nestable
203
+ @import bootstrap-responsive
204
+ @import bootstrap_modal
@@ -0,0 +1,16 @@
1
+ .button-read-more
2
+ outline: 0 !important
3
+
4
+ .kuhsaft-text-brick
5
+ .read-more-text
6
+ display: block
7
+
8
+ .read-less-text
9
+ display: none
10
+
11
+ &.is-open
12
+ .read-more-text
13
+ display: none
14
+
15
+ .read-less-text
16
+ display: block
@@ -0,0 +1,14 @@
1
+ module Kuhsaft
2
+ module Api
3
+ class PagesController < ActionController::Base
4
+ layout :false
5
+ respond_to :json
6
+
7
+ def index
8
+ I18n.locale = params[:locale]
9
+ @pages = Kuhsaft::Page.unscoped.published.content_page.translated.order(position: :asc)
10
+ render json: @pages.as_json
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,18 @@
1
+ module Kuhsaft
2
+ module Cms
3
+ class AdminController < ActionController::Base
4
+ respond_to :html
5
+ layout 'kuhsaft/cms/application'
6
+ before_action :set_content_locale
7
+
8
+ def set_content_locale
9
+ return if params[:content_locale].blank?
10
+ I18n.locale = params[:content_locale]
11
+ end
12
+
13
+ def url_options
14
+ { content_locale: I18n.locale }.merge(super)
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,38 @@
1
+ module Kuhsaft
2
+ module Cms
3
+ class AssetsController < AdminController
4
+ def index
5
+ @assets = Kuhsaft::Asset.by_date
6
+ respond_with @assets
7
+ end
8
+
9
+ def new
10
+ @asset = Kuhsaft::Asset.new
11
+ respond_with @asset
12
+ end
13
+
14
+ def create
15
+ @asset = Kuhsaft::Asset.create params[:kuhsaft_asset]
16
+ @asset.save
17
+ respond_with @asset, location: cms_assets_path
18
+ end
19
+
20
+ def edit
21
+ @asset = Kuhsaft::Asset.find(params[:id])
22
+ respond_with @asset
23
+ end
24
+
25
+ def update
26
+ @asset = Kuhsaft::Asset.find(params[:id])
27
+ @asset.update_attributes(params[:kuhsaft_asset])
28
+ respond_with @asset, location: cms_assets_path
29
+ end
30
+
31
+ def destroy
32
+ @asset = Kuhsaft::Asset.find(params[:id])
33
+ @asset.destroy
34
+ redirect_to cms_assets_path
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,61 @@
1
+ module Kuhsaft
2
+ module Cms
3
+ class BricksController < AdminController
4
+ respond_to :html, :js
5
+
6
+ def create
7
+ @brick = params[:brick][:type].constantize.create(brick_params)
8
+ @brick.image_size ||= ImageSize.all.first.name.to_s
9
+
10
+ if @brick.valid?
11
+ respond_with @brick do |format|
12
+ format.js
13
+ format.html { redirect_to edit_cms_page_path(@brick.parents.first) }
14
+ end
15
+ else
16
+ render 'new'
17
+ end
18
+ end
19
+
20
+ def new
21
+ @brick = Kuhsaft::Brick.new(brick_params)
22
+ end
23
+
24
+ def update
25
+ @brick = Kuhsaft::Brick.find(params[:id])
26
+ @brick.update_attributes(brick_params)
27
+
28
+ #
29
+ # rails will fall back to html if ajax can't be used
30
+ # this is the case with the image brick, because ajax does not
31
+ # support image uploads
32
+ #
33
+ respond_with @brick do |format|
34
+ format.js
35
+ format.html { redirect_to edit_cms_page_path(@brick.parents.first) }
36
+ end
37
+ end
38
+
39
+ def destroy
40
+ @brick = Kuhsaft::Brick.find(params[:id])
41
+ @parent_brick = @brick.brick_list
42
+ @brick.destroy
43
+ end
44
+
45
+ def sort
46
+ if params[:bricks].present?
47
+ params[:bricks][:ids].split(',').each_with_index do |id, idx|
48
+ Kuhsaft::Brick.find(id).update_attribute(:position, idx.to_i + 1)
49
+ end
50
+ end
51
+ render nothing: true
52
+ end
53
+
54
+ private
55
+
56
+ def brick_params
57
+ params.require(:brick).permit!
58
+ end
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,26 @@
1
+ module Kuhsaft
2
+ module Cms
3
+ class CkimagesController < AdminController
4
+ layout 'kuhsaft/cms/ckimages'
5
+ skip_before_action :verify_authenticity_token
6
+ respond_to :html, :js
7
+
8
+ def create
9
+ @func_num = params['CKEditorFuncNum']
10
+ @ck_editor = params['CKEditor']
11
+ @ckimage = Kuhsaft::Ckimage.create(file: params[:upload])
12
+ end
13
+
14
+ def index
15
+ @func_num = params['CKEditorFuncNum']
16
+ @ck_editor = params['CKEditor']
17
+ @ckimages = Kuhsaft::Ckimage.all
18
+ end
19
+
20
+ def destroy
21
+ @ckimage = Kuhsaft::Ckimage.find(params[:id])
22
+ @ckimage.destroy
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,71 @@
1
+ require 'kuhsaft/page_tree'
2
+
3
+ module Kuhsaft
4
+ module Cms
5
+ class PagesController < AdminController
6
+ def index
7
+ @pages = Kuhsaft::Page.roots
8
+ respond_with @pages
9
+ end
10
+
11
+ def show
12
+ @page = Kuhsaft::Page.find(params[:id])
13
+ respond_with @page
14
+ end
15
+
16
+ def new
17
+ @page = Kuhsaft::Page.new
18
+ @page.published ||= Kuhsaft::PublishState::UNPUBLISHED
19
+ respond_with @page
20
+ end
21
+
22
+ def create
23
+ @page = Kuhsaft::Page.create(page_params)
24
+
25
+ if @page.valid?
26
+ flash[:success] = t('layouts.kuhsaft.cms.flash.success', subject: Kuhsaft::Page.model_name.human)
27
+ respond_with @page, location: kuhsaft.edit_cms_page_path(@page)
28
+ else
29
+ render 'new'
30
+ end
31
+ end
32
+
33
+ def edit
34
+ @page = Kuhsaft::Page.find(params[:id])
35
+ @page.published ||= Kuhsaft::PublishState::UNPUBLISHED
36
+ @page.bricks.each { |brick| brick.valid? }
37
+ respond_with @page
38
+ end
39
+
40
+ def update
41
+ @page = Kuhsaft::Page.find(params[:id])
42
+ if @page.update_attributes(page_params)
43
+ flash[:success] = t('layouts.kuhsaft.cms.flash.success', subject: Kuhsaft::Page.model_name.human)
44
+ respond_with @page, location: kuhsaft.edit_cms_page_path(@page)
45
+ else
46
+ render 'edit'
47
+ end
48
+ end
49
+
50
+ def destroy
51
+ @page = Kuhsaft::Page.find(params[:id])
52
+ @page.destroy
53
+ redirect_to kuhsaft.cms_pages_path
54
+ end
55
+
56
+ def sort
57
+ Kuhsaft::PageTree.update(params[:page_tree])
58
+ end
59
+
60
+ private
61
+
62
+ def page_params
63
+ safe_params = [
64
+ :title, :page_title, :slug, :redirect_url, :url, :page_type, :parent_id,
65
+ :keywords, :description, :published, :position
66
+ ]
67
+ params.require(:page).permit(*safe_params)
68
+ end
69
+ end
70
+ end
71
+ end