Adding query string to search params

This commit is contained in:
Will Marshall
2014-07-09 15:45:05 +10:00
parent 95d519f0f1
commit 6f3f40e2e6
8 changed files with 62 additions and 14 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -0,0 +1,4 @@
Darkswarm.filter "capitalize", ->
(input, scope) ->
input = input.toLowerCase() if input?
input.substring(0, 1).toUpperCase() + input.substring(1)

View File

@@ -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

View File

@@ -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']

View File

@@ -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 }}

View File

@@ -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