mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-24 20:36:49 +00:00
Adding query string to search params
This commit is contained in:
@@ -1,4 +1,13 @@
|
||||
Darkswarm.controller "ProducersCtrl", ($scope, Producers, $filter) ->
|
||||
Darkswarm.controller "ProducersCtrl", ($scope, Producers, $filter, FilterSelectorsService, Search) ->
|
||||
$scope.Producers = Producers
|
||||
$scope.totalActive = FilterSelectorsService.totalActive
|
||||
$scope.clearAll = FilterSelectorsService.clearAll
|
||||
$scope.filtersActive = true
|
||||
$scope.activeTaxons = []
|
||||
$scope.query = Search.search()
|
||||
|
||||
$scope.$watch "query", (query)->
|
||||
Search.search query
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,16 @@
|
||||
Darkswarm.directive "shippingTypeSelector", ->
|
||||
Darkswarm.directive "shippingTypeSelector", (FilterSelectorsService)->
|
||||
restrict: 'E'
|
||||
templateUrl: 'shipping_type_selector.html'
|
||||
link: (scope, elem, attr)->
|
||||
scope.shippingTypes =
|
||||
scope.shippingTypes =
|
||||
pickup: false
|
||||
delivery: false
|
||||
delivery: false
|
||||
|
||||
scope.selectors =
|
||||
delivery: FilterSelectorsService.new()
|
||||
pickup: FilterSelectorsService.new()
|
||||
|
||||
scope.emit = ->
|
||||
scope.shippingTypes =
|
||||
pickup: scope.selectors.pickup.active
|
||||
delivery: scope.selectors.delivery.active
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
Darkswarm.directive "taxonSelector", ->
|
||||
Darkswarm.directive "taxonSelector", (FilterSelectorsService)->
|
||||
restrict: 'E'
|
||||
scope:
|
||||
objects: "&"
|
||||
@@ -25,8 +25,7 @@ Darkswarm.directive "taxonSelector", ->
|
||||
if selector = selectors_by_id[id]
|
||||
selectors.push selector
|
||||
else
|
||||
selector = selectors_by_id[id] =
|
||||
active: false
|
||||
selector = selectors_by_id[id] = FilterSelectorsService.new
|
||||
taxon: taxon
|
||||
selectors.push selector
|
||||
selectors
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
Darkswarm.filter "capitalize", ->
|
||||
(input, scope) ->
|
||||
input = input.toLowerCase() if input?
|
||||
input.substring(0, 1).toUpperCase() + input.substring(1)
|
||||
@@ -0,0 +1,18 @@
|
||||
Darkswarm.factory "FilterSelectorsService", ->
|
||||
# This stores all filters so we can access in-use counts etc
|
||||
# Accessed via activeSelector Directive
|
||||
new class FilterSelectorsService
|
||||
selectors: []
|
||||
new: (obj = {})->
|
||||
obj.active = false
|
||||
@selectors.push obj
|
||||
obj
|
||||
|
||||
totalActive: =>
|
||||
@selectors.filter (selector)->
|
||||
selector.active
|
||||
.length
|
||||
|
||||
clearAll: =>
|
||||
for selector in @selectors
|
||||
selector.active = false
|
||||
@@ -0,0 +1,9 @@
|
||||
Darkswarm.factory "Search", ($location)->
|
||||
new class Search
|
||||
search: (query = false)->
|
||||
if query
|
||||
$location.search('query', query)
|
||||
else if query == ""
|
||||
$location.search('query', null)
|
||||
else
|
||||
$location.search()['query']
|
||||
@@ -1,7 +1,3 @@
|
||||
%ul.small-block-grid-4
|
||||
%li{"ng-class" => "{active: shippingTypes['delivery']}"}
|
||||
%a{"ng-click" => "shippingTypes['delivery'] = !shippingTypes['delivery']"}
|
||||
Delivery
|
||||
%li{"ng-class" => "{active: shippingTypes['pickup']}"}
|
||||
%a{"ng-click" => "shippingTypes['pickup'] = !shippingTypes['pickup']"}
|
||||
Pickup
|
||||
%active-selector{"ng-repeat" => "(name, selector) in selectors"}
|
||||
{{ name | capitalize }}
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
.small-12.columns
|
||||
%a.right{"ng-click" => "filtersActive = !filtersActive"}
|
||||
Filter by
|
||||
{{ totalActive() }}
|
||||
%i.ofn-i_052-point-down
|
||||
.row.animate-show{"ng-show" => "filtersActive"}
|
||||
.small-12.columns
|
||||
@@ -24,4 +25,7 @@
|
||||
results: "activeTaxons"}
|
||||
|
||||
.small-12.large-6.columns
|
||||
%shipping-type-selector
|
||||
%shipping-type-selector{results: "shippingTypes"}
|
||||
|
||||
.row.animate-show{"ng-show" => "filtersActive"}
|
||||
%a{"ng-click" => "clearAll()"} Clear all
|
||||
|
||||
Reference in New Issue
Block a user