unserver-unify
Version:
161 lines (157 loc) • 6.21 kB
JavaScript
angular.module('bamboo.mystudy').controller("bookMarkListCtrl", function($scope, $stateParams, ApiService, loginService) {
//$scope.fav;
var self = this;
self.cid = $stateParams.cid;
console.log(self.cid);
this.favourites = [];
this.favCourseList = [];
this.subdomain = loginService.subDomain;
switch (self.subdomain) {
case 'bamboo':
self.TYPE = 'course';
break;
case 'market':
self.TYPE = 'courseinfo';
break;
default:
self.TYPE = 'course';
}
loadFavourites();
function loadFavourites() {
loginService.getMyProfile(true).then(function(result) {
self.favourites = result.favourites;
if(self.subdomain == 'bamboo'){
loadFavCourseList();
}else{
loadFavCourseListForMarket();
}
}, function(res) {
console.log("error:" + res);
});
};
function loadFavCourseList() {
angular.forEach(self.favourites, function(val, idx) {
if (val.type == self.TYPE) {
ApiService.get('/course/' + val.id).then(function(result) {
if (result.data.success) {
var course = result.data.data;
course.coursePhotoUrl = ApiService.SHOST + '/lcourse/' + course._id + "/" + course.photo;
course.url = 'index.courses.course({cid:"'+ course._id +'",cs:'+ApiService.getCheckSum(course._id)+'})';
console.log(course);
self.favCourseList.push(course);
}
}, function(error) {
console.log(error);
});
}
});
};
function loadFavCourseListForMarket() {
angular.forEach(self.favourites, function(val, idx) {
var info = {
action: "getcourseinfo",
id: val.id,
}
//console.log(info);
ApiService.post("/market", info).then(function(result) {
if (result.data.success) {
console.log(result.data.data);
self.item = result.data.data.item;
self.course = result.data.data.course;
if (self.course) {
self._id = self.course._id;
}
if(self.item.type == 'bamboo'){
self.item.coursePhotoUrl = ApiService.SHOST + '/lcourse/' + self._id + "/" + self.item.photo;
}else{
self.item.coursePhotoUrl = self.item.photo;
}
if(!self.item.update) self.item.update = new Date();
console.log(self.course);
//for not bamboo
$scope.advinfo = self.item.advInfo || {};
$scope.advinfo.overview = self.item.description || $scope.advinfo.overview;
//console.log($scope.advinfo);
if (self.item.type == 'bamboo') {
if (self.course.infoOnlyFlag) {
//self.item.url = "//" + self.item.schoolkey + "." + ApiService.BASEDOMAIN + "/#/courselist//infoonly/" + self.item.id;
self.item.url = 'index.courseinfos.landing({cid:"'+self.item._id+'"})';
} else {
//self.item.url = "//" + self.item.schoolkey + "." + ApiService.BASEDOMAIN + "/#/courselist//info/" + self.item.id;
self.item.url = 'index.courseinfos.contentlanding({cid:"'+self.item._id+'"})';
}
} else {
//self.item.url = self.item.url;
self.item.url = 'index.courseinfos.landing({cid:"'+self.item._id+'"})';
}
if(val.type == self.TYPE){
self.favCourseList.push(self.item);
}
}
});
});
};
this.addToFav = function() {
$scope.fav = true;
var object = {
type: self.TYPE,
id: self.cid
};
var info = {
action: "addfavourite",
object: object
};
ApiService.post("/user", info).then(function(result) {
console.log(result);
if (result.data.success) {
loginService.getMyProfile(true).then(function(result) {
// console.log("-- need to reload ---");
console.log(loginService.user);
console.log(result);
});
}
});
};
this.deleteFromFav = function(course) {
$scope.fav = false;
console.log(course);
if(self.subdomain == 'bamboo') {
deleteFav(course._id, self.TYPE);
}else{
deleteFav(course._id, self.TYPE);
}
var index = self.favCourseList.indexOf(course);
if (index > -1) self.favCourseList.splice(index, 1);
};
function deleteFav(id, type) {
console.log(id, type);
loginService.getMyProfile().then(function(_result) {
// console.log("--- return ---");
var favourites = _result.favourites;
console.log(favourites);
var index = -1;
for (var i = 0; i < favourites.length; i++) {
var item = favourites[i];
if (item.type == type && item.id == id) {
index = i;
break;
}
}
if (index > -1) {
var info = {
action: 'delfavourite',
index: index,
}
console.log(info);
ApiService.post("/user", info).then(function(result) {
console.log(result);
if (result.data.success) {
loginService.getMyProfile(true).then(function(_res) {
console.log(_res);
})
}
});
}
});
};
});