push_type_admin 0.3.3 → 0.4.0.beta.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (170) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/push_type/admin.js.coffee +9 -2
  3. data/app/assets/javascripts/push_type/directives.js.coffee +43 -0
  4. data/app/assets/javascripts/push_type/nodes.js.coffee +8 -3
  5. data/app/assets/javascripts/push_type/taxonomies.js.coffee +103 -0
  6. data/app/assets/stylesheets/push_type/admin.scss +262 -2
  7. data/app/assets/stylesheets/push_type/foundation_and_overrides.scss +1 -1
  8. data/app/controllers/push_type/taxonomies_controller.rb +36 -0
  9. data/app/controllers/push_type/taxonomy_terms_controller.rb +81 -0
  10. data/app/helpers/push_type/taxonomies_helper.rb +6 -0
  11. data/app/views/push_type/nodes/_form_fields.html.haml +34 -33
  12. data/app/views/push_type/nodes/_form_submit.html.haml +1 -1
  13. data/app/views/push_type/nodes/edit.html.haml +1 -2
  14. data/app/views/push_type/nodes/new.html.haml +1 -2
  15. data/app/views/push_type/taxonomies/index.html.haml +16 -0
  16. data/app/views/push_type/taxonomies/show.html.haml +57 -0
  17. data/config/routes.rb +6 -0
  18. data/lib/push_type/admin/engine.rb +9 -0
  19. data/test/controllers/push_type/taxonomies_controller_test.rb +25 -0
  20. data/test/controllers/push_type/taxonomy_terms_controller_test.rb +84 -0
  21. data/test/dummy/app/models/category.rb +6 -0
  22. data/test/dummy/app/views/taxonomies/category.html.erb +3 -0
  23. data/test/dummy/config/initializers/push_type.rb +3 -1
  24. data/test/dummy/config/secrets.yml +2 -2
  25. data/test/dummy/db/migrate/{20150310192202_create_push_type_users.push_type.rb → 20150406131551_create_push_type_users.push_type.rb} +1 -1
  26. data/test/dummy/db/migrate/{20150310192203_create_push_type_nodes.push_type.rb → 20150406131552_create_push_type_nodes.push_type.rb} +1 -1
  27. data/test/dummy/db/migrate/{20150310192204_create_push_type_node_hierarchies.push_type.rb → 20150406131553_create_push_type_node_hierarchies.push_type.rb} +2 -2
  28. data/test/dummy/db/migrate/{20150310192205_create_push_type_assets.push_type.rb → 20150406131554_create_push_type_assets.push_type.rb} +1 -1
  29. data/test/dummy/db/migrate/20150406131555_create_push_type_taxonomies.push_type.rb +19 -0
  30. data/test/dummy/db/migrate/20150406131556_create_push_type_taxonomy_hierarchies.push_type.rb +17 -0
  31. data/test/dummy/db/schema.rb +29 -9
  32. data/test/dummy/log/test.log +4893 -3071
  33. data/test/dummy/tmp/cache/assets/test/sass/{9df51eb4a9ff930ccfaadb724cc88e9267641d13 → 5330c0fed9105a4e05d9a06b726c443772e12da7}/_accordion.scssc +0 -0
  34. data/test/dummy/tmp/cache/assets/test/sass/{9df51eb4a9ff930ccfaadb724cc88e9267641d13 → 5330c0fed9105a4e05d9a06b726c443772e12da7}/_alert-boxes.scssc +0 -0
  35. data/test/dummy/tmp/cache/assets/test/sass/5330c0fed9105a4e05d9a06b726c443772e12da7/_block-grid.scssc +0 -0
  36. data/test/dummy/tmp/cache/assets/test/sass/{9df51eb4a9ff930ccfaadb724cc88e9267641d13 → 5330c0fed9105a4e05d9a06b726c443772e12da7}/_breadcrumbs.scssc +0 -0
  37. data/test/dummy/tmp/cache/assets/test/sass/{9df51eb4a9ff930ccfaadb724cc88e9267641d13 → 5330c0fed9105a4e05d9a06b726c443772e12da7}/_button-groups.scssc +0 -0
  38. data/test/dummy/tmp/cache/assets/test/sass/{9df51eb4a9ff930ccfaadb724cc88e9267641d13 → 5330c0fed9105a4e05d9a06b726c443772e12da7}/_buttons.scssc +0 -0
  39. data/test/dummy/tmp/cache/assets/test/sass/5330c0fed9105a4e05d9a06b726c443772e12da7/_clearing.scssc +0 -0
  40. data/test/dummy/tmp/cache/assets/test/sass/5330c0fed9105a4e05d9a06b726c443772e12da7/_dropdown-buttons.scssc +0 -0
  41. data/test/dummy/tmp/cache/assets/test/sass/{9df51eb4a9ff930ccfaadb724cc88e9267641d13 → 5330c0fed9105a4e05d9a06b726c443772e12da7}/_dropdown.scssc +0 -0
  42. data/test/dummy/tmp/cache/assets/test/sass/{9df51eb4a9ff930ccfaadb724cc88e9267641d13 → 5330c0fed9105a4e05d9a06b726c443772e12da7}/_flex-video.scssc +0 -0
  43. data/test/dummy/tmp/cache/assets/test/sass/{9df51eb4a9ff930ccfaadb724cc88e9267641d13 → 5330c0fed9105a4e05d9a06b726c443772e12da7}/_forms.scssc +0 -0
  44. data/test/dummy/tmp/cache/assets/test/sass/{9df51eb4a9ff930ccfaadb724cc88e9267641d13 → 5330c0fed9105a4e05d9a06b726c443772e12da7}/_global.scssc +0 -0
  45. data/test/dummy/tmp/cache/assets/test/sass/{9df51eb4a9ff930ccfaadb724cc88e9267641d13 → 5330c0fed9105a4e05d9a06b726c443772e12da7}/_grid.scssc +0 -0
  46. data/test/dummy/tmp/cache/assets/test/sass/5330c0fed9105a4e05d9a06b726c443772e12da7/_icon-bar.scssc +0 -0
  47. data/test/dummy/tmp/cache/assets/test/sass/{9df51eb4a9ff930ccfaadb724cc88e9267641d13 → 5330c0fed9105a4e05d9a06b726c443772e12da7}/_inline-lists.scssc +0 -0
  48. data/test/dummy/tmp/cache/assets/test/sass/{9df51eb4a9ff930ccfaadb724cc88e9267641d13 → 5330c0fed9105a4e05d9a06b726c443772e12da7}/_joyride.scssc +0 -0
  49. data/test/dummy/tmp/cache/assets/test/sass/{9df51eb4a9ff930ccfaadb724cc88e9267641d13 → 5330c0fed9105a4e05d9a06b726c443772e12da7}/_keystrokes.scssc +0 -0
  50. data/test/dummy/tmp/cache/assets/test/sass/{9df51eb4a9ff930ccfaadb724cc88e9267641d13 → 5330c0fed9105a4e05d9a06b726c443772e12da7}/_labels.scssc +0 -0
  51. data/test/dummy/tmp/cache/assets/test/sass/{9df51eb4a9ff930ccfaadb724cc88e9267641d13 → 5330c0fed9105a4e05d9a06b726c443772e12da7}/_magellan.scssc +0 -0
  52. data/test/dummy/tmp/cache/assets/test/sass/{9df51eb4a9ff930ccfaadb724cc88e9267641d13 → 5330c0fed9105a4e05d9a06b726c443772e12da7}/_offcanvas.scssc +0 -0
  53. data/test/dummy/tmp/cache/assets/test/sass/{9df51eb4a9ff930ccfaadb724cc88e9267641d13 → 5330c0fed9105a4e05d9a06b726c443772e12da7}/_orbit.scssc +0 -0
  54. data/test/dummy/tmp/cache/assets/test/sass/{9df51eb4a9ff930ccfaadb724cc88e9267641d13 → 5330c0fed9105a4e05d9a06b726c443772e12da7}/_pagination.scssc +0 -0
  55. data/test/dummy/tmp/cache/assets/test/sass/{9df51eb4a9ff930ccfaadb724cc88e9267641d13 → 5330c0fed9105a4e05d9a06b726c443772e12da7}/_panels.scssc +0 -0
  56. data/test/dummy/tmp/cache/assets/test/sass/{9df51eb4a9ff930ccfaadb724cc88e9267641d13 → 5330c0fed9105a4e05d9a06b726c443772e12da7}/_pricing-tables.scssc +0 -0
  57. data/test/dummy/tmp/cache/assets/test/sass/{9df51eb4a9ff930ccfaadb724cc88e9267641d13 → 5330c0fed9105a4e05d9a06b726c443772e12da7}/_progress-bars.scssc +0 -0
  58. data/test/dummy/tmp/cache/assets/test/sass/5330c0fed9105a4e05d9a06b726c443772e12da7/_range-slider.scssc +0 -0
  59. data/test/dummy/tmp/cache/assets/test/sass/5330c0fed9105a4e05d9a06b726c443772e12da7/_reveal.scssc +0 -0
  60. data/test/dummy/tmp/cache/assets/test/sass/{9df51eb4a9ff930ccfaadb724cc88e9267641d13 → 5330c0fed9105a4e05d9a06b726c443772e12da7}/_side-nav.scssc +0 -0
  61. data/test/dummy/tmp/cache/assets/test/sass/{9df51eb4a9ff930ccfaadb724cc88e9267641d13 → 5330c0fed9105a4e05d9a06b726c443772e12da7}/_split-buttons.scssc +0 -0
  62. data/test/dummy/tmp/cache/assets/test/sass/{9df51eb4a9ff930ccfaadb724cc88e9267641d13 → 5330c0fed9105a4e05d9a06b726c443772e12da7}/_sub-nav.scssc +0 -0
  63. data/test/dummy/tmp/cache/assets/test/sass/{9df51eb4a9ff930ccfaadb724cc88e9267641d13 → 5330c0fed9105a4e05d9a06b726c443772e12da7}/_switches.scssc +0 -0
  64. data/test/dummy/tmp/cache/assets/test/sass/{9df51eb4a9ff930ccfaadb724cc88e9267641d13 → 5330c0fed9105a4e05d9a06b726c443772e12da7}/_tables.scssc +0 -0
  65. data/test/dummy/tmp/cache/assets/test/sass/5330c0fed9105a4e05d9a06b726c443772e12da7/_tabs.scssc +0 -0
  66. data/test/dummy/tmp/cache/assets/test/sass/{9df51eb4a9ff930ccfaadb724cc88e9267641d13 → 5330c0fed9105a4e05d9a06b726c443772e12da7}/_thumbs.scssc +0 -0
  67. data/test/dummy/tmp/cache/assets/test/sass/{9df51eb4a9ff930ccfaadb724cc88e9267641d13 → 5330c0fed9105a4e05d9a06b726c443772e12da7}/_tooltips.scssc +0 -0
  68. data/test/dummy/tmp/cache/assets/test/sass/5330c0fed9105a4e05d9a06b726c443772e12da7/_top-bar.scssc +0 -0
  69. data/test/dummy/tmp/cache/assets/test/sass/{9df51eb4a9ff930ccfaadb724cc88e9267641d13 → 5330c0fed9105a4e05d9a06b726c443772e12da7}/_type.scssc +0 -0
  70. data/test/dummy/tmp/cache/assets/test/sass/{9df51eb4a9ff930ccfaadb724cc88e9267641d13 → 5330c0fed9105a4e05d9a06b726c443772e12da7}/_visibility.scssc +0 -0
  71. data/test/dummy/tmp/cache/assets/test/sass/{0bf981301b6f8cfa0a13d38a3554eafaa08d4bc1 → 8e964fb9e2b714a9d3faad7ab62f9bb5096b21bf}/foundation.scssc +0 -0
  72. data/test/dummy/tmp/cache/assets/test/sass/{9ffd013d383870261f2263c294cb3119536e8d59 → c67795fea8d999e739d183abcc4d1330e25b5d36}/_functions.scssc +0 -0
  73. data/test/dummy/tmp/cache/assets/test/sass/ddc338bd04efa4c6ae329e9f4f514bc8d0636fb5/admin.scssc +0 -0
  74. data/test/dummy/tmp/cache/assets/test/sass/ddc338bd04efa4c6ae329e9f4f514bc8d0636fb5/admin_assets.scss.erbc +0 -0
  75. data/test/dummy/tmp/cache/assets/test/sass/{2df752541ff0a319141a1cb83ca971d2ffd2d050 → ddc338bd04efa4c6ae329e9f4f514bc8d0636fb5}/foundation_and_overrides.scssc +0 -0
  76. data/test/dummy/tmp/cache/assets/test/sass/{2df752541ff0a319141a1cb83ca971d2ffd2d050 → ddc338bd04efa4c6ae329e9f4f514bc8d0636fb5}/tagsinput.scssc +0 -0
  77. data/test/dummy/tmp/cache/assets/test/sprockets/{aab84c1f5c24fa406a94eac09d22b2a4 → 01a43d14de05969bd75be96787102a8f} +0 -0
  78. data/test/dummy/tmp/cache/assets/test/sprockets/{5eb2ada2e9af19cdbe5cb8750ce801df → 02df7daeaf181d2bf9db0859ace7ac78} +0 -0
  79. data/test/dummy/tmp/cache/assets/test/sprockets/{0ad373f2b4d9f428b6e58e76da4ec0b9 → 052abf5f4f37b5a381d365f1d81a384f} +0 -0
  80. data/test/dummy/tmp/cache/assets/test/sprockets/{ab6e14fb85dc2ad554e941848018ed3f → 0a4219947cd1a8d37dfcf91d3a09d557} +0 -0
  81. data/test/dummy/tmp/cache/assets/test/sprockets/{3508023b6222e6b0876c773e38ec700d → 0dfb030e402960ab0409cd82dee0f77a} +0 -0
  82. data/test/dummy/tmp/cache/assets/test/sprockets/{e6e78e14e8c962d31e6148ca56230af9 → 0f8fb5fc24f5163e89c3120d0db8a55c} +0 -0
  83. data/test/dummy/tmp/cache/assets/test/sprockets/{27d0805c68db0e1ea5335f4ad7273237 → 10edc6da95775c8efb1aeeeccb3861c1} +0 -0
  84. data/test/dummy/tmp/cache/assets/test/sprockets/{5f85da4ac11a64f005e2656b99be44ac → 165305bae06b65fba3b83e6f050e9449} +0 -0
  85. data/test/dummy/tmp/cache/assets/test/sprockets/{a656594778473574f77b201837cc446f → 1bca52bd72c5954d6cec5490cfd19619} +0 -0
  86. data/test/dummy/tmp/cache/assets/test/sprockets/{faa4ce8149d6e520b0a0855bfd8853e0 → 1c148cfaa96fc18dd39206f147e0be89} +0 -0
  87. data/test/dummy/tmp/cache/assets/test/sprockets/{9850ccc5ff77cfe44eef6c931be25fa2 → 1c1650864315928ff30ac15efdbd6a72} +0 -0
  88. data/test/dummy/tmp/cache/assets/test/sprockets/234ab1ed0a06b51e80d3ce1f22eef80f +0 -0
  89. data/test/dummy/tmp/cache/assets/test/sprockets/26a5499486141a1cfbcd492fca683376 +0 -0
  90. data/test/dummy/tmp/cache/assets/test/sprockets/2b9a9bdd2d50fe0617cfd3ac8f3c7535 +0 -0
  91. data/test/dummy/tmp/cache/assets/test/sprockets/{1956e934d0761e89293cf096aef2ad04 → 2c88d5a49fa0567e394c1d802a1143bd} +0 -0
  92. data/test/dummy/tmp/cache/assets/test/sprockets/2cccbe983a0c901f050bbeb7e6560bb2 +0 -0
  93. data/test/dummy/tmp/cache/assets/test/sprockets/{c8e888c4098e2f3e7e08e7aad9233bd9 → 3b4a91ef8ae8c6c733bbf380db4a51b5} +0 -0
  94. data/test/dummy/tmp/cache/assets/test/sprockets/4291f70c0b1b49b8cb37180e005f1ca5 +0 -0
  95. data/test/dummy/tmp/cache/assets/test/sprockets/{ada55ab3ebb32ffd74145d341fbbcb06 → 44c04143276bf3ec3cb625eac0b4eb5f} +0 -0
  96. data/test/dummy/tmp/cache/assets/test/sprockets/45fede24e630a3890ff78603adac3b40 +0 -0
  97. data/test/dummy/tmp/cache/assets/test/sprockets/{fb4793fb33ff5da9202b3b44e1997140 → 4b96e071d5b0bea51754baa3a4fbcd67} +0 -0
  98. data/test/dummy/tmp/cache/assets/test/sprockets/{03fbfd831772639fdac75dfe5fe9cf64 → 4f11fbb0626468698ded19f801463860} +0 -0
  99. data/test/dummy/tmp/cache/assets/test/sprockets/50e721194ac7b2603499066264fe669d +0 -0
  100. data/test/dummy/tmp/cache/assets/test/sprockets/{30f88df6b769522639aee569e18ab005 → 50ef1236c1f68b14a4447176f367df02} +0 -0
  101. data/test/dummy/tmp/cache/assets/test/sprockets/{cf51890ac703ed5a5d704515a4721815 → 6270c8cc9bce4e44a28cb79decd0c682} +0 -0
  102. data/test/dummy/tmp/cache/assets/test/sprockets/{257233cf9d7cbb01dd74d0fefd6a9384 → 66d5f5d6173f5fcb483c033826309fe9} +0 -0
  103. data/test/dummy/tmp/cache/assets/test/sprockets/{e540a9dc1aa001f8c4cba7a6b00f69d2 → 6892513841335338f628eb301e5e46f4} +0 -0
  104. data/test/dummy/tmp/cache/assets/test/sprockets/{6afb6cb0462c9dab19086aa6c02e619a → 69fad8b0193556718134a4be4088511b} +0 -0
  105. data/test/dummy/tmp/cache/assets/test/sprockets/{b78741de2e56d8ac6629bb0dbf1d5c20 → 6aab772e07a59a05ace08e2f0a8e4f6c} +0 -0
  106. data/test/dummy/tmp/cache/assets/test/sprockets/{488d63b20534d2642d48b86b5a267a3b → 6ddd06b6619f4db1c4c72ec71f516a9f} +0 -0
  107. data/test/dummy/tmp/cache/assets/test/sprockets/{9c34afd1737e54e4eb06cc87ddf17b78 → 736f20368870e59baea915c56e465ce4} +0 -0
  108. data/test/dummy/tmp/cache/assets/test/sprockets/{eeb045e353d91335ea6ec8a8869c322f → 74286734f262b9bfdaba269993f75768} +0 -0
  109. data/test/dummy/tmp/cache/assets/test/sprockets/{0e97b69ac6f777e5725c5faa99228b8b → 74ec7f6ddd6cd98a7a197f6d1fdc7bdc} +0 -0
  110. data/test/dummy/tmp/cache/assets/test/sprockets/{0e01ae9de0f3914c8317853aedd9ace4 → 755a8cd3fa84cdf03061014ccc2dd621} +0 -0
  111. data/test/dummy/tmp/cache/assets/test/sprockets/{8b83fd34df285c871e41af1e2c3efda9 → 7dfe1759f6792869148aa1ee5ee25c32} +0 -0
  112. data/test/dummy/tmp/cache/assets/test/sprockets/80c23adecc9454798ddea565b6e2f955 +0 -0
  113. data/test/dummy/tmp/cache/assets/test/sprockets/81aeaaced37b66582a071d5aa54667be +0 -0
  114. data/test/dummy/tmp/cache/assets/test/sprockets/{2929961e63046a72db4e8d82548a8f31 → 84af7f78cb0d1ce3a3fa87718e171f1c} +0 -0
  115. data/test/dummy/tmp/cache/assets/test/sprockets/{0c7d363f5622cc1f9d3584fdea9a45a8 → 86297411722f24c420a876ea9ae18e37} +0 -0
  116. data/test/dummy/tmp/cache/assets/test/sprockets/{b05f3b842ea70a8728bdfc77fe0c3a37 → 8c74b5681ecb45af77b61df5f959d79a} +0 -0
  117. data/test/dummy/tmp/cache/assets/test/sprockets/{bb38dd1514d70d46cc209c23beacf4ae → 8ca58c6921452f516b6d3d1d6c86b4f5} +0 -0
  118. data/test/dummy/tmp/cache/assets/test/sprockets/93ebdecd5089eeabed49b171f1373c1c +0 -0
  119. data/test/dummy/tmp/cache/assets/test/sprockets/{e28b8ab6a5b3ff792f45d5a6b7d806bc → 95dabfa1407631937482632b2fffcb03} +0 -0
  120. data/test/dummy/tmp/cache/assets/test/sprockets/{8df98e9b5189ffce4cf77a33533416a6 → 99a0c3679c80558e28bba1ecd515a14a} +0 -0
  121. data/test/dummy/tmp/cache/assets/test/sprockets/{226a629ec094e8ad208f2c273121699a → 9a2b48c02d01f27d021a726feaca4fd0} +0 -0
  122. data/test/dummy/tmp/cache/assets/test/sprockets/9d76f803477c4099b6eb8f9d4d52736a +0 -0
  123. data/test/dummy/tmp/cache/assets/test/sprockets/{a9b8decaa2942e8913458c9f35da2693 → 9fa1a48cec5e59b8081516d8f1979087} +0 -0
  124. data/test/dummy/tmp/cache/assets/test/sprockets/{edaf2543a96ee921c30a071b3a73036f → a0869545029330f96741fc96ea2c6930} +0 -0
  125. data/test/dummy/tmp/cache/assets/test/sprockets/{6ffb1f074155829dca88c57f3730a9c3 → a8bde5e0b1b491fb1a275b927bfcb5d8} +0 -0
  126. data/test/dummy/tmp/cache/assets/test/sprockets/{7925f8f38f5165ad9d36a7d73dd00c06 → b1f4d4e270e25cda21255f606e3d8ffe} +0 -0
  127. data/test/dummy/tmp/cache/assets/test/sprockets/{ac6920ecb59148769117dba39b8bb574 → b29fe26f1c1071b42a0bf9f055177649} +0 -0
  128. data/test/dummy/tmp/cache/assets/test/sprockets/{93f1c8b2c57b6a34ce6be7a69af2eeab → b2e69a2811b5e6f453beaa71ff2faa3d} +0 -0
  129. data/test/dummy/tmp/cache/assets/test/sprockets/{633ffb1bd470dc99106053fe08ffcef3 → b5576320a141123874f4348adeb3133f} +0 -0
  130. data/test/dummy/tmp/cache/assets/test/sprockets/be63e5150ae78af2a53a3691c8edb579 +0 -0
  131. data/test/dummy/tmp/cache/assets/test/sprockets/{5c694af01dab7474cace85e2e37233af → c0d10e77d7fb7d6d965e882edfc5da61} +0 -0
  132. data/test/dummy/tmp/cache/assets/test/sprockets/{1821710663a22c38d025f3600144b386 → c1b559fa06c770cd7065a4114d8fd93e} +0 -0
  133. data/test/dummy/tmp/cache/assets/test/sprockets/{508e9ca93a5c6a60e79e3496654497cf → c3d450aa26d5c5f83bc68bcde998f61d} +0 -0
  134. data/test/dummy/tmp/cache/assets/test/sprockets/{0be1680e56bd474e90098c85ed3613f1 → c3f4e4af5c70f490ae17047d3ed2bb51} +0 -0
  135. data/test/dummy/tmp/cache/assets/test/sprockets/{edd24c59de6c00e4e68dbbdf2775984a → c642987b1e8317371d1fc3b3e1a7b55e} +0 -0
  136. data/test/dummy/tmp/cache/assets/test/sprockets/{a93ec74f5cd7f26f8c663d4c481fe689 → c9cc9568b2b18e604aa3a9c9480d9763} +0 -0
  137. data/test/dummy/tmp/cache/assets/test/sprockets/cda72f48ef5c694d8c96c8fe2d854629 +0 -0
  138. data/test/dummy/tmp/cache/assets/test/sprockets/{25da091131e25acf0f55a6528a94f309 → d09161ef4c6cd263e36df8c8a4c86e18} +0 -0
  139. data/test/dummy/tmp/cache/assets/test/sprockets/{ec01e589b2029448373e8112cfd62b6a → d5037255409c85197806006794fcdf40} +0 -0
  140. data/test/dummy/tmp/cache/assets/test/sprockets/{fd06309bc284d80f9c2a30f32ed8df14 → d96931783ed30aa240c60fde4617a351} +0 -0
  141. data/test/dummy/tmp/cache/assets/test/sprockets/{fba226eba4fa5dba560496c64a18009c → d9ddb0aea190ab4fea31822b19386853} +0 -0
  142. data/test/dummy/tmp/cache/assets/test/sprockets/{b762effbcb1d2a5c2e967b26de0b8e2a → db712d4dbb79c4ac60432dcce07bd466} +0 -0
  143. data/test/dummy/tmp/cache/assets/test/sprockets/{6245a5f4c9368169ba2cab2de39b1316 → dd4cfbacaf337f92d161db82f61315b8} +0 -0
  144. data/test/dummy/tmp/cache/assets/test/sprockets/{2196fdacd39bb9f5c4e3755b86d84888 → e09a07bb146f5f5ce0f5b629c800acf3} +0 -0
  145. data/test/dummy/tmp/cache/assets/test/sprockets/{756b24d1d6762675f2f3d781313c59b6 → e129f696cc74c9cc667e27d4fad400d4} +0 -0
  146. data/test/dummy/tmp/cache/assets/test/sprockets/{91e13d81afe9041372ad8f79ee9159f4 → e5ca6700a0d0b3ddc3d4ce604e677015} +0 -0
  147. data/test/dummy/tmp/cache/assets/test/sprockets/{64550cb088f2a8bd25da69f8e7623a7a → e5e26fc0f6b8bda87e424fc53d074460} +0 -0
  148. data/test/dummy/tmp/cache/assets/test/sprockets/{312dcc14683b058a2ecb35f844b45deb → e5e6786891e684e0780275d5931e0d4c} +0 -0
  149. data/test/dummy/tmp/cache/assets/test/sprockets/{7cd04ce7e67cb693aa31bd3e03199ecd → f1a08fd2d7d7ac59d48d3673f528208f} +0 -0
  150. data/test/dummy/tmp/cache/assets/test/sprockets/{720b83386eaf5707c1535472e36ba7fb → f76b0143f821cd347e8668babc8473c2} +0 -0
  151. data/test/dummy/tmp/cache/assets/test/sprockets/{f96cec87308c4d1efa7993c38b770ba3 → ffd5d537d0557053f0955aefea60e00e} +0 -0
  152. data/vendor/assets/javascripts/angular-ui-tree.js +1259 -0
  153. metadata +280 -248
  154. data/test/dummy/tmp/cache/assets/test/sass/2df752541ff0a319141a1cb83ca971d2ffd2d050/admin.scssc +0 -0
  155. data/test/dummy/tmp/cache/assets/test/sass/2df752541ff0a319141a1cb83ca971d2ffd2d050/admin_assets.scss.erbc +0 -0
  156. data/test/dummy/tmp/cache/assets/test/sass/9df51eb4a9ff930ccfaadb724cc88e9267641d13/_block-grid.scssc +0 -0
  157. data/test/dummy/tmp/cache/assets/test/sass/9df51eb4a9ff930ccfaadb724cc88e9267641d13/_clearing.scssc +0 -0
  158. data/test/dummy/tmp/cache/assets/test/sass/9df51eb4a9ff930ccfaadb724cc88e9267641d13/_dropdown-buttons.scssc +0 -0
  159. data/test/dummy/tmp/cache/assets/test/sass/9df51eb4a9ff930ccfaadb724cc88e9267641d13/_icon-bar.scssc +0 -0
  160. data/test/dummy/tmp/cache/assets/test/sass/9df51eb4a9ff930ccfaadb724cc88e9267641d13/_range-slider.scssc +0 -0
  161. data/test/dummy/tmp/cache/assets/test/sass/9df51eb4a9ff930ccfaadb724cc88e9267641d13/_reveal.scssc +0 -0
  162. data/test/dummy/tmp/cache/assets/test/sass/9df51eb4a9ff930ccfaadb724cc88e9267641d13/_tabs.scssc +0 -0
  163. data/test/dummy/tmp/cache/assets/test/sass/9df51eb4a9ff930ccfaadb724cc88e9267641d13/_top-bar.scssc +0 -0
  164. data/test/dummy/tmp/cache/assets/test/sprockets/147cd256ded8a7797a230bd1f27db96a +0 -0
  165. data/test/dummy/tmp/cache/assets/test/sprockets/23c10c485dbe7ea46614928874120ecf +0 -0
  166. data/test/dummy/tmp/cache/assets/test/sprockets/6c7542a3718ad8d161e94f4816f01ccb +0 -0
  167. data/test/dummy/tmp/cache/assets/test/sprockets/8d531fdb806de0724337e0b80e253914 +0 -0
  168. data/test/dummy/tmp/cache/assets/test/sprockets/c206fbd33f49ab785c6ddf4bcffd3b93 +0 -0
  169. data/test/dummy/tmp/cache/assets/test/sprockets/df90022afc0d52f16bc498be20a5967d +0 -0
  170. data/test/dummy/tmp/cache/assets/test/sprockets/f7cf86568d1c692cb0a565614f282572 +0 -0
@@ -1,37 +1,38 @@
1
- %div{ ng: { controller: 'NodeFormCtrl', init: "node=#{ node_hash(@node).to_json }" } }
2
- .large-8.columns
3
- .container
4
- .head
5
- .left.btn= link_to ficon(:previous), node_back_link(@node)
6
- .title= yield :title
7
- .body.padded
8
- .row.title
9
- .columns
10
- = f.label :title
11
- = f.text_field :title, :'ng-model' => 'node.title', :'ng-keyup' => 'setSlug()'
12
- .row.permalink
13
- .columns{ ng: { class: 'permalinkVisibility()' } }
14
- %span.key Permalink
15
- %span.value
16
- %span.show-for-medium-up http://#{ request.host_with_port }/
17
- = content_tag :span, @node.parent.permalink+'/' if @node.parent
18
- %span {{ node.slug }}
19
- %button.button.tiny.radius.secondary{ data: { dropdown: 'slug-field' }} Edit
20
- #slug-field.f-dropdown.content{ data: { dropdown: { content: true } } }
21
- = f.label :slug
22
- = f.text_field :slug, :'ng-model' => 'node.slug'
23
- - if @node.errors.include? :slug
24
- .error-icon= ficon :info, 'Error'
1
+ = form_for @node, url: url do |f|
2
+ %div{ ng: { controller: 'NodeFormCtrl', init: "node=#{ node_hash(@node).to_json }" } }
3
+ .large-8.columns
4
+ .container
5
+ .head
6
+ .left.btn= link_to ficon(:previous), node_back_link(@node)
7
+ .title= yield :title
8
+ .body.padded
9
+ .row.title
10
+ .columns
11
+ = f.label :title
12
+ = f.text_field :title, :'ng-model' => 'node.title', :'ng-keyup' => 'setSlug()'
13
+ .row.permalink
14
+ .columns{ ng: { class: 'permalinkVisibility()' } }
15
+ %span.key Permalink
16
+ %span.value
17
+ %span.show-for-medium-up http://#{ request.host_with_port }/
18
+ = content_tag :span, @node.parent.permalink+'/' if @node.parent
19
+ %span {{ node.slug }}
20
+ %button.button.tiny.radius.secondary{ data: { dropdown: 'slug-field' } } Edit
21
+ #slug-field.f-dropdown.content{ data: { dropdown: { content: true } } }
22
+ = f.label :slug
23
+ = f.text_field :slug, :'ng-model' => 'node.slug'
24
+ - if @node.errors.include? :slug
25
+ .error-icon= ficon :info, 'Error'
25
26
 
26
- .row.custom-fields
27
- - @node.fields.each do |key, field|
28
- = render_custom_field field, f
27
+ .row.custom-fields
28
+ - @node.fields.each do |key, field|
29
+ = render_custom_field field, f
29
30
 
30
- .large-4.columns
31
- .side-panel{ :'side-panel' => true }
32
- .padded
33
- = render 'meta_table', f: f
34
- .submit.text-center
35
- = render 'form_submit', f: f
31
+ .large-4.columns
32
+ .side-panel{ :'side-panel' => true }
33
+ .padded
34
+ = render 'meta_table', f: f
35
+ .submit.text-center
36
+ = render 'form_submit', f: f
36
37
 
37
38
 
@@ -1,6 +1,6 @@
1
1
  - unless @node.trashed?
2
2
  = f.hidden_field :status, value: '{{ node.status }}'
3
- %button.button.radius.split{ ng: { class: 'saveButtonClass()' } }
3
+ %a.button.radius.split{ ng: { class: 'saveButtonClass()' }, node: { submit: true } }
4
4
  = ficon :check, "{{ saveButtonText() }}"
5
5
  %span{ data: { dropdown: 'publish-toggle', options: 'align:bottom' } }
6
6
  %ul#publish-toggle.f-dropdown.tiny{ data: { dropdown: { content: true } } }
@@ -7,5 +7,4 @@
7
7
  - breadcrumbs.add node.title, push_type.node_nodes_path(node)
8
8
  - breadcrumbs.add @node.title, push_type.edit_node_path(@node)
9
9
 
10
- = form_for @node, url: push_type.node_path(@node) do |f|
11
- = render 'form_fields', f: f
10
+ = render 'form_fields', url: push_type.node_path(@node)
@@ -7,5 +7,4 @@
7
7
  - else
8
8
  - breadcrumbs.add yield(:title), push_type.new_node_path
9
9
 
10
- = form_for @node, url: (@parent ? push_type.node_nodes_path(@parent, kind: @node.type.underscore) : push_type.nodes_path(kind: @node.type.underscore)) do |f|
11
- = render 'form_fields', f: f
10
+ = render 'form_fields', url: @parent ? push_type.node_nodes_path(@parent, kind: @node.type.underscore) : push_type.nodes_path(kind: @node.type.underscore)
@@ -0,0 +1,16 @@
1
+ - title 'Taxonomies'
2
+
3
+ .columns
4
+ %section
5
+ %ul.taxonomies-list.small-block-grid-1.medium-block-grid-2.large-block-grid-3
6
+ - for taxonomy in @taxonomies
7
+ %li
8
+ %article.taxonomies-list-item
9
+ = link_to push_type.taxonomy_path(taxonomy.name.underscore) do
10
+ .title= taxonomy.title
11
+ .meta
12
+ - if taxonomy.exposed?
13
+ %span.label.success.radius Exposed
14
+ - else
15
+ %span.label.secondary.radius Unexposed
16
+ %span= pluralize taxonomy.all.count, 'term'
@@ -0,0 +1,57 @@
1
+ - title "Manage #{ @taxonomy.title.downcase }"
2
+ - breadcrumbs.add @taxonomy.title, push_type.taxonomy_path(@taxonomy.name.underscore)
3
+
4
+ %div{ ng: { controller: 'TaxonomyTermsCtrl', init: "param='#{ @taxonomy.name.underscore }'; baseSlug='#{ @taxonomy.base_slug }'; terms=#{ @terms.to_json }" } }
5
+ .large-8.columns
6
+ .container
7
+ .head
8
+ .left.btn= link_to ficon(:previous), push_type.taxonomies_path
9
+ .title= yield :title
10
+ .body{ :'ui-tree' => 'treeFuncs' }
11
+ .empty-default{ ng: { hide: 'termCount() > 0' } }
12
+ %h2 No #{ @taxonomy.title.downcase }
13
+ %p Organise content through taxonomies. Get started by creating your first #{ @taxonomy.title.downcase.singularize }.
14
+ %a.button.success.radius{ ng: { click: 'newTerm()' } }
15
+ = ficon :plus, "Add #{ @taxonomy.title.downcase.singularize }"
16
+ %ul.taxonomy-term-list{ :'ui-tree-nodes' => true, ng: { model: 'terms' } }
17
+ %li.taxonomy-term-item{ :'ui-tree-node' => true, ng: { repeat: 'term in terms', include: "'taxonomy.html'" } }
18
+
19
+ .large-4.columns
20
+ .side-panel{ :'side-panel' => true }
21
+ .cta.text-center
22
+ %a.button.success.radius{ ng: { click: 'newTerm()' } }
23
+ = ficon :plus, "Add #{ @taxonomy.title.downcase.singularize }"
24
+
25
+
26
+ = content_tag :script, type: 'text/ng-template', id: 'taxonomy.html' do
27
+ %div{ ng: { controller: 'TaxonomyTermCtrl' } }
28
+ %div.show{ ng: { hide: 'isEditing()' } }
29
+ .title {{ term.title }}
30
+ .meta
31
+ %span {{ termPermalink() }}
32
+ .edit
33
+ %a{ ng: { click: 'edit()' } }
34
+ .icon= ficon(:pencil)
35
+ .meta Edit
36
+ .handle{ :'ui-tree-handle' => true }
37
+ %form{ name: 'termForm', ng: { show: 'isEditing()' } }
38
+ .columns
39
+ .row.collapse
40
+ .small-1.columns{ ng: { class: 'errorClass("title")' } }
41
+ %label.prefix Title
42
+ .small-11.columns{ ng: { class: 'errorClass("title")' } }
43
+ %input{ type: 'text', name: 'title', ng: { model: 'term.title', keyup: 'setSlug()' } }
44
+ %small.error{ ng: { show: 'errors.title' } } {{ errors.title }}
45
+ .row.collapse
46
+ .small-1.columns{ ng: { class: 'errorClass("slug")' } }
47
+ %label.prefix Slug
48
+ .small-5.columns{ ng: { class: 'errorClass("slug")' } }
49
+ %input{ type: 'text', name: 'slug', ng: { model: 'term.slug' } }
50
+ %small.error{ ng: { show: 'errors.slug' } } {{ errors.slug }}
51
+ .small-6.columns.text-right
52
+ %button.tiny.radius.success{ ng: { click: 'save()' } } Save
53
+ %button.tiny.radius.alert{ :'pt-confirm-reveal' => 'delete()', ng: { hide: 'isNewTerm()' }, data: { body: "This action cannot be undone. All child #{ @taxonomy.title.downcase } will also be permanently deleted."} } Delete
54
+ %button.tiny.radius.secondary{ ng: { click: 'reset()' } } Cancel
55
+ %input{ type: 'hidden', value: '{{ term.id }}', ng: { if: 'term.id' } }
56
+ %ul.nested-taxonomy-term-list{ :'ui-tree-nodes' => true, ng: { init: 'terms = term.children', model: 'terms' } }<
57
+ %li.taxonomy-term-item{ :'ui-tree-node' => true, ng: { repeat: 'term in terms', include: "'taxonomy.html'" } }
data/config/routes.rb CHANGED
@@ -12,6 +12,12 @@ PushType::Core::Engine.routes.draw do
12
12
  resources :nodes, only: [:index, :new, :create]
13
13
  end
14
14
 
15
+ resources :taxonomies, only: [:index, :show] do
16
+ resources :terms, only: [:create, :update, :destroy], controller: 'taxonomy_terms' do
17
+ post 'position', on: :member
18
+ end
19
+ end
20
+
15
21
  resources :assets, except: :show, path: 'media' do
16
22
  collection do
17
23
  post 'upload'
@@ -48,6 +48,15 @@ module PushType
48
48
  end
49
49
  end
50
50
 
51
+ config.after_initialize do
52
+ if PushType::Taxonomy.descendants.present?
53
+ PushType.menu(:main).insert_after :content, :taxonomies do
54
+ link { push_type.taxonomies_path }
55
+ active { request.fullpath.match %r{^#{ push_type.taxonomies_path }} }
56
+ end
57
+ end
58
+ end
59
+
51
60
  end
52
61
  end
53
62
  end
@@ -0,0 +1,25 @@
1
+ require "test_helper"
2
+
3
+ module PushType
4
+ describe TaxonomiesController do
5
+
6
+ describe 'GET #index' do
7
+ before { get :index }
8
+ it { response.must_render_template 'index' }
9
+ it { assigns[:taxonomies].size.must_equal 1 }
10
+ it { assigns[:taxonomies].first.must_equal Category }
11
+ end
12
+
13
+ describe 'GET #show' do
14
+ before do
15
+ 3.times { @parent = FactoryGirl.create :taxonomy, type: 'Category' }
16
+ @child = FactoryGirl.create :taxonomy, type: 'Category', parent: @parent
17
+ get :show, id: 'category'
18
+ end
19
+ it { response.must_render_template 'show' }
20
+ it { assigns[:terms].size.must_equal 3 }
21
+ it { assigns[:terms].map { |h| h[:children] }.flatten.size.must_equal 1 }
22
+ end
23
+
24
+ end
25
+ end
@@ -0,0 +1,84 @@
1
+ require "test_helper"
2
+
3
+ module PushType
4
+ describe TaxonomyTermsController do
5
+
6
+ let(:json_response) { JSON.parse(response.body) }
7
+
8
+ describe 'POST #create' do
9
+ let(:taxonomy_attrs) { FactoryGirl.attributes_for :taxonomy }
10
+ let(:action!) { post :create, format: :json, taxonomy_id: 'category', category: taxonomy_attrs }
11
+ describe 'with valid taxonomy' do
12
+ before { action! }
13
+ it { response.must_respond_with :success }
14
+ it { json_response['term'].must_be :present? }
15
+ end
16
+ describe 'taxonomy count' do
17
+ it { proc { action! }.must_change 'Category.count', 1 }
18
+ end
19
+ describe 'with in-valid taxonomy' do
20
+ let(:taxonomy_attrs) { {} }
21
+ before { action! }
22
+ it { response.must_respond_with :unprocessable_entity }
23
+ it { json_response['errors'].must_be :present? }
24
+ end
25
+ end
26
+
27
+ describe 'PUT #update' do
28
+ let(:category) { FactoryGirl.create :taxonomy, type: 'Category' }
29
+ before { put :update, format: :json, taxonomy_id: 'category', id: category.id, category: { title: new_title } }
30
+ describe 'with valid taxonomy' do
31
+ let(:new_title) { 'Foo bar baz' }
32
+ it { response.must_respond_with :success }
33
+ it { category.reload.title.must_equal new_title }
34
+ end
35
+ describe 'with in-valid taxonomy' do
36
+ let(:new_title) { '' }
37
+ it { response.must_respond_with :unprocessable_entity }
38
+ it { json_response['errors'].must_be :present? }
39
+ end
40
+ end
41
+
42
+ describe 'DELETE #destroy' do
43
+ let(:category) { FactoryGirl.create :taxonomy, type: 'Category' }
44
+ before { delete :destroy, format: :json, taxonomy_id: 'category', id: category.id }
45
+ it { response.must_respond_with :success }
46
+ it { proc { category.reload }.must_raise ActiveRecord::RecordNotFound }
47
+ end
48
+
49
+ describe 'PUT #position' do
50
+ let(:terms) { Category.roots.all }
51
+ before do
52
+ @first_node = Category.create FactoryGirl.attributes_for(:taxonomy)
53
+ 3.times { Category.create FactoryGirl.attributes_for(:taxonomy) }
54
+ @last_node = Category.create FactoryGirl.attributes_for(:taxonomy)
55
+ end
56
+ describe 'without reponsitioning' do
57
+ it { terms.first.must_equal @first_node }
58
+ it { terms.last.must_equal @last_node }
59
+ end
60
+ describe 'append sibling' do
61
+ before do
62
+ post :position, format: :json, taxonomy_id: 'category', id: @last_node.id, prev: @first_node.id
63
+ end
64
+ it { terms.first.must_equal @first_node }
65
+ it { terms[1].must_equal @last_node }
66
+ end
67
+ describe 'prepend sibling' do
68
+ before do
69
+ post :position, format: :json, taxonomy_id: 'category', id: @last_node.id, next: @first_node.id
70
+ end
71
+ it { terms[1].must_equal @first_node }
72
+ it { terms.first.must_equal @last_node }
73
+ end
74
+ describe 'append child' do
75
+ before do
76
+ post :position, format: :json, taxonomy_id: 'category', id: @last_node.id, parent: @first_node.id
77
+ end
78
+ it { terms.first.must_equal @first_node }
79
+ it { terms.first.children.must_include @last_node }
80
+ end
81
+ end
82
+
83
+ end
84
+ end
@@ -0,0 +1,6 @@
1
+ class Category < PushType::Taxonomy
2
+
3
+ # Set base slug
4
+ # base_slug :category
5
+
6
+ end
@@ -0,0 +1,3 @@
1
+ <h1><%= @taxonomy.title %></h1>
2
+ <p>This is a generated Category template.</p>
3
+ <p>Find me at: app/views/taxonomies/category.html.erb</p>
@@ -6,6 +6,8 @@ PushType.setup do |config|
6
6
 
7
7
  config.home_slug = 'home'
8
8
 
9
+ config.unexposed_taxonomies = []
10
+
9
11
  config.media_styles = {
10
12
  large: '1024x1024>',
11
13
  medium: '512x512>',
@@ -31,6 +33,6 @@ PushType.setup do |config|
31
33
  # secret_access_key: ENV['SECRET_ACCESS_KEY_ID']
32
34
  # }
33
35
 
34
- # config.dragonfly_secret = '1a53010fcc5c4a800084125092caacfa006ac6430985031f1951b65528255ab4'
36
+ # config.dragonfly_secret = '1cb5196e0940fe96ce4ce9df12aec5176b2a38dc339a6ac0b90558237fa9dc96'
35
37
 
36
38
  end
@@ -11,10 +11,10 @@
11
11
  # if you're sharing your code publicly.
12
12
 
13
13
  development:
14
- secret_key_base: ee0172d114828fe66ff65f4120ccda252886c4f8b3ab65bfcc58d328c25a933d4e4a83319783bfa0ac20ced3675f2e362a4e5ae70e71e91dbba11cdf54ab1cc7
14
+ secret_key_base: 523246cbd83acda2aecad3cb5434c0de7b34368a7f8be6800c346849b6468f01916b71ea3f29716c7de699e7ee1cbcd9e9274b782a7b1ebad4dce3248a85c6c9
15
15
 
16
16
  test:
17
- secret_key_base: 74b1a04a2bd50acdcfaca217854c683f4192b11f285d940bf7e051a3e2fc1b752d582e65aeb3986a07e905c63125b325bc361a3bc8b5f1b5ed36bc008bc6e895
17
+ secret_key_base: f47c67b36ee09e6e1171106ee687521f7de5d2e0d742c4fcc81f92069ef76046d40944f21b3587f2787fd6a938142ae76820b96db3cd11849d7ecfc8582864f2
18
18
 
19
19
  # Do not keep production secrets in the repository,
20
20
  # instead read values from the environment.
@@ -7,7 +7,7 @@ class CreatePushTypeUsers < ActiveRecord::Migration
7
7
  t.string :email
8
8
  t.jsonb :field_store
9
9
 
10
- t.timestamps
10
+ t.timestamps null: false
11
11
  end
12
12
  end
13
13
  end
@@ -18,7 +18,7 @@ class CreatePushTypeNodes < ActiveRecord::Migration
18
18
  t.uuid :creator_id
19
19
  t.uuid :updater_id
20
20
 
21
- t.timestamps
21
+ t.timestamps null: false
22
22
  t.datetime :deleted_at
23
23
  end
24
24
  end
@@ -9,9 +9,9 @@ class CreatePushTypeNodeHierarchies < ActiveRecord::Migration
9
9
 
10
10
  add_index :push_type_node_hierarchies, [:ancestor_id, :descendant_id, :generations],
11
11
  unique: true,
12
- name: "anc_desc_idx"
12
+ name: "node_anc_desc_idx"
13
13
 
14
14
  add_index :push_type_node_hierarchies, [:descendant_id],
15
- name: "desc_idx"
15
+ name: "node_desc_idx"
16
16
  end
17
17
  end
@@ -12,7 +12,7 @@ class CreatePushTypeAssets < ActiveRecord::Migration
12
12
 
13
13
  t.uuid :uploader_id
14
14
 
15
- t.timestamps
15
+ t.timestamps null: false
16
16
  t.datetime :deleted_at
17
17
  end
18
18
  end
@@ -0,0 +1,19 @@
1
+ # This migration comes from push_type (originally 20150310115933)
2
+ class CreatePushTypeTaxonomies < ActiveRecord::Migration
3
+ def change
4
+ enable_extension 'uuid-ossp' unless extension_enabled?('uuid-ossp')
5
+ create_table :push_type_taxonomies, id: :uuid, default: 'uuid_generate_v4()' do |t|
6
+ t.string :type
7
+ t.string :title
8
+ t.string :slug
9
+
10
+ t.uuid :parent_id
11
+ t.integer :sort_order
12
+
13
+ t.timestamps null: false
14
+ end
15
+
16
+ # Also add a tags array to Assets
17
+ add_column :push_type_assets, :tags, :string, array: true
18
+ end
19
+ end
@@ -0,0 +1,17 @@
1
+ # This migration comes from push_type (originally 20150310123230)
2
+ class CreatePushTypeTaxonomyHierarchies < ActiveRecord::Migration
3
+ def change
4
+ create_table :push_type_taxonomy_hierarchies, id: false do |t|
5
+ t.uuid :ancestor_id, null: false
6
+ t.uuid :descendant_id, null: false
7
+ t.integer :generations, null: false
8
+ end
9
+
10
+ add_index :push_type_taxonomy_hierarchies, [:ancestor_id, :descendant_id, :generations],
11
+ unique: true,
12
+ name: "taxonomy_anc_desc_idx"
13
+
14
+ add_index :push_type_taxonomy_hierarchies, [:descendant_id],
15
+ name: "taxonomy_desc_idx"
16
+ end
17
+ end
@@ -11,7 +11,7 @@
11
11
  #
12
12
  # It's strongly recommended that you check this file into your version control system.
13
13
 
14
- ActiveRecord::Schema.define(version: 20150310192205) do
14
+ ActiveRecord::Schema.define(version: 20150406131556) do
15
15
 
16
16
  # These are extensions that must be enabled in order to support this database
17
17
  enable_extension "plpgsql"
@@ -25,9 +25,10 @@ ActiveRecord::Schema.define(version: 20150310192205) do
25
25
  t.string "mime_type"
26
26
  t.string "description"
27
27
  t.uuid "uploader_id"
28
- t.datetime "created_at"
29
- t.datetime "updated_at"
28
+ t.datetime "created_at", null: false
29
+ t.datetime "updated_at", null: false
30
30
  t.datetime "deleted_at"
31
+ t.string "tags", array: true
31
32
  end
32
33
 
33
34
  create_table "push_type_node_hierarchies", id: false, force: :cascade do |t|
@@ -36,8 +37,8 @@ ActiveRecord::Schema.define(version: 20150310192205) do
36
37
  t.integer "generations", null: false
37
38
  end
38
39
 
39
- add_index "push_type_node_hierarchies", ["ancestor_id", "descendant_id", "generations"], name: "anc_desc_idx", unique: true, using: :btree
40
- add_index "push_type_node_hierarchies", ["descendant_id"], name: "desc_idx", using: :btree
40
+ add_index "push_type_node_hierarchies", ["ancestor_id", "descendant_id", "generations"], name: "node_anc_desc_idx", unique: true, using: :btree
41
+ add_index "push_type_node_hierarchies", ["descendant_id"], name: "node_desc_idx", using: :btree
41
42
 
42
43
  create_table "push_type_nodes", id: :uuid, default: "uuid_generate_v4()", force: :cascade do |t|
43
44
  t.string "type"
@@ -51,17 +52,36 @@ ActiveRecord::Schema.define(version: 20150310192205) do
51
52
  t.datetime "published_to"
52
53
  t.uuid "creator_id"
53
54
  t.uuid "updater_id"
54
- t.datetime "created_at"
55
- t.datetime "updated_at"
55
+ t.datetime "created_at", null: false
56
+ t.datetime "updated_at", null: false
56
57
  t.datetime "deleted_at"
57
58
  end
58
59
 
60
+ create_table "push_type_taxonomies", id: :uuid, default: "uuid_generate_v4()", force: :cascade do |t|
61
+ t.string "type"
62
+ t.string "title"
63
+ t.string "slug"
64
+ t.uuid "parent_id"
65
+ t.integer "sort_order"
66
+ t.datetime "created_at", null: false
67
+ t.datetime "updated_at", null: false
68
+ end
69
+
70
+ create_table "push_type_taxonomy_hierarchies", id: false, force: :cascade do |t|
71
+ t.uuid "ancestor_id", null: false
72
+ t.uuid "descendant_id", null: false
73
+ t.integer "generations", null: false
74
+ end
75
+
76
+ add_index "push_type_taxonomy_hierarchies", ["ancestor_id", "descendant_id", "generations"], name: "taxonomy_anc_desc_idx", unique: true, using: :btree
77
+ add_index "push_type_taxonomy_hierarchies", ["descendant_id"], name: "taxonomy_desc_idx", using: :btree
78
+
59
79
  create_table "push_type_users", id: :uuid, default: "uuid_generate_v4()", force: :cascade do |t|
60
80
  t.string "name"
61
81
  t.string "email"
62
82
  t.jsonb "field_store"
63
- t.datetime "created_at"
64
- t.datetime "updated_at"
83
+ t.datetime "created_at", null: false
84
+ t.datetime "updated_at", null: false
65
85
  end
66
86
 
67
87
  end