UNPKG

unserver-unify

Version:

246 lines (236 loc) 6.88 kB
angular.module('bamboo.job').controller('JobListCtrl', function($scope, ApiService, $state, loginService, $rootScope, fullWidthService, $localStorage, $timeout) { var self = this; console.log("---- JobListCtrl -----"); this.defaultPhoto ="assets/images/jobs.png"; this.schoolurl = $scope.schoolUrl = ApiService.SHOST + "/public/" + ApiService.RES + "/school/" + ApiService.gid + "/"; this.photoUrl = ApiService.SHOST + '/job/'; this.items = []; this.itemNumber = 6; this.page = 0; this.currentPage=1; this.user = loginService.user; this.category; this.selected = false; //this.projectcategory = ApiService.projectcategory; //this.projectkeys = ApiService.school.projectkeys; //console.log(this.projectcategory); //console.log(this.projectkeys); this.q; function getJobCategory() { if (loginService.school.jobCategoryDoc) { ApiService.get('/schooldoc/' + loginService.school.jobCategoryDoc).then(function(result) { console.log(result); if (result.data.success) { var content = result.data.data.content || {}; var arrays = result.data.data.arrays || {}; self.projectcategory = content; self.projectkeys = arrays; console.log(self.projectcategory); console.log(self.projectkeys); generateCategoryList(); } }) }else{ getitems(); } } getJobCategory(); this.fullSearch={}; $rootScope.fullwidthflag = true; $scope.$on("$destroy", function() { console.log('-- destroy --'); fullWidthService.listen(); }); $scope.setting = { pageSize: self.itemNumber, currentPage: (self.page + 1), }; this.searchFull=function(){ $localStorage.jobSearch = self.fullSearch; console.log($localStorage.jobSearch); $state.go('index.job.search'); } this.search = function(tosearch) { searchmethod = { name: tosearch }; sortmethod = null; self.filtersearch=null; getitems(); }; this.stateList=[ "Selangor","Kuala Lumpur","Sarawak","Johor","Pulau Pinang","Sabah","Perak","Pahang","Negeri Sembilan","Kedah","Melaka","Terengganu","Kelantan","Labuan","Perlis","Malaysia" ] var sortmethod; var searchmethod; this.filtersearch; var currentcat=null; function getitems(cat) { self.listReady = false; var info = { start: (self.currentPage - 1)*self.itemNumber, limit: self.itemNumber, action: "getvalidjobs", }; currentcat=cat; if (cat) { console.log(info.search); if (!info.search) { info.search = {}; } info.search.category = cat; } if (sortmethod) { info.sort = sortmethod; } if (searchmethod) { info.search = searchmethod; } if(self.filtersearch){ info.filtersearch = self.filtersearch; } console.log(info); ApiService.post("/job", info).then(function(result) { console.log(result); if (result.data.success) { // console.log(result.data.data.items); self.items = result.data.data.items angular.forEach(self.items,function(item){ var typestr; if(item.fulltime){ if(!typestr){ typestr='Full Time'; }else{ typestr+=', Full Time'; } } if(item.parttime){ if(!typestr){ typestr='Part Time'; }else{ typestr+=', Part Time'; } } if(item.contract){ if(!typestr){ typestr='Contract'; }else{ typestr+=', Contract'; } } item.typestr=typestr; }); $timeout(function(){ self.listReady = true; },500); console.log(self.items) self.catCount=result.data.data.counter; if(!self.totalCount||self.totalCount<result.data.data.counter){ self.totalCount = result.data.data.counter; } } }); }; function getArray(obj, array, level, parent) { if ((typeof obj) === "object") { for (var key in obj) { var fullkey; if (parent == '') { fullkey = key; } else { fullkey = parent + "," + key; } var _i = { key: fullkey, value: level, title: key, items: [], }; array.push(_i); var info = obj[key]; if (typeof info === "object") { getArray(info, _i.items, level + 1, fullkey); } } } } this.pageChanged=function(page){ self.currentPage=page; getitems(currentcat); } function generateCategoryList() { var catList = []; console.log(self.projectcategory); getArray(self.projectcategory, catList, 0, ''); console.log(catList); if (!self.projectkeys) { $scope.catitems = catList; } else { var keyindex = {}; var results = []; angular.forEach(catList, function(val, index) { var key = val.title; keyindex[key] = val; }) angular.forEach(self.projectkeys, function(key, index) { if (keyindex[key]) { results.push(keyindex[key]); } }) angular.forEach(keyindex, function(val, key) { var found = false; for (var i = 0; i < results.length; i++) { var record = results[i].title; if (record == key) { found = true; break; } } if (!found) { results.push(val); } }) $scope.catitems = results; console.log($scope.catitems); } getlateststatus(); getitems(); } function getlateststatus() { var info={ action:"getCategoryNumber", } console.log(info); ApiService.post("/job", info).then(function(result) { console.log(result); if (result.data.success) { console.log(result.data); var _totalCoursesCountUnderCat = 0; for (var i = 0; i < $scope.catitems.length; i++) { var catitem = $scope.catitems[i]; var key = catitem.key; if (result.data.data[key]) { catitem.counter = result.data.data[key]; } } } }); } this.list = function(key) { console.log(key); this.option = key; getitems(key); } this.get = function(flag, reverse) { console.log(flag, reverse); self.page = 1; sortmethod = { predicate: flag, reverse: reverse }; self.q = null; searchmethod = null; self.filtersearch=null; getitems(); }; });