From a467338161a1426e1837fc275ef87e99986eaec7 Mon Sep 17 00:00:00 2001 From: Tim Date: Mon, 29 Aug 2016 11:32:11 +0800 Subject: [PATCH 01/38] =?UTF-8?q?iphone=E5=AE=9A=E4=BD=8Djs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/assets/wechat/blog_detail.html | 2 +- public/assets/wechat/course_discussion.html | 2 +- public/assets/wechat/course_notice.html | 2 +- public/assets/wechat/homework_detail.html | 2 +- public/assets/wechat/issue_detail.html | 2 +- public/assets/wechat/jour_message_detail.html | 2 +- public/assets/wechat/project_discussion.html | 2 +- .../wechat/directives/iphone_recognize.js | 29 +++++++++++-------- 8 files changed, 24 insertions(+), 19 deletions(-) diff --git a/public/assets/wechat/blog_detail.html b/public/assets/wechat/blog_detail.html index daeec493d..2d11b5964 100644 --- a/public/assets/wechat/blog_detail.html +++ b/public/assets/wechat/blog_detail.html @@ -25,7 +25,7 @@
{{blog.praise_count}}
{{blog.praise_count}}
-
+ diff --git a/public/assets/wechat/course_discussion.html b/public/assets/wechat/course_discussion.html index 78a3fa0b7..2395129c3 100644 --- a/public/assets/wechat/course_discussion.html +++ b/public/assets/wechat/course_discussion.html @@ -24,7 +24,7 @@
{{discussion.praise_count}}
{{discussion.praise_count}}
-
+ diff --git a/public/assets/wechat/course_notice.html b/public/assets/wechat/course_notice.html index af9f22da1..85b3a901a 100644 --- a/public/assets/wechat/course_notice.html +++ b/public/assets/wechat/course_notice.html @@ -23,7 +23,7 @@
{{news.praise_count}}
{{news.praise_count}}
-
+ diff --git a/public/assets/wechat/homework_detail.html b/public/assets/wechat/homework_detail.html index 6ead09e69..7fa8459c4 100644 --- a/public/assets/wechat/homework_detail.html +++ b/public/assets/wechat/homework_detail.html @@ -28,7 +28,7 @@
{{homework.praise_count}}
{{homework.praise_count}}
-
+ diff --git a/public/assets/wechat/issue_detail.html b/public/assets/wechat/issue_detail.html index c10d15ddb..efc7ed64d 100644 --- a/public/assets/wechat/issue_detail.html +++ b/public/assets/wechat/issue_detail.html @@ -29,7 +29,7 @@
{{issue.praise_count}}
{{issue.praise_count}}
-
+ diff --git a/public/assets/wechat/jour_message_detail.html b/public/assets/wechat/jour_message_detail.html index 41f7290e5..e2e65ca58 100644 --- a/public/assets/wechat/jour_message_detail.html +++ b/public/assets/wechat/jour_message_detail.html @@ -23,7 +23,7 @@
{{message.praise_count}}
{{message.praise_count}}
-
+ diff --git a/public/assets/wechat/project_discussion.html b/public/assets/wechat/project_discussion.html index 4557ba55f..30d464802 100644 --- a/public/assets/wechat/project_discussion.html +++ b/public/assets/wechat/project_discussion.html @@ -24,7 +24,7 @@
{{discussion.praise_count}}
{{discussion.praise_count}}
-
+ diff --git a/public/javascripts/wechat/directives/iphone_recognize.js b/public/javascripts/wechat/directives/iphone_recognize.js index 66014e71a..46d4a4292 100644 --- a/public/javascripts/wechat/directives/iphone_recognize.js +++ b/public/javascripts/wechat/directives/iphone_recognize.js @@ -7,21 +7,26 @@ app.directive('iphoneRecognize',["$timeout",function(timer){ scope: {}, link: function(scope, element){ timer(function(){ - var userAgent = navigator.userAgent; var contentHeight = $(".post-container").height(); - if (/ipad|iphone|mac/i.test(navigator.userAgent)){ - $("#postInput1").bind('focus',function(){ + var toBottom = function(){ element.css({"position":"relative","padding":"1px 0"}); - $(".post-wrapper").css("margin-bottom","0"); - $("#all_homework_reply").css("margin-bottom","0"); + $(".post-wrapper").css("marginBottom","0"); + $("#all_homework_reply").css("marginBottom","0"); window.scrollTo(0,contentHeight); - }); - $("#postInput1").bind('blur',function(){ - element.css("position","fixed"); - $(".post-wrapper").css("margin-bottom","10px"); - $("#all_homework_reply").css("margin-bottom","50px"); - }); - } + } + if (/ipad|iphone|mac/i.test(navigator.userAgent)){ + $("#postInput1").bind('focus',function(){ + toBottom(); + }); + $("#postInput1,#replyBlock").bind("click",function(){ + toBottom(); + }); + $("#postInput1").bind('blur',function(){ + element.css("position","fixed"); + $(".post-wrapper").css("marginBottom","10px"); + $("#all_homework_reply").css("marginBottom","50px"); + }); + } }) } } From e30416f6b36a902be0da06707ddb8c1aa018de3e Mon Sep 17 00:00:00 2001 From: Tim Date: Tue, 30 Aug 2016 10:49:44 +0800 Subject: [PATCH 02/38] =?UTF-8?q?=E6=89=8B=E6=9C=BA=E8=A1=A8=E6=83=85?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/javascripts/wechat/others/factory.js | 1 + 1 file changed, 1 insertion(+) diff --git a/public/javascripts/wechat/others/factory.js b/public/javascripts/wechat/others/factory.js index 6d887282b..498096c25 100644 --- a/public/javascripts/wechat/others/factory.js +++ b/public/javascripts/wechat/others/factory.js @@ -111,6 +111,7 @@ app.factory('common', ['$http', 'auth', '$routeParams','rms','config','wx','$loc } var temp = data.comment.replace(/\n/g,'
'); + temp = temp.replaceAll("[^\\u0000-\\uFFFF]", "[表情]"); var userInfo = { type: type, From 8a6ad8997302d4e081c39485fcd16ffd7b0d23e1 Mon Sep 17 00:00:00 2001 From: yuanke <249218296@qq.com> Date: Tue, 30 Aug 2016 14:08:10 +0800 Subject: [PATCH 03/38] =?UTF-8?q?issue=E6=8C=87=E5=90=91=E6=94=B9=E5=8F=98?= =?UTF-8?q?=E6=89=8D=E5=8F=91=E5=BE=AE=E4=BF=A1=E6=B6=88=E6=81=AF=EF=BC=8C?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=BE=AE=E4=BF=A1=E5=8A=A8=E6=80=81=E9=87=8C?= =?UTF-8?q?=E6=9D=A5=E6=BA=90=E9=93=BE=E6=8E=A5=EF=BC=8C@=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E5=BE=AE=E4=BF=A1=E6=B6=88=E6=81=AF=EF=BC=8C=E8=8F=9C?= =?UTF-8?q?=E5=8D=95=E5=8E=BB=E6=8E=89=E5=8A=A0=E5=85=A5=E7=8F=AD=E7=BA=A7?= =?UTF-8?q?=E5=92=8C=E9=A1=B9=E7=9B=AE=E7=AD=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/entities/activity.rb | 7 ++ app/controllers/issues_controller.rb | 6 +- app/helpers/application_helper.rb | 10 +++ app/models/at_message.rb | 85 ++++++++++++++++++- app/services/wechat_service.rb | 13 +++ config/menu.yml.production | 8 -- config/menu.yml.test | 8 -- config/wechat.yml.template | 1 + config/wechat.yml.test | 1 + public/assets/wechat/activities.html | 58 ++++++++++--- .../wechat/controllers/activity.js | 42 ++++++++- 11 files changed, 205 insertions(+), 34 deletions(-) diff --git a/app/api/mobile/entities/activity.rb b/app/api/mobile/entities/activity.rb index 95940c0c5..6f5a3db74 100644 --- a/app/api/mobile/entities/activity.rb +++ b/app/api/mobile/entities/activity.rb @@ -73,6 +73,12 @@ module Mobile elsif ac.container_type == "Blog" "发表博客" end + when :course_project_id + if ac.container_type == "Course" + ac.container_id + elsif ac.container_type == "Project" + ac.container_id + end when :activity_type_name if ac.container_type == "Course" case ac.act_type @@ -137,6 +143,7 @@ module Mobile act_expose :subject #标题 act_expose :description #描述 act_expose :latest_update #最新更新时间 + act_expose :course_project_id #课程/项目ID act_expose :course_project_name #课程/项目名字 act_expose :activity_type_name #课程问答区/项目缺陷等 expose :has_praise , if: lambda { |instance, options| options[:user] } do |instance, options| diff --git a/app/controllers/issues_controller.rb b/app/controllers/issues_controller.rb index b0c83e869..8880a4f3e 100644 --- a/app/controllers/issues_controller.rb +++ b/app/controllers/issues_controller.rb @@ -589,19 +589,19 @@ class IssuesController < ApplicationController return false end end - @issue.safe_attributes = issue_attributes senduser = User.find(params[:issue][:assigned_to_id]) - if senduser.id != User.current.id + if senduser.id != User.current.id && @issue.assigned_to_id != params[:issue][:assigned_to_id] issue_id = @issue.id issue_title = params[:issue][:subject] priority_id = params[:issue][:priority_id] - ps = ProjectsService.new ps.send_wechat_project_issue_notice senduser,@issue.project,issue_id,issue_title,priority_id end + @issue.safe_attributes = issue_attributes + @priorities = IssuePriority.active @allowed_statuses = @issue.new_statuses_allowed_to(User.current) true diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 0c0e0919e..aabacb6e0 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -3236,6 +3236,16 @@ def get_all_children result, jour result end +#获取该节点所在的帖子 +def get_root_parent comment + while comment.parent + comment = comment.parent + end + comment +end + + + #将有置顶属性的提到数组前面 def sort_by_sticky topics tmpTopics = [] diff --git a/app/models/at_message.rb b/app/models/at_message.rb index bca2c7ba4..702b16335 100644 --- a/app/models/at_message.rb +++ b/app/models/at_message.rb @@ -1,6 +1,7 @@ #coding=utf-8 class AtMessage < ActiveRecord::Base + include ApplicationHelper belongs_to :user belongs_to :sender, class_name: "User", foreign_key: "sender_id" attr_accessible :at_message, :container, :viewed, :user_id, :sender_id @@ -10,7 +11,7 @@ class AtMessage < ActiveRecord::Base has_many :message_alls, :class_name => 'MessageAll',:as =>:message, :dependent => :destroy validates :user_id, :sender_id, :at_message_id, :at_message_type, presence: true - after_create :add_user_message + after_create :add_user_message, :send_wechat_message scope :unviewed, ->(type, id){ where(at_message_type: type, at_message_id:id, viewed: false) @@ -34,6 +35,88 @@ class AtMessage < ActiveRecord::Base end end + def send_wechat_message + shield_type = "" + container_id = 0 + status = 0 + type = "" + detail_id = 0 + detail_title = "" + + if defined? at_message.notes + detail_content = strip_html at_message.notes,30 + elsif defined? at_message.content + detail_content = strip_html at_message.content,30 + end + + user = self.user + + topic = get_root_parent at_message + + case at_message_type + when "Issue" + shield_type = "Project" + container_id = at_message.project.id + type = "issue" + detail_id = topic.id + detail_title = at_message.subject + when "Journal" + + topic = get_root_parent at_message.journalized + + shield_type = "Project" + container_id = at_message.journalized.project.id + type = "issue" + detail_id = topic.id + detail_title = at_message.journalized.subject + when 'Message' + if at_message.course + shield_type = "Course" + container_id = at_message.course.id + type = "course_discussion" + detail_id = topic.id + detail_title = at_message.subject + elsif at_message.project + shield_type = "Project" + container_id = at_message.project.id + type = "project_discussion" + detail_id = topic.id + detail_title = at_message.subject + else + status = -1 + end + when 'JournalsForMessage' + if at_message.jour && at_message.jour.course + shield_type = "Course" + container_id = at_message.jour.course.id + type = "homework" + + detail_id = at_message.jour.id + detail_title = at_message.jour.name + else + type = "journal_for_message" + detail_id = topic.id + detail_title = at_message.subject + end + else + status = -1 + end + + count = 0 + + detail_title = detail_title.gsub(/RE: /, '') + + if container_id != 0 + count = ShieldWechatMessage.where("container_type='User' and container_id=#{user.id} and shield_type='#{shield_type}' and shield_id=#{container_id}").count + end + if count == 0 && status == 0 + message_title = self.sender.show_name+"@了您" + ws = WechatService.new + ws.at_notice user.id, type, detail_id, message_title, detail_title, format_time(Time.now), detail_content, "点击查看详情。",0 + end + + end + def subject case at_message_type when "Issue" diff --git a/app/services/wechat_service.rb b/app/services/wechat_service.rb index 423676983..8adc1392f 100644 --- a/app/services/wechat_service.rb +++ b/app/services/wechat_service.rb @@ -432,4 +432,17 @@ class WechatService end end + def at_notice(user_id, type, id, first, key1, key2,key3,remark="",uid=0) + uw = UserWechat.where(user_id: user_id).first + unless uw.nil? + data = three_keys_template uw.openid,Wechat.config.at_notice, type, id, first, key1, key2, key3, remark,uid + begin + req = Wechat.api.template_message_send Wechat::Message.to(uw.openid).template(data) + rescue Exception => e + Rails.logger.error "[at_notice] ===> #{e}" + end + Rails.logger.info "send over. #{req}" + end + end + end \ No newline at end of file diff --git a/config/menu.yml.production b/config/menu.yml.production index 55318e811..8929d002e 100644 --- a/config/menu.yml.production +++ b/config/menu.yml.production @@ -22,14 +22,6 @@ button: - name: "更多" sub_button: - - - type: "view" - name: "加入班级" - url: "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx8e1ab05163a28e37&redirect_uri=https://www.trustie.net/wechat/user_activities&response_type=code&scope=snsapi_base&state=join_class#wechat_redirect" - - - type: "view" - name: "加入项目" - url: "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx8e1ab05163a28e37&redirect_uri=https://www.trustie.net/wechat/user_activities&response_type=code&scope=snsapi_base&state=join_project#wechat_redirect" - type: "view" name: "历史推文" diff --git a/config/menu.yml.test b/config/menu.yml.test index 45e23aaf3..303b30c26 100644 --- a/config/menu.yml.test +++ b/config/menu.yml.test @@ -22,14 +22,6 @@ button: - name: "更多" sub_button: - - - type: "view" - name: "加入班级" - url: "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxc09454f171153c2d&redirect_uri=https://test.forge.trustie.net/wechat/user_activities&response_type=code&scope=snsapi_base&state=join_class#wechat_redirect" - - - type: "view" - name: "加入项目" - url: "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxc09454f171153c2d&redirect_uri=https://test.forge.trustie.net/wechat/user_activities&response_type=code&scope=snsapi_base&state=join_project#wechat_redirect" - type: "view" name: "历史推文" diff --git a/config/wechat.yml.template b/config/wechat.yml.template index adda8e7e8..8ca6ac237 100644 --- a/config/wechat.yml.template +++ b/config/wechat.yml.template @@ -25,6 +25,7 @@ default: &default project_review_notice: "kdb-8UlMjTc3z51Qcf8g2vY4i_nE4OGKZAucdQma_2E" join_project_notice: "TtXvy0XMIQyCgpnXHhoB8t-x0QIfy-78gAJXsGf9afg" project_issue_notice: "HP8JejOnkzmvFopTarc0l1Tp4bU9qnxzdH27x3186lI" + at_notice: "U3kqzgriCaqkPI9qX0NDQOInJ5hiwHCz6wgTsPysSx4" auto_openid_url_1: "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx8e1ab05163a28e37&redirect_uri=https://www.trustie.net/wechat/user_activities" auto_openid_url_2: "&response_type=code&scope=snsapi_base&state=" diff --git a/config/wechat.yml.test b/config/wechat.yml.test index 8c0dafc2f..12cee4751 100644 --- a/config/wechat.yml.test +++ b/config/wechat.yml.test @@ -25,6 +25,7 @@ default: &default project_review_notice: "ip192wVXTav3qchgUn9_7B6lFfTlCZjwL7A1tncTOuc" join_project_notice: "3KnMQEMUCmQWkB5JvzrpmguEwnN8bvUHUdpOTudxv_M" project_issue_notice: "HAF2aCta7BtnaOd_cotGvU4tErGWwCd9I9aiClFN7w8" + at_notice: "p4HfyZQuF8O5bP_44RbbJS30SGojLJAuZEqp34iB4JU" auto_openid_url_1: "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxc09454f171153c2d&redirect_uri=https://test.forge.trustie.net/wechat/user_activities" auto_openid_url_2: "&response_type=code&scope=snsapi_base&state=" diff --git a/public/assets/wechat/activities.html b/public/assets/wechat/activities.html index 506dcc724..2d45f4d17 100644 --- a/public/assets/wechat/activities.html +++ b/public/assets/wechat/activities.html @@ -40,7 +40,7 @@
- +
{{act.praise_count}}
@@ -75,7 +75,7 @@
- +
{{act.praise_count}}
@@ -111,7 +111,7 @@
- +
{{act.praise_count}}
@@ -147,7 +147,7 @@
- + @@ -236,7 +236,7 @@
- +
{{act.praise_count}}
@@ -272,7 +272,7 @@
- +
{{act.praise_count}}
@@ -405,7 +405,7 @@
- +
{{act.praise_count}}
@@ -440,7 +440,7 @@
- +
{{act.praise_count}}
@@ -476,7 +476,7 @@
- +
{{act.praise_count}}
@@ -492,6 +492,42 @@
+
+
+
+
+
+
+ +
{{act.latest_update}}
+
+ +
+
+
+ +
+
+ + + + + + + + + + +
+
+
+
+
+
@@ -536,7 +572,7 @@
- +
{{act.praise_count}}
@@ -572,7 +608,7 @@
- +
{{act.praise_count}}
diff --git a/public/javascripts/wechat/controllers/activity.js b/public/javascripts/wechat/controllers/activity.js index 25ced0a17..c5a18e2f6 100644 --- a/public/javascripts/wechat/controllers/activity.js +++ b/public/javascripts/wechat/controllers/activity.js @@ -126,14 +126,14 @@ app.controller('ActivityController', } break; } - rms.save("tab_num",$scope.currentTab); + rms.save("activity_tab_num",$scope.currentTab); } - $scope.currentTab = rms.get('tab_num') || 1; + $scope.currentTab = rms.get('activity_tab_num') || 1; if($scope.activities.length<=0){ - $scope.loadActData('tab_num',0); + $scope.loadActData($scope.currentTab,0); } else { $timeout(function(){ window.scrollTo(0, rms.get("yoffset")); @@ -200,4 +200,40 @@ app.controller('ActivityController', common.decreaseCommonPraise(act); }; + + + $scope.goClass = function(id){ + rms.save("activities",[]); + rms.save("course_activities",[]); + rms.save("project_activities",[]); + + rms.save('course_activities_page',0); + rms.save("course_has_more",false); + rms.save("course",null); + rms.save("tab_num",null); + + rms.save("has_more",false); + rms.save("project_has_more",false); + + $location.path("/class").search({id: id}); + }; + + $scope.goProject = function(id){ + rms.save("activities",[]); + rms.save("course_activities",[]); + rms.save("project_activities",[]); + rms.save('project_activities_page',0); + rms.save("project_has_more",false); + rms.save("project",null); + rms.save("project_master_members",[]); + rms.save("project_develop_members",[]); + rms.save("project_report_members",[]); + rms.save("review_master_members",[]); + rms.save("review_develop_members",[]); + rms.save('tab_num',null); + rms.save("has_more",false); + rms.save("course_has_more",false); + + $location.path("/project").search({id: id}); + }; }]); \ No newline at end of file From bc1caf3d54f358ccb8749f18ba1c8c8d7d9f2f58 Mon Sep 17 00:00:00 2001 From: Tim Date: Tue, 30 Aug 2016 14:12:05 +0800 Subject: [PATCH 04/38] =?UTF-8?q?=E8=A1=A8=E6=83=85=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/javascripts/wechat/others/factory.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/javascripts/wechat/others/factory.js b/public/javascripts/wechat/others/factory.js index 498096c25..f08ef5813 100644 --- a/public/javascripts/wechat/others/factory.js +++ b/public/javascripts/wechat/others/factory.js @@ -111,7 +111,7 @@ app.factory('common', ['$http', 'auth', '$routeParams','rms','config','wx','$loc } var temp = data.comment.replace(/\n/g,'
'); - temp = temp.replaceAll("[^\\u0000-\\uFFFF]", "[表情]"); + temp = temp.replace(/^\:[a-z0-9_]+\:$/g, "[表情]"); var userInfo = { type: type, From b4a5179a1bd7d05193db7f420c734b9768eb70be Mon Sep 17 00:00:00 2001 From: yuanke <249218296@qq.com> Date: Tue, 30 Aug 2016 14:25:36 +0800 Subject: [PATCH 05/38] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=8F=AD=E7=BA=A7?= =?UTF-8?q?=E6=88=90=E5=91=98=E7=AE=A1=E9=87=8C=E7=9A=84=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=E5=90=8E=E6=98=BE=E7=A4=BA=E7=A9=BA=E7=99=BD?= =?UTF-8?q?=E5=8F=8A@issue=E9=93=BE=E6=8E=A5=E6=97=A0=E6=95=88=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/at_message.rb | 4 ++-- public/javascripts/wechat/controllers/class.js | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/app/models/at_message.rb b/app/models/at_message.rb index 702b16335..302211911 100644 --- a/app/models/at_message.rb +++ b/app/models/at_message.rb @@ -57,7 +57,7 @@ class AtMessage < ActiveRecord::Base when "Issue" shield_type = "Project" container_id = at_message.project.id - type = "issue" + type = "issues" detail_id = topic.id detail_title = at_message.subject when "Journal" @@ -66,7 +66,7 @@ class AtMessage < ActiveRecord::Base shield_type = "Project" container_id = at_message.journalized.project.id - type = "issue" + type = "issues" detail_id = topic.id detail_title = at_message.journalized.subject when 'Message' diff --git a/public/javascripts/wechat/controllers/class.js b/public/javascripts/wechat/controllers/class.js index a6fb0feed..6721d4d12 100644 --- a/public/javascripts/wechat/controllers/class.js +++ b/public/javascripts/wechat/controllers/class.js @@ -244,6 +244,7 @@ app.controller('ClassController', ['$scope', 'config','$http', 'auth','$location vm.onSetting = function(user){ rms.save('current_edit_member', user); + rms.save("course",vm.course); rms.save("tab_num",vm.currentTab); $location.path("/edit_class_member").search({id: courseid,user_id: user.id}); }; @@ -251,6 +252,7 @@ app.controller('ClassController', ['$scope', 'config','$http', 'auth','$location vm.review = function(user){ rms.save('current_review_member', user); rms.save('current_course', vm.course); + rms.save("course",vm.course); rms.save("tab_num",vm.currentTab); $location.path("/review_class_member").search({id: courseid,user_id: user.id}); }; From b9e989225734bd2c85adfe440baaabca7e9b11fe Mon Sep 17 00:00:00 2001 From: yuanke <249218296@qq.com> Date: Tue, 30 Aug 2016 15:01:26 +0800 Subject: [PATCH 06/38] =?UTF-8?q?=E5=BE=AE=E4=BF=A1issue=E6=8C=87=E5=90=91?= =?UTF-8?q?BUG=E4=BF=AE=E6=94=B9=EF=BC=8Cissue@=E5=8A=9F=E8=83=BD=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/issues_controller.rb | 2 +- app/models/at_message.rb | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/app/controllers/issues_controller.rb b/app/controllers/issues_controller.rb index 8880a4f3e..f108c685a 100644 --- a/app/controllers/issues_controller.rb +++ b/app/controllers/issues_controller.rb @@ -592,7 +592,7 @@ class IssuesController < ApplicationController senduser = User.find(params[:issue][:assigned_to_id]) - if senduser.id != User.current.id && @issue.assigned_to_id != params[:issue][:assigned_to_id] + if senduser.id != User.current.id && @issue.assigned_to_id != params[:issue][:assigned_to_id].to_i issue_id = @issue.id issue_title = params[:issue][:subject] priority_id = params[:issue][:priority_id] diff --git a/app/models/at_message.rb b/app/models/at_message.rb index 302211911..1c0c88d89 100644 --- a/app/models/at_message.rb +++ b/app/models/at_message.rb @@ -47,6 +47,8 @@ class AtMessage < ActiveRecord::Base detail_content = strip_html at_message.notes,30 elsif defined? at_message.content detail_content = strip_html at_message.content,30 + elsif defined? at_message.description + detail_content = strip_html at_message.description,30 end user = self.user From e2c0237fcd8b75358242b1247806cb05a406bf62 Mon Sep 17 00:00:00 2001 From: huang Date: Tue, 30 Aug 2016 15:30:01 +0800 Subject: [PATCH 07/38] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E7=A9=BA=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=BA=93=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20160511055221_merge_two_homeworks.rb | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/db/migrate/20160511055221_merge_two_homeworks.rb b/db/migrate/20160511055221_merge_two_homeworks.rb index a30bc983b..42aabbbd9 100644 --- a/db/migrate/20160511055221_merge_two_homeworks.rb +++ b/db/migrate/20160511055221_merge_two_homeworks.rb @@ -6,13 +6,17 @@ class MergeTwoHomeworks < ActiveRecord::Migration work.update_column('homework_common_id', 3463) end end - homework = HomeworkCommon.find 3387 - homework.destroy if homework - stu_works = StudentWork.where("homework_common_id = 3387") - stu_work_ids = stu_works.empty? ? "(-1)" : "(" + stu_works.map{|work| work.id}.join(',') + ")" - stu_work_tests = StudentWorkTest.where("student_work_id in #{stu_work_ids}") - stu_work_tests.destroy_all if stu_work_tests - stu_works.destroy_all if stu_works + begin + homework = HomeworkCommon.find 3387 + homework.destroy if homework + stu_works = StudentWork.where("homework_common_id = 3387") + stu_work_ids = stu_works.empty? ? "(-1)" : "(" + stu_works.map{|work| work.id}.join(',') + ")" + stu_work_tests = StudentWorkTest.where("student_work_id in #{stu_work_ids}") + stu_work_tests.destroy_all if stu_work_tests + stu_works.destroy_all if stu_works + rescue Exception => e + puts e + end end def down From 6d0f22fd60589771950e2413ff5fe9338ba87464 Mon Sep 17 00:00:00 2001 From: huang Date: Tue, 30 Aug 2016 16:03:28 +0800 Subject: [PATCH 08/38] =?UTF-8?q?=E7=A9=BA=E6=95=B0=E6=8D=AE=E5=BA=93--?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=90=8E=E5=8F=B0=E5=88=A0=E9=99=A4issue?= =?UTF-8?q?=E6=A0=87=E7=AD=BE500=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/tracker.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/tracker.rb b/app/models/tracker.rb index af56d23bf..4ef18b7b0 100644 --- a/app/models/tracker.rb +++ b/app/models/tracker.rb @@ -34,7 +34,7 @@ class Tracker < ActiveRecord::Base end has_and_belongs_to_many :projects - has_and_belongs_to_many :courses + # has_and_belongs_to_many :courses has_and_belongs_to_many :custom_fields, :class_name => 'IssueCustomField', :join_table => "#{table_name_prefix}custom_fields_trackers#{table_name_suffix}", :association_foreign_key => 'custom_field_id' acts_as_list From 0c221abd6175ebbb6efb603e840c0ef58ad4ef90 Mon Sep 17 00:00:00 2001 From: huang Date: Wed, 31 Aug 2016 09:18:05 +0800 Subject: [PATCH 09/38] =?UTF-8?q?PULL=20REQUEST=20=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E6=83=85=E5=86=B5=E4=B8=8B=E4=B8=8D=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/helpers/application_helper.rb | 6 +----- app/views/projects/_development_group.html.erb | 14 ++++++++------ app/views/pull_requests/index.html.erb | 2 +- 3 files changed, 10 insertions(+), 12 deletions(-) diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 1ff7fc2d9..6588d15f3 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -830,11 +830,7 @@ module ApplicationHelper return false if project.gpid.nil? g = Gitlab.client count = g.user_static(project.gpid, :rev => "master").count - if User.current.member_of?(project) && count > 0 - true - else - false - end + count end # 判断版本库是否初始为gitlab diff --git a/app/views/projects/_development_group.html.erb b/app/views/projects/_development_group.html.erb index 82bcb5501..52f4e002a 100644 --- a/app/views/projects/_development_group.html.erb +++ b/app/views/projects/_development_group.html.erb @@ -40,12 +40,14 @@
<% end %> - +<% if allow_pull_request(@project) %> + +<% end %> <%# --版本库被设置成私有、module中设置不显示、没有创建版本库 三种情况不显示-- %> <% if visible_repository?(@project) %> diff --git a/app/views/pull_requests/index.html.erb b/app/views/pull_requests/index.html.erb index f4fe0725e..2af67293f 100644 --- a/app/views/pull_requests/index.html.erb +++ b/app/views/pull_requests/index.html.erb @@ -3,7 +3,7 @@
  • <%= link_to "待处理#{@requests_opened_count}".html_safe, project_pull_requests_path(:type => "1"), :remote => true %>
  • <%= link_to "已处理#{@requests_merged_count}".html_safe, project_pull_requests_path(:type => "2"), :remote => true %>
  • <%= link_to "已关闭#{@requests_closed_count}".html_safe, project_pull_requests_path(:type => "3"), :remote => true %>
  • - <% if allow_pull_request(@project) %> + <% if allow_pull_request(@project) && User.current.member_of?(@project) %> <%= link_to "创建Pull Request", new_project_pull_request_path, :class => "BlueCirBtn fr ml10 mt10", :style => "width:110px;" %> <% end %>
    From 936198a8bda1eb3b0e7274a7966d720f654fe2fc Mon Sep 17 00:00:00 2001 From: huang Date: Wed, 31 Aug 2016 10:30:23 +0800 Subject: [PATCH 10/38] =?UTF-8?q?=E9=9A=90=E8=97=8F=E9=9D=9E=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/helpers/application_helper.rb | 7 +++++++ app/views/layouts/_footer.html.erb | 4 +++- app/views/layouts/_logined_header.html.erb | 12 +++++++----- app/views/layouts/base_projects.html.erb | 5 +++-- app/views/layouts/base_users_new.html.erb | 1 + app/views/layouts/new_base.html.erb | 4 +++- app/views/layouts/new_base_user.html.erb | 8 ++++---- app/views/users/_selector_for_messages.html.erb | 3 ++- app/views/users/_user_resource_type_filter.html.erb | 10 ++++++---- app/views/users/show.html.erb | 4 +--- app/views/users/user_messages.html.erb | 4 +++- 11 files changed, 40 insertions(+), 22 deletions(-) diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 2d6e84762..72963c15c 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -37,6 +37,13 @@ module ApplicationHelper # super # end + # 隐藏项目以外的信息 + # return: true 显示,false 不显示 + def hidden_unproject_infos + hidden_info = Setting.find_by_name("hidden_non_project") + (hidden_info && hidden_info.value == "1") ? true : false + end + # 通过系统外部邮箱查找用户,如果用户不存在则用邮箱替换 def get_user_by_mail mail user = User.find_by_mail(mail) diff --git a/app/views/layouts/_footer.html.erb b/app/views/layouts/_footer.html.erb index a639e1203..e549473e7 100644 --- a/app/views/layouts/_footer.html.erb +++ b/app/views/layouts/_footer.html.erb @@ -4,7 +4,9 @@
  • <%= l(:label_about_us)%>|
  • 服务协议|
  • -
  • <%= link_to l(:label_surpport_group), "#{Setting.protocol}://#{Setting.host_name}/forums/1/memos/1168", :class => "f_grey mw20", :target=>"_blank" %>|
  • + <% if hidden_unproject_infos %> +
  • <%= link_to l(:label_surpport_group), "#{Setting.protocol}://#{Setting.host_name}/forums/1/memos/1168", :class => "f_grey mw20", :target=>"_blank" %>|
  • + <% end %>
  • <%= l(:label_forums)%>
  • diff --git a/app/views/layouts/_logined_header.html.erb b/app/views/layouts/_logined_header.html.erb index 753022d75..1f35c4728 100644 --- a/app/views/layouts/_logined_header.html.erb +++ b/app/views/layouts/_logined_header.html.erb @@ -10,12 +10,14 @@ - - + + + <% end %> +<% if hidden_unproject_infos %> + <%= render :partial => 'layouts/new_feedback' %> +<% end %> -
    123
    -<%= render :partial => 'layouts/new_feedback' %> diff --git a/app/views/layouts/base_users_new.html.erb b/app/views/layouts/base_users_new.html.erb index c1f6a5644..976de8235 100644 --- a/app/views/layouts/base_users_new.html.erb +++ b/app/views/layouts/base_users_new.html.erb @@ -298,6 +298,7 @@
    + <%= render :partial => 'layouts/new_feedback' %> diff --git a/app/views/layouts/new_base.html.erb b/app/views/layouts/new_base.html.erb index e9703a943..d28171f5f 100644 --- a/app/views/layouts/new_base.html.erb +++ b/app/views/layouts/new_base.html.erb @@ -59,7 +59,9 @@
    <%= render :partial => 'layouts/footer' %>
    -<%= render :partial => 'layouts/new_feedback' %> +<% if hidden_unproject_infos %> + <%= render :partial => 'layouts/new_feedback' %> +<% end %> diff --git a/app/views/layouts/new_base_user.html.erb b/app/views/layouts/new_base_user.html.erb index d1084c794..20754b0ff 100644 --- a/app/views/layouts/new_base_user.html.erb +++ b/app/views/layouts/new_base_user.html.erb @@ -157,9 +157,7 @@
    - <% hidden_courses = Setting.find_by_name("hidden_courses") %> - <% unvisiable = hidden_courses && hidden_courses.value == "1"%> - <% if !unvisiable %> + <% if hidden_unproject_infos %>
    • <%= link_to '班级',{:controller => "users", :action => "user_courselist", :id => @user.id}, :id => "user_course_list" %> @@ -220,7 +218,9 @@ <%= yield %>
    - <%= render :partial => 'layouts/new_feedback' %> + <% if hidden_unproject_infos %> + <%= render :partial => 'layouts/new_feedback' %> + <% end %>
    <%= render :partial => 'layouts/footer' %> diff --git a/app/views/users/_selector_for_messages.html.erb b/app/views/users/_selector_for_messages.html.erb index 3727e4a1d..14609f4fc 100644 --- a/app/views/users/_selector_for_messages.html.erb +++ b/app/views/users/_selector_for_messages.html.erb @@ -3,6 +3,7 @@ + <% if hidden_unproject_infos %>
    • @@ -35,7 +36,18 @@
    • <%= link_to "用户留言",user_message_path(User.current, :type => 'user_feedback'), :class => "homepageTypeUMessage postTypeGrey" %>
  • - + <% else %> +
  • +
      +
    • 更多
    • +
    • <%= link_to "所有消息",user_message_path(User.current), :class => "resourcesTypeAll postTypeGrey" %>
    • +
    • <%= link_to "未读消息", user_message_path(User.current, :type => 'unviewed'), :class => "homepageTypeUnread postTypeGrey" %>
    • +
    • <%= link_to "系统消息", user_system_messages_path(User.current, :type => 'system_messages'), :class => "homepageTypeSystem postTypeGrey" %>
    • +
    • <%= link_to "贴吧帖子", user_message_path(User.current, :type => 'forum'), :class => "homepageTypePost postTypeGrey" %>
    • +
    • <%= link_to "用户留言",user_message_path(User.current, :type => 'user_feedback'), :class => "homepageTypeUMessage postTypeGrey" %>
    • +
    +
  • + <% end %> From 1f6bd68e61f35cdb5e4497901ac81bf0102bdce7 Mon Sep 17 00:00:00 2001 From: huang Date: Wed, 31 Aug 2016 15:37:28 +0800 Subject: [PATCH 20/38] =?UTF-8?q?=E9=9A=90=E8=97=8F=E9=A1=B9=E7=9B=AE=20?= =?UTF-8?q?=20=E7=BB=84=E7=BB=87=E9=9A=90=E8=97=8F=E8=AF=BE=E7=A8=8B?= =?UTF-8?q?=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/organizations/show.html.erb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/views/organizations/show.html.erb b/app/views/organizations/show.html.erb index ab3120a5d..690750fd2 100644 --- a/app/views/organizations/show.html.erb +++ b/app/views/organizations/show.html.erb @@ -20,6 +20,7 @@
      • + <% if hidden_unproject_infos %>
        • 课程动态
        • @@ -33,6 +34,7 @@
      • + <% end %>
        • 项目动态
        • From ac85eadc30c5c5a158517b5344f7dab9a5778cbd Mon Sep 17 00:00:00 2001 From: huang Date: Wed, 31 Aug 2016 15:42:17 +0800 Subject: [PATCH 21/38] =?UTF-8?q?=E8=B5=84=E6=BA=90=E5=BA=93=E7=82=B9?= =?UTF-8?q?=E5=87=BB=E5=88=87=E6=8D=A2=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/users/user_resource.html.erb | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/app/views/users/user_resource.html.erb b/app/views/users/user_resource.html.erb index ee2ea7e4f..6c0e067db 100644 --- a/app/views/users/user_resource.html.erb +++ b/app/views/users/user_resource.html.erb @@ -8,12 +8,6 @@ function remote_get_resources(user_id,type){ } - $(document).ready(function(){ - $(".resource-switch").click(function(){ - $(".resource-switch").children().removeClass("resource-tab-active"); - $(this).children().addClass("resource-tab-active"); - }); - }); function remote_search(){ $("#resource_search_form").submit(); } @@ -75,5 +69,10 @@
          - + From 9b14b86b642277c4bb4d9f74afb9d95953394187 Mon Sep 17 00:00:00 2001 From: huang Date: Wed, 31 Aug 2016 16:01:23 +0800 Subject: [PATCH 22/38] =?UTF-8?q?=E9=9A=90=E8=97=8F=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E4=B9=8B=20=E9=9A=90=E8=97=8F=E7=BB=84=E7=BB=87=E5=B7=A6?= =?UTF-8?q?=E4=BE=A7=E7=9A=84=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../_org_left_subfield_list.html.erb | 28 ++++++++++--------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/app/views/organizations/_org_left_subfield_list.html.erb b/app/views/organizations/_org_left_subfield_list.html.erb index 9d043fbb5..a414a1181 100644 --- a/app/views/organizations/_org_left_subfield_list.html.erb +++ b/app/views/organizations/_org_left_subfield_list.html.erb @@ -61,19 +61,21 @@ <%= link_to "动态",organization_path(organization), :class => "homepageMenuText" %> <% when 'course' %> -
          -
          - 班级 - <% if User.current.logged? and User.current.admin_of_org?(organization) %> - <%=link_to "", join_course_menu_organization_path(organization),:remote => true, :method => "post", :class => "homepageMenuSetting fr", :title => "关联班级"%> - <% end %> -
          -
          -
            - <%= render :partial => 'layouts/org_courses',:locals=>{:courses=>organization.courses.where("is_delete=0").reorder('created_at').uniq.limit(5),:org_id=>organization.id,:page=>1}%> -
          -
          -
          + <% if hidden_unproject_infos %> +
          +
          + 班级 + <% if User.current.logged? and User.current.admin_of_org?(organization) %> + <%=link_to "", join_course_menu_organization_path(organization),:remote => true, :method => "post", :class => "homepageMenuSetting fr", :title => "关联班级"%> + <% end %> +
          +
          +
            + <%= render :partial => 'layouts/org_courses',:locals=>{:courses=>organization.courses.where("is_delete=0").reorder('created_at').uniq.limit(5),:org_id=>organization.id,:page=>1}%> +
          +
          +
          + <% end %> <% when 'project' %>
          From c3c2516e6b39fa507b5b2f91c455edadb1b95784 Mon Sep 17 00:00:00 2001 From: yuanke <249218296@qq.com> Date: Wed, 31 Aug 2016 17:19:12 +0800 Subject: [PATCH 23/38] =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E7=8F=AD=E7=BA=A7?= =?UTF-8?q?=E3=80=81=E9=A1=B9=E7=9B=AE=E5=A2=9E=E5=8A=A0=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E6=88=90=E5=91=98=E5=92=8C=E9=80=80=E5=87=BA=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/apis/courses.rb | 3 +- app/api/mobile/apis/projects.rb | 13 +- app/services/projects_service.rb | 2 +- public/assets/wechat/class.html | 5 +- public/assets/wechat/edit_class_member.html | 7 +- public/assets/wechat/edit_project_member.html | 8 +- public/assets/wechat/project.html | 5 +- .../javascripts/wechat/controllers/class.js | 57 +++----- .../wechat/controllers/edit_class_member.js | 107 +++++++++++--- .../wechat/controllers/edit_project_member.js | 136 ++++++++++++++---- .../javascripts/wechat/controllers/project.js | 57 +++----- 11 files changed, 259 insertions(+), 141 deletions(-) diff --git a/app/api/mobile/apis/courses.rb b/app/api/mobile/apis/courses.rb index cd5d945e3..6a4175706 100644 --- a/app/api/mobile/apis/courses.rb +++ b/app/api/mobile/apis/courses.rb @@ -540,6 +540,7 @@ module Mobile present :status, 0 else present :status, -1 + present :message, "该用户已不在班级中" end end @@ -732,7 +733,7 @@ module Mobile end out = {status: status} message = case status - when 0; "退出成功" + when 0; "退出班级成功" when 1; "您不在课程中" when 2; "您还未登录" when 3; "管理员不能退出班级" diff --git a/app/api/mobile/apis/projects.rb b/app/api/mobile/apis/projects.rb index b66f6c25f..665d068ae 100644 --- a/app/api/mobile/apis/projects.rb +++ b/app/api/mobile/apis/projects.rb @@ -127,6 +127,7 @@ module Mobile present :status, 0 else present :status, -1 + present :message, "该用户已不在项目中" end end @@ -283,7 +284,7 @@ module Mobile if(current_user.id != params[:user_id].to_i) #权限 project = Project.find("#{params[:id]}") - if project.tea_id != params[:user_id].to_i + if project.user_id != params[:user_id].to_i my_member = project.member_principals.where("users.id=#{current_user.id}").first @@ -308,7 +309,7 @@ module Mobile out = {status: status} message = case status - when 0; "退出成功" + when 0; "删除成功" when 1; "该用户不在该项目中" when -1; "您还未登录" when -2; "您没有权限" @@ -327,13 +328,15 @@ module Mobile post ':id/quit' do authenticate! + project = Project.find("#{params[:id]}") + ps = ProjectsService.new - status = ps.exit_project(params[:id],current_user) + status = ps.exit_project(project,current_user) out = {status: status} message = case status - when 0; "退出成功" - when -3; "您不在课程中" + when 0; "退出项目成功" + when -3; "您不在项目中" when -1; "您还未登录" when -2; "项目创建者不能退出项目" else; "未知错误,请稍后再试" diff --git a/app/services/projects_service.rb b/app/services/projects_service.rb index 5d22244a9..ea2350495 100644 --- a/app/services/projects_service.rb +++ b/app/services/projects_service.rb @@ -357,7 +357,7 @@ class ProjectsService #删除项目成员 def project_delete_member project,user_id,current_user - if user.nil? + if current_user.nil? state = -1 return state end diff --git a/public/assets/wechat/class.html b/public/assets/wechat/class.html index 07e918336..8208c3883 100644 --- a/public/assets/wechat/class.html +++ b/public/assets/wechat/class.html @@ -259,8 +259,8 @@
          - @@ -278,4 +278,5 @@
          + diff --git a/public/assets/wechat/edit_class_member.html b/public/assets/wechat/edit_class_member.html index ec8965caa..decb31efb 100644 --- a/public/assets/wechat/edit_class_member.html +++ b/public/assets/wechat/edit_class_member.html @@ -3,21 +3,22 @@
          成员管理
          {{current_edit_member.user.realname == "" ? current_edit_member.user.name : current_edit_member.user.realname}}
          -
          角色变更
          +
          角色变更
          -
          删除成员
          +
          删除成员
          + diff --git a/public/assets/wechat/edit_project_member.html b/public/assets/wechat/edit_project_member.html index 5b9ea8bb1..5500766d5 100644 --- a/public/assets/wechat/edit_project_member.html +++ b/public/assets/wechat/edit_project_member.html @@ -3,23 +3,23 @@
          成员管理
          {{current_edit_member.user.real_name == "" ? current_edit_member.user.name : current_edit_member.user.real_name}}
          -
          角色变更
          +
          角色变更
          -
          删除成员
          +
          删除成员
          - + diff --git a/public/assets/wechat/project.html b/public/assets/wechat/project.html index 18e85fea9..8dfba3619 100644 --- a/public/assets/wechat/project.html +++ b/public/assets/wechat/project.html @@ -138,10 +138,11 @@
          - + diff --git a/public/javascripts/wechat/controllers/class.js b/public/javascripts/wechat/controllers/class.js index 06e15f1d5..fdd5bcd71 100644 --- a/public/javascripts/wechat/controllers/class.js +++ b/public/javascripts/wechat/controllers/class.js @@ -177,6 +177,8 @@ app.controller('ClassController', ['$scope', 'config','$http', 'auth','$location vm.myresource_sendIndex = rms.get('myresource_sendIndex') || 1; vm.alertService = alertService.create(); + //双弹框 + vm.alertService_2 = alertService.create(); vm.invite = function(){ rms.save('course_activities_page',vm.course_activities_page); @@ -327,44 +329,27 @@ app.controller('ClassController', ['$scope', 'config','$http', 'auth','$location $location.path("/homework").search({id: id}); }; - vm.deleteMember = function(user_id){ - $http({ - method: 'POST', - url: apiUrl + "courses/deletemember?id=" + courseid, - data:{token:auth.token(),user_id:user_id} - }).then(function successCallback(response) { - console.log(response.data); - - if(response.data.status == 0){ - vm.alertService.showMessage('提示', response.data.message,function(){ - //确定 - - }); - } - else{ - vm.alertService.showMessage('提示', response.data.message); - } - - }); - }; - vm.quit = function(){ - $http({ - method: 'POST', - url: apiUrl + "courses/quit?id=" + courseid, - data:{token:auth.token()} - }).then(function successCallback(response) { - console.log(response.data); - if(response.data.status == 0){ - vm.alertService.showMessage('提示', response.data.message,function(){ - //确定 - - }); - } - else{ - vm.alertService.showMessage('提示', response.data.message); - } + vm.alertService_2.showMessage('提示', "是否确认退出班级",function(){ + $http({ + method: 'POST', + url: apiUrl + "courses/" + courseid+"/quit", + data:{token:auth.token()} + }).then(function successCallback(response) { + console.log(response.data); + if(response.data.status == 0){ + vm.alertService.showMessage('提示', response.data.message,function(){ + //确定 + rms.save('syllabuses',[]); + $location.path("/class_list"); + }); + } + else{ + vm.alertService.showMessage('提示', response.data.message); + } + }); }); + }; diff --git a/public/javascripts/wechat/controllers/edit_class_member.js b/public/javascripts/wechat/controllers/edit_class_member.js index e00e36f20..d872dac09 100644 --- a/public/javascripts/wechat/controllers/edit_class_member.js +++ b/public/javascripts/wechat/controllers/edit_class_member.js @@ -9,6 +9,8 @@ app.controller('EditClassMemberController', ['$scope', '$http', 'auth', 'config' vm.current_edit_member = null; vm.alertService = alertService.create(); + //双弹框 + vm.alertService_2 = alertService.create(); var course_id = $routeParams.id; var user_id = $routeParams.user_id; @@ -21,6 +23,8 @@ app.controller('EditClassMemberController', ['$scope', '$http', 'auth', 'config' vm.tmpassistant = false; //教辅 vm.tmpstudent = false; //学生 + vm.buttongrey = true; + if(!vm.current_edit_member){ $http.post(config.apiUrl+'courses/get_member_info', { @@ -29,7 +33,9 @@ app.controller('EditClassMemberController', ['$scope', '$http', 'auth', 'config' user_id:user_id }).then(function(response){ if(response.data.status!=0){ - vm.alertService.showMessage('提示', response.data.message); + vm.alertService.showMessage('提示', response.data.message,function(){ + $location.path("/class").search({id: course_id,tag:1}); + }); } else { console.log(response); course_id = response.data.course_id; @@ -62,34 +68,67 @@ app.controller('EditClassMemberController', ['$scope', '$http', 'auth', 'config' window.history.back(); }; + vm.deleteMember = function(user_id){ + vm.alertService_2.showMessage('提示', "是否确认删除成员",function(){ + $http({ + method: 'POST', + url: apiUrl + "courses/" + course_id+"/deletemember", + data:{token:auth.token(),user_id:user_id} + }).then(function successCallback(response) { + console.log(response.data); + + if(response.data.status == 0){ + vm.alertService.showMessage('提示', response.data.message,function(){ + //确定 + $location.path("/class").search({id: course_id,tag:1}); + }); + } + else{ + vm.alertService.showMessage('提示', response.data.message); + } + + }); + }); + }; + vm.edit_member_role = function(){ - if((vm.teacher == vm.tmpteacher)&& (vm.assistant == vm.tmpassistant)&&(vm.student == vm.tmpstudent)){ - vm.alertService.showMessage('提示', "该用户当前已是该角色"); + if(vm.buttongrey == true){ return; } - if((vm.teacher == false)&& (vm.assistant == false)&&(vm.student == false)){ - vm.alertService.showMessage('提示', "请至少选择一种角色"); - return; + if(vm.current_edit_member.show){ + //删除成员 + vm.deleteMember(vm.current_edit_member.user.id); } + else{ + if((vm.teacher == vm.tmpteacher)&& (vm.assistant == vm.tmpassistant)&&(vm.student == vm.tmpstudent)){ + vm.alertService.showMessage('提示', "该用户当前已是该角色"); + return; + } - $http.post(config.apiUrl+'courses/edit_member_role', { - token: auth.token(), - id: course_id, - user_id:vm.current_edit_member.user.id, - teacher_flag:vm.teacher, - assistant_flag:vm.assistant, - student_flag:vm.student - }).then(function(response){ - if(response.data.status!=0){ - vm.alertService.showMessage('提示', response.data.message); - } else { - vm.alertService.showMessage('提示', '修改角色成功', function(){ -// window.history.back(); - $location.path("/class").search({id: course_id,tag:1}); - }); + if((vm.teacher == false)&& (vm.assistant == false)&&(vm.student == false)){ + vm.alertService.showMessage('提示', "请至少选择一种角色"); + return; } - }); + + $http.post(config.apiUrl+'courses/edit_member_role', { + token: auth.token(), + id: course_id, + user_id:vm.current_edit_member.user.id, + teacher_flag:vm.teacher, + assistant_flag:vm.assistant, + student_flag:vm.student + }).then(function(response){ + if(response.data.status!=0){ + vm.alertService.showMessage('提示', response.data.message); + } else { + vm.alertService.showMessage('提示', '修改角色成功', function(){ +// window.history.back(); + $location.path("/class").search({id: course_id,tag:1}); + }); + } + }); + } }; vm.selectRole = function(role_id){ @@ -106,6 +145,28 @@ app.controller('EditClassMemberController', ['$scope', '$http', 'auth', 'config' else if (role_id == 10){ vm.student = !vm.student; } - } + + if((vm.teacher == vm.tmpteacher)&& (vm.assistant == vm.tmpassistant)&&(vm.student == vm.tmpstudent)){ + vm.buttongrey = true; + } + else{ + vm.buttongrey = false; + } + + if((vm.teacher == false)&& (vm.assistant == false)&&(vm.student == false)){ + vm.buttongrey = true; + } + + }; + + vm.clickChangeRole = function(){ + vm.current_edit_member.show = !vm.current_edit_member.show; + if((vm.teacher == vm.tmpteacher)&& (vm.assistant == vm.tmpassistant)&&(vm.student == vm.tmpstudent)){ + vm.buttongrey = true; + } + else{ + vm.buttongrey = false; + } + }; }] ); \ No newline at end of file diff --git a/public/javascripts/wechat/controllers/edit_project_member.js b/public/javascripts/wechat/controllers/edit_project_member.js index 511db35bb..b8ecb447d 100644 --- a/public/javascripts/wechat/controllers/edit_project_member.js +++ b/public/javascripts/wechat/controllers/edit_project_member.js @@ -10,9 +10,14 @@ app.controller('EditProjectMemberController', ['$scope', '$http', 'auth', 'confi vm.current_edit_member = null; vm.alertService = alertService.create(); + //双弹框 + vm.alertService_2 = alertService.create(); var project_id = $routeParams.id; var user_id = $routeParams.user_id; + + vm.buttongrey = true; + if(!vm.current_edit_member){ $http.post(config.apiUrl+'projects/get_member_info', { token: auth.token(), @@ -20,7 +25,20 @@ app.controller('EditProjectMemberController', ['$scope', '$http', 'auth', 'confi user_id:user_id }).then(function(response){ if(response.data.status!=0){ - vm.alertService.showMessage('提示', response.data.message); + vm.alertService.showMessage('提示', response.data.message,function(){ + rms.save('project_activities_page',0); + rms.save("project_activities",[]); + rms.save("project_has_more",false); + rms.save("project",null); + rms.save("project_master_members",[]); + rms.save("project_develop_members",[]); + rms.save("project_report_members",[]); + rms.save("review_master_members",[]); + rms.save("review_develop_members",[]); + rms.save('tab_num',null); +// window.history.back(); + $location.path("/project").search({id: project_id,tag:1}); + }); } else { project_id = response.data.project_id; user_id = response.data.user_id; @@ -40,42 +58,104 @@ app.controller('EditProjectMemberController', ['$scope', '$http', 'auth', 'confi window.history.back(); }; + vm.deleteMember = function(user_id){ + vm.alertService_2.showMessage('提示', "是否确认删除成员",function(){ + $http({ + method: 'POST', + url: apiUrl + "projects/" + project_id+"/deletemember", + data:{token:auth.token(),user_id:user_id} + }).then(function successCallback(response) { + console.log(response.data); + + if(response.data.status == 0){ + vm.alertService.showMessage('提示', response.data.message,function(){ + //确定 + rms.save('project_activities_page',0); + rms.save("project_activities",[]); + rms.save("project_has_more",false); + rms.save("project",null); + rms.save("project_master_members",[]); + rms.save("project_develop_members",[]); + rms.save("project_report_members",[]); + rms.save("review_master_members",[]); + rms.save("review_develop_members",[]); + rms.save('tab_num',null); +// window.history.back(); + $location.path("/project").search({id: project_id,tag:1}); + + }); + } + else{ + vm.alertService.showMessage('提示', response.data.message); + } + + }); + + }); + }; + vm.edit_member_role = function(){ - if(vm.current_roles_id == vm.current_edit_member.roles_id){ - vm.alertService.showMessage('提示', "该用户当前已是该角色"); + if(vm.buttongrey == true){ return; } - $http.post(config.apiUrl+'projects/edit_member_role', { - token: auth.token(), - id: project_id, - user_id:vm.current_edit_member.user.id, - role_id:vm.current_edit_member.roles_id - }).then(function(response){ - if(response.data.status!=0){ - vm.alertService.showMessage('提示', response.data.message); - } else { - vm.alertService.showMessage('提示', '修改角色成功', function(){ - rms.save('project_activities_page',0); - rms.save("project_activities",[]); - rms.save("project_has_more",false); - rms.save("project",null); - rms.save("project_master_members",[]); - rms.save("project_develop_members",[]); - rms.save("project_report_members",[]); - rms.save("review_master_members",[]); - rms.save("review_develop_members",[]); - rms.save('tab_num',null); -// window.history.back(); - $location.path("/project").search({id: project_id,tag:1}); - }); + if(vm.current_edit_member.show){ + //删除成员 + vm.deleteMember(vm.current_edit_member.user.id); + } + else{ + if(vm.current_roles_id == vm.current_edit_member.roles_id){ + vm.alertService.showMessage('提示', "该用户当前已是该角色"); + return; } - }); + $http.post(config.apiUrl+'projects/edit_member_role', { + token: auth.token(), + id: project_id, + user_id:vm.current_edit_member.user.id, + role_id:vm.current_edit_member.roles_id + }).then(function(response){ + if(response.data.status!=0){ + vm.alertService.showMessage('提示', response.data.message); + } else { + vm.alertService.showMessage('提示', '修改角色成功', function(){ + rms.save('project_activities_page',0); + rms.save("project_activities",[]); + rms.save("project_has_more",false); + rms.save("project",null); + rms.save("project_master_members",[]); + rms.save("project_develop_members",[]); + rms.save("project_report_members",[]); + rms.save("review_master_members",[]); + rms.save("review_develop_members",[]); + rms.save('tab_num',null); +// window.history.back(); + $location.path("/project").search({id: project_id,tag:1}); + }); + } + }); + } }; vm.selectRole = function(role_id){ vm.current_edit_member.roles_id = role_id; - } + + if(vm.current_roles_id == vm.current_edit_member.roles_id){ + vm.buttongrey = true; + } + else{ + vm.buttongrey = false; + } + }; + + vm.clickChangeRole = function(){ + vm.current_edit_member.show = !vm.current_edit_member.show; + if(vm.current_roles_id == vm.current_edit_member.roles_id){ + vm.buttongrey = true; + } + else{ + vm.buttongrey = false; + } + }; }] ); \ No newline at end of file diff --git a/public/javascripts/wechat/controllers/project.js b/public/javascripts/wechat/controllers/project.js index 298e9b96f..3f90917b4 100644 --- a/public/javascripts/wechat/controllers/project.js +++ b/public/javascripts/wechat/controllers/project.js @@ -30,6 +30,8 @@ app.controller('ProjectController', ['$scope', 'config','$http','$timeout', 'aut // vm.project_members_has_more = rms.get("project_members_has_more"); vm.alertService = alertService.create(); + //双弹框 + vm.alertService_2 = alertService.create(); //跳入邀请界面 vm.invite = function(){ @@ -253,44 +255,27 @@ app.controller('ProjectController', ['$scope', 'config','$http','$timeout', 'aut $location.path("/project_publishnote").search({id:projectid}); }; - vm.deleteMember = function(user_id){ - $http({ - method: 'POST', - url: apiUrl + "projects/deletemember?id=" + projectid, - data:{token:auth.token(),user_id:user_id} - }).then(function successCallback(response) { - console.log(response.data); - - if(response.data.status == 0){ - vm.alertService.showMessage('提示', response.data.message,function(){ - //确定 - - }); - } - else{ - vm.alertService.showMessage('提示', response.data.message); - } - - }); - }; - vm.quit = function(){ - $http({ - method: 'POST', - url: apiUrl + "projects/quit?id=" + projectid, - data:{token:auth.token()} - }).then(function successCallback(response) { - console.log(response.data); - if(response.data.status == 0){ - vm.alertService.showMessage('提示', response.data.message,function(){ - //确定 - - }); - } - else{ - vm.alertService.showMessage('提示', response.data.message); - } + vm.alertService_2.showMessage('提示', "是否确认退出项目",function(){ + $http({ + method: 'POST', + url: apiUrl + "projects/" + projectid+"/quit", + data:{token:auth.token()} + }).then(function successCallback(response) { + console.log(response.data); + if(response.data.status == 0){ + vm.alertService.showMessage('提示', response.data.message,function(){ + //确定 + rms.save('projects',[]); + $location.path("/project_list"); + }); + } + else{ + vm.alertService.showMessage('提示', response.data.message); + } + }); }); + }; }]); \ No newline at end of file From 8644ad178c6761c5376f6ce494c1f934f75af91e Mon Sep 17 00:00:00 2001 From: yuanke <249218296@qq.com> Date: Thu, 1 Sep 2016 10:21:29 +0800 Subject: [PATCH 24/38] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=8F=AD=E7=BA=A7?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=20=E5=88=A0=E9=99=A4=E6=88=90=E5=91=98?= =?UTF-8?q?=E7=9A=84BUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/apis/courses.rb | 2 +- app/services/courses_service.rb | 5 +++-- public/assets/wechat/class.html | 4 ++-- public/assets/wechat/project.html | 4 ++-- public/javascripts/wechat/controllers/class_publishissue.js | 2 +- public/javascripts/wechat/controllers/class_publishnotice.js | 2 +- public/javascripts/wechat/controllers/project_publishnote.js | 2 +- 7 files changed, 11 insertions(+), 10 deletions(-) diff --git a/app/api/mobile/apis/courses.rb b/app/api/mobile/apis/courses.rb index 6a4175706..c8b67448e 100644 --- a/app/api/mobile/apis/courses.rb +++ b/app/api/mobile/apis/courses.rb @@ -734,7 +734,7 @@ module Mobile out = {status: status} message = case status when 0; "退出班级成功" - when 1; "您不在课程中" + when 1; "您不是该班级成员" when 2; "您还未登录" when 3; "管理员不能退出班级" else; "未知错误,请稍后再试" diff --git a/app/services/courses_service.rb b/app/services/courses_service.rb index c5084f228..f23b59dcb 100644 --- a/app/services/courses_service.rb +++ b/app/services/courses_service.rb @@ -79,7 +79,8 @@ class CoursesService else c = Course.find(course) end - if current_user.nil? || !(current_user.admin? || c.is_public == 1 || (c.is_public == 0 && current_user.member_of_course?(c))) + # if current_user.nil? || !(current_user.admin? || c.is_public == 1 || (c.is_public == 0 && current_user.member_of_course?(c))) + if current_user.nil? raise '403' end #@canShowCode = isCourseTeacher(User.current.id,course) && params[:role] != '1' @@ -458,8 +459,8 @@ class CoursesService joined = StudentsForCourse.where('student_id = ? and course_id = ?', user.id, params[:object_id]) joined.each do |join| join.delete - @state = 0 end + @state = 0 @state end diff --git a/public/assets/wechat/class.html b/public/assets/wechat/class.html index 8208c3883..706cf5206 100644 --- a/public/assets/wechat/class.html +++ b/public/assets/wechat/class.html @@ -217,7 +217,7 @@
          更多
          -
          + @@ -259,7 +259,7 @@
          - diff --git a/public/assets/wechat/project.html b/public/assets/wechat/project.html index 8dfba3619..89cbb1418 100644 --- a/public/assets/wechat/project.html +++ b/public/assets/wechat/project.html @@ -98,7 +98,7 @@
          更多
          - @@ -138,7 +138,7 @@
          - diff --git a/public/javascripts/wechat/controllers/class_publishissue.js b/public/javascripts/wechat/controllers/class_publishissue.js index 1cd7f1285..09b995bea 100644 --- a/public/javascripts/wechat/controllers/class_publishissue.js +++ b/public/javascripts/wechat/controllers/class_publishissue.js @@ -55,7 +55,7 @@ app.controller('ClassPublishIssueController', ['$scope', '$http', 'auth', 'confi ).then(function(response){ if(response.data.status == 0) { - vm.alertService.showMessage('提示', '您已成功发布问题',function(){ + vm.alertService.showMessage('提示', '发布成功',function(){ rms.save('course_activities_page',0); rms.save("course_activities",[]); rms.save("course_has_more",false); diff --git a/public/javascripts/wechat/controllers/class_publishnotice.js b/public/javascripts/wechat/controllers/class_publishnotice.js index a0b9ab676..b900305c1 100644 --- a/public/javascripts/wechat/controllers/class_publishnotice.js +++ b/public/javascripts/wechat/controllers/class_publishnotice.js @@ -55,7 +55,7 @@ app.controller('ClassPublishNoticeController', ['$scope', '$http', 'auth', 'conf ).then(function(response){ if(response.data.status == 0) { - vm.alertService.showMessage('提示', '您已成功发布通知',function(){ + vm.alertService.showMessage('提示', '发布成功',function(){ rms.save('course_activities_page',0); rms.save("course_activities",[]); rms.save("course_has_more",false); diff --git a/public/javascripts/wechat/controllers/project_publishnote.js b/public/javascripts/wechat/controllers/project_publishnote.js index 231faaea6..f39b32827 100644 --- a/public/javascripts/wechat/controllers/project_publishnote.js +++ b/public/javascripts/wechat/controllers/project_publishnote.js @@ -56,7 +56,7 @@ app.controller('ProjectPublishNoteController', ['$scope', '$http', 'auth', 'conf ).then(function(response){ if(response.data.status == 0) { - vm.alertService.showMessage('提示', '您已成功发布帖子',function(){ + vm.alertService.showMessage('提示', '发布成功',function(){ rms.save('project_activities_page',0); rms.save("project_activities",[]); rms.save("project_has_more",false); From 225186988160fa8c0535afc5220acba7bb072646 Mon Sep 17 00:00:00 2001 From: Tim Date: Thu, 1 Sep 2016 10:40:57 +0800 Subject: [PATCH 25/38] =?UTF-8?q?iphone=E4=B8=8B=E8=A7=86=E8=A7=92?= =?UTF-8?q?=E6=BB=9A=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wechat/directives/iphone_recognize.js | 41 +++++++++++++++++-- 1 file changed, 37 insertions(+), 4 deletions(-) diff --git a/public/javascripts/wechat/directives/iphone_recognize.js b/public/javascripts/wechat/directives/iphone_recognize.js index 46d4a4292..3f6acf7c3 100644 --- a/public/javascripts/wechat/directives/iphone_recognize.js +++ b/public/javascripts/wechat/directives/iphone_recognize.js @@ -12,15 +12,48 @@ app.directive('iphoneRecognize',["$timeout",function(timer){ element.css({"position":"relative","padding":"1px 0"}); $(".post-wrapper").css("marginBottom","0"); $("#all_homework_reply").css("marginBottom","0"); - window.scrollTo(0,contentHeight); +// window.scrollTo(0,contentHeight); } if (/ipad|iphone|mac/i.test(navigator.userAgent)){ + //开始编辑输入框的时候,软键盘出现,执行此事件 + -(void)textFieldDidBeginEditing:(UITextField *)textlab + { + //获取当前输入框的位置信息 + CGRect frame = textlab.frame; + //获取键盘底部位置与键盘最高点之间的距离,键盘高度256 + int offset = frame.origin.y + frame.size.height - (self.view.frame.size.height - 256.0); + //设置视图上升的时间 + NSTimeInterval animaTime = 0.30f; + //字符串随意也行... + [UIView beginAnimations:@"ResizeForKeyboard" context:nil]; + //添加视图上的上升时间0.3f + [UIView setAnimationDuration:animaTime]; + + //将视图的Y坐标向上移动offset个单位,以使下面腾出地方用于软键盘的显示 + if(offset > 0) + self.view.frame = CGRectMake(0.0f, -offset, self.view.frame.size.width, self.view.frame.size.height); + //提交动画 + [UIView commitAnimations]; + } + //当用户按下return键或者按回车键,keyboard消失 + -(BOOL)textFieldShouldReturn:(UITextField *)textField + { + //收回键盘第一响应者意思... + [textField resignFirstResponder]; + return YES; + } + +//输入框编辑完成以后,将视图恢复到原始状态 + -(void)textFieldDidEndEditing:(UITextField *)textField + { + self.view.frame =CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height); + } $("#postInput1").bind('focus',function(){ toBottom(); }); - $("#postInput1,#replyBlock").bind("click",function(){ - toBottom(); - }); +// $("#postInput1,#replyBlock").bind("click",function(){ +// toBottom(); +// }); $("#postInput1").bind('blur',function(){ element.css("position","fixed"); $(".post-wrapper").css("marginBottom","10px"); From 52a8a64a691a03dfb1fd1de1df43e1e27959d787 Mon Sep 17 00:00:00 2001 From: huang Date: Thu, 1 Sep 2016 10:48:13 +0800 Subject: [PATCH 26/38] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E9=9A=90=E8=97=8F=20?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E8=AE=A8=E8=AE=BA=E5=8C=BA=E5=8F=91=E9=80=81?= =?UTF-8?q?=E4=B8=AD=E5=8E=BB=E6=8E=89=E8=AF=BE=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/users_controller.rb | 3 ++ app/views/files/_tool_settings.html.erb | 12 +++++- app/views/users/_send_part.html.erb | 12 ++++++ public/javascripts/application.js | 49 +++++++++++++++++++++++++ 4 files changed, 74 insertions(+), 2 deletions(-) create mode 100644 app/views/users/_send_part.html.erb diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index a44a3bc01..b385fe610 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -2152,6 +2152,7 @@ class UsersController < ApplicationController #这里仅仅是传递需要发送的资源id @send_id = params[:send_id] @send_ids = params[:checkbox1] || params[:send_ids] + @hidden_unproject = hidden_unproject_infos respond_to do |format| format.js end @@ -2171,6 +2172,7 @@ class UsersController < ApplicationController #这里仅仅是传递需要发送的资源id @send_id = params[:send_id] @send_ids = params[:checkbox1] || params[:send_ids] #搜索的时候 和 直接 用表格提交的时候的send_ids + @hidden_unproject = hidden_unproject_infos respond_to do |format| format.js end @@ -3334,6 +3336,7 @@ class UsersController < ApplicationController #这里仅仅是传递需要发送的资源id @send_id = params[:send_id] @send_ids = params[:checkbox1] || params[:send_ids] + @hidden_unproject = hidden_unproject_infos respond_to do |format| format.js end diff --git a/app/views/files/_tool_settings.html.erb b/app/views/files/_tool_settings.html.erb index a0ce42eac..5d96d8da2 100644 --- a/app/views/files/_tool_settings.html.erb +++ b/app/views/files/_tool_settings.html.erb @@ -4,7 +4,11 @@ <% if User.current.admin? || ((is_project_manager?(User.current, project) || file.author_id == User.current.id) && project_contains_attachment?(project, file)) %> <% if User.current.admin? || ((delete_allowed || User.current.id == file.author_id) && file.container_id == project.id && file.container_type == "Project") %>
            -
          • <%= link_to("发       送".html_safe, 'javascript:void(0)',:class => "postOptionLink",:onclick=>"show_send('#{file.id}','#{User.current.id}','file')") %>
          • + <% if hidden_unproject_infos %> +
          • <%= link_to("发       送".html_safe, 'javascript:void(0)',:class => "postOptionLink",:onclick=>"show_send('#{file.id}','#{User.current.id}','file')") %>
          • + <% else %> +
          • <%= link_to("发       送".html_safe, 'javascript:void(0)',:class => "postOptionLink",:onclick=>"show_send_hidden('#{file.id}','#{User.current.id}','file')") %>
          • + <% end %>
          • <%= link_to '更新版本',attachments_versions_path(file),:class => "postOptionLink",:remote=>true %>
          • <% if project.is_public? %>
          • @@ -20,7 +24,11 @@ <% end %> <% else %>
              -
            • <%= link_to("发  送".html_safe, 'javascript:void(0)',:class => "postOptionLink2",:onclick=>"show_send('#{file.id}','#{User.current.id}','file')") %>
            • + <% if hidden_unproject_infos %> +
            • <%= link_to("发  送".html_safe, 'javascript:void(0)',:class => "postOptionLink2",:onclick=>"show_send('#{file.id}','#{User.current.id}','file')") %>
            • + <% else %> +
            • <%= link_to("发  送".html_safe, 'javascript:void(0)',:class => "postOptionLink2",:onclick=>"show_send_hidden('#{file.id}','#{User.current.id}','file')") %>
            • + <% end %>
            <% end %> <% end %> diff --git a/app/views/users/_send_part.html.erb b/app/views/users/_send_part.html.erb new file mode 100644 index 000000000..b47386da8 --- /dev/null +++ b/app/views/users/_send_part.html.erb @@ -0,0 +1,12 @@ +<% if @hidden_unproject %> + +<% else %> + +<% end %> \ No newline at end of file diff --git a/public/javascripts/application.js b/public/javascripts/application.js index c2e357e0f..d576ba42f 100644 --- a/public/javascripts/application.js +++ b/public/javascripts/application.js @@ -1153,6 +1153,31 @@ function show_send(id, user_id, send_type){ } } +//为了隐藏非项目功能 +//var sendType = '1'; +var lastSendType ;//初始为发送到我的项目 +function show_send_hidden(id, user_id, send_type){ + if (lastSendType === '1'){ //如果已经发送过一次了,那么就应该沿用上次发送的类型。 + $.ajax({ + type: 'get', + url: '/users/' + user_id + '/search_user_project', + data:{send_id:id, send_type:send_type} + }); + }else if( lastSendType == '2'){//组织 + $.ajax({ + type: 'get', + url: '/users/' + user_id + '/search_user_org', + data:{send_id:id, send_type:send_type} + }); + }else{ + $.ajax({ + type: 'get', + url: '/users/' + user_id + '/search_user_project', + data:{send_id:id, send_type:send_type} + }); + } +} + //id 发送的id //发送的id数组 //send_type:发送的类型,file对应文件,message对应帖子,news对应通知或新闻 @@ -1216,6 +1241,30 @@ function chooseSendType2(res_id,res_ids, user_id, send_type, type){ lastSendType = sendType; } +//隐藏项目其它信息特用 +function chooseSendType2hidden(res_id,res_ids, user_id, send_type, type){ + console.log(res_ids); + sendType = $(".resourcesSendType").val(); + if (sendType === lastSendType) { + return; + } else if(lastSendType != null) { //不是第一次点击的时候 + if (sendType == '1') { + $.ajax({ + type: 'get', + url: '/users/' + user_id + '/search_user_project' + '?' + "&type=" + type, + data:{send_id:res_id, send_ids:res_ids ,send_type:send_type} + }); + }else if(sendType == '2'){ + $.ajax({ + type: 'get', + url: '/users/' + user_id + '/search_user_org' + '?' + "&type=" + type, + data:{send_id:res_id, send_ids:res_ids, send_type:send_type} + }); + } + } + lastSendType = sendType; +} + //组织新建和配置中,选择组织为私有后,disbled掉允许游客下载选项 function disable_down(source, des, hint){ if (source.attr("checked")){ From 3856ed80330705f5e346252d7ba8c147efa0b7a2 Mon Sep 17 00:00:00 2001 From: huang Date: Thu, 1 Sep 2016 11:00:34 +0800 Subject: [PATCH 27/38] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E9=9A=90=E8=97=8F?= =?UTF-8?q?=E4=B9=8B=E8=B5=84=E6=BA=90=E5=8F=91=E9=80=81=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E7=BB=84=E7=BB=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../users/_resource_share_for_orgs.html.erb | 17 ++++++++++++----- .../_resource_share_for_project_popup.html.erb | 17 ++++++++++++----- 2 files changed, 24 insertions(+), 10 deletions(-) diff --git a/app/views/users/_resource_share_for_orgs.html.erb b/app/views/users/_resource_share_for_orgs.html.erb index 36d1c774f..b5aafcb7e 100644 --- a/app/views/users/_resource_share_for_orgs.html.erb +++ b/app/views/users/_resource_share_for_orgs.html.erb @@ -4,11 +4,18 @@ <% unless send_ids.blank? %> <% send_ids = send_ids.class == String ? send_ids : send_ids.join(",") %> <% end %> - + <% if @hidden_unproject %> + + <% else %> + + <% end %> <%= form_tag search_user_org_user_path(user, :type => @type),:method => 'get', :remote=>true,:id=>'search_user_org_form' do %> diff --git a/app/views/users/_resource_share_for_project_popup.html.erb b/app/views/users/_resource_share_for_project_popup.html.erb index b521bcb90..41133a91e 100644 --- a/app/views/users/_resource_share_for_project_popup.html.erb +++ b/app/views/users/_resource_share_for_project_popup.html.erb @@ -5,11 +5,18 @@ <% unless send_ids.blank? %> <% send_ids = send_ids.class == String ? send_ids : send_ids.join(",") %> <% end %> - + <% if @hidden_unproject %> + + <% else %> + + <% end %>
            From b2aba0f0bc073e33030ec87ac8da360f174b9295 Mon Sep 17 00:00:00 2001 From: huang Date: Thu, 1 Sep 2016 11:12:56 +0800 Subject: [PATCH 28/38] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E9=9A=90=E8=97=8F?= =?UTF-8?q?=E4=B9=8B=20=E6=96=B0=E9=97=BB=E5=8F=91=E9=80=81=E9=9A=90?= =?UTF-8?q?=E8=97=8F=E8=AF=BE=E7=A8=8B=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/users/_project_news.html.erb | 7 ++++++- app/views/users/_share_news_to_org.html.erb | 17 ++++++++++++----- app/views/users/_share_news_to_project.html.erb | 17 ++++++++++++----- 3 files changed, 30 insertions(+), 11 deletions(-) diff --git a/app/views/users/_project_news.html.erb b/app/views/users/_project_news.html.erb index 4c7ec2b04..284f5b821 100644 --- a/app/views/users/_project_news.html.erb +++ b/app/views/users/_project_news.html.erb @@ -35,7 +35,12 @@
          • <% if User.current.logged? %>
              -
            • <%= link_to("发送", 'javascript:void(0)',:class => "postOptionLink",:onclick=>"show_send('#{activity.id}',#{User.current.id},'news')") %>
            • + <% if hidden_unproject_infos %> +
            • <%= link_to("发送", 'javascript:void(0)',:class => "postOptionLink",:onclick=>"show_send('#{activity.id}',#{User.current.id},'news')") %>
            • + <% else %> +
            • <%= link_to("发送", 'javascript:void(0)',:class => "postOptionLink",:onclick=>"show_send_hidden('#{activity.id}',#{User.current.id},'news')") %>
            • + <% end %> +
            • <%= link_to( l(:button_edit), diff --git a/app/views/users/_share_news_to_org.html.erb b/app/views/users/_share_news_to_org.html.erb index 85d5e7104..c40e05199 100644 --- a/app/views/users/_share_news_to_org.html.erb +++ b/app/views/users/_share_news_to_org.html.erb @@ -1,11 +1,18 @@
              发送到
              - + <% if @hidden_unproject %> + + <% else %> + + <% end %>
              <%= form_tag search_user_org_user_path(user),:method => 'get', :remote=>true,:id=>'search_user_org_form' do %> diff --git a/app/views/users/_share_news_to_project.html.erb b/app/views/users/_share_news_to_project.html.erb index d4c293304..c9c60198f 100644 --- a/app/views/users/_share_news_to_project.html.erb +++ b/app/views/users/_share_news_to_project.html.erb @@ -2,11 +2,18 @@
              发送到
              - + <% if @hidden_unproject %> + + <% else %> + + <% end %>
              From efa162fdebed98bac0af00108640cefba516a60a Mon Sep 17 00:00:00 2001 From: huang Date: Thu, 1 Sep 2016 11:16:09 +0800 Subject: [PATCH 29/38] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E9=9A=90=E8=97=8F?= =?UTF-8?q?=E4=B9=8B=E7=BB=84=E7=BB=87=E8=B5=84=E6=BA=90=E5=8F=91=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/files/_org_subfield_list.html.erb | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/views/files/_org_subfield_list.html.erb b/app/views/files/_org_subfield_list.html.erb index e567435a5..de37ed054 100644 --- a/app/views/files/_org_subfield_list.html.erb +++ b/app/views/files/_org_subfield_list.html.erb @@ -63,7 +63,11 @@
            • <% if (delete_allowed || User.current.id == file.author_id) && file.container_id == org_subfield.id && file.container_type == "OrgSubfield" %>
                -
              • <%= link_to("发       送".html_safe, 'javascript:void(0)',:class => "postOptionLink",:onclick=>"show_send('#{file.id}','#{User.current.id}','file')") %>
              • + <% if hidden_unproject_infos %> +
              • <%= link_to("发       送".html_safe, 'javascript:void(0)',:class => "postOptionLink",:onclick=>"show_send('#{file.id}','#{User.current.id}','file')") %>
              • + <% else %> +
              • <%= link_to("发       送".html_safe, 'javascript:void(0)',:class => "postOptionLink",:onclick=>"show_send_hidden('#{file.id}','#{User.current.id}','file')") %>
              • + <% end %>
              • <%= link_to '更新版本',attachments_versions_path(file),:class => "postOptionLink",:remote=>true %>
              • <% if file.container.try(:organization).try(:is_public?) %>
              • From 1444511fd9b78d67a128d43553b296b518950827 Mon Sep 17 00:00:00 2001 From: huang Date: Thu, 1 Sep 2016 11:18:07 +0800 Subject: [PATCH 30/38] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E9=9A=90=E8=97=8F?= =?UTF-8?q?=E4=B9=8B=20=E9=A1=B9=E7=9B=AE=E8=AE=A8=E8=AE=BA=E5=8C=BA?= =?UTF-8?q?=E8=AF=A6=E6=83=85=E9=A1=B5=E9=9D=A2=20=E5=8F=91=E9=80=81?= =?UTF-8?q?=E9=9A=90=E8=97=8F=E8=AF=BE=E7=A8=8B=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/messages/_project_show.html.erb | 6 +++++- app/views/users/_share_message_to_org.html.erb | 17 ++++++++++++----- .../users/_share_message_to_project.html.erb | 17 ++++++++++++----- 3 files changed, 29 insertions(+), 11 deletions(-) diff --git a/app/views/messages/_project_show.html.erb b/app/views/messages/_project_show.html.erb index ff358f7c3..41c2f7d1f 100644 --- a/app/views/messages/_project_show.html.erb +++ b/app/views/messages/_project_show.html.erb @@ -116,7 +116,11 @@ ) if @message.destroyable_by?(User.current) %>
              • <% end %> -
              • <%= link_to "发送", "javascript:void(0);", :onclick => "show_send(#{@message.id},#{User.current.id},'message');", :class => 'postOptionLink' %>
              • + <% if hidden_unproject_infos %> +
              • <%= link_to "发送", "javascript:void(0);", :onclick => "show_send(#{@message.id},#{User.current.id},'message');", :class => 'postOptionLink' %>
              • + <% else %> +
              • <%= link_to "发送", "javascript:void(0);", :onclick => "show_send_hidden(#{@message.id},#{User.current.id},'message');", :class => 'postOptionLink' %>
              • + <% end %>
            diff --git a/app/views/users/_share_message_to_org.html.erb b/app/views/users/_share_message_to_org.html.erb index 37575a8d5..8c1d81140 100644 --- a/app/views/users/_share_message_to_org.html.erb +++ b/app/views/users/_share_message_to_org.html.erb @@ -1,11 +1,18 @@
            发送到
            - + <% if @hidden_unproject %> + + <% else %> + + <% end %>
            <%= form_tag search_user_org_user_path(user),:method => 'get', :remote=>true,:id=>'search_user_org_form' do %> diff --git a/app/views/users/_share_message_to_project.html.erb b/app/views/users/_share_message_to_project.html.erb index 89b36e22a..21abd85de 100644 --- a/app/views/users/_share_message_to_project.html.erb +++ b/app/views/users/_share_message_to_project.html.erb @@ -2,11 +2,18 @@
            发送到
            - + <% if @hidden_unproject %> + + <% else %> + + <% end %>
            From d4f8bd29f418c80c339bcef7384c36bbd943f0f7 Mon Sep 17 00:00:00 2001 From: yuanke <249218296@qq.com> Date: Thu, 1 Sep 2016 11:18:42 +0800 Subject: [PATCH 31/38] =?UTF-8?q?=E7=8F=AD=E7=BA=A7=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E6=88=90=E5=91=98=E7=AE=A1=E7=90=86BUG=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/apis/courses.rb | 2 +- app/api/mobile/apis/projects.rb | 2 +- app/api/mobile/entities/project.rb | 1 + app/services/courses_service.rb | 1 - app/services/projects_service.rb | 2 +- public/assets/wechat/class.html | 4 ++-- public/javascripts/wechat/controllers/class.js | 5 +++++ public/javascripts/wechat/controllers/join_class.js | 5 ++++- public/javascripts/wechat/controllers/join_project.js | 5 ++++- public/javascripts/wechat/controllers/project.js | 11 +++++++++++ 10 files changed, 30 insertions(+), 8 deletions(-) diff --git a/app/api/mobile/apis/courses.rb b/app/api/mobile/apis/courses.rb index c8b67448e..b5af07a09 100644 --- a/app/api/mobile/apis/courses.rb +++ b/app/api/mobile/apis/courses.rb @@ -685,7 +685,7 @@ module Mobile roles_ids << role.id end - if my_member && roles_ids.include?(3) + if my_member && (roles_ids.include?(3) || roles_ids.include?(7) || roles_ids.include?(9) ) #删除该成员 cs = CoursesService.new status = cs.delete_course_member(c,params[:user_id].to_i,current_user) diff --git a/app/api/mobile/apis/projects.rb b/app/api/mobile/apis/projects.rb index 665d068ae..ecd850fd8 100644 --- a/app/api/mobile/apis/projects.rb +++ b/app/api/mobile/apis/projects.rb @@ -336,7 +336,7 @@ module Mobile out = {status: status} message = case status when 0; "退出项目成功" - when -3; "您不在项目中" + when -3; "您不是该项目成员" when -1; "您还未登录" when -2; "项目创建者不能退出项目" else; "未知错误,请稍后再试" diff --git a/app/api/mobile/entities/project.rb b/app/api/mobile/entities/project.rb index 8da151b42..eef7a9c92 100644 --- a/app/api/mobile/entities/project.rb +++ b/app/api/mobile/entities/project.rb @@ -3,6 +3,7 @@ module Mobile class Project < Grape::Entity expose :name expose :id + expose :is_public expose :user_id expose :invite_code expose :qrcode diff --git a/app/services/courses_service.rb b/app/services/courses_service.rb index f23b59dcb..f184fa923 100644 --- a/app/services/courses_service.rb +++ b/app/services/courses_service.rb @@ -1295,7 +1295,6 @@ class CoursesService member = course.members.where("user_id=?",user_id).first if member != nil - member.destroy user_admin = CourseInfos.where("user_id = ? and course_id = ?", member.user_id, course.id) if user_admin.size > 0 diff --git a/app/services/projects_service.rb b/app/services/projects_service.rb index ea2350495..f3679aa22 100644 --- a/app/services/projects_service.rb +++ b/app/services/projects_service.rb @@ -404,7 +404,7 @@ class ProjectsService end members = Member.where(:user_id => user.id, :project_id=>project.id).first - if members != nil && members.roles.first.to_s != "Manager" + if members != nil members.destroy # 移出的时候删除申请消息,不需要删除消息,所以不必要关联删除 applied_projects = AppliedProject.where(:project_id => project.id, :user_id => members.user_id).first diff --git a/public/assets/wechat/class.html b/public/assets/wechat/class.html index 706cf5206..f81b4f5f0 100644 --- a/public/assets/wechat/class.html +++ b/public/assets/wechat/class.html @@ -239,7 +239,7 @@
            {{teacher.name}} - + 管理员 助教
            @@ -255,7 +255,7 @@
            我的同学
            {{student.name}} - +
            diff --git a/public/javascripts/wechat/controllers/class.js b/public/javascripts/wechat/controllers/class.js index fdd5bcd71..2e3ab4b22 100644 --- a/public/javascripts/wechat/controllers/class.js +++ b/public/javascripts/wechat/controllers/class.js @@ -340,6 +340,11 @@ app.controller('ClassController', ['$scope', 'config','$http', 'auth','$location if(response.data.status == 0){ vm.alertService.showMessage('提示', response.data.message,function(){ //确定 + rms.save('course_activities_page',0); + rms.save("course_activities",[]); + rms.save("course_has_more",false); + rms.save("course",null); + rms.save("tab_num",null); rms.save('syllabuses',[]); $location.path("/class_list"); }); diff --git a/public/javascripts/wechat/controllers/join_class.js b/public/javascripts/wechat/controllers/join_class.js index 1a9710bc1..006fa0b59 100644 --- a/public/javascripts/wechat/controllers/join_class.js +++ b/public/javascripts/wechat/controllers/join_class.js @@ -21,7 +21,9 @@ app.controller('JoinClassController', ['$scope', '$http', 'auth', 'config', 'ale // window.history.back(); // }); if(tag){ - window.history.back(); + rms.save('syllabuses',[]); + $location.path("/class_list"); +// window.history.back(); } else{ wx.closeWindow(); @@ -55,6 +57,7 @@ app.controller('JoinClassController', ['$scope', '$http', 'auth', 'config', 'ale }).then(function(response){ if(response.data.status == 0){ vm.alertService.showMessage('提示', response.data.message,function(){ + rms.save('syllabuses',[]); $location.path("/class_list"); }); } else { diff --git a/public/javascripts/wechat/controllers/join_project.js b/public/javascripts/wechat/controllers/join_project.js index d942e8859..2e8f9a269 100644 --- a/public/javascripts/wechat/controllers/join_project.js +++ b/public/javascripts/wechat/controllers/join_project.js @@ -15,7 +15,9 @@ app.controller('JoinProjectController', ['$scope', '$http', 'auth', 'config', 'a vm.cancel = function(){ if(tag){ - window.history.back(); +// window.history.back(); + rms.save('projects',[]); + $location.path("/project_list"); } else{ wx.closeWindow(); @@ -47,6 +49,7 @@ app.controller('JoinProjectController', ['$scope', '$http', 'auth', 'config', 'a }).then(function(response){ if(response.data.status == 0){ vm.alertService.showMessage('提示', response.data.message,function(){ + rms.save('projects',[]); $location.path("/project_list"); }); } else { diff --git a/public/javascripts/wechat/controllers/project.js b/public/javascripts/wechat/controllers/project.js index 3f90917b4..1bdb2f1e0 100644 --- a/public/javascripts/wechat/controllers/project.js +++ b/public/javascripts/wechat/controllers/project.js @@ -266,6 +266,17 @@ app.controller('ProjectController', ['$scope', 'config','$http','$timeout', 'aut if(response.data.status == 0){ vm.alertService.showMessage('提示', response.data.message,function(){ //确定 + rms.save('project_activities_page',0); + rms.save("project_activities",[]); + rms.save("project_has_more",false); + rms.save("project",null); + rms.save("project_master_members",[]); + rms.save("project_develop_members",[]); + rms.save("project_report_members",[]); + rms.save("review_master_members",[]); + rms.save("review_develop_members",[]); + + rms.save('tab_num',null); rms.save('projects',[]); $location.path("/project_list"); }); From c51f725a78c612c72d342a46fd966156077c46e8 Mon Sep 17 00:00:00 2001 From: huang Date: Thu, 1 Sep 2016 11:24:16 +0800 Subject: [PATCH 32/38] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E9=9A=90=E8=97=8F?= =?UTF-8?q?=E4=B9=8B=20=E9=A1=B9=E7=9B=AE=E5=8A=A8=E6=80=81=E4=B8=AD?= =?UTF-8?q?=E8=AE=A8=E8=AE=BA=E5=8C=BA=20=E6=96=B0=E9=97=BB=E5=8F=91?= =?UTF-8?q?=E9=80=81=E9=9A=90=E8=97=8F=E8=AF=BE=E7=A8=8B=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/projects/_project_news.html.erb | 7 ++++++- app/views/users/_project_message.html.erb | 6 +++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/app/views/projects/_project_news.html.erb b/app/views/projects/_project_news.html.erb index 161221526..6b3e8e43c 100644 --- a/app/views/projects/_project_news.html.erb +++ b/app/views/projects/_project_news.html.erb @@ -38,7 +38,12 @@
          • <% if User.current.logged? %>
              -
            • <%= link_to("发送", 'javascript:void(0)',:class => "postOptionLink",:onclick=>"show_send('#{activity.id}',#{User.current.id},'news')") %>
            • + <% if hidden_unproject_infos %> +
            • <%= link_to("发送", 'javascript:void(0)',:class => "postOptionLink",:onclick=>"show_send('#{activity.id}',#{User.current.id},'news')") %>
            • + <% else %> +
            • <%= link_to("发送", 'javascript:void(0)',:class => "postOptionLink",:onclick=>"show_send_hidden('#{activity.id}',#{User.current.id},'news')") %>
            • + <% end %> +
            • <%= link_to(l(:button_edit), {:controller => 'news', :action => 'edit', :id => activity}, :class => 'postOptionLink') if activity.author == User.current %>
            • diff --git a/app/views/users/_project_message.html.erb b/app/views/users/_project_message.html.erb index afc45efde..5ee3ff0ba 100644 --- a/app/views/users/_project_message.html.erb +++ b/app/views/users/_project_message.html.erb @@ -68,7 +68,11 @@ ) if activity.destroyable_by?(User.current) %> <% end %> -
            • <%= link_to "发送", "javascript:void(0);", :onclick => "show_send(#{activity.id}, #{User.current.id}, 'message');", :class => "postOptionLink" %>
            • + <% if hidden_unproject_infos %> +
            • <%= link_to "发送", "javascript:void(0);", :onclick => "show_send(#{activity.id}, #{User.current.id}, 'message');", :class => "postOptionLink" %>
            • + <% else %> +
            • <%= link_to "发送", "javascript:void(0);", :onclick => "show_send_hidden(#{activity.id}, #{User.current.id}, 'message');", :class => "postOptionLink" %>
            • + <% end %>
          From 4903064a5ba651aa1003e9927d757831f8f1f76b Mon Sep 17 00:00:00 2001 From: huang Date: Thu, 1 Sep 2016 12:18:39 +0800 Subject: [PATCH 33/38] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E9=9A=90=E8=97=8F?= =?UTF-8?q?=E4=B9=8B=20=E5=85=AC=E5=85=B1=E8=B5=84=E6=BA=90=E5=8F=B3?= =?UTF-8?q?=E9=94=AE=E5=8F=91=E9=80=81=E9=9A=90=E8=97=8F=E8=AF=BE=E7=A8=8B?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/users/_resources_list.html.erb | 27 ++++++++++++++++++++ app/views/users/_user_resource_info.html.erb | 6 ++++- 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/app/views/users/_resources_list.html.erb b/app/views/users/_resources_list.html.erb index 3f5138107..e6e9687f3 100644 --- a/app/views/users/_resources_list.html.erb +++ b/app/views/users/_resources_list.html.erb @@ -87,6 +87,33 @@ } + function show_send_hidden(){ + $("#contextMenu").hide(); + document.oncontextmenu = function() {return true;} + line.children().css("background-color",'white'); + id = line.children().last().html(); + user_id = line.children().eq(5).html(); + allow = line.children().eq(13).html(); + if( allow == 0){ + alert('您无权发送私有资源') + }else{ + if (lastSendType === '2'){ //如果已经发送过一次了,那么就应该沿用上次发送的类型。 + $.ajax({ + type: 'get', + url: '<%= search_user_project_user_path(User.current.id) %>' + "?send_id=" + id + "&type=<%= @type %>", + data:{send_type:'file'} + }); + }else{ + $.ajax({ + type: 'get', + url: '<%= search_user_project_user_path(User.current.id)%>' + "?send_id=" + id + "&type=<%= @type %>", + data:{send_type:'file'} + }); + } + } + + } + function batch_send(){ if($("#resources_list_form").serialize() == ""){ alert('暂时不支持多页选择,您当前页没有选择任何资源'); diff --git a/app/views/users/_user_resource_info.html.erb b/app/views/users/_user_resource_info.html.erb index e00489193..89f10e87b 100644 --- a/app/views/users/_user_resource_info.html.erb +++ b/app/views/users/_user_resource_info.html.erb @@ -45,7 +45,11 @@
        • 预览
        • 重命名
        • -
        • 发送
        • + <% if hidden_unproject_infos %> +
        • 发送
        • + <% else %> +
        • 发送
        • + <% end %>
        • 删除
      From 5527b4e3a9c39c1290b7037de5ed7cfcc4aa83cb Mon Sep 17 00:00:00 2001 From: huang Date: Thu, 1 Sep 2016 12:25:35 +0800 Subject: [PATCH 34/38] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E9=9A=90=E8=97=8F?= =?UTF-8?q?=E4=B9=8B=20=E5=85=AC=E5=85=B1=E8=B5=84=E6=BA=90=E5=BA=93?= =?UTF-8?q?=E5=BA=95=E7=AB=AF=E5=8F=91=E9=80=81=E9=9A=90=E8=97=8F=E8=AF=BE?= =?UTF-8?q?=E7=A8=8B=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/users/_resources_list.html.erb | 29 ++++++++++++++++++++ app/views/users/_user_resource_info.html.erb | 12 ++++++-- 2 files changed, 38 insertions(+), 3 deletions(-) diff --git a/app/views/users/_resources_list.html.erb b/app/views/users/_resources_list.html.erb index e6e9687f3..77a2386fe 100644 --- a/app/views/users/_resources_list.html.erb +++ b/app/views/users/_resources_list.html.erb @@ -148,6 +148,35 @@ } } +// 隐藏非项目信息特用 + function batch_send_hidden(){ + if($("#resources_list_form").serialize() == ""){ + alert('暂时不支持多页选择,您当前页没有选择任何资源'); + return ; + } + if (lastSendType === '1'){ + $.ajax({ + type: 'get', + url: '<%= search_user_project_user_path(User.current.id) %>' + '?' + $("#resources_list_form").serialize() + "&type=<%= @type %>", + data:{send_type:'file'} + }); + }else if (lastSendType === '2'){ + $.ajax({ + type: 'get', + url: '<%= search_user_org_user_path(User.current.id) %>' + '?' + $("#resources_list_form").serialize() + "&type=<%= @type %>", + data:{send_type:'file'} + }); + } + else{ + $.ajax({ + type: 'get', + url: '<%= search_user_project_user_path(User.current.id)%>' + '?'+ $("#resources_list_form").serialize() + "&type=<%= @type %>", + data:{send_type:'file'} + }); + + } + } + function preview(){ $("#contextMenu").hide(); document.oncontextmenu = function() {return true;} diff --git a/app/views/users/_user_resource_info.html.erb b/app/views/users/_user_resource_info.html.erb index 89f10e87b..d3b169a17 100644 --- a/app/views/users/_user_resource_info.html.erb +++ b/app/views/users/_user_resource_info.html.erb @@ -23,9 +23,15 @@ 删除
      -
      - 发送至 -
      + <% if hidden_unproject_infos %> +
      + 发送至 +
      + <% else %> +
      + 发送至 +
      + <% end %>
      选择 0 个资源
      From a6241afe04814f169cf8e9b713114c156e009d5f Mon Sep 17 00:00:00 2001 From: yuanke <249218296@qq.com> Date: Thu, 1 Sep 2016 13:36:27 +0800 Subject: [PATCH 35/38] . --- .../wechat/directives/iphone_recognize.js | 43 +++---------------- 1 file changed, 5 insertions(+), 38 deletions(-) diff --git a/public/javascripts/wechat/directives/iphone_recognize.js b/public/javascripts/wechat/directives/iphone_recognize.js index 3f6acf7c3..f3b167b96 100644 --- a/public/javascripts/wechat/directives/iphone_recognize.js +++ b/public/javascripts/wechat/directives/iphone_recognize.js @@ -12,48 +12,15 @@ app.directive('iphoneRecognize',["$timeout",function(timer){ element.css({"position":"relative","padding":"1px 0"}); $(".post-wrapper").css("marginBottom","0"); $("#all_homework_reply").css("marginBottom","0"); -// window.scrollTo(0,contentHeight); - } + window.scrollTo(0,contentHeight); + }; if (/ipad|iphone|mac/i.test(navigator.userAgent)){ - //开始编辑输入框的时候,软键盘出现,执行此事件 - -(void)textFieldDidBeginEditing:(UITextField *)textlab - { - //获取当前输入框的位置信息 - CGRect frame = textlab.frame; - //获取键盘底部位置与键盘最高点之间的距离,键盘高度256 - int offset = frame.origin.y + frame.size.height - (self.view.frame.size.height - 256.0); - //设置视图上升的时间 - NSTimeInterval animaTime = 0.30f; - //字符串随意也行... - [UIView beginAnimations:@"ResizeForKeyboard" context:nil]; - //添加视图上的上升时间0.3f - [UIView setAnimationDuration:animaTime]; - - //将视图的Y坐标向上移动offset个单位,以使下面腾出地方用于软键盘的显示 - if(offset > 0) - self.view.frame = CGRectMake(0.0f, -offset, self.view.frame.size.width, self.view.frame.size.height); - //提交动画 - [UIView commitAnimations]; - } - //当用户按下return键或者按回车键,keyboard消失 - -(BOOL)textFieldShouldReturn:(UITextField *)textField - { - //收回键盘第一响应者意思... - [textField resignFirstResponder]; - return YES; - } - -//输入框编辑完成以后,将视图恢复到原始状态 - -(void)textFieldDidEndEditing:(UITextField *)textField - { - self.view.frame =CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height); - } $("#postInput1").bind('focus',function(){ toBottom(); }); -// $("#postInput1,#replyBlock").bind("click",function(){ -// toBottom(); -// }); + $("#postInput1,#replyBlock").bind("click",function(){ + toBottom(); + }); $("#postInput1").bind('blur',function(){ element.css("position","fixed"); $(".post-wrapper").css("marginBottom","10px"); From 7c928703b5c06a769d889ac89cd0acb5801ba6e7 Mon Sep 17 00:00:00 2001 From: yuanke <249218296@qq.com> Date: Thu, 1 Sep 2016 14:10:27 +0800 Subject: [PATCH 36/38] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=80=81=E5=B8=88?= =?UTF-8?q?=E6=97=A0=E6=B3=95=E4=BF=AE=E6=94=B9=E7=8F=AD=E7=BA=A7=E6=88=90?= =?UTF-8?q?=E5=91=98=E8=A7=92=E8=89=B2=E7=9A=84BUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/apis/courses.rb | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/app/api/mobile/apis/courses.rb b/app/api/mobile/apis/courses.rb index b5af07a09..a42ebd470 100644 --- a/app/api/mobile/apis/courses.rb +++ b/app/api/mobile/apis/courses.rb @@ -569,14 +569,20 @@ module Mobile roles_id << 10 end - c = Course.find("#{params[:id]}") + my_member = c.member_principals.where("users.id=#{current_user.id}").first + + rolesids = [] + my_member.roles.each do |role| + rolesids << role.id + end + #7教辅 9教师 10学生 - if c.tea_id == params[:user_id] || c.tea_id != current_user.id || roles_id.length <= 0 + if c.tea_id == params[:user_id] || roles_id.length <= 0 || rolesids.include?(10) present :status, -1 + present :message,"修改失败" else - cs = CoursesService.new status = cs.modify_user_course_role params,roles_id present :status, status From 05e72dcc7b7f3996386a7c8c4a955dd39e62637a Mon Sep 17 00:00:00 2001 From: yuanke <249218296@qq.com> Date: Thu, 1 Sep 2016 14:17:14 +0800 Subject: [PATCH 37/38] =?UTF-8?q?=E6=95=99=E5=B8=88=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E8=A7=92=E8=89=B2=E7=9A=84BUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/apis/courses.rb | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/app/api/mobile/apis/courses.rb b/app/api/mobile/apis/courses.rb index a42ebd470..cbf8f4986 100644 --- a/app/api/mobile/apis/courses.rb +++ b/app/api/mobile/apis/courses.rb @@ -579,13 +579,16 @@ module Mobile end #7教辅 9教师 10学生 - if c.tea_id == params[:user_id] || roles_id.length <= 0 || rolesids.include?(10) + if c.tea_id == params[:user_id] || roles_id.length <= 0 present :status, -1 present :message,"修改失败" - else + elsif rolesids.include?(3) || rolesids.include?(7) || rolesids.include?(9) cs = CoursesService.new status = cs.modify_user_course_role params,roles_id present :status, status + else + present :status, -1 + present :message,"修改失败" end end From 742c84bb261e49b54994b0f5b4e98b02f9ef3afd Mon Sep 17 00:00:00 2001 From: huang Date: Thu, 1 Sep 2016 14:30:56 +0800 Subject: [PATCH 38/38] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E9=9A=90=E8=97=8F?= =?UTF-8?q?=E4=B9=8B=20issue=E8=AF=A6=E6=83=85=E9=A1=B5=E9=9D=A2=E5=8F=91?= =?UTF-8?q?=E9=80=81=E9=9A=90=E8=97=8F=E8=AF=BE=E7=A8=8B=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/news/_project_show.html.erb | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/views/news/_project_show.html.erb b/app/views/news/_project_show.html.erb index 1e3a83c9a..26393f7cb 100644 --- a/app/views/news/_project_show.html.erb +++ b/app/views/news/_project_show.html.erb @@ -26,7 +26,11 @@
        • -
        • <%= link_to("发送", 'javascript:void(0)',:class => "postOptionLink",:onclick=>"show_send('#{@news.id}','#{User.current.id}','news')") %>
        • + <% if hidden_unproject_infos %> +
        • <%= link_to("发送", 'javascript:void(0)',:class => "postOptionLink",:onclick=>"show_send('#{@news.id}','#{User.current.id}','news')") %>
        • + <% else %> +
        • <%= link_to("发送", 'javascript:void(0)',:class => "postOptionLink",:onclick=>"show_send_hidden('#{@news.id}','#{User.current.id}','news')") %>
        • + <% end %>
        • <%= link_to( l(:button_edit),