angular.module('sentinelDashboardApp')
|
.directive('sidebar', ['$location', '$stateParams', 'AppService', function () {
|
return {
|
templateUrl: 'app/scripts/directives/sidebar/sidebar.html',
|
restrict: 'E',
|
replace: true,
|
scope: {
|
},
|
controller: function ($scope, $stateParams, $location, AppService) {
|
$scope.app = $stateParams.app;
|
$scope.collapseVar = 0;
|
|
// app
|
AppService.getApps().success(
|
function (data) {
|
if (data.code === 0) {
|
let path = $location.path().split('/');
|
let initHashApp = path[path.length - 1];
|
$scope.apps = data.data;
|
$scope.apps = $scope.apps.map(function (item) {
|
if (item.app === initHashApp) {
|
item.active = true;
|
}
|
let healthyCount = 0;
|
for (let i in item.machines) {
|
if (item.machines[i].healthy) {
|
healthyCount++;
|
}
|
}
|
item.healthyCount = healthyCount;
|
// Handle appType
|
item.isGateway = item.appType === 1 || item.appType === 11 || item.appType === 12;
|
|
if (item.shown) {
|
return item;
|
}
|
});
|
}
|
}
|
);
|
|
// toggle side bar
|
$scope.click = function ($event) {
|
let entry = angular.element($event.target).scope().entry;
|
entry.active = !entry.active;// toggle this clicked app bar
|
|
$scope.apps.forEach(function (item) { // collapse other app bars
|
if (item !== entry) {
|
item.active = false;
|
}
|
});
|
};
|
|
/**
|
* @deprecated
|
*/
|
$scope.addSearchApp = function () {
|
let findApp = false;
|
for (let i = 0; i < $scope.apps.length; i++) {
|
if ($scope.apps[i].app === $scope.searchApp) {
|
findApp = true;
|
break;
|
}
|
}
|
if (!findApp) {
|
$scope.apps.push({ app: $scope.searchApp });
|
}
|
};
|
}
|
};
|
}]);
|