push_type_admin 0.1.0.beta3

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 (273) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.md +20 -0
  3. data/README.md +3 -0
  4. data/app/assets/images/push_type/icon-file-audio.png +0 -0
  5. data/app/assets/images/push_type/icon-file-document.png +0 -0
  6. data/app/assets/images/push_type/icon-file-video.png +0 -0
  7. data/app/assets/images/push_type/pushtype-logo.png +0 -0
  8. data/app/assets/javascripts/push_type/admin.js.coffee +74 -0
  9. data/app/assets/javascripts/push_type/asset_pipeline.js.coffee.erb +17 -0
  10. data/app/assets/javascripts/push_type/assets.js.coffee +61 -0
  11. data/app/assets/javascripts/push_type/nodes.js.coffee +60 -0
  12. data/app/assets/stylesheets/push_type/admin.scss +515 -0
  13. data/app/assets/stylesheets/push_type/foundation_and_overrides.scss +1443 -0
  14. data/app/assets/stylesheets/push_type/froala_theme.scss +373 -0
  15. data/app/controllers/push_type/admin_controller.rb +14 -0
  16. data/app/controllers/push_type/assets_controller.rb +68 -0
  17. data/app/controllers/push_type/nodes_controller.rb +93 -0
  18. data/app/controllers/push_type/users_controller.rb +73 -0
  19. data/app/helpers/push_type/admin_helper.rb +15 -0
  20. data/app/helpers/push_type/assets_helper.rb +15 -0
  21. data/app/helpers/push_type/users_helper.rb +13 -0
  22. data/app/views/kaminari/_first_page.html.haml +2 -0
  23. data/app/views/kaminari/_gap.html.haml +2 -0
  24. data/app/views/kaminari/_last_page.html.haml +2 -0
  25. data/app/views/kaminari/_next_page.html.haml +2 -0
  26. data/app/views/kaminari/_page.html.haml +2 -0
  27. data/app/views/kaminari/_paginator.html.haml +11 -0
  28. data/app/views/kaminari/_prev_page.html.haml +2 -0
  29. data/app/views/layouts/push_type/admin.html.erb +55 -0
  30. data/app/views/push_type/assets/_form.html.haml +50 -0
  31. data/app/views/push_type/assets/edit.html.haml +4 -0
  32. data/app/views/push_type/assets/index.html.haml +34 -0
  33. data/app/views/push_type/assets/new.html.haml +4 -0
  34. data/app/views/push_type/fields/_default.html.haml +2 -0
  35. data/app/views/push_type/nodes/_form_fields.html.haml +61 -0
  36. data/app/views/push_type/nodes/_meta_table.html.haml +8 -0
  37. data/app/views/push_type/nodes/_new_node_button.html.haml +17 -0
  38. data/app/views/push_type/nodes/edit.html.haml +7 -0
  39. data/app/views/push_type/nodes/index.html.haml +56 -0
  40. data/app/views/push_type/nodes/new.html.haml +11 -0
  41. data/app/views/push_type/users/_form.html.haml +30 -0
  42. data/app/views/push_type/users/_meta_table.html.haml +0 -0
  43. data/app/views/push_type/users/_user.html.haml +7 -0
  44. data/app/views/push_type/users/edit.html.haml +4 -0
  45. data/app/views/push_type/users/index.html.haml +24 -0
  46. data/app/views/push_type/users/new.html.haml +4 -0
  47. data/config/initializers/inline_error_messages.rb +7 -0
  48. data/config/initializers/kaminari_config.rb +10 -0
  49. data/config/routes.rb +16 -0
  50. data/lib/push_type/admin/engine.rb +16 -0
  51. data/lib/push_type/admin.rb +27 -0
  52. data/lib/push_type/breadcrumbs/foundation.rb +11 -0
  53. data/lib/push_type/rails/form_builder.rb +13 -0
  54. data/lib/push_type_admin.rb +1 -0
  55. data/lib/tasks/push_type_tasks.rake +4 -0
  56. data/test/controllers/push_type/assets_controller_test.rb +67 -0
  57. data/test/controllers/push_type/nodes_controller_test.rb +101 -0
  58. data/test/controllers/push_type/users_controller_test.rb +72 -0
  59. data/test/dummy/README.rdoc +28 -0
  60. data/test/dummy/Rakefile +6 -0
  61. data/test/dummy/app/assets/javascripts/application.js +16 -0
  62. data/test/dummy/app/assets/stylesheets/application.css +15 -0
  63. data/test/dummy/app/controllers/application_controller.rb +5 -0
  64. data/test/dummy/app/helpers/application_helper.rb +2 -0
  65. data/test/dummy/app/models/page.rb +10 -0
  66. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  67. data/test/dummy/app/views/nodes/page.html.erb +3 -0
  68. data/test/dummy/bin/bundle +3 -0
  69. data/test/dummy/bin/rails +4 -0
  70. data/test/dummy/bin/rake +4 -0
  71. data/test/dummy/config/application.rb +14 -0
  72. data/test/dummy/config/boot.rb +4 -0
  73. data/test/dummy/config/database.yml +85 -0
  74. data/test/dummy/config/environment.rb +5 -0
  75. data/test/dummy/config/environments/development.rb +37 -0
  76. data/test/dummy/config/environments/production.rb +78 -0
  77. data/test/dummy/config/environments/test.rb +39 -0
  78. data/test/dummy/config/initializers/assets.rb +8 -0
  79. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  80. data/test/dummy/config/initializers/cookies_serializer.rb +3 -0
  81. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  82. data/test/dummy/config/initializers/inflections.rb +16 -0
  83. data/test/dummy/config/initializers/mime_types.rb +4 -0
  84. data/test/dummy/config/initializers/push_type.rb +5 -0
  85. data/test/dummy/config/initializers/session_store.rb +3 -0
  86. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  87. data/test/dummy/config/locales/en.yml +23 -0
  88. data/test/dummy/config/routes.rb +59 -0
  89. data/test/dummy/config/secrets.yml +22 -0
  90. data/test/dummy/config.ru +4 -0
  91. data/test/dummy/db/migrate/20141205213506_create_push_type_users.push_type.rb +13 -0
  92. data/test/dummy/db/migrate/20141205213507_create_push_type_nodes.push_type.rb +25 -0
  93. data/test/dummy/db/migrate/20141205213508_create_push_type_node_hierarchies.push_type.rb +17 -0
  94. data/test/dummy/db/migrate/20141205213509_create_push_type_assets.push_type.rb +19 -0
  95. data/test/dummy/db/schema.rb +67 -0
  96. data/test/dummy/db/seeds.rb +7 -0
  97. data/test/dummy/log/test.log +2322 -0
  98. data/test/dummy/public/404.html +67 -0
  99. data/test/dummy/public/422.html +67 -0
  100. data/test/dummy/public/500.html +66 -0
  101. data/test/dummy/public/favicon.ico +0 -0
  102. data/test/dummy/public/robots.txt +5 -0
  103. data/test/dummy/tmp/cache/assets/test/sass/53cc07db53069364c4116d03ae9493d85566d502/_functions.scssc +0 -0
  104. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_accordion.scssc +0 -0
  105. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_alert-boxes.scssc +0 -0
  106. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_block-grid.scssc +0 -0
  107. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_breadcrumbs.scssc +0 -0
  108. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_button-groups.scssc +0 -0
  109. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_buttons.scssc +0 -0
  110. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_clearing.scssc +0 -0
  111. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_dropdown-buttons.scssc +0 -0
  112. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_dropdown.scssc +0 -0
  113. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_flex-video.scssc +0 -0
  114. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_forms.scssc +0 -0
  115. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_global.scssc +0 -0
  116. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_grid.scssc +0 -0
  117. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_icon-bar.scssc +0 -0
  118. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_inline-lists.scssc +0 -0
  119. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_joyride.scssc +0 -0
  120. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_keystrokes.scssc +0 -0
  121. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_labels.scssc +0 -0
  122. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_magellan.scssc +0 -0
  123. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_offcanvas.scssc +0 -0
  124. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_orbit.scssc +0 -0
  125. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_pagination.scssc +0 -0
  126. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_panels.scssc +0 -0
  127. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_pricing-tables.scssc +0 -0
  128. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_progress-bars.scssc +0 -0
  129. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_range-slider.scssc +0 -0
  130. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_reveal.scssc +0 -0
  131. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_side-nav.scssc +0 -0
  132. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_split-buttons.scssc +0 -0
  133. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_sub-nav.scssc +0 -0
  134. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_switches.scssc +0 -0
  135. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_tables.scssc +0 -0
  136. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_tabs.scssc +0 -0
  137. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_thumbs.scssc +0 -0
  138. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_tooltips.scssc +0 -0
  139. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_top-bar.scssc +0 -0
  140. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_type.scssc +0 -0
  141. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_visibility.scssc +0 -0
  142. data/test/dummy/tmp/cache/assets/test/sass/68968d876746de0885a03aacd18ec354e154ffed/foundation-icons.scssc +0 -0
  143. data/test/dummy/tmp/cache/assets/test/sass/805c0b657f4b79d174c13bc42a4759a57d5a5484/foundation.scssc +0 -0
  144. data/test/dummy/tmp/cache/assets/test/sass/806626419a476c98acb0fcf38feea6623fb99ce0/admin.scssc +0 -0
  145. data/test/dummy/tmp/cache/assets/test/sass/806626419a476c98acb0fcf38feea6623fb99ce0/foundation_and_overrides.scssc +0 -0
  146. data/test/dummy/tmp/cache/assets/test/sass/806626419a476c98acb0fcf38feea6623fb99ce0/froala_theme.scssc +0 -0
  147. data/test/dummy/tmp/cache/assets/test/sprockets/00ae61e049df7e5570b8c57835868cfe +0 -0
  148. data/test/dummy/tmp/cache/assets/test/sprockets/042e6dec69dbf88f86f5e8c360b52bcb +0 -0
  149. data/test/dummy/tmp/cache/assets/test/sprockets/0448802b256c25a379824969bf01241e +0 -0
  150. data/test/dummy/tmp/cache/assets/test/sprockets/05f11ba90b1f59f6a65002fef96de531 +0 -0
  151. data/test/dummy/tmp/cache/assets/test/sprockets/090f2c9bc57f8e73105a98a800051354 +0 -0
  152. data/test/dummy/tmp/cache/assets/test/sprockets/09fd8b22d7c059ed78b065ffa44138a4 +0 -0
  153. data/test/dummy/tmp/cache/assets/test/sprockets/0a01f1c3288f982772ed595695292767 +0 -0
  154. data/test/dummy/tmp/cache/assets/test/sprockets/0b83e9e8467b82a0991df336697846e0 +0 -0
  155. data/test/dummy/tmp/cache/assets/test/sprockets/10a718d020e26634ffd3071d63270dd1 +0 -0
  156. data/test/dummy/tmp/cache/assets/test/sprockets/12375f1bf3d91db0a06c3fc436918949 +0 -0
  157. data/test/dummy/tmp/cache/assets/test/sprockets/12a4fbfdcb2f1ed98ebd869761bce11e +0 -0
  158. data/test/dummy/tmp/cache/assets/test/sprockets/1505f3ddd93d7be2405c81d84a45cbfb +0 -0
  159. data/test/dummy/tmp/cache/assets/test/sprockets/161b66dc0b76d65e577b5465f86cb767 +0 -0
  160. data/test/dummy/tmp/cache/assets/test/sprockets/18ee507bade4f16ba4f6a5c93f3aac22 +0 -0
  161. data/test/dummy/tmp/cache/assets/test/sprockets/1c63cb75109171c505bf1b6b3f26513b +0 -0
  162. data/test/dummy/tmp/cache/assets/test/sprockets/1da46bb361bbd7b80dc66e5737dbf2a7 +0 -0
  163. data/test/dummy/tmp/cache/assets/test/sprockets/2479bd5cbccdeac3ab4df62c2c12e8d3 +0 -0
  164. data/test/dummy/tmp/cache/assets/test/sprockets/2599cde7c63354f12928a204c42fe68b +0 -0
  165. data/test/dummy/tmp/cache/assets/test/sprockets/25b238c2ec907a80d53955a0bb81073c +0 -0
  166. data/test/dummy/tmp/cache/assets/test/sprockets/2821176477eee8de7b9581f0564d0947 +0 -0
  167. data/test/dummy/tmp/cache/assets/test/sprockets/2a00ce050c10f75691b820576ec3aefd +0 -0
  168. data/test/dummy/tmp/cache/assets/test/sprockets/2a854446f76c1902defbfa436b1e7df8 +0 -0
  169. data/test/dummy/tmp/cache/assets/test/sprockets/2c745da65bdbc8ebb88b6bce026972b9 +0 -0
  170. data/test/dummy/tmp/cache/assets/test/sprockets/2d1bc2b9dc5ee0ed5635abc31fb1bc88 +0 -0
  171. data/test/dummy/tmp/cache/assets/test/sprockets/31c57ad31a65f9a951c6d7268cdedae5 +0 -0
  172. data/test/dummy/tmp/cache/assets/test/sprockets/337d12a0890572dfec336aa11e864651 +0 -0
  173. data/test/dummy/tmp/cache/assets/test/sprockets/3a2e7d8d06318496bd7e5c6bac44adf8 +0 -0
  174. data/test/dummy/tmp/cache/assets/test/sprockets/3d4f40cd6363f1841fa7c17dcbd281ce +0 -0
  175. data/test/dummy/tmp/cache/assets/test/sprockets/47dcfb84d9a092ad939f512e1d3db43c +0 -0
  176. data/test/dummy/tmp/cache/assets/test/sprockets/48582f4afd1c515e7eb10a8fc2195deb +0 -0
  177. data/test/dummy/tmp/cache/assets/test/sprockets/4c6b223eba19a3d4009cbda20ed1ae2d +0 -0
  178. data/test/dummy/tmp/cache/assets/test/sprockets/4fc498f23125a9811434c6d5d5b43b64 +0 -0
  179. data/test/dummy/tmp/cache/assets/test/sprockets/505162da4e90217e5f52f5e8f1922a0d +0 -0
  180. data/test/dummy/tmp/cache/assets/test/sprockets/557b45e924759b342404ddfb736f95a2 +0 -0
  181. data/test/dummy/tmp/cache/assets/test/sprockets/55d58e1add1ca367e262464e83ad82cf +0 -0
  182. data/test/dummy/tmp/cache/assets/test/sprockets/55d7985953b175268932d2f7e50f64e0 +0 -0
  183. data/test/dummy/tmp/cache/assets/test/sprockets/59992ed1702654aa166f8572af80a301 +0 -0
  184. data/test/dummy/tmp/cache/assets/test/sprockets/600202d00479f08d2e69019e34d12e65 +0 -0
  185. data/test/dummy/tmp/cache/assets/test/sprockets/62462f7d0da5dfe3ae7923c7c21325c0 +0 -0
  186. data/test/dummy/tmp/cache/assets/test/sprockets/666e486cb09d9612ba03d995085ea02d +0 -0
  187. data/test/dummy/tmp/cache/assets/test/sprockets/67d67f783372c9b99e2ff84c12d38dfb +0 -0
  188. data/test/dummy/tmp/cache/assets/test/sprockets/6d21cd96abbcb6506d99fb93e8a11196 +0 -0
  189. data/test/dummy/tmp/cache/assets/test/sprockets/6e714e8b8ac03d2e562e8a71c40e00f8 +0 -0
  190. data/test/dummy/tmp/cache/assets/test/sprockets/6f2f2b2fbb1097278be40facf7aa8447 +0 -0
  191. data/test/dummy/tmp/cache/assets/test/sprockets/72e0f0b80593c7ccfaf939c504f8127f +0 -0
  192. data/test/dummy/tmp/cache/assets/test/sprockets/7326e3e660754d56c46671c7347c5e97 +0 -0
  193. data/test/dummy/tmp/cache/assets/test/sprockets/75c5663a92b2003b794d5f5d184fde44 +0 -0
  194. data/test/dummy/tmp/cache/assets/test/sprockets/7b63c613f1053bde6004342003178a0e +0 -0
  195. data/test/dummy/tmp/cache/assets/test/sprockets/7d07558d12b9bd9b9dfa778344bab4ac +0 -0
  196. data/test/dummy/tmp/cache/assets/test/sprockets/7ea9d575b03f8effb678d4dcedf3d079 +0 -0
  197. data/test/dummy/tmp/cache/assets/test/sprockets/7f0b91f5fa71c52d3cbe1f108fb7c942 +0 -0
  198. data/test/dummy/tmp/cache/assets/test/sprockets/805c63977d339feb2ea7b61e1141a32f +0 -0
  199. data/test/dummy/tmp/cache/assets/test/sprockets/81ba6a364949bd4ffe2732ae5745012d +0 -0
  200. data/test/dummy/tmp/cache/assets/test/sprockets/81e2498e0e1457dd93b47780ae28fc03 +0 -0
  201. data/test/dummy/tmp/cache/assets/test/sprockets/897553ff72f546645e24e94feec75255 +0 -0
  202. data/test/dummy/tmp/cache/assets/test/sprockets/8a34d99aaa243ebb4e60f483a5b5a817 +0 -0
  203. data/test/dummy/tmp/cache/assets/test/sprockets/8e20677e2b4bd3f063a63fcf9e673971 +0 -0
  204. data/test/dummy/tmp/cache/assets/test/sprockets/8feb3d758b7824f15b301f9dc024c3f6 +0 -0
  205. data/test/dummy/tmp/cache/assets/test/sprockets/932f699ead87a4b9910d47334ed14d60 +0 -0
  206. data/test/dummy/tmp/cache/assets/test/sprockets/959fa77a7302a3002d5fb1394575117b +0 -0
  207. data/test/dummy/tmp/cache/assets/test/sprockets/969e05674f51d3b5b500e605e0292573 +0 -0
  208. data/test/dummy/tmp/cache/assets/test/sprockets/972e71e7d6b360ef56c88716f3191aaf +0 -0
  209. data/test/dummy/tmp/cache/assets/test/sprockets/98228623f6175426b2d7964b4a921cbb +0 -0
  210. data/test/dummy/tmp/cache/assets/test/sprockets/987bf17b1a3915d5c6d95ebda01e8f49 +0 -0
  211. data/test/dummy/tmp/cache/assets/test/sprockets/9aef3ae1f0c62b895d86ab60901dd450 +0 -0
  212. data/test/dummy/tmp/cache/assets/test/sprockets/9f65b180bd79d7b67e5fb1fe8ded1383 +0 -0
  213. data/test/dummy/tmp/cache/assets/test/sprockets/a4ee671663a58ce1f1860b1e9a9d17fb +0 -0
  214. data/test/dummy/tmp/cache/assets/test/sprockets/a55e988592ebc0d8e4e4ef1244ae4da7 +0 -0
  215. data/test/dummy/tmp/cache/assets/test/sprockets/a590260912e62280bb115dd52a953b18 +0 -0
  216. data/test/dummy/tmp/cache/assets/test/sprockets/a6453a78eb0c813a0b69a12cb7c4ab2c +0 -0
  217. data/test/dummy/tmp/cache/assets/test/sprockets/a721a930039ed66bd3f092ab1e9c8de6 +0 -0
  218. data/test/dummy/tmp/cache/assets/test/sprockets/a748bad0d4f5d6e6bbdf1b340905795b +0 -0
  219. data/test/dummy/tmp/cache/assets/test/sprockets/a96494099d559bfd8cb5257e21cb196c +0 -0
  220. data/test/dummy/tmp/cache/assets/test/sprockets/a970f64c67051f35069f45d8dad113a5 +0 -0
  221. data/test/dummy/tmp/cache/assets/test/sprockets/aaa6dc2bd59e21dd14b0c86a308a1d1f +0 -0
  222. data/test/dummy/tmp/cache/assets/test/sprockets/ac1b1f0c521a6acb5833209d7b18d888 +0 -0
  223. data/test/dummy/tmp/cache/assets/test/sprockets/b24f2d6f62512f4cb11c6a2e44bf90e4 +0 -0
  224. data/test/dummy/tmp/cache/assets/test/sprockets/b28bcc6d89b692e6b74758c30e21b862 +0 -0
  225. data/test/dummy/tmp/cache/assets/test/sprockets/b3b2a83d3d7d735130f0b029e58b29b8 +0 -0
  226. data/test/dummy/tmp/cache/assets/test/sprockets/b3d0193a1439465426a4d051a161291d +0 -0
  227. data/test/dummy/tmp/cache/assets/test/sprockets/b657c356e24f45a8b92d4f4da9ff361d +0 -0
  228. data/test/dummy/tmp/cache/assets/test/sprockets/b76beafa9aef0c7a18bf63fe612ecd17 +0 -0
  229. data/test/dummy/tmp/cache/assets/test/sprockets/b771c2de3967bda011cf04e0979497cf +0 -0
  230. data/test/dummy/tmp/cache/assets/test/sprockets/b8a73c4d259957f05d45cb5d96d41ff1 +0 -0
  231. data/test/dummy/tmp/cache/assets/test/sprockets/ba87909b8d71ddaedd84c3f6c00dce72 +0 -0
  232. data/test/dummy/tmp/cache/assets/test/sprockets/badf6e6ab7c3d1cc2b180e5883005a40 +0 -0
  233. data/test/dummy/tmp/cache/assets/test/sprockets/bbfc8dec2c2cc07cf4c1708597316a77 +0 -0
  234. data/test/dummy/tmp/cache/assets/test/sprockets/bc732efa6ca399217b023bd1e04f0404 +0 -0
  235. data/test/dummy/tmp/cache/assets/test/sprockets/bd5b45287cfdac63ed7199b7982da02f +0 -0
  236. data/test/dummy/tmp/cache/assets/test/sprockets/bee4e1605077e29abd380b05b645cbb4 +0 -0
  237. data/test/dummy/tmp/cache/assets/test/sprockets/c0e7a018799e51565da4aae3cd7409b4 +0 -0
  238. data/test/dummy/tmp/cache/assets/test/sprockets/c190d0bdd188c43629f35b9f463b86af +0 -0
  239. data/test/dummy/tmp/cache/assets/test/sprockets/c2b59fd99edc4b53754f7cb4e160452f +0 -0
  240. data/test/dummy/tmp/cache/assets/test/sprockets/c42a7aac68d827f88bcc25a41cdb5591 +0 -0
  241. data/test/dummy/tmp/cache/assets/test/sprockets/c5ef052e357af6829f6c522a38916fc7 +0 -0
  242. data/test/dummy/tmp/cache/assets/test/sprockets/c705dc7fb9e60c7d39b5c23a101cd830 +0 -0
  243. data/test/dummy/tmp/cache/assets/test/sprockets/c988fd2c5c9497ccef54f79a9e444ac6 +0 -0
  244. data/test/dummy/tmp/cache/assets/test/sprockets/cb761fc7bfc4c192abf5c946f863ab1e +0 -0
  245. data/test/dummy/tmp/cache/assets/test/sprockets/ce523687d631719d872f2869d34803b0 +0 -0
  246. data/test/dummy/tmp/cache/assets/test/sprockets/d2215e57429ecae68a054210e665d787 +0 -0
  247. data/test/dummy/tmp/cache/assets/test/sprockets/d30a320df486e076298c602d428f3145 +0 -0
  248. data/test/dummy/tmp/cache/assets/test/sprockets/d3921fc37cc437f0933c4dee9d089fd8 +0 -0
  249. data/test/dummy/tmp/cache/assets/test/sprockets/d527d40cd214f965c2751831ef138ba7 +0 -0
  250. data/test/dummy/tmp/cache/assets/test/sprockets/d8daf6c8e5df881485c0e1139a275f6d +0 -0
  251. data/test/dummy/tmp/cache/assets/test/sprockets/d9e5382620928a6b4a8cd70bdac10aa3 +0 -0
  252. data/test/dummy/tmp/cache/assets/test/sprockets/dd803fd7a93619599c7e703c2b307411 +0 -0
  253. data/test/dummy/tmp/cache/assets/test/sprockets/e05796fbbc7fcdcaefdd97534f2e4030 +0 -0
  254. data/test/dummy/tmp/cache/assets/test/sprockets/e1c3eff1f3886da4c71a854d42077d10 +0 -0
  255. data/test/dummy/tmp/cache/assets/test/sprockets/e568172da8ab8581f83f98dad0a73d29 +0 -0
  256. data/test/dummy/tmp/cache/assets/test/sprockets/f02093872b151ddb0fd1074fe83ff846 +0 -0
  257. data/test/dummy/tmp/cache/assets/test/sprockets/f100237ea34e5360da23f95cca21c340 +0 -0
  258. data/test/dummy/tmp/cache/assets/test/sprockets/f25b88a46a5a3b1b179079f6c0e4039a +0 -0
  259. data/test/dummy/tmp/cache/assets/test/sprockets/f31d581aaa301ef9ef6a08edc4319c35 +0 -0
  260. data/test/dummy/tmp/cache/assets/test/sprockets/f5fcab9d313889bf6d14a05040aff5bc +0 -0
  261. data/test/dummy/tmp/cache/assets/test/sprockets/f66bf7665e75e4d537977c71a5e39a4e +0 -0
  262. data/test/dummy/tmp/cache/assets/test/sprockets/f6c61aec4cc93384f9655a7d8aba73fe +0 -0
  263. data/test/dummy/tmp/cache/assets/test/sprockets/fa7e1f9a13f606e2603a17f8e00aa32a +0 -0
  264. data/test/dummy/tmp/cache/assets/test/sprockets/fcce52ee43ecad8cb3f18fc8f13a66b7 +0 -0
  265. data/test/dummy/tmp/cache/assets/test/sprockets/fd5e59fed8301f86b74e551534fce2b2 +0 -0
  266. data/test/helpers/push_type/admin_helper_test.rb +25 -0
  267. data/test/helpers/push_type/assets_helper_test.rb +26 -0
  268. data/test/test_helper.rb +19 -0
  269. data/vendor/assets/javascripts/confirm_with_reveal.js.coffee +148 -0
  270. data/vendor/assets/javascripts/jquery.filedrop.js +568 -0
  271. data/vendor/assets/javascripts/jquery.sortable.js +81 -0
  272. data/vendor/assets/javascripts/jquery.sticky.js +170 -0
  273. metadata +724 -0
@@ -0,0 +1,373 @@
1
+ .pt-theme.froala-box {
2
+ margin-bottom: rem-calc(20);
3
+ }
4
+ .pt-theme.froala-box.focus {
5
+ box-shadow: $input-box-shadow;
6
+ background: $input-focus-bg-color;
7
+ border-color: $input-focus-border-color;
8
+ }
9
+ .pt-theme.froala-box .froala-element {
10
+ box-shadow: inset 0 1px 2px rgba(0,0,0,0.1);
11
+ }
12
+ .pt-theme.froala-box .html-switch {
13
+ border-color: #aaaaaa;
14
+ }
15
+ .pt-theme.froala-box .froala-element hr {
16
+ border-top-color: $input-border-color;
17
+ }
18
+ .pt-theme.froala-box .froala-element.f-placeholder:before {
19
+ color: $input-border-color;
20
+ }
21
+ .pt-theme.froala-box .froala-element pre {
22
+ border: solid 1px $input-border-color;
23
+ background: #fcfcfc;
24
+ border-radius: 4px;
25
+ -moz-border-radius: 4px;
26
+ -webkit-border-radius: 4px;
27
+ -moz-background-clip: padding;
28
+ -webkit-background-clip: padding-box;
29
+ background-clip: padding-box;
30
+ }
31
+ .pt-theme.froala-box .froala-element blockquote {
32
+ border-left: solid 5px $input-border-color;
33
+ }
34
+ .pt-theme.froala-box .froala-element img {
35
+ min-width: 32px !important;
36
+ min-height: 32px !important;
37
+ }
38
+ .pt-theme.froala-box .froala-element img.fr-fil {
39
+ padding: 10px 10px 10px 3px;
40
+ }
41
+ .pt-theme.froala-box .froala-element img.fr-fir {
42
+ padding: 10px 3px 10px 10px;
43
+ }
44
+ .pt-theme.froala-box .froala-element img.fr-fin {
45
+ padding: 10px 0;
46
+ }
47
+ .pt-theme.froala-box .froala-element img::selection {
48
+ color: #ffffff;
49
+ }
50
+ .pt-theme.froala-box .froala-element img::-moz-selection {
51
+ color: #ffffff;
52
+ }
53
+ .pt-theme.froala-box .froala-element span.f-img-editor:before {
54
+ border: solid 2px #ffffff !important;
55
+ outline: solid 1px $input-border-color !important;
56
+ }
57
+ .pt-theme.froala-box .froala-element span.f-img-editor.fr-fil {
58
+ margin: 10px 10px 10px 3px;
59
+ }
60
+ .pt-theme.froala-box .froala-element span.f-img-editor.fr-fir {
61
+ margin: 10px 3px 10px 10px;
62
+ }
63
+ .pt-theme.froala-box .froala-element span.f-img-editor.fr-fin {
64
+ margin: 10px 0;
65
+ }
66
+ .pt-theme.froala-box .froala-element span.f-img-handle {
67
+ height: 13px;
68
+ width: 13px;
69
+ border: solid 1px $input-border-color !important;
70
+ background: #ffffff;
71
+ }
72
+ .pt-theme.froala-box .froala-element span.f-video-editor.active:after {
73
+ border: solid 1px $input-border-color;
74
+ }
75
+ .pt-theme.froala-box .froala-wrapper {
76
+ border: solid 1px $input-border-color;
77
+ }
78
+ .pt-theme.froala-box .froala-element.f-basic {
79
+ //border: solid 1px $input-border-color;
80
+ background: transparent;
81
+ color: '#444';
82
+ }
83
+ .pt-theme.froala-box .froala-element.f-basic a {
84
+ color: inherit;
85
+ }
86
+ .pt-theme.froala-box .froala-element table td {
87
+ border: solid 1px $input-border-color;
88
+ }
89
+ .pt-theme.froala-box.f-html .froala-element {
90
+ background: #202020;
91
+ color: #ffffff;
92
+ font-family: 'Courier New', Monospace;
93
+ font-size: 13px;
94
+ }
95
+ .pt-theme.froala-editor {
96
+ background: #ffffff;
97
+ border: solid 1px $input-border-color;
98
+ border-top: solid 1px $input-border-color;
99
+ }
100
+ .pt-theme.froala-editor hr {
101
+ border-top-color: $input-border-color;
102
+ }
103
+ .pt-theme.froala-editor span.f-sep {
104
+ border-right: solid 1px $input-border-color;
105
+ height: 35px;
106
+ }
107
+ .pt-theme.froala-editor button.fr-bttn,
108
+ .pt-theme.froala-editor button.fr-trigger {
109
+ background: transparent;
110
+ color: $primary-color;
111
+ font-size: 16px;
112
+ line-height: 35px;
113
+ width: 40px;
114
+ }
115
+ .pt-theme.froala-editor button.fr-bttn img,
116
+ .pt-theme.froala-editor button.fr-trigger img {
117
+ max-width: 40px;
118
+ max-height: 35px;
119
+ }
120
+ .pt-theme.froala-editor button.fr-bttn:disabled,
121
+ .pt-theme.froala-editor button.fr-trigger:disabled {
122
+ color: #aaaaaa !important;
123
+ }
124
+ .pt-theme.froala-editor button.fr-bttn:disabled:after,
125
+ .pt-theme.froala-editor button.fr-trigger:disabled:after {
126
+ border-top-color: #aaaaaa !important;
127
+ }
128
+ .pt-theme.froala-editor.ie8 button.fr-bttn:hover,
129
+ .pt-theme.froala-editor.ie8 button.fr-trigger:hover {
130
+ background: $primary-color;
131
+ color: #ffffff;
132
+ }
133
+ .pt-theme.froala-editor.ie8 button.fr-bttn:hover:after,
134
+ .pt-theme.froala-editor.ie8 button.fr-trigger:hover:after {
135
+ border-top-color: #ffffff;
136
+ }
137
+ .pt-theme.froala-editor .bttn-wrapper:not(.touch) button.fr-bttn:hover,
138
+ .pt-theme.froala-editor .froala-popup button.fr-bttn:hover,
139
+ .pt-theme.froala-editor .bttn-wrapper:not(.touch) button.fr-trigger:hover,
140
+ .pt-theme.froala-editor .froala-popup button.fr-trigger:hover {
141
+ background: $primary-color;
142
+ color: #ffffff;
143
+ }
144
+ .pt-theme.froala-editor .bttn-wrapper:not(.touch) button.fr-bttn:hover:after,
145
+ .pt-theme.froala-editor .froala-popup button.fr-bttn:hover:after,
146
+ .pt-theme.froala-editor .bttn-wrapper:not(.touch) button.fr-trigger:hover:after,
147
+ .pt-theme.froala-editor .froala-popup button.fr-trigger:hover:after {
148
+ border-top-color: #ffffff;
149
+ }
150
+ .pt-theme.froala-editor .fr-bttn.active {
151
+ color: $primary-color;
152
+ background: transparent;
153
+ }
154
+ .pt-theme.froala-editor .fr-trigger:after {
155
+ border-top-color: $primary-color;
156
+ }
157
+ .pt-theme.froala-editor .fr-trigger.active {
158
+ color: #ffffff;
159
+ background: $primary-color;
160
+ }
161
+ .pt-theme.froala-editor .fr-trigger.active:after {
162
+ border-top-color: #ffffff !important;
163
+ }
164
+ .pt-theme.froala-editor .fr-dropdown .fr-trigger {
165
+ width: calc(38px);
166
+ }
167
+ .pt-theme.froala-editor .fr-dropdown .fr-dropdown-menu {
168
+ background: #ffffff;
169
+ border: solid 1px $input-border-color;
170
+ }
171
+ .pt-theme.froala-editor .fr-dropdown .fr-dropdown-menu li.active a {
172
+ background: $primary-color !important;
173
+ color: #ffffff !important;
174
+ }
175
+ .pt-theme.froala-editor .fr-dropdown .fr-dropdown-menu li a {
176
+ color: $primary-color;
177
+ }
178
+ .pt-theme.froala-editor .fr-dropdown .fr-dropdown-menu li a:hover {
179
+ background: $primary-color !important;
180
+ color: #ffffff !important;
181
+ }
182
+ .pt-theme.froala-editor .fr-dropdown .fr-dropdown-menu.fr-table > li:hover > a,
183
+ .pt-theme.froala-editor .fr-dropdown .fr-dropdown-menu.fr-table > li.hover > a {
184
+ background: $primary-color;
185
+ color: #ffffff;
186
+ }
187
+ .pt-theme.froala-editor .fr-dropdown .fr-dropdown-menu.fr-table > li > ul {
188
+ background: #ffffff;
189
+ color: $primary-color;
190
+ border: solid 1px $input-border-color;
191
+ }
192
+ .pt-theme.froala-editor .fr-dropdown .fr-dropdown-menu.fr-table > li > div {
193
+ background: #ffffff;
194
+ color: $primary-color;
195
+ border: solid 1px $input-border-color;
196
+ }
197
+ .pt-theme.froala-editor .fr-dropdown .fr-dropdown-menu.fr-table > li > div > span > span {
198
+ border: solid 1px $input-border-color;
199
+ }
200
+ .pt-theme.froala-editor .fr-dropdown .fr-dropdown-menu.fr-table > li > div > span:hover > span,
201
+ .pt-theme.froala-editor .fr-dropdown .fr-dropdown-menu.fr-table > li > div > span.hover > span {
202
+ background: rgba(61, 142, 185, 0.3);
203
+ border: solid 1px #3d8eb9;
204
+ }
205
+ .pt-theme.froala-editor .fr-dropdown .fr-dropdown-menu.fr-table > hr {
206
+ border-top: solid 1px $input-border-color;
207
+ }
208
+ .pt-theme.froala-editor .fr-dropdown.fr-color-picker .fr-dropdown-menu p {
209
+ color: #444444;
210
+ }
211
+ .pt-theme.froala-editor .fr-dropdown.fr-color-picker .fr-dropdown-menu p a.fr-bttn {
212
+ color: #444444;
213
+ }
214
+ .pt-theme.froala-editor .fr-dropdown.fr-color-picker .fr-dropdown-menu p a.fr-bttn:hover {
215
+ color: $primary-color;
216
+ }
217
+ .pt-theme.froala-editor .fr-dropdown.fr-color-picker .fr-dropdown-menu .fr-color-bttn.active {
218
+ outline: solid 1px $input-border-color;
219
+ }
220
+ .pt-theme.froala-editor .fr-dropdown.fr-color-picker .fr-dropdown-menu .fr-color-bttn.active:after {
221
+ color: #ffffff;
222
+ }
223
+ .pt-theme.froala-editor .fr-dropdown.fr-color-picker .fr-dropdown-menu .fr-color-bttn:hover:not(:focus):not(:active) {
224
+ outline: solid 1px $input-border-color;
225
+ }
226
+ .pt-theme.froala-editor .froala-popup {
227
+ background: #ffffff;
228
+ }
229
+ .pt-theme.froala-editor .froala-popup h4 {
230
+ color: #444444;
231
+ }
232
+ .pt-theme.froala-editor .froala-popup h4 i {
233
+ color: $input-border-color;
234
+ }
235
+ .pt-theme.froala-editor .froala-popup h4 i.fa-external-link {
236
+ color: #444444;
237
+ }
238
+ .pt-theme.froala-editor .froala-popup h4 i.fa-external-link:hover {
239
+ color: $primary-color;
240
+ }
241
+ .pt-theme.froala-editor .froala-popup h4 i:hover {
242
+ color: #444444;
243
+ }
244
+ .pt-theme.froala-editor .froala-popup button:not(.fr-bttn):not(.fr-trigger) {
245
+ color: #ffffff;
246
+ }
247
+ .pt-theme.froala-editor .froala-popup button:not(.fr-bttn):not(.fr-trigger).f-ok {
248
+ background: #2c82c9;
249
+ color: #ffffff;
250
+ }
251
+ .pt-theme.froala-editor .froala-popup button:not(.fr-bttn):not(.fr-trigger).f-unlink {
252
+ background: #b8312f;
253
+ color: #ffffff;
254
+ }
255
+ .pt-theme.froala-editor .froala-popup button:not(.fr-bttn):not(.fr-trigger).f-unlink:hover {
256
+ background: #353535;
257
+ color: #ffffff;
258
+ }
259
+ .pt-theme.froala-editor .froala-popup button:not(.fr-bttn):not(.fr-trigger):hover,
260
+ .pt-theme.froala-editor .froala-popup button:not(.fr-bttn):not(.fr-trigger):focus {
261
+ background: #353535;
262
+ color: #ffffff;
263
+ }
264
+ .pt-theme.froala-editor .froala-popup div.f-popup-line.f-popup-toolbar {
265
+ background: #ffffff;
266
+ }
267
+ .pt-theme.froala-editor .froala-popup div.f-popup-line label {
268
+ color: #444444;
269
+ }
270
+ .pt-theme.froala-editor .froala-popup div.f-popup-line input[type="text"] {
271
+ border: solid 1px $input-border-color;
272
+ }
273
+ .pt-theme.froala-editor .froala-popup div.f-popup-line input[type="text"]:focus {
274
+ border: solid 1px #54acd2;
275
+ }
276
+ .pt-theme.froala-editor .froala-popup div.f-popup-line input[type="text"]:disabled {
277
+ background: #ffffff;
278
+ color: #aaaaaa;
279
+ }
280
+ .pt-theme.froala-editor .froala-popup div.f-popup-line textarea {
281
+ border: solid 1px $input-border-color;
282
+ }
283
+ .pt-theme.froala-editor .froala-popup div.f-popup-line textarea:focus {
284
+ border: solid 1px #54acd2;
285
+ }
286
+ .pt-theme.froala-editor .froala-popup.froala-image-editor-popup div.f-popup-line + div.f-popup-line {
287
+ border-top: solid 1px $input-border-color;
288
+ }
289
+ .pt-theme.froala-editor .froala-popup.froala-video-popup p.or {
290
+ color: #444444;
291
+ }
292
+ .pt-theme.froala-editor .froala-popup.froala-image-popup div.f-popup-line.drop-upload div.f-upload {
293
+ color: #444444;
294
+ border: dashed 2px $input-border-color;
295
+ }
296
+ .pt-theme.froala-editor .froala-popup.froala-image-popup div.f-popup-line.drop-upload div.f-upload:hover {
297
+ border: dashed 2px #353535;
298
+ }
299
+ .pt-theme.froala-editor .froala-popup.froala-image-popup div.f-popup-line.drop-upload div.f-upload.f-hover {
300
+ border: dashed 2px #61bd6d;
301
+ }
302
+ .pt-theme.froala-editor .froala-popup.froala-image-popup div.f-popup-line button.f-browse {
303
+ background: #475577;
304
+ color: #ffffff;
305
+ }
306
+ .pt-theme.froala-editor .froala-popup.froala-image-popup div.f-popup-line button.f-browse:hover {
307
+ background: #353535;
308
+ color: #ffffff;
309
+ }
310
+ .pt-theme.froala-editor .froala-popup.froala-image-popup div.f-popup-line + div.f-popup-line {
311
+ border-top: solid 1px $input-border-color;
312
+ }
313
+ .pt-theme.froala-editor .froala-popup.froala-image-popup p.f-progress {
314
+ background-color: #61bd6d;
315
+ }
316
+ .pt-theme.froala-editor .froala-popup.froala-image-popup p.f-progress span {
317
+ background-color: #61bd6d;
318
+ color: #ffffff;
319
+ }
320
+ .pt-theme.froala-editor .froala-popup.froala-link-popup div.f-popup-line .f-browse-links {
321
+ background: #475577;
322
+ color: #ffffff;
323
+ }
324
+ .pt-theme.froala-editor .froala-popup.froala-link-popup div.f-popup-line .f-browse-links:hover {
325
+ background: #353535;
326
+ color: #ffffff;
327
+ }
328
+ .pt-theme.froala-editor .froala-popup.froala-link-popup div.f-popup-line ul {
329
+ background: #ffffff;
330
+ border: solid 1px $input-border-color;
331
+ }
332
+ .pt-theme.froala-editor .froala-popup.froala-link-popup div.f-popup-line ul li {
333
+ color: $primary-color;
334
+ }
335
+ .pt-theme.froala-editor .froala-popup.froala-link-popup div.f-popup-line ul li + li {
336
+ border-top: solid 1px $input-border-color;
337
+ }
338
+ .pt-theme.froala-editor .froala-popup.froala-link-popup div.f-popup-line ul li:hover {
339
+ background: $primary-color;
340
+ color: #ffffff;
341
+ }
342
+ .pt-theme.froala-modal .f-modal-wrapper {
343
+ background: #ffffff;
344
+ border: solid 1px $input-border-color;
345
+ border-top: solid 1px $input-border-color;
346
+ }
347
+ .pt-theme.froala-modal .f-modal-wrapper h4 {
348
+ color: #444444;
349
+ }
350
+ .pt-theme.froala-modal .f-modal-wrapper h4 i {
351
+ color: $input-border-color;
352
+ }
353
+ .pt-theme.froala-modal .f-modal-wrapper h4 i:hover {
354
+ color: #444444;
355
+ }
356
+ .pt-theme.froala-modal .f-modal-wrapper div.f-image-list div.f-empty {
357
+ background: $input-border-color;
358
+ }
359
+ .pt-theme.froala-modal .f-modal-wrapper div.f-image-list div .f-delete-img {
360
+ background: #b8312f;
361
+ color: #ffffff;
362
+ }
363
+ .pt-theme.froala-modal .f-modal-wrapper div.f-image-list div .f-delete-img:hover {
364
+ background: #353535;
365
+ color: #ffffff;
366
+ }
367
+ .pt-theme.froala-modal .f-modal-wrapper div.f-image-list:not(.f-touch) div:hover .f-delete-img:hover {
368
+ background: #353535;
369
+ color: #ffffff;
370
+ }
371
+ .froala-overlay {
372
+ background: #000000;
373
+ }
@@ -0,0 +1,14 @@
1
+ module PushType
2
+ class AdminController < ActionController::Base
3
+
4
+ layout 'push_type/admin'
5
+ before_filter :initial_breadcrumb
6
+
7
+ protected
8
+
9
+ def push_type_user
10
+ respond_to?(:current_user) ? current_user : nil
11
+ end
12
+
13
+ end
14
+ end
@@ -0,0 +1,68 @@
1
+ require_dependency "push_type/admin_controller"
2
+
3
+ module PushType
4
+ class AssetsController < AdminController
5
+
6
+ before_filter :build_asset, only: [:new, :create]
7
+ before_filter :load_asset, only: [:edit, :update, :destroy]
8
+
9
+ respond_to :json, only: :upload
10
+
11
+ def index
12
+ @assets = PushType::Asset.not_trash.page(params[:page])
13
+ end
14
+
15
+ def new
16
+ end
17
+
18
+ def create
19
+ if @asset.save
20
+ flash[:notice] = 'File successfully uploaded.'
21
+ redirect_to push_type.assets_path
22
+ else
23
+ render 'new'
24
+ end
25
+ end
26
+
27
+ def upload
28
+ respond_with PushType::Asset.create(asset_params).to_json, location: false
29
+ end
30
+
31
+ def edit
32
+ end
33
+
34
+ def update
35
+ if @asset.update_attributes asset_params
36
+ flash[:notice] = 'Media successfully updated.'
37
+ redirect_to push_type.assets_path
38
+ else
39
+ render 'edit'
40
+ end
41
+ end
42
+
43
+ def destroy
44
+ @asset.trash!
45
+ flash[:notice] = 'Media trashed.'
46
+ redirect_to push_type.assets_path
47
+ end
48
+
49
+ private
50
+
51
+ def initial_breadcrumb
52
+ breadcrumbs.add 'Media', push_type.assets_path
53
+ end
54
+
55
+ def build_asset
56
+ @asset = PushType::Asset.new asset_params.merge(uploader: push_type_user)
57
+ end
58
+
59
+ def load_asset
60
+ @asset = PushType::Asset.find params[:id]
61
+ end
62
+
63
+ def asset_params
64
+ params.fetch(:asset, {}).permit(:file, :description)
65
+ end
66
+
67
+ end
68
+ end
@@ -0,0 +1,93 @@
1
+ require_dependency "push_type/admin_controller"
2
+
3
+ module PushType
4
+ class NodesController < AdminController
5
+
6
+ before_filter :build_node, only: [:new, :create]
7
+ before_filter :load_node, only: [:edit, :update, :destroy, :position]
8
+
9
+ def index
10
+ @nodes = node_scope.not_trash.page(params[:page])
11
+ end
12
+
13
+ def new
14
+ end
15
+
16
+ def create
17
+ if @node.save
18
+ flash[:notice] = "#{ @node.type } successfully created."
19
+ redirect_to redirect_path
20
+ else
21
+ render 'new'
22
+ end
23
+ end
24
+
25
+ def edit
26
+ end
27
+
28
+ def update
29
+ if @node.update_attributes node_params.merge(updater: push_type_user)
30
+ flash[:notice] = "#{ @node.type } successfully updated."
31
+ redirect_to redirect_path
32
+ else
33
+ render 'edit'
34
+ end
35
+ end
36
+
37
+ def destroy
38
+ @node.trash!
39
+ flash[:notice] = "#{ @node.type } trashed."
40
+ redirect_to redirect_path
41
+ end
42
+
43
+ def position
44
+ if reorder_node
45
+ head :ok
46
+ else
47
+ render json: @node.errors, status: :unprocessable_entity
48
+ end
49
+ end
50
+
51
+ private
52
+
53
+ def node_scope
54
+ @node_scope ||= if params[:node_id]
55
+ @parent = PushType::Node.find params[:node_id]
56
+ @parent.children
57
+ else
58
+ PushType::Node.roots
59
+ end
60
+ end
61
+
62
+ def build_node
63
+ @node = node_scope.new type: params[:kind].camelcase, creator: push_type_user, updater: push_type_user
64
+ @node.attributes = @node.attributes.merge(node_params)
65
+ end
66
+
67
+ def load_node
68
+ @node = PushType::Node.find params[:id]
69
+ end
70
+
71
+ def node_params
72
+ fields = [:title, :slug, :status, :published_at, :published_to] + @node.fields.keys
73
+ params.fetch(@node.type.downcase.to_sym, {}).permit(*fields)
74
+ end
75
+
76
+ def redirect_path
77
+ @node.root? ? push_type.nodes_path : push_type.node_nodes_path(@node.parent_id)
78
+ end
79
+
80
+ def initial_breadcrumb
81
+ breadcrumbs.add 'Content', push_type.nodes_path
82
+ end
83
+
84
+ def reorder_node
85
+ if params[:prev]
86
+ PushType::Node.find(params[:prev]).append_sibling(@node)
87
+ elsif params[:next]
88
+ PushType::Node.find(params[:next]).prepend_sibling(@node)
89
+ end
90
+ end
91
+
92
+ end
93
+ end
@@ -0,0 +1,73 @@
1
+ require_dependency "push_type/admin_controller"
2
+
3
+ module PushType
4
+ class UsersController < AdminController
5
+
6
+ before_filter :build_user, only: [:new, :create]
7
+ before_filter :load_user, only: [:edit, :update, :destroy]
8
+
9
+ def index
10
+ @users = user_scope.page(params[:page])
11
+ end
12
+
13
+ def new
14
+ end
15
+
16
+ def create
17
+ if @user.save
18
+ flash[:notice] = 'User successfully created.'
19
+ redirect_to push_type.users_path
20
+ else
21
+ render 'new'
22
+ end
23
+ end
24
+
25
+ def edit
26
+ end
27
+
28
+ def update
29
+ if @user.update_attributes user_params
30
+ flash[:notice] = 'User successfully updated.'
31
+ redirect_to push_type.users_path
32
+ else
33
+ render 'edit'
34
+ end
35
+ end
36
+
37
+ def destroy
38
+ if @user != push_type_user
39
+ @user.destroy
40
+ flash[:notice] = 'User deleted.'
41
+ redirect_to push_type.users_path
42
+ else
43
+ flash[:alert] = 'Trying to delete yourself is the thirty seventh sign of madness.'
44
+ redirect_to :back
45
+ end
46
+ end
47
+
48
+ private
49
+
50
+ def initial_breadcrumb
51
+ breadcrumbs.add 'Users', push_type.users_path
52
+ end
53
+
54
+ def user_scope
55
+ @user_scope ||= PushType::User
56
+ end
57
+
58
+ def build_user
59
+ @user = user_scope.new
60
+ @user.attributes = @user.attributes.merge(user_params)
61
+ end
62
+
63
+ def load_user
64
+ @user = user_scope.find params[:id]
65
+ end
66
+
67
+ def user_params
68
+ fields = [:name, :email] + @user.fields.keys
69
+ params.fetch(:user, {}).permit(*fields)
70
+ end
71
+
72
+ end
73
+ end
@@ -0,0 +1,15 @@
1
+ module PushType
2
+ module AdminHelper
3
+
4
+ def title(page_title)
5
+ content_for :title, page_title.to_s
6
+ end
7
+
8
+ def ficon(kind, label = nil, opts = {})
9
+ opts.merge! class: 'fi-' + kind.to_s.gsub(/_/, '-')
10
+ el = content_tag :i, nil, opts
11
+ [el, label].compact.join(' ').html_safe
12
+ end
13
+
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ module PushType
2
+ module AssetsHelper
3
+
4
+ def asset_icon(asset)
5
+ kind = case asset.file.mime_type
6
+ when /\Aimage\/.*\z/ then 'image'
7
+ when /\Aaudio\/.*\z/ then 'audio'
8
+ when /\Avideo\/.*\z/ then 'video'
9
+ else 'document'
10
+ end
11
+ "push_type/icon-file-#{ kind }.png"
12
+ end
13
+
14
+ end
15
+ end
@@ -0,0 +1,13 @@
1
+ module PushType
2
+ module UsersHelper
3
+
4
+ def last_logged_in(user)
5
+ if user.respond_to?(:current_sign_in_at) && user.current_sign_in_at?
6
+ "Logged in #{ time_ago_in_words user.current_sign_in_at } ago"
7
+ else
8
+ 'Never logged in'
9
+ end
10
+ end
11
+
12
+ end
13
+ end
@@ -0,0 +1,2 @@
1
+ %li.arrow{ class: ('unavailable' if current_page.first?) }
2
+ = link_to raw(t 'views.pagination.first'), url, :remote => remote
@@ -0,0 +1,2 @@
1
+ %li.unavailable
2
+ = link_to raw(t 'views.pagination.truncate'), '#'
@@ -0,0 +1,2 @@
1
+ %li{ class: ('unavailable' if current_page.last?) }
2
+ = link_to raw(t 'views.pagination.last'), url, :remote => remote
@@ -0,0 +1,2 @@
1
+ %li{ class: ('unavailable' if current_page.last?) }
2
+ = link_to raw(t 'views.pagination.next'), url, :rel => 'next', :remote => remote
@@ -0,0 +1,2 @@
1
+ %li{class: ('current' if page.current?)}
2
+ = link_to page, page.current? ? '#' : url, {:remote => remote, :rel => page.next? ? 'next' : page.prev? ? 'prev' : nil}
@@ -0,0 +1,11 @@
1
+ = paginator.render do
2
+ %ul.pagination
3
+ =# first_page_tag
4
+ = prev_page_tag
5
+ - each_page do |page|
6
+ - if page.left_outer? || page.right_outer? || page.inside_window?
7
+ = page_tag page
8
+ - elsif !page.was_truncated?
9
+ = gap_tag
10
+ = next_page_tag
11
+ =# last_page_tag
@@ -0,0 +1,2 @@
1
+ %li{ class: ('unavailable' if current_page.first?) }
2
+ = link_to raw(t 'views.pagination.previous'), url, :rel => 'prev', :remote => remote