cd2_catton_cms 1.1.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (306) hide show
  1. checksums.yaml +7 -0
  2. data/Rakefile +37 -0
  3. data/app/assets/config/c_manifest.js +2 -0
  4. data/app/assets/images/c/drag_handle.gif +0 -0
  5. data/app/assets/images/c/login_background.jpg +0 -0
  6. data/app/assets/images/c/main_application/hero.jpg +0 -0
  7. data/app/assets/images/c/main_application/search.png +0 -0
  8. data/app/assets/images/c/placeholder_product_image.png +0 -0
  9. data/app/assets/images/c/select_arrow_down_blk.png +0 -0
  10. data/app/assets/images/c/small_icon.png +0 -0
  11. data/app/assets/images/c/vendor/chosen-sprite.png +0 -0
  12. data/app/assets/javascripts/c/application.js +59 -0
  13. data/app/assets/javascripts/c/change_tag.js +49 -0
  14. data/app/assets/javascripts/c/chosen.js +2 -0
  15. data/app/assets/javascripts/c/confirm_delete.js +55 -0
  16. data/app/assets/javascripts/c/draggable_tree.js +223 -0
  17. data/app/assets/javascripts/c/dropzone_init.js +98 -0
  18. data/app/assets/javascripts/c/fake_table.js +87 -0
  19. data/app/assets/javascripts/c/master_form2/collection.js +180 -0
  20. data/app/assets/javascripts/c/master_form2/eu_cookie.js +1 -0
  21. data/app/assets/javascripts/c/master_form2/jrecord.js +116 -0
  22. data/app/assets/javascripts/c/master_form2/master_form.coffee +4 -0
  23. data/app/assets/javascripts/c/split_buttons.js.erb +15 -0
  24. data/app/assets/javascripts/c/things_to_be_done.js +138 -0
  25. data/app/assets/javascripts/c/unloadevent.js +35 -0
  26. data/app/assets/stylesheets/c/_core.sass +237 -0
  27. data/app/assets/stylesheets/c/_engine.sass +4 -0
  28. data/app/assets/stylesheets/c/_variables.sass +32 -0
  29. data/app/assets/stylesheets/c/_vendor.sass +6 -0
  30. data/app/assets/stylesheets/c/application/checkout/_cart.sass +85 -0
  31. data/app/assets/stylesheets/c/application/checkout/_checkout.sass +87 -0
  32. data/app/assets/stylesheets/c/application/elements/buttons.sass +34 -0
  33. data/app/assets/stylesheets/c/application/elements/forms.sass +135 -0
  34. data/app/assets/stylesheets/c/application/elements/shadows.sass +23 -0
  35. data/app/assets/stylesheets/c/application/partials/_breadcrumbs.sass +10 -0
  36. data/app/assets/stylesheets/c/application/partials/_categories_sidebars/_1.sass +53 -0
  37. data/app/assets/stylesheets/c/application/partials/_categories_sidebars/_2.sass +77 -0
  38. data/app/assets/stylesheets/c/application/partials/_footer.sass +43 -0
  39. data/app/assets/stylesheets/c/application/partials/_header.sass +317 -0
  40. data/app/assets/stylesheets/c/engine/_draggable_trees.sass +68 -0
  41. data/app/assets/stylesheets/c/engine/_form_pages.sass +153 -0
  42. data/app/assets/stylesheets/c/engine/_header_bar.sass +29 -0
  43. data/app/assets/stylesheets/c/engine/_index_header.sass +17 -0
  44. data/app/assets/stylesheets/c/engine/_layout.sass +15 -0
  45. data/app/assets/stylesheets/c/engine/_login.sass +38 -0
  46. data/app/assets/stylesheets/c/engine/_navbar.sass +19 -0
  47. data/app/assets/stylesheets/c/engine/_pagination.sass +16 -0
  48. data/app/assets/stylesheets/c/engine/_settings.sass +5 -0
  49. data/app/assets/stylesheets/c/engine/_sidebar.sass +20 -0
  50. data/app/assets/stylesheets/c/engine/_tables.sass +76 -0
  51. data/app/assets/stylesheets/c/engine/flash_messages.sass +2 -0
  52. data/app/assets/stylesheets/c/print_application.sass +167 -0
  53. data/app/assets/stylesheets/c/vendor/_flex_mixins.scss +394 -0
  54. data/app/assets/stylesheets/c/vendor/_normalize.sass +340 -0
  55. data/app/controllers/c/admin/blogs_controller.rb +57 -0
  56. data/app/controllers/c/admin/devise/passwords_controller.rb +5 -0
  57. data/app/controllers/c/admin/devise/sessions_controller.rb +5 -0
  58. data/app/controllers/c/admin/documents_controller.rb +50 -0
  59. data/app/controllers/c/admin/enquiries_controller.rb +22 -0
  60. data/app/controllers/c/admin/images_controller.rb +21 -0
  61. data/app/controllers/c/admin/locations_controller.rb +63 -0
  62. data/app/controllers/c/admin/menu_items_controller.rb +49 -0
  63. data/app/controllers/c/admin/pages_controller.rb +94 -0
  64. data/app/controllers/c/admin/projects_controller.rb +55 -0
  65. data/app/controllers/c/admin/redirects_controller.rb +55 -0
  66. data/app/controllers/c/admin/roles_controller.rb +49 -0
  67. data/app/controllers/c/admin/slides_controller.rb +50 -0
  68. data/app/controllers/c/admin/slideshows_controller.rb +34 -0
  69. data/app/controllers/c/admin/team_members_controller.rb +61 -0
  70. data/app/controllers/c/admin/testimonials_controller.rb +43 -0
  71. data/app/controllers/c/admin/users_controller.rb +51 -0
  72. data/app/controllers/c/admin_controller.rb +43 -0
  73. data/app/controllers/c/application_controller.rb +15 -0
  74. data/app/controllers/c/errors_controller.rb +12 -0
  75. data/app/controllers/c/front/devise/passwords_controller.rb +6 -0
  76. data/app/controllers/c/front/devise/registrations_controller.rb +32 -0
  77. data/app/controllers/c/front/devise/sessions_controller.rb +27 -0
  78. data/app/controllers/c/front/mailchimp_controller.rb +32 -0
  79. data/app/controllers/c/front_controller.rb +7 -0
  80. data/app/controllers/c/front_end/blogs_controller.rb +21 -0
  81. data/app/controllers/c/front_end/enquiries_controller.rb +32 -0
  82. data/app/controllers/c/front_end/pages_controller.rb +19 -0
  83. data/app/controllers/c/main_application_controller.rb +22 -0
  84. data/app/helpers/c/application_helper.rb +51 -0
  85. data/app/helpers/c/blogs_helper.rb +113 -0
  86. data/app/helpers/c/c_form_builder.rb +43 -0
  87. data/app/helpers/c/link_to_helper.rb +25 -0
  88. data/app/helpers/c/navigation_helper.rb +28 -0
  89. data/app/helpers/c/pages_helper.rb +27 -0
  90. data/app/helpers/c/storefront_helper.rb +63 -0
  91. data/app/mailers/c/application_mailer.rb +7 -0
  92. data/app/mailers/c/enquiries_mailer.rb +10 -0
  93. data/app/models/c/ability.rb +21 -0
  94. data/app/models/c/application_record.rb +6 -0
  95. data/app/models/c/author_record.rb +13 -0
  96. data/app/models/c/blog.rb +43 -0
  97. data/app/models/c/document.rb +17 -0
  98. data/app/models/c/enquiry.rb +95 -0
  99. data/app/models/c/image.rb +11 -0
  100. data/app/models/c/location.rb +18 -0
  101. data/app/models/c/menu_item.rb +35 -0
  102. data/app/models/c/non_delete.rb +10 -0
  103. data/app/models/c/page.rb +48 -0
  104. data/app/models/c/page_info.rb +16 -0
  105. data/app/models/c/permission.rb +9 -0
  106. data/app/models/c/permission_subject.rb +12 -0
  107. data/app/models/c/project.rb +20 -0
  108. data/app/models/c/redirect.rb +33 -0
  109. data/app/models/c/role.rb +18 -0
  110. data/app/models/c/slide.rb +16 -0
  111. data/app/models/c/slideshow.rb +23 -0
  112. data/app/models/c/team_member.rb +33 -0
  113. data/app/models/c/testimonial.rb +42 -0
  114. data/app/models/c/user.rb +42 -0
  115. data/app/models/c/user_role.rb +7 -0
  116. data/app/models/c/weight.rb +10 -0
  117. data/app/models/concerns/c/authorable.rb +18 -0
  118. data/app/models/concerns/c/documentable.rb +18 -0
  119. data/app/models/concerns/c/imageable.rb +49 -0
  120. data/app/models/concerns/c/non_deletable.rb +30 -0
  121. data/app/models/concerns/c/orderable.rb +30 -0
  122. data/app/models/concerns/c/previewable.rb +20 -0
  123. data/app/models/concerns/c/site_page.rb +89 -0
  124. data/app/uploaders/c/file_uploader.rb +9 -0
  125. data/app/uploaders/c/image_uploader.rb +39 -0
  126. data/app/views/c/admin/_background_jobs_dropdown.html.haml +18 -0
  127. data/app/views/c/admin/_bread_crumbs.html.haml +7 -0
  128. data/app/views/c/admin/_ebay_categories.html.haml +20 -0
  129. data/app/views/c/admin/_flash_messages.html.haml +5 -0
  130. data/app/views/c/admin/_header_bar.html.haml +18 -0
  131. data/app/views/c/admin/_index_table.html.haml +113 -0
  132. data/app/views/c/admin/_index_table_data.html.haml +17 -0
  133. data/app/views/c/admin/_navigation_bar.html.haml +1 -0
  134. data/app/views/c/admin/_preview_image.html.haml +2 -0
  135. data/app/views/c/admin/_preview_upload.html.haml +18 -0
  136. data/app/views/c/admin/_seo.html.haml +11 -0
  137. data/app/views/c/admin/_side_menu.html.haml +26 -0
  138. data/app/views/c/admin/_uploaded_images_new.html.haml +13 -0
  139. data/app/views/c/admin/blogs/_form.html.haml +58 -0
  140. data/app/views/c/admin/blogs/index.html.haml +9 -0
  141. data/app/views/c/admin/confirm_destroy.html.haml +6 -0
  142. data/app/views/c/admin/confirm_mass_destroy.html.haml +10 -0
  143. data/app/views/c/admin/documents/_form.html.haml +8 -0
  144. data/app/views/c/admin/documents/index.html.haml +9 -0
  145. data/app/views/c/admin/edit.html.haml +15 -0
  146. data/app/views/c/admin/enquiries/index.html.haml +14 -0
  147. data/app/views/c/admin/locations/_form.html.haml +58 -0
  148. data/app/views/c/admin/locations/index.html.haml +9 -0
  149. data/app/views/c/admin/menu_items/_form.html.haml +44 -0
  150. data/app/views/c/admin/menu_items/_menu_item_list_item.html.haml +10 -0
  151. data/app/views/c/admin/menu_items/index.html.haml +10 -0
  152. data/app/views/c/admin/new.html.haml +8 -0
  153. data/app/views/c/admin/pages/_form.html.haml +93 -0
  154. data/app/views/c/admin/pages/_page_list_item.html.haml +10 -0
  155. data/app/views/c/admin/pages/dashboard.html.erb +0 -0
  156. data/app/views/c/admin/pages/index.html.haml +11 -0
  157. data/app/views/c/admin/projects/_form.html.haml +46 -0
  158. data/app/views/c/admin/projects/index.html.haml +9 -0
  159. data/app/views/c/admin/quick_edit.js.erb +6 -0
  160. data/app/views/c/admin/redirects/_form.html.haml +14 -0
  161. data/app/views/c/admin/redirects/index.html.haml +9 -0
  162. data/app/views/c/admin/reload_images.js.erb +2 -0
  163. data/app/views/c/admin/roles/_form.html.haml +42 -0
  164. data/app/views/c/admin/roles/index.html.haml +17 -0
  165. data/app/views/c/admin/set_preview_image.js.erb +1 -0
  166. data/app/views/c/admin/show.html.haml +1 -0
  167. data/app/views/c/admin/slides/_form.html.haml +19 -0
  168. data/app/views/c/admin/slideshows/_form.html.haml +25 -0
  169. data/app/views/c/admin/slideshows/index.html.haml +8 -0
  170. data/app/views/c/admin/team_members/_form.html.haml +20 -0
  171. data/app/views/c/admin/team_members/index.html.haml +10 -0
  172. data/app/views/c/admin/testimonials/_form.html.haml +13 -0
  173. data/app/views/c/admin/testimonials/index.html.haml +8 -0
  174. data/app/views/c/admin/users/_form.html.haml +17 -0
  175. data/app/views/c/admin/users/index.html.haml +12 -0
  176. data/app/views/c/enquiries_mailer/new_enquiry.html.haml +14 -0
  177. data/app/views/c/enquiries_mailer/new_enquiry.text.haml +9 -0
  178. data/app/views/c/errors/404.html.haml +5 -0
  179. data/app/views/c/errors/500.html.haml +5 -0
  180. data/app/views/c/front/application/_category_item.html.haml +2 -0
  181. data/app/views/c/front/application/_menu_item.html.haml +4 -0
  182. data/app/views/c/front/application/_sales_highlight.html.haml +1 -0
  183. data/app/views/c/front/application/_slide.html.haml +6 -0
  184. data/app/views/c/front/blogs/_archive_filter_month.html.haml +2 -0
  185. data/app/views/c/front/blogs/_archive_filter_year.html.haml +1 -0
  186. data/app/views/c/front/blogs/_menu_item.html.haml +2 -0
  187. data/app/views/c/front_end/enquiries/new.html.haml +23 -0
  188. data/app/views/c/front_end/enquiries/thanks.html.haml +5 -0
  189. data/app/views/c/front_end/pages/_sales_highlight.html.haml +7 -0
  190. data/app/views/c/front_end/pages/about.html.haml +8 -0
  191. data/app/views/c/front_end/pages/home.html.haml +19 -0
  192. data/app/views/c/front_end/pages/search.html.haml +16 -0
  193. data/app/views/c/front_end/pages/show.html.haml +7 -0
  194. data/app/views/c/front_end/pages/sitemap.xml.builder +25 -0
  195. data/app/views/c/mailchimp/_signup_newsletter.html.haml +4 -0
  196. data/app/views/c/main_application/_application_bar.html.haml +22 -0
  197. data/app/views/c/main_application/_breadcrumbs.html.haml +7 -0
  198. data/app/views/c/main_application/_contact_info.html.haml +5 -0
  199. data/app/views/c/main_application/_footer.html.haml +49 -0
  200. data/app/views/c/main_application/_front_head_tags.html.haml +3 -0
  201. data/app/views/c/main_application/_header.html.haml +55 -0
  202. data/app/views/c/main_application/_site_search.html.haml +3 -0
  203. data/app/views/c/main_application/_yield.html.haml +5 -0
  204. data/app/views/devise/confirmations/new.html.erb +16 -0
  205. data/app/views/devise/mailer/confirmation_instructions.html.erb +5 -0
  206. data/app/views/devise/mailer/password_change.html.erb +3 -0
  207. data/app/views/devise/mailer/reset_password_instructions.html.erb +8 -0
  208. data/app/views/devise/mailer/unlock_instructions.html.erb +7 -0
  209. data/app/views/devise/passwords/edit.html.haml +26 -0
  210. data/app/views/devise/passwords/new.html.haml +14 -0
  211. data/app/views/devise/registrations/edit.html.haml +40 -0
  212. data/app/views/devise/registrations/new.html.haml +24 -0
  213. data/app/views/devise/sessions/new.html.haml +20 -0
  214. data/app/views/devise/shared/_links.html.erb +25 -0
  215. data/app/views/devise/unlocks/new.html.erb +16 -0
  216. data/app/views/layouts/c/application.html.haml +18 -0
  217. data/app/views/layouts/c/cms_login_layout.html.haml +18 -0
  218. data/app/views/layouts/c/mailer.html.erb +245 -0
  219. data/app/views/layouts/c/mailer.text.erb +3 -0
  220. data/app/views/layouts/c/main_application.html.haml +13 -0
  221. data/config/environment.rb +0 -0
  222. data/config/initializers/carrierwave.rb +18 -0
  223. data/config/initializers/devise.rb +283 -0
  224. data/config/initializers/rack_profiler.rb +8 -0
  225. data/config/locales/devise.en.yml +62 -0
  226. data/config/locales/en.yml +17 -0
  227. data/config/routes.rb +150 -0
  228. data/db/migrate/20160819000000_migrate_schema.rb +273 -0
  229. data/db/seed_data/countries.txt +227 -0
  230. data/lib/c/engine.rb +38 -0
  231. data/lib/c/version.rb +4 -0
  232. data/lib/cd2_catton_cms.rb +51 -0
  233. data/lib/tasks/c_tasks.rake +28 -0
  234. data/spec/dummy/Gemfile +4 -0
  235. data/spec/dummy/Gemfile.lock +20 -0
  236. data/spec/dummy/Rakefile +6 -0
  237. data/spec/dummy/app/assets/config/manifest.js +5 -0
  238. data/spec/dummy/app/assets/images/placeholder.png +0 -0
  239. data/spec/dummy/app/assets/javascripts/application.js +26 -0
  240. data/spec/dummy/app/assets/javascripts/cable.js +13 -0
  241. data/spec/dummy/app/assets/javascripts/pages.coffee +3 -0
  242. data/spec/dummy/app/assets/stylesheets/application.sass +13 -0
  243. data/spec/dummy/app/assets/stylesheets/c/application.sass +2 -0
  244. data/spec/dummy/app/controllers/application_controller.rb +10 -0
  245. data/spec/dummy/app/controllers/blogs_controller.rb +11 -0
  246. data/spec/dummy/app/controllers/pages_controller.rb +13 -0
  247. data/spec/dummy/app/models/application_record.rb +4 -0
  248. data/spec/dummy/app/models/page.rb +3 -0
  249. data/spec/dummy/bin/bundle +4 -0
  250. data/spec/dummy/bin/rails +5 -0
  251. data/spec/dummy/bin/rake +5 -0
  252. data/spec/dummy/bin/setup +35 -0
  253. data/spec/dummy/bin/update +30 -0
  254. data/spec/dummy/config/application.rb +17 -0
  255. data/spec/dummy/config/boot.rb +6 -0
  256. data/spec/dummy/config/cable.yml +9 -0
  257. data/spec/dummy/config/database.travis.yml +3 -0
  258. data/spec/dummy/config/database.yml +85 -0
  259. data/spec/dummy/config/environment.rb +6 -0
  260. data/spec/dummy/config/environments/development.rb +61 -0
  261. data/spec/dummy/config/environments/production.rb +87 -0
  262. data/spec/dummy/config/environments/test.rb +43 -0
  263. data/spec/dummy/config/initializers/application_controller_renderer.rb +7 -0
  264. data/spec/dummy/config/initializers/assets.rb +21 -0
  265. data/spec/dummy/config/initializers/backtrace_silencers.rb +8 -0
  266. data/spec/dummy/config/initializers/carrierwave.rb +15 -0
  267. data/spec/dummy/config/initializers/commercity.rb +4 -0
  268. data/spec/dummy/config/initializers/cookies_serializer.rb +6 -0
  269. data/spec/dummy/config/initializers/filter_parameter_logging.rb +5 -0
  270. data/spec/dummy/config/initializers/inflections.rb +17 -0
  271. data/spec/dummy/config/initializers/mime_types.rb +5 -0
  272. data/spec/dummy/config/initializers/new_framework_defaults.rb +25 -0
  273. data/spec/dummy/config/initializers/session_store.rb +4 -0
  274. data/spec/dummy/config/initializers/wrap_parameters.rb +15 -0
  275. data/spec/dummy/config/locales/en.yml +23 -0
  276. data/spec/dummy/config/puma.rb +48 -0
  277. data/spec/dummy/config/routes.rb +4 -0
  278. data/spec/dummy/config/secrets.yml +22 -0
  279. data/spec/dummy/config/sidekiq.yml +6 -0
  280. data/spec/dummy/config/spring.rb +7 -0
  281. data/spec/dummy/config.ru +5 -0
  282. data/spec/dummy/db/schema.rb +1110 -0
  283. data/spec/dummy/lib/tasks/reprocess_images.rake +12 -0
  284. data/spec/dummy/lib/tasks/reset_all.rake +44 -0
  285. data/spec/dummy/lib/tasks/seeds/seed_blogs.rake +8 -0
  286. data/spec/dummy/lib/tasks/seeds/seed_pages.rake +24 -0
  287. data/spec/dummy/public/404.html +67 -0
  288. data/spec/dummy/public/422.html +67 -0
  289. data/spec/dummy/public/500.html +66 -0
  290. data/spec/dummy/public/apple-touch-icon-precomposed.png +0 -0
  291. data/spec/dummy/public/apple-touch-icon.png +0 -0
  292. data/spec/dummy/public/favicon.ico +0 -0
  293. data/spec/dummy/seed/highlight1.png +0 -0
  294. data/spec/dummy/seed/highlight2.png +0 -0
  295. data/spec/dummy/seed/images/1/main.jpg +0 -0
  296. data/spec/dummy/seed/images/1/thumb.JPG +0 -0
  297. data/spec/dummy/seed/images/1/thumb2.jpg +0 -0
  298. data/spec/dummy/seed/images/2/main.jpeg +0 -0
  299. data/spec/dummy/seed/images/2/thumb.JPG +0 -0
  300. data/spec/dummy/seed/images/2/thumb2.JPG +0 -0
  301. data/spec/dummy/spec/models/redirect_spec.rb +57 -0
  302. data/spec/dummy/spec/support/factory_girl.rb +8 -0
  303. data/spec/dummy/spec/support/seed/images/product_image.png +0 -0
  304. data/spec/rails_helper.rb +49 -0
  305. data/spec/spec_helper.rb +52 -0
  306. metadata +734 -0
@@ -0,0 +1,340 @@
1
+ /*! normalize.css v3.0.2 | MIT License | git.io/normalize
2
+
3
+ /**
4
+ * 1. Set default font family to sans-serif.
5
+ * 2. Prevent iOS text size adjust after orientation change, without disabling
6
+ * user zoom.
7
+
8
+ html
9
+ font-family: sans-serif
10
+ /* 1
11
+ -ms-text-size-adjust: 100%
12
+ /* 2
13
+ -webkit-text-size-adjust: 100%
14
+ /* 2
15
+
16
+ /**
17
+ * Remove default margin.
18
+
19
+ body
20
+ margin: 0
21
+
22
+ /* HTML5 display definitions
23
+ * ==========================================================================
24
+
25
+ /**
26
+ * Correct `block` display not defined for any HTML5 element in IE 8/9.
27
+ * Correct `block` display not defined for `details` or `summary` in IE 10/11
28
+ * and Firefox.
29
+ * Correct `block` display not defined for `main` in IE 11.
30
+
31
+ article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary
32
+ display: block
33
+
34
+ /**
35
+ * 1. Correct `inline-block` display not defined in IE 8/9.
36
+ * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
37
+
38
+ audio, canvas, progress, video
39
+ display: inline-block
40
+ /* 1
41
+ vertical-align: baseline
42
+ /* 2
43
+
44
+ /**
45
+ * Prevent modern browsers from displaying `audio` without controls.
46
+ * Remove excess height in iOS 5 devices.
47
+
48
+ audio:not([controls])
49
+ display: none
50
+ height: 0
51
+
52
+ /**
53
+ * Address `[hidden]` styling not present in IE 8/9/10.
54
+ * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.
55
+
56
+ [hidden], template
57
+ display: none
58
+
59
+ /* Links
60
+ * ==========================================================================
61
+
62
+ /**
63
+ * Remove the gray background color from active links in IE 10.
64
+
65
+ a
66
+ background-color: transparent
67
+ &:active, &:hover
68
+ outline: 0
69
+
70
+ /**
71
+ * Improve readability when focused and also mouse hovered in all browsers.
72
+
73
+ /* Text-level semantics
74
+ * ==========================================================================
75
+
76
+ /**
77
+ * Address styling not present in IE 8/9/10/11, Safari, and Chrome.
78
+
79
+ abbr[title]
80
+ border-bottom: 1px dotted
81
+
82
+ /**
83
+ * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
84
+
85
+ b, strong
86
+ font-weight: bold
87
+
88
+ /**
89
+ * Address styling not present in Safari and Chrome.
90
+
91
+ dfn
92
+ font-style: italic
93
+
94
+ /**
95
+ * Address variable `h1` font-size and margin within `section` and `article`
96
+ * contexts in Firefox 4+, Safari, and Chrome.
97
+
98
+ h1
99
+ font-size: 2em
100
+ margin: 0.67em 0
101
+
102
+ /**
103
+ * Address styling not present in IE 8/9.
104
+
105
+ mark
106
+ background: #ff0
107
+ color: #000
108
+
109
+ /**
110
+ * Address inconsistent and variable font size in all browsers.
111
+
112
+ small
113
+ font-size: 80%
114
+
115
+ /**
116
+ * Prevent `sub` and `sup` affecting `line-height` in all browsers.
117
+
118
+ sub
119
+ font-size: 75%
120
+ line-height: 0
121
+ position: relative
122
+ vertical-align: baseline
123
+
124
+ sup
125
+ font-size: 75%
126
+ line-height: 0
127
+ position: relative
128
+ vertical-align: baseline
129
+ top: -0.5em
130
+
131
+ sub
132
+ bottom: -0.25em
133
+
134
+ /* Embedded content
135
+ * ==========================================================================
136
+
137
+ /**
138
+ * Remove border when inside `a` element in IE 8/9/10.
139
+
140
+ img
141
+ border: 0
142
+
143
+ /**
144
+ * Correct overflow not hidden in IE 9/10/11.
145
+
146
+ svg:not(:root)
147
+ overflow: hidden
148
+
149
+ /* Grouping content
150
+ * ==========================================================================
151
+
152
+ /**
153
+ * Address margin not present in IE 8/9 and Safari.
154
+
155
+ figure
156
+ margin: 1em 40px
157
+
158
+ /**
159
+ * Address differences between Firefox and other browsers.
160
+
161
+ hr
162
+ -moz-box-sizing: content-box
163
+ box-sizing: content-box
164
+ height: 0
165
+
166
+ /**
167
+ * Contain overflow in all browsers.
168
+
169
+ pre
170
+ overflow: auto
171
+
172
+ /**
173
+ * Address odd `em`-unit font size rendering in all browsers.
174
+
175
+ code, kbd, pre, samp
176
+ font-family: monospace, monospace
177
+ font-size: 1em
178
+
179
+ /* Forms
180
+ * ==========================================================================
181
+
182
+ /**
183
+ * Known limitation: by default, Chrome and Safari on OS X allow very limited
184
+ * styling of `select`, unless a `border` property is set.
185
+
186
+ /**
187
+ * 1. Correct color not being inherited.
188
+ * Known issue: affects color of disabled elements.
189
+ * 2. Correct font properties not being inherited.
190
+ * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
191
+
192
+ button, input, optgroup, select, textarea
193
+ color: inherit
194
+ /* 1
195
+ font: inherit
196
+ /* 2
197
+ margin: 0
198
+ /* 3
199
+
200
+ /**
201
+ * Address `overflow` set to `hidden` in IE 8/9/10/11.
202
+
203
+ button
204
+ overflow: visible
205
+ text-transform: none
206
+
207
+ /**
208
+ * Address inconsistent `text-transform` inheritance for `button` and `select`.
209
+ * All other form control elements do not inherit `text-transform` values.
210
+ * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
211
+ * Correct `select` style inheritance in Firefox.
212
+
213
+ select
214
+ text-transform: none
215
+
216
+ /**
217
+ * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
218
+ * and `video` controls.
219
+ * 2. Correct inability to style clickable `input` types in iOS.
220
+ * 3. Improve usability and consistency of cursor style between image-type
221
+ * `input` and others.
222
+
223
+ button, html input[type="button"]
224
+ -webkit-appearance: button
225
+ /* 2
226
+ cursor: pointer
227
+ /* 3
228
+
229
+ input
230
+ &[type="reset"], &[type="submit"]
231
+ -webkit-appearance: button
232
+ /* 2
233
+ cursor: pointer
234
+ /* 3
235
+
236
+ /**
237
+ * Re-set default cursor for disabled elements.
238
+
239
+ button[disabled], html input[disabled]
240
+ cursor: default
241
+
242
+ /**
243
+ * Remove inner padding and border in Firefox 4+.
244
+
245
+ button::-moz-focus-inner
246
+ border: 0
247
+ padding: 0
248
+
249
+ input
250
+ &::-moz-focus-inner
251
+ border: 0
252
+ padding: 0
253
+ line-height: normal
254
+ &[type="checkbox"], &[type="radio"]
255
+ box-sizing: border-box
256
+ /* 1
257
+ padding: 0
258
+ /* 2
259
+ &[type="number"]
260
+ &::-webkit-inner-spin-button, &::-webkit-outer-spin-button
261
+ height: auto
262
+ &[type="search"]
263
+ -webkit-appearance: textfield
264
+ /* 1
265
+ -moz-box-sizing: content-box
266
+ -webkit-box-sizing: content-box
267
+ /* 2
268
+ box-sizing: content-box
269
+ &::-webkit-search-cancel-button, &::-webkit-search-decoration
270
+ -webkit-appearance: none
271
+
272
+ /**
273
+ * Address Firefox 4+ setting `line-height` on `input` using `!important` in
274
+ * the UA stylesheet.
275
+
276
+ /**
277
+ * It's recommended that you don't attempt to style these elements.
278
+ * Firefox's implementation doesn't respect box-sizing, padding, or width.
279
+ *
280
+ * 1. Address box sizing set to `content-box` in IE 8/9/10.
281
+ * 2. Remove excess padding in IE 8/9/10.
282
+
283
+ /**
284
+ * Fix the cursor style for Chrome's increment/decrement buttons. For certain
285
+ * `font-size` values of the `input`, it causes the cursor style of the
286
+ * decrement button to change from `default` to `text`.
287
+
288
+ /**
289
+ * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
290
+ * 2. Address `box-sizing` set to `border-box` in Safari and Chrome
291
+ * (include `-moz` to future-proof).
292
+
293
+ /**
294
+ * Remove inner padding and search cancel button in Safari and Chrome on OS X.
295
+ * Safari (but not Chrome) clips the cancel button when the search input has
296
+ * padding (and `textfield` appearance).
297
+
298
+ /**
299
+ * Define consistent border, margin, and padding.
300
+
301
+ fieldset
302
+ border: 1px solid #c0c0c0
303
+ margin: 0 2px
304
+ padding: 0.35em 0.625em 0.75em
305
+
306
+ /**
307
+ * 1. Correct `color` not being inherited in IE 8/9/10/11.
308
+ * 2. Remove padding so people aren't caught out if they zero out fieldsets.
309
+
310
+ legend
311
+ border: 0
312
+ /* 1
313
+ padding: 0
314
+ /* 2
315
+
316
+ /**
317
+ * Remove default vertical scrollbar in IE 8/9/10/11.
318
+
319
+ textarea
320
+ overflow: auto
321
+
322
+ /**
323
+ * Don't inherit the `font-weight` (applied by a rule above).
324
+ * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
325
+
326
+ optgroup
327
+ font-weight: bold
328
+
329
+ /* Tables
330
+ * ==========================================================================
331
+
332
+ /**
333
+ * Remove most spacing between table cells.
334
+
335
+ table
336
+ border-collapse: collapse
337
+ border-spacing: 0
338
+
339
+ td, th
340
+ padding: 0
@@ -0,0 +1,57 @@
1
+ # frozen_string_literal: true
2
+ require_dependency 'c/admin_controller'
3
+
4
+ module C
5
+ class Admin::BlogsController < AdminController
6
+ before_action :load_from_url, only: [:edit, :update, :destroy]
7
+ load_and_authorize_resource class: C::Blog
8
+
9
+ def index
10
+ @blogs = filter_and_paginate(@blogs, 'created_at desc')
11
+ end
12
+
13
+ def create
14
+ @blog = C::Blog.new(blog_params)
15
+ if @blog.save
16
+ redirect_to blogs_path
17
+ else
18
+ render :new
19
+ end
20
+ end
21
+
22
+ def update
23
+ if params[:commit] == 'upload'
24
+ @blog.assign_attributes(new_image_params)
25
+ render :edit
26
+ elsif @blog.update(blog_params)
27
+ redirect_to blogs_path
28
+ else
29
+ render :edit
30
+ end
31
+ end
32
+
33
+ def destroy
34
+ @blog.destroy
35
+ respond_to do |format|
36
+ format.js
37
+ format.html { redirect_to pages_path }
38
+ end
39
+ end
40
+
41
+ private
42
+
43
+ def load_from_url
44
+ @blog = C::Blog.get_from_url(params[:id])
45
+ end
46
+
47
+ def new_image_params
48
+ params.require(:blog).permit(new_images: [], images_attributes: [:id, :_destroy, :alt, :caption])
49
+ end
50
+
51
+ def blog_params
52
+ params.require(:blog).permit(
53
+ :name, :body, :published, :url_alias, C::Blog::IMAGEABLE_ATTRIBUTES, C::Blog::PAGE_INFO_ATTRIBUTES, new_images: []
54
+ )
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+ module C
3
+ class Admin::Devise::PasswordsController < Devise::PasswordsController
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+ module C
3
+ class Admin::Devise::SessionsController < Devise::SessionsController
4
+ end
5
+ end
@@ -0,0 +1,50 @@
1
+ # frozen_string_literal: true
2
+ require_dependency 'c/admin_controller'
3
+
4
+ module C
5
+ class Admin::DocumentsController < AdminController
6
+ load_and_authorize_resource class: C::Document
7
+
8
+ def index; end
9
+
10
+ def create
11
+ if @document.save
12
+ redirect_to documents_path, notice: 'Document created'
13
+ else
14
+ render :new
15
+ end
16
+ end
17
+
18
+ def update
19
+ if @document.update(document_params)
20
+ redirect_to documents_path, notice: 'Document updated'
21
+ else
22
+ render :edit
23
+ end
24
+ end
25
+
26
+ def destroy
27
+ @document.delete
28
+ redirect_to documents_path, notice: 'Document deleted'
29
+ end
30
+
31
+ def bulk_upload
32
+ count = 0
33
+
34
+ params[:documents][:attachments].each do |attachment|
35
+ document = C::Document.new(name: attachment[:attachment].original_filename, document: attachment[:attachment])
36
+ count += 1 if document.save
37
+ end
38
+
39
+ redirect_to documents_path, notice: "#{count} document(s) uploaded"
40
+ end
41
+
42
+ # TODO: Add a destroy action
43
+
44
+ private
45
+
46
+ def document_params
47
+ params.require(:document).permit(:document, :name)
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+ require_dependency 'c/admin_controller'
3
+
4
+ module C
5
+ class Admin::EnquiriesController < AdminController
6
+ load_and_authorize_resource class: C::Enquiry
7
+
8
+ def index
9
+ @enquiries = filter_and_paginate(@enquiries, 'created_at desc')
10
+ end
11
+
12
+ def show; end
13
+
14
+ def destroy
15
+ @enquiry.destroy
16
+ respond_to do |format|
17
+ format.js
18
+ format.html { redirect_to enquiries_path }
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+ require_dependency 'c/admin_controller'
3
+
4
+ module C
5
+ class Admin::ImagesController < AdminController
6
+ load_and_authorize_resource class: C::Image
7
+
8
+ def create
9
+ # Take upload from params[:file] and store it somehow...
10
+ # Optionally also accept params[:hint] and consume if needed
11
+ image = C::Image.create!(image: params[:file])
12
+
13
+ render json: {
14
+ image: {
15
+ url: image.image.url
16
+ }
17
+ }, content_type: 'text/html'
18
+ end
19
+
20
+ end
21
+ end
@@ -0,0 +1,63 @@
1
+ # frozen_string_literal: true
2
+ require_dependency 'c/admin_controller'
3
+
4
+ module C
5
+ class Admin::LocationsController < AdminController
6
+ before_action :load_from_url, only: [:edit, :update, :destroy]
7
+ load_and_authorize_resource class: C::Location
8
+
9
+ def index
10
+ @locations = filter_and_paginate(@locations, 'created_at desc')
11
+ end
12
+
13
+ def create
14
+ @location = C::Location.new(location_params)
15
+ if @location.save
16
+ redirect_to locations_path, notice: 'Location created'
17
+ else
18
+ render :new
19
+ end
20
+ end
21
+
22
+ def update
23
+ if params[:commit] == 'upload'
24
+ @location.assign_attributes(new_image_params)
25
+ render :edit
26
+ elsif @location.update(location_params)
27
+ redirect_to locations_path, notice: 'Location updated'
28
+ else
29
+ render :edit
30
+ end
31
+ end
32
+
33
+ def destroy
34
+ @location.destroy
35
+ respond_to do |format|
36
+ format.js
37
+ format.html { redirect_to locations_path }
38
+ end
39
+ end
40
+
41
+ def sort
42
+ @locations = C::Location.all
43
+ @locations.update_order(params[:location])
44
+ respond_to do |format|
45
+ format.js { head :ok, content_type: 'text/html' }
46
+ end
47
+ end
48
+
49
+ private
50
+
51
+ def load_from_url
52
+ @location = C::Location.get_from_url(params[:id])
53
+ end
54
+
55
+ def new_image_params
56
+ params.require(:location).permit(new_images: [], images_attributes: [:id, :_destroy, :alt, :caption])
57
+ end
58
+
59
+ def location_params
60
+ params.require(:location).permit(:name, :body, :published, C::Page::IMAGEABLE_ATTRIBUTES, C::Page::PAGE_INFO_ATTRIBUTES, new_images: [])
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,49 @@
1
+ # frozen_string_literal: true
2
+ require_dependency 'c/admin_controller'
3
+
4
+ module C
5
+ class Admin::MenuItemsController < AdminController
6
+ load_and_authorize_resource class: C::MenuItem
7
+
8
+ def index
9
+ @menu_items = @menu_items.hash_tree
10
+ end
11
+
12
+ def create
13
+ if @menu_item.save
14
+ redirect_to menu_items_path, notice: 'Item Created'
15
+ else
16
+ render :new
17
+ end
18
+ end
19
+
20
+ def update
21
+ if @menu_item.update(menu_item_params)
22
+ redirect_to menu_items_path, notice: 'Item Updated'
23
+ else
24
+ render :edit
25
+ end
26
+ end
27
+
28
+ def update_order
29
+ children = params.require(:order)
30
+ MenuItem.update(children.keys, children.values)
31
+ end
32
+
33
+ def destroy
34
+ @menu_item.destroy
35
+ respond_to do |format|
36
+ format.js
37
+ format.html { redirect_to [:menu_items] }
38
+ end
39
+ end
40
+
41
+ def confirm_destroy; end
42
+
43
+ private
44
+
45
+ def menu_item_params
46
+ params.require(:menu_item).permit(:name, :link, :target, :page_id, :parent_id)
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,94 @@
1
+ # frozen_string_literal: true
2
+ require_dependency 'c/admin_controller'
3
+
4
+ module C
5
+ class Admin::PagesController < AdminController
6
+ before_action :load_from_url, only: [:destroy, :edit, :update]
7
+ load_and_authorize_resource class: C::Page
8
+
9
+ # required for dropzone to work
10
+ skip_before_action :verify_authenticity_token, only: :dropzone_image
11
+
12
+ def index
13
+ # @pages = filter_and_paginate(@pages, 'created_at desc')
14
+ @pages = C::Page.hash_tree
15
+ end
16
+
17
+ def new; end
18
+
19
+ def edit; end
20
+
21
+ def create
22
+ if @page.save
23
+ redirect_to pages_path, notice: 'Page created'
24
+ else
25
+ render :new
26
+ end
27
+ end
28
+
29
+ def update
30
+ if @page.update(page_params)
31
+ redirect_to pages_path, notice: 'Page updated'
32
+ else
33
+ render :edit
34
+ end
35
+ end
36
+
37
+ def dashboard; end
38
+
39
+ def destroy
40
+ @page.destroy unless @page.protected
41
+ respond_to do |format|
42
+ format.js
43
+ format.html { redirect_to pages_path }
44
+ end
45
+ end
46
+
47
+ # methods for dropzone and js image cool stuff
48
+ def dropzone_image
49
+ @page.images.create(image: params[:file])
50
+ end
51
+
52
+ def destroy_image
53
+ @page.images.find_by(id: params[:image_id]).destroy
54
+ respond_to do |format|
55
+ format.js
56
+ end
57
+ end
58
+
59
+ def reload_images
60
+ @obj = @page
61
+ respond_to do |format|
62
+ format.js
63
+ end
64
+ end
65
+
66
+ def set_preview_image
67
+ @obj = @page
68
+ @obj.images.find_each { |image| image.update(preview_image: false) }
69
+ C::Image.find(params[:image_id]).update(preview_image: true)
70
+ respond_to do |format|
71
+ format.js
72
+ end
73
+ end
74
+
75
+ def update_order
76
+ children = params.require(:order)
77
+ Page.update(children.keys, children.values)
78
+ end
79
+
80
+ private
81
+
82
+ def load_from_url
83
+ @page = C::Page.get_from_url(params[:id])
84
+ end
85
+
86
+ def new_image_params
87
+ params.require(:page).permit(new_images: [], images_attributes: [:id, :_destroy, :alt, :caption])
88
+ end
89
+
90
+ def page_params
91
+ params.require(:page).permit(:name, :body, :preview_body, :layout, :published, :url_alias, C::Page::IMAGEABLE_ATTRIBUTES, C::Page::PAGE_INFO_ATTRIBUTES, new_images: [], documents_attributes: [:id, :name, :document, :_destroy], new_documents: [])
92
+ end
93
+ end
94
+ end