refinerycms-menus 1.0 → 2.0.6
Sign up to get free protection for your applications and to get access to all the features.
- data/Guardfile +27 -0
- data/app/assets/javascripts/refinery/backend.js.coffee +39 -0
- data/app/assets/stylesheets/refinery/select_form.css.scss +183 -0
- data/app/controllers/refinery/menus/admin/menu_links_controller.rb +33 -0
- data/app/controllers/refinery/menus/admin/menus_controller.rb +70 -0
- data/app/models/refinery/menus/menu.rb +21 -0
- data/app/models/refinery/menus/menu_link.rb +134 -0
- data/app/views/refinery/menus/_menu_branch.html.erb +38 -0
- data/app/views/refinery/menus/admin/menu_links/_custom_link.html.erb +26 -0
- data/app/views/refinery/menus/admin/menu_links/_menu_link.html.erb +28 -0
- data/app/views/refinery/menus/admin/menu_links/_resource_link.html.erb +26 -0
- data/app/views/refinery/menus/admin/menu_links/_resource_link_editor_box.html.erb +21 -0
- data/app/views/refinery/menus/admin/menu_links/create.js.erb +6 -0
- data/app/views/refinery/menus/admin/menu_links/destroy.js.erb +3 -0
- data/app/views/refinery/menus/admin/menus/_form.html.erb +31 -0
- data/app/views/refinery/menus/admin/menus/_form_actions.html.erb +23 -0
- data/app/views/refinery/menus/admin/menus/_menu.html.erb +16 -0
- data/app/views/refinery/menus/admin/menus/_menus.html.erb +3 -0
- data/app/views/refinery/menus/admin/menus/_records.html.erb +18 -0
- data/app/views/refinery/menus/admin/menus/edit.html.erb +10 -0
- data/app/views/refinery/menus/admin/menus/index.html.erb +3 -0
- data/config/locales/da.yml +35 -0
- data/config/locales/en.yml +34 -21
- data/config/locales/fr.yml +13 -0
- data/config/routes.rb +12 -6
- data/db/migrate/01_create_page_menus.rb +31 -0
- data/db/migrate/02_add_permatitle_to_page_menus.rb +9 -0
- data/db/migrate/03_add_menu_match_to_page_positions.rb +6 -0
- data/db/migrate/04_add_flex_fields_to_page_positions.rb +9 -0
- data/db/migrate/05_remove_refinery_page_id_from_refinery_page_positions.rb +9 -0
- data/db/migrate/06_rename_page_positions_to_menu_links.rb +5 -0
- data/db/migrate/07_add_class_and_id_attribute_to_menu_links.rb +6 -0
- data/db/migrate/08_rename_page_menus_to_menus.rb +6 -0
- data/db/migrate/09_add_namespace_to_tables.rb +6 -0
- data/db/seeds.rb +12 -0
- data/lib/generators/refinery/menus/menus_generator.rb +24 -0
- data/lib/generators/refinery/menus/templates/config/initializers/refinery/menus.rb.erb +18 -0
- data/lib/refinery/menu_item_decorator.rb +22 -0
- data/lib/refinery/menus.rb +30 -0
- data/lib/refinery/menus/configuration.rb +28 -0
- data/lib/refinery/menus/engine.rb +29 -0
- data/lib/refinery/menus/instance_methods.rb +17 -0
- data/lib/refinery/menus/version.rb +18 -0
- data/lib/refinerycms-menus.rb +1 -0
- data/lib/tasks/refinery/menus.rake +65 -0
- data/readme.md +105 -0
- data/spec/dummy/README.rdoc +261 -0
- data/spec/dummy/Rakefile +7 -0
- data/spec/dummy/app/assets/javascripts/application.js +15 -0
- data/spec/dummy/app/assets/stylesheets/application.css +13 -0
- data/spec/dummy/app/controllers/application_controller.rb +3 -0
- data/spec/dummy/app/helpers/application_helper.rb +2 -0
- data/spec/dummy/app/views/refinery/pages/show.html.erb +5 -0
- data/spec/dummy/app/views/sitemap/index.xml.builder +25 -0
- data/spec/dummy/config.ru +4 -0
- data/spec/dummy/config/application.rb +65 -0
- data/spec/dummy/config/boot.rb +6 -0
- data/spec/dummy/config/database.yml +18 -0
- data/spec/dummy/config/database.yml.mysql +20 -0
- data/spec/dummy/config/database.yml.postgresql +58 -0
- data/spec/dummy/config/database.yml.sqlite3 +18 -0
- data/spec/dummy/config/environment.rb +5 -0
- data/spec/dummy/config/environments/development.rb +37 -0
- data/spec/dummy/config/environments/production.rb +67 -0
- data/spec/dummy/config/environments/test.rb +37 -0
- data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/dummy/config/initializers/inflections.rb +15 -0
- data/spec/dummy/config/initializers/mime_types.rb +5 -0
- data/spec/dummy/config/initializers/refinery/authentication.rb +5 -0
- data/spec/dummy/config/initializers/refinery/core.rb +52 -0
- data/spec/dummy/config/initializers/refinery/i18n.rb +15 -0
- data/spec/dummy/config/initializers/refinery/images.rb +45 -0
- data/spec/dummy/config/initializers/refinery/pages.rb +53 -0
- data/spec/dummy/config/initializers/refinery/resources.rb +27 -0
- data/spec/dummy/config/initializers/secret_token.rb +7 -0
- data/spec/dummy/config/initializers/session_store.rb +8 -0
- data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/spec/dummy/config/locales/en.yml +5 -0
- data/spec/dummy/config/routes.rb +3 -0
- data/spec/dummy/db/migrate/20130204144343_create_page_menus.refinery_menus.rb +32 -0
- data/spec/dummy/db/migrate/20130204144344_add_permatitle_to_page_menus.refinery_menus.rb +10 -0
- data/spec/dummy/db/migrate/20130204144345_add_menu_match_to_page_positions.refinery_menus.rb +7 -0
- data/spec/dummy/db/migrate/20130204144346_add_flex_fields_to_page_positions.refinery_menus.rb +10 -0
- data/spec/dummy/db/migrate/20130204144347_remove_refinery_page_id_from_refinery_page_positions.refinery_menus.rb +10 -0
- data/spec/dummy/db/migrate/20130204144348_rename_page_positions_to_menu_links.refinery_menus.rb +6 -0
- data/spec/dummy/db/migrate/20130204144349_add_class_and_id_attribute_to_menu_links.refinery_menus.rb +7 -0
- data/spec/dummy/db/migrate/20130204144350_rename_page_menus_to_menus.refinery_menus.rb +7 -0
- data/spec/dummy/db/migrate/20130204144351_add_namespace_to_tables.refinery_menus.rb +7 -0
- data/spec/dummy/db/migrate/20130204144352_create_refinerycms_authentication_schema.refinery_authentication.rb +44 -0
- data/spec/dummy/db/migrate/20130204144353_create_refinerycms_images_schema.refinery_images.rb +16 -0
- data/spec/dummy/db/migrate/20130204144354_create_refinerycms_resources_schema.refinery_resources.rb +14 -0
- data/spec/dummy/db/migrate/20130204144355_create_refinerycms_pages_schema.refinery_pages.rb +59 -0
- data/spec/dummy/db/migrate/20130204144356_create_seo_meta.seo_meta_engine.rb +24 -0
- data/spec/dummy/db/schema.rb +183 -0
- data/spec/dummy/db/seeds.rb +10 -0
- data/spec/dummy/dummy_dev +0 -0
- data/spec/dummy/dummy_test +0 -0
- data/spec/dummy/log/development.log +1439 -0
- data/spec/dummy/log/test.log +8115 -0
- data/spec/dummy/public/404.html +26 -0
- data/spec/dummy/public/422.html +26 -0
- data/spec/dummy/public/500.html +25 -0
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/dummy/script/rails +6 -0
- data/spec/dummy/tmp/cache/assets/BD4/2D0/sprockets%2F92d6b860252436c37505675357e29939 +0 -0
- data/spec/dummy/tmp/cache/assets/C15/9A0/sprockets%2Fa6284e072e57a0350213560e83342a89 +0 -0
- data/spec/dummy/tmp/cache/assets/C18/B70/sprockets%2F2036d35792672f0289a32d16a148c180 +0 -0
- data/spec/dummy/tmp/cache/assets/C2F/7A0/sprockets%2F7860517869b482070dc05f5679b5072f +0 -0
- data/spec/dummy/tmp/cache/assets/C44/370/sprockets%2Fef5e4507470b3431ba0240585922c682 +0 -0
- data/spec/dummy/tmp/cache/assets/C45/B30/sprockets%2F500931587f30bed692a334173807bb41 +0 -0
- data/spec/dummy/tmp/cache/assets/C4A/520/sprockets%2F77b0b75b0f4434222d0638616a3e8619 +0 -0
- data/spec/dummy/tmp/cache/assets/C4C/680/sprockets%2F466134e5101f41ee447499d060f8302e +0 -0
- data/spec/dummy/tmp/cache/assets/C57/F00/sprockets%2F3068533042be2b1991ce169738f983f0 +0 -0
- data/spec/dummy/tmp/cache/assets/C64/030/sprockets%2F577683d34df277fc25e18725958603d0 +0 -0
- data/spec/dummy/tmp/cache/assets/C65/490/sprockets%2F2d580e07834f7d8e68708270c71a6768 +0 -0
- data/spec/dummy/tmp/cache/assets/C77/170/sprockets%2F58624646998b6497b934a99fb38e1d19 +0 -0
- data/spec/dummy/tmp/cache/assets/C85/F90/sprockets%2Fd4586b524947ee00f423218c4b7b4883 +0 -0
- data/spec/dummy/tmp/cache/assets/C87/250/sprockets%2F1350b4c897c5946f7613b3674bf060d7 +0 -0
- data/spec/dummy/tmp/cache/assets/C9D/520/sprockets%2F6ff38c7729ec1ec56425477e61878327 +0 -0
- data/spec/dummy/tmp/cache/assets/C9F/E60/sprockets%2F28a16332aa1e60404b66e255a56938ac +0 -0
- data/spec/dummy/tmp/cache/assets/CA1/880/sprockets%2Fe2704733c55ee1b4ca652aa038063719 +0 -0
- data/spec/dummy/tmp/cache/assets/CA5/DC0/sprockets%2Fc09b2c4a92184d81241227cd18f8501f +0 -0
- data/spec/dummy/tmp/cache/assets/CA7/400/sprockets%2Fc5813f86b45b618740b0181b524bcf62 +0 -0
- data/spec/dummy/tmp/cache/assets/CAB/F00/sprockets%2F872459663ad68a00f13b36144e2c75cb +0 -0
- data/spec/dummy/tmp/cache/assets/CAF/8D0/sprockets%2F7c3a860485a6acb1e70f7372693a6163 +0 -0
- data/spec/dummy/tmp/cache/assets/CB0/5C0/sprockets%2F4d69819407d2c01f0868e5a74c4b314c +0 -0
- data/spec/dummy/tmp/cache/assets/CBE/A60/sprockets%2Ff3009f076c6522642f68f447dd938c4c +0 -0
- data/spec/dummy/tmp/cache/assets/CC2/7C0/sprockets%2F76701bcf06983f998b8734f624bac750 +0 -0
- data/spec/dummy/tmp/cache/assets/CC7/DA0/sprockets%2F817c99f99316484061f5636d8d3ac1ef +0 -0
- data/spec/dummy/tmp/cache/assets/CD4/E10/sprockets%2F4234271cfcde930620aa2703db368e68 +0 -0
- data/spec/dummy/tmp/cache/assets/CD5/DF0/sprockets%2Feeb3f1b44cb602e1824851e6427452f1 +0 -0
- data/spec/dummy/tmp/cache/assets/CD8/9A0/sprockets%2Fb7e711ea1482aed36c56b06964a24373 +0 -0
- data/spec/dummy/tmp/cache/assets/CDE/440/sprockets%2F652595237e875bfc201ed73c1c85a1e1 +0 -0
- data/spec/dummy/tmp/cache/assets/CE0/3F0/sprockets%2F21a81c805309e62e8c96ffff404b7213 +0 -0
- data/spec/dummy/tmp/cache/assets/CE3/9E0/sprockets%2F8b75a95c1b6f651000e2967884ebac53 +0 -0
- data/spec/dummy/tmp/cache/assets/CEB/120/sprockets%2Fca83656d959612d1b48f5b403fe6565c +0 -0
- data/spec/dummy/tmp/cache/assets/CF4/AE0/sprockets%2F78a6d639dfc60f3057ce49b5513a4899 +0 -0
- data/spec/dummy/tmp/cache/assets/CF8/990/sprockets%2Fcfe84c01ac0040722f475b9b213a365c +0 -0
- data/spec/dummy/tmp/cache/assets/CFF/850/sprockets%2F9ed0ca8b9b75cc08e0131027b731560c +0 -0
- data/spec/dummy/tmp/cache/assets/D00/DA0/sprockets%2F537f8494ee496907637abaf63469b8de +0 -0
- data/spec/dummy/tmp/cache/assets/D06/310/sprockets%2F4c45c12788e4f002674c21b31f17cfdd +0 -0
- data/spec/dummy/tmp/cache/assets/D0B/250/sprockets%2F34137e2028650c51d75ceafd4f8c1e37 +0 -0
- data/spec/dummy/tmp/cache/assets/D0C/2B0/sprockets%2F26ca2c4f35358e731816e4222c9cfd1e +0 -0
- data/spec/dummy/tmp/cache/assets/D0F/1D0/sprockets%2Fb9525add67a2442dd1578d2a380c4c79 +0 -0
- data/spec/dummy/tmp/cache/assets/D0F/C50/sprockets%2F7d6c03215849b0d6955060f9ec1dda6c +0 -0
- data/spec/dummy/tmp/cache/assets/D10/8A0/sprockets%2Fe787060f2fa7b376e6929bab8003c60c +0 -0
- data/spec/dummy/tmp/cache/assets/D10/E00/sprockets%2F74ca5021a890c529eb29592acee877a1 +0 -0
- data/spec/dummy/tmp/cache/assets/D11/F70/sprockets%2Ffb6c5626914c0e7e53a78e38ce18b004 +0 -0
- data/spec/dummy/tmp/cache/assets/D12/9E0/sprockets%2F3b39857cfaf550138a6e5d1083c9b2d6 +0 -0
- data/spec/dummy/tmp/cache/assets/D13/5B0/sprockets%2F2eb332653560c168d9c15d98ae5ca29f +0 -0
- data/spec/dummy/tmp/cache/assets/D17/490/sprockets%2F6d3a0b7b473aa78c662f5c869c568b32 +0 -0
- data/spec/dummy/tmp/cache/assets/D1B/150/sprockets%2Ff7750b570e3e0738983b65b5c641fdcf +0 -0
- data/spec/dummy/tmp/cache/assets/D1F/050/sprockets%2Fbc58457521b9bbf18b15487e86d6e0e9 +0 -0
- data/spec/dummy/tmp/cache/assets/D1F/4E0/sprockets%2Fc6e35f7bb7db6b15a78e8506a9856084 +0 -0
- data/spec/dummy/tmp/cache/assets/D1F/510/sprockets%2F4719bebff1466e438868162e1fa8c35e +0 -0
- data/spec/dummy/tmp/cache/assets/D24/9A0/sprockets%2F5b38a78468f75a479cf1fb2590dd458b +0 -0
- data/spec/dummy/tmp/cache/assets/D26/890/sprockets%2Ff1f0b9c8a4d61a4e49b08d143000bf02 +0 -0
- data/spec/dummy/tmp/cache/assets/D26/930/sprockets%2F3e7779994bf22ddf12ca64f739df3517 +0 -0
- data/spec/dummy/tmp/cache/assets/D27/560/sprockets%2F96abfee457f1b942981d56ea61839d65 +0 -0
- data/spec/dummy/tmp/cache/assets/D2B/8E0/sprockets%2F2c5f01453202b6e4c9ebc3ca935eb323 +0 -0
- data/spec/dummy/tmp/cache/assets/D2B/BA0/sprockets%2F17e31999d96178ba11e9872a6f6cdd8f +0 -0
- data/spec/dummy/tmp/cache/assets/D30/4F0/sprockets%2F8ef75d43c78e6c6001cc3c4ac201d602 +0 -0
- data/spec/dummy/tmp/cache/assets/D33/430/sprockets%2F3bf55b9e13def8d1131b0e504f1951a6 +0 -0
- data/spec/dummy/tmp/cache/assets/D3A/090/sprockets%2F5ad8a097a12bf36ec3328e5ab6e95044 +0 -0
- data/spec/dummy/tmp/cache/assets/D42/430/sprockets%2Fd36340d75c1fbba53f10f92763b89f9a +0 -0
- data/spec/dummy/tmp/cache/assets/D42/660/sprockets%2F4bc29a4494ccedc764001569e599ab0e +0 -0
- data/spec/dummy/tmp/cache/assets/D48/D50/sprockets%2F53b9b1a2f1bfd3b4d6776895cf05b289 +0 -0
- data/spec/dummy/tmp/cache/assets/D4A/940/sprockets%2Fcbb593a12a764a8d98359c05f8fd39d1 +0 -0
- data/spec/dummy/tmp/cache/assets/D4A/D50/sprockets%2Fca7d84ec820d53873f4e91a9d03cd594 +0 -0
- data/spec/dummy/tmp/cache/assets/D4C/F10/sprockets%2Fae96a38212cf9a569b2be23bc9f88645 +0 -0
- data/spec/dummy/tmp/cache/assets/D53/2A0/sprockets%2Ff809f29a38ba868af096a5e57d647a2e +0 -0
- data/spec/dummy/tmp/cache/assets/D53/480/sprockets%2F5d58d5812633dbbc96df3d27994ae8d5 +0 -0
- data/spec/dummy/tmp/cache/assets/D53/A80/sprockets%2Fd33eb75db5980ac3c9dd481ff3844878 +0 -0
- data/spec/dummy/tmp/cache/assets/D55/150/sprockets%2Fd7623ea8e84793eca6821816ce85cdf6 +0 -0
- data/spec/dummy/tmp/cache/assets/D59/DC0/sprockets%2Ffb2997b21dee8767fc8b0408d39f79d2 +0 -0
- data/spec/dummy/tmp/cache/assets/D5E/C90/sprockets%2Fc7c80bcd4798e3272b89b88387bed7d8 +0 -0
- data/spec/dummy/tmp/cache/assets/D61/430/sprockets%2Fe1230e60c2d9e665124cde1ec3d48c4a +0 -0
- data/spec/dummy/tmp/cache/assets/D63/020/sprockets%2F5dcdad4f60236c88eb049e9131cca060 +0 -0
- data/spec/dummy/tmp/cache/assets/D63/D20/sprockets%2Fcc9f83c87eff73ca7548e59f1a845288 +0 -0
- data/spec/dummy/tmp/cache/assets/D65/820/sprockets%2F2e8b0981910d00ddd5cdd7ccf192f313 +0 -0
- data/spec/dummy/tmp/cache/assets/D67/1F0/sprockets%2Fe309e279a7111fb1e6e5c2dc06f8b51b +0 -0
- data/spec/dummy/tmp/cache/assets/D68/800/sprockets%2Ffe4f5faa0dce2936f7d9f260114a5600 +0 -0
- data/spec/dummy/tmp/cache/assets/D6C/2B0/sprockets%2F57294aae845659df4e22207acf7daba0 +0 -0
- data/spec/dummy/tmp/cache/assets/D6C/A30/sprockets%2F81a9caee4e07b1de2367762c247a9ca4 +0 -0
- data/spec/dummy/tmp/cache/assets/D6D/570/sprockets%2F1d3b463ec0b3d7c2f39878d1fda350c9 +0 -0
- data/spec/dummy/tmp/cache/assets/D6F/620/sprockets%2F8b7bd54ff34551fbe044ee15a98fc302 +0 -0
- data/spec/dummy/tmp/cache/assets/D78/0C0/sprockets%2F18b24524d5d2c8029bfe09df41e9fed9 +0 -0
- data/spec/dummy/tmp/cache/assets/D79/E70/sprockets%2F83880198f8c830a0b5f3f7c55bacd6cf +0 -0
- data/spec/dummy/tmp/cache/assets/D7C/610/sprockets%2F8e6df6a269df75eb0c8f72613c0b468c +0 -0
- data/spec/dummy/tmp/cache/assets/D7D/F20/sprockets%2Fb3b2dd248bb9689ee88905a97fc1e0e1 +0 -0
- data/spec/dummy/tmp/cache/assets/D8F/BB0/sprockets%2Fcb0296ec2aa3d7f34b2f8e0e60e73b03 +0 -0
- data/spec/dummy/tmp/cache/assets/D90/A30/sprockets%2F429edb8ee870df0ca4a3ea323f06a341 +0 -0
- data/spec/dummy/tmp/cache/assets/D93/BE0/sprockets%2F06fa87ccb9cecb705b81c1e14d11475b +0 -0
- data/spec/dummy/tmp/cache/assets/D94/C50/sprockets%2Fec833021b3ac954bd1f7dab93fcb2718 +0 -0
- data/spec/dummy/tmp/cache/assets/D98/8C0/sprockets%2F9d032a33cadc1d6dded822596f9d008a +0 -0
- data/spec/dummy/tmp/cache/assets/D98/A10/sprockets%2Fb6e1d5bae4af0877da064a58e1808d3b +0 -0
- data/spec/dummy/tmp/cache/assets/D9B/FE0/sprockets%2F351e441b3be4f9cf0be43c95b4d529dc +0 -0
- data/spec/dummy/tmp/cache/assets/D9D/960/sprockets%2F580fa81a5f9ac2f1add383b9a8755da1 +0 -0
- data/spec/dummy/tmp/cache/assets/DA0/4A0/sprockets%2F2f07bc53e7a9e43fd0c62fd84bc62e18 +0 -0
- data/spec/dummy/tmp/cache/assets/DA2/0F0/sprockets%2F1a818ea53d77a3a957127e9aaad49dcf +0 -0
- data/spec/dummy/tmp/cache/assets/DA2/B80/sprockets%2F1f029886c259cbd4b9dacf0aa5f07d67 +0 -0
- data/spec/dummy/tmp/cache/assets/DA2/C20/sprockets%2F2e7b093ddc552791fa865f2c3f2ecfa3 +0 -0
- data/spec/dummy/tmp/cache/assets/DA7/4C0/sprockets%2Fbc0caa78e891ffd54e735ac39b65762b +0 -0
- data/spec/dummy/tmp/cache/assets/DA7/E40/sprockets%2F1748cb6eed62765c7b76e0368ceab6ac +0 -0
- data/spec/dummy/tmp/cache/assets/DAD/270/sprockets%2F4b71e8a8debe653dd913ff638d4581af +0 -0
- data/spec/dummy/tmp/cache/assets/DB0/E10/sprockets%2F45ef8a66b9ba662b7af67e86ba72ff16 +0 -0
- data/spec/dummy/tmp/cache/assets/DB1/100/sprockets%2Ff4d0d6f994a7df2f6fce618c9c31353f +0 -0
- data/spec/dummy/tmp/cache/assets/DB3/530/sprockets%2F42a9c9f65511df0eacf6f5b3c9f7993f +0 -0
- data/spec/dummy/tmp/cache/assets/DC3/000/sprockets%2F34c7b5be062c228fbd8122748bdaecae +0 -0
- data/spec/dummy/tmp/cache/assets/DC4/8E0/sprockets%2F128aaae87a03a5a69d3edf512e5a1f7e +0 -0
- data/spec/dummy/tmp/cache/assets/DC5/640/sprockets%2F6936df1b7a138be323a10fcd37e3cfcd +0 -0
- data/spec/dummy/tmp/cache/assets/DCB/9E0/sprockets%2Fc2bda1b7e2fec27b27e0f3c7d258d818 +0 -0
- data/spec/dummy/tmp/cache/assets/DD2/8E0/sprockets%2F371036eedde0e38ee67d7bb0667bbfb6 +0 -0
- data/spec/dummy/tmp/cache/assets/DD4/CE0/sprockets%2F9385a694dc7d2dbc68705bbe9ac70cbb +0 -0
- data/spec/dummy/tmp/cache/assets/DD7/DC0/sprockets%2F60bf1bfbe4b9f145b9f0a8763bf974ec +0 -0
- data/spec/dummy/tmp/cache/assets/DD8/670/sprockets%2Fdf5cb3fa8682dc6868a64b721fcda71f +0 -0
- data/spec/dummy/tmp/cache/assets/DDA/B70/sprockets%2F6f72db00d6cdd6d235db22000adabdb2 +0 -0
- data/spec/dummy/tmp/cache/assets/DE0/4D0/sprockets%2F4d52cffb98c59fecb059a57c46b8e53c +0 -0
- data/spec/dummy/tmp/cache/assets/DE0/EB0/sprockets%2Ff4e5fcc952ef18f7f5b8bdf854651cb0 +0 -0
- data/spec/dummy/tmp/cache/assets/DE2/260/sprockets%2Fe00cd72d106602f30dcabe4b1feedb18 +0 -0
- data/spec/dummy/tmp/cache/assets/DE2/E30/sprockets%2F382fdd5b14cc3bbd16e99e3f4ff9868c +0 -0
- data/spec/dummy/tmp/cache/assets/DEC/820/sprockets%2F0a6b744660b704abcdaef44adb8fac17 +0 -0
- data/spec/dummy/tmp/cache/assets/DF8/A10/sprockets%2F1d901ea9cdb0eae6f18aa90f6bf7273c +0 -0
- data/spec/dummy/tmp/cache/assets/DFC/8E0/sprockets%2Fc08af26ddea6be41516dbe9c5c5936ac +0 -0
- data/spec/dummy/tmp/cache/assets/E00/EC0/sprockets%2F7b155319ca7d4fb9fb3fdd507be82abf +0 -0
- data/spec/dummy/tmp/cache/assets/E05/0C0/sprockets%2F4fdc2c7e858945af1bef617a22ed5afc +0 -0
- data/spec/dummy/tmp/cache/assets/E24/490/sprockets%2F593f3bef8bded42eb7cce2a2b60ec015 +0 -0
- data/spec/dummy/tmp/cache/assets/E40/B70/sprockets%2F250ba5b0ea49da430ddaca7eaeda5b54 +0 -0
- data/spec/dummy/tmp/cache/assets/E42/680/sprockets%2F7ab48cdf50b10c5c20fd3ec0dbcdc35a +0 -0
- data/spec/dummy/tmp/cache/assets/E56/2D0/sprockets%2Ffdcdb5a6a41e55b25db5b3c5f19b4fcf +0 -0
- data/spec/dummy/tmp/cache/assets/E5B/7F0/sprockets%2Ffeae26122b9dfee5a17f6aac7feb28e0 +0 -0
- data/spec/dummy/tmp/cache/assets/E66/920/sprockets%2Ffa8bf3adfdf9ce8fda315022b8668efa +0 -0
- data/spec/dummy/tmp/cache/assets/E83/D30/sprockets%2Fbaad95b59000ff3b6bfb1fefc9b0f2ce +0 -0
- data/spec/dummy/tmp/cache/sass/17739c79117e0a47cc5fa921e1d471e68c8c1dfa/skin.css.scssc +0 -0
- data/spec/dummy/tmp/cache/sass/59dc080dcda8715df03705f02779a4ead9f9d6bf/layout.css.scssc +0 -0
- data/spec/dummy/tmp/cache/sass/59dc080dcda8715df03705f02779a4ead9f9d6bf/site_bar.css.scssc +0 -0
- data/spec/dummy/tmp/cache/sass/59dc080dcda8715df03705f02779a4ead9f9d6bf/submenu.css.scssc +0 -0
- data/spec/dummy/tmp/cache/sass/59dc080dcda8715df03705f02779a4ead9f9d6bf/tooltips.css.scssc +0 -0
- data/spec/dummy/tmp/cache/sass/59dc080dcda8715df03705f02779a4ead9f9d6bf/ui.css.scssc +0 -0
- data/spec/dummy/tmp/cache/sass/cc739a60b5ec58018f1347486985b51daf51ab04/select_form.css.scssc +0 -0
- data/spec/dummy/tmp/data/meta_request/03dce8b1a5732e271aa5d23d9d1eafbe.json +1 -0
- data/spec/dummy/tmp/data/meta_request/06ba0fb7da0db7042fdffa88c4a8d650.json +1 -0
- data/spec/dummy/tmp/data/meta_request/1bf22b78ad2ff4901d5aa932c1730386.json +1 -0
- data/spec/dummy/tmp/data/meta_request/38807466b8a482c2da72362f0073bd6e.json +1 -0
- data/spec/dummy/tmp/data/meta_request/5f19481d5901efefbc63aef0effc2e49.json +1 -0
- data/spec/dummy/tmp/data/meta_request/a20e2a9aaff427eee4f1e1ed7b13af14.json +1 -0
- data/spec/dummy/tmp/data/meta_request/a4b516894e0e275bbb3b28603326eeae.json +1 -0
- data/spec/dummy/tmp/data/meta_request/ba0fc11d54e6f107c6b617c17bf3d555.json +1 -0
- data/spec/dummy/tmp/data/meta_request/e3c96b5f5033ec9b5e0482d616f34556.json +1 -0
- data/spec/dummy/tmp/data/meta_request/ee49070e51f359d852f99ac8f415312e.json +1 -0
- data/spec/dummy/tmp/dragonfly/cache/body/16/7fdfc97216adbd0ae17b1c97903b61390f170b +7 -0
- data/spec/dummy/tmp/dragonfly/cache/body/2a/2857f555d30feea7cd55ff2e1494c44a41b0a7 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/body/2c/535691e4477579c7c0649574a5efcefe222116 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/body/38/67d3ac1d0839b2a612a82a3bdf93de235ba330 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/body/60/c2784679ec29df37f08148fb7993ccb76393bf +0 -0
- data/spec/dummy/tmp/dragonfly/cache/body/63/53fcfc2a9e56fa633b4af6e7a95cdf38e6b2fa +0 -0
- data/spec/dummy/tmp/dragonfly/cache/body/85/936cd23c48084c9e2992df95c1205a6cea7592 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/body/88/72adf860a379cf6eab4faf35a67301b38325c6 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/body/8a/13507b51d53cb9d99ca97a1d86d139949a2937 +119 -0
- data/spec/dummy/tmp/dragonfly/cache/body/8e/207f3243726851a629bc188282e0b4a0c9683c +66 -0
- data/spec/dummy/tmp/dragonfly/cache/body/93/ebbf02317e13e58c1cac8cde30f3e2c81fe37a +69 -0
- data/spec/dummy/tmp/dragonfly/cache/body/98/c4cee368ff88b27e0ece923d365dfd953ca7a8 +24628 -0
- data/spec/dummy/tmp/dragonfly/cache/body/a3/243ca6a628b77b3523a18aff6bafae85b45adc +0 -0
- data/spec/dummy/tmp/dragonfly/cache/body/a9/8ec259c5e198fffb3116e4cf950e2d8b695880 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/body/ae/b242dc5fd6cbc8ab3e1385c9436507e7bbeca4 +357 -0
- data/spec/dummy/tmp/dragonfly/cache/body/b3/f434d2e0622653cd592d251e6fbf14410ecc5c +25 -0
- data/spec/dummy/tmp/dragonfly/cache/body/b6/244b0027a8c9f702b311cb5b2ab8cc64f3b5f2 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/body/b6/347599a46b519ea2405ed3fec97ec10ff2c24c +57 -0
- data/spec/dummy/tmp/dragonfly/cache/body/bb/2768413b6a7b6c2beaadd075cccb3df2056bff +48 -0
- data/spec/dummy/tmp/dragonfly/cache/body/c2/87fb3a839a1d021a733a9b0aee24155e421893 +51 -0
- data/spec/dummy/tmp/dragonfly/cache/body/c3/b5de4576cd7c6ae218405d9a37469e11c851dd +0 -0
- data/spec/dummy/tmp/dragonfly/cache/body/c3/c2169f34fe6a824f435e4a75f83143293f50b6 +55 -0
- data/spec/dummy/tmp/dragonfly/cache/body/ca/d871eb14170b67621b17df90e163103af6923c +0 -0
- data/spec/dummy/tmp/dragonfly/cache/body/d0/a90047653afcdac85171e6b34d599538b89773 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/body/e3/f3cdb48fe677ae8237a89c6ae2b0d449b0493c +3315 -0
- data/spec/dummy/tmp/dragonfly/cache/body/e9/44bc33255e7d76fc8621ecbbcdee153fc0f88e +183 -0
- data/spec/dummy/tmp/dragonfly/cache/body/e9/9b614bde4086cf41d947c6580444332c70ccaf +5518 -0
- data/spec/dummy/tmp/dragonfly/cache/body/f6/ed64e8a1f9a3e608197a98721eca81f945d8d7 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/body/f7/e17dec7a0f20359d68b099858f7e8cb95586a5 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/01/cee619015a8dc799e619916210fa074dc34fd2 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/02/39de8979b9dbbca145f2ebce70e7cbf6e67540 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/02/9c5533435d284516c79a7a47bcc28158bd0efe +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/05/d0aff59ae453526e999ca28cf7205e53abdee8 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/0a/586695a7c486bf4de273d5b70bc9c357ab0bbc +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/0b/80ad94fa546c65ea21f8f9b7e65d8de9dfc131 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/0f/dbf2c5de9643c7478aa4f4ea55198bef84df70 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/16/8e7dabcdea60a32952bc231d279b18f066b7b1 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/16/b6a78c0f40e143c2fa72064ec8f0fbf7c903a3 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/1b/ba29a4971bf08ec035fcbeb6bf790c03e427aa +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/1e/bf72c7ff814020aecf4f3d3f1f9d896d9b3ce4 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/1f/50ab28dbecc4a28c2a7b9d72b12b08507757d7 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/20/a817d5117d75b9ab23c950e3720fca9c809487 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/21/ea463922bcf9aa68f6c19f144c1de4843c4ecc +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/27/01d79ed6351249d122862c74f6a1e6bb64a746 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/27/a875bc522b4a1072502d742acacf112108f9f3 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/2c/338f8d34a0df9c016156ee3ed004932d7f39b0 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/2c/789ea8794160b03aa433be305fd3fc2e3a9504 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/2e/7cba5ed8ee30337ee29fce0ac2c9c04c47e165 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/2f/5fcdd09e0f0053e46e516063fe9fc350ba3597 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/39/080cb93776b8088800a97f04645dc20c0d61e3 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/3e/562652bd53e85d0bc7d64687757e303ea48222 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/43/702b0bbf40751e03a371beae7ea632759c5ea6 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/45/020eb4a6714d210708295c8ee035a4f3b7de83 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/48/7c10db8b3443e652bb29571e0d89047910a445 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/4a/3fe383956f715c58307fabf5bfb570c8a67e11 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/50/4770d4cf47ce6afb7c72a1567e905bf675c839 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/50/943f7d303380468ae97ead7a5bf0e1c1f8086d +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/52/a583ca59703de87825993806932eb7d96caf2d +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/54/0548820189fdaa43dbfb96b14b68f21c6bcb77 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/54/27caab4a86e3c5083f6518f7535237a1afacfe +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/55/5287ec64800a3fcc45b8f1bb72783a587f985d +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/55/d75e83a1828c54c29d77ba3e37d8acf60eca48 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/56/bd3c3414d3e5b00ce6f8ffd95e3e941023bc27 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/58/77f8c256d79478ae60b730ee8e5614054e8acc +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/59/b107c2482241bb885a455a7494baa91fb2e9ac +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/5b/6af4cec711a1bcd6162bb57ab1a29a65682911 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/5d/49b63b9a30126b92cc9da36b66cfa9fd98fcc7 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/5d/f66c848a944876e92afa404de35542dc4a32ae +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/5e/dc50712811d3e015564504fc9d403fe394de03 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/5e/ed91855a3f24c0f00262ded4df514dc8dcbc08 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/60/704074fdaa94c38f14c546ae8fee8f620e267a +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/61/8f6794a8901c3a2ab4f1589f7df81900b572dc +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/62/c2ca4a7f20556ff30cca9b790cca084d7a390d +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/63/518bddc965fc8487603b0c3bf092a80c38477e +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/63/bf4d2c9bc392450f2ac6d1f7496b839ee454b9 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/63/cbe524f36165978e1fb04ca4057bc8947b4fc5 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/6d/8b818c9e4f6b2881f1bc3c550f58617d42bdb9 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/6e/b5cce94866bc035e3f429e2842c0cb69d63da4 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/6f/076ed360b15b231a40805f61b2da5772bfb221 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/70/dce1910c6984688621073f713d7169c35feb54 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/71/05e840d712109887350f57a04e51c4dc7a26e5 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/71/eb1ef012700276c3cf36167daa10b9e8643ae8 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/77/68198b3edcbc98e4d60d311541c463350e3728 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/78/83c78396c867870da0cd76ea909443e5d44099 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/7b/6a84124a16fe524603c9cf185bf3fccd1a82db +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/7c/c593a941b74058d9dd6f8de6dadd0ca3f01ce2 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/7e/3cba0fb1a67914183d1456d8961aa7238b3c53 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/82/1f3cf478625e91439be0080afa45c73a36560c +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/82/6c888ad86553d814ace418e3abd4deaf5cdfad +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/87/ade90ce9b9e5b48628429230ae1f7a16a59d5b +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/89/87a8ec1db508b9d1cc8d216da2e68ef8e449d1 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/8b/5c8d086629bb5279538e65a9d078070aa31d09 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/95/6748212bc6bc99f4c2af0d0f062f4b51089bca +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/98/593cefcf95462a07ac8790602b4f6b9874a503 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/99/1dc71739fe7f6b4a360c6dcbb7c10a803cc88d +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/99/dfd655a2d6dedb542e8911103673df6813e09b +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/9d/6427cbe1ad41f13a645f3a04fab8cf2d02b25c +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/a2/e5f3cfb21435bfa5d43f89e59c7c42f866a5ab +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/a3/f5401f93017771fc2fd2a576687fc94c901efe +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/a5/c076b9c9e2bbe381d9da35b6a4be3482f9b467 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/a7/0e4deb8655f5bc0a438d5296e3233a61781c9a +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/ad/468b3257b9f15364e3c14521c7156817a4da21 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/b2/000054cf2e7e1f58bf3c08fa39d62be4305ba5 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/b3/ade3801bca831d77311b8775f58409618d4397 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/b6/69bdb7bd4cce8b36db24a70d943a9e6eda28b5 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/bb/0d5212f03591c7e2b70970d2fdc92f9dfbf5a9 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/bc/d42573597c3a8138d72932efe0bcca04cfc114 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/be/3496757ca2979b580f5f0191ba640a5f5683c5 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/c2/6ba0779ad6a0654d859078199b31018e726ce5 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/c4/48ce336ecd015fad01c9efacc946d94b026679 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/c4/da04322cf51782fe995b358c03f1868caf1eb0 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/c4/e7e0e31075042edd76c18f51a80aa314af4e2e +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/ca/bc9d54040906d1ad8f5ddbcf196b45fcb27baf +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/d5/1f6e6f6c1662bba33ccf23600aa5fd8f5a4198 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/d8/b42059897a076ebe3ecd9f2ac804e00731eb21 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/da/847e0b976733e541ad07068b99f17e9a433cd0 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/dc/2213ae0195942ae47f4cad0a12f29b3d52211b +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/de/7a810d16f1beefaf7ac39de3cc007ee79c0110 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/e0/37fa0e09d8a706b5ab6f40f3e6c2fa936970a6 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/e0/d7e7753b7f1fac358d68af693c1c8442d78671 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/e2/68afb905a52cd6d6ec835dc78a9c9fd6fbe301 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/e3/69c2a7f86f7b9aad9e5f756b5e2e426a3606e4 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/e6/48405be188e838668f52a3778bd73290978408 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/e8/bb3505e4186320f36c88c2e70e454d927d950c +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/ed/2e3f54eca83173c463e0e53850ed982bb869db +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/ed/c2fcf0d93ab7d359eb8bc0163eedb4738097b4 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/f0/50dae94cad6ed3e5a1ea4e83a01bc4dcec5a82 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/f4/7577e404263c5777cb88db1cae95c1349af5f6 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/f4/b36659a3489697301cb5bbfea8dbac5dde016b +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/f4/e8244ce90982cc01cc38af192b5d3fa6682a23 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/f5/f5d3057bde5861abe914e9b67b2e355a784578 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/f7/29c855fa25d057110a2b80da3a168b7e56f44e +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/f7/850587a39dff30c3761e6854478a8849ccc73a +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/f9/73c328a353105d46408715e9de0742a0430b6a +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/fb/3540163ca67855d921a195375dfdc10ebd46f3 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/fb/4ce7caeb7ba3e324503aee732cdc35dca56fd4 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/fb/c5bc26c7cb370fff36e4490d21834618f9c306 +0 -0
- data/spec/dummy/tmp/dragonfly/cache/meta/fd/68557882a85d20ecc2e380d45041d44a5d0412 +0 -0
- data/spec/dummy/tmp/index/development/refinery/page/100_105_103.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/100_105_97.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/100_105_99.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/100_111_108.ind +2 -0
- data/spec/dummy/tmp/index/development/refinery/page/100_111_110.ind +2 -0
- data/spec/dummy/tmp/index/development/refinery/page/100_117_105.ind +0 -0
- data/spec/dummy/tmp/index/development/refinery/page/100_97_112.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/101_103_101.ind +0 -0
- data/spec/dummy/tmp/index/development/refinery/page/101_108_105.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/101_110_105.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/101_114_111.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/101_114_97.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/101_115_116.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/101_116.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/101_116_105.ind +2 -0
- data/spec/dummy/tmp/index/development/refinery/page/101_117_105.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/101_120_97.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/102_101_108.ind +2 -0
- data/spec/dummy/tmp/index/development/refinery/page/102_111_117.ind +2 -0
- data/spec/dummy/tmp/index/development/refinery/page/102_114_105.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/103_97_116.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/104_101_110.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/104_101_114.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/104_105_109.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/104_111_108.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/104_111_109.ind +0 -0
- data/spec/dummy/tmp/index/development/refinery/page/104_114_101.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/104_50.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/104_97_98.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/104_97_99.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/105_100.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/105_109_112.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/105_110.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/105_110_116.ind +0 -0
- data/spec/dummy/tmp/index/development/refinery/page/105_110_99.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/105_112_115.ind +2 -0
- data/spec/dummy/tmp/index/development/refinery/page/105_115.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/105_97_99.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/106_117_115.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/108_101_111.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/108_101_99.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/108_105_103.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/108_105_116.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/108_105_98.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/108_111_114.ind +2 -0
- data/spec/dummy/tmp/index/development/refinery/page/108_117_99.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/108_97_99.ind +2 -0
- data/spec/dummy/tmp/index/development/refinery/page/109_101_116.ind +2 -0
- data/spec/dummy/tmp/index/development/refinery/page/109_105.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/109_111_108.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/109_111_114.ind +2 -0
- data/spec/dummy/tmp/index/development/refinery/page/109_97_103.ind +2 -0
- data/spec/dummy/tmp/index/development/refinery/page/109_97_116.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/109_97_117.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/110_101_99.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/110_105_115.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/110_105_98.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/110_111_115.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/110_111_116.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/110_117_108.ind +0 -0
- data/spec/dummy/tmp/index/development/refinery/page/110_117_110.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/111_100_105.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/111_102.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/111_114_99.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/111_117_114.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/111_118_101.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/112.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/112_101_100.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/112_101_108.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/112_101_114.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/112_108_97.ind +0 -0
- data/spec/dummy/tmp/index/development/refinery/page/112_111_115.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/112_114_111.ind +0 -0
- data/spec/dummy/tmp/index/development/refinery/page/112_114_97.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/112_117_108.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/112_117_114.ind +2 -0
- data/spec/dummy/tmp/index/development/refinery/page/112_97_103.ind +0 -0
- data/spec/dummy/tmp/index/development/refinery/page/113_117_105.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/114_101_113.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/114_101_116.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/114_104_111.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/114_105_115.ind +2 -0
- data/spec/dummy/tmp/index/development/refinery/page/115_101_100.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/115_101_109.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/115_105_116.ind +0 -0
- data/spec/dummy/tmp/index/development/refinery/page/115_111_108.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/115_111_114.ind +2 -0
- data/spec/dummy/tmp/index/development/refinery/page/115_111_99.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/115_116_97.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/115_117_115.ind +0 -0
- data/spec/dummy/tmp/index/development/refinery/page/115_97_103.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/116_101_108.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/116_101_120.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/116_104_101.ind +0 -0
- data/spec/dummy/tmp/index/development/refinery/page/116_104_105.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/116_111.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/116_111_114.ind +0 -0
- data/spec/dummy/tmp/index/development/refinery/page/116_114_105.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/116_97_99.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/117_108_116.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/117_114_110.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/117_116.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/118_101_108.ind +2 -0
- data/spec/dummy/tmp/index/development/refinery/page/118_101_115.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/118_105_116.ind +2 -0
- data/spec/dummy/tmp/index/development/refinery/page/118_105_118.ind +0 -0
- data/spec/dummy/tmp/index/development/refinery/page/119_101.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/119_101_108.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/119_104_105.ind +2 -0
- data/spec/dummy/tmp/index/development/refinery/page/119_97_115.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/121_111_117.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/97.ind +2 -0
- data/spec/dummy/tmp/index/development/refinery/page/97_100.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/97_100_105.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/97_101_110.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/97_108_105.ind +0 -0
- data/spec/dummy/tmp/index/development/refinery/page/97_109_101.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/97_110_111.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/97_112_116.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/97_114_99.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/97_116.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/97_98_111.ind +0 -0
- data/spec/dummy/tmp/index/development/refinery/page/97_99.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/98_108_111.ind +2 -0
- data/spec/dummy/tmp/index/development/refinery/page/98_108_97.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/99_108_97.ind +2 -0
- data/spec/dummy/tmp/index/development/refinery/page/99_111_110.ind +0 -0
- data/spec/dummy/tmp/index/development/refinery/page/99_117_114.ind +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/size +1 -0
- data/spec/dummy/tmp/index/development/refinery/page/version +1 -0
- data/spec/factories/factory.rb +16 -0
- data/spec/models/refinery/menus/menu_link_spec.rb +413 -0
- data/spec/models/refinery/menus/menu_spec.rb +82 -0
- data/spec/requests/refinery/menus/admin/manage_menus_spec.rb +181 -0
- data/spec/spec_helper.rb +67 -0
- metadata +1079 -59
- data/app/controllers/admin/menus_controller.rb +0 -7
- data/app/controllers/menus_controller.rb +0 -30
- data/app/models/menu.rb +0 -10
- data/app/views/admin/menus/_form.html.erb +0 -19
- data/app/views/admin/menus/_menu.html.erb +0 -20
- data/app/views/admin/menus/_sortable_list.html.erb +0 -4
- data/app/views/admin/menus/edit.html.erb +0 -1
- data/app/views/admin/menus/index.html.erb +0 -67
- data/app/views/admin/menus/new.html.erb +0 -1
- data/app/views/menus/index.html.erb +0 -11
- data/app/views/menus/show.html.erb +0 -25
- data/config/locales/nb.yml +0 -19
- data/config/locales/nl.yml +0 -19
- data/lib/generators/refinerycms_menus_generator.rb +0 -6
- data/lib/menus.rb +0 -20
- data/lib/tasks/menus.rake +0 -13
data/Guardfile
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
guard 'spork', :wait => 60, :cucumber => false, :rspec_env => { 'RAILS_ENV' => 'test' } do
|
2
|
+
watch('config/application.rb')
|
3
|
+
watch('config/environment.rb')
|
4
|
+
watch(%r{^config/environments/.+\.rb$})
|
5
|
+
watch(%r{^config/initializers/.+\.rb$})
|
6
|
+
watch('spec/spec_helper.rb')
|
7
|
+
watch(%r{^spec/support/.+\.rb$})
|
8
|
+
watch(%r{^vendor/extensions/(.+)/spec/support/.+\.rb$})
|
9
|
+
end
|
10
|
+
|
11
|
+
guard 'rspec', :version => 2, :cli => (['~/.rspec', '.rspec'].map{|f| File.read(File.expand_path(f)).split("\n").join(' ') if File.exists?(File.expand_path(f))}.join(' ')) do
|
12
|
+
watch(%r{^spec/.+_spec\.rb$})
|
13
|
+
watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
|
14
|
+
watch('spec/spec_helper.rb') { "spec" }
|
15
|
+
|
16
|
+
# Rails example
|
17
|
+
watch(%r{^spec/.+_spec\.rb$})
|
18
|
+
watch(%r{^app/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
|
19
|
+
watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
|
20
|
+
watch(%r{^app/controllers/(.+)_(controller)\.rb$}) { |m| ["spec/routing/#{m[1]}_routing_spec.rb", "spec/#{m[2]}s/#{m[1]}_#{m[2]}_spec.rb", "spec/requests/#{m[1]}_spec.rb"] }
|
21
|
+
watch(%r{^spec/support/(.+)\.rb$}) { "spec" }
|
22
|
+
watch('spec/spec_helper.rb') { "spec" }
|
23
|
+
watch('config/routes.rb') { "spec/routing" }
|
24
|
+
watch('app/controllers/application_controller.rb') { "spec/controllers" }
|
25
|
+
# Capybara request specs
|
26
|
+
watch(%r{^app/views/(.+)/.*\.(erb|haml)$}) { |m| "spec/requests/#{m[1]}_spec.rb" }
|
27
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
jQuery =>
|
2
|
+
$('#form-container').css('min-height', $('#left_actions').height() + "px")
|
3
|
+
|
4
|
+
$('#sortable_list, .sortable_list').addClass("reordering")
|
5
|
+
list_reorder.sortable_list.nestedSortable("enable")
|
6
|
+
|
7
|
+
$('#sortable_list').on 'click', '.header', ->
|
8
|
+
$(this).siblings('.body').slideToggle()
|
9
|
+
|
10
|
+
$('#menu_form').submit (e) ->
|
11
|
+
save_structure($(this))
|
12
|
+
|
13
|
+
reset_custom_link_form()
|
14
|
+
|
15
|
+
reset_link_forms = () ->
|
16
|
+
reset_custom_link_form()
|
17
|
+
reset_resource_link_forms()
|
18
|
+
|
19
|
+
reset_custom_link_form = () ->
|
20
|
+
$('#menu_link_custom_url').val('http://')
|
21
|
+
$('#menu_link_label').val('')
|
22
|
+
|
23
|
+
reset_resource_link_forms = () ->
|
24
|
+
$('.resource-pp-add-box').find('input[type="checkbox"]').attr('checked', false)
|
25
|
+
|
26
|
+
save_structure = (form) ->
|
27
|
+
list_reorder.sortable_list.nestedSortable("disable")
|
28
|
+
|
29
|
+
$('#sortable_list, .sortable_list').removeClass("reordering")
|
30
|
+
|
31
|
+
if list_reorder.update_url != null
|
32
|
+
serialized_lists = list_reorder.sortable_list.serializelist()
|
33
|
+
|
34
|
+
for elem in serialized_lists.split('&')
|
35
|
+
if elem.length
|
36
|
+
input = $("<input>").attr("type", "hidden").attr("name", elem.split('=')[0]).val(elem.split('=')[1])
|
37
|
+
form.append(input)
|
38
|
+
|
39
|
+
window.reset_link_forms = reset_link_forms
|
@@ -0,0 +1,183 @@
|
|
1
|
+
.select_from{
|
2
|
+
display:block;
|
3
|
+
float:left;
|
4
|
+
width: 100%;
|
5
|
+
}
|
6
|
+
|
7
|
+
.select_to{
|
8
|
+
display:block;
|
9
|
+
float:left;
|
10
|
+
width: 100%;
|
11
|
+
}
|
12
|
+
|
13
|
+
.select_buttons {
|
14
|
+
display:inline-block;
|
15
|
+
float:left;
|
16
|
+
text-align:right;
|
17
|
+
padding-top: 180px;
|
18
|
+
width: 36px;
|
19
|
+
}
|
20
|
+
|
21
|
+
|
22
|
+
.pp-add-box {
|
23
|
+
background: #aaa;
|
24
|
+
margin-top: 20px;
|
25
|
+
padding: 15px;
|
26
|
+
|
27
|
+
h3 {
|
28
|
+
margin-top: 0;
|
29
|
+
}
|
30
|
+
|
31
|
+
input[type='text'] {
|
32
|
+
width: 210px;
|
33
|
+
}
|
34
|
+
|
35
|
+
label {
|
36
|
+
margin-top: 10px;
|
37
|
+
}
|
38
|
+
|
39
|
+
.pp-selection-box {
|
40
|
+
background: white;
|
41
|
+
max-height: 140px;
|
42
|
+
padding: 10px;
|
43
|
+
overflow-y: scroll;
|
44
|
+
border: 1px solid #7f9db9;
|
45
|
+
}
|
46
|
+
}
|
47
|
+
|
48
|
+
.pp-add-box .button {
|
49
|
+
margin-top: 15px;
|
50
|
+
}
|
51
|
+
|
52
|
+
#left_actions {
|
53
|
+
float: left;
|
54
|
+
width: 250px;
|
55
|
+
|
56
|
+
.controls a {
|
57
|
+
background-color: #dbedff;
|
58
|
+
background-position: 12px;
|
59
|
+
background-repeat: no-repeat;
|
60
|
+
border: 1px solid #65C3F7;
|
61
|
+
display: block;
|
62
|
+
padding: 9px 12px 9px 36px;
|
63
|
+
|
64
|
+
&:hover {
|
65
|
+
background-color: #cae7fb;
|
66
|
+
}
|
67
|
+
}
|
68
|
+
|
69
|
+
.resource-pp-add-box{
|
70
|
+
label {
|
71
|
+
display: inline;
|
72
|
+
font-weight: normal;
|
73
|
+
}
|
74
|
+
}
|
75
|
+
|
76
|
+
|
77
|
+
}
|
78
|
+
|
79
|
+
#pp-select-container {
|
80
|
+
position: relative;
|
81
|
+
}
|
82
|
+
|
83
|
+
#links-container {
|
84
|
+
#sortable_list {
|
85
|
+
padding: 10px 20px 20px 20px;
|
86
|
+
background: #eee;
|
87
|
+
width: 650px;
|
88
|
+
min-height: 400px;
|
89
|
+
|
90
|
+
list-style: none;
|
91
|
+
|
92
|
+
ul {
|
93
|
+
li {
|
94
|
+
list-style: none;
|
95
|
+
}
|
96
|
+
list-style: none;
|
97
|
+
}
|
98
|
+
|
99
|
+
.pp-placeholder {
|
100
|
+
margin-top: 10px;
|
101
|
+
cursor: default;
|
102
|
+
}
|
103
|
+
}
|
104
|
+
|
105
|
+
}
|
106
|
+
|
107
|
+
|
108
|
+
.pp-link {
|
109
|
+
position: relative;
|
110
|
+
margin-top: 10px!important;
|
111
|
+
list-style: none;
|
112
|
+
|
113
|
+
.header {
|
114
|
+
height: 20px;
|
115
|
+
line-height: 20px;
|
116
|
+
padding: 8px;
|
117
|
+
background: #c3e1ff;
|
118
|
+
|
119
|
+
&:hover {
|
120
|
+
background: #add6ff;
|
121
|
+
}
|
122
|
+
|
123
|
+
.type {
|
124
|
+
position: absolute;
|
125
|
+
top: 8px;
|
126
|
+
right: 36px;
|
127
|
+
}
|
128
|
+
|
129
|
+
.arrow {
|
130
|
+
background-repeat: no-repeat;
|
131
|
+
background-image: url(/assets/refinery/icons/down.gif);
|
132
|
+
background-position:center;
|
133
|
+
position: absolute;
|
134
|
+
right: 0px;
|
135
|
+
top: 0px;
|
136
|
+
width: 36px;
|
137
|
+
height: 36px;
|
138
|
+
cursor: pointer;
|
139
|
+
}
|
140
|
+
}
|
141
|
+
|
142
|
+
.body {
|
143
|
+
display: none;
|
144
|
+
background: #dbedff;
|
145
|
+
padding: 15px;
|
146
|
+
|
147
|
+
position: relative;
|
148
|
+
|
149
|
+
label {
|
150
|
+
display: inline-block;
|
151
|
+
margin-right: 10px;
|
152
|
+
margin-top: 0;
|
153
|
+
width: 100px;
|
154
|
+
text-align: right;
|
155
|
+
}
|
156
|
+
|
157
|
+
input {
|
158
|
+
width: 250px;
|
159
|
+
}
|
160
|
+
|
161
|
+
a.remove {
|
162
|
+
position: absolute;
|
163
|
+
right: 10px;
|
164
|
+
bottom: 10px;
|
165
|
+
cursor: pointer;
|
166
|
+
}
|
167
|
+
|
168
|
+
.original-resource {
|
169
|
+
display: inline-block;
|
170
|
+
margin: 5px 0;
|
171
|
+
}
|
172
|
+
}
|
173
|
+
|
174
|
+
}
|
175
|
+
|
176
|
+
#menu_form {
|
177
|
+
float: right;
|
178
|
+
width: 700px;
|
179
|
+
}
|
180
|
+
|
181
|
+
.field input[type=text] {
|
182
|
+
padding: 3px 5px;
|
183
|
+
}
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module Refinery
|
2
|
+
module Menus
|
3
|
+
module Admin
|
4
|
+
class MenuLinksController < Refinery::AdminController
|
5
|
+
|
6
|
+
def create
|
7
|
+
respond_to do |format|
|
8
|
+
format.js do
|
9
|
+
@menu_links = []
|
10
|
+
if params[:refinery_resource_ids]
|
11
|
+
params[:refinery_resource_ids].each do |id|
|
12
|
+
@menu_links << MenuLink.create({refinery_resource_id: id}.merge(params[:menu_link]))
|
13
|
+
end
|
14
|
+
else
|
15
|
+
@menu_links << MenuLink.create(params[:menu_link])
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def destroy
|
22
|
+
respond_to do |format|
|
23
|
+
format.js do
|
24
|
+
@menu_link = MenuLink.find(params[:id])
|
25
|
+
@menu_link.destroy
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,70 @@
|
|
1
|
+
module Refinery
|
2
|
+
module Menus
|
3
|
+
module Admin
|
4
|
+
class MenusController < ::Refinery::AdminController
|
5
|
+
|
6
|
+
crudify :'refinery/menus/menu',
|
7
|
+
:xhr_paging => true,
|
8
|
+
:sortable => false,
|
9
|
+
:include => [:links],
|
10
|
+
:redirect_to_url => "refinery.menus_admin_menus_path"
|
11
|
+
|
12
|
+
before_filter :find_menu_links, only: [:edit, :update]
|
13
|
+
before_filter :set_links_positions, only: [:create, :update]
|
14
|
+
|
15
|
+
private
|
16
|
+
|
17
|
+
# Based upon http://github.com/matenia/jQuery-Awesome-Nested-Set-Drag-and-Drop
|
18
|
+
def set_links_positions
|
19
|
+
previous = nil
|
20
|
+
# raise params.inspect
|
21
|
+
params[:ul].each do |_, list|
|
22
|
+
list.each do |index, hash|
|
23
|
+
moved_item_id = hash['id'].split(/menu_link\_?/).reject(&:empty?).first
|
24
|
+
|
25
|
+
if moved_item_id
|
26
|
+
current_link = @menu.links.find(moved_item_id) # Scope?
|
27
|
+
|
28
|
+
if current_link.respond_to?(:move_to_root)
|
29
|
+
if previous.present?
|
30
|
+
current_link.move_to_right_of(@menu.links.find(previous)) #SCOPE?
|
31
|
+
else
|
32
|
+
current_link.move_to_root
|
33
|
+
end
|
34
|
+
else
|
35
|
+
current_link.update_attributes :position => index
|
36
|
+
end
|
37
|
+
|
38
|
+
if hash['children'].present?
|
39
|
+
update_child_links_positions(hash, current_link)
|
40
|
+
end
|
41
|
+
|
42
|
+
previous = moved_item_id
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end if params[:ul].present?
|
46
|
+
|
47
|
+
MenuLink.rebuild!
|
48
|
+
end
|
49
|
+
|
50
|
+
def update_child_links_positions(_node, link)
|
51
|
+
list = _node['children']['0']
|
52
|
+
list.each do |index, child|
|
53
|
+
child_id = child['id'].split(/menu_link\_?/).reject(&:empty?).first
|
54
|
+
child_link = @menu.links.find(child_id) # Scoped?
|
55
|
+
child_link.move_to_child_of(link)
|
56
|
+
|
57
|
+
if child['children'].present?
|
58
|
+
update_child_links_positions(child, child_link)
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
def find_menu_links
|
64
|
+
@menu_links = @menu.roots
|
65
|
+
end
|
66
|
+
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Refinery
|
2
|
+
module Menus
|
3
|
+
class Menu < Refinery::Core::BaseModel
|
4
|
+
self.table_name = "refinery_menus"
|
5
|
+
|
6
|
+
has_many :links, :class_name => "::Refinery::Menus::MenuLink", :foreign_key => :refinery_menu_id, :dependent => :destroy, :order => "lft ASC"
|
7
|
+
|
8
|
+
validates :title, :presence => true, :uniqueness => true
|
9
|
+
validates :permatitle, :presence => true, :uniqueness => true
|
10
|
+
validates_associated :links
|
11
|
+
|
12
|
+
attr_accessible :title, :permatitle, :links, :links_attributes
|
13
|
+
|
14
|
+
accepts_nested_attributes_for :links, :allow_destroy => true
|
15
|
+
|
16
|
+
def roots
|
17
|
+
@roots ||= links.select {|pos| pos.parent_id.nil?}
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,134 @@
|
|
1
|
+
module Refinery
|
2
|
+
module Menus
|
3
|
+
class MenuLink < Refinery::Core::BaseModel
|
4
|
+
self.table_name = "refinery_menus_links"
|
5
|
+
|
6
|
+
attr_accessible :parent_id, :refinery_page_id, :refinery_menu_id, :refinery_resource_id, :refinery_resource_type,
|
7
|
+
:title_attribute, :custom_url, :label, :menu, :id_attribute, :class_attribute
|
8
|
+
|
9
|
+
belongs_to :menu, :class_name => '::Refinery::Menus::Menu', :foreign_key => :refinery_menu_id
|
10
|
+
belongs_to :resource, :foreign_key => :refinery_resource_id, :polymorphic => true
|
11
|
+
|
12
|
+
# Docs for acts_as_nested_set https://github.com/collectiveidea/awesome_nested_set
|
13
|
+
# rather than :delete_all we want :destroy
|
14
|
+
acts_as_nested_set :dependent => :destroy
|
15
|
+
|
16
|
+
validates :menu, :presence => true
|
17
|
+
validates :label, :presence => true
|
18
|
+
|
19
|
+
before_validation :set_label
|
20
|
+
|
21
|
+
def self.find_all_of_type(type)
|
22
|
+
# find all resources of the given type, determined by the configuration
|
23
|
+
# TODO - we may want to allow configuration of conditions (DONE), ordering, etc
|
24
|
+
if scope = self.resource_config(type)[:scope]
|
25
|
+
scope.is_a?(Symbol) ? resource_klass(type).send(scope) : resource_klass(type).instance_eval(&scope)
|
26
|
+
else
|
27
|
+
resource_klass(type).all
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def self.resource_klass(type)
|
32
|
+
resource_config(type)[:klass].constantize
|
33
|
+
end
|
34
|
+
|
35
|
+
def self.resource_config(type)
|
36
|
+
Refinery::Menus.menu_resources[type.to_sym]
|
37
|
+
end
|
38
|
+
|
39
|
+
def set_label
|
40
|
+
if label.blank?
|
41
|
+
if custom_link?
|
42
|
+
begin
|
43
|
+
self.label = custom_url.match(/(\w+)\.\w+$/).captures.join.titleize
|
44
|
+
rescue
|
45
|
+
self.label = custom_url
|
46
|
+
end
|
47
|
+
else
|
48
|
+
self.label = resource.send(resource_config[:title_attr])
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
def resource_klass
|
54
|
+
Refinery::Menus::MenuLink.resource_klass(resource_type)
|
55
|
+
end
|
56
|
+
|
57
|
+
def resource_config
|
58
|
+
Refinery::Menus::MenuLink.resource_config(resource_type)
|
59
|
+
end
|
60
|
+
|
61
|
+
def resource_type
|
62
|
+
refinery_resource_type || "Custom link"
|
63
|
+
end
|
64
|
+
|
65
|
+
def type_name
|
66
|
+
resource_type.titleize
|
67
|
+
end
|
68
|
+
|
69
|
+
def custom_link?
|
70
|
+
refinery_resource_id.nil? || refinery_resource_type.nil?
|
71
|
+
end
|
72
|
+
|
73
|
+
def resource_link?
|
74
|
+
refinery_resource_id.present? && refinery_resource_type.present?
|
75
|
+
end
|
76
|
+
|
77
|
+
def resource
|
78
|
+
return nil if custom_link?
|
79
|
+
resource_klass.find(refinery_resource_id)
|
80
|
+
end
|
81
|
+
|
82
|
+
def resource_title
|
83
|
+
resource.send(resource_config[:title_attr])
|
84
|
+
end
|
85
|
+
|
86
|
+
def title
|
87
|
+
title_attribute.present? ? title_attribute : label
|
88
|
+
end
|
89
|
+
|
90
|
+
def resource_url
|
91
|
+
resource.present? ? resource.url : '/'
|
92
|
+
end
|
93
|
+
|
94
|
+
def url
|
95
|
+
if custom_link?
|
96
|
+
custom_url
|
97
|
+
else
|
98
|
+
resource_url
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
def as_json(options={})
|
103
|
+
json = super(options)
|
104
|
+
if resource_link?
|
105
|
+
json = {
|
106
|
+
resource: {
|
107
|
+
title: resource_title
|
108
|
+
}
|
109
|
+
}.merge(json)
|
110
|
+
end
|
111
|
+
json
|
112
|
+
end
|
113
|
+
|
114
|
+
def to_refinery_menu_item
|
115
|
+
{
|
116
|
+
:id => id,
|
117
|
+
:lft => lft,
|
118
|
+
:menu_match => menu_match,
|
119
|
+
:parent_id => parent_id,
|
120
|
+
:rgt => rgt,
|
121
|
+
:title => label,
|
122
|
+
:type => self.class.name,
|
123
|
+
:url => url,
|
124
|
+
:html => {
|
125
|
+
:id => id_attribute,
|
126
|
+
:class => class_attribute,
|
127
|
+
:title => title
|
128
|
+
}
|
129
|
+
}
|
130
|
+
end
|
131
|
+
|
132
|
+
end
|
133
|
+
end
|
134
|
+
end
|