socialforge/public/javascripts/wechat/controllers/activity.js

199 lines
7.2 KiB
JavaScript

app.controller('ActivityController',
['$anchorScroll', '$location','$scope', '$http', '$timeout', 'auth', 'rms', 'common','alertService',
function($anchorScroll, $location,$scope, $http, $timeout, auth, rms, common, alertService){
$scope.replaceUrl = function(url){
return url;
};
$scope.menus = ['所有动态', '课程动态', '项目动态'];
$scope.alertService = alertService.create();
console.log("ActivityController load");
$scope.page = rms.get('page') || 0;
$scope.activities = rms.get("activities") || [];
$scope.has_more = rms.get("has_more");
$scope.course_page = rms.get('course_page') || 0;
$scope.course_activities = rms.get("course_activities") || [];
$scope.course_has_more = rms.get("course_has_more");
$scope.project_page = rms.get('project_page') || 0;
$scope.project_activities = rms.get("project_activities") || [];
$scope.project_has_more = rms.get("project_has_more");
$scope.loadActData = function(index,page){
container_type = "All";
switch(index){
case 1:
container_type = "All";
$scope.page = page;
break;
case 2:
container_type = "Course";
$scope.course_page = page;
break;
case 3:
container_type = "Project";
$scope.project_page = page;
break;
}
$http({
method: 'POST',
url: apiUrl+ "activities",
data: {token: auth.token(), page: page, container_type: container_type}
}).then(function successCallback(response) {
if(response.data.page >0) {
switch(response.data.container_type){
case "All":
$scope.activities = $scope.activities.concat(response.data.data);
break;
case "Course":
$scope.course_activities = $scope.course_activities.concat(response.data.data);
break;
case "Project":
$scope.project_activities = $scope.project_activities.concat(response.data.data);
break;
case 3:
}
} else {
switch(response.data.container_type){
case "All":
$scope.activities = response.data.data;
break;
case "Course":
$scope.course_activities = response.data.data;
break;
case "Project":
$scope.project_activities = response.data.data;
break;
case 3:
}
}
switch(response.data.container_type){
case "All":
rms.save("activities", $scope.activities);
$scope.has_more = (response.data.count + response.data.page * 10) < response.data.all_count;
rms.save('has_more', $scope.has_more);
rms.save('page', response.data.page);
break;
case "Course":
rms.save("course_activities", $scope.course_activities);
$scope.course_has_more = (response.data.count + response.data.page * 10) < response.data.all_count;
rms.save('course_has_more', $scope.course_has_more);
rms.save('course_page', response.data.page);
break;
case "Project":
rms.save("project_activities", $scope.project_activities);
$scope.project_has_more = (response.data.count + response.data.page * 10) < response.data.all_count;
rms.save('project_has_more', $scope.project_has_more);
rms.save('project_page', response.data.page);
break;
case 3:
}
console.log(response.data);
}, function errorCallback(response) {
});
};
$scope.tab = function(index){
$scope.currentTab = index;
switch(index){
//ALL
case 1:
if($scope.activities.length<=0){
$scope.loadActData(index,0);
}
break;
//Course
case 2:
if($scope.course_activities.length<=0){
$scope.loadActData(index,0);
}
break;
//Project
case 3:
if($scope.project_activities.length<=0){
$scope.loadActData(index,0);
}
break;
}
rms.save("tab_num",$scope.currentTab);
}
$scope.currentTab = rms.get('tab_num') || 1;
if($scope.activities.length<=0){
$scope.loadActData('tab_num',0);
} else {
$timeout(function(){
window.scrollTo(0, rms.get("yoffset"));
});
}
//跳到详情页
$scope.goDetail = function(type, act_id,id){
rms.save("yoffset", document.documentElement.scrollTop || document.body.scrollTop);
rms.save("activities",$scope.activities);
rms.save("course_activities",$scope.course_activities);
rms.save("project_activities",$scope.project_activities);
$location.path('/'+type+'/'+act_id);
}
$scope.addPraise = function(act){
for(var i in $scope.activities){
if($scope.activities[i].act_id == act.act_id){
$scope.activities[i].praise_count += 1;
$scope.activities[i].has_praise = true;
break;
}
}
for(var i in $scope.course_activities){
if($scope.course_activities[i].act_id == act.act_id){
$scope.course_activities[i].praise_count += 1;
$scope.course_activities[i].has_praise = true;
break;
}
}
for(var i in $scope.project_activities){
if($scope.project_activities[i].act_id == act.act_id){
$scope.project_activities[i].praise_count += 1;
$scope.project_activities[i].has_praise = true;
break;
}
}
common.addCommonPraise(act);
};
$scope.decreasePraise = function(act){
for(var i in $scope.activities){
if($scope.activities[i].act_id == act.act_id){
$scope.activities[i].praise_count -= 1;
$scope.activities[i].has_praise = false;
break;
}
}
for(var i in $scope.course_activities){
if($scope.course_activities[i].act_id == act.act_id){
$scope.course_activities[i].praise_count -= 1;
$scope.course_activities[i].has_praise = false;
break;
}
}
for(var i in $scope.project_activities){
if($scope.project_activities[i].act_id == act.act_id){
$scope.project_activities[i].praise_count -= 1;
$scope.project_activities[i].has_praise = false;
break;
}
}
common.decreaseCommonPraise(act);
};
}]);