From bc93ce57e6d77688d47e13b4cda1f7452da49394 Mon Sep 17 00:00:00 2001 From: Will Marshall Date: Fri, 13 Jun 2014 10:59:49 +1000 Subject: [PATCH] Smooth scrolling, svg support via directive --- .../darkswarm/controllers/hubs_controller.js.coffee | 2 +- .../darkswarm/directives/render_svg.js.coffee | 10 ++++++++++ .../darkswarm/directives/scroll_after_load.js.coffee | 6 ++++-- app/views/home/_fat.html.haml | 2 +- app/views/shop/products/_summary.html.haml | 4 +--- spec/features/consumer/shopping/shopping_spec.rb | 1 + 6 files changed, 18 insertions(+), 7 deletions(-) create mode 100644 app/assets/javascripts/darkswarm/directives/render_svg.js.coffee diff --git a/app/assets/javascripts/darkswarm/controllers/hubs_controller.js.coffee b/app/assets/javascripts/darkswarm/controllers/hubs_controller.js.coffee index fa40f54c35..ca7d86f5cf 100644 --- a/app/assets/javascripts/darkswarm/controllers/hubs_controller.js.coffee +++ b/app/assets/javascripts/darkswarm/controllers/hubs_controller.js.coffee @@ -1,4 +1,4 @@ -Darkswarm.controller "HubsCtrl", ($scope, Hubs, $anchorScroll, $rootScope, HashNavigation) -> +Darkswarm.controller "HubsCtrl", ($scope, Hubs, $document, $rootScope, HashNavigation) -> $scope.Hubs = Hubs $scope.hubs = Hubs.hubs diff --git a/app/assets/javascripts/darkswarm/directives/render_svg.js.coffee b/app/assets/javascripts/darkswarm/directives/render_svg.js.coffee new file mode 100644 index 0000000000..86ffea8c5b --- /dev/null +++ b/app/assets/javascripts/darkswarm/directives/render_svg.js.coffee @@ -0,0 +1,10 @@ +Darkswarm.directive "renderSvg", ()-> + restrict: 'E' + priority: 99 + template: "" + link: (scope, elem, attr)-> + if /.svg/.test attr.path # Only do this if we've got an svg + $.ajax + url: attr.path + success: (html)-> + elem.html($(html).find("svg")) diff --git a/app/assets/javascripts/darkswarm/directives/scroll_after_load.js.coffee b/app/assets/javascripts/darkswarm/directives/scroll_after_load.js.coffee index b8f83d3b9f..ab2e0a6e3d 100644 --- a/app/assets/javascripts/darkswarm/directives/scroll_after_load.js.coffee +++ b/app/assets/javascripts/darkswarm/directives/scroll_after_load.js.coffee @@ -4,5 +4,7 @@ Darkswarm.directive 'scrollAfterLoad', ($timeout, $location, $document)-> if scope.$last is true $(window).load -> $timeout -> - $document.scrollTo $("##{$location.hash()}"), 100, 200, (x)-> - x * (2 - x) + elem = $("##{$location.hash()}") + if elem.length > 0 + $document.scrollTo elem , 100, 200, (x)-> + x * (2 - x) diff --git a/app/views/home/_fat.html.haml b/app/views/home/_fat.html.haml index 736bcdc37c..25c48006e8 100644 --- a/app/views/home/_fat.html.haml +++ b/app/views/home/_fat.html.haml @@ -5,7 +5,7 @@ Shop for %p.trans-sentence %span.fat-taxons{"ng-repeat" => "taxon in hub.taxons"} - %object.taxon{"ng-attr-data" => "{{taxon.icon}}", type: "image/svg+xml"} + %render-svg{path: "{{taxon.icon}}"} {{taxon.name}} .columns.small-4 %h5 Delivery options diff --git a/app/views/shop/products/_summary.html.haml b/app/views/shop/products/_summary.html.haml index e8a229033e..ec018065c8 100644 --- a/app/views/shop/products/_summary.html.haml +++ b/app/views/shop/products/_summary.html.haml @@ -3,9 +3,7 @@ %img{"bo-src" => "product.master.images[0].small_url"} .small-4.columns.summary-header - %object.taxon{"ng-attr-data" => "{{product.primary_taxon.icon}}", type: "image/svg+xml", - "ng-click" => "ordering.order = 'primary_taxon.name'"} - {{taxon.name}} + %render-svg{path: "{{product.primary_taxon.icon}}"} = render partial: "modals/product" .small-5.columns diff --git a/spec/features/consumer/shopping/shopping_spec.rb b/spec/features/consumer/shopping/shopping_spec.rb index a1adde5ee0..304eff7d23 100644 --- a/spec/features/consumer/shopping/shopping_spec.rb +++ b/spec/features/consumer/shopping/shopping_spec.rb @@ -36,6 +36,7 @@ feature "As a consumer I want to shop with a distributor", js: true do exchange.variants << product.master visit shop_path + save_screenshot "/users/willmarshall/Desktop/wtsvg.png" find("#tab_producers a").click page.should have_content supplier.name end