wafflemix 0.0.1

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 (276) hide show
  1. data/MIT-LICENSE +20 -0
  2. data/README.rdoc +96 -0
  3. data/Rakefile +40 -0
  4. data/app/assets/javascripts/mercury/page_editor.js.coffee +254 -0
  5. data/app/assets/javascripts/wafflemix/admin/admin.js.coffee +73 -0
  6. data/app/assets/javascripts/wafflemix/admin/admin_js.js +16 -0
  7. data/app/assets/javascripts/wafflemix/admin/bootstrap-datepicker.js +454 -0
  8. data/app/assets/javascripts/wafflemix/admin/jquery.nested_sortable.js +608 -0
  9. data/app/assets/javascripts/wafflemix/application.js +43 -0
  10. data/app/assets/javascripts/wafflemix/assets.js +2 -0
  11. data/app/assets/javascripts/wafflemix/contact_forms.js +2 -0
  12. data/app/assets/javascripts/wafflemix/mercury.js +469 -0
  13. data/app/assets/javascripts/wafflemix/pages.js +2 -0
  14. data/app/assets/javascripts/wafflemix/portfolios.js +2 -0
  15. data/app/assets/javascripts/wafflemix/posts.js +2 -0
  16. data/app/assets/javascripts/wafflemix/roles.js +2 -0
  17. data/app/assets/javascripts/wafflemix/users.js +2 -0
  18. data/app/assets/stylesheets/wafflemix/admin/admin.css.sass +76 -0
  19. data/app/assets/stylesheets/wafflemix/admin/bootstrap-datepicker.css +7 -0
  20. data/app/assets/stylesheets/wafflemix/application.css +15 -0
  21. data/app/assets/stylesheets/wafflemix/assets.css +4 -0
  22. data/app/assets/stylesheets/wafflemix/clearfix.css +20 -0
  23. data/app/assets/stylesheets/wafflemix/contact_forms.css +4 -0
  24. data/app/assets/stylesheets/wafflemix/main.css.sass +11 -0
  25. data/app/assets/stylesheets/wafflemix/mercury.css +23 -0
  26. data/app/assets/stylesheets/wafflemix/pages.css +4 -0
  27. data/app/assets/stylesheets/wafflemix/partials/_base.css.sass +131 -0
  28. data/app/assets/stylesheets/wafflemix/portfolios.css +4 -0
  29. data/app/assets/stylesheets/wafflemix/posts.css +4 -0
  30. data/app/assets/stylesheets/wafflemix/roles.css +4 -0
  31. data/app/assets/stylesheets/wafflemix/users.css +4 -0
  32. data/app/controllers/wafflemix/admin/assets_controller.rb +95 -0
  33. data/app/controllers/wafflemix/admin/categories_controller.rb +77 -0
  34. data/app/controllers/wafflemix/admin/contact_forms_controller.rb +77 -0
  35. data/app/controllers/wafflemix/admin/content_sections_controller.rb +85 -0
  36. data/app/controllers/wafflemix/admin/pages_controller.rb +93 -0
  37. data/app/controllers/wafflemix/admin/portfolios_controller.rb +93 -0
  38. data/app/controllers/wafflemix/admin/posts_controller.rb +82 -0
  39. data/app/controllers/wafflemix/admin/roles_controller.rb +77 -0
  40. data/app/controllers/wafflemix/admin/slides_controller.rb +88 -0
  41. data/app/controllers/wafflemix/admin/users_controller.rb +78 -0
  42. data/app/controllers/wafflemix/application_controller.rb +11 -0
  43. data/app/controllers/wafflemix/assets_controller.rb +71 -0
  44. data/app/controllers/wafflemix/categories_controller.rb +34 -0
  45. data/app/controllers/wafflemix/contact_forms_controller.rb +47 -0
  46. data/app/controllers/wafflemix/pages_controller.rb +56 -0
  47. data/app/controllers/wafflemix/portfolios_controller.rb +35 -0
  48. data/app/controllers/wafflemix/posts_controller.rb +52 -0
  49. data/app/helpers/wafflemix/admin/slides_helper.rb +11 -0
  50. data/app/helpers/wafflemix/application_helper.rb +88 -0
  51. data/app/helpers/wafflemix/assets_helper.rb +4 -0
  52. data/app/helpers/wafflemix/categories_helper.rb +4 -0
  53. data/app/helpers/wafflemix/contact_forms_helper.rb +4 -0
  54. data/app/helpers/wafflemix/content_sections_helper.rb +4 -0
  55. data/app/helpers/wafflemix/pages_helper.rb +23 -0
  56. data/app/helpers/wafflemix/portfolios_helper.rb +11 -0
  57. data/app/helpers/wafflemix/posts_helper.rb +5 -0
  58. data/app/helpers/wafflemix/roles_helper.rb +4 -0
  59. data/app/helpers/wafflemix/users_helper.rb +4 -0
  60. data/app/models/user.rb +10 -0
  61. data/app/models/wafflemix/Categorical.rb +8 -0
  62. data/app/models/wafflemix/asset.rb +22 -0
  63. data/app/models/wafflemix/category.rb +8 -0
  64. data/app/models/wafflemix/contact_form.rb +19 -0
  65. data/app/models/wafflemix/content_section.rb +21 -0
  66. data/app/models/wafflemix/image.rb +8 -0
  67. data/app/models/wafflemix/meta_content.rb +5 -0
  68. data/app/models/wafflemix/page.rb +39 -0
  69. data/app/models/wafflemix/portfolio.rb +16 -0
  70. data/app/models/wafflemix/post.rb +33 -0
  71. data/app/models/wafflemix/role.rb +10 -0
  72. data/app/models/wafflemix/slide.rb +14 -0
  73. data/app/models/wafflemix/user.rb +11 -0
  74. data/app/models/wafflemix/user_role.rb +8 -0
  75. data/app/views/devise/_links.erb +25 -0
  76. data/app/views/devise/confirmations/new.html.erb +12 -0
  77. data/app/views/devise/mailer/confirmation_instructions.html.erb +5 -0
  78. data/app/views/devise/mailer/reset_password_instructions.html.erb +8 -0
  79. data/app/views/devise/mailer/unlock_instructions.html.erb +7 -0
  80. data/app/views/devise/passwords/edit.html.erb +16 -0
  81. data/app/views/devise/passwords/new.html.erb +12 -0
  82. data/app/views/devise/registrations/edit.html.erb +25 -0
  83. data/app/views/devise/registrations/new.html.erb +18 -0
  84. data/app/views/devise/sessions/new.html.erb +17 -0
  85. data/app/views/devise/unlocks/new.html.erb +12 -0
  86. data/app/views/layouts/mercury.html.erb +24 -0
  87. data/app/views/layouts/wafflemix/admin.html.erb +19 -0
  88. data/app/views/layouts/wafflemix/example_layout.html.erb +35 -0
  89. data/app/views/wafflemix/admin/assets/_form.html.erb +22 -0
  90. data/app/views/wafflemix/admin/assets/add_image.js.erb +1 -0
  91. data/app/views/wafflemix/admin/assets/edit.html.erb +6 -0
  92. data/app/views/wafflemix/admin/assets/index.html.erb +41 -0
  93. data/app/views/wafflemix/admin/assets/new.html.erb +5 -0
  94. data/app/views/wafflemix/admin/assets/show.html.erb +20 -0
  95. data/app/views/wafflemix/admin/categories/_form.html.erb +29 -0
  96. data/app/views/wafflemix/admin/categories/edit.html.erb +6 -0
  97. data/app/views/wafflemix/admin/categories/index.html.erb +36 -0
  98. data/app/views/wafflemix/admin/categories/new.html.erb +5 -0
  99. data/app/views/wafflemix/admin/categories/show.html.erb +25 -0
  100. data/app/views/wafflemix/admin/contact_forms/_form.html.erb +15 -0
  101. data/app/views/wafflemix/admin/contact_forms/edit.html.erb +6 -0
  102. data/app/views/wafflemix/admin/contact_forms/index.html.erb +38 -0
  103. data/app/views/wafflemix/admin/contact_forms/new.html.erb +5 -0
  104. data/app/views/wafflemix/admin/contact_forms/show.html.erb +25 -0
  105. data/app/views/wafflemix/admin/content_sections/_form.html.erb +33 -0
  106. data/app/views/wafflemix/admin/content_sections/create.js.erb +3 -0
  107. data/app/views/wafflemix/admin/content_sections/destroy.js.erb +4 -0
  108. data/app/views/wafflemix/admin/content_sections/edit.html.erb +6 -0
  109. data/app/views/wafflemix/admin/content_sections/index.html.erb +29 -0
  110. data/app/views/wafflemix/admin/content_sections/new.html.erb +5 -0
  111. data/app/views/wafflemix/admin/content_sections/show.html.erb +25 -0
  112. data/app/views/wafflemix/admin/pages/_form.html.erb +47 -0
  113. data/app/views/wafflemix/admin/pages/_page.html.erb +15 -0
  114. data/app/views/wafflemix/admin/pages/edit.html.erb +3 -0
  115. data/app/views/wafflemix/admin/pages/index.html.erb +21 -0
  116. data/app/views/wafflemix/admin/pages/new.html.erb +3 -0
  117. data/app/views/wafflemix/admin/pages/show.html.erb +40 -0
  118. data/app/views/wafflemix/admin/portfolios/_form.html.erb +174 -0
  119. data/app/views/wafflemix/admin/portfolios/_portfolio.html.erb +11 -0
  120. data/app/views/wafflemix/admin/portfolios/edit.html.erb +5 -0
  121. data/app/views/wafflemix/admin/portfolios/index.html.erb +21 -0
  122. data/app/views/wafflemix/admin/portfolios/new.html.erb +5 -0
  123. data/app/views/wafflemix/admin/portfolios/show.html.erb +20 -0
  124. data/app/views/wafflemix/admin/posts/_form.html.erb +191 -0
  125. data/app/views/wafflemix/admin/posts/edit.html.erb +5 -0
  126. data/app/views/wafflemix/admin/posts/index.html.erb +38 -0
  127. data/app/views/wafflemix/admin/posts/new.html.erb +3 -0
  128. data/app/views/wafflemix/admin/posts/show.html.erb +20 -0
  129. data/app/views/wafflemix/admin/roles/_form.html.erb +21 -0
  130. data/app/views/wafflemix/admin/roles/edit.html.erb +6 -0
  131. data/app/views/wafflemix/admin/roles/index.html.erb +34 -0
  132. data/app/views/wafflemix/admin/roles/new.html.erb +5 -0
  133. data/app/views/wafflemix/admin/roles/show.html.erb +10 -0
  134. data/app/views/wafflemix/admin/slides/_form.html.erb +170 -0
  135. data/app/views/wafflemix/admin/slides/_slide.html.erb +11 -0
  136. data/app/views/wafflemix/admin/slides/edit.html.erb +5 -0
  137. data/app/views/wafflemix/admin/slides/index.html.erb +21 -0
  138. data/app/views/wafflemix/admin/slides/new.html.erb +5 -0
  139. data/app/views/wafflemix/admin/slides/show.html.erb +10 -0
  140. data/app/views/wafflemix/admin/users/_form.html.erb +29 -0
  141. data/app/views/wafflemix/admin/users/edit.html.erb +6 -0
  142. data/app/views/wafflemix/admin/users/index.html.erb +36 -0
  143. data/app/views/wafflemix/admin/users/new.html.erb +5 -0
  144. data/app/views/wafflemix/admin/users/show.html.erb +14 -0
  145. data/app/views/wafflemix/categories/index.erb +16 -0
  146. data/app/views/wafflemix/categories/show.html.erb +16 -0
  147. data/app/views/wafflemix/contact_forms/_form.html.erb +33 -0
  148. data/app/views/wafflemix/contact_forms/new.html.erb +19 -0
  149. data/app/views/wafflemix/contact_forms/show.html.erb +25 -0
  150. data/app/views/wafflemix/pages/home.html.erb +7 -0
  151. data/app/views/wafflemix/pages/index.html.erb +31 -0
  152. data/app/views/wafflemix/pages/show.html.erb +14 -0
  153. data/app/views/wafflemix/portfolios/index.html.erb +21 -0
  154. data/app/views/wafflemix/portfolios/show.html.erb +36 -0
  155. data/app/views/wafflemix/posts/_sidebar.html.erb +12 -0
  156. data/app/views/wafflemix/posts/index.html.erb +16 -0
  157. data/app/views/wafflemix/posts/show.html.erb +40 -0
  158. data/app/views/wafflemix/posts/tagged.html.erb +16 -0
  159. data/config/initializers/devise.rb +227 -0
  160. data/config/initializers/dragonfly.rb +16 -0
  161. data/config/initializers/formtastic.rb +78 -0
  162. data/config/initializers/spam_filter.rb +4 -0
  163. data/config/locales/devise.en.yml +57 -0
  164. data/config/routes.rb +55 -0
  165. data/db/migrate/20120814113226_create_wafflemix_pages.rb +19 -0
  166. data/db/migrate/20120901141321_create_wafflemix_users.rb +29 -0
  167. data/db/migrate/20120901150334_create_wafflemix_assets.rb +11 -0
  168. data/db/migrate/20120901151421_create_wafflemix_roles.rb +9 -0
  169. data/db/migrate/20120901151704_create_wafflemix_user_roles.rb +13 -0
  170. data/db/migrate/20120915124116_add_ancestry_to_pages.rb +7 -0
  171. data/db/migrate/20120918100336_create_wafflemix_categories.rb +15 -0
  172. data/db/migrate/20120923131130_create_wafflemix_slides.rb +11 -0
  173. data/db/migrate/20120923131307_create_wafflemix_content_sections.rb +12 -0
  174. data/db/migrate/20120923135949_add_position_to_slides.rb +5 -0
  175. data/db/migrate/20121005124419_update_asset_table.rb +10 -0
  176. data/db/migrate/20121113131239_create_wafflemix_posts.rb +15 -0
  177. data/db/migrate/20121113132413_add_translation_table_for_posts.rb +9 -0
  178. data/db/migrate/20121114135432_update_draft_to_boolean_on_posts.rb +11 -0
  179. data/db/migrate/20121120125114_add_page_translations.rb +9 -0
  180. data/db/migrate/20121205221122_acts_as_taggable_on_migration.rb +30 -0
  181. data/db/migrate/20121206132733_re_do_categories.rb +19 -0
  182. data/db/migrate/20121206132923_add_new_categories_table.rb +11 -0
  183. data/db/migrate/20121206133026_add_category_joins_table.rb +14 -0
  184. data/db/migrate/20121211095114_finalize_asset_table.rb +11 -0
  185. data/db/migrate/20121211095847_store_asset_url.rb +5 -0
  186. data/db/migrate/20130202161212_create_wafflemix_images.rb +11 -0
  187. data/db/migrate/20130202182435_add_extra_fields_to_slides.rb +6 -0
  188. data/db/migrate/20130204225256_create_wafflemix_portfolios.rb +11 -0
  189. data/db/migrate/20130204230818_add_ancestry_to_portfolio.rb +6 -0
  190. data/db/migrate/20130216190558_create_wafflemix_meta_contents.rb +13 -0
  191. data/db/migrate/20130219121412_create_wafflemix_contact_forms.rb +12 -0
  192. data/db/migrate/20130219130609_add_spam_to_contact_forms.rb +5 -0
  193. data/lib/tasks/wafflemix_tasks.rake +15 -0
  194. data/lib/templates/erb/scaffold/_form.html.erb +11 -0
  195. data/lib/wafflemix/engine.rb +9 -0
  196. data/lib/wafflemix/version.rb +3 -0
  197. data/lib/wafflemix.rb +17 -0
  198. data/test/dummy/README.rdoc +261 -0
  199. data/test/dummy/Rakefile +7 -0
  200. data/test/dummy/app/assets/javascripts/application.js +15 -0
  201. data/test/dummy/app/assets/stylesheets/application.css +13 -0
  202. data/test/dummy/app/controllers/application_controller.rb +3 -0
  203. data/test/dummy/app/helpers/application_helper.rb +2 -0
  204. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  205. data/test/dummy/config/application.rb +64 -0
  206. data/test/dummy/config/boot.rb +10 -0
  207. data/test/dummy/config/environment.rb +5 -0
  208. data/test/dummy/config/environments/development.rb +39 -0
  209. data/test/dummy/config/environments/production.rb +69 -0
  210. data/test/dummy/config/environments/test.rb +37 -0
  211. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  212. data/test/dummy/config/initializers/inflections.rb +15 -0
  213. data/test/dummy/config/initializers/local_s3.rb +3 -0
  214. data/test/dummy/config/initializers/mime_types.rb +5 -0
  215. data/test/dummy/config/initializers/secret_token.rb +7 -0
  216. data/test/dummy/config/initializers/session_store.rb +8 -0
  217. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  218. data/test/dummy/config/locales/en.yml +5 -0
  219. data/test/dummy/config/routes.rb +5 -0
  220. data/test/dummy/config.ru +4 -0
  221. data/test/dummy/db/schema.rb +87 -0
  222. data/test/dummy/public/404.html +26 -0
  223. data/test/dummy/public/422.html +26 -0
  224. data/test/dummy/public/500.html +25 -0
  225. data/test/dummy/public/favicon.ico +0 -0
  226. data/test/dummy/script/rails +6 -0
  227. data/test/fixtures/wafflemix/assets.yml +11 -0
  228. data/test/fixtures/wafflemix/categories.yml +13 -0
  229. data/test/fixtures/wafflemix/contact_forms.yml +13 -0
  230. data/test/fixtures/wafflemix/content_sections.yml +13 -0
  231. data/test/fixtures/wafflemix/images.yml +11 -0
  232. data/test/fixtures/wafflemix/meta_contents.yml +15 -0
  233. data/test/fixtures/wafflemix/pages.yml +19 -0
  234. data/test/fixtures/wafflemix/portfolios.yml +11 -0
  235. data/test/fixtures/wafflemix/posts.yml +11 -0
  236. data/test/fixtures/wafflemix/roles.yml +7 -0
  237. data/test/fixtures/wafflemix/slides.yml +7 -0
  238. data/test/fixtures/wafflemix/user_roles.yml +9 -0
  239. data/test/fixtures/wafflemix/users.yml +11 -0
  240. data/test/functional/wafflemix/assets_controller_test.rb +51 -0
  241. data/test/functional/wafflemix/categories_controller_test.rb +51 -0
  242. data/test/functional/wafflemix/contact_forms_controller_test.rb +51 -0
  243. data/test/functional/wafflemix/content_sections_controller_test.rb +51 -0
  244. data/test/functional/wafflemix/pages_controller_test.rb +51 -0
  245. data/test/functional/wafflemix/portfolios_controller_test.rb +51 -0
  246. data/test/functional/wafflemix/posts_controller_test.rb +51 -0
  247. data/test/functional/wafflemix/roles_controller_test.rb +51 -0
  248. data/test/functional/wafflemix/slides_controller_test.rb +51 -0
  249. data/test/functional/wafflemix/users_controller_test.rb +51 -0
  250. data/test/integration/navigation_test.rb +10 -0
  251. data/test/test_helper.rb +15 -0
  252. data/test/unit/helpers/wafflemix/assets_helper_test.rb +6 -0
  253. data/test/unit/helpers/wafflemix/categories_helper_test.rb +6 -0
  254. data/test/unit/helpers/wafflemix/contact_forms_helper_test.rb +6 -0
  255. data/test/unit/helpers/wafflemix/content_sections_helper_test.rb +6 -0
  256. data/test/unit/helpers/wafflemix/pages_helper_test.rb +6 -0
  257. data/test/unit/helpers/wafflemix/portfolios_helper_test.rb +6 -0
  258. data/test/unit/helpers/wafflemix/posts_helper_test.rb +6 -0
  259. data/test/unit/helpers/wafflemix/roles_helper_test.rb +6 -0
  260. data/test/unit/helpers/wafflemix/slides_helper_test.rb +6 -0
  261. data/test/unit/helpers/wafflemix/users_helper_test.rb +6 -0
  262. data/test/unit/wafflemix/asset_test.rb +9 -0
  263. data/test/unit/wafflemix/category_test.rb +9 -0
  264. data/test/unit/wafflemix/contact_form_test.rb +9 -0
  265. data/test/unit/wafflemix/content_section_test.rb +9 -0
  266. data/test/unit/wafflemix/image_test.rb +9 -0
  267. data/test/unit/wafflemix/meta_content_test.rb +9 -0
  268. data/test/unit/wafflemix/page_test.rb +9 -0
  269. data/test/unit/wafflemix/portfolio_test.rb +9 -0
  270. data/test/unit/wafflemix/post_test.rb +9 -0
  271. data/test/unit/wafflemix/role_test.rb +9 -0
  272. data/test/unit/wafflemix/slide_test.rb +9 -0
  273. data/test/unit/wafflemix/user_role_test.rb +9 -0
  274. data/test/unit/wafflemix/user_test.rb +9 -0
  275. data/test/wafflemix_test.rb +7 -0
  276. metadata +654 -0
@@ -0,0 +1,23 @@
1
+ /*!
2
+ * Mercury Editor is a Coffeescript and jQuery based WYSIWYG editor. Documentation and other useful information can be
3
+ * found at https://github.com/jejacks0n/mercury
4
+ *
5
+ * Copyright (c) 2011 Jeremy Jackson
6
+ *
7
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
8
+ * documentation files (the "Software"), to deal in the Software without restriction, including without limitation the
9
+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit
10
+ * persons to whom the Software is furnished to do so, subject to the following conditions:
11
+ *
12
+ * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the
13
+ * Software.
14
+ *
15
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
16
+ * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
17
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
18
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
19
+ *
20
+ *= require_self
21
+ *= require mercury/mercury
22
+ */
23
+
@@ -0,0 +1,4 @@
1
+ /*
2
+ Place all the styles related to the matching controller here.
3
+ They will automatically be included in application.css.
4
+ */
@@ -0,0 +1,131 @@
1
+ body
2
+ padding-bottom: 40px
3
+ padding-top: 42px
4
+
5
+ /* branding on right */
6
+ .navbar-fixed-top .brand
7
+ -moz-transition: all 0.2s linear 0s
8
+ color: #000000
9
+ float: right
10
+ font-weight: bold
11
+ margin-left: 20px
12
+ padding-left: 0
13
+ padding-right: 0
14
+ text-shadow: 0 1px 0 rgba(255, 255, 255, 0.1), 0 0 30px rgba(255, 255, 255, 0.125)
15
+
16
+ /* Subnav */
17
+
18
+ .subnav
19
+ width: 100%
20
+ height: 36px
21
+ background-color: #eeeeee
22
+ /* Old browsers */
23
+ background-repeat: repeat-x
24
+ /* Repeat the gradient */
25
+ background-image: -moz-linear-gradient(top, #f5f5f5 0%, #eeeeee 100%)
26
+ /* FF3.6+ */
27
+ background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #f5f5f5), color-stop(100%, #eeeeee))
28
+ /* Chrome,Safari4+ */
29
+ background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #eeeeee 100%)
30
+ /* Chrome 10+,Safari 5.1+ */
31
+ background-image: -ms-linear-gradient(top, #f5f5f5 0%, #eeeeee 100%)
32
+ /* IE10+ */
33
+ background-image: -o-linear-gradient(top, #f5f5f5 0%, #eeeeee 100%)
34
+ /* Opera 11.10+ */
35
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f5f5f5', endColorstr='#eeeeee',GradientType=0 )
36
+ /* IE6-9 */
37
+ background-image: linear-gradient(top, #f5f5f5 0%, #eeeeee 100%)
38
+ /* W3C */
39
+ border: 1px solid #e5e5e5
40
+ -webkit-border-radius: 4px
41
+ -moz-border-radius: 4px
42
+ border-radius: 4px
43
+ .nav
44
+ margin-bottom: 0
45
+ li > a
46
+ margin: 0
47
+ padding-top: 11px
48
+ padding-bottom: 11px
49
+ border-left: 1px solid #f5f5f5
50
+ border-right: 1px solid #e5e5e5
51
+ -webkit-border-radius: 0
52
+ -moz-border-radius: 0
53
+ border-radius: 0
54
+ .active > a
55
+ padding-left: 13px
56
+ color: #777
57
+ background-color: #e9e9e9
58
+ border-right-color: #ddd
59
+ border-left: 0
60
+ -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.05)
61
+ -moz-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.05)
62
+ box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.05)
63
+ &:hover
64
+ padding-left: 13px
65
+ color: #777
66
+ background-color: #e9e9e9
67
+ border-right-color: #ddd
68
+ border-left: 0
69
+ -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.05)
70
+ -moz-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.05)
71
+ box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.05)
72
+ .caret, &:hover .caret
73
+ border-top-color: #777
74
+ li
75
+ &:first-child > a
76
+ border-left: 0
77
+ padding-left: 12px
78
+ -webkit-border-radius: 4px 0 0 4px
79
+ -moz-border-radius: 4px 0 0 4px
80
+ border-radius: 4px 0 0 4px
81
+ &:hover
82
+ border-left: 0
83
+ padding-left: 12px
84
+ -webkit-border-radius: 4px 0 0 4px
85
+ -moz-border-radius: 4px 0 0 4px
86
+ border-radius: 4px 0 0 4px
87
+ &:last-child > a
88
+ border-right: 0
89
+ .dropdown-menu
90
+ -webkit-border-radius: 0 0 4px 4px
91
+ -moz-border-radius: 0 0 4px 4px
92
+ border-radius: 0 0 4px 4px
93
+
94
+
95
+ .subnav-fixed
96
+ position: fixed
97
+ top: 40px
98
+ left: 0
99
+ right: 0
100
+ z-index: 1020
101
+ /* 10 less than .navbar-fixed to prevent any overlap */
102
+ border-color: #d5d5d5
103
+ border-width: 0 0 1px
104
+ /* drop the border on the fixed edges */
105
+ -webkit-border-radius: 0
106
+ -moz-border-radius: 0
107
+ border-radius: 0
108
+ -webkit-box-shadow: inset 0 1px 0 white, 0 1px 5px rgba(0, 0, 0, 0.1)
109
+ -moz-box-shadow: inset 0 1px 0 white, 0 1px 5px rgba(0, 0, 0, 0.1)
110
+ box-shadow: inset 0 1px 0 white, 0 1px 5px rgba(0, 0, 0, 0.1)
111
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false)
112
+ /* IE6-9 */
113
+ .nav
114
+ width: 1170px
115
+ margin: 0 auto
116
+ padding: 0 1px
117
+
118
+ .subnav .nav > li:first-child > a
119
+ -webkit-border-radius: 0
120
+ -moz-border-radius: 0
121
+ border-radius: 0
122
+ &:hover
123
+ -webkit-border-radius: 0
124
+ -moz-border-radius: 0
125
+ border-radius: 0
126
+
127
+ legend + .control-group
128
+ margin-top: 6px
129
+
130
+ legend
131
+ margin: 16px 0 8px
@@ -0,0 +1,4 @@
1
+ /*
2
+ Place all the styles related to the matching controller here.
3
+ They will automatically be included in application.css.
4
+ */
@@ -0,0 +1,4 @@
1
+ /*
2
+ Place all the styles related to the matching controller here.
3
+ They will automatically be included in application.css.
4
+ */
@@ -0,0 +1,4 @@
1
+ /*
2
+ Place all the styles related to the matching controller here.
3
+ They will automatically be included in application.css.
4
+ */
@@ -0,0 +1,4 @@
1
+ /*
2
+ Place all the styles related to the matching controller here.
3
+ They will automatically be included in application.css.
4
+ */
@@ -0,0 +1,95 @@
1
+ require_dependency "wafflemix/application_controller"
2
+
3
+ module Wafflemix
4
+ class Admin::AssetsController < ApplicationController
5
+
6
+ layout 'wafflemix/admin'
7
+
8
+ def index
9
+ @assets = Asset.all
10
+
11
+ respond_to do |format|
12
+ format.html
13
+ format.json { render :json => @assets.collect { |p| p.to_jq_upload }.to_json }
14
+ end
15
+ end
16
+
17
+ def show
18
+ @asset = Asset.find(params[:id])
19
+
20
+ respond_to do |format|
21
+ format.html
22
+ format.json { render json: @asset }
23
+ end
24
+ end
25
+
26
+ def new
27
+ @asset = Asset.new
28
+
29
+ respond_to do |format|
30
+ format.html
31
+ format.json { render json: @asset }
32
+ end
33
+ end
34
+
35
+ def edit
36
+ @asset = Asset.find(params[:id])
37
+ end
38
+
39
+ def create
40
+ @asset = Asset.new(params[:asset])
41
+ if @asset.save
42
+ respond_to do |format|
43
+ format.html {
44
+ render :json => [@asset.to_jq_upload].to_json,
45
+ :content_type => 'text/html',
46
+ :layout => false
47
+ }
48
+ format.json {
49
+ render :json => [@asset.to_jq_upload].to_json
50
+ }
51
+ end
52
+ else
53
+ render :json => [{:error => "custom_failure"}], :status => 304
54
+ end
55
+ end
56
+
57
+ def update
58
+ @asset = Asset.find(params[:id])
59
+
60
+ respond_to do |format|
61
+ if @asset.update_attributes(params[:asset])
62
+ format.html { redirect_to [:admin, @asset], notice: 'Asset was successfully updated.' }
63
+ format.json { head :no_content }
64
+ else
65
+ format.html { render action: "edit" }
66
+ format.json { render json: @asset.errors, status: :unprocessable_entity }
67
+ end
68
+ end
69
+ end
70
+
71
+ def destroy
72
+ @asset = Asset.find(params[:id])
73
+ @asset.destroy
74
+
75
+ respond_to do |format|
76
+ format.html { redirect_to admin_assets_path }
77
+ format.json { head :no_content }
78
+ end
79
+ end
80
+
81
+ def add_image
82
+ slide = params[:resource].constantize.find(params[:resource_id])
83
+ asset = Asset.find(params[:asset_id])
84
+
85
+ respond_to do |format|
86
+ if slide.assets << asset
87
+ format.js
88
+ else
89
+ format.js
90
+ end
91
+ end
92
+ end
93
+
94
+ end
95
+ end
@@ -0,0 +1,77 @@
1
+ require_dependency "wafflemix/application_controller"
2
+
3
+ module Wafflemix
4
+ class Admin::CategoriesController < ApplicationController
5
+
6
+ layout 'wafflemix/admin'
7
+
8
+ def index
9
+ @categories = Category.all
10
+
11
+ respond_to do |format|
12
+ format.html
13
+ format.json { render json: @categories }
14
+ end
15
+ end
16
+
17
+ def show
18
+ @category = Category.find(params[:id])
19
+
20
+ respond_to do |format|
21
+ format.html
22
+ format.json { render json: @category }
23
+ end
24
+ end
25
+
26
+ def new
27
+ @category = Category.new
28
+
29
+ respond_to do |format|
30
+ format.html
31
+ format.json { render json: @category }
32
+ end
33
+ end
34
+
35
+ def edit
36
+ @category = Category.find(params[:id])
37
+ end
38
+
39
+ def create
40
+ @category = Category.new(params[:category])
41
+
42
+ respond_to do |format|
43
+ if @category.save
44
+ format.html { redirect_to admin_categories_path, notice: 'Category was successfully created.' }
45
+ format.json { render json: @category, status: :created, location: @category }
46
+ else
47
+ format.html { render action: "new" }
48
+ format.json { render json: @category.errors, status: :unprocessable_entity }
49
+ end
50
+ end
51
+ end
52
+
53
+ def update
54
+ @category = Category.find(params[:id])
55
+
56
+ respond_to do |format|
57
+ if @category.update_attributes(params[:category])
58
+ format.html { redirect_to admin_categories_path, notice: 'Category was successfully updated.' }
59
+ format.json { head :no_content }
60
+ else
61
+ format.html { render action: "edit" }
62
+ format.json { render json: @category.errors, status: :unprocessable_entity }
63
+ end
64
+ end
65
+ end
66
+
67
+ def destroy
68
+ @category = Category.find(params[:id])
69
+ @category.destroy
70
+
71
+ respond_to do |format|
72
+ format.html { redirect_to admin_categories_path }
73
+ format.json { head :no_content }
74
+ end
75
+ end
76
+ end
77
+ end
@@ -0,0 +1,77 @@
1
+ require_dependency "wafflemix/application_controller"
2
+
3
+ module Wafflemix
4
+ class Admin::ContactFormsController < ApplicationController
5
+
6
+ layout 'wafflemix/admin'
7
+
8
+ def index
9
+ @contact_forms = ContactForm.all
10
+
11
+ respond_to do |format|
12
+ format.html
13
+ format.json { render json: @contact_forms }
14
+ end
15
+ end
16
+
17
+ def show
18
+ @contact_form = ContactForm.find(params[:id])
19
+
20
+ respond_to do |format|
21
+ format.html
22
+ format.json { render json: @contact_form }
23
+ end
24
+ end
25
+
26
+ def new
27
+ @contact_form = ContactForm.new
28
+
29
+ respond_to do |format|
30
+ format.html
31
+ format.json { render json: @contact_form }
32
+ end
33
+ end
34
+
35
+ def edit
36
+ @contact_form = ContactForm.find(params[:id])
37
+ end
38
+
39
+ def create
40
+ @contact_form = ContactForm.new(params[:contact_form])
41
+
42
+ respond_to do |format|
43
+ if @contact_form.save
44
+ format.html { redirect_to [:admin, @contact_form], notice: 'Contact form was successfully created.' }
45
+ format.json { render json: @contact_form, status: :created, location: @contact_form }
46
+ else
47
+ format.html { render action: "new" }
48
+ format.json { render json: @contact_form.errors, status: :unprocessable_entity }
49
+ end
50
+ end
51
+ end
52
+
53
+ def update
54
+ @contact_form = ContactForm.find(params[:id])
55
+
56
+ respond_to do |format|
57
+ if @contact_form.update_attributes(params[:contact_form])
58
+ format.html { redirect_to [:admin, @contact_form], notice: 'Contact form was successfully updated.' }
59
+ format.json { head :no_content }
60
+ else
61
+ format.html { render action: "edit" }
62
+ format.json { render json: @contact_form.errors, status: :unprocessable_entity }
63
+ end
64
+ end
65
+ end
66
+
67
+ def destroy
68
+ @contact_form = ContactForm.find(params[:id])
69
+ @contact_form.destroy
70
+
71
+ respond_to do |format|
72
+ format.html { redirect_to admin_contact_forms_url }
73
+ format.json { head :no_content }
74
+ end
75
+ end
76
+ end
77
+ end
@@ -0,0 +1,85 @@
1
+ require_dependency "wafflemix/application_controller"
2
+
3
+ module Wafflemix
4
+ class Admin::ContentSectionsController < ApplicationController
5
+ def index
6
+ @content_sections = ContentSection.all
7
+
8
+ respond_to do |format|
9
+ format.html
10
+ format.json { render json: @content_sections }
11
+ end
12
+ end
13
+
14
+ def show
15
+ @content_section = ContentSection.find(params[:id])
16
+
17
+ respond_to do |format|
18
+ format.html
19
+ format.json { render json: @content_section }
20
+ end
21
+ end
22
+
23
+ def new
24
+ @content_section = ContentSection.new
25
+
26
+ respond_to do |format|
27
+ format.html
28
+ format.json { render json: @content_section }
29
+ end
30
+ end
31
+
32
+ def edit
33
+ @content_section = ContentSection.find(params[:id])
34
+ end
35
+
36
+ def create
37
+ if params[:resource]
38
+ @content_section = ContentSection.new
39
+ @content_section.contentable = params[:resource].constantize.find(params[:resource_id])
40
+ @content_section.name = params[:name]
41
+ @content_section.content = "Insert your page content here."
42
+ else
43
+ @content_section = ContentSection.new(params[:content_section])
44
+ end
45
+
46
+ respond_to do |format|
47
+ if @content_section.save
48
+ format.html { redirect_to @content_section, notice: 'Content section was successfully created.' }
49
+ format.json { render json: @content_section, status: :created, location: @content_section }
50
+ format.js
51
+ else
52
+ format.html { render action: "new" }
53
+ format.json { render json: @content_section.errors, status: :unprocessable_entity }
54
+ format.js
55
+ end
56
+ end
57
+ end
58
+
59
+ def update
60
+ @content_section = ContentSection.find(params[:id])
61
+
62
+ respond_to do |format|
63
+ if @content_section.update_attributes(params[:content_section])
64
+ format.html { redirect_to @content_section, notice: 'Content section was successfully updated.' }
65
+ format.json { head :no_content }
66
+ else
67
+ format.html { render action: "edit" }
68
+ format.json { render json: @content_section.errors, status: :unprocessable_entity }
69
+ end
70
+ end
71
+ end
72
+
73
+ def destroy
74
+ @content_section = ContentSection.find(params[:id])
75
+ @section_name = @content_section.name
76
+ @content_section.destroy
77
+
78
+ respond_to do |format|
79
+ format.html { redirect_to content_sections_url }
80
+ format.json { head :no_content }
81
+ format.js
82
+ end
83
+ end
84
+ end
85
+ end
@@ -0,0 +1,93 @@
1
+ require_dependency "wafflemix/application_controller"
2
+
3
+ module Wafflemix
4
+ class Admin::PagesController < ApplicationController
5
+
6
+ layout 'wafflemix/admin'
7
+
8
+ def index
9
+ @pages = Page.arrange(:order => :position)
10
+
11
+ respond_to do |format|
12
+ format.html
13
+ format.json { render json: @pages }
14
+ end
15
+ end
16
+
17
+ def show
18
+ @page = Page.find_by_link_url(params[:id])
19
+
20
+ respond_to do |format|
21
+ format.html
22
+ format.json { render json: @page }
23
+ end
24
+ end
25
+
26
+ def new
27
+ @page = Page.new
28
+ @page.build_meta_content
29
+
30
+ respond_to do |format|
31
+ format.html
32
+ format.json { render json: @page }
33
+ end
34
+ end
35
+
36
+ def edit
37
+ @page = Page.find_by_link_url(params[:id])
38
+
39
+ unless @page.meta_content
40
+ @page.build_meta_content
41
+ end
42
+ end
43
+
44
+ def create
45
+ @page = Page.new(params[:page])
46
+
47
+ respond_to do |format|
48
+ if @page.save
49
+ format.html { redirect_to admin_pages_path, notice: 'Page was successfully created.' }
50
+ format.json { render json: @page, status: :created, location: @page }
51
+ else
52
+ format.html { render action: "new" }
53
+ format.json { render json: @page.errors, status: :unprocessable_entity }
54
+ end
55
+ end
56
+ end
57
+
58
+ def update
59
+ @page = Page.find_by_link_url(params[:id])
60
+
61
+ respond_to do |format|
62
+ if @page.update_attributes(params[:page])
63
+ format.html { redirect_to admin_pages_path, notice: 'Page was successfully updated.' }
64
+ format.json { head :no_content }
65
+ else
66
+ format.html { render action: "edit" }
67
+ format.json { render json: @page.errors, status: :unprocessable_entity }
68
+ end
69
+ end
70
+ end
71
+
72
+ def destroy
73
+ @page = Page.find_by_link_url(params[:id])
74
+ @page.destroy
75
+
76
+ respond_to do |format|
77
+ format.html { redirect_to admin_pages_path }
78
+ format.json { head :no_content }
79
+ end
80
+ end
81
+
82
+ def sort
83
+ params[:page].sort { |a, b| a <=> b }.each_with_index do |id, index|
84
+ value = id[1][:id]
85
+ position = id[1][:position]
86
+ position = position.to_i + 1
87
+ id[1][:parent_id] == "null" ? parent = nil : parent = id[1][:parent_id]
88
+ Page.update(value, :position => position, :parent_id => parent)
89
+ end
90
+ render :nothing => true
91
+ end
92
+ end
93
+ end
@@ -0,0 +1,93 @@
1
+ require_dependency "wafflemix/application_controller"
2
+
3
+ module Wafflemix
4
+ class Admin::PortfoliosController < ApplicationController
5
+
6
+ layout 'wafflemix/admin'
7
+
8
+ def index
9
+ @portfolios = Portfolio.all
10
+
11
+ respond_to do |format|
12
+ format.html
13
+ format.json { render json: @portfolios }
14
+ end
15
+ end
16
+
17
+ def show
18
+ @portfolio = Portfolio.find(params[:id])
19
+
20
+ respond_to do |format|
21
+ format.html
22
+ format.json { render json: @portfolio }
23
+ end
24
+ end
25
+
26
+ def new
27
+ @portfolio = Portfolio.new
28
+ @portfolio.build_meta_content
29
+
30
+ respond_to do |format|
31
+ format.html
32
+ format.json { render json: @portfolio }
33
+ end
34
+ end
35
+
36
+ def edit
37
+ @portfolio = Portfolio.find(params[:id])
38
+
39
+ unless @portfolio.meta_content
40
+ @portfolio.build_meta_content
41
+ end
42
+ end
43
+
44
+ def create
45
+ @portfolio = Portfolio.new(params[:portfolio])
46
+
47
+ respond_to do |format|
48
+ if @portfolio.save
49
+ format.html { redirect_to @portfolio, notice: 'Portfolio was successfully created.' }
50
+ format.json { render json: @portfolio, status: :created, location: @portfolio }
51
+ else
52
+ format.html { render action: "new" }
53
+ format.json { render json: @portfolio.errors, status: :unprocessable_entity }
54
+ end
55
+ end
56
+ end
57
+
58
+ def update
59
+ @portfolio = Portfolio.find(params[:id])
60
+
61
+ respond_to do |format|
62
+ if @portfolio.update_attributes(params[:portfolio])
63
+ format.html { redirect_to @portfolio, notice: 'Portfolio was successfully updated.' }
64
+ format.json { head :no_content }
65
+ else
66
+ format.html { render action: "edit" }
67
+ format.json { render json: @portfolio.errors, status: :unprocessable_entity }
68
+ end
69
+ end
70
+ end
71
+
72
+ def destroy
73
+ @portfolio = Portfolio.find(params[:id])
74
+ @portfolio.destroy
75
+
76
+ respond_to do |format|
77
+ format.html { redirect_to portfolios_url }
78
+ format.json { head :no_content }
79
+ end
80
+ end
81
+
82
+ def sort
83
+ params[:portfolio].sort { |a, b| a <=> b }.each_with_index do |id, index|
84
+ value = id[1][:id]
85
+ position = id[1][:position]
86
+ position = position.to_i + 1
87
+ id[1][:parent_id] == "null" ? parent = nil : parent = id[1][:parent_id]
88
+ Portfolio.update(value, :position => position, :parent_id => parent)
89
+ end
90
+ render :nothing => true
91
+ end
92
+ end
93
+ end