Merge branch 'laura_and_will' of github.com:openfoodfoundation/openfoodnetwork into laura_and_will

Conflicts:
	app/views/producers/_filters.html.haml
This commit is contained in:
summerscope
2014-07-09 16:18:41 +10:00
8 changed files with 72 additions and 17 deletions

View File

@@ -1,4 +1,14 @@
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.filterText = FilterSelectorsService.filterText
$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,24 @@
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
filterText: (active)=>
if @totalActive() == 0
if active then "Hide filters" else "Filter by"
else
"#{@totalActive()} filters active"
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

@@ -1,8 +1,9 @@
.row
.small-12.columns
%a.button.primary.tiny.filterbtn{"ng-click" => "filtersActive = !filtersActive"}
Filter options
%i.ofn-i_052-point-down
%a.button.primary.tiny.filterbtn{{"ng-click" => "filtersActive = !filtersActive"}
{{ filterText(filtersActive) }}
%i.ofn-i_052-point-down{"ng-show" => "!filtersActive"}
%i.ofn-i_053-point-up{"ng-show" => "filtersActive"}
.row.animate-show{"ng-show" => "filtersActive"}
.small-12.columns
.row.filter-box
@@ -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