UNPKG

unserver-unify

Version:

225 lines (220 loc) 7.64 kB
'use strict'; 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(); });