diff --git a/app/api/mobile/apis/projects.rb b/app/api/mobile/apis/projects.rb index 181e5746b..c1ada723c 100644 --- a/app/api/mobile/apis/projects.rb +++ b/app/api/mobile/apis/projects.rb @@ -29,7 +29,7 @@ module Mobile ps = ProjectsService.new project = ps.show_project(params,current_user) - if project[:status] != 9 + if project[:status] == 9 {status:-1, message: '该项目不存在或已被删除啦' } else present :data, project, with: Mobile::Entities::Project,user: current_user @@ -40,19 +40,26 @@ module Mobile desc "获取项目动态" params do + requires :id, type: Integer requires :token, type: String - end - post 'auth' do + post 'activities' do authenticate! - auth = 0 + user = current_user - if (current_user.user_extensions && current_user.user_extensions.identity == 0 && current_user.allowed_to?(:add_course, nil, :global => true)) - auth = 1 - end + project_types = "('Message','Issue','Project')" + activities = UserActivity.where("(container_type = 'Project' and container_id = #{params[:id]} and act_type in #{project_types})").order('updated_at desc') - present :auth, auth + page = params[:page] ? params[:page] : 0 + all_count = activities.count + activities = activities.limit(10).offset(page * 10) + count = activities.count + present :data, activities, with: Mobile::Entities::Activity,user: user + present :all_count, all_count + present :count, count + present :page, page + present :status, 0 end desc "获取项目" diff --git a/public/assets/wechat/project.html b/public/assets/wechat/project.html index f9618411d..2f14b0a3d 100644 --- a/public/assets/wechat/project.html +++ b/public/assets/wechat/project.html @@ -1,60 +1,105 @@
-
邀请码
+
邀请码
{{menu}}
- - - - - - - +
+
+
+
+
+
+
+
+ +
{{act.latest_update}}
+
+ +
+
+ 状态:{{act.issue_detail.issue_status}} 优先级:{{act.issue_detail.issue_priority}}
+ 指派给:{{act.issue_detail.issue_assigned_to}} 完成度:{{act.issue_detail.done_ratio}}% +
+
+
+ +
+
+
{{act.praise_count}}
+
{{act.praise_count}}
+
+ +
+
+
+
+
- - -
-
- -
-
-
-
{{r.filename}}发送
-

暂无课件,
- 请登录Trustie网站,在PC浏览器中上传课件。

-
-
-
授课老师
+
+
+
+
+
+
+ +
{{act.latest_update}}
+
+ +
+
+
+
+
+ +
+
+
{{act.praise_count}}
+
{{act.praise_count}}
+
+ +
+
+
+
+
-
- {{teacher.name}}{{teacher.role_name|identify}} -
+
+
+
+
+
+ + +
+
+
+
+
-
我的同学
-
- {{student.name}} -
-
-
- -
-
{{r.homework_name}}发送
-

暂无作业,
- 请登录Trustie网站,在PC浏览器中上传作业。

-
- -
-
{{r.exercise_name}}发送
-

暂无小测验,
- 请登录Trustie网站,在PC浏览器中上传小测验。

+
+
更多
- -
diff --git a/public/javascripts/wechat/controllers/project.js b/public/javascripts/wechat/controllers/project.js index 5020d040b..569ea3dd3 100644 --- a/public/javascripts/wechat/controllers/project.js +++ b/public/javascripts/wechat/controllers/project.js @@ -1,64 +1,137 @@ -app.controller('ProjectController', ['$scope', 'config','$http', 'auth','$location','$routeParams','alertService','rms', function($scope, config, $http, auth, $location, $routeParams,alertService,rms){ +app.controller('ProjectController', ['$scope', 'config','$http','$timeout', 'auth','$location','$routeParams','alertService','rms','common', function($scope, config, $http,$timeout, auth, $location, $routeParams,alertService,rms,common){ + $scope.replaceUrl = function(url){ + return url; + }; var vm = $scope; var projectid = $routeParams.id; - vm.project_activities = []; - vm.project_activities_page = 0; + vm.project_activities_page = rms.get('project_activities_page') || 0; + vm.project_activities = rms.get("project_activities") || []; + vm.project_has_more = rms.get("project_has_more"); + vm.project = rms.get("project") vm.project_members = []; vm.project_members_page = 0; + vm.alertService = alertService.create(); + + //获取项目动态 + vm.getActivities = function(page){ + $http({ + method: 'POST', + url: apiUrl + "projects/activities?id=" + projectid, + data:{token:auth.token(),page:page} + }).then(function successCallback(response) { + console.log(response.data); + vm.project_activities_page = response.data.page; + if(response.data.page > 0) + { + vm.project_activities = vm.project_activities.concat(response.data.data); + } + else{ + vm.project_activities = response.data.data; + vm.project_activities_page = 0; + vm.project_has_more = (response.data.count + response.data.page * 10) < response.data.all_count; + } - vm.currentTab = 1; + }, function errorCallback(response) { + }); + } + + //跳到详情页 + vm.goDetail = function(type, act_id,id){ + rms.save("yoffset", document.documentElement.scrollTop); + rms.save("project_activities",vm.project_activities); + rms.save("project",vm.project); + $location.path('/'+type+'/'+act_id); + } + + //切换 按钮 vm.tab = function(index){ vm.currentTab = index; vm.searchText = ''; if(index == 1){ - $http.get(config.apiUrl + 'project/activities?token='+auth.token()+'&project_id='+projectid).then( - function(response) { - console.log(response.data); - vm.project_activities = response.data.data; - } - ) + vm.getActivities(0); } else if(index == 2){ - $http.get(config.apiUrl + 'project/members?token='+auth.token()+'&project_id='+projectid).then( + $http.get(config.apiUrl + 'projects/members?token='+auth.token()+'&project_id='+projectid).then( function(response) { console.log(response.data); vm.project_activities = response.data.data; } ) } + + rms.save("tab_num",$scope.currentTab); }; + //初始化TAB按钮 + var resetMenu = function(can_setting){ + if(can_setting){ + vm.menus = ["项目动态", "成员管理"]; + } else { + vm.menus = ['项目动态', "我的伙伴"]; + } - $http.get(config.apiUrl+ 'project/'+projectid+"?token="+auth.token()).then( - function(response) { - console.log(response.data); + } + if(vm.project){ + resetMenu(vm.project.can_setting); + } - if (response.data.status == 0){ - vm.project = response.data.data; - resetMenu(vm.project.can_setting); - vm.tab(1); - } - else{ - vm.alertService.showMessage('提示', response.data.message); + vm.currentTab = rms.get('tab_num'); + + // + if(!vm.currentTab){ + $http.get(config.apiUrl+ 'projects/'+projectid+"?token="+auth.token()).then( + function(response) { + console.log(response.data); + + if (response.data.status == 0){ + vm.project = response.data.data; + resetMenu(vm.project.can_setting); + vm.tab(1); + } + else{ + vm.alertService.showMessage('提示', response.data.message,function(){ + window.history.back(); + }); + + } } + ); + vm.currentTab = 1; + vm.tab(vm.currentTab); + } else { + $timeout(function(){ + window.scrollTo(0, rms.get("yoffset")); + }); + } + vm.addPraise = function(act){ + for(var i in vm.project_activities){ + if(vm.project_activities[i].act_id == act.act_id){ + vm.project_activities[i].praise_count += 1; + vm.project_activities[i].has_praise = true; + break; + } } - ); + common.addCommonPraise(act); + }; - var resetMenu = function(can_setting){ - if(can_setting){ - vm.menus = ["项目动态", "成员管理"]; - } else { - vm.menus = ['项目动态', "我的伙伴"]; + vm.decreasePraise = function(act){ + for(var i in vm.project_activities){ + if(vm.project_activities[i].act_id == act.act_id){ + vm.project_activities[i].praise_count -= 1; + vm.project_activities[i].has_praise = false; + break; + } } - } + common.decreaseCommonPraise(act); + }; }]); \ No newline at end of file