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.
- checksums.yaml +4 -4
- data/app/assets/javascripts/push_type/admin.js.coffee +9 -2
- data/app/assets/javascripts/push_type/directives.js.coffee +43 -0
- data/app/assets/javascripts/push_type/nodes.js.coffee +8 -3
- data/app/assets/javascripts/push_type/taxonomies.js.coffee +103 -0
- data/app/assets/stylesheets/push_type/admin.scss +262 -2
- data/app/assets/stylesheets/push_type/foundation_and_overrides.scss +1 -1
- data/app/controllers/push_type/taxonomies_controller.rb +36 -0
- data/app/controllers/push_type/taxonomy_terms_controller.rb +81 -0
- data/app/helpers/push_type/taxonomies_helper.rb +6 -0
- data/app/views/push_type/nodes/_form_fields.html.haml +34 -33
- data/app/views/push_type/nodes/_form_submit.html.haml +1 -1
- data/app/views/push_type/nodes/edit.html.haml +1 -2
- data/app/views/push_type/nodes/new.html.haml +1 -2
- data/app/views/push_type/taxonomies/index.html.haml +16 -0
- data/app/views/push_type/taxonomies/show.html.haml +57 -0
- data/config/routes.rb +6 -0
- data/lib/push_type/admin/engine.rb +9 -0
- data/test/controllers/push_type/taxonomies_controller_test.rb +25 -0
- data/test/controllers/push_type/taxonomy_terms_controller_test.rb +84 -0
- data/test/dummy/app/models/category.rb +6 -0
- data/test/dummy/app/views/taxonomies/category.html.erb +3 -0
- data/test/dummy/config/initializers/push_type.rb +3 -1
- data/test/dummy/config/secrets.yml +2 -2
- data/test/dummy/db/migrate/{20150310192202_create_push_type_users.push_type.rb → 20150406131551_create_push_type_users.push_type.rb} +1 -1
- data/test/dummy/db/migrate/{20150310192203_create_push_type_nodes.push_type.rb → 20150406131552_create_push_type_nodes.push_type.rb} +1 -1
- 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
- data/test/dummy/db/migrate/{20150310192205_create_push_type_assets.push_type.rb → 20150406131554_create_push_type_assets.push_type.rb} +1 -1
- data/test/dummy/db/migrate/20150406131555_create_push_type_taxonomies.push_type.rb +19 -0
- data/test/dummy/db/migrate/20150406131556_create_push_type_taxonomy_hierarchies.push_type.rb +17 -0
- data/test/dummy/db/schema.rb +29 -9
- data/test/dummy/log/test.log +4893 -3071
- data/test/dummy/tmp/cache/assets/test/sass/{9df51eb4a9ff930ccfaadb724cc88e9267641d13 → 5330c0fed9105a4e05d9a06b726c443772e12da7}/_accordion.scssc +0 -0
- data/test/dummy/tmp/cache/assets/test/sass/{9df51eb4a9ff930ccfaadb724cc88e9267641d13 → 5330c0fed9105a4e05d9a06b726c443772e12da7}/_alert-boxes.scssc +0 -0
- data/test/dummy/tmp/cache/assets/test/sass/5330c0fed9105a4e05d9a06b726c443772e12da7/_block-grid.scssc +0 -0
- data/test/dummy/tmp/cache/assets/test/sass/{9df51eb4a9ff930ccfaadb724cc88e9267641d13 → 5330c0fed9105a4e05d9a06b726c443772e12da7}/_breadcrumbs.scssc +0 -0
- data/test/dummy/tmp/cache/assets/test/sass/{9df51eb4a9ff930ccfaadb724cc88e9267641d13 → 5330c0fed9105a4e05d9a06b726c443772e12da7}/_button-groups.scssc +0 -0
- data/test/dummy/tmp/cache/assets/test/sass/{9df51eb4a9ff930ccfaadb724cc88e9267641d13 → 5330c0fed9105a4e05d9a06b726c443772e12da7}/_buttons.scssc +0 -0
- data/test/dummy/tmp/cache/assets/test/sass/5330c0fed9105a4e05d9a06b726c443772e12da7/_clearing.scssc +0 -0
- data/test/dummy/tmp/cache/assets/test/sass/5330c0fed9105a4e05d9a06b726c443772e12da7/_dropdown-buttons.scssc +0 -0
- data/test/dummy/tmp/cache/assets/test/sass/{9df51eb4a9ff930ccfaadb724cc88e9267641d13 → 5330c0fed9105a4e05d9a06b726c443772e12da7}/_dropdown.scssc +0 -0
- data/test/dummy/tmp/cache/assets/test/sass/{9df51eb4a9ff930ccfaadb724cc88e9267641d13 → 5330c0fed9105a4e05d9a06b726c443772e12da7}/_flex-video.scssc +0 -0
- data/test/dummy/tmp/cache/assets/test/sass/{9df51eb4a9ff930ccfaadb724cc88e9267641d13 → 5330c0fed9105a4e05d9a06b726c443772e12da7}/_forms.scssc +0 -0
- data/test/dummy/tmp/cache/assets/test/sass/{9df51eb4a9ff930ccfaadb724cc88e9267641d13 → 5330c0fed9105a4e05d9a06b726c443772e12da7}/_global.scssc +0 -0
- data/test/dummy/tmp/cache/assets/test/sass/{9df51eb4a9ff930ccfaadb724cc88e9267641d13 → 5330c0fed9105a4e05d9a06b726c443772e12da7}/_grid.scssc +0 -0
- data/test/dummy/tmp/cache/assets/test/sass/5330c0fed9105a4e05d9a06b726c443772e12da7/_icon-bar.scssc +0 -0
- data/test/dummy/tmp/cache/assets/test/sass/{9df51eb4a9ff930ccfaadb724cc88e9267641d13 → 5330c0fed9105a4e05d9a06b726c443772e12da7}/_inline-lists.scssc +0 -0
- data/test/dummy/tmp/cache/assets/test/sass/{9df51eb4a9ff930ccfaadb724cc88e9267641d13 → 5330c0fed9105a4e05d9a06b726c443772e12da7}/_joyride.scssc +0 -0
- data/test/dummy/tmp/cache/assets/test/sass/{9df51eb4a9ff930ccfaadb724cc88e9267641d13 → 5330c0fed9105a4e05d9a06b726c443772e12da7}/_keystrokes.scssc +0 -0
- data/test/dummy/tmp/cache/assets/test/sass/{9df51eb4a9ff930ccfaadb724cc88e9267641d13 → 5330c0fed9105a4e05d9a06b726c443772e12da7}/_labels.scssc +0 -0
- data/test/dummy/tmp/cache/assets/test/sass/{9df51eb4a9ff930ccfaadb724cc88e9267641d13 → 5330c0fed9105a4e05d9a06b726c443772e12da7}/_magellan.scssc +0 -0
- data/test/dummy/tmp/cache/assets/test/sass/{9df51eb4a9ff930ccfaadb724cc88e9267641d13 → 5330c0fed9105a4e05d9a06b726c443772e12da7}/_offcanvas.scssc +0 -0
- data/test/dummy/tmp/cache/assets/test/sass/{9df51eb4a9ff930ccfaadb724cc88e9267641d13 → 5330c0fed9105a4e05d9a06b726c443772e12da7}/_orbit.scssc +0 -0
- data/test/dummy/tmp/cache/assets/test/sass/{9df51eb4a9ff930ccfaadb724cc88e9267641d13 → 5330c0fed9105a4e05d9a06b726c443772e12da7}/_pagination.scssc +0 -0
- data/test/dummy/tmp/cache/assets/test/sass/{9df51eb4a9ff930ccfaadb724cc88e9267641d13 → 5330c0fed9105a4e05d9a06b726c443772e12da7}/_panels.scssc +0 -0
- data/test/dummy/tmp/cache/assets/test/sass/{9df51eb4a9ff930ccfaadb724cc88e9267641d13 → 5330c0fed9105a4e05d9a06b726c443772e12da7}/_pricing-tables.scssc +0 -0
- data/test/dummy/tmp/cache/assets/test/sass/{9df51eb4a9ff930ccfaadb724cc88e9267641d13 → 5330c0fed9105a4e05d9a06b726c443772e12da7}/_progress-bars.scssc +0 -0
- data/test/dummy/tmp/cache/assets/test/sass/5330c0fed9105a4e05d9a06b726c443772e12da7/_range-slider.scssc +0 -0
- data/test/dummy/tmp/cache/assets/test/sass/5330c0fed9105a4e05d9a06b726c443772e12da7/_reveal.scssc +0 -0
- data/test/dummy/tmp/cache/assets/test/sass/{9df51eb4a9ff930ccfaadb724cc88e9267641d13 → 5330c0fed9105a4e05d9a06b726c443772e12da7}/_side-nav.scssc +0 -0
- data/test/dummy/tmp/cache/assets/test/sass/{9df51eb4a9ff930ccfaadb724cc88e9267641d13 → 5330c0fed9105a4e05d9a06b726c443772e12da7}/_split-buttons.scssc +0 -0
- data/test/dummy/tmp/cache/assets/test/sass/{9df51eb4a9ff930ccfaadb724cc88e9267641d13 → 5330c0fed9105a4e05d9a06b726c443772e12da7}/_sub-nav.scssc +0 -0
- data/test/dummy/tmp/cache/assets/test/sass/{9df51eb4a9ff930ccfaadb724cc88e9267641d13 → 5330c0fed9105a4e05d9a06b726c443772e12da7}/_switches.scssc +0 -0
- data/test/dummy/tmp/cache/assets/test/sass/{9df51eb4a9ff930ccfaadb724cc88e9267641d13 → 5330c0fed9105a4e05d9a06b726c443772e12da7}/_tables.scssc +0 -0
- data/test/dummy/tmp/cache/assets/test/sass/5330c0fed9105a4e05d9a06b726c443772e12da7/_tabs.scssc +0 -0
- data/test/dummy/tmp/cache/assets/test/sass/{9df51eb4a9ff930ccfaadb724cc88e9267641d13 → 5330c0fed9105a4e05d9a06b726c443772e12da7}/_thumbs.scssc +0 -0
- data/test/dummy/tmp/cache/assets/test/sass/{9df51eb4a9ff930ccfaadb724cc88e9267641d13 → 5330c0fed9105a4e05d9a06b726c443772e12da7}/_tooltips.scssc +0 -0
- data/test/dummy/tmp/cache/assets/test/sass/5330c0fed9105a4e05d9a06b726c443772e12da7/_top-bar.scssc +0 -0
- data/test/dummy/tmp/cache/assets/test/sass/{9df51eb4a9ff930ccfaadb724cc88e9267641d13 → 5330c0fed9105a4e05d9a06b726c443772e12da7}/_type.scssc +0 -0
- data/test/dummy/tmp/cache/assets/test/sass/{9df51eb4a9ff930ccfaadb724cc88e9267641d13 → 5330c0fed9105a4e05d9a06b726c443772e12da7}/_visibility.scssc +0 -0
- data/test/dummy/tmp/cache/assets/test/sass/{0bf981301b6f8cfa0a13d38a3554eafaa08d4bc1 → 8e964fb9e2b714a9d3faad7ab62f9bb5096b21bf}/foundation.scssc +0 -0
- data/test/dummy/tmp/cache/assets/test/sass/{9ffd013d383870261f2263c294cb3119536e8d59 → c67795fea8d999e739d183abcc4d1330e25b5d36}/_functions.scssc +0 -0
- data/test/dummy/tmp/cache/assets/test/sass/ddc338bd04efa4c6ae329e9f4f514bc8d0636fb5/admin.scssc +0 -0
- data/test/dummy/tmp/cache/assets/test/sass/ddc338bd04efa4c6ae329e9f4f514bc8d0636fb5/admin_assets.scss.erbc +0 -0
- data/test/dummy/tmp/cache/assets/test/sass/{2df752541ff0a319141a1cb83ca971d2ffd2d050 → ddc338bd04efa4c6ae329e9f4f514bc8d0636fb5}/foundation_and_overrides.scssc +0 -0
- data/test/dummy/tmp/cache/assets/test/sass/{2df752541ff0a319141a1cb83ca971d2ffd2d050 → ddc338bd04efa4c6ae329e9f4f514bc8d0636fb5}/tagsinput.scssc +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/{aab84c1f5c24fa406a94eac09d22b2a4 → 01a43d14de05969bd75be96787102a8f} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/{5eb2ada2e9af19cdbe5cb8750ce801df → 02df7daeaf181d2bf9db0859ace7ac78} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/{0ad373f2b4d9f428b6e58e76da4ec0b9 → 052abf5f4f37b5a381d365f1d81a384f} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/{ab6e14fb85dc2ad554e941848018ed3f → 0a4219947cd1a8d37dfcf91d3a09d557} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/{3508023b6222e6b0876c773e38ec700d → 0dfb030e402960ab0409cd82dee0f77a} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/{e6e78e14e8c962d31e6148ca56230af9 → 0f8fb5fc24f5163e89c3120d0db8a55c} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/{27d0805c68db0e1ea5335f4ad7273237 → 10edc6da95775c8efb1aeeeccb3861c1} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/{5f85da4ac11a64f005e2656b99be44ac → 165305bae06b65fba3b83e6f050e9449} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/{a656594778473574f77b201837cc446f → 1bca52bd72c5954d6cec5490cfd19619} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/{faa4ce8149d6e520b0a0855bfd8853e0 → 1c148cfaa96fc18dd39206f147e0be89} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/{9850ccc5ff77cfe44eef6c931be25fa2 → 1c1650864315928ff30ac15efdbd6a72} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/234ab1ed0a06b51e80d3ce1f22eef80f +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/26a5499486141a1cfbcd492fca683376 +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/2b9a9bdd2d50fe0617cfd3ac8f3c7535 +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/{1956e934d0761e89293cf096aef2ad04 → 2c88d5a49fa0567e394c1d802a1143bd} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/2cccbe983a0c901f050bbeb7e6560bb2 +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/{c8e888c4098e2f3e7e08e7aad9233bd9 → 3b4a91ef8ae8c6c733bbf380db4a51b5} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/4291f70c0b1b49b8cb37180e005f1ca5 +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/{ada55ab3ebb32ffd74145d341fbbcb06 → 44c04143276bf3ec3cb625eac0b4eb5f} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/45fede24e630a3890ff78603adac3b40 +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/{fb4793fb33ff5da9202b3b44e1997140 → 4b96e071d5b0bea51754baa3a4fbcd67} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/{03fbfd831772639fdac75dfe5fe9cf64 → 4f11fbb0626468698ded19f801463860} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/50e721194ac7b2603499066264fe669d +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/{30f88df6b769522639aee569e18ab005 → 50ef1236c1f68b14a4447176f367df02} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/{cf51890ac703ed5a5d704515a4721815 → 6270c8cc9bce4e44a28cb79decd0c682} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/{257233cf9d7cbb01dd74d0fefd6a9384 → 66d5f5d6173f5fcb483c033826309fe9} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/{e540a9dc1aa001f8c4cba7a6b00f69d2 → 6892513841335338f628eb301e5e46f4} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/{6afb6cb0462c9dab19086aa6c02e619a → 69fad8b0193556718134a4be4088511b} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/{b78741de2e56d8ac6629bb0dbf1d5c20 → 6aab772e07a59a05ace08e2f0a8e4f6c} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/{488d63b20534d2642d48b86b5a267a3b → 6ddd06b6619f4db1c4c72ec71f516a9f} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/{9c34afd1737e54e4eb06cc87ddf17b78 → 736f20368870e59baea915c56e465ce4} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/{eeb045e353d91335ea6ec8a8869c322f → 74286734f262b9bfdaba269993f75768} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/{0e97b69ac6f777e5725c5faa99228b8b → 74ec7f6ddd6cd98a7a197f6d1fdc7bdc} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/{0e01ae9de0f3914c8317853aedd9ace4 → 755a8cd3fa84cdf03061014ccc2dd621} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/{8b83fd34df285c871e41af1e2c3efda9 → 7dfe1759f6792869148aa1ee5ee25c32} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/80c23adecc9454798ddea565b6e2f955 +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/81aeaaced37b66582a071d5aa54667be +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/{2929961e63046a72db4e8d82548a8f31 → 84af7f78cb0d1ce3a3fa87718e171f1c} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/{0c7d363f5622cc1f9d3584fdea9a45a8 → 86297411722f24c420a876ea9ae18e37} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/{b05f3b842ea70a8728bdfc77fe0c3a37 → 8c74b5681ecb45af77b61df5f959d79a} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/{bb38dd1514d70d46cc209c23beacf4ae → 8ca58c6921452f516b6d3d1d6c86b4f5} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/93ebdecd5089eeabed49b171f1373c1c +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/{e28b8ab6a5b3ff792f45d5a6b7d806bc → 95dabfa1407631937482632b2fffcb03} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/{8df98e9b5189ffce4cf77a33533416a6 → 99a0c3679c80558e28bba1ecd515a14a} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/{226a629ec094e8ad208f2c273121699a → 9a2b48c02d01f27d021a726feaca4fd0} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/9d76f803477c4099b6eb8f9d4d52736a +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/{a9b8decaa2942e8913458c9f35da2693 → 9fa1a48cec5e59b8081516d8f1979087} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/{edaf2543a96ee921c30a071b3a73036f → a0869545029330f96741fc96ea2c6930} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/{6ffb1f074155829dca88c57f3730a9c3 → a8bde5e0b1b491fb1a275b927bfcb5d8} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/{7925f8f38f5165ad9d36a7d73dd00c06 → b1f4d4e270e25cda21255f606e3d8ffe} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/{ac6920ecb59148769117dba39b8bb574 → b29fe26f1c1071b42a0bf9f055177649} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/{93f1c8b2c57b6a34ce6be7a69af2eeab → b2e69a2811b5e6f453beaa71ff2faa3d} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/{633ffb1bd470dc99106053fe08ffcef3 → b5576320a141123874f4348adeb3133f} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/be63e5150ae78af2a53a3691c8edb579 +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/{5c694af01dab7474cace85e2e37233af → c0d10e77d7fb7d6d965e882edfc5da61} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/{1821710663a22c38d025f3600144b386 → c1b559fa06c770cd7065a4114d8fd93e} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/{508e9ca93a5c6a60e79e3496654497cf → c3d450aa26d5c5f83bc68bcde998f61d} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/{0be1680e56bd474e90098c85ed3613f1 → c3f4e4af5c70f490ae17047d3ed2bb51} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/{edd24c59de6c00e4e68dbbdf2775984a → c642987b1e8317371d1fc3b3e1a7b55e} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/{a93ec74f5cd7f26f8c663d4c481fe689 → c9cc9568b2b18e604aa3a9c9480d9763} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/cda72f48ef5c694d8c96c8fe2d854629 +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/{25da091131e25acf0f55a6528a94f309 → d09161ef4c6cd263e36df8c8a4c86e18} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/{ec01e589b2029448373e8112cfd62b6a → d5037255409c85197806006794fcdf40} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/{fd06309bc284d80f9c2a30f32ed8df14 → d96931783ed30aa240c60fde4617a351} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/{fba226eba4fa5dba560496c64a18009c → d9ddb0aea190ab4fea31822b19386853} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/{b762effbcb1d2a5c2e967b26de0b8e2a → db712d4dbb79c4ac60432dcce07bd466} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/{6245a5f4c9368169ba2cab2de39b1316 → dd4cfbacaf337f92d161db82f61315b8} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/{2196fdacd39bb9f5c4e3755b86d84888 → e09a07bb146f5f5ce0f5b629c800acf3} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/{756b24d1d6762675f2f3d781313c59b6 → e129f696cc74c9cc667e27d4fad400d4} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/{91e13d81afe9041372ad8f79ee9159f4 → e5ca6700a0d0b3ddc3d4ce604e677015} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/{64550cb088f2a8bd25da69f8e7623a7a → e5e26fc0f6b8bda87e424fc53d074460} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/{312dcc14683b058a2ecb35f844b45deb → e5e6786891e684e0780275d5931e0d4c} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/{7cd04ce7e67cb693aa31bd3e03199ecd → f1a08fd2d7d7ac59d48d3673f528208f} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/{720b83386eaf5707c1535472e36ba7fb → f76b0143f821cd347e8668babc8473c2} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/{f96cec87308c4d1efa7993c38b770ba3 → ffd5d537d0557053f0955aefea60e00e} +0 -0
- data/vendor/assets/javascripts/angular-ui-tree.js +1259 -0
- metadata +280 -248
- data/test/dummy/tmp/cache/assets/test/sass/2df752541ff0a319141a1cb83ca971d2ffd2d050/admin.scssc +0 -0
- data/test/dummy/tmp/cache/assets/test/sass/2df752541ff0a319141a1cb83ca971d2ffd2d050/admin_assets.scss.erbc +0 -0
- data/test/dummy/tmp/cache/assets/test/sass/9df51eb4a9ff930ccfaadb724cc88e9267641d13/_block-grid.scssc +0 -0
- data/test/dummy/tmp/cache/assets/test/sass/9df51eb4a9ff930ccfaadb724cc88e9267641d13/_clearing.scssc +0 -0
- data/test/dummy/tmp/cache/assets/test/sass/9df51eb4a9ff930ccfaadb724cc88e9267641d13/_dropdown-buttons.scssc +0 -0
- data/test/dummy/tmp/cache/assets/test/sass/9df51eb4a9ff930ccfaadb724cc88e9267641d13/_icon-bar.scssc +0 -0
- data/test/dummy/tmp/cache/assets/test/sass/9df51eb4a9ff930ccfaadb724cc88e9267641d13/_range-slider.scssc +0 -0
- data/test/dummy/tmp/cache/assets/test/sass/9df51eb4a9ff930ccfaadb724cc88e9267641d13/_reveal.scssc +0 -0
- data/test/dummy/tmp/cache/assets/test/sass/9df51eb4a9ff930ccfaadb724cc88e9267641d13/_tabs.scssc +0 -0
- data/test/dummy/tmp/cache/assets/test/sass/9df51eb4a9ff930ccfaadb724cc88e9267641d13/_top-bar.scssc +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/147cd256ded8a7797a230bd1f27db96a +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/23c10c485dbe7ea46614928874120ecf +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/6c7542a3718ad8d161e94f4816f01ccb +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/8d531fdb806de0724337e0b80e253914 +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/c206fbd33f49ab785c6ddf4bcffd3b93 +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/df90022afc0d52f16bc498be20a5967d +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/f7cf86568d1c692cb0a565614f282572 +0 -0
@@ -1,37 +1,38 @@
|
|
1
|
-
|
2
|
-
.
|
3
|
-
.
|
4
|
-
.
|
5
|
-
.
|
6
|
-
|
7
|
-
|
8
|
-
.
|
9
|
-
.
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
.
|
14
|
-
|
15
|
-
|
16
|
-
%span.
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
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
|
-
|
27
|
-
|
28
|
-
|
27
|
+
.row.custom-fields
|
28
|
+
- @node.fields.each do |key, field|
|
29
|
+
= render_custom_field field, f
|
29
30
|
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
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
|
-
%
|
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
|
-
=
|
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
|
-
=
|
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
|
@@ -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 = '
|
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:
|
14
|
+
secret_key_base: 523246cbd83acda2aecad3cb5434c0de7b34368a7f8be6800c346849b6468f01916b71ea3f29716c7de699e7ee1cbcd9e9274b782a7b1ebad4dce3248a85c6c9
|
15
15
|
|
16
16
|
test:
|
17
|
-
secret_key_base:
|
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.
|
@@ -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: "
|
12
|
+
name: "node_anc_desc_idx"
|
13
13
|
|
14
14
|
add_index :push_type_node_hierarchies, [:descendant_id],
|
15
|
-
name: "
|
15
|
+
name: "node_desc_idx"
|
16
16
|
end
|
17
17
|
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
|
data/test/dummy/db/schema.rb
CHANGED
@@ -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:
|
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: "
|
40
|
-
add_index "push_type_node_hierarchies", ["descendant_id"], name: "
|
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
|