push_type_admin 0.1.1 → 0.2.0.beta2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (265) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/push_type/admin.js.coffee +6 -20
  3. data/app/assets/javascripts/push_type/admin_assets.js.coffee.erb +1 -0
  4. data/app/assets/javascripts/push_type/assets.js.coffee +2 -10
  5. data/app/assets/stylesheets/push_type/admin.scss +1 -6
  6. data/app/assets/stylesheets/push_type/admin_assets.scss.erb +1 -0
  7. data/app/assets/stylesheets/push_type/tagsinput.scss +51 -0
  8. data/app/controllers/push_type/assets_controller.rb +11 -5
  9. data/app/controllers/push_type/nodes_controller.rb +2 -2
  10. data/app/controllers/push_type/users_controller.rb +1 -1
  11. data/app/helpers/push_type/assets_helper.rb +20 -7
  12. data/app/helpers/push_type/nodes_helper.rb +15 -0
  13. data/app/views/layouts/push_type/admin.html.erb +2 -2
  14. data/app/views/push_type/assets/_form.html.haml +2 -2
  15. data/app/views/push_type/assets/index.html.haml +2 -2
  16. data/app/views/push_type/fields/_tags.html.haml +3 -0
  17. data/app/views/push_type/nodes/_form_fields.html.haml +1 -1
  18. data/app/views/push_type/nodes/_new_node_button.html.haml +10 -10
  19. data/app/views/push_type/nodes/index.html.haml +4 -3
  20. data/lib/push_type/admin/assets.rb +19 -0
  21. data/lib/push_type/admin/engine.rb +10 -1
  22. data/lib/push_type/admin.rb +1 -2
  23. data/test/controllers/push_type/assets_controller_test.rb +21 -0
  24. data/test/dummy/app/assets/javascripts/application.js +1 -1
  25. data/test/dummy/app/assets/stylesheets/application.css +1 -1
  26. data/test/dummy/bin/rails +1 -1
  27. data/test/dummy/bin/setup +29 -0
  28. data/test/dummy/config/environments/development.rb +4 -0
  29. data/test/dummy/config/environments/production.rb +13 -12
  30. data/test/dummy/config/environments/test.rb +5 -2
  31. data/test/dummy/config/initializers/assets.rb +3 -0
  32. data/test/dummy/config/initializers/cookies_serializer.rb +1 -1
  33. data/test/dummy/config/initializers/push_type.rb +11 -1
  34. data/test/dummy/config/secrets.yml +2 -2
  35. data/test/dummy/config.ru +1 -1
  36. data/test/dummy/db/migrate/{20150108182226_create_push_type_users.push_type.rb → 20150208150316_create_push_type_users.push_type.rb} +1 -1
  37. data/test/dummy/db/migrate/{20150108182227_create_push_type_nodes.push_type.rb → 20150208150317_create_push_type_nodes.push_type.rb} +1 -1
  38. data/test/dummy/db/migrate/{20150108182228_create_push_type_node_hierarchies.push_type.rb → 20150208150318_create_push_type_node_hierarchies.push_type.rb} +0 -0
  39. data/test/dummy/db/migrate/{20150108182229_create_push_type_assets.push_type.rb → 20150208150319_create_push_type_assets.push_type.rb} +0 -0
  40. data/test/dummy/db/schema.rb +7 -7
  41. data/test/dummy/log/test.log +2577 -1693
  42. data/test/dummy/tmp/cache/assets/test/sass/2df752541ff0a319141a1cb83ca971d2ffd2d050/admin.scssc +0 -0
  43. data/test/dummy/tmp/cache/assets/test/sass/2df752541ff0a319141a1cb83ca971d2ffd2d050/admin_assets.scss.erbc +0 -0
  44. data/test/dummy/tmp/cache/assets/test/sass/{4192f8fb8ca1d6fcdfe4b8f89f72b4ba9c4efa8f → 2df752541ff0a319141a1cb83ca971d2ffd2d050}/foundation_and_overrides.scssc +0 -0
  45. data/test/dummy/tmp/cache/assets/test/sass/2df752541ff0a319141a1cb83ca971d2ffd2d050/tagsinput.scssc +0 -0
  46. data/test/dummy/tmp/cache/assets/test/sass/356cbb24ba380fa6c5255d546317e2ce23ea8cd6/_functions.scssc +0 -0
  47. data/test/dummy/tmp/cache/assets/test/sass/b51672fface3a4ec5947e1db3f21f77baa80aed8/_accordion.scssc +0 -0
  48. data/test/dummy/tmp/cache/assets/test/sass/b51672fface3a4ec5947e1db3f21f77baa80aed8/_alert-boxes.scssc +0 -0
  49. data/test/dummy/tmp/cache/assets/test/sass/b51672fface3a4ec5947e1db3f21f77baa80aed8/_block-grid.scssc +0 -0
  50. data/test/dummy/tmp/cache/assets/test/sass/b51672fface3a4ec5947e1db3f21f77baa80aed8/_breadcrumbs.scssc +0 -0
  51. data/test/dummy/tmp/cache/assets/test/sass/b51672fface3a4ec5947e1db3f21f77baa80aed8/_button-groups.scssc +0 -0
  52. data/test/dummy/tmp/cache/assets/test/sass/b51672fface3a4ec5947e1db3f21f77baa80aed8/_buttons.scssc +0 -0
  53. data/test/dummy/tmp/cache/assets/test/sass/b51672fface3a4ec5947e1db3f21f77baa80aed8/_clearing.scssc +0 -0
  54. data/test/dummy/tmp/cache/assets/test/sass/b51672fface3a4ec5947e1db3f21f77baa80aed8/_dropdown-buttons.scssc +0 -0
  55. data/test/dummy/tmp/cache/assets/test/sass/b51672fface3a4ec5947e1db3f21f77baa80aed8/_dropdown.scssc +0 -0
  56. data/test/dummy/tmp/cache/assets/test/sass/b51672fface3a4ec5947e1db3f21f77baa80aed8/_flex-video.scssc +0 -0
  57. data/test/dummy/tmp/cache/assets/test/sass/b51672fface3a4ec5947e1db3f21f77baa80aed8/_forms.scssc +0 -0
  58. data/test/dummy/tmp/cache/assets/test/sass/b51672fface3a4ec5947e1db3f21f77baa80aed8/_global.scssc +0 -0
  59. data/test/dummy/tmp/cache/assets/test/sass/b51672fface3a4ec5947e1db3f21f77baa80aed8/_grid.scssc +0 -0
  60. data/test/dummy/tmp/cache/assets/test/sass/b51672fface3a4ec5947e1db3f21f77baa80aed8/_icon-bar.scssc +0 -0
  61. data/test/dummy/tmp/cache/assets/test/sass/b51672fface3a4ec5947e1db3f21f77baa80aed8/_inline-lists.scssc +0 -0
  62. data/test/dummy/tmp/cache/assets/test/sass/b51672fface3a4ec5947e1db3f21f77baa80aed8/_joyride.scssc +0 -0
  63. data/test/dummy/tmp/cache/assets/test/sass/b51672fface3a4ec5947e1db3f21f77baa80aed8/_keystrokes.scssc +0 -0
  64. data/test/dummy/tmp/cache/assets/test/sass/b51672fface3a4ec5947e1db3f21f77baa80aed8/_labels.scssc +0 -0
  65. data/test/dummy/tmp/cache/assets/test/sass/b51672fface3a4ec5947e1db3f21f77baa80aed8/_magellan.scssc +0 -0
  66. data/test/dummy/tmp/cache/assets/test/sass/b51672fface3a4ec5947e1db3f21f77baa80aed8/_offcanvas.scssc +0 -0
  67. data/test/dummy/tmp/cache/assets/test/sass/b51672fface3a4ec5947e1db3f21f77baa80aed8/_orbit.scssc +0 -0
  68. data/test/dummy/tmp/cache/assets/test/sass/b51672fface3a4ec5947e1db3f21f77baa80aed8/_pagination.scssc +0 -0
  69. data/test/dummy/tmp/cache/assets/test/sass/b51672fface3a4ec5947e1db3f21f77baa80aed8/_panels.scssc +0 -0
  70. data/test/dummy/tmp/cache/assets/test/sass/b51672fface3a4ec5947e1db3f21f77baa80aed8/_pricing-tables.scssc +0 -0
  71. data/test/dummy/tmp/cache/assets/test/sass/b51672fface3a4ec5947e1db3f21f77baa80aed8/_progress-bars.scssc +0 -0
  72. data/test/dummy/tmp/cache/assets/test/sass/b51672fface3a4ec5947e1db3f21f77baa80aed8/_range-slider.scssc +0 -0
  73. data/test/dummy/tmp/cache/assets/test/sass/b51672fface3a4ec5947e1db3f21f77baa80aed8/_reveal.scssc +0 -0
  74. data/test/dummy/tmp/cache/assets/test/sass/b51672fface3a4ec5947e1db3f21f77baa80aed8/_side-nav.scssc +0 -0
  75. data/test/dummy/tmp/cache/assets/test/sass/b51672fface3a4ec5947e1db3f21f77baa80aed8/_split-buttons.scssc +0 -0
  76. data/test/dummy/tmp/cache/assets/test/sass/b51672fface3a4ec5947e1db3f21f77baa80aed8/_sub-nav.scssc +0 -0
  77. data/test/dummy/tmp/cache/assets/test/sass/b51672fface3a4ec5947e1db3f21f77baa80aed8/_switches.scssc +0 -0
  78. data/test/dummy/tmp/cache/assets/test/sass/b51672fface3a4ec5947e1db3f21f77baa80aed8/_tables.scssc +0 -0
  79. data/test/dummy/tmp/cache/assets/test/sass/b51672fface3a4ec5947e1db3f21f77baa80aed8/_tabs.scssc +0 -0
  80. data/test/dummy/tmp/cache/assets/test/sass/b51672fface3a4ec5947e1db3f21f77baa80aed8/_thumbs.scssc +0 -0
  81. data/test/dummy/tmp/cache/assets/test/sass/b51672fface3a4ec5947e1db3f21f77baa80aed8/_tooltips.scssc +0 -0
  82. data/test/dummy/tmp/cache/assets/test/sass/b51672fface3a4ec5947e1db3f21f77baa80aed8/_top-bar.scssc +0 -0
  83. data/test/dummy/tmp/cache/assets/test/sass/b51672fface3a4ec5947e1db3f21f77baa80aed8/_type.scssc +0 -0
  84. data/test/dummy/tmp/cache/assets/test/sass/b51672fface3a4ec5947e1db3f21f77baa80aed8/_visibility.scssc +0 -0
  85. data/test/dummy/tmp/cache/assets/test/sass/d416499186bc6a8ba276a69cc9d9fffa030e66bc/foundation-icons.scssc +0 -0
  86. data/test/dummy/tmp/cache/assets/test/sass/deb1394852fa60b8a5f9d5ea21f0c1f44e511075/foundation.scssc +0 -0
  87. data/test/dummy/tmp/cache/assets/test/sprockets/00ae61e049df7e5570b8c57835868cfe +0 -0
  88. data/test/dummy/tmp/cache/assets/test/sprockets/042e6dec69dbf88f86f5e8c360b52bcb +0 -0
  89. data/test/dummy/tmp/cache/assets/test/sprockets/090f2c9bc57f8e73105a98a800051354 +0 -0
  90. data/test/dummy/tmp/cache/assets/test/sprockets/0a01f1c3288f982772ed595695292767 +0 -0
  91. data/test/dummy/tmp/cache/assets/test/sprockets/0b83e9e8467b82a0991df336697846e0 +0 -0
  92. data/test/dummy/tmp/cache/assets/test/sprockets/0e01ae9de0f3914c8317853aedd9ace4 +0 -0
  93. data/test/dummy/tmp/cache/assets/test/sprockets/1505f3ddd93d7be2405c81d84a45cbfb +0 -0
  94. data/test/dummy/tmp/cache/assets/test/sprockets/161b66dc0b76d65e577b5465f86cb767 +0 -0
  95. data/test/dummy/tmp/cache/assets/test/sprockets/1da46bb361bbd7b80dc66e5737dbf2a7 +0 -0
  96. data/test/dummy/tmp/cache/assets/test/sprockets/226a629ec094e8ad208f2c273121699a +0 -0
  97. data/test/dummy/tmp/cache/assets/test/sprockets/23c10c485dbe7ea46614928874120ecf +0 -0
  98. data/test/dummy/tmp/cache/assets/test/sprockets/2599cde7c63354f12928a204c42fe68b +0 -0
  99. data/test/dummy/tmp/cache/assets/test/sprockets/25da091131e25acf0f55a6528a94f309 +0 -0
  100. data/test/dummy/tmp/cache/assets/test/sprockets/2821176477eee8de7b9581f0564d0947 +0 -0
  101. data/test/dummy/tmp/cache/assets/test/sprockets/2a00ce050c10f75691b820576ec3aefd +0 -0
  102. data/test/dummy/tmp/cache/assets/test/sprockets/2c745da65bdbc8ebb88b6bce026972b9 +0 -0
  103. data/test/dummy/tmp/cache/assets/test/sprockets/3508023b6222e6b0876c773e38ec700d +0 -0
  104. data/test/dummy/tmp/cache/assets/test/sprockets/488d63b20534d2642d48b86b5a267a3b +0 -0
  105. data/test/dummy/tmp/cache/assets/test/sprockets/4fc498f23125a9811434c6d5d5b43b64 +0 -0
  106. data/test/dummy/tmp/cache/assets/test/sprockets/508e9ca93a5c6a60e79e3496654497cf +0 -0
  107. data/test/dummy/tmp/cache/assets/test/sprockets/55d7985953b175268932d2f7e50f64e0 +0 -0
  108. data/test/dummy/tmp/cache/assets/test/sprockets/67d67f783372c9b99e2ff84c12d38dfb +0 -0
  109. data/test/dummy/tmp/cache/assets/test/sprockets/6d21cd96abbcb6506d99fb93e8a11196 +0 -0
  110. data/test/dummy/tmp/cache/assets/test/sprockets/7326e3e660754d56c46671c7347c5e97 +0 -0
  111. data/test/dummy/tmp/cache/assets/test/sprockets/7879ec7699a19e017377e1b57702e3e5 +0 -0
  112. data/test/dummy/tmp/cache/assets/test/sprockets/7925f8f38f5165ad9d36a7d73dd00c06 +0 -0
  113. data/test/dummy/tmp/cache/assets/test/sprockets/7ea9d575b03f8effb678d4dcedf3d079 +0 -0
  114. data/test/dummy/tmp/cache/assets/test/sprockets/7f0b91f5fa71c52d3cbe1f108fb7c942 +0 -0
  115. data/test/dummy/tmp/cache/assets/test/sprockets/81ba6a364949bd4ffe2732ae5745012d +0 -0
  116. data/test/dummy/tmp/cache/assets/test/sprockets/81e2498e0e1457dd93b47780ae28fc03 +0 -0
  117. data/test/dummy/tmp/cache/assets/test/sprockets/81ebadcc1f5568d97bfe59f0929ab498 +0 -0
  118. data/test/dummy/tmp/cache/assets/test/sprockets/897553ff72f546645e24e94feec75255 +0 -0
  119. data/test/dummy/tmp/cache/assets/test/sprockets/8a34d99aaa243ebb4e60f483a5b5a817 +0 -0
  120. data/test/dummy/tmp/cache/assets/test/sprockets/8d531fdb806de0724337e0b80e253914 +0 -0
  121. data/test/dummy/tmp/cache/assets/test/sprockets/8da458b8df4bfbd9fb0eed86c36442d4 +0 -0
  122. data/test/dummy/tmp/cache/assets/test/sprockets/8df98e9b5189ffce4cf77a33533416a6 +0 -0
  123. data/test/dummy/tmp/cache/assets/test/sprockets/91e13d81afe9041372ad8f79ee9159f4 +0 -0
  124. data/test/dummy/tmp/cache/assets/test/sprockets/92716c1d1cdd92efe79de35a47956fc9 +0 -0
  125. data/test/dummy/tmp/cache/assets/test/sprockets/959fa77a7302a3002d5fb1394575117b +0 -0
  126. data/test/dummy/tmp/cache/assets/test/sprockets/969e05674f51d3b5b500e605e0292573 +0 -0
  127. data/test/dummy/tmp/cache/assets/test/sprockets/987bf17b1a3915d5c6d95ebda01e8f49 +0 -0
  128. data/test/dummy/tmp/cache/assets/test/sprockets/9aef3ae1f0c62b895d86ab60901dd450 +0 -0
  129. data/test/dummy/tmp/cache/assets/test/sprockets/a010781c05d478892856f75c751d6ab4 +0 -0
  130. data/test/dummy/tmp/cache/assets/test/sprockets/a590260912e62280bb115dd52a953b18 +0 -0
  131. data/test/dummy/tmp/cache/assets/test/sprockets/a6453a78eb0c813a0b69a12cb7c4ab2c +0 -0
  132. data/test/dummy/tmp/cache/assets/test/sprockets/a721a930039ed66bd3f092ab1e9c8de6 +0 -0
  133. data/test/dummy/tmp/cache/assets/test/sprockets/a970f64c67051f35069f45d8dad113a5 +0 -0
  134. data/test/dummy/tmp/cache/assets/test/sprockets/a9b8decaa2942e8913458c9f35da2693 +0 -0
  135. data/test/dummy/tmp/cache/assets/test/sprockets/aaf7959dea629271d23756ab876bc035 +0 -0
  136. data/test/dummy/tmp/cache/assets/test/sprockets/ac1b1f0c521a6acb5833209d7b18d888 +0 -0
  137. data/test/dummy/tmp/cache/assets/test/sprockets/ada55ab3ebb32ffd74145d341fbbcb06 +0 -0
  138. data/test/dummy/tmp/cache/assets/test/sprockets/b24f2d6f62512f4cb11c6a2e44bf90e4 +0 -0
  139. data/test/dummy/tmp/cache/assets/test/sprockets/b3d0193a1439465426a4d051a161291d +0 -0
  140. data/test/dummy/tmp/cache/assets/test/sprockets/b657c356e24f45a8b92d4f4da9ff361d +0 -0
  141. data/test/dummy/tmp/cache/assets/test/sprockets/b76beafa9aef0c7a18bf63fe612ecd17 +0 -0
  142. data/test/dummy/tmp/cache/assets/test/sprockets/b771c2de3967bda011cf04e0979497cf +0 -0
  143. data/test/dummy/tmp/cache/assets/test/sprockets/b78741de2e56d8ac6629bb0dbf1d5c20 +0 -0
  144. data/test/dummy/tmp/cache/assets/test/sprockets/ba87909b8d71ddaedd84c3f6c00dce72 +0 -0
  145. data/test/dummy/tmp/cache/assets/test/sprockets/bbfc8dec2c2cc07cf4c1708597316a77 +0 -0
  146. data/test/dummy/tmp/cache/assets/test/sprockets/bc732efa6ca399217b023bd1e04f0404 +0 -0
  147. data/test/dummy/tmp/cache/assets/test/sprockets/bd5b45287cfdac63ed7199b7982da02f +0 -0
  148. data/test/dummy/tmp/cache/assets/test/sprockets/bee4e1605077e29abd380b05b645cbb4 +0 -0
  149. data/test/dummy/tmp/cache/assets/test/sprockets/c206fbd33f49ab785c6ddf4bcffd3b93 +0 -0
  150. data/test/dummy/tmp/cache/assets/test/sprockets/c2b59fd99edc4b53754f7cb4e160452f +0 -0
  151. data/test/dummy/tmp/cache/assets/test/sprockets/cb761fc7bfc4c192abf5c946f863ab1e +0 -0
  152. data/test/dummy/tmp/cache/assets/test/sprockets/cf51890ac703ed5a5d704515a4721815 +0 -0
  153. data/test/dummy/tmp/cache/assets/test/sprockets/d2215e57429ecae68a054210e665d787 +0 -0
  154. data/test/dummy/tmp/cache/assets/test/sprockets/d30a320df486e076298c602d428f3145 +0 -0
  155. data/test/dummy/tmp/cache/assets/test/sprockets/d3921fc37cc437f0933c4dee9d089fd8 +0 -0
  156. data/test/dummy/tmp/cache/assets/test/sprockets/d8daf6c8e5df881485c0e1139a275f6d +0 -0
  157. data/test/dummy/tmp/cache/assets/test/sprockets/d9e5382620928a6b4a8cd70bdac10aa3 +0 -0
  158. data/test/dummy/tmp/cache/assets/test/sprockets/df90022afc0d52f16bc498be20a5967d +0 -0
  159. data/test/dummy/tmp/cache/assets/test/sprockets/e1c3eff1f3886da4c71a854d42077d10 +0 -0
  160. data/test/dummy/tmp/cache/assets/test/sprockets/e28b8ab6a5b3ff792f45d5a6b7d806bc +0 -0
  161. data/test/dummy/tmp/cache/assets/test/sprockets/e540a9dc1aa001f8c4cba7a6b00f69d2 +0 -0
  162. data/test/dummy/tmp/cache/assets/test/sprockets/e6e78e14e8c962d31e6148ca56230af9 +0 -0
  163. data/test/dummy/tmp/cache/assets/test/sprockets/edaf2543a96ee921c30a071b3a73036f +0 -0
  164. data/test/dummy/tmp/cache/assets/test/sprockets/edd24c59de6c00e4e68dbbdf2775984a +0 -0
  165. data/test/dummy/tmp/cache/assets/test/sprockets/eeb045e353d91335ea6ec8a8869c322f +0 -0
  166. data/test/dummy/tmp/cache/assets/test/sprockets/f100237ea34e5360da23f95cca21c340 +0 -0
  167. data/test/dummy/tmp/cache/assets/test/sprockets/{505162da4e90217e5f52f5e8f1922a0d → f4b5b11e7111666c7eac22f943308692} +0 -0
  168. data/test/dummy/tmp/cache/assets/test/sprockets/f5fcab9d313889bf6d14a05040aff5bc +0 -0
  169. data/test/dummy/tmp/cache/assets/test/sprockets/f66bf7665e75e4d537977c71a5e39a4e +0 -0
  170. data/test/dummy/tmp/cache/assets/test/sprockets/f7cf86568d1c692cb0a565614f282572 +0 -0
  171. data/test/dummy/tmp/cache/assets/test/sprockets/f96cec87308c4d1efa7993c38b770ba3 +0 -0
  172. data/test/dummy/tmp/cache/assets/test/sprockets/fa7e1f9a13f606e2603a17f8e00aa32a +0 -0
  173. data/test/dummy/tmp/cache/assets/test/sprockets/{fcce52ee43ecad8cb3f18fc8f13a66b7 → fada546ecac912f7782a46cf40ec29af} +0 -0
  174. data/test/dummy/tmp/cache/assets/test/sprockets/fd06309bc284d80f9c2a30f32ed8df14 +0 -0
  175. data/test/dummy/tmp/cache/assets/test/sprockets/fd5e59fed8301f86b74e551534fce2b2 +0 -0
  176. data/test/helpers/push_type/assets_helper_test.rb +30 -0
  177. data/test/helpers/push_type/nodes_helper_test.rb +29 -0
  178. data/test/lib/push_type/admin/assets_test.rb +29 -0
  179. data/test/test_helper.rb +2 -0
  180. data/vendor/assets/javascripts/bootstrap-tagsinput.js +617 -0
  181. metadata +153 -201
  182. data/app/assets/javascripts/push_type/asset_pipeline.js.coffee.erb +0 -17
  183. data/app/assets/stylesheets/push_type/froala_theme.scss +0 -373
  184. data/config/initializers/kaminari_config.rb +0 -10
  185. data/test/dummy/tmp/cache/assets/test/sass/4192f8fb8ca1d6fcdfe4b8f89f72b4ba9c4efa8f/admin.scssc +0 -0
  186. data/test/dummy/tmp/cache/assets/test/sass/4192f8fb8ca1d6fcdfe4b8f89f72b4ba9c4efa8f/froala_theme.scssc +0 -0
  187. data/test/dummy/tmp/cache/assets/test/sass/53cc07db53069364c4116d03ae9493d85566d502/_functions.scssc +0 -0
  188. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_accordion.scssc +0 -0
  189. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_alert-boxes.scssc +0 -0
  190. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_block-grid.scssc +0 -0
  191. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_breadcrumbs.scssc +0 -0
  192. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_button-groups.scssc +0 -0
  193. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_buttons.scssc +0 -0
  194. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_clearing.scssc +0 -0
  195. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_dropdown-buttons.scssc +0 -0
  196. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_dropdown.scssc +0 -0
  197. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_flex-video.scssc +0 -0
  198. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_forms.scssc +0 -0
  199. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_global.scssc +0 -0
  200. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_grid.scssc +0 -0
  201. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_icon-bar.scssc +0 -0
  202. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_inline-lists.scssc +0 -0
  203. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_joyride.scssc +0 -0
  204. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_keystrokes.scssc +0 -0
  205. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_labels.scssc +0 -0
  206. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_magellan.scssc +0 -0
  207. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_offcanvas.scssc +0 -0
  208. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_orbit.scssc +0 -0
  209. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_pagination.scssc +0 -0
  210. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_panels.scssc +0 -0
  211. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_pricing-tables.scssc +0 -0
  212. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_progress-bars.scssc +0 -0
  213. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_range-slider.scssc +0 -0
  214. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_reveal.scssc +0 -0
  215. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_side-nav.scssc +0 -0
  216. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_split-buttons.scssc +0 -0
  217. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_sub-nav.scssc +0 -0
  218. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_switches.scssc +0 -0
  219. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_tables.scssc +0 -0
  220. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_tabs.scssc +0 -0
  221. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_thumbs.scssc +0 -0
  222. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_tooltips.scssc +0 -0
  223. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_top-bar.scssc +0 -0
  224. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_type.scssc +0 -0
  225. data/test/dummy/tmp/cache/assets/test/sass/669496e8548de1a6ba1641898c1b30c67ab8fac2/_visibility.scssc +0 -0
  226. data/test/dummy/tmp/cache/assets/test/sass/68968d876746de0885a03aacd18ec354e154ffed/foundation-icons.scssc +0 -0
  227. data/test/dummy/tmp/cache/assets/test/sass/805c0b657f4b79d174c13bc42a4759a57d5a5484/foundation.scssc +0 -0
  228. data/test/dummy/tmp/cache/assets/test/sprockets/0448802b256c25a379824969bf01241e +0 -0
  229. data/test/dummy/tmp/cache/assets/test/sprockets/0a170bcd46595a69e9181ea5eb52ec6f +0 -0
  230. data/test/dummy/tmp/cache/assets/test/sprockets/1c63cb75109171c505bf1b6b3f26513b +0 -0
  231. data/test/dummy/tmp/cache/assets/test/sprockets/22578effd3d5017b533efd147a1b4407 +0 -0
  232. data/test/dummy/tmp/cache/assets/test/sprockets/2479bd5cbccdeac3ab4df62c2c12e8d3 +0 -0
  233. data/test/dummy/tmp/cache/assets/test/sprockets/25b238c2ec907a80d53955a0bb81073c +0 -0
  234. data/test/dummy/tmp/cache/assets/test/sprockets/2d1bc2b9dc5ee0ed5635abc31fb1bc88 +0 -0
  235. data/test/dummy/tmp/cache/assets/test/sprockets/31c57ad31a65f9a951c6d7268cdedae5 +0 -0
  236. data/test/dummy/tmp/cache/assets/test/sprockets/3d4f40cd6363f1841fa7c17dcbd281ce +0 -0
  237. data/test/dummy/tmp/cache/assets/test/sprockets/47dcfb84d9a092ad939f512e1d3db43c +0 -0
  238. data/test/dummy/tmp/cache/assets/test/sprockets/55d58e1add1ca367e262464e83ad82cf +0 -0
  239. data/test/dummy/tmp/cache/assets/test/sprockets/59992ed1702654aa166f8572af80a301 +0 -0
  240. data/test/dummy/tmp/cache/assets/test/sprockets/5ef293117afc54aeaa16d32cbd16dd38 +0 -0
  241. data/test/dummy/tmp/cache/assets/test/sprockets/600202d00479f08d2e69019e34d12e65 +0 -0
  242. data/test/dummy/tmp/cache/assets/test/sprockets/75c5663a92b2003b794d5f5d184fde44 +0 -0
  243. data/test/dummy/tmp/cache/assets/test/sprockets/7b63c613f1053bde6004342003178a0e +0 -0
  244. data/test/dummy/tmp/cache/assets/test/sprockets/7d07558d12b9bd9b9dfa778344bab4ac +0 -0
  245. data/test/dummy/tmp/cache/assets/test/sprockets/805c63977d339feb2ea7b61e1141a32f +0 -0
  246. data/test/dummy/tmp/cache/assets/test/sprockets/853c1095ab6e7f4eba1f3406f0f3bba6 +0 -0
  247. data/test/dummy/tmp/cache/assets/test/sprockets/8f8914547a4f22638b676f968bc18d68 +0 -0
  248. data/test/dummy/tmp/cache/assets/test/sprockets/8feb3d758b7824f15b301f9dc024c3f6 +0 -0
  249. data/test/dummy/tmp/cache/assets/test/sprockets/932f699ead87a4b9910d47334ed14d60 +0 -0
  250. data/test/dummy/tmp/cache/assets/test/sprockets/9896c5d1de4e8661c3b424aec81f7e8c +0 -0
  251. data/test/dummy/tmp/cache/assets/test/sprockets/a427bb8cde4beaf2d4483ad3554d2297 +0 -0
  252. data/test/dummy/tmp/cache/assets/test/sprockets/a96494099d559bfd8cb5257e21cb196c +0 -0
  253. data/test/dummy/tmp/cache/assets/test/sprockets/aaa6dc2bd59e21dd14b0c86a308a1d1f +0 -0
  254. data/test/dummy/tmp/cache/assets/test/sprockets/badf6e6ab7c3d1cc2b180e5883005a40 +0 -0
  255. data/test/dummy/tmp/cache/assets/test/sprockets/c190d0bdd188c43629f35b9f463b86af +0 -0
  256. data/test/dummy/tmp/cache/assets/test/sprockets/c42a7aac68d827f88bcc25a41cdb5591 +0 -0
  257. data/test/dummy/tmp/cache/assets/test/sprockets/c5ef052e357af6829f6c522a38916fc7 +0 -0
  258. data/test/dummy/tmp/cache/assets/test/sprockets/c988fd2c5c9497ccef54f79a9e444ac6 +0 -0
  259. data/test/dummy/tmp/cache/assets/test/sprockets/cd078b38e48bcd1e121d801b46b2616f +0 -0
  260. data/test/dummy/tmp/cache/assets/test/sprockets/d1cebb5323d93da406dfb152a0c55568 +0 -0
  261. data/test/dummy/tmp/cache/assets/test/sprockets/e568172da8ab8581f83f98dad0a73d29 +0 -0
  262. data/test/dummy/tmp/cache/assets/test/sprockets/e5e4aa0b0cc633e1e2e25614fd922803 +0 -0
  263. data/test/dummy/tmp/cache/assets/test/sprockets/f02093872b151ddb0fd1074fe83ff846 +0 -0
  264. data/test/dummy/tmp/cache/assets/test/sprockets/f7013d94f76b09bce94f78e2453f7eae +0 -0
  265. data/test/dummy/tmp/cache/assets/test/sprockets/f92aeb6f9539612517848945ee03aff8 +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7b90f1ea6bf2bd60aa1378701b455759eac8baba
4
- data.tar.gz: 538768a758aab1f8a4211a96cbcd1eee99831c58
3
+ metadata.gz: b3283ed56c6b6c2cb1e116645d4390e7e1895c37
4
+ data.tar.gz: aeb9a25918ea7524614dea92a501e2aac8eda409
5
5
  SHA512:
6
- metadata.gz: ada5368863a808a53cfa9f88e93095bec1d905cebd18f183fd0cdfd4cb4aa1b6a1ab9fcd67c24acacaeaa962c82984fe2f6684966daf3e32c3584a5cfe629a39
7
- data.tar.gz: 03cc2cdc2f75412eea6a5b277bc326d5d3a77b238e74c5def5ac36f45c85035892c2d03d4a3019183b06d06caea65d549b501968d521c9fe8ed3c6656f3ea41f
6
+ metadata.gz: 7a5cae1c9126f84edbd704ef0abd4595ddae5e2708b3b09568b0326ac90e76a0b21c1723880720294153447a4f0dafd31b8048a4aa74aa56c3f335205e6ed239
7
+ data.tar.gz: 21c9f2d6e9978ce66cd824199993490f178125023e4aab31e4ab1a7767317539faf4233ea68ab405b69e769efdefafe95dc65f799a5cf61fd053c58cce584747
@@ -16,15 +16,13 @@
16
16
  #= require foundation
17
17
  #= require confirm_with_reveal
18
18
  #= require angular
19
- #= require froala_editor.min
20
- #= require plugins/lists.min
21
- #= require plugins/file_upload.min
22
- #= require plugins/video.min
23
19
  #= require jquery.sticky
24
20
  #= require jquery.sortable
25
21
  #= require jquery.filedrop
26
22
  #= require moment
27
23
  #= require_self
24
+ #= require bootstrap-tagsinput
25
+ #= stub push_type/admin_assets
28
26
  #= require_tree .
29
27
 
30
28
  Turbolinks.enableProgressBar()
@@ -54,21 +52,9 @@ $(document).on 'ready page:load', ->
54
52
  obj = { prev: ui.item.prev().data('id'), next: ui.item.next().data('id') }
55
53
  $.post "/push_type/nodes/#{ ui.item.data('id') }/position", obj, 'json'
56
54
 
57
- $('textarea.froala', '.rich_text').editable
58
- inlineMode: false
59
- height: 400
60
- buttons: ['bold', 'italic', 'underline', 'sep', 'formatBlock', 'align', 'insertOrderedList', 'insertUnorderedList', 'sep', 'createLink', 'insertImage', 'uploadFile', 'insertVideo', 'table', 'sep', 'removeFormat', 'undo', 'redo', 'sep' ,'html']
61
- blockTags:
62
- n: 'Normal'
63
- h1: 'Heading 1'
64
- h2: 'Heading 2'
65
- theme: 'pt'
66
-
67
- $('textarea.froala', '.rich_text').on 'editable.focus', (e, editor) ->
68
- editor.$box.addClass 'focus'
69
-
70
- $('textarea.froala', '.rich_text').on 'editable.blur', (e, editor) ->
71
- editor.$box.removeClass 'focus'
72
-
73
55
  $(document).confirmWithReveal()
74
56
 
57
+ $('.tagsinput', '.tags').tagsinput
58
+ tagClass: 'label secondary radius'
59
+
60
+
@@ -0,0 +1 @@
1
+ <% PushType.config.admin_assets.javascripts.each { |js| require_asset(js) } %>
@@ -6,13 +6,9 @@
6
6
  $scope.editUrl = (asset) ->
7
7
  $scope.assetUrl.replace(/~id/, asset.id)
8
8
 
9
- $scope.previewthumbUrl = (asset) ->
10
- url = asset.preview_thumb_url
11
- if asset['image?'] then url else asset_path(url)
12
-
13
9
  $scope.afterUpload = (asset) ->
14
10
  $scope.assets.unshift(asset)
15
- $scope.assets = $scope.assets.slice(0, kaminari_per_page)
11
+ $scope.assets = $scope.assets.slice(0, 20)
16
12
 
17
13
  ]
18
14
 
@@ -33,10 +29,6 @@
33
29
  $scope.uploadedDate = ->
34
30
  moment($scope.asset.created_at).format('Do MMM YYYY, h:mma')
35
31
 
36
- $scope.previewthumbUrl = ->
37
- url = $scope.asset.preview_thumb_url
38
- if $scope.asset['image?'] then url else asset_path(url)
39
-
40
32
  $scope.afterUpload = (asset) ->
41
33
  $scope.asset = asset
42
34
 
@@ -55,7 +47,7 @@
55
47
  dragLeave: -> $(this).removeClass('hover')
56
48
  drop: -> $(this).removeClass('hover')
57
49
  uploadFinished: (i, file, response, time) ->
58
- scope.afterUpload(response)
50
+ scope.afterUpload(response.asset)
59
51
  scope.$apply() unless scope.$$phase
60
52
 
61
53
 
@@ -11,9 +11,6 @@
11
11
  * file per style scope.
12
12
  *
13
13
  *= require_self
14
- *= require froala_editor.min
15
- *= require froala_style.min
16
- *= require font-awesome
17
14
  */
18
15
 
19
16
  @import "foundation_and_overrides";
@@ -530,7 +527,5 @@ form .asset-upload {
530
527
  }
531
528
  }
532
529
 
533
-
534
-
535
530
  @import "foundation-icons";
536
- @import "froala_theme";
531
+ @import "tagsinput";
@@ -0,0 +1 @@
1
+ <% PushType.config.admin_assets.stylesheets.each { |css| require_asset(css) } %>
@@ -0,0 +1,51 @@
1
+ .bootstrap-tagsinput {
2
+ margin-bottom: 1rem;
3
+ padding: 0.3rem;
4
+ min-height: 42px;
5
+ font-size: $input-font-size;
6
+ line-height: 1.5em;
7
+ color: $input-font-color;
8
+ background-color: $input-bg-color;
9
+ border: 1px solid $input-border-color;
10
+ border-radius: 0;
11
+ box-shadow: $input-box-shadow;
12
+ cursor: text;
13
+
14
+ input {
15
+ display: inline;
16
+ width: auto !important;
17
+ max-width: inherit;
18
+ margin: 0.2rem;
19
+ padding: 0;
20
+ background-color: transparent;
21
+ border: none;
22
+ box-shadow: none;
23
+ outline: none;
24
+
25
+ &:focus {
26
+ background-color: inherit;
27
+ border: none;
28
+ box-shadow: none;
29
+ }
30
+ }
31
+
32
+ .tag {
33
+ margin: 0.2rem;
34
+ font-size: rem-calc(16);
35
+ color: $input-font-color;
36
+
37
+ [data-role="remove"] {
38
+ margin-left: 0.5rem;
39
+ color: $base;
40
+ cursor: pointer;
41
+ }
42
+ [data-role="remove"]:after {
43
+ content: 'x';
44
+ padding: 0 2px;
45
+ font-weight: 600;
46
+ }
47
+ [data-role="remove"]:hover {
48
+ color: $white;
49
+ }
50
+ }
51
+ }
@@ -3,13 +3,11 @@ require_dependency "push_type/admin_controller"
3
3
  module PushType
4
4
  class AssetsController < AdminController
5
5
 
6
- before_filter :build_asset, only: [:new, :create]
6
+ before_filter :build_asset, only: [:new, :create, :upload]
7
7
  before_filter :load_asset, only: [:edit, :update, :destroy]
8
8
 
9
- respond_to :json, only: :upload
10
-
11
9
  def index
12
- @assets = PushType::Asset.not_trash.page(params[:page])
10
+ @assets = PushType::Asset.not_trash.page(params[:page]).per(20)
13
11
  end
14
12
 
15
13
  def new
@@ -25,7 +23,15 @@ module PushType
25
23
  end
26
24
 
27
25
  def upload
28
- respond_with PushType::Asset.create(asset_params).to_json, location: false
26
+ respond_to do |format|
27
+ format.json do
28
+ if @asset.save
29
+ render json: { asset: view_context.asset_hash(@asset).as_json }, status: :created
30
+ else
31
+ render json: { errors: @asset.errors.as_json }, status: :unprocessable_entity
32
+ end
33
+ end
34
+ end
29
35
  end
30
36
 
31
37
  def edit
@@ -7,7 +7,7 @@ module PushType
7
7
  before_filter :load_node, only: [:edit, :update, :destroy, :position]
8
8
 
9
9
  def index
10
- @nodes = node_scope.not_trash.page(params[:page])
10
+ @nodes = node_scope.not_trash.page(params[:page]).per(30)
11
11
  end
12
12
 
13
13
  def new
@@ -69,7 +69,7 @@ module PushType
69
69
  end
70
70
 
71
71
  def node_params
72
- fields = [:title, :slug, :status, :published_at, :published_to] + @node.fields.keys
72
+ fields = [:title, :slug, :status, :published_at, :published_to] + @node.field_params
73
73
  params.fetch(@node.type.underscore.to_sym, {}).permit(*fields)
74
74
  end
75
75
 
@@ -7,7 +7,7 @@ module PushType
7
7
  before_filter :load_user, only: [:edit, :update, :destroy]
8
8
 
9
9
  def index
10
- @users = user_scope.page(params[:page])
10
+ @users = user_scope.page(params[:page]).per(30)
11
11
  end
12
12
 
13
13
  def new
@@ -1,14 +1,27 @@
1
1
  module PushType
2
2
  module AssetsHelper
3
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'
4
+ def assets_array(assets)
5
+ assets.map { |a| asset_hash(a) }
6
+ end
7
+
8
+ def asset_hash(asset)
9
+ hash = [ :id, :file_name, :file_size, :mime_type, :created_at, :new_record?, :image?, :description_or_file_name ].inject({}) do |h, att|
10
+ h.update att => asset.send(att)
10
11
  end
11
- "push_type/icon-file-#{ kind }.png"
12
+ hash.update preview_thumb_url: asset_preview_thumb_url(asset)
13
+ end
14
+
15
+ def asset_preview_thumb_url(asset)
16
+ if asset.image?
17
+ main_app.media_path(file_uid: asset.file_uid, style: :push_type_thumb)
18
+ else
19
+ image_path(asset_icon(asset))
20
+ end
21
+ end
22
+
23
+ def asset_icon(asset)
24
+ "push_type/icon-file-#{ asset.kind }.png"
12
25
  end
13
26
 
14
27
  end
@@ -0,0 +1,15 @@
1
+ module PushType
2
+ module NodesHelper
3
+
4
+ def nodes_array(nodes)
5
+ nodes.map { |n| node_hash(n) }
6
+ end
7
+
8
+ def node_hash(asset)
9
+ hash = [ :type, :title, :slug, :status, :published_at, :published_to, :new_record?, :published? ].inject({}) do |h, att|
10
+ h.update att => asset.send(att)
11
+ end
12
+ end
13
+
14
+ end
15
+ end
@@ -5,8 +5,8 @@
5
5
  <title>PushType :: <%= yield :title %></title>
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
7
  <%= javascript_include_tag 'vendor/modernizr' %>
8
- <%= javascript_include_tag 'push_type/admin' %>
9
- <%= stylesheet_link_tag 'push_type/admin', '//fonts.googleapis.com/css?family=Lato:300,300italic,400,700', media: 'all' %>
8
+ <%= javascript_include_tag 'push_type/admin', 'push_type/admin_assets' %>
9
+ <%= stylesheet_link_tag 'push_type/admin', 'push_type/admin_assets', '//fonts.googleapis.com/css?family=Lato:300,300italic,400,700', media: 'all' %>
10
10
  <%= csrf_meta_tags %>
11
11
  </head>
12
12
  <body>
@@ -1,4 +1,4 @@
1
- %div{ ng: { controller: 'AssetUploadCtrl', init: "asset=#{ @asset.to_json }; createUrl='#{ push_type.assets_path }'; updateUrl='#{ push_type.asset_path('~id') }'" } }
1
+ %div{ ng: { controller: 'AssetUploadCtrl', init: "asset=#{ asset_hash(@asset).to_json }; createUrl='#{ push_type.assets_path }'; updateUrl='#{ push_type.asset_path('~id') }'" } }
2
2
  = form_for @asset, url: '{{ saveUrl() }}', method: 'post' do |f|
3
3
  = hidden_field_tag :_method, '{{ method() }}'
4
4
  .large-8.columns
@@ -18,7 +18,7 @@
18
18
  = f.file_field :file
19
19
  %div{ ng: { show: "!asset['new_record?']" } }
20
20
  .small-4.medium-3.columns
21
- %img.preview{ alt: '{{ asset.file_name }}', ng: { src: '{{ previewthumbUrl() }}' } }
21
+ %img.preview{ alt: '{{ asset.file_name }}', ng: { src: '{{ asset.preview_thumb_url }}' } }
22
22
  .small-8.medium-9.columns
23
23
  %table
24
24
  %tr
@@ -8,7 +8,7 @@
8
8
  = link_to ficon(:plus, 'New upload'), push_type.new_asset_path, class: 'button radius success'
9
9
 
10
10
  - else
11
- %div{ ng: { controller: 'AssetListCtrl', init: "assets=#{ @assets.all.to_json }; assetUrl='#{ push_type.edit_asset_path('~id') }'" } }
11
+ %div{ ng: { controller: 'AssetListCtrl', init: "assets=#{ assets_array(@assets).to_json }; assetUrl='#{ push_type.edit_asset_path('~id') }'" } }
12
12
  .large-8.columns
13
13
  %section
14
14
  %ul.asset-list.small-block-grid-2.medium-block-grid-4
@@ -16,7 +16,7 @@
16
16
  %article.asset-list-item
17
17
  %a{ ng: { href: '{{ editUrl(asset) }}' } }
18
18
  .preview
19
- %img{ alt: '{{ asset.file_name }}', ng: { src: '{{ previewthumbUrl(asset) }}' } }
19
+ %img{ alt: '{{ asset.file_name }}', ng: { src: '{{ asset.preview_thumb_url }}' } }
20
20
  .title {{ asset.description_or_file_name }}
21
21
 
22
22
  .large-4.columns
@@ -0,0 +1,3 @@
1
+ = f.label field.name, field.label
2
+ = f.select field.name, f.object.send(field.name), {}, field.html_options
3
+
@@ -1,4 +1,4 @@
1
- %div{ ng: { controller: 'NodeFormCtrl', init: "node=#{ @node.to_json(only: [:type, :title, :slug, :status, :published_at, :published_to], methods: [:new_record?, :published?]) }" } }
1
+ %div{ ng: { controller: 'NodeFormCtrl', init: "node=#{ node_hash(@node).to_json }" } }
2
2
  .large-8.columns
3
3
  .container
4
4
  .head
@@ -1,17 +1,17 @@
1
1
  - if @parent
2
- - if @parent.child_node_types.size == 1
3
- = link_to ficon(:page_add, "New #{ @parent.child_node_types.first.humanize.downcase }"), push_type.new_node_node_path(kind: @parent.child_node_types.first), class: 'button radius success'
4
- - elsif @parent.child_node_types.size > 1
5
- = link_to ficon(:page_add, 'New content'), push_type.new_node_node_path(kind: @parent.child_node_types.first), class: 'button radius success dropdown', data: { dropdown: 'new-node' }
2
+ - if @parent.child_nodes.size == 1
3
+ = link_to ficon(:page_add, "New #{ @parent.child_nodes.first.humanize.downcase }"), push_type.new_node_node_path(kind: @parent.child_nodes.first), class: 'button radius success'
4
+ - elsif @parent.child_nodes.size > 1
5
+ = link_to ficon(:page_add, 'New content'), push_type.new_node_node_path(kind: @parent.child_nodes.first), class: 'button radius success dropdown', data: { dropdown: 'new-node' }
6
6
  %ul#new-node.f-dropdown
7
- - for kind in @parent.child_node_types
7
+ - for kind in @parent.child_nodes
8
8
  %li= link_to "New #{ kind.humanize.downcase }", push_type.new_node_node_path(kind: kind)
9
9
 
10
10
  - else
11
- - if PushType.root_node_types.size == 1
12
- = link_to ficon(:page_add, "New #{ PushType.root_node_types.first.humanize.downcase }"), push_type.new_node_path(kind: PushType.root_node_types.first), class: 'button radius success'
13
- - elsif PushType.root_node_types.size > 1
14
- = link_to ficon(:page_add, 'New content'), push_type.new_node_path(kind: PushType.root_node_types.first), class: 'button radius success dropdown', data: { dropdown: 'new-node' }
11
+ - if PushType.root_nodes.size == 1
12
+ = link_to ficon(:page_add, "New #{ PushType.root_nodes.first.humanize.downcase }"), push_type.new_node_path(kind: PushType.root_nodes.first), class: 'button radius success'
13
+ - elsif PushType.root_nodes.size > 1
14
+ = link_to ficon(:page_add, 'New content'), push_type.new_node_path(kind: PushType.root_nodes.first), class: 'button radius success dropdown', data: { dropdown: 'new-node' }
15
15
  %ul#new-node.f-dropdown
16
- - for kind in PushType.root_node_types
16
+ - for kind in PushType.root_nodes
17
17
  %li= link_to "New #{ kind.humanize.downcase }", push_type.new_node_path(kind: kind)
@@ -26,7 +26,7 @@
26
26
  %h3 No content
27
27
  %p There is no content in this section yet.
28
28
  - else
29
- %ul.node-list.sortable
29
+ %ul.node-list{ class: ('sortable' if !@parent || @parent.sortable?) }
30
30
  - for node in @nodes.all
31
31
  %li.node-list-item{ data: { id: node.id } }
32
32
  = link_to push_type.edit_node_path(node) do
@@ -39,9 +39,10 @@
39
39
  %span= pluralize node.child_ids.size, 'child'
40
40
  .buttons
41
41
  = link_to ficon(:magnifying_glass), '#'
42
- - unless node.child_node_types.empty?
42
+ - unless node.child_nodes.empty?
43
43
  = link_to ficon(:folder), push_type.node_nodes_path(node)
44
- .handle
44
+ - if !@parent || @parent.sortable?
45
+ .handle
45
46
 
46
47
  .large-4.columns
47
48
  .side-panel{ :'side-panel' => true }
@@ -0,0 +1,19 @@
1
+ module PushType
2
+ module Admin
3
+ class Assets
4
+
5
+ attr_accessor :javascripts, :stylesheets
6
+
7
+ def initialize
8
+ @javascripts = []
9
+ @stylesheets = []
10
+ end
11
+
12
+ def register(lib)
13
+ @javascripts << lib
14
+ @stylesheets << lib
15
+ end
16
+
17
+ end
18
+ end
19
+ end
@@ -1,16 +1,25 @@
1
+ require 'push_type/admin/assets'
2
+
1
3
  module PushType
2
4
  module Admin
3
5
  class Engine < ::Rails::Engine
4
6
  isolate_namespace PushType
5
7
  engine_name 'push_type_admin'
6
8
 
9
+ config.admin_assets = PushType::Admin::Assets.new
10
+
7
11
  config.generators do |g|
8
12
  g.assets false
9
13
  g.helper false
10
14
  g.test_framework :minitest, spec: true, fixture: false
11
15
  end
12
16
 
13
- config.assets.precompile += %w(push_type/admin.css push_type/admin.js)
17
+ config.assets.precompile += %w(
18
+ push_type/admin.css
19
+ push_type/admin.js
20
+ push_type/admin_assets.css
21
+ push_type/admin_assets.js
22
+ )
14
23
  end
15
24
  end
16
25
  end
@@ -7,13 +7,12 @@ require 'foundation-rails'
7
7
  require 'foundation-icons-sass-rails'
8
8
  require 'jquery-rails'
9
9
  require 'angularjs-rails'
10
- require 'wysiwyg-rails'
11
- require 'font-awesome-rails'
12
10
  require 'momentjs-rails'
13
11
  require 'turbolinks'
14
12
 
15
13
  require 'breadcrumbs'
16
14
  require 'kaminari'
15
+ require 'jbuilder'
17
16
 
18
17
  module PushType
19
18
 
@@ -40,6 +40,27 @@ module PushType
40
40
  end
41
41
  end
42
42
 
43
+ describe 'POST #upload' do
44
+ let(:json_response) { JSON.parse(response.body) }
45
+ let(:action!) { post :upload, format: :json, asset: asset_attrs }
46
+ describe 'with valid asset' do
47
+ before { action! }
48
+ it { response.must_respond_with :success }
49
+ it { json_response['asset'].must_be :present? }
50
+ it { json_response['errors'].wont_be :present? }
51
+ end
52
+ describe 'asset count' do
53
+ it { proc { action! }.must_change 'Asset.count', 1 }
54
+ end
55
+ describe 'with in-valid asset' do
56
+ let(:asset_attrs) { {} }
57
+ before { action! }
58
+ it { response.must_respond_with :unprocessable_entity }
59
+ it { json_response['asset'].wont_be :present? }
60
+ it { json_response['errors'].must_be :present? }
61
+ end
62
+ end
63
+
43
64
  describe 'GET #edit' do
44
65
  before { get :edit, id: asset.id }
45
66
  it { response.must_render_template 'edit' }
@@ -2,7 +2,7 @@
2
2
  // listed below.
3
3
  //
4
4
  // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
5
- // or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
5
+ // or any plugin's vendor/assets/javascripts directory can be referenced here using a relative path.
6
6
  //
7
7
  // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
8
8
  // compiled file.
@@ -3,7 +3,7 @@
3
3
  * listed below.
4
4
  *
5
5
  * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
6
- * or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path.
6
+ * or any plugin's vendor/assets/stylesheets directory can be referenced here using a relative path.
7
7
  *
8
8
  * You're free to add application-wide styles to this file and they'll appear at the bottom of the
9
9
  * compiled file so the styles you add here take precedence over styles defined in any styles
data/test/dummy/bin/rails CHANGED
@@ -1,4 +1,4 @@
1
1
  #!/usr/bin/env ruby
2
- APP_PATH = File.expand_path('../../config/application', __FILE__)
2
+ APP_PATH = File.expand_path('../../config/application', __FILE__)
3
3
  require_relative '../config/boot'
4
4
  require 'rails/commands'
@@ -0,0 +1,29 @@
1
+ #!/usr/bin/env ruby
2
+ require 'pathname'
3
+
4
+ # path to your application root.
5
+ APP_ROOT = Pathname.new File.expand_path('../../', __FILE__)
6
+
7
+ Dir.chdir APP_ROOT do
8
+ # This script is a starting point to setup your application.
9
+ # Add necessary setup steps to this file:
10
+
11
+ puts "== Installing dependencies =="
12
+ system "gem install bundler --conservative"
13
+ system "bundle check || bundle install"
14
+
15
+ # puts "\n== Copying sample files =="
16
+ # unless File.exist?("config/database.yml")
17
+ # system "cp config/database.yml.sample config/database.yml"
18
+ # end
19
+
20
+ puts "\n== Preparing database =="
21
+ system "bin/rake db:setup"
22
+
23
+ puts "\n== Removing old logs and tempfiles =="
24
+ system "rm -f log/*"
25
+ system "rm -rf tmp/cache"
26
+
27
+ puts "\n== Restarting application server =="
28
+ system "touch tmp/restart.txt"
29
+ end
@@ -27,6 +27,10 @@ Rails.application.configure do
27
27
  # number of complex assets.
28
28
  config.assets.debug = true
29
29
 
30
+ # Asset digests allow you to set far-future HTTP expiration dates on all assets,
31
+ # yet still be able to expire them through the digest params.
32
+ config.assets.digest = true
33
+
30
34
  # Adds additional error checking when serving assets at runtime.
31
35
  # Checks for improperly declared sprockets dependencies.
32
36
  # Raises helpful error messages.
@@ -16,11 +16,13 @@ Rails.application.configure do
16
16
 
17
17
  # Enable Rack::Cache to put a simple HTTP cache in front of your application
18
18
  # Add `rack-cache` to your Gemfile before enabling this.
19
- # For large-scale production use, consider using a caching reverse proxy like nginx, varnish or squid.
19
+ # For large-scale production use, consider using a caching reverse proxy like
20
+ # NGINX, varnish or squid.
20
21
  # config.action_dispatch.rack_cache = true
21
22
 
22
- # Disable Rails's static asset server (Apache or nginx will already do this).
23
- config.serve_static_assets = false
23
+ # Disable serving static files from the `/public` folder by default since
24
+ # Apache or NGINX already handles this.
25
+ config.serve_static_files = ENV['RAILS_SERVE_STATIC_FILES'].present?
24
26
 
25
27
  # Compress JavaScripts and CSS.
26
28
  config.assets.js_compressor = :uglifier
@@ -29,20 +31,22 @@ Rails.application.configure do
29
31
  # Do not fallback to assets pipeline if a precompiled asset is missed.
30
32
  config.assets.compile = false
31
33
 
32
- # Generate digests for assets URLs.
34
+ # Asset digests allow you to set far-future HTTP expiration dates on all assets,
35
+ # yet still be able to expire them through the digest params.
33
36
  config.assets.digest = true
34
37
 
35
38
  # `config.assets.precompile` and `config.assets.version` have moved to config/initializers/assets.rb
36
39
 
37
40
  # Specifies the header that your server uses for sending files.
38
- # config.action_dispatch.x_sendfile_header = "X-Sendfile" # for apache
39
- # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for nginx
41
+ # config.action_dispatch.x_sendfile_header = 'X-Sendfile' # for Apache
42
+ # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for NGINX
40
43
 
41
44
  # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
42
45
  # config.force_ssl = true
43
46
 
44
- # Set to :debug to see everything in the log.
45
- config.log_level = :info
47
+ # Use the lowest log level to ensure availability of diagnostic information
48
+ # when problems arise.
49
+ config.log_level = :debug
46
50
 
47
51
  # Prepend all log lines with the following tags.
48
52
  # config.log_tags = [ :subdomain, :uuid ]
@@ -54,7 +58,7 @@ Rails.application.configure do
54
58
  # config.cache_store = :mem_cache_store
55
59
 
56
60
  # Enable serving of images, stylesheets, and JavaScripts from an asset server.
57
- # config.action_controller.asset_host = "http://assets.example.com"
61
+ # config.action_controller.asset_host = 'http://assets.example.com'
58
62
 
59
63
  # Ignore bad email addresses and do not raise email delivery errors.
60
64
  # Set this to true and configure the email server for immediate delivery to raise delivery errors.
@@ -67,9 +71,6 @@ Rails.application.configure do
67
71
  # Send deprecation notices to registered listeners.
68
72
  config.active_support.deprecation = :notify
69
73
 
70
- # Disable automatic flushing of the log to improve performance.
71
- # config.autoflush_log = false
72
-
73
74
  # Use default logging formatter so that PID and timestamp are not suppressed.
74
75
  config.log_formatter = ::Logger::Formatter.new
75
76
 
@@ -12,8 +12,8 @@ Rails.application.configure do
12
12
  # preloads Rails for running tests, you may have to set it to true.
13
13
  config.eager_load = false
14
14
 
15
- # Configure static asset server for tests with Cache-Control for performance.
16
- config.serve_static_assets = true
15
+ # Configure static file server for tests with Cache-Control for performance.
16
+ config.serve_static_files = true
17
17
  config.static_cache_control = 'public, max-age=3600'
18
18
 
19
19
  # Show full error reports and disable caching.
@@ -31,6 +31,9 @@ Rails.application.configure do
31
31
  # ActionMailer::Base.deliveries array.
32
32
  config.action_mailer.delivery_method = :test
33
33
 
34
+ # Randomize the order test cases are executed.
35
+ config.active_support.test_order = :random
36
+
34
37
  # Print deprecation notices to the stderr.
35
38
  config.active_support.deprecation = :stderr
36
39
 
@@ -3,6 +3,9 @@
3
3
  # Version of your assets, change this if you want to expire all your assets.
4
4
  Rails.application.config.assets.version = '1.0'
5
5
 
6
+ # Add additional assets to the asset load path
7
+ # Rails.application.config.assets.paths << Emoji.images_path
8
+
6
9
  # Precompile additional assets.
7
10
  # application.js, application.css, and all non-JS/CSS in app/assets folder are already added.
8
11
  # Rails.application.config.assets.precompile += %w( search.js )