unserver-unify
Version:
272 lines (268 loc) • 7.67 kB
JavaScript
;
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 = '';
}
});