unserver-unify
Version:
225 lines (220 loc) • 7.64 kB
JavaScript
;
angular.module('bamboo.comadmin').controller('CompanyJobRecordsCtrl', function($rootScope, $scope, $state, ApiService, $stateParams, loginService, CommonService, $uibModal, deviceDetector) {
$scope.items = [];
this.itemNumber = 10;
var self = this;
this.id = $stateParams.jid;
var eduReqLevel = {
primary: 1,
secondary: 2,
diploma: 3,
degree: 4,
master: 5,
phd: 6
};
var eduAppLevel = {
Primary: 1,
Secondary: 2,
ITE: 3,
Diploma: 3,
Bachelor: 4,
Master: 5,
Phd: 6,
}
function getClassList(){
var info = {
limit: 50,
action: 'getclasses',
};
ApiService.post("/classes", info).then(function(result) {
if(result.data.success){
console.log(result.data.data);
self.classes=result.data.data.items;
}
});
}
getClassList();
this.contentModelPicUrl = ApiService.SHOST + '/job/' + this.id + "/";
this.resumePath = ApiService.SHOST + "/resume/";
this.RoundStatus = ['Supported', 'KIV', 'Not Supported'];
var firstTime = true;
this.getitems = function(tableState) {
if (firstTime) {
console.log(CommonService.recodTableState);
if (CommonService.recodTableState) {
tableState.pagination = CommonService.recodTableState.pagination;
tableState.sort = CommonService.recodTableState.sort;
tableState.search = CommonService.recodTableState.search;
console.log(tableState.search);
if(tableState.search.predicateObject&&tableState.search.predicateObject.classId){
self.classId={
_id:tableState.search.predicateObject.classId
}
}
}
firstTime = false;
}
self.stState = tableState;
var limit = tableState.pagination.number;
var start = tableState.pagination.start;
var search = tableState.search.predicateObject;
var info = {
start: start,
limit: limit,
sort: tableState.sort,
search: search,
action: "getapplications",
jid: self.id,
};
CommonService.recodTableState = tableState;
console.log(info);
ApiService.post('/job', info).then(function(result) {
if (result.data.success) {
self.selected = {};
console.log(self.job);
// console.log(result.data.data);
console.log();
var currentDay = new Date();
$scope.displayedItems = result.data.data.items;
var yearFactor = 0;
if (self.job.years) {
yearFactor = 20;
}
var eduFactor = 0;
if (self.job.educations && self.job.educations.length) {
eduFactor = 30;
}
var skillFactor = 0;
if (self.job.skillSets && Object.keys(self.job.skillSets).length) {
skillFactor = 100 - eduFactor - yearFactor;
}
var totalFactor = eduFactor + yearFactor + skillFactor;
angular.forEach($scope.displayedItems, function(item) {
// console.log(item);
if (item.user) {
item.avatar_url = CommonService.getAvatarSrc(item.user);
}
var rate = 0;
if (yearFactor && item.resume && item.resume.years) {
var yrate = item.resume.years * yearFactor / self.job.years;
if (yrate > yearFactor) {
yrate = yearFactor;
}
rate += yrate;
console.log('year', yrate, self.job.years, item.resume.years);
}
if (eduFactor && item.resume && item.resume.education) {
var reqLevel = 6;
for (var i = 0; i < self.job.educations; i++) {
var tlevel = 6;
if (eduReqLevel[self.job.educations[i]]) {
tlevel = eduReqLevel[self.job.educations[i]]
}
if (reqLevel > tlevel) {
reqLevel = tlevel;
}
}
var userELevel = eduAppLevel[item.resume.education] || 0;
var erate = userELevel * eduFactor / 6;
if (erate > eduFactor) {
erate = eduFactor;
}
rate += erate;
console.log('education', erate, item.resume.education, self.job.educations);
}
if (skillFactor && item.skillSets && Object.keys(item.skillSets).length) {
var srates = 0;
var counter = 0;
for (var key in self.job.skillSets) {
var required = self.job.skillSets[key] || 1;
var val = item.skillSets[key] || 0;
var krate = val / required;
if (krate > 1) {
krate = 1;
}
srates += krate;
counter++;
}
var tsrates = skillFactor * srates / counter;
rate += tsrates;
console.log('skillSets', tsrates, self.job.skillSets, item.skillSets);
}
if (!totalFactor) {
rate = 100;
} else {
rate = rate * 100 / totalFactor;
}
item.rate = rate;
// console.log(delta);
})
console.log($scope.displayedItems);
$scope.total = result.data.data.counter;
tableState.pagination.numberOfPages = Math.ceil(result.data.data.counter / limit);
} else {
var error = result.data.error || '' + result.data.info || '';
CommonService.showNoBlockErr("Error : " + error);
}
});
}
this.evaluate=function(uid){
$uibModal.open({
templateUrl: (deviceDetector.isMobile() && !deviceDetector.isTablet())?'app/comadmin/mbl-evaluationselect-dlg.html':'app/comadmin/evaluationselect-dlg.html',
controller: 'EvaluationSelectDlgCtrl',
backdrop: 'static',
size: 'lg',
controllerAs: 'ctrl',
resolve: {
groupFlag: false,
}
}).result.then(function(item) {
console.log(item);
$state.go('.evaluate',{uid:uid,eid:item._id})
})
}
this.groupEvaluate = function(uid) {
$uibModal.open({
templateUrl: (deviceDetector.isMobile() && !deviceDetector.isTablet())?'app/comadmin/mbl-evaluationselect-dlg.html':'app/comadmin/evaluationselect-dlg.html',
controller: 'EvaluationSelectDlgCtrl',
backdrop: 'static',
size: 'lg',
controllerAs: 'ctrl',
resolve: {
groupFlag: true,
}
}).result.then(function(form) {
console.log(form);
$state.go('.groupevaluate', {
gid: self.classId._id,
eid: form._id,
});
// $uibModal.open({
// templateUrl: (deviceDetector.isMobile() && !deviceDetector.isTablet())?'app/comadmin/mbl-classselect-dlg.html':'app/comadmin/classselect-dlg.html',
// controller: 'ClassSelectDlgCtrl',
// controllerAs: 'ctrl',
// backdrop: 'static',
// size: 'lg',
// resolve: {
// setting: function() {
// return {};
// }
// }
// }).result.then(function(_class) {
// console.log(_class);
// $state.go('.groupevaluate', {
// gid: _class._id,eid:form._id,
// })
// // self.class = item;
// });
})
}
function getInfo() {
ApiService.get('/job/' + self.id).then(function(result) {
if (result.data.success) {
self.job = result.data.data;
console.log(self.job);
$rootScope.jobtitle = self.job.name;
}
});
}
getInfo();
});