diff --git a/app/api/mobile/apis/activities.rb b/app/api/mobile/apis/activities.rb index 661925012..b4fb90ea7 100644 --- a/app/api/mobile/apis/activities.rb +++ b/app/api/mobile/apis/activities.rb @@ -10,30 +10,44 @@ module Mobile params do requires :page, type: Integer requires :token, type: String + requires :container_type, type: String end post do authenticate! user = current_user - shield_project_ids = ShieldActivity.select("shield_id").where("container_type='User' and container_id=#{user.id} and shield_type='Project'").map(&:shield_id) - shield_course_ids = ShieldActivity.select("shield_id").where("container_type='User' and container_id=#{user.id} and shield_type='Course'").map(&:shield_id) + container_type = params[:container_type] ? params[:container_type] : "All" + + if container_type == "All" || container_type == "Project" + shield_project_ids = ShieldActivity.select("shield_id").where("container_type='User' and container_id=#{user.id} and shield_type='Project'").map(&:shield_id) + user_project_ids = (user.projects.where("status = 1").map{|project| project.id}-shield_project_ids).empty? ? "(-1)" : "(" + (user.projects.where("status = 1").map{|project| project.id}-shield_project_ids).join(",") + ")" + project_types = "('Message','Issue','Project')" + end + + if container_type == "All" || container_type == "Course" + shield_course_ids = ShieldActivity.select("shield_id").where("container_type='User' and container_id=#{user.id} and shield_type='Course'").map(&:shield_id) + user_course_ids = (user.courses.where("is_delete = 0").map{|course| course.id}-shield_course_ids).empty? ? "(-1)" : "(" + (user.courses.where("is_delete = 0").map{|course| course.id}-shield_course_ids).join(",") + ")" + course_types = "('Message','News','HomeworkCommon','Poll','Course')" + end + page = params[:page] ? params[:page] : 0 - user_project_ids = (user.projects.where("status = 1").map{|project| project.id}-shield_project_ids).empty? ? "(-1)" : "(" + (user.projects.where("status = 1").map{|project| project.id}-shield_project_ids).join(",") + ")" - user_course_ids = (user.courses.where("is_delete = 0").map{|course| course.id}-shield_course_ids).empty? ? "(-1)" : "(" + (user.courses.where("is_delete = 0").map{|course| course.id}-shield_course_ids).join(",") + ")" - course_types = "('Message','News','HomeworkCommon','Poll','Course')" - project_types = "('Message','Issue','Project')" principal_types = "JournalsForMessage" watched_user_ids = User.watched_by(user.id).count == 0 ? " " : ("," + User.watched_by(user.id).map{|u| u.id.to_s }.join(',')) user_ids = "(" + user.id.to_s + watched_user_ids + ")" watched_user_blog_ids = Blog.select("id").where("author_id in #{user_ids}").count == 0 ? " " :Blog.select("id").where("author_id in #{user_ids}").map { |blog| blog.id}.join(",") blog_ids = "(" + watched_user_blog_ids + ")" - activities = UserActivity.where("(container_type = 'Project' and container_id in #{user_project_ids} and act_type in #{project_types})" + - "or (container_type = 'Course' and container_id in #{user_course_ids} and act_type in #{course_types}) "+ - "or (container_type = 'Principal' and act_type= '#{principal_types}' and container_id = #{user.id}) " + - "or (container_type = 'Blog' and act_type= 'BlogComment' and container_id in #{blog_ids})").order('updated_at desc') - + if container_type == "Course" + activities = UserActivity.where("(container_type = 'Course' and container_id in #{user_course_ids} and act_type in #{course_types})").order('updated_at desc') + elsif container_type == "Project" + activities = UserActivity.where("(container_type = 'Project' and container_id in #{user_project_ids} and act_type in #{project_types})").order('updated_at desc') + else + activities = UserActivity.where("(container_type = 'Project' and container_id in #{user_project_ids} and act_type in #{project_types})" + + "or (container_type = 'Course' and container_id in #{user_course_ids} and act_type in #{course_types}) "+ + "or (container_type = 'Principal' and act_type= '#{principal_types}' and container_id = #{user.id}) " + + "or (container_type = 'Blog' and act_type= 'BlogComment' and container_id in #{blog_ids})").order('updated_at desc') + end all_count = activities.count activities = activities.limit(10).offset(page * 10) count = activities.count @@ -42,6 +56,7 @@ module Mobile present :count, count present :page, page present :status, 0 + present :container_type, container_type end end end diff --git a/app/services/syllabuses_service.rb b/app/services/syllabuses_service.rb index 9b060697c..530c550ed 100644 --- a/app/services/syllabuses_service.rb +++ b/app/services/syllabuses_service.rb @@ -14,6 +14,10 @@ class SyllabusesService courses.each do |c| other.courses << c[:course] unless c[:course].syllabus end + + user.syllabuses.each do |syllabus| + syllabus.courses = syllabus.courses.not_deleted + end user.syllabuses.to_a << other end @@ -45,6 +49,7 @@ class SyllabusesService c.tea_id = user.id c.syllabus_id = sy.id c.update_default_value + c.is_public = 0 c.save! after_create_course(c, user) end diff --git a/public/assets/wechat/activities.html b/public/assets/wechat/activities.html index a51a0f5f0..037ef8277 100644 --- a/public/assets/wechat/activities.html +++ b/public/assets/wechat/activities.html @@ -6,14 +6,19 @@
我的动态
+ + + + +
- 所有动态 - 课程动态 - 项目动态 + {{menu}}
-
-
+
+
+ +
@@ -140,7 +145,7 @@
-
+
@@ -230,7 +235,7 @@
-
+
@@ -268,7 +273,7 @@
-
+
@@ -306,10 +311,242 @@
+
+
更多
+
+
+ +
+
+
+
+
+
+
+
+
+ +
{{act.latest_update}}
+
+ +
+
+ 迟交扣分:{{act.homework_common_detail.late_penalty}}分 匿评开启时间:{{act.homework_common_detail.evaluation_start}}
+ 缺评扣分:{{act.homework_common_detail.absence_penalty}}分/作品 匿评关闭时间:{{act.homework_common_detail.evaluation_end}} +
+
+
+ +
+
+
{{act.praise_count}}
+
{{act.praise_count}}
+
+ +
+
+
+
+
+ +
+
+
+
+
+
+ +
{{act.latest_update}}
+
+ +
+
+
+
+
+ +
+
+
{{act.praise_count}}
+
{{act.praise_count}}
+
+ +
+
+
+
+
+ +
+
+
+
+
+
+ +
{{act.latest_update}}
+
+ +
+
+
+ +
+
+ +
+
+
{{act.praise_count}}
+
{{act.praise_count}}
+
+ +
+
+
+
+
+ + +
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
更多
+
+
+ +
+
+
+
+
+
+
+
+
+ +
{{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}}
+
+ +
+
+
+
+
+ + +
+
+
+
+
+
+ +
{{act.latest_update}}
+
+ +
+
+
+
+
+ +
+
+
{{act.praise_count}}
+
{{act.praise_count}}
+
+ +
+
+
+
+
-
-
更多
+
+
+
+
+
+ + +
+
+
+
+
+
+
+
+
更多
+
+
diff --git a/public/assets/wechat/blog_detail.html b/public/assets/wechat/blog_detail.html index 762bd090e..c77842e4b 100644 --- a/public/assets/wechat/blog_detail.html +++ b/public/assets/wechat/blog_detail.html @@ -3,47 +3,64 @@
-
+
-
{{blog.title}}
-
{{blog.user.realname}}发表博客
+ +
+
+
{{blog.title}}
+
博客{{blog.created_at}}
+
- {{blog.created_at}} +
+
+
{{blog.praise_count}}
+
{{blog.praise_count}}
+
+
-
-
回复 ({{blog.comment_count}})
-
已赞 ({{blog.praise_count}})
-
赞 ({{blog.praise_count}})
-
-
+ +
+
-
-
- -
-
{{journal.lasted_comment}}
-
回复
+
+ +
{{journal.lasted_comment}}
+
+
+
-
+ +
-
- + + + +
- - -
+
\ No newline at end of file diff --git a/public/assets/wechat/class_list.html b/public/assets/wechat/class_list.html index 919eb1364..7c0af4a1a 100644 --- a/public/assets/wechat/class_list.html +++ b/public/assets/wechat/class_list.html @@ -3,8 +3,8 @@
课程列表
-
{{syllabus.title}}
-
    +
    {{syllabus.title}}
    +
    • diff --git a/public/assets/wechat/course_discussion.html b/public/assets/wechat/course_discussion.html index 41aaa3355..5bfb462a3 100644 --- a/public/assets/wechat/course_discussion.html +++ b/public/assets/wechat/course_discussion.html @@ -6,19 +6,15 @@
      -
      {{discussion.subject}}
      - - - - - - - -
      发布者:{{discussion.user.realname}}
      来   源:{{discussion.course_project_name}}  |  班级问答区
      -
      +
      +
      -
      {{discussion.subject}}
      -
      {{discussion.course_project_name}}-课程问答区{{discussion.created_on}}
      +
      {{discussion.subject}}
      +
      {{discussion.course_project_name}} - 课程问答区{{discussion.created_on}}
      @@ -33,7 +29,7 @@
      -
      +
      diff --git a/public/assets/wechat/course_notice.html b/public/assets/wechat/course_notice.html index 9a2dd3575..d48dbd136 100644 --- a/public/assets/wechat/course_notice.html +++ b/public/assets/wechat/course_notice.html @@ -13,7 +13,7 @@
      {{news.title}}
      -
      {{news.course_name}}-课程通知{{news.created_on}}
      +
      {{news.course_name}} - 课程通知{{news.created_on}}
      diff --git a/public/assets/wechat/homework_detail.html b/public/assets/wechat/homework_detail.html index 387b69867..b156a0e32 100644 --- a/public/assets/wechat/homework_detail.html +++ b/public/assets/wechat/homework_detail.html @@ -3,67 +3,66 @@
      -
      +
      -
      {{homework.name}}
      - - - - - - - - - - - - -
      发布者: - {{homework.author.realname}} - {{homework.author.nickname}}
      来   源:{{homework.course_name}}  |  课程作业
      类   别:普通作业 - 编程作业 - 分组作业 -
      +
      + +
      +
      {{homework.name}}
      +
      {{homework.course_name}} - 普通作业编程作业分组作业{{homework.publish_time}}
      - 迟交扣分:{{homework.late_penalty}}分
      - 缺评扣分:{{homework.absence_penalty}}分/作品
      - 匿评开启时间:{{homework.evaluation_start}}
      + 迟交扣分:{{homework.late_penalty}}分 + 缺评扣分:{{homework.absence_penalty}}分/作品 + 匿评开启时间:{{homework.evaluation_start}} 匿评关闭时间:{{homework.evaluation_end}}
      - {{homework.publish_time}} +
      +
      +
      {{homework.praise_count}}
      +
      {{homework.praise_count}}
      +
      +
      -
      -
      回复 ({{homework.whomework_journal_count}})
      -
      已赞 ({{homework.praise_count}})
      -
      赞 ({{homework.praise_count}})
      -
      -
      -
      -
      -
      - -
      -
      {{journal.lasted_comment}}
      -
      回复
      + +
      +
      +
      +
      + +
      {{journal.lasted_comment}}
      +
      +
      +
      -
      +
      -
      -
      + +
      -
      - + + + +
      - - -
      +
      \ No newline at end of file diff --git a/public/assets/wechat/issue_detail.html b/public/assets/wechat/issue_detail.html index 4fc085b7e..998cb58a6 100644 --- a/public/assets/wechat/issue_detail.html +++ b/public/assets/wechat/issue_detail.html @@ -3,57 +3,66 @@
      -
      +
      -
      {{issue.subject}}
      - - - - - - - -
      发布者:{{issue.author.realname}}
      来   源:{{issue.project_name}}  |  项目问题
      + +
      + +
      +
      {{issue.subject}}
      +
      {{issue.project_name}} - 项目问题{{issue.created_on}}
      +
      - 状   态:{{issue.issue_status}}
      - 优先级:{{issue.issue_priority}}
      - 指派给:{{issue.issue_assigned_to}}
      - 完成度:{{issue.done_ratio}}%
      + 状   态:{{issue.issue_status}} + 优先级:{{issue.issue_priority}}
      + 指派给:{{issue.issue_assigned_to}} + 完成度:{{issue.done_ratio}}%
      - {{issue.created_on}} +
      +
      +
      {{issue.praise_count}}
      +
      {{issue.praise_count}}
      +
      +
      -
      -
      回复 ({{issue.journals_count}})
      -
      已赞 ({{issue.praise_count}})
      -
      赞 ({{issue.praise_count}})
      -
      -
      -
      -
      -
      - -
      -
      {{journal.created_on}}
      -
      回复
      +
      +
      +
      +
      + +
      {{journal.created_on}}
      +
      +
      +
      -
      -
      -
      + +
      - -
      - - -
      - - -
      +
      + + + + +
      +
      +
      \ No newline at end of file diff --git a/public/assets/wechat/jour_message_detail.html b/public/assets/wechat/jour_message_detail.html index 9fd09de2c..0724e98b7 100644 --- a/public/assets/wechat/jour_message_detail.html +++ b/public/assets/wechat/jour_message_detail.html @@ -2,46 +2,63 @@
      -
      +
      -
      {{message.user.realname}}给您留言了
      -
      {{message.created_on}}
      + +
      +
      +
      留言{{message.created_on}}
      +
      -
      -
      -
      回复 ({{message.reply_count}})
      -
      已赞 ({{message.praise_count}})
      -
      赞 ({{message.praise_count}})
      +
      +
      +
      {{message.praise_count}}
      +
      {{message.praise_count}}
      +
      + +
      -
      +
      +
      -
      -
      - -
      -
      {{journal.lasted_comment}}
      -
      回复
      +
      + +
      {{journal.lasted_comment}}
      +
      +
      +
      -
      + +
      -
      - + + + +
      - - -
      +
      \ No newline at end of file diff --git a/public/assets/wechat/project_discussion.html b/public/assets/wechat/project_discussion.html index 8be12c403..1757822ab 100644 --- a/public/assets/wechat/project_discussion.html +++ b/public/assets/wechat/project_discussion.html @@ -3,51 +3,58 @@
      -
      +
      -
      {{discussion.subject}}
      - - - - - - - -
      发布者:{{discussion.user.realname}}
      来   源:{{discussion.course_project_name}}  |  项目讨论区
      +
      + +
      +
      {{discussion.subject}}
      +
      {{discussion.course_project_name}} - 项目讨论区{{discussion.created_on}}
      +
      - {{discussion.created_on}} +
      +
      +
      {{discussion.praise_count}}
      +
      {{discussion.praise_count}}
      +
      +
      -
      -
      回复 ({{discussion.replies_count}})
      -
      已赞 ({{discussion.praise_count}})
      -
      赞 ({{discussion.praise_count}})
      -
      +
      -
      +
      +
      -
      -
      - -
      -
      {{journal.lasted_comment}}
      -
      回复
      +
      + +
      {{journal.lasted_comment}}
      +
      +
      -
      +
      -
      - + + + +
      - - -
      diff --git a/public/assets/wechat/send_class_list.html b/public/assets/wechat/send_class_list.html index 4b8b8a27f..699d6c34f 100644 --- a/public/assets/wechat/send_class_list.html +++ b/public/assets/wechat/send_class_list.html @@ -3,10 +3,21 @@
      发送课程列表
      -
      未命名课程
      -
        -
      • -
      + + +
      +
      {{syllabus.title}}
      +
        +
      • +
      +
      + + + + + + +
      发送
      diff --git a/public/javascripts/wechat/controllers/activity.js b/public/javascripts/wechat/controllers/activity.js index 73bd09f26..b89c46300 100644 --- a/public/javascripts/wechat/controllers/activity.js +++ b/public/javascripts/wechat/controllers/activity.js @@ -6,6 +6,8 @@ app.controller('ActivityController', return url; }; + $scope.menus = ['所有动态', '课程动态', '项目动态']; + $scope.alertService = alertService.create(); console.log("ActivityController load"); @@ -13,33 +15,119 @@ app.controller('ActivityController', $scope.activities = rms.get("activities") || []; $scope.has_more = rms.get("has_more"); - $scope.loadActData = function(page){ + $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; + } - $scope.page = page; $http({ method: 'POST', url: apiUrl+ "activities", - data: {token: auth.token(), page: page} + data: {token: auth.token(), page: page, container_type: container_type} }).then(function successCallback(response) { if(response.data.page >0) { - $scope.activities = $scope.activities.concat(response.data.data); + 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 { - $scope.activities = response.data.data; + 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: + } } - 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); - + 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; + } + } + + $scope.currentTab = 1; + if($scope.activities.length<=0){ - $scope.loadActData(0); + $scope.loadActData(1,0); } else { $timeout(function(){ window.scrollTo(0, rms.get("yoffset")); diff --git a/public/javascripts/wechat/controllers/send_class_list.js b/public/javascripts/wechat/controllers/send_class_list.js index 07d321ba2..caca3cd6a 100644 --- a/public/javascripts/wechat/controllers/send_class_list.js +++ b/public/javascripts/wechat/controllers/send_class_list.js @@ -1,15 +1,23 @@ -app.controller('SendClassListController', ['$scope', '$http','$routeParams', 'config','auth','alertService', function($scope, $http, $routeParams, config, auth, alertService){ +app.controller('SendClassListController', ['$scope', '$http','$routeParams', 'config','auth','alertService', function($scope, $http, $routeParams, config, auth, alertService,rms){ var vm = $scope; var send_id = $routeParams.id; vm.alertService = alertService.create(); - vm.courses = []; +// vm.courses = []; + vm.syllabuses = []; var loadClassList = function () { - $http.get(config.apiUrl + "courses?token=" + auth.token() + "&per_page_count=10&page=1").then( +// $http.get(config.apiUrl + "courses?token=" + auth.token() + "&per_page_count=10&page=1").then( +// function (response) { +// console.log(response.data); +// vm.courses = response.data.data; +// } +// ); + $http.get(config.apiUrl + "syllabuses?token=" + auth.token()).then( function (response) { console.log(response.data); - vm.courses = response.data.data; + vm.syllabuses = response.data.data; + rms.save('syllabuses', vm.syllabuses); } ); }; @@ -24,11 +32,18 @@ app.controller('SendClassListController', ['$scope', '$http','$routeParams', 'co vm.sendToCourses = function(){ var course_ids = []; - for(var i in vm.courses){ - if(vm.courses[i].checked){ - course_ids.push(vm.courses[i].id); + for(var i in vm.syllabuses) { + for (var j in vm.syllabuses[i].courses) { + if (vm.syllabuses[i].courses[j].checked) { + course_ids.push(vm.syllabuses[i].courses[j].id); + } } } + + if(course_ids.length <= 0){ + vm.alertService.showMessage('提醒', '请先选择班级'); + return; + } $http.post(config.apiUrl + "resources/send", { token: auth.token(), course_ids: course_ids, send_id: send_id