UNPKG

unserver-unify

Version:

272 lines (268 loc) 7.67 kB
'use strict'; angular.module('bamboo.course').controller('CourseinfosCtrl', function($scope, $rootScope, loginService, ApiService, deviceDetector, fullWidthService) { var self = this; var colorarray = ['panel-grey', 'panel-red', 'panel-blue', 'panel-sea', 'panel-green', 'panel-orange']; this.pageSize = 9; self.currency = (loginService.school.currency&&loginService.school.currency.sign)?loginService.school.currency.sign:'$'; this.toggledrop = function() { if ($scope.dropdown) { $scope.dropdown = false; } else { $scope.dropdown = true; } } if (loginService.subDomain == 'gsx') { $rootScope.fullwidthflag = true; } $scope.$on("$destroy", function() { console.log('-- destroy --'); fullWidthService.listen(); }); self.showMobileSid = false; //init the var to show/hide sidebar for mobile view self.toggleSideBar = function() { self.showMobileSid = !self.showMobileSid; } this.picUrl = ApiService.SHOST + "/cfcourses/"; this.defaultCoursePhoto = ApiService.SHOST + "/public/images/videos.png"; var page = 1; var option; this.sortmethod = this.tab || "visitercounter"; this.pageChanged = function(newPage) { page = newPage; getInfo(); }; this.nextPage = function() { page++; getInfo(); } function getInfo() { var info = { action: "getenablecourses", start: (page - 1) * (self.pageSize || 9), limit: self.pageSize || 9, search: searchmethod, }; console.log(info); if (self.option) { // info.search = { // category: self.option, // } if(info.search ){ angular.extend(info.search,{category: self.option}); }else{ info.search = { category: self.option, } } } console.log(info); ApiService.post('/cfcourse', info).then(function(result) { console.log(result.data.data); self.courses = result.data.data.items; //$scope.displayCourses =[].concat($scope.courses); $scope.totalCount = result.data.data.counter; angular.forEach(self.courses, function(item, index) { if (item.photo) { item.photourl = self.picUrl + item.photo; } else { item.photourl = self.defaultCoursePhoto; } if (item.end) { var end = new Date(item.end); var now = new Date(); console.info(end.getTime(), now.getTime()); var dayleft = Math.floor((end.getTime() - now.getTime()) / (24 * 60 * 60 * 1000)); item.daysleft = dayleft > 0 ? dayleft : 0; } }) }); } getInfo(); this.list = function(key, title) { console.log(key, title); self.courses = []; self.option = key; page = 1; getInfo(); }; function getlateststatus() { ApiService.get("/cfcoursescatnumber").then(function(result) { // console.log(result); if (result.data.success) { var _totalCoursesCountUnderCat = 0; for (var i = 0; i < $scope.catitems.length; i++) { var catitem = $scope.catitems[i]; var key = catitem.key; //console.log(result.data.data[key]); //console.log(groupType); if (result.data.data[key]) { catitem.counter = result.data.data[key]; _totalCoursesCountUnderCat += (catitem.counter || 0); } } if (self.totalCoursesCountUnderCat < _totalCoursesCountUnderCat) { self.totalCoursesCountUnderCat = _totalCoursesCountUnderCat; } } }); } 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.category = ApiService.category; this.categorykeys = ApiService.school.categorykeys; function generateCategoryList() { var catList = []; getArray(self.category, catList, 0, ''); console.log(catList); if (!self.categorykeys) { $scope.catitems = catList; } else { var keyindex = {}; var results = []; angular.forEach(catList, function(val, index) { var key = val.title; keyindex[key] = val; }) angular.forEach(self.categorykeys, 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(); } generateCategoryList(); var searchmethod; this.getHotestCourses = function() { page = 1; self.clrCoursesSearchName(); // clear name search box self.sortmethod = "visitercounter"; searchmethod = { visitercounter: { $gte: 100 }, } getInfo(); } this.getStarCourses = function() { page = 1; self.clrCoursesSearchName(); // clear name search box self.sortmethod = "star"; searchmethod = { star: true, } getInfo(); } this.getGoodCourses = function() { page = 1; self.clrCoursesSearchName(); // clear name search box self.sortmethod = "goodC"; searchmethod = { goodC: true, } getInfo(); } this.getPassCourses = function() { page = 1; self.clrCoursesSearchName(); // clear name search box self.sortmethod = "passC"; searchmethod = { passC: true, } getInfo(); } this.getNominationCourses = function() { page = 1; self.clrCoursesSearchName(); // clear name search box self.sortmethod = "nominationC"; searchmethod = { nominationC: true, } getInfo(); } this.getNewCourses = function() { page = 1; self.clrCoursesSearchName(); // clear name search box // console.log("getNewCourses"); self.sortmethod = "update"; var weekago = new Date(); weekago.setDate(weekago.getDate() - 30); searchmethod = { update: { $gte: weekago }, } getInfo(); } this.getPositionCourses = function() { page = 1; self.clrCoursesSearchName(); // clear name search box // console.log("getNewCourses"); self.sortmethod = "position"; searchmethod = { position: { $gte: 0 } } getInfo(); } this.getTopCourses = function() { page = 1; self.clrCoursesSearchName(); // clear name search box // console.log("getNewCourses"); self.sortmethod = "top"; searchmethod = { top: true, } getInfo(); } this.searchCourseByName = function(q) { console.log(q); searchmethod = { searchname: q }; if (self.mobileFlag) { self.setting.items = []; } getInfo(); }; this.clrCoursesSearchName = function() { self.q = ''; } });