You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
111 lines
2.6 KiB
111 lines
2.6 KiB
(function (angular) { |
|
|
|
const SECTION_NAME = "history"; |
|
|
|
angular |
|
.module("BrowserSync") |
|
.controller("HistoryController", [ |
|
"$scope", |
|
"options", |
|
"History", |
|
"pagesConfig", |
|
historyController |
|
]); |
|
|
|
/** |
|
* @param $scope |
|
* @param options |
|
* @param History |
|
* @param pagesConfig |
|
*/ |
|
function historyController($scope, options, History, pagesConfig) { |
|
|
|
var ctrl = this; |
|
ctrl.options = options.bs; |
|
ctrl.section = pagesConfig[SECTION_NAME]; |
|
ctrl.visited = []; |
|
|
|
ctrl.update = function (items) { |
|
ctrl.visited = items; |
|
$scope.$digest(); |
|
}; |
|
|
|
History.get().then(function (items) { |
|
ctrl.visited = items; |
|
}); |
|
|
|
History.on("change", ctrl.update); |
|
|
|
$scope.$on("$destroy", function () { |
|
History.off(ctrl.update); |
|
}); |
|
|
|
ctrl.clearVisited = function () { |
|
History.clear(); |
|
}; |
|
} |
|
|
|
angular |
|
.module("BrowserSync") |
|
.directive("historyList", function () { |
|
return { |
|
restrict: "E", |
|
scope: { |
|
options: "=", |
|
visited: "=" |
|
}, |
|
templateUrl: "history.directive.html", |
|
controller: ["$scope", "History", "Clients", historyDirective], |
|
controllerAs: "ctrl" |
|
}; |
|
}); |
|
|
|
/** |
|
* Controller for the URL sync |
|
* @param $scope - directive scope |
|
* @param History |
|
* @param Clients |
|
*/ |
|
function historyDirective($scope, History, Clients) { |
|
|
|
var ctrl = this; |
|
|
|
ctrl.visited = []; |
|
|
|
ctrl.utils = {}; |
|
|
|
ctrl.utils.localUrl = function (path) { |
|
return [$scope.options.urls.local, path].join(""); |
|
}; |
|
|
|
ctrl.updateVisited = function (data) { |
|
ctrl.visited = data; |
|
$scope.$digest(); |
|
}; |
|
|
|
ctrl.sendAllTo = function (url) { |
|
url.success = true; |
|
Clients.sendAllTo(url.path); |
|
setTimeout(function () { |
|
url.success = false; |
|
$scope.$digest(); |
|
}, 1000); |
|
}; |
|
|
|
ctrl.removeVisited = function (item) { |
|
History.remove(item); |
|
}; |
|
|
|
History.get().then(function (items) { |
|
ctrl.visited = items; |
|
}); |
|
|
|
History.on("change", ctrl.updateVisited); |
|
|
|
$scope.$on("$destroy", function () { |
|
History.off(ctrl.updateVisited); |
|
}); |
|
} |
|
|
|
})(angular); |
|
|
|
|