diff --git a/app/assets/javascripts/templates/filter_selector.html.haml b/app/assets/javascripts/templates/filter_selector.html.haml index cd4135ebee..742ace2a0e 100644 --- a/app/assets/javascripts/templates/filter_selector.html.haml +++ b/app/assets/javascripts/templates/filter_selector.html.haml @@ -1,4 +1,3 @@ %ul %active-selector{ ng: { repeat: "selector in allSelectors", show: "ifDefined(selector.fits, true)" } } - %render-svg{path: "{{selector.object.icon}}", ng: { if: "selector.object.icon"} } %span{"ng-bind" => "::selector.object.name"} diff --git a/app/assets/stylesheets/darkswarm/_shop-filters.css.scss b/app/assets/stylesheets/darkswarm/_shop-filters.css.scss index 16bca77cbc..2d8caf9a54 100644 --- a/app/assets/stylesheets/darkswarm/_shop-filters.css.scss +++ b/app/assets/stylesheets/darkswarm/_shop-filters.css.scss @@ -14,7 +14,7 @@ @include border-radius(0); padding: 0; - margin: 0 0 0.25rem 0.25rem; + margin: 0 0.25rem 0.25rem 0; &:hover, &:focus { background: transparent; @@ -140,25 +140,6 @@ .filter-shopfront { &.taxon-selectors, &.property-selectors { background: transparent; - - single-line-selectors { - overflow-x: hidden; - white-space: nowrap; - - .f-dropdown { - overflow-x: auto; - white-space: normal; - } - } - - ul { - margin: 0; - display: inline-block; - } - - ul, ul li { - list-style: none; - } } // Shopfront taxons @@ -170,4 +151,8 @@ &.property-selectors { @include filter-selector(#666, #ccc, #777); } + + ul { + margin: 0; + } } diff --git a/app/views/shop/products/_filters.html.haml b/app/views/shop/products/_filters.html.haml index 100ccecc0a..f0e69d1985 100644 --- a/app/views/shop/products/_filters.html.haml +++ b/app/views/shop/products/_filters.html.haml @@ -1,5 +1,5 @@ -.filter-shopfront.taxon-selectors.text-right{ng: {show: 'supplied_taxons != null'}} - %single-line-selectors{ selectors: "taxonSelectors", objects: "supplied_taxons", "active-selectors" => "activeTaxons"} +.filter-shopfront.taxon-selectors{ng: {show: 'supplied_taxons != null'}} + %filter-selector{ 'selector-set' => "taxonSelectors", objects: "supplied_taxons", "active-selectors" => "activeTaxons"} -.filter-shopfront.property-selectors.text-right{ng: {show: 'supplied_properties != null'}} - %single-line-selectors{ selectors: "propertySelectors", objects: "supplied_properties", "active-selectors" => "activeProperties"} +.filter-shopfront.property-selectors{ng: {show: 'supplied_properties != null'}} + %filter-selector{ 'selector-set' => "propertySelectors", objects: "supplied_properties", "active-selectors" => "activeProperties"} diff --git a/app/views/shop/products/_form.html.haml b/app/views/shop/products/_form.html.haml index 5e45c44fa1..7598c75568 100644 --- a/app/views/shop/products/_form.html.haml +++ b/app/views/shop/products/_form.html.haml @@ -19,36 +19,38 @@ = t :products_with %span.applied-search "{{ query }}" .row - .small-12.medium-6.large-5.columns + .small-12.columns %input#search.text{"ng-model" => "query", placeholder: t(:products_search), "ng-debounce" => "200", "ofn-disable-enter" => true} - .small-12.medium-6.large-6.large-offset-1.columns - = render partial: "shop/products/filters" - .row - %div.pad-top{ "infinite-scroll" => "loadMore()", "infinite-scroll-distance" => "1", "infinite-scroll-disabled" => 'Products.loading' } - %product.animate-repeat{"ng-controller" => "ProductNodeCtrl", "ng-repeat" => "product in Products.products track by product.id", "id" => "product-{{ product.id }}"} - = render "shop/products/summary" - %shop-variant{variant: 'variant', "ng-repeat" => "variant in product.variants | orderBy: ['name_to_display','unit_value'] track by variant.id", "id" => "variant-{{ variant.id }}", "ng-class" => "{'out-of-stock': !variant.on_demand && variant.on_hand == 0}"} + .medium-12.large-10.columns + %div.pad-top{ "infinite-scroll" => "loadMore()", "infinite-scroll-distance" => "1", "infinite-scroll-disabled" => 'Products.loading' } + %product.animate-repeat{"ng-controller" => "ProductNodeCtrl", "ng-repeat" => "product in Products.products track by product.id", "id" => "product-{{ product.id }}"} + = render "shop/products/summary" + %shop-variant{variant: 'variant', "ng-repeat" => "variant in product.variants | orderBy: ['name_to_display','unit_value'] track by variant.id", "id" => "variant-{{ variant.id }}", "ng-class" => "{'out-of-stock': !variant.on_demand && variant.on_hand == 0}"} - %product{"ng-show" => "Products.loading"} - .row.summary - .small-12.columns.text-center - = t :products_loading - .row - .small-12.columns.text-center - %img.spinner{ src: "/assets/spinning-circles.svg" } + %product{"ng-show" => "Products.loading"} + .row.summary + .small-12.columns.text-center + = t :products_loading + .row + .small-12.columns.text-center + %img.spinner{ src: "/assets/spinning-circles.svg" } - %div{"ng-show" => "Products.products.length == 0 && !Products.loading"} - .row.summary - .small-12.columns - %p.no-results - = t :search_no_results_html, query: "{{query}}".html_safe - .row - .small-12.columns - %form{action: main_app.cart_path} - %i.ofn-i_011-spinner.cart-spinner{"ng-show" => "Cart.dirty"} - %input.small.button.primary.right.add_to_cart{type: :submit, value: "{{ Cart.dirty ? '#{t(:products_updating_cart)}' : (Cart.empty() ? '#{t(:products_cart_empty)}' : '#{t(:products_edit_cart)}' ) }}", "ng-disabled" => "Cart.dirty || Cart.empty()", "ng-class" => "{ dirty: Cart.dirty }" } + %div{"ng-show" => "Products.products.length == 0 && !Products.loading"} + .row.summary + .small-12.columns + %p.no-results + = t :search_no_results_html, query: "{{query}}".html_safe + .row + .small-12.columns + %form{action: main_app.cart_path} + %i.ofn-i_011-spinner.cart-spinner{"ng-show" => "Cart.dirty"} + %input.small.button.primary.right.add_to_cart{type: :submit, value: "{{ Cart.dirty ? '#{t(:products_updating_cart)}' : (Cart.empty() ? '#{t(:products_cart_empty)}' : '#{t(:products_edit_cart)}' ) }}", "ng-disabled" => "Cart.dirty || Cart.empty()", "ng-class" => "{ dirty: Cart.dirty }" } + + .hide-for-medium-down.large-2.columns + %h5= t(:products_filter_by) + = render partial: "shop/products/filters" diff --git a/config/locales/en.yml b/config/locales/en.yml index fa92cb72a1..83a6c95025 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1653,6 +1653,7 @@ See the %{link} to find out more about %{sitename}'s features and to start using products_or: "OR" products_with: with products_search: "Search by product or producer" + products_filter_by: "Filter by" products_loading: "Loading products..." products_updating_cart: "Updating cart..." products_cart_empty: "Cart empty"