Просмотр исходного кода

Create bookmarkable tabs directive.

Paulo Reis 8 лет назад
Родитель
Сommit
399a9ed604

+ 29 - 0
services/web/public/coffee/directives/bookmarkableTabset.coffee

@@ -0,0 +1,29 @@
+define [
+	"base"
+], (App) ->
+	App.directive "bookmarkableTabset", ($location, _) ->
+		restrict: "A"
+		require: "tabset"
+		link: (scope, el, attrs, tabset) ->
+			scope.$applyAsync () ->
+				hash = $location.hash()
+				if hash?
+					matchingTab = _.find tabset.tabs, (tab) ->
+						tab.bookmarkableTabId == hash
+					if matchingTab?
+						matchingTab.select()
+
+	App.directive "bookmarkableTab", ($location) ->
+		restrict: "A"
+		require: "tab"
+		link: (scope, el, attrs, tab) ->
+			tabScope = el.isolateScope()
+			tabId = attrs.bookmarkableTab
+			if tabScope? and tabId? and tabId != ""
+				tabScope.bookmarkableTabId = tabId
+				tabScope.$watch "active", (isActive, wasActive) ->
+					if isActive and !wasActive
+						$location.hash tabId
+
+
+

+ 1 - 0
services/web/public/coffee/main.coffee

@@ -37,6 +37,7 @@ define [
 	"directives/selectAll"
 	"directives/maxHeight"
 	"directives/creditCards"
+	"directives/bookmarkableTabset"
 	"services/queued-http"
 	"services/validateCaptcha"
 	"filters/formatDate"