compartment 0.0.0

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 (330) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.md +24 -0
  4. data/Rakefile +34 -0
  5. data/app/assets/javascripts/compartment/application.js +24 -0
  6. data/app/assets/javascripts/compartment/collections/content_block_types.js.coffee +5 -0
  7. data/app/assets/javascripts/compartment/collections/content_blocks.js.coffee +12 -0
  8. data/app/assets/javascripts/compartment/compartment.js.coffee +12 -0
  9. data/app/assets/javascripts/compartment/modals.js.coffee +49 -0
  10. data/app/assets/javascripts/compartment/models/content_area.js.coffee +12 -0
  11. data/app/assets/javascripts/compartment/models/content_block.js.coffee +1 -0
  12. data/app/assets/javascripts/compartment/models/content_block_type.js.coffee +1 -0
  13. data/app/assets/javascripts/compartment/models/page.js.coffee +36 -0
  14. data/app/assets/javascripts/compartment/routers/default.js.coffee +13 -0
  15. data/app/assets/javascripts/compartment/views/content_area.js.coffee +63 -0
  16. data/app/assets/javascripts/compartment/views/content_block.js.coffee +61 -0
  17. data/app/assets/javascripts/compartment/views/content_span.js.coffee +61 -0
  18. data/app/assets/javascripts/compartment/views/modal.js.coffee +42 -0
  19. data/app/assets/javascripts/compartment/views/modals/new_content_block.js.coffee +20 -0
  20. data/app/assets/javascripts/compartment/views/modals/new_page.js.coffee +3 -0
  21. data/app/assets/javascripts/compartment/views/modals/old_modal.js.coffee +72 -0
  22. data/app/assets/javascripts/compartment/views/page.js.coffee +14 -0
  23. data/app/assets/javascripts/compartment/views/page_toolbar.js.coffee +19 -0
  24. data/app/assets/stylesheets/compartment/admin-styles.sass +6 -0
  25. data/app/assets/stylesheets/compartment/forms.sass +118 -0
  26. data/app/assets/stylesheets/compartment/frontend-styles.sass +64 -0
  27. data/app/assets/stylesheets/compartment/modals.sass +21 -0
  28. data/app/assets/stylesheets/compartment/page_toolbar.sass +51 -0
  29. data/app/assets/templates/compartment/add_content_button.jst.eco +3 -0
  30. data/app/assets/templates/compartment/content_blocks/actions.jst.eco +6 -0
  31. data/app/assets/templates/compartment/content_blocks/edit.jst.ejs +8 -0
  32. data/app/assets/templates/compartment/content_blocks/new.jst.eco +6 -0
  33. data/app/assets/templates/compartment/content_blocks/show.jst.ejs +8 -0
  34. data/app/assets/templates/compartment/modals/new_content_block.jst.eco +12 -0
  35. data/app/assets/templates/compartment/modals/new_page.jst.eco +11 -0
  36. data/app/assets/templates/compartment/modals/sign_up_form.jst.eco +27 -0
  37. data/app/assets/templates/compartment/page_toolbar.jst.eco +6 -0
  38. data/app/controllers/compartment/admin/account_controller.rb +12 -0
  39. data/app/controllers/compartment/admin/application_controller.rb +27 -0
  40. data/app/controllers/compartment/admin/content_block_types_controller.rb +14 -0
  41. data/app/controllers/compartment/admin/content_blocks_controller.rb +68 -0
  42. data/app/controllers/compartment/admin/dashboard_controller.rb +12 -0
  43. data/app/controllers/compartment/admin/pages_controller.rb +98 -0
  44. data/app/controllers/compartment/admin/sessions_controller.rb +34 -0
  45. data/app/controllers/compartment/admin/settings_controller.rb +13 -0
  46. data/app/controllers/compartment/admin/sites_controller.rb +89 -0
  47. data/app/controllers/compartment/admin/users_controller.rb +89 -0
  48. data/app/controllers/compartment/application_controller.rb +16 -0
  49. data/app/controllers/compartment/pages_controller.rb +17 -0
  50. data/app/controllers/compartment/theme_assets_controller.rb +12 -0
  51. data/app/helpers/compartment/application_helper.rb +12 -0
  52. data/app/helpers/compartment/pages_helper.rb +93 -0
  53. data/app/models/compartment/content_block.rb +14 -0
  54. data/app/models/compartment/page.rb +14 -0
  55. data/app/models/compartment/site.rb +14 -0
  56. data/app/models/compartment/theme.rb +41 -0
  57. data/app/models/compartment/user.rb +8 -0
  58. data/app/themes/default/images/background_body.jpg +0 -0
  59. data/app/themes/default/images/background_header.jpg +0 -0
  60. data/app/themes/default/images/favicon.ico +0 -0
  61. data/app/themes/default/images/image.jpg +0 -0
  62. data/app/themes/default/info.rb +4 -0
  63. data/app/themes/default/stylesheets/styles.css +209 -0
  64. data/app/themes/default/templates/error_404.html +1 -0
  65. data/app/themes/default/templates/error_500.html +1 -0
  66. data/app/themes/default/templates/one_column.erb +63 -0
  67. data/app/themes/default/templates/two_column.erb +70 -0
  68. data/app/views/compartment/admin/account/show.html.erb +1 -0
  69. data/app/views/compartment/admin/content_blocks/_form.html.erb +22 -0
  70. data/app/views/compartment/admin/content_blocks/edit.html.erb +6 -0
  71. data/app/views/compartment/admin/content_blocks/index.html.erb +25 -0
  72. data/app/views/compartment/admin/content_blocks/new.html.erb +5 -0
  73. data/app/views/compartment/admin/content_blocks/show.html.erb +15 -0
  74. data/app/views/compartment/admin/dashboard/index.html.erb +1 -0
  75. data/app/views/compartment/admin/pages/_form.html.erb +29 -0
  76. data/app/views/compartment/admin/pages/edit.html.erb +6 -0
  77. data/app/views/compartment/admin/pages/index.html.erb +7 -0
  78. data/app/views/compartment/admin/pages/new.html.erb +4 -0
  79. data/app/views/compartment/admin/pages/show.html.erb +25 -0
  80. data/app/views/compartment/admin/pages/toolbar.html.erb +56 -0
  81. data/app/views/compartment/admin/sessions/new.html.erb +19 -0
  82. data/app/views/compartment/admin/settings/index.html.erb +3 -0
  83. data/app/views/compartment/admin/sites/_form.html.erb +21 -0
  84. data/app/views/compartment/admin/sites/edit.html.erb +6 -0
  85. data/app/views/compartment/admin/sites/index.html.erb +23 -0
  86. data/app/views/compartment/admin/sites/new.html.erb +5 -0
  87. data/app/views/compartment/admin/sites/show.html.erb +10 -0
  88. data/app/views/compartment/admin/users/_form.html.erb +29 -0
  89. data/app/views/compartment/admin/users/edit.html.erb +6 -0
  90. data/app/views/compartment/admin/users/index.html.erb +24 -0
  91. data/app/views/compartment/admin/users/new.html.erb +5 -0
  92. data/app/views/compartment/admin/users/show.html.erb +15 -0
  93. data/app/views/compartment/errors/page_not_found.html.erb +1 -0
  94. data/app/views/compartment/errors/unknown_site.html.erb +1 -0
  95. data/app/views/layouts/compartment/application.html.erb +41 -0
  96. data/app/views/layouts/compartment/authentication.html.erb +45 -0
  97. data/config/cucumber.yml +8 -0
  98. data/config/routes.rb +25 -0
  99. data/db/migrate/20121208061936_create_compartment_sites.rb +9 -0
  100. data/db/migrate/20121208063802_create_compartment_pages.rb +13 -0
  101. data/db/migrate/20121209214222_create_compartment_content_blocks.rb +12 -0
  102. data/db/migrate/20121209223603_create_compartment_themes.rb +11 -0
  103. data/db/migrate/20121214060141_create_compartment_users.rb +10 -0
  104. data/lib/compartment.rb +13 -0
  105. data/lib/compartment/config.rb +20 -0
  106. data/lib/compartment/content_block_dsl.rb +25 -0
  107. data/lib/compartment/engine.rb +21 -0
  108. data/lib/compartment/version.rb +3 -0
  109. data/lib/tasks/compartment_tasks.rake +21 -0
  110. data/spec/controllers/compartment/admin/content_blocks_controller_spec_autogenerated.rb +164 -0
  111. data/spec/dummy/README.rdoc +261 -0
  112. data/spec/dummy/Rakefile +7 -0
  113. data/spec/dummy/app/assets/javascripts/application.js +15 -0
  114. data/spec/dummy/app/assets/stylesheets/application.css +13 -0
  115. data/spec/dummy/app/controllers/application_controller.rb +3 -0
  116. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  117. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  118. data/spec/dummy/config.ru +4 -0
  119. data/spec/dummy/config/application.rb +59 -0
  120. data/spec/dummy/config/boot.rb +10 -0
  121. data/spec/dummy/config/database.yml +25 -0
  122. data/spec/dummy/config/environment.rb +5 -0
  123. data/spec/dummy/config/environments/development.rb +37 -0
  124. data/spec/dummy/config/environments/production.rb +67 -0
  125. data/spec/dummy/config/environments/test.rb +37 -0
  126. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  127. data/spec/dummy/config/initializers/inflections.rb +15 -0
  128. data/spec/dummy/config/initializers/mime_types.rb +5 -0
  129. data/spec/dummy/config/initializers/secret_token.rb +7 -0
  130. data/spec/dummy/config/initializers/session_store.rb +8 -0
  131. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  132. data/spec/dummy/config/locales/en.yml +5 -0
  133. data/spec/dummy/config/routes.rb +4 -0
  134. data/spec/dummy/db/development.sqlite3 +0 -0
  135. data/spec/dummy/db/schema.rb +60 -0
  136. data/spec/dummy/db/test.sqlite3 +0 -0
  137. data/spec/dummy/lib/tasks/cucumber.rake +65 -0
  138. data/spec/dummy/log/development.log +4127 -0
  139. data/spec/dummy/log/test.log +93426 -0
  140. data/spec/dummy/public/404.html +26 -0
  141. data/spec/dummy/public/422.html +26 -0
  142. data/spec/dummy/public/500.html +25 -0
  143. data/spec/dummy/public/favicon.ico +0 -0
  144. data/spec/dummy/script/rails +6 -0
  145. data/spec/dummy/tmp/cache/assets/C3E/240/sprockets%2F055c2b9605c134d2066c606674f01d05 +0 -0
  146. data/spec/dummy/tmp/cache/assets/C47/120/sprockets%2F185f0b2e6c231347125613b2407ff686 +0 -0
  147. data/spec/dummy/tmp/cache/assets/C50/DA0/sprockets%2F456eeb2d37782046ba6c030836643476 +0 -0
  148. data/spec/dummy/tmp/cache/assets/C52/1C0/sprockets%2Fa78612d84335327b0983c4dc225d1668 +0 -0
  149. data/spec/dummy/tmp/cache/assets/C76/0F0/sprockets%2F75046a33c909e2b406a3a5929a633a09 +0 -0
  150. data/spec/dummy/tmp/cache/assets/C77/980/sprockets%2F360cfd80942c2190cb67268b1630a484 +0 -0
  151. data/spec/dummy/tmp/cache/assets/C8E/6D0/sprockets%2F9e0fc4406af59e36f7d9670453801932 +0 -0
  152. data/spec/dummy/tmp/cache/assets/C8F/840/sprockets%2F5e5130c2ae14217f1530b406b32a832f +0 -0
  153. data/spec/dummy/tmp/cache/assets/C9D/370/sprockets%2F6191b8cb150830acc70b897012d4008e +0 -0
  154. data/spec/dummy/tmp/cache/assets/CA0/C60/sprockets%2Fa16082a8613c43441e0d26b0945aec95 +0 -0
  155. data/spec/dummy/tmp/cache/assets/CA1/3D0/sprockets%2Fb60224c86974950f832ac26115bbec00 +0 -0
  156. data/spec/dummy/tmp/cache/assets/CA1/A40/sprockets%2F446b1711d42cc93f65a4a7d22564b035 +0 -0
  157. data/spec/dummy/tmp/cache/assets/CA7/750/sprockets%2F412bb188276e8969c51469a0ab010a8a +0 -0
  158. data/spec/dummy/tmp/cache/assets/CA8/250/sprockets%2F5721e7a044aa7244f3f42139ed26385b +0 -0
  159. data/spec/dummy/tmp/cache/assets/CA9/750/sprockets%2F81a628a4623319f364f30e31e9e3eb22 +0 -0
  160. data/spec/dummy/tmp/cache/assets/CAC/7A0/sprockets%2Fd1db034053f1908095360ef27668c7da +0 -0
  161. data/spec/dummy/tmp/cache/assets/CAF/5C0/sprockets%2F72933125931d191df741f01fc5ff2f26 +0 -0
  162. data/spec/dummy/tmp/cache/assets/CB0/930/sprockets%2F8272ad6d0b079362b2491ce3396a2c97 +0 -0
  163. data/spec/dummy/tmp/cache/assets/CB1/230/sprockets%2Fbb1808e1d9891094168331ff2fa29c23 +0 -0
  164. data/spec/dummy/tmp/cache/assets/CB4/FB0/sprockets%2F1f909bc406bf958072ad795d5303f235 +0 -0
  165. data/spec/dummy/tmp/cache/assets/CB6/730/sprockets%2F19ef44fa001bbda37824909746238f68 +0 -0
  166. data/spec/dummy/tmp/cache/assets/CBC/170/sprockets%2F895158f320da274e839a4978bb3a25f4 +0 -0
  167. data/spec/dummy/tmp/cache/assets/CBD/160/sprockets%2Fe56dd38d8c51e8095620f5d67103909d +0 -0
  168. data/spec/dummy/tmp/cache/assets/CC2/AD0/sprockets%2F94439c33d1a5c557b89cb739e08e1991 +0 -0
  169. data/spec/dummy/tmp/cache/assets/CCB/850/sprockets%2F02e05b258d7c735f26e633b010c920cb +0 -0
  170. data/spec/dummy/tmp/cache/assets/CD0/500/sprockets%2Fd27696561a9ec3799b76d4af927338e5 +0 -0
  171. data/spec/dummy/tmp/cache/assets/CD0/F70/sprockets%2Fb770d8010fa12ecf83d2a171480763d4 +0 -0
  172. data/spec/dummy/tmp/cache/assets/CD6/980/sprockets%2F78671dda395c821a632ca0871043abf5 +0 -0
  173. data/spec/dummy/tmp/cache/assets/CD7/7C0/sprockets%2F04f40780f76ba40666c06bf4d1273ef1 +0 -0
  174. data/spec/dummy/tmp/cache/assets/CD7/8B0/sprockets%2F4a7030aa11b628c26653f58da193f84f +0 -0
  175. data/spec/dummy/tmp/cache/assets/CD7/E40/sprockets%2F244cc083a125c752f459d8ddfc510218 +0 -0
  176. data/spec/dummy/tmp/cache/assets/CD9/A90/sprockets%2Fdb4d98730929f78269f493773b5be8e8 +0 -0
  177. data/spec/dummy/tmp/cache/assets/CDE/0E0/sprockets%2F4b5a7685116047b5ece80c613a4eb866 +0 -0
  178. data/spec/dummy/tmp/cache/assets/CE2/F80/sprockets%2F3f4be29b1866cb0b0e2dc56536934189 +0 -0
  179. data/spec/dummy/tmp/cache/assets/CE3/B50/sprockets%2F10e4d9543759ae40f8249c45d34a31ff +0 -0
  180. data/spec/dummy/tmp/cache/assets/CE5/2A0/sprockets%2F38ab60b12edd0388b87513096a7b789e +0 -0
  181. data/spec/dummy/tmp/cache/assets/CE8/330/sprockets%2F6f9128544f46a17c60027c35fce4ef75 +0 -0
  182. data/spec/dummy/tmp/cache/assets/CEB/200/sprockets%2F3007de86523e820696bcaa986ef2a785 +0 -0
  183. data/spec/dummy/tmp/cache/assets/CEB/4E0/sprockets%2Fffb7c224a9178c6154dea70d94089627 +0 -0
  184. data/spec/dummy/tmp/cache/assets/CEF/A00/sprockets%2F42449d8a1940eba9130a32d02ab2cf20 +0 -0
  185. data/spec/dummy/tmp/cache/assets/CF0/C20/sprockets%2F83a42387a965774facbd717770f6f2a7 +0 -0
  186. data/spec/dummy/tmp/cache/assets/CF5/060/sprockets%2F2986d6ece9249d6f3f9ac694540a2372 +0 -0
  187. data/spec/dummy/tmp/cache/assets/CF9/F20/sprockets%2F986fdff75a775c678471053713d8c1ed +0 -0
  188. data/spec/dummy/tmp/cache/assets/CFC/FF0/sprockets%2F47850d338885758cbc4bd4e7b9328fe8 +0 -0
  189. data/spec/dummy/tmp/cache/assets/D05/D70/sprockets%2F7007cf768de19464db05ae106ca2604d +0 -0
  190. data/spec/dummy/tmp/cache/assets/D06/590/sprockets%2Fc045182e2f0f3816f76aeb421a167ee3 +0 -0
  191. data/spec/dummy/tmp/cache/assets/D09/D40/sprockets%2F1bcb641850b964f38417f5cc91e00c7a +0 -0
  192. data/spec/dummy/tmp/cache/assets/D0B/7D0/sprockets%2Ffa7e2864007ff1f93ab619b61be12705 +0 -0
  193. data/spec/dummy/tmp/cache/assets/D0C/2B0/sprockets%2Fc01d05da2c09811f6ebb6457a579f393 +0 -0
  194. data/spec/dummy/tmp/cache/assets/D0F/0A0/sprockets%2F7530089ddbee51165c91d42983ea5cc1 +0 -0
  195. data/spec/dummy/tmp/cache/assets/D10/190/sprockets%2F17a938bb93cdc2e9a4a71383f824811c +0 -0
  196. data/spec/dummy/tmp/cache/assets/D13/490/sprockets%2Ffaa1ae5ba596394a7e6f21293362884c +0 -0
  197. data/spec/dummy/tmp/cache/assets/D18/4F0/sprockets%2F0dd2285c0874040e463e76b49fc9ee6d +0 -0
  198. data/spec/dummy/tmp/cache/assets/D1B/080/sprockets%2F8289214205c22b86fd90e7dde88e70dc +0 -0
  199. data/spec/dummy/tmp/cache/assets/D20/960/sprockets%2F9d81c99fa4b33c3e2f6425593bf6e590 +0 -0
  200. data/spec/dummy/tmp/cache/assets/D2B/DE0/sprockets%2F80480edba05dbf2a035b05454d57e34c +0 -0
  201. data/spec/dummy/tmp/cache/assets/D2C/210/sprockets%2F8f316259703dacdd21f83ad05f0ca132 +0 -0
  202. data/spec/dummy/tmp/cache/assets/D2C/780/sprockets%2Ffe4d215714b72c23b8dd8a5f0020ad09 +0 -0
  203. data/spec/dummy/tmp/cache/assets/D2F/180/sprockets%2Fbf3b7ed377172b501728a446a107bbcc +0 -0
  204. data/spec/dummy/tmp/cache/assets/D37/EC0/sprockets%2Fea6cc6410ad20a1c67445f8e860fe444 +0 -0
  205. data/spec/dummy/tmp/cache/assets/D38/6D0/sprockets%2F7cc91ca26644e7b06438b0bf8e405d0d +0 -0
  206. data/spec/dummy/tmp/cache/assets/D3B/780/sprockets%2F1e0cf992502bd912aa9a191ec778cc44 +0 -0
  207. data/spec/dummy/tmp/cache/assets/D3B/930/sprockets%2F0e770ba1bd268256242eaea8c9718e5c +0 -0
  208. data/spec/dummy/tmp/cache/assets/D3D/D10/sprockets%2F953c3b472be2ede368471137bdc90ae4 +0 -0
  209. data/spec/dummy/tmp/cache/assets/D3E/500/sprockets%2Fe60a09899ac6c983ddea50151d2ea273 +0 -0
  210. data/spec/dummy/tmp/cache/assets/D3F/340/sprockets%2Fef74a174d01b6808e4bc5a2ef87721e4 +0 -0
  211. data/spec/dummy/tmp/cache/assets/D41/930/sprockets%2Fb3d4b6333baf5e867f2b361c5b2c7498 +0 -0
  212. data/spec/dummy/tmp/cache/assets/D45/A40/sprockets%2Fc60487581ef1accbcc895418c71f2e72 +0 -0
  213. data/spec/dummy/tmp/cache/assets/D46/090/sprockets%2F0ea2b9f32f6719be92596d7f6033b2ec +0 -0
  214. data/spec/dummy/tmp/cache/assets/D48/750/sprockets%2F76db9aaecd1148827ed661f924d6f251 +0 -0
  215. data/spec/dummy/tmp/cache/assets/D4B/990/sprockets%2Fc8702905706ece4f927eb4ae267bf7d4 +0 -0
  216. data/spec/dummy/tmp/cache/assets/D51/720/sprockets%2F1a0601ba3458aa96131495dc4aca0fbe +0 -0
  217. data/spec/dummy/tmp/cache/assets/D52/EF0/sprockets%2Ffd5f726a8a0df8287448fa948db1b817 +0 -0
  218. data/spec/dummy/tmp/cache/assets/D57/4A0/sprockets%2F2f425bc85c002e370adbd8c51c8220eb +0 -0
  219. data/spec/dummy/tmp/cache/assets/D58/940/sprockets%2F1c3b2ff81dc2a0482d34112f9fb12d2e +0 -0
  220. data/spec/dummy/tmp/cache/assets/D5B/7F0/sprockets%2F523ea79ecf40a31bd0b6ddb56e334123 +0 -0
  221. data/spec/dummy/tmp/cache/assets/D5F/210/sprockets%2F41a7b5fa423ac505c66add2b98942c0b +0 -0
  222. data/spec/dummy/tmp/cache/assets/D62/8F0/sprockets%2F5b6411bf7a3d055f2f07a8bf457a2bd3 +0 -0
  223. data/spec/dummy/tmp/cache/assets/D63/D20/sprockets%2F008f511a7971c5311f1b8d4fddaad18f +0 -0
  224. data/spec/dummy/tmp/cache/assets/D65/050/sprockets%2Faaee3ad426e876a0f2219b790191b2ed +0 -0
  225. data/spec/dummy/tmp/cache/assets/D65/3A0/sprockets%2Fc1ec78a1c30ff75157afa34014f3ef63 +0 -0
  226. data/spec/dummy/tmp/cache/assets/D69/6A0/sprockets%2F1bf617ff04da082c0eb39b9445d8d3a5 +0 -0
  227. data/spec/dummy/tmp/cache/assets/D6B/0D0/sprockets%2Fea8a529c947d286a13e5eefe16b12b12 +0 -0
  228. data/spec/dummy/tmp/cache/assets/D6D/1F0/sprockets%2F11595043cc2f4c29d2fb5cea595e1b9e +0 -0
  229. data/spec/dummy/tmp/cache/assets/D70/970/sprockets%2Fb21f42ff3dec1446ff32e8f260b18c78 +0 -0
  230. data/spec/dummy/tmp/cache/assets/D71/FB0/sprockets%2F68433b17ff4eaf61f5048ee06e8cb20e +0 -0
  231. data/spec/dummy/tmp/cache/assets/D73/060/sprockets%2Fd1df80c17350a4ca8daf86c7599f41f1 +0 -0
  232. data/spec/dummy/tmp/cache/assets/D74/050/sprockets%2F29efd25b4cdd2d7607b0d477705b8ec6 +0 -0
  233. data/spec/dummy/tmp/cache/assets/D78/DC0/sprockets%2F3f1950b87fc75fb6f1dbb672e3ed5327 +0 -0
  234. data/spec/dummy/tmp/cache/assets/D79/710/sprockets%2F0b98cf262e57ae187a6192f29ccad49d +0 -0
  235. data/spec/dummy/tmp/cache/assets/D7A/5F0/sprockets%2F69fbbb1724da70dc767193677df3c4de +0 -0
  236. data/spec/dummy/tmp/cache/assets/D7B/7B0/sprockets%2F9df3019edd7238ea05c0d86ae899f3b3 +0 -0
  237. data/spec/dummy/tmp/cache/assets/D7E/380/sprockets%2F256295ea2de1a85d8aefa6a797c69c90 +0 -0
  238. data/spec/dummy/tmp/cache/assets/D81/D40/sprockets%2Ff6ffb740a883607444fcc8e9e51c8dc4 +0 -0
  239. data/spec/dummy/tmp/cache/assets/D82/120/sprockets%2Fcfa458d7fd9975793198ae714e02ecaa +0 -0
  240. data/spec/dummy/tmp/cache/assets/D86/A60/sprockets%2Fc38e7ef3fd858357b7fc3c2fb8a91564 +0 -0
  241. data/spec/dummy/tmp/cache/assets/D89/DA0/sprockets%2F8d18248a443fea94a88079efa99bfaf7 +0 -0
  242. data/spec/dummy/tmp/cache/assets/D8C/770/sprockets%2F7b0fa3005aecf24c6e23af9c5ad02827 +0 -0
  243. data/spec/dummy/tmp/cache/assets/D93/3D0/sprockets%2Fa5bb4b51d7b5cf47a9d85ccd00904f12 +0 -0
  244. data/spec/dummy/tmp/cache/assets/D94/420/sprockets%2F2e54f2c67f40ae3b28fdb90c215d3d3c +0 -0
  245. data/spec/dummy/tmp/cache/assets/D97/890/sprockets%2Fea52bb8869ad0d04f5a91ecabd722239 +0 -0
  246. data/spec/dummy/tmp/cache/assets/D98/770/sprockets%2Fab39cb17cb0c7ddc46a7e083741d7c28 +0 -0
  247. data/spec/dummy/tmp/cache/assets/D9A/910/sprockets%2F52be75ddde7b2ffa06af4fd068008091 +0 -0
  248. data/spec/dummy/tmp/cache/assets/D9E/8D0/sprockets%2F6183b396dba27e5bb64eaa8dce09740e +0 -0
  249. data/spec/dummy/tmp/cache/assets/DA6/EC0/sprockets%2F2cd5612affe9038f43fb59fa525ae39e +0 -0
  250. data/spec/dummy/tmp/cache/assets/DA9/610/sprockets%2F070519c5b7c9e2a05ffb7a82e9c69cdf +0 -0
  251. data/spec/dummy/tmp/cache/assets/DAF/0A0/sprockets%2F81a6c69e615b9f6c0a7870fde9e4ae7a +0 -0
  252. data/spec/dummy/tmp/cache/assets/DB4/9A0/sprockets%2F152cabc332eafced3e25d12e33a4435e +0 -0
  253. data/spec/dummy/tmp/cache/assets/DC6/2D0/sprockets%2F7f232a3b35c509bdb0cdd0eee98e3c36 +0 -0
  254. data/spec/dummy/tmp/cache/assets/DC9/830/sprockets%2Fff60d20f4db56b13e6bad309b96c08fd +0 -0
  255. data/spec/dummy/tmp/cache/assets/DCF/A70/sprockets%2F5cfadbd4a6878da4c19eb5451225e3ef +0 -0
  256. data/spec/dummy/tmp/cache/assets/DD3/1E0/sprockets%2Fb2dbcbff454c034f8ecb7528b908c8a8 +0 -0
  257. data/spec/dummy/tmp/cache/assets/DD3/9E0/sprockets%2F99fee80ec4d119a6cc5a3d90d1bb7d92 +0 -0
  258. data/spec/dummy/tmp/cache/assets/DD5/F20/sprockets%2F9bcb865783d19929b0eace77ab1ac4ec +0 -0
  259. data/spec/dummy/tmp/cache/assets/DD9/D20/sprockets%2F774bf932abf9fed1f8d1de4a68b931e0 +0 -0
  260. data/spec/dummy/tmp/cache/assets/DDA/830/sprockets%2Ff565a73a906a56c2e19ce6dfbf5e61ff +0 -0
  261. data/spec/dummy/tmp/cache/assets/DDA/F10/sprockets%2Fd8b845f49355b153aedcb6d9a8fc7ca5 +0 -0
  262. data/spec/dummy/tmp/cache/assets/DDC/5D0/sprockets%2F364253d7cbaf3ad0350ad0cb6a5cbdc0 +0 -0
  263. data/spec/dummy/tmp/cache/assets/DE4/E20/sprockets%2F2fdc2c653d97cb4f40fed7f45d879da9 +0 -0
  264. data/spec/dummy/tmp/cache/assets/DF2/880/sprockets%2Fc906bbb19c4a06daf594ab3e286bc3bd +0 -0
  265. data/spec/dummy/tmp/cache/assets/DF4/0F0/sprockets%2F3421cdee43ff1e0d6cfa27eafa7e2516 +0 -0
  266. data/spec/dummy/tmp/cache/assets/DF6/410/sprockets%2Fbcdfb6d07d79490cbfb6801aa63cc5c2 +0 -0
  267. data/spec/dummy/tmp/cache/assets/DFA/2D0/sprockets%2F240cd9ec435b5fa1c59ff1b1a79dae8a +0 -0
  268. data/spec/dummy/tmp/cache/assets/E02/4E0/sprockets%2Fbfb8eaedf0b359e72db268fe2c4175c4 +0 -0
  269. data/spec/dummy/tmp/cache/assets/E07/F90/sprockets%2F6fbb6d5990372ef85acc84beceac4b73 +0 -0
  270. data/spec/dummy/tmp/cache/assets/E0D/470/sprockets%2Faef35e2e6837a1ffa4d5898acc5a8fe4 +0 -0
  271. data/spec/dummy/tmp/cache/assets/E0F/790/sprockets%2F2f4eb4bda5c5ca56d3340caa5aa82c0b +0 -0
  272. data/spec/dummy/tmp/cache/assets/E40/950/sprockets%2F7ff1e1ede4ad5d7ef5094b0efd8896cc +0 -0
  273. data/spec/dummy/tmp/cache/assets/E7B/720/sprockets%2Fbbeda91214d7ec5bd4c2fdb5b5eead02 +0 -0
  274. data/spec/dummy/tmp/cache/assets/E98/680/sprockets%2F42fd3fbf3bc7ecafb09f7cff81088ded +0 -0
  275. data/spec/dummy/tmp/cache/assets/EC6/860/sprockets%2F83df86ffb45cdaaea9ba6efbca34d7c9 +0 -0
  276. data/spec/dummy/tmp/cache/assets/EEC/1E0/sprockets%2Fbfa1aff0059cf17ccf5f27afb6ffbfeb +0 -0
  277. data/spec/dummy/tmp/cache/sass/301ce5a14d4f5bb39e22a56c42ad3d69df129f35/bootstrap.scssc +0 -0
  278. data/spec/dummy/tmp/cache/sass/adcfc93268f0014d6a7edb19347218e29709360e/_accordion.scssc +0 -0
  279. data/spec/dummy/tmp/cache/sass/adcfc93268f0014d6a7edb19347218e29709360e/_alerts.scssc +0 -0
  280. data/spec/dummy/tmp/cache/sass/adcfc93268f0014d6a7edb19347218e29709360e/_breadcrumbs.scssc +0 -0
  281. data/spec/dummy/tmp/cache/sass/adcfc93268f0014d6a7edb19347218e29709360e/_button-groups.scssc +0 -0
  282. data/spec/dummy/tmp/cache/sass/adcfc93268f0014d6a7edb19347218e29709360e/_buttons.scssc +0 -0
  283. data/spec/dummy/tmp/cache/sass/adcfc93268f0014d6a7edb19347218e29709360e/_carousel.scssc +0 -0
  284. data/spec/dummy/tmp/cache/sass/adcfc93268f0014d6a7edb19347218e29709360e/_close.scssc +0 -0
  285. data/spec/dummy/tmp/cache/sass/adcfc93268f0014d6a7edb19347218e29709360e/_code.scssc +0 -0
  286. data/spec/dummy/tmp/cache/sass/adcfc93268f0014d6a7edb19347218e29709360e/_component-animations.scssc +0 -0
  287. data/spec/dummy/tmp/cache/sass/adcfc93268f0014d6a7edb19347218e29709360e/_dropdowns.scssc +0 -0
  288. data/spec/dummy/tmp/cache/sass/adcfc93268f0014d6a7edb19347218e29709360e/_forms.scssc +0 -0
  289. data/spec/dummy/tmp/cache/sass/adcfc93268f0014d6a7edb19347218e29709360e/_grid.scssc +0 -0
  290. data/spec/dummy/tmp/cache/sass/adcfc93268f0014d6a7edb19347218e29709360e/_hero-unit.scssc +0 -0
  291. data/spec/dummy/tmp/cache/sass/adcfc93268f0014d6a7edb19347218e29709360e/_labels-badges.scssc +0 -0
  292. data/spec/dummy/tmp/cache/sass/adcfc93268f0014d6a7edb19347218e29709360e/_layouts.scssc +0 -0
  293. data/spec/dummy/tmp/cache/sass/adcfc93268f0014d6a7edb19347218e29709360e/_media.scssc +0 -0
  294. data/spec/dummy/tmp/cache/sass/adcfc93268f0014d6a7edb19347218e29709360e/_mixins.scssc +0 -0
  295. data/spec/dummy/tmp/cache/sass/adcfc93268f0014d6a7edb19347218e29709360e/_modals.scssc +0 -0
  296. data/spec/dummy/tmp/cache/sass/adcfc93268f0014d6a7edb19347218e29709360e/_navbar.scssc +0 -0
  297. data/spec/dummy/tmp/cache/sass/adcfc93268f0014d6a7edb19347218e29709360e/_navs.scssc +0 -0
  298. data/spec/dummy/tmp/cache/sass/adcfc93268f0014d6a7edb19347218e29709360e/_pager.scssc +0 -0
  299. data/spec/dummy/tmp/cache/sass/adcfc93268f0014d6a7edb19347218e29709360e/_pagination.scssc +0 -0
  300. data/spec/dummy/tmp/cache/sass/adcfc93268f0014d6a7edb19347218e29709360e/_popovers.scssc +0 -0
  301. data/spec/dummy/tmp/cache/sass/adcfc93268f0014d6a7edb19347218e29709360e/_progress-bars.scssc +0 -0
  302. data/spec/dummy/tmp/cache/sass/adcfc93268f0014d6a7edb19347218e29709360e/_reset.scssc +0 -0
  303. data/spec/dummy/tmp/cache/sass/adcfc93268f0014d6a7edb19347218e29709360e/_scaffolding.scssc +0 -0
  304. data/spec/dummy/tmp/cache/sass/adcfc93268f0014d6a7edb19347218e29709360e/_sprites.scssc +0 -0
  305. data/spec/dummy/tmp/cache/sass/adcfc93268f0014d6a7edb19347218e29709360e/_tables.scssc +0 -0
  306. data/spec/dummy/tmp/cache/sass/adcfc93268f0014d6a7edb19347218e29709360e/_thumbnails.scssc +0 -0
  307. data/spec/dummy/tmp/cache/sass/adcfc93268f0014d6a7edb19347218e29709360e/_tooltip.scssc +0 -0
  308. data/spec/dummy/tmp/cache/sass/adcfc93268f0014d6a7edb19347218e29709360e/_type.scssc +0 -0
  309. data/spec/dummy/tmp/cache/sass/adcfc93268f0014d6a7edb19347218e29709360e/_utilities.scssc +0 -0
  310. data/spec/dummy/tmp/cache/sass/adcfc93268f0014d6a7edb19347218e29709360e/_variables.scssc +0 -0
  311. data/spec/dummy/tmp/cache/sass/adcfc93268f0014d6a7edb19347218e29709360e/_wells.scssc +0 -0
  312. data/spec/dummy/tmp/cache/sass/adcfc93268f0014d6a7edb19347218e29709360e/bootstrap.scssc +0 -0
  313. data/spec/dummy/tmp/cache/sass/e09d521ae3b813be62b26216d68685f8f049a496/admin-styles.sassc +0 -0
  314. data/spec/dummy/tmp/cache/sass/e09d521ae3b813be62b26216d68685f8f049a496/frontend-styles.sassc +0 -0
  315. data/spec/factories/compartment_admin_content_blocks.rb +8 -0
  316. data/spec/factories/content_block.rb +8 -0
  317. data/spec/factories/page.rb +16 -0
  318. data/spec/factories/site.rb +13 -0
  319. data/spec/factories/theme.rb +5 -0
  320. data/spec/factories/user.rb +6 -0
  321. data/spec/helpers/pages_helper_spec.rb +126 -0
  322. data/spec/lib/compartment/config_spec.rb +11 -0
  323. data/spec/lib/compartment_spec.rb +10 -0
  324. data/spec/models/compartment/content_block_spec.rb +12 -0
  325. data/spec/models/compartment/page_spec.rb +39 -0
  326. data/spec/models/compartment/site_spec.rb +8 -0
  327. data/spec/models/compartment/theme_spec.rb +53 -0
  328. data/spec/models/compartment/user_spec.rb +6 -0
  329. data/spec/spec_helper.rb +50 -0
  330. metadata +703 -0
@@ -0,0 +1,6 @@
1
+ <div class="actions" style="display:none">
2
+ <div class="buttons pull-right">
3
+ <button class="edit btn btn-primary" type="button">Edit</button>&nbsp;
4
+ <button class="delete btn" type="button">Delete</button>
5
+ </div>
6
+ </div>
@@ -0,0 +1,8 @@
1
+ <textarea><%= content_block.get('data') %></textarea>
2
+
3
+ <div class="actions">
4
+ <div class="buttons row-fluid">
5
+ <button class="cancel btn" type="button">Cancel</button>
6
+ <button class="save btn btn-primary" type="button">Save</button>
7
+ </div>
8
+ </div>
@@ -0,0 +1,6 @@
1
+ Available Content Block Types<br>
2
+ <select>
3
+ <% @content_block_types.each (type)-> %>
4
+ <option value="<%= type.escape('name') %>"><%= type.escape('name') %></option>
5
+ <% end %>
6
+ </select>
@@ -0,0 +1,8 @@
1
+ <%= content_block.get('data') %>
2
+
3
+ <div class="actions" style="display:none">
4
+ <div class="buttons pull-right">
5
+ <button class="edit btn btn-primary" type="button">Edit</button>&nbsp;
6
+ <button class="delete btn" type="button">Delete</button>
7
+ </div>
8
+ </div>
@@ -0,0 +1,12 @@
1
+ <div class="compartment_form">
2
+ <p>Total content types: <%= @content_block_types.length %></p>
3
+
4
+ <% @content_block_types.each (content_type)->: %>
5
+ <a href="#" class="option" data-id="<%= content_type.get('name') %>">
6
+ <p>
7
+ <%= content_type.get('name') %>: <%= content_type.get('description') %>
8
+ </p>
9
+ </a>
10
+ <% end %>
11
+
12
+ </div>
@@ -0,0 +1,11 @@
1
+ <div class="modal-header">
2
+ <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
3
+ <h3 id="myModalLabel">New Page</h3>
4
+ </div>
5
+ <div class="modal-body">
6
+
7
+ </div>
8
+ <div class="modal-footer">
9
+ <button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
10
+ <button type="submit" class="btn btn-primary" form="new_page">Create Page</button>
11
+ </div>
@@ -0,0 +1,27 @@
1
+ <div class="compartment_form">
2
+
3
+ <div id="signup-ct">
4
+ <div id="signup-header">
5
+ <h2>Create a new account</h2>
6
+ <p>It's simple, and free.</p>
7
+ <a class="modal_close" href="#"></a>
8
+ </div>
9
+ <form action="">
10
+ <div class="txt-fld">
11
+ <label for="">Username</label>
12
+ <input id="" class="good_input" name="" type="text">
13
+ </div>
14
+ <div class="txt-fld">
15
+ <label for="">Email address</label>
16
+ <input id="" name="" type="text">
17
+ </div>
18
+ <div class="txt-fld">
19
+ <label for="">Password</label>
20
+ <input id="" name="" type="text">
21
+ </div>
22
+ <div class="btn-fld">
23
+ <button type="submit">Sign Up »</button>
24
+ </div>
25
+ </form>
26
+ </div>
27
+ </div>
@@ -0,0 +1,6 @@
1
+ <a class="brand" href="#">Compartment</a>
2
+
3
+ <ul class="nav">
4
+ <li><a id="new_compartment_page" href="#">New Page</a></li>
5
+ <li><a href="/auth/logout">Log Out</a></li>
6
+ </ul>
@@ -0,0 +1,12 @@
1
+ require_dependency "compartment/admin/application_controller"
2
+
3
+ module Compartment
4
+ module Admin
5
+ class AccountController < ApplicationController
6
+
7
+ def show
8
+ end
9
+
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,27 @@
1
+ require_dependency "compartment/application_controller"
2
+
3
+ module Compartment
4
+ module Admin
5
+ class ApplicationController < Compartment::ApplicationController
6
+
7
+ before_filter :require_logged_in_user
8
+
9
+ def current_page
10
+ current_site.pages.find(params[:page_id]) if params[:page_id]
11
+ end
12
+
13
+ private
14
+
15
+ def require_logged_in_user
16
+ redirect_to admin_login_url unless current_user
17
+ end
18
+
19
+ def current_user
20
+ @current_user ||= User.find(session[:user_id]) if session[:user_id]
21
+ end
22
+ helper_method :current_user
23
+
24
+
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,14 @@
1
+ require_dependency "compartment/admin/application_controller"
2
+
3
+ module Compartment
4
+ module Admin
5
+ class ContentBlockTypesController < ApplicationController
6
+
7
+ def index
8
+ @content_block_types = Compartment.config.content_block_types
9
+ render json: @content_block_types
10
+ end
11
+
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,68 @@
1
+ require_dependency "compartment/admin/application_controller"
2
+
3
+ module Compartment
4
+ module Admin
5
+ class ContentBlocksController < ApplicationController
6
+
7
+ respond_to :json
8
+
9
+ def index
10
+ @content_blocks = current_page.content_blocks.all
11
+ respond_with @content_blocks
12
+ end
13
+
14
+ def show
15
+ @content_block = current_page.content_blocks.find(params[:id])
16
+ respond_with @content_block
17
+ end
18
+
19
+ def new
20
+ @content_block = current_page.content_blocks.build
21
+ respond_with @content_block
22
+ end
23
+
24
+ def edit
25
+ @content_block = current_page.content_blocks.find(params[:id])
26
+ respond_with @content_block
27
+ end
28
+
29
+ def create
30
+ @content_block = current_page.content_blocks.build(params[:content_block])
31
+ @content_block.save
32
+ respond_with @content_block, location: admin_page_content_block_url(current_page, @content_block)
33
+ end
34
+
35
+ def update
36
+ @content_block = current_page.content_blocks.find(params[:id])
37
+ @content_block.update_attributes(params[:content_block])
38
+ respond_with @content_block
39
+ end
40
+
41
+ def destroy
42
+ if @content_block = content_block
43
+ @content_block.destroy
44
+ respond_with @content_block
45
+ else
46
+ respond_with nil, status: 404
47
+ end
48
+ end
49
+
50
+ # TODO: move this to its own controller
51
+ # used for displaying the available content block types
52
+ # def available
53
+ # @content_block_types = Compartment.config.content_block_types
54
+ # respond_with @content_block_types
55
+ # end
56
+
57
+ private
58
+
59
+ def content_block
60
+ content_block = ContentBlock.find(params[:id])
61
+ if content_block.page.site.id == current_site.id
62
+ content_block
63
+ end
64
+ end
65
+
66
+ end
67
+ end
68
+ end
@@ -0,0 +1,12 @@
1
+ require_dependency "compartment/admin/application_controller"
2
+
3
+ module Compartment
4
+ module Admin
5
+ class DashboardController < ApplicationController
6
+
7
+ def index
8
+ # TODO: fetch some widgets or something
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,98 @@
1
+ require_dependency "compartment/admin/application_controller"
2
+
3
+ module Compartment
4
+ module Admin
5
+ class PagesController < ApplicationController
6
+ # GET /pages
7
+ # GET /pages.json
8
+ def index
9
+ @pages = Page.all
10
+
11
+ respond_to do |format|
12
+ format.html # index.html.erb
13
+ format.json { render json: @pages }
14
+ end
15
+ end
16
+
17
+ # GET /pages/1
18
+ # GET /pages/1.json
19
+ def show
20
+ @page = Page.find(params[:id])
21
+
22
+ respond_to do |format|
23
+ format.html # show.html.erb
24
+ format.json { render json: @page }
25
+ end
26
+ end
27
+
28
+ def toolbar
29
+ @page = current_site.pages.find(params[:page_id])
30
+ @new_page = current_site.pages.build
31
+
32
+ respond_to do |format|
33
+ format.html { render :toolbar, layout: false }
34
+ end
35
+ end
36
+
37
+ # GET /pages/new
38
+ # GET /pages/new.json
39
+ def new
40
+ @page = Page.new
41
+
42
+ respond_to do |format|
43
+ format.html # new.html.erb
44
+ format.json { render json: @page }
45
+ end
46
+ end
47
+
48
+ # GET /pages/1/edit
49
+ def edit
50
+ @page = Page.find(params[:id])
51
+ end
52
+
53
+ # POST /pages
54
+ # POST /pages.json
55
+ def create
56
+ @page = current_site.pages.build(params[:page])
57
+
58
+ respond_to do |format|
59
+ if @page.save
60
+ format.html { redirect_to @page.url_path, notice: 'Page was successfully created.' }
61
+ format.json { render json: @page, status: :created, location: @page }
62
+ else
63
+ format.html { render action: "new" }
64
+ format.json { render json: @page.errors, status: :unprocessable_entity }
65
+ end
66
+ end
67
+ end
68
+
69
+ # PUT /pages/1
70
+ # PUT /pages/1.json
71
+ def update
72
+ @page = Page.find(params[:id])
73
+
74
+ respond_to do |format|
75
+ if @page.update_attributes(params[:page])
76
+ format.html { redirect_to @page, notice: 'Page was successfully updated.' }
77
+ format.json { head :no_content }
78
+ else
79
+ format.html { render action: "edit" }
80
+ format.json { render json: @page.errors, status: :unprocessable_entity }
81
+ end
82
+ end
83
+ end
84
+
85
+ # DELETE /pages/1
86
+ # DELETE /pages/1.json
87
+ def destroy
88
+ @page = Page.find(params[:id])
89
+ @page.destroy
90
+
91
+ respond_to do |format|
92
+ format.html { redirect_to pages_url }
93
+ format.json { head :no_content }
94
+ end
95
+ end
96
+ end
97
+ end
98
+ end
@@ -0,0 +1,34 @@
1
+ require_dependency "compartment/application_controller"
2
+
3
+ module Compartment
4
+ module Admin
5
+ class SessionsController < Compartment::ApplicationController
6
+
7
+ layout 'compartment/authentication'
8
+
9
+ def new
10
+ end
11
+
12
+ def create
13
+ if params[:email].empty? or params[:password].empty?
14
+ flash.now.alert = "Invalid email or password"
15
+ return render "new"
16
+ end
17
+
18
+ user = current_site.users.find_by_email(params[:email])
19
+ if user && user.authenticate(params[:password])
20
+ session[:user_id] = user.id
21
+ redirect_to admin_dashboard_url, :notice => "Logged in!"
22
+ else
23
+ flash.now.alert = "Invalid email or password"
24
+ render "new"
25
+ end
26
+ end
27
+
28
+ def destroy
29
+ session[:user_id] = nil
30
+ redirect_to root_url, :notice => "Logged out!"
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,13 @@
1
+ require_dependency "compartment/admin/application_controller"
2
+
3
+ module Compartment
4
+ module Admin
5
+ class SettingsController < ApplicationController
6
+
7
+ def index
8
+ @theme = current_site.theme
9
+ end
10
+
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,89 @@
1
+ require_dependency "compartment/admin/application_controller"
2
+
3
+ module Compartment
4
+ module Admin
5
+ class SitesController < ApplicationController
6
+ # GET /sites
7
+ # GET /sites.json
8
+ def index
9
+ @sites = Site.all
10
+
11
+ respond_to do |format|
12
+ format.html # index.html.erb
13
+ format.json { render json: @sites }
14
+ end
15
+ end
16
+
17
+ # GET /sites/1
18
+ # GET /sites/1.json
19
+ def show
20
+ @site = Site.find(params[:id])
21
+
22
+ respond_to do |format|
23
+ format.html # show.html.erb
24
+ format.json { render json: @site }
25
+ end
26
+ end
27
+
28
+ # GET /sites/new
29
+ # GET /sites/new.json
30
+ def new
31
+ @site = Site.new
32
+
33
+ respond_to do |format|
34
+ format.html # new.html.erb
35
+ format.json { render json: @site }
36
+ end
37
+ end
38
+
39
+ # GET /sites/1/edit
40
+ def edit
41
+ @site = Site.find(params[:id])
42
+ end
43
+
44
+ # POST /sites
45
+ # POST /sites.json
46
+ def create
47
+ @site = Site.new(params[:site])
48
+
49
+ respond_to do |format|
50
+ if @site.save
51
+ format.html { redirect_to @site, notice: 'Site was successfully created.' }
52
+ format.json { render json: @site, status: :created, location: @site }
53
+ else
54
+ format.html { render action: "new" }
55
+ format.json { render json: @site.errors, status: :unprocessable_entity }
56
+ end
57
+ end
58
+ end
59
+
60
+ # PUT /sites/1
61
+ # PUT /sites/1.json
62
+ def update
63
+ @site = Site.find(params[:id])
64
+
65
+ respond_to do |format|
66
+ if @site.update_attributes(params[:site])
67
+ format.html { redirect_to @site, notice: 'Site was successfully updated.' }
68
+ format.json { head :no_content }
69
+ else
70
+ format.html { render action: "edit" }
71
+ format.json { render json: @site.errors, status: :unprocessable_entity }
72
+ end
73
+ end
74
+ end
75
+
76
+ # DELETE /sites/1
77
+ # DELETE /sites/1.json
78
+ def destroy
79
+ @site = Site.find(params[:id])
80
+ @site.destroy
81
+
82
+ respond_to do |format|
83
+ format.html { redirect_to sites_url }
84
+ format.json { head :no_content }
85
+ end
86
+ end
87
+ end
88
+ end
89
+ end