"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(); }]); })();