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,82 @@
1
+ require_dependency "wafflemix/application_controller"
2
+
3
+ module Wafflemix
4
+ class Admin::PostsController < ApplicationController
5
+
6
+ layout 'wafflemix/admin'
7
+
8
+ def index
9
+ @posts = Post.all
10
+
11
+ respond_to do |format|
12
+ format.html
13
+ format.json { render json: @posts }
14
+ end
15
+ end
16
+
17
+ def show
18
+ @post = Post.find(params[:id])
19
+
20
+ respond_to do |format|
21
+ format.html
22
+ format.json { render json: @post }
23
+ end
24
+ end
25
+
26
+ def new
27
+ @post = Post.new
28
+ @post.build_meta_content
29
+
30
+ respond_to do |format|
31
+ format.html
32
+ format.json { render json: @post }
33
+ end
34
+ end
35
+
36
+ def edit
37
+ @post = Post.find(params[:id])
38
+
39
+ unless @post.meta_content
40
+ @post.build_meta_content
41
+ end
42
+ end
43
+
44
+ def create
45
+ @post = Post.new(params[:post])
46
+
47
+ respond_to do |format|
48
+ if @post.save
49
+ format.html { redirect_to @post, notice: 'Post was successfully created.' }
50
+ format.json { render json: @post, status: :created, location: @post }
51
+ else
52
+ format.html { render action: "new" }
53
+ format.json { render json: @post.errors, status: :unprocessable_entity }
54
+ end
55
+ end
56
+ end
57
+
58
+ def update
59
+ @post = Post.find(params[:id])
60
+
61
+ respond_to do |format|
62
+ if @post.update_attributes(params[:post])
63
+ format.html { redirect_to @post, notice: 'Post was successfully updated.' }
64
+ format.json { head :no_content }
65
+ else
66
+ format.html { render action: "edit" }
67
+ format.json { render json: @post.errors, status: :unprocessable_entity }
68
+ end
69
+ end
70
+ end
71
+
72
+ def destroy
73
+ @post = Post.find(params[:id])
74
+ @post.destroy
75
+
76
+ respond_to do |format|
77
+ format.html { redirect_to posts_url }
78
+ format.json { head :no_content }
79
+ end
80
+ end
81
+ end
82
+ end
@@ -0,0 +1,77 @@
1
+ require_dependency "wafflemix/application_controller"
2
+
3
+ module Wafflemix
4
+ class Admin::RolesController < ApplicationController
5
+
6
+ layout 'wafflemix/admin'
7
+
8
+ def index
9
+ @roles = Role.all
10
+
11
+ respond_to do |format|
12
+ format.html
13
+ format.json { render json: @roles }
14
+ end
15
+ end
16
+
17
+ def show
18
+ @role = Role.find(params[:id])
19
+
20
+ respond_to do |format|
21
+ format.html
22
+ format.json { render json: @role }
23
+ end
24
+ end
25
+
26
+ def new
27
+ @role = Role.new
28
+
29
+ respond_to do |format|
30
+ format.html
31
+ format.json { render json: @role }
32
+ end
33
+ end
34
+
35
+ def edit
36
+ @role = Role.find(params[:id])
37
+ end
38
+
39
+ def create
40
+ @role = Role.new(params[:role])
41
+
42
+ respond_to do |format|
43
+ if @role.save
44
+ format.html { redirect_to [:admin, @role], notice: 'Role was successfully created.' }
45
+ format.json { render json: @role, status: :created, location: @role }
46
+ else
47
+ format.html { render action: "new" }
48
+ format.json { render json: @role.errors, status: :unprocessable_entity }
49
+ end
50
+ end
51
+ end
52
+
53
+ def update
54
+ @role = Role.find(params[:id])
55
+
56
+ respond_to do |format|
57
+ if @role.update_attributes(params[:role])
58
+ format.html { redirect_to [:admin, @role], notice: 'Role was successfully updated.' }
59
+ format.json { head :no_content }
60
+ else
61
+ format.html { render action: "edit" }
62
+ format.json { render json: @role.errors, status: :unprocessable_entity }
63
+ end
64
+ end
65
+ end
66
+
67
+ def destroy
68
+ @role = Role.find(params[:id])
69
+ @role.destroy
70
+
71
+ respond_to do |format|
72
+ format.html { redirect_to admin_roles_path }
73
+ format.json { head :no_content }
74
+ end
75
+ end
76
+ end
77
+ end
@@ -0,0 +1,88 @@
1
+ require_dependency "wafflemix/application_controller"
2
+
3
+ module Wafflemix
4
+ class Admin::SlidesController < ApplicationController
5
+
6
+ layout 'wafflemix/admin'
7
+
8
+ def index
9
+ @slides = Slide.all
10
+
11
+ respond_to do |format|
12
+ format.html
13
+ format.json { render json: @slides }
14
+ end
15
+ end
16
+
17
+ def show
18
+ @slide = Slide.find(params[:id])
19
+
20
+ respond_to do |format|
21
+ format.html
22
+ format.json { render json: @slide }
23
+ end
24
+ end
25
+
26
+ def new
27
+ @slide = Slide.new
28
+
29
+ respond_to do |format|
30
+ format.html
31
+ format.json { render json: @slide }
32
+ end
33
+ end
34
+
35
+ def edit
36
+ @slide = Slide.find(params[:id])
37
+ end
38
+
39
+ def create
40
+ @slide = Slide.new(params[:slide])
41
+
42
+ respond_to do |format|
43
+ if @slide.save
44
+ format.html { redirect_to admin_slides_path, notice: 'Slide was successfully created.' }
45
+ format.json { render json: @slide, status: :created, location: @slide }
46
+ else
47
+ format.html { render action: "new" }
48
+ format.json { render json: @slide.errors, status: :unprocessable_entity }
49
+ end
50
+ end
51
+ end
52
+
53
+ def update
54
+ @slide = Slide.find(params[:id])
55
+
56
+ respond_to do |format|
57
+ if @slide.update_attributes(params[:slide])
58
+ format.html { redirect_to admin_slides_path, notice: 'Slide was successfully updated.' }
59
+ format.json { head :no_content }
60
+ else
61
+ format.html { render action: "edit" }
62
+ format.json { render json: @slide.errors, status: :unprocessable_entity }
63
+ end
64
+ end
65
+ end
66
+
67
+ def destroy
68
+ @slide = Slide.find(params[:id])
69
+ @slide.destroy
70
+
71
+ respond_to do |format|
72
+ format.html { redirect_to admin_slides_path }
73
+ format.json { head :no_content }
74
+ end
75
+ end
76
+
77
+ def sort
78
+ params[:slide].sort { |a, b| a <=> b }.each_with_index do |id, index|
79
+ value = id[1][:id]
80
+ position = id[1][:position]
81
+ position = position.to_i + 1
82
+ id[1][:parent_id] == "null" ? parent = nil : parent = id[1][:parent_id]
83
+ Slide.update(value, :position => position, :parent_id => parent)
84
+ end
85
+ render :nothing => true
86
+ end
87
+ end
88
+ end
@@ -0,0 +1,78 @@
1
+ require_dependency "wafflemix/application_controller"
2
+
3
+ module Wafflemix
4
+ class Admin::UsersController < ApplicationController
5
+
6
+ layout 'wafflemix/admin'
7
+
8
+ def index
9
+ @users = User.all
10
+
11
+ respond_to do |format|
12
+ format.html
13
+ format.json { render json: @users }
14
+ end
15
+ end
16
+
17
+ def show
18
+ @user = User.find(params[:id])
19
+
20
+ respond_to do |format|
21
+ format.html
22
+ format.json { render json: @user }
23
+ end
24
+ end
25
+
26
+ def new
27
+ @user = User.new
28
+
29
+ respond_to do |format|
30
+ format.html
31
+ format.json { render json: @user }
32
+ end
33
+ end
34
+
35
+ def edit
36
+ @user = User.find(params[:id])
37
+ end
38
+
39
+ def create
40
+ @user = User.new(params[:user])
41
+
42
+ respond_to do |format|
43
+ if @user.save
44
+ format.html { redirect_to [:admin, @user], notice: 'User was successfully created.' }
45
+ format.json { render json: @user, status: :created, location: @user }
46
+ else
47
+ format.html { render action: "new" }
48
+ format.json { render json: @user.errors, status: :unprocessable_entity }
49
+ end
50
+ end
51
+ end
52
+
53
+ def update
54
+ @user = User.find(params[:id])
55
+
56
+ respond_to do |format|
57
+ if @user.update_attributes(params[:user])
58
+ format.html { redirect_to [:admin, @user], notice: 'User was successfully updated.' }
59
+ format.json { head :no_content }
60
+ else
61
+ format.html { render action: "edit" }
62
+ format.json { render json: @user.errors, status: :unprocessable_entity }
63
+ end
64
+ end
65
+ end
66
+
67
+ def destroy
68
+ @user = User.find(params[:id])
69
+ @user.destroy
70
+
71
+ respond_to do |format|
72
+ format.html { redirect_to admin_users_path }
73
+ format.json { head :no_content }
74
+ end
75
+ end
76
+
77
+ end
78
+ end
@@ -0,0 +1,11 @@
1
+ module Wafflemix
2
+ class Wafflemix::ApplicationController < ApplicationController
3
+
4
+ before_filter :menu_items
5
+
6
+ def menu_items
7
+ @menu_items = Page.active.arrange(:order => :position)
8
+ end
9
+
10
+ end
11
+ end
@@ -0,0 +1,71 @@
1
+ require_dependency "wafflemix/application_controller"
2
+
3
+ module Wafflemix
4
+ class AssetsController < ApplicationController
5
+ respond_to :json
6
+
7
+ def index
8
+ @assets = Asset.all
9
+
10
+ respond_to do |format|
11
+ format.html
12
+ format.json { render :json => @assets.collect { |p| p.to_jq_upload }.to_json }
13
+ end
14
+ end
15
+
16
+ def show
17
+ @asset = Asset.find(params[:id])
18
+
19
+ respond_to do |format|
20
+ format.html
21
+ format.json { render json: @asset }
22
+ end
23
+ end
24
+
25
+ def new
26
+ @asset = Asset.new
27
+
28
+ respond_to do |format|
29
+ format.html
30
+ format.json { render json: @asset }
31
+ end
32
+ end
33
+
34
+ def edit
35
+ @asset = Asset.find(params[:id])
36
+ end
37
+
38
+ def create
39
+ @asset = Asset.new(params[:asset])
40
+ if @asset.save
41
+ render :json => {image: {url: "#{@asset.asset.url}"}}
42
+ else
43
+ render :json => [{:error => "custom_failure"}], :status => 304
44
+ end
45
+ end
46
+
47
+ def update
48
+ @asset = Asset.find(params[:id])
49
+
50
+ respond_to do |format|
51
+ if @asset.update_attributes(params[:asset])
52
+ format.html { redirect_to [:admin, @asset], notice: 'Asset was successfully updated.' }
53
+ format.json { head :no_content }
54
+ else
55
+ format.html { render action: "edit" }
56
+ format.json { render json: @asset.errors, status: :unprocessable_entity }
57
+ end
58
+ end
59
+ end
60
+
61
+ def destroy
62
+ @asset = Asset.find(params[:id])
63
+ @asset.destroy
64
+
65
+ respond_to do |format|
66
+ format.html { redirect_to admin_assets_path }
67
+ format.json { head :no_content }
68
+ end
69
+ end
70
+ end
71
+ end
@@ -0,0 +1,34 @@
1
+ require_dependency "wafflemix/application_controller"
2
+
3
+ module Wafflemix
4
+ class CategoriesController < ApplicationController
5
+ before_filter :find_page
6
+
7
+ def index
8
+ @categories = Category.all
9
+ @tags = Post.tag_counts_on(:tags)
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
+ @posts = @category.posts.published
20
+ @tags = Post.tag_counts_on(:tags)
21
+
22
+ respond_to do |format|
23
+ format.html
24
+ format.json { render json: @category }
25
+ end
26
+ end
27
+
28
+ private
29
+ def find_page
30
+ @page = Page.find_by_title("Blog")
31
+ end
32
+
33
+ end
34
+ end
@@ -0,0 +1,47 @@
1
+ require_dependency "wafflemix/application_controller"
2
+
3
+ module Wafflemix
4
+ class ContactFormsController < ApplicationController
5
+
6
+ before_filter :find_page
7
+
8
+ def show
9
+ @contact_form = ContactForm.find(params[:id])
10
+
11
+ respond_to do |format|
12
+ format.html
13
+ format.json { render json: @contact_form }
14
+ end
15
+ end
16
+
17
+ def new
18
+ @contact_form = ContactForm.new
19
+
20
+ respond_to do |format|
21
+ format.html
22
+ format.json { render json: @contact_form }
23
+ end
24
+ end
25
+
26
+ def create
27
+ @contact_form = ContactForm.new(params[:contact_form])
28
+
29
+ respond_to do |format|
30
+ if @contact_form.save
31
+ format.html { redirect_to @contact_form, notice: 'Contact form was successfully created.' }
32
+ format.json { render json: @contact_form, status: :created, location: @contact_form }
33
+ else
34
+ format.html { render action: "new" }
35
+ format.json { render json: @contact_form.errors, status: :unprocessable_entity }
36
+ end
37
+ end
38
+ end
39
+
40
+ private
41
+
42
+ def find_page
43
+ @page = Page.find_by_link_url('contact-us')
44
+ end
45
+
46
+ end
47
+ end
@@ -0,0 +1,56 @@
1
+ require_dependency "wafflemix/application_controller"
2
+
3
+ module Wafflemix
4
+ class PagesController < ApplicationController
5
+
6
+ def index
7
+ @pages = Page.active.arrange(:order => :position)
8
+
9
+ respond_to do |format|
10
+ format.html
11
+ end
12
+ end
13
+
14
+ def show
15
+ if params[:id]
16
+ @page = Page.find(params[:id])
17
+ else
18
+ @page = Page.find_by_link_url(params[:path].to_s.split('/').last)#(params[:path] ? params[:path].to_s.split('/').last : params[:id])
19
+ end
20
+
21
+ respond_to do |format|
22
+ format.html
23
+ end
24
+ end
25
+
26
+ def home
27
+ @page = Page.find_by_link_url('home')
28
+
29
+ respond_to do |format|
30
+ format.html
31
+ end
32
+ end
33
+
34
+ def mercury_update
35
+ if params[:id]
36
+ page = Page.find(params[:id])
37
+ else
38
+ page = Page.find_by_link_url(params[:path].to_s.split('/').last)#(params[:path] ? params[:path].to_s.split('/').last : params[:id])
39
+ end
40
+
41
+ page.title = params[:content][:page_title][:value] if params[:content][:page_title]
42
+
43
+ params[:content].each do |key, value|
44
+ if key =~ /content_section/
45
+ section = key.gsub /(content_section_|_)/, 'content_section_' => '', '_' => ''
46
+ content_to_update = page.content_parts.find_by_name(section)
47
+ content_to_update.content = value[:value]
48
+ content_to_update.save
49
+ end
50
+ end
51
+ page.save!
52
+ render text: ""
53
+ end
54
+
55
+ end
56
+ end
@@ -0,0 +1,35 @@
1
+ require_dependency "wafflemix/application_controller"
2
+
3
+ module Wafflemix
4
+ class PortfoliosController < ApplicationController
5
+
6
+ def index
7
+ @portfolios = Portfolio.all
8
+ @page = Page.find_by_link_url('portfolios')
9
+
10
+ respond_to do |format|
11
+ format.html
12
+ format.json { render json: @portfolios }
13
+ end
14
+ end
15
+
16
+ def show
17
+ @portfolio = Portfolio.find(params[:id])
18
+ @page = Page.find_by_link_url('portfolios')
19
+
20
+ respond_to do |format|
21
+ format.html
22
+ format.json { render json: @portfolio }
23
+ end
24
+ end
25
+
26
+ def mercury_update
27
+ portfolio = Portfolio.find(params[:id])
28
+ portfolio.title = params[:content][:portfolio_title][:value]
29
+ portfolio.intro = params[:content][:portfolio_intro][:value]
30
+ portfolio.content = params[:content][:portfolio_content][:value]
31
+ portfolio.save!
32
+ render text: ""
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,52 @@
1
+ require_dependency "wafflemix/application_controller"
2
+
3
+ module Wafflemix
4
+ class PostsController < ApplicationController
5
+ before_filter :find_page
6
+
7
+ def index
8
+ @posts = Post.published
9
+ @tags = Post.tag_counts_on(:tags)
10
+
11
+ respond_to do |format|
12
+ format.html
13
+ format.json { render json: @posts }
14
+ end
15
+ end
16
+
17
+ def show
18
+ @post = Post.find(params[:id])
19
+ @tags = Post.tag_counts_on(:tags)
20
+
21
+ respond_to do |format|
22
+ format.html
23
+ format.json { render json: @post }
24
+ end
25
+ end
26
+
27
+ def mercury_update
28
+ post = Post.find(params[:id])
29
+ post.title = params[:content][:post_title][:value]
30
+ post.body = params[:content][:post_body][:value]
31
+ post.excerpt = params[:content][:post_excerpt][:value]
32
+ post.save!
33
+ render text: ""
34
+ end
35
+
36
+ def tagged
37
+ @posts = Post.published.tagged_with(params[:id])
38
+ @tags = @posts.tag_counts_on(:tags)
39
+
40
+ respond_to do |format|
41
+ format.html
42
+ format.json { render json: @posts }
43
+ end
44
+ end
45
+
46
+ private
47
+ def find_page
48
+ @page = Page.find_by_title("Blog")
49
+ end
50
+
51
+ end
52
+ end
@@ -0,0 +1,11 @@
1
+ module Wafflemix
2
+ module Admin::SlidesHelper
3
+ def slide_tree_view(slides)
4
+ slides.map do |slide|
5
+ content_tag(:li, :id => dom_id(slide)) do
6
+ render(:partial => 'wafflemix/admin/slides/slide', :object => slide)
7
+ end
8
+ end.join.html_safe
9
+ end
10
+ end
11
+ end