UNPKG

unserver-unify

Version:

161 lines (157 loc) 6.21 kB
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); }) } }); } }); }; });