SmartIT_Extensions/BMC/smart-it-full/scripts/app/knowledge-team/knowledge-manage-team-contr...

104 lines
4.4 KiB
JavaScript

"use strict";
(function () {
'use strict';
angular.module('knowledgeTeamModule')
.controller('KnowledgeManageTeamController', ['$scope', '$q', '$modalInstance', 'knowledgeTeamModel', 'userModel',
function ($scope, $q, $modalInstance, knowledgeTeamModel, userModel) {
$scope.showsearch = false;
$scope.deletedCoacheeList = [];
$scope.addedCoacheeList = [];
$scope.dataLoading = true;
$scope.teamList = [];
$scope.companies = [];
$scope.searchCompany = {};
$scope.state = {
loadingCompanies: false
};
$scope.close = function () {
$modalInstance.close(knowledgeTeamModel.coachTeamList);
};
$scope.selectCompany = function (company) {
$scope.searchCompany = company;
};
$scope.save = function () {
$scope.dataLoading = true;
var promises = [];
if ($scope.deletedCoacheeList.length) {
promises.push(knowledgeTeamModel.removeCoachee($scope.deletedCoacheeList));
}
if ($scope.addedCoacheeList.length) {
promises.push(knowledgeTeamModel.addCoachee($scope.addedCoacheeList));
}
$q.all(promises).then(function () {
$scope.dataLoading = false;
$modalInstance.close($scope.teamList);
});
};
$scope.getJobRole = function (supportgroup) {
var idx = (_.findIndex(supportgroup, function (chr) {
return chr.isDefault === true;
}));
return supportgroup[idx].name;
};
$scope.searchPerson = function () {
$scope.showsearch = true;
};
$scope.addCoachee = function (person) {
var idx = _.findIndex($scope.deletedCoacheeList, function (item) {
return item.id === person.id;
});
if (idx > -1) {
$scope.deletedCoacheeList.splice($scope.deletedCoacheeList.indexOf(person), 1);
}
else {
$scope.addedCoacheeList.push(person);
}
$scope.teamList.push(person);
};
$scope.removeCoachee = function (person) {
var idx = _.findIndex($scope.addedCoacheeList, function (item) {
return item.id === person.id;
});
if (idx > -1) {
$scope.addedCoacheeList.splice(idx, 1);
}
else {
$scope.deletedCoacheeList.push(person);
}
var index = $scope.teamList.indexOf(person);
if (index > -1) {
$scope.teamList.splice(index, 1);
}
};
$scope.getList = function (term) {
return knowledgeTeamModel.getLists(term, $scope.searchCompany).then(function (result) {
if ($scope.teamList) {
for (var i = 0; i < $scope.teamList.length; i++) {
_.remove(result, { id: $scope.teamList[i].id });
}
}
return result;
});
};
function init() {
$scope.dataLoading = false;
$scope.teamList = angular.copy(knowledgeTeamModel.coachTeamList) || [];
$scope.state.loadingCompanies = true;
var userDataPromise = userModel.getFullCurrentUserData();
var operatingCompanyPromise = userModel.getOperatingCompanies();
$q.all([userDataPromise, operatingCompanyPromise]).then(function (data) {
$scope.userData = userModel.userFullData;
$scope.companies = data[1].companies;
$scope.searchCompany = _.find($scope.companies, function (company) {
if ($scope.userData.company.name === company.name) {
return true;
}
return false;
});
$scope.state.loadingCompanies = false;
});
}
init();
}]);
})();