114 lines
5.1 KiB
JavaScript
114 lines
5.1 KiB
JavaScript
"use strict";
|
|
(function () {
|
|
'use strict';
|
|
angular.module('knowledgeTeamModule')
|
|
.controller('KnowledgeManageTeamController', ['$scope', '$q', '$modalInstance', 'knowledgeTeamModel', 'userModel', 'configurationModel',
|
|
function ($scope, $q, $modalInstance, knowledgeTeamModel, userModel, configurationModel) {
|
|
$scope.showsearch = false;
|
|
$scope.deletedCoacheeList = [];
|
|
$scope.addedCoacheeList = [];
|
|
$scope.dataLoading = true;
|
|
$scope.teamList = [];
|
|
$scope.companies = [];
|
|
$scope.searchCompany = {};
|
|
$scope.showMailstopOnPersoncard = configurationModel.showMailstopOnPersoncard;
|
|
$scope.showPhoneNumOnPersonCard = configurationModel.showPhoneNumOnPersonCard;
|
|
$scope.state = {
|
|
loadingCompanies: false,
|
|
tooManyCompanies: 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;
|
|
});
|
|
};
|
|
$scope.getCompaniesByName = function (name) {
|
|
var searchPromise = userModel.getOperatingCompaniesByText(name);
|
|
return searchPromise.then(function (response) {
|
|
return { list: response.companies, exceedsChunkSize: response.exceedsChunkSize };
|
|
});
|
|
};
|
|
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.state.tooManyCompanies = data[1].exceedsChunkSize;
|
|
$scope.searchCompany = _.find($scope.companies, function (company) {
|
|
if ($scope.userData.company.name === company.name) {
|
|
return true;
|
|
}
|
|
return false;
|
|
});
|
|
$scope.state.loadingCompanies = false;
|
|
});
|
|
}
|
|
init();
|
|
}]);
|
|
})();
|