mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-25 20:46:48 +00:00
46 lines
1.2 KiB
CoffeeScript
46 lines
1.2 KiB
CoffeeScript
Darkswarm.controller "TabsCtrl", ($scope, $rootScope, $location) ->
|
|
$scope.active = (tab)->
|
|
$location.path() == tab
|
|
|
|
$scope.tabs = ["contact", "about", "groups", "producers"]
|
|
for tab in $scope.tabs
|
|
$scope[tab] =
|
|
active: false #$scope.active("/" + tab)
|
|
path: "/" + tab
|
|
|
|
$scope.$watch ->
|
|
$location.path()
|
|
, (path)->
|
|
for tab in $scope.tabs
|
|
$scope[tab].active = $scope.active($scope[tab].path)
|
|
|
|
#$scope.select = (tab)->
|
|
#$location.path tab.path
|
|
#
|
|
#
|
|
|
|
# directive -> ng-click -> scope method (not isolated) -> toggle active | change location
|
|
# watch active expression -> change tab appearance
|
|
|
|
#select = ->
|
|
#$location.path(tab.path)
|
|
|
|
#active expression:
|
|
#"$location.path() == tab.path"
|
|
|
|
|
|
# directive -> ng-click -> set active (on isolated scope)
|
|
# ng-class -> change tab appearance
|
|
# two-way binding active attr <-> tab.active
|
|
|
|
# directive attr (select) -> scope.selectExpression
|
|
# scope.select -> $parse ...
|
|
#
|
|
# in Directive
|
|
# scope.select = $parse(attrs.select)
|
|
# $scope.select($scope)
|
|
#
|
|
# 1: remove reverse binding on tab.active
|
|
# 2: put $parse(attrs.select) onto tab
|
|
# 3: override TabsetController/select to run tab.select() against original tab.$parent
|