From a3a92a19f962610afaaa71eb2ce4042c1fc112a0 Mon Sep 17 00:00:00 2001 From: cxt Date: Fri, 15 Apr 2016 18:50:38 +0800 Subject: [PATCH 01/98] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E8=BF=81=E7=A7=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/schema.rb | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/db/schema.rb b/db/schema.rb index 7c1efce6d..6ee190852 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended to check this file into your version control system. -ActiveRecord::Schema.define(:version => 20160330103916) do +ActiveRecord::Schema.define(:version => 20160414055511) do create_table "activities", :force => true do |t| t.integer "act_id", :null => false @@ -1290,6 +1290,7 @@ ActiveRecord::Schema.define(:version => 20160330103916) do t.datetime "updated_at", :null => false t.string "field_type" t.integer "hide", :default => 0 + t.integer "status", :default => 1 end create_table "organizations", :force => true do |t| @@ -1302,6 +1303,7 @@ ActiveRecord::Schema.define(:version => 20160330103916) do t.datetime "updated_at", :null => false t.boolean "allow_guest_download", :default => true t.integer "visits", :default => 0 + t.integer "show_mode", :default => 0 end create_table "phone_app_versions", :force => true do |t| @@ -1684,8 +1686,8 @@ ActiveRecord::Schema.define(:version => 20160330103916) do t.integer "absence_penalty", :default => 0 t.float "system_score", :default => 0.0 t.boolean "is_test", :default => false - t.integer "simi_id", :default => 0 - t.integer "simi_value", :default => 0 + t.integer "simi_id" + t.integer "simi_value" end add_index "student_works", ["homework_common_id", "user_id"], :name => "index_student_works_on_homework_common_id_and_user_id" From 6ea1a605c9c3bcd7c3e26b3514fee255ecd445d3 Mon Sep 17 00:00:00 2001 From: txz Date: Mon, 11 Jul 2016 10:37:56 +0800 Subject: [PATCH 02/98] =?UTF-8?q?flex=E5=B8=83=E5=B1=80=E5=85=BC=E5=AE=B9c?= =?UTF-8?q?ss=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/stylesheets/weui/weixin.css | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/public/stylesheets/weui/weixin.css b/public/stylesheets/weui/weixin.css index 1f758d296..3288f64ba 100644 --- a/public/stylesheets/weui/weixin.css +++ b/public/stylesheets/weui/weixin.css @@ -82,15 +82,15 @@ a.underline {text-decoration:underline;} .btn2 {width:145px; height:35px; color:#fff; font-size:15px; line-height:35px; text-align:center; vertical-align:middle; margin:18px auto 20px auto; border-radius:50px; display:block;} /*tab*/ -.tab-wrap {position:relative; line-height:38px; display:flex; font-size:13px; background-color:#fff;} -.tab-wrap a {position:relative; display:block; flex:1;} +.tab-wrap {position:relative; line-height:38px; display:-webkit-box; display:-moz-box; display:-ms-flexbox; display:-webkit-flex; display:flex; font-size:13px; background-color:#fff;} +.tab-wrap a {position:relative; display:block; -webkit-box-flex:1; -moz-box-flex:1; -ms-flex:1; flex:1;} .tab-wrap a:first-child:after {display:none;} .tab-wrap a:after {content:" "; position:absolute; left:0; top:0; width:1px; height:100%; border-left:1px solid #ccc; color:#707070;} .weixin-tab {text-align:center; border-bottom:1px solid #ccc;} /*bottom-tab*/ -.bottom-tab-wrap {position:fixed; width:100%; bottom:0; line-height:38px; display:flex; font-size:13px; background-color:#fff;} -.bottom-tab-wrap a {display:block; flex:1; position:relative;} +.bottom-tab-wrap {position:fixed; width:100%; bottom:0; line-height:38px; display:-webkit-box; display:-moz-box; display:-ms-flexbox; display:-webkit-flex; display:flex; font-size:13px; background-color:#fff;} +.bottom-tab-wrap a {display:block; -webkit-box-flex:1; -moz-box-flex:1; -ms-flex:1; flex:1; position:relative;} .bottom-tab-wrap a:after {content:" "; position:absolute; left:0; top:0; width:1px; height:100%; border-left:1px solid #ccc; color:#707070;} /*动态样式*/ From 2e75fa4b236e3143f1fdfe8e46e58bf880c56b67 Mon Sep 17 00:00:00 2001 From: txz Date: Mon, 11 Jul 2016 10:42:07 +0800 Subject: [PATCH 03/98] =?UTF-8?q?=E8=AF=BE=E7=A8=8B=E5=8A=A8=E6=80=81?= =?UTF-8?q?=E4=B8=AD=E6=96=B0=E5=BB=BA=E8=AF=BE=E7=A8=8B=E6=94=B9=E4=B8=BA?= =?UTF-8?q?=E6=96=B0=E5=BB=BA=E7=8F=AD=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/assets/wechat/activities.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/assets/wechat/activities.html b/public/assets/wechat/activities.html index 60075ad2e..2da072cd8 100644 --- a/public/assets/wechat/activities.html +++ b/public/assets/wechat/activities.html @@ -436,7 +436,7 @@
- +
From 114512d3d9ccc134011ff166b0bb03e32c018ed7 Mon Sep 17 00:00:00 2001 From: txz Date: Mon, 11 Jul 2016 11:05:49 +0800 Subject: [PATCH 04/98] =?UTF-8?q?=E8=B5=84=E6=BA=90=E5=AE=BD=E5=BA=A6?= =?UTF-8?q?=E9=99=90=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/assets/wechat/myresource.html | 6 +++--- public/stylesheets/weui/weixin.css | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/public/assets/wechat/myresource.html b/public/assets/wechat/myresource.html index de21b7136..6d93d026f 100644 --- a/public/assets/wechat/myresource.html +++ b/public/assets/wechat/myresource.html @@ -11,17 +11,17 @@
-
{{r.filename}}发送
+
发送

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

-
{{r.homework_name}}
+

暂无作业,
请登录Trustie网站,在PC浏览器中创建作业。

-
{{r.exercise_name}}
+

暂无测验,
请登录Trustie网站,在PC浏览器中创建测验。

diff --git a/public/stylesheets/weui/weixin.css b/public/stylesheets/weui/weixin.css index 3288f64ba..7fea4bc67 100644 --- a/public/stylesheets/weui/weixin.css +++ b/public/stylesheets/weui/weixin.css @@ -188,6 +188,7 @@ a.underline {text-decoration:underline;} .class-test-tip {text-align:center; font-size:13px; color:#444; padding-top:40px;} .img-circle {border-radius:50%;} .member-banner {height:24px; line-height:24px; text-align:center; vertical-align:middle; background-color:#dfdfdf;} +.resource-width {width:80%;} /*20160614班级列表*/ .course-list-row {width:100%; height:38px; line-height:38px; vertical-align:middle; border-top:1px solid #ccc; border-bottom:1px solid #ccc; background-color:#fff;} From 0093a0a50957965ff39f862f7d0e9e15f0740271 Mon Sep 17 00:00:00 2001 From: txz Date: Mon, 11 Jul 2016 14:23:53 +0800 Subject: [PATCH 05/98] =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E9=82=80=E8=AF=B7?= =?UTF-8?q?=E6=8F=90=E7=A4=BA=E6=96=87=E5=AD=97=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/assets/wechat/invite_code.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/public/assets/wechat/invite_code.html b/public/assets/wechat/invite_code.html index 1aa0c8830..abf588909 100644 --- a/public/assets/wechat/invite_code.html +++ b/public/assets/wechat/invite_code.html @@ -10,7 +10,7 @@

+ 2.长按二维码,通过“识别图中二维码”功能加入班级
+ 3.通过“加入班级”菜单输入邀请码加入班级(长按邀请码可以复制哦~) \ No newline at end of file From bd29859a28ffcf000861b42787868b5ad19b171c Mon Sep 17 00:00:00 2001 From: txz Date: Mon, 11 Jul 2016 14:46:35 +0800 Subject: [PATCH 06/98] =?UTF-8?q?=E5=88=9B=E5=BB=BA=E8=AF=BE=E7=A8=8B?= =?UTF-8?q?=E5=92=8C=E5=8F=82=E4=B8=8E=E8=AF=BE=E7=A8=8B=E5=8C=BA=E5=88=86?= =?UTF-8?q?=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/assets/wechat/class_list.html | 16 +++++++++++++++- public/stylesheets/weui/weixin.css | 1 + 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/public/assets/wechat/class_list.html b/public/assets/wechat/class_list.html index b215db763..69a3db43c 100644 --- a/public/assets/wechat/class_list.html +++ b/public/assets/wechat/class_list.html @@ -3,7 +3,21 @@
课程列表
-
{{syllabus.title}}
+
我创建的课程
+
{{syllabus.title}}
+
    +
  • + + + > + {{course.member_count}}人 +
  • +
+
+ +
+
我参与的课程
+
{{syllabus.title}}
  • diff --git a/public/stylesheets/weui/weixin.css b/public/stylesheets/weui/weixin.css index 7fea4bc67..2f9ad7e88 100644 --- a/public/stylesheets/weui/weixin.css +++ b/public/stylesheets/weui/weixin.css @@ -191,6 +191,7 @@ a.underline {text-decoration:underline;} .resource-width {width:80%;} /*20160614班级列表*/ +.course-diff-row {width:100%; height:28px; line-height:28px; vertical-align:middle; background-color:#fff;} .course-list-row {width:100%; height:38px; line-height:38px; vertical-align:middle; border-top:1px solid #ccc; border-bottom:1px solid #ccc; background-color:#fff;} .class-list {width:100%; border-bottom:1px solid #ccc;} .class-list li {height:40px; line-height:40px; vertical-align:middle; margin:0 25px; border-left:1px solid #ccc; border-bottom:1px solid #ccc; position:relative;} From 374aa9918c27167466ef7dc60699cf3b078fc61f Mon Sep 17 00:00:00 2001 From: yuanke <249218296@qq.com> Date: Mon, 11 Jul 2016 14:49:59 +0800 Subject: [PATCH 07/98] =?UTF-8?q?=E6=88=91=E7=9A=84=E8=B5=84=E6=BA=90?= =?UTF-8?q?=E9=87=8C=E9=9D=A2=E9=83=BD=E6=98=BE=E7=A4=BA=E6=9C=AA=E5=8F=91?= =?UTF-8?q?=E5=B8=83=E7=9A=84=EF=BC=8C=E6=96=B0=E5=BB=BA=E8=AF=BE=E7=A8=8B?= =?UTF-8?q?=E5=90=8E=E8=BF=94=E5=9B=9E=E4=BC=9A=E5=88=B7=E6=96=B0=E6=95=B0?= =?UTF-8?q?=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/apis/resources.rb | 10 ++++-- app/services/resources_service.rb | 36 +++++++++++++++++++ .../wechat/controllers/new_class.js | 6 ++-- 3 files changed, 47 insertions(+), 5 deletions(-) diff --git a/app/api/mobile/apis/resources.rb b/app/api/mobile/apis/resources.rb index 6dfe8e599..9bd07a0d5 100644 --- a/app/api/mobile/apis/resources.rb +++ b/app/api/mobile/apis/resources.rb @@ -11,7 +11,9 @@ module Mobile end get do authenticate! - data = current_user.course_attachments + rs = ResourcesService.new + # data = current_user.course_attachments + data = rs.all_course_attachments current_user present :data, data, with: Mobile::Entities::Attachment present :status, 0 @@ -26,7 +28,8 @@ module Mobile get 'homeworks' do authenticate! - homeworks = current_user.homework_commons + rs = ResourcesService.new + homeworks = rs.all_homework_commons current_user present :data, homeworks, with: Mobile::Entities::Homework present :status, 0 @@ -40,7 +43,8 @@ module Mobile get 'exercies' do authenticate! - exercises = current_user.exercises + rs = ResourcesService.new + exercises = rs.all_exercises current_user present :data, exercises, with: Mobile::Entities::Exercise present :status, 0 end diff --git a/app/services/resources_service.rb b/app/services/resources_service.rb index a0fec585a..96034b4ce 100644 --- a/app/services/resources_service.rb +++ b/app/services/resources_service.rb @@ -50,4 +50,40 @@ class ResourcesService [@ori, @flag, @save_message] end + # 我的资源-课件 已发布的 + def all_course_attachments user + + courses = user.courses.not_deleted + + courses_ids = courses.empty? ? '(-1)' :"(" + courses.map(&:id).join(",") + ")" + + attchments = Attachment.where("(author_id = #{user.id} and is_publish = 1 and container_id in #{courses_ids} and container_type = 'Course') or (container_type = 'Course' and is_publish = 1 and container_id in #{courses_ids})" ).order("created_on desc") + + attchments + end + + # 我的资源-作业 已发布的 + def all_homework_commons user + + courses = user.courses.not_deleted + + courses_ids = courses.empty? ? '(-1)' :"(" + courses.map(&:id).join(",") + ")" + + homeworks = HomeworkCommon.where("course_id in #{courses_ids} and publish_time <= ?",Time.now.strftime("%Y-%m-%d")).order("created_at desc") + + homeworks + end + + # 我的资源-测验 已发布的 + def all_exercises user + + courses = user.courses.not_deleted + + courses_ids = courses.empty? ? '(-1)' :"(" + courses.map(&:id).join(",") + ")" + + exercises = Exercise.where("exercise_status <> 1 and course_id in #{courses_ids}").order("created_at desc") + + exercises + end + end \ No newline at end of file diff --git a/public/javascripts/wechat/controllers/new_class.js b/public/javascripts/wechat/controllers/new_class.js index ef46fc4ba..5e9f339a1 100644 --- a/public/javascripts/wechat/controllers/new_class.js +++ b/public/javascripts/wechat/controllers/new_class.js @@ -1,6 +1,6 @@ -app.controller('NewClassController', ['$scope', '$http', 'auth', 'config', 'alertService','$location', function($scope, $http, auth, config, alertService, $location){ +app.controller('NewClassController', ['$scope', '$http', 'auth', 'config', 'alertService','$location','rms', function($scope, $http, auth, config, alertService, $location,rms){ var vm = $scope; vm.alertService = alertService.create(); @@ -40,7 +40,9 @@ app.controller('NewClassController', ['$scope', '$http', 'auth', 'config', 'aler vm.alertService.showMessage('出错了', response.data.message); } else { vm.alertService.showMessage('提示', '新建课程成功', function(){ - window.history.back(); +// window.history.back(); + rms.save('syllabuses',[]); + $location.path("/class_list"); }); } console.log(response.data.data); From cf304c2b683202dee98c135f872fd07a3df4909a Mon Sep 17 00:00:00 2001 From: txz Date: Mon, 11 Jul 2016 15:10:52 +0800 Subject: [PATCH 08/98] =?UTF-8?q?dot.png=E5=9B=BE=E7=89=87=E6=9B=B4?= =?UTF-8?q?=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/images/wechat/dot.png | Bin 27646 -> 29770 bytes public/images/wechat/dot2.png | Bin 0 -> 27646 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 public/images/wechat/dot2.png diff --git a/public/images/wechat/dot.png b/public/images/wechat/dot.png index bf1c0104e6d8c36a867507e927431299c758b9f8..e45863e9f42f422b9ce45f938a23c18ce880f724 100644 GIT binary patch delta 9787 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 V@AtuQ6e$S!D9NkIRm+$L{}(8flUV=& delta 7648 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 Z9P;I|Pw|=i_!D0HD`U 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 literal 0 HcmV?d00001 From 70ed5790b8b8ffdcb031471e4fab70043c123a40 Mon Sep 17 00:00:00 2001 From: yuanke <249218296@qq.com> Date: Mon, 11 Jul 2016 16:46:07 +0800 Subject: [PATCH 09/98] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=9C=A8=E5=8A=A8?= =?UTF-8?q?=E6=80=81=E8=AF=A6=E6=83=85=E7=82=B9=E8=B5=9E=E8=BF=94=E5=9B=9E?= =?UTF-8?q?=E5=92=8C=E7=82=B9=E8=B5=9E=E7=8A=B6=E6=80=81=E4=B8=8D=E4=B8=80?= =?UTF-8?q?=E8=87=B4=E7=9A=84BUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/assets/wechat/class_list.html | 47 ++++++------- .../wechat/controllers/activity.js | 3 + public/javascripts/wechat/others/factory.js | 69 ++++++++++++++++++- 3 files changed, 93 insertions(+), 26 deletions(-) diff --git a/public/assets/wechat/class_list.html b/public/assets/wechat/class_list.html index 69a3db43c..dafce2cfc 100644 --- a/public/assets/wechat/class_list.html +++ b/public/assets/wechat/class_list.html @@ -1,34 +1,35 @@
    课程列表
    - -
    +
    我创建的课程
    -
    {{syllabus.title}}
    -
      -
    • - - - > - {{course.member_count}}人 -
    • -
    +
    +
    {{syllabus.title}}
    +
      +
    • + + + > + {{course.member_count}}人 +
    • +
    +
    - -
    +
    我参与的课程
    -
    {{syllabus.title}}
    -
      -
    • - - - > - {{course.member_count}}人 -
    • -
    +
    +
    {{syllabus.title}}
    +
      +
    • + + + > + {{course.member_count}}人 +
    • +
    +
    -
    新建课程 加入班级 diff --git a/public/javascripts/wechat/controllers/activity.js b/public/javascripts/wechat/controllers/activity.js index b89c46300..16a8e71d0 100644 --- a/public/javascripts/wechat/controllers/activity.js +++ b/public/javascripts/wechat/controllers/activity.js @@ -137,6 +137,9 @@ app.controller('ActivityController', //跳到详情页 $scope.goDetail = function(type, act_id,id){ rms.save("yoffset", window.document.body.scrollTop); + rms.save("activities",$scope.activities); + rms.save("course_activities",$scope.course_activities); + rms.save("project_activities",$scope.project_activities); $location.path('/'+type+'/'+act_id); } diff --git a/public/javascripts/wechat/others/factory.js b/public/javascripts/wechat/others/factory.js index 6acf25c59..64204dfca 100644 --- a/public/javascripts/wechat/others/factory.js +++ b/public/javascripts/wechat/others/factory.js @@ -86,7 +86,7 @@ app.factory('rms', function(){ return {save: save, get: get}; }); -app.factory('common', ['$http', 'auth', '$routeParams', function($http, auth, $routeParams){ +app.factory('common', ['$http', 'auth', '$routeParams','rms', function($http, auth, $routeParams,rms){ var addCommonReply = function(id, type, data, cb){ if(!data.comment || data.comment.length<=0){ @@ -174,8 +174,71 @@ app.factory('common', ['$http', 'auth', '$routeParams', function($http, auth, $r } }); }; - args.scope.addPraise = addCommonPraise; - args.scope.decreasePraise = decreaseCommonPraise; + +// 动态详情界面点赞与动态界面的数据要同步 保证进入详情点赞后出来显示一致 + args.scope.addPraise = function(act){ + activities = rms.get("activities") || []; + course_activities = rms.get("course_activities") || []; + project_activities = rms.get("project_activities") || []; + for(var i in activities){ + if(activities[i].act_id == act.act_id){ + activities[i].praise_count += 1; + activities[i].has_praise = true; + break; + } + } + for(var i in course_activities){ + if(course_activities[i].act_id == act.act_id){ + course_activities[i].praise_count += 1; + course_activities[i].has_praise = true; + break; + } + } + for(var i in project_activities){ + if(project_activities[i].act_id == act.act_id){ + project_activities[i].praise_count += 1; + project_activities[i].has_praise = true; + break; + } + } + rms.save("activities",activities); + rms.save("course_activities",course_activities); + rms.save("project_activities",project_activities); + + addCommonPraise(act); + }; + + args.scope.decreasePraise = function(act){ + activities = rms.get("activities") || []; + course_activities = rms.get("course_activities") || []; + project_activities = rms.get("project_activities") || []; + for(var i in activities){ + if(activities[i].act_id == act.act_id){ + activities[i].praise_count -= 1; + activities[i].has_praise = false; + break; + } + } + for(var i in course_activities){ + if(course_activities[i].act_id == act.act_id){ + course_activities[i].praise_count -= 1; + course_activities[i].has_praise = false; + break; + } + } + for(var i in project_activities){ + if(project_activities[i].act_id == act.act_id){ + project_activities[i].praise_count -= 1; + project_activities[i].has_praise = false; + break; + } + } + rms.save("activities",activities); + rms.save("course_activities",course_activities); + rms.save("project_activities",project_activities); + + decreaseCommonPraise(act); + }; } return {init: init, addCommonReply: addCommonReply, loadCommonData: loadCommonData, addCommonPraise: addCommonPraise, decreaseCommonPraise: decreaseCommonPraise}; From dc6127eb788d36f58851924196d84b84ae10fd3c Mon Sep 17 00:00:00 2001 From: txz Date: Mon, 11 Jul 2016 16:54:58 +0800 Subject: [PATCH 10/98] =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E6=88=91=E7=9A=84?= =?UTF-8?q?=E8=B5=84=E6=BA=90=E6=A0=B7=E5=BC=8F=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/schema.rb | 2 +- public/assets/wechat/myresource.html | 13 ++++++++++--- public/images/wechat/courseware.png | Bin 0 -> 23930 bytes public/images/wechat/homework.png | Bin 0 -> 23635 bytes public/images/wechat/test.png | Bin 0 -> 25698 bytes public/stylesheets/weui/weixin.css | 5 +++-- 6 files changed, 14 insertions(+), 6 deletions(-) create mode 100644 public/images/wechat/courseware.png create mode 100644 public/images/wechat/homework.png create mode 100644 public/images/wechat/test.png diff --git a/db/schema.rb b/db/schema.rb index 32d29d31a..694d4df43 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -562,9 +562,9 @@ ActiveRecord::Schema.define(:version => 20160709015740) do t.integer "excellent_option", :default => 0 t.integer "is_copy", :default => 0 t.integer "visits", :default => 0 + t.integer "syllabus_id" t.string "invite_code" t.string "qrcode" - t.integer "syllabus_id" end add_index "courses", ["invite_code"], :name => "index_courses_on_invite_code", :unique => true diff --git a/public/assets/wechat/myresource.html b/public/assets/wechat/myresource.html index 6d93d026f..4a28b2d3e 100644 --- a/public/assets/wechat/myresource.html +++ b/public/assets/wechat/myresource.html @@ -11,17 +11,24 @@
    -
    发送
    +
    + {{r.filename}}发送
    + 课件来源:大小: +

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

    -
    +
    {{r.homework_name}}发送
    + 作业来源: +

    暂无作业,
    请登录Trustie网站,在PC浏览器中创建作业。

    -
    +
    {{r.exercise_name}}发送
    + 题目来源: +

    暂无测验,
    请登录Trustie网站,在PC浏览器中创建测验。

    diff --git a/public/images/wechat/courseware.png b/public/images/wechat/courseware.png new file mode 100644 index 0000000000000000000000000000000000000000..77d6401fd16282871ee75f98333135f3c8f94784 GIT binary patch literal 23930 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 literal 0 HcmV?d00001 diff --git a/public/images/wechat/test.png b/public/images/wechat/test.png new file mode 100644 index 0000000000000000000000000000000000000000..e67567b6911ebd925c9cdd349c41b190ceebea77 GIT binary patch literal 25698 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 literal 0 HcmV?d00001 diff --git a/public/stylesheets/weui/weixin.css b/public/stylesheets/weui/weixin.css index 2f9ad7e88..9493fc800 100644 --- a/public/stylesheets/weui/weixin.css +++ b/public/stylesheets/weui/weixin.css @@ -33,6 +33,7 @@ blockquote {border:1px solid #d4d4d4; padding: 0.6em; margin-left: 1.4em; margin .mr5 {margin-right:5px;} .mr10 {margin-right:10px;} .ml15 {margin-left:15px;} +.ml35 {margin-left:35px;} .mr15 {margin-right:15px;} .mr20 {margin-right:20px;} .ml25 {margin-left:25px;} @@ -184,11 +185,11 @@ a.underline {text-decoration:underline;} .class-search-icon {position:absolute; top:16px; left:16px;} .class-detail-search {width:100%; height:33px; color:#999; background-color:#fff; border:none; outline:none;} .border-top {border-top:1px solid #ccc;} -.class-detail-row {width:100%; height:38px; line-height:38px; vertical-align:middle; border-bottom:1px solid #ccc; background-color:#fff;} +.class-detail-row {width:100%; line-height:18px; padding:10px 0; border-bottom:1px solid #ccc; background-color:#fff;} .class-test-tip {text-align:center; font-size:13px; color:#444; padding-top:40px;} .img-circle {border-radius:50%;} .member-banner {height:24px; line-height:24px; text-align:center; vertical-align:middle; background-color:#dfdfdf;} -.resource-width {width:80%;} +.resource-width {width:76%;} /*20160614班级列表*/ .course-diff-row {width:100%; height:28px; line-height:28px; vertical-align:middle; background-color:#fff;} From e3fe95213fbbb429dfa4b1566e60bdf23e67d25f Mon Sep 17 00:00:00 2001 From: txz Date: Tue, 12 Jul 2016 09:34:06 +0800 Subject: [PATCH 11/98] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=8C=E7=BA=A7?= =?UTF-8?q?=E5=9B=9E=E5=A4=8D=E4=B8=8E=E6=96=87=E5=AD=97=E9=97=B4=E8=B7=9D?= =?UTF-8?q?=E7=A6=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/stylesheets/weui/weixin.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/stylesheets/weui/weixin.css b/public/stylesheets/weui/weixin.css index 9493fc800..657cbc65f 100644 --- a/public/stylesheets/weui/weixin.css +++ b/public/stylesheets/weui/weixin.css @@ -7,7 +7,7 @@ body, ul, h1,h2,h3,h4,h5,p,pre,input {padding:0px; margin:0px;} body{background-color: #efeff4;} ul li {list-style:none;} img {max-width:100%;} -blockquote {border:1px solid #d4d4d4; padding: 0.6em; margin-left: 1.4em; margin-right: 0.4em; border-radius: 4px; font-family: "Microsoft YaHei"; background-size: 100% 100%; margin-top:5px;} +blockquote {border:1px solid #d4d4d4; padding: 0.6em; margin: 5px 0.4em 5px 1.4em; border-radius: 4px; font-family: "Microsoft YaHei"; background-size: 100% 100%;} .text-control {word-break:normal; word-wrap:break-word;} .f12 {font-size:12px;} .f13 {font-size:13px;} From d4681eea00f5f7ddad3d2e02467468b907027986 Mon Sep 17 00:00:00 2001 From: yuanke <249218296@qq.com> Date: Tue, 12 Jul 2016 10:25:18 +0800 Subject: [PATCH 12/98] =?UTF-8?q?=E6=88=91=E7=9A=84=E8=B5=84=E6=BA=90?= =?UTF-8?q?=E9=87=8C=E9=9D=A2=E6=98=BE=E7=A4=BA=E6=9D=A5=E6=BA=90=20?= =?UTF-8?q?=E5=92=8C=E5=A4=A7=E5=B0=8F=20=E5=B9=B6=E5=8F=AF=E4=BB=A5?= =?UTF-8?q?=E4=B8=8B=E8=BD=BD=E8=AF=BE=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/entities/attachment.rb | 2 ++ app/api/mobile/entities/exercise.rb | 1 + app/api/mobile/entities/homework.rb | 2 ++ app/services/resources_service.rb | 18 +++++++++++++++++- public/assets/wechat/myresource.html | 8 ++++---- 5 files changed, 26 insertions(+), 5 deletions(-) diff --git a/app/api/mobile/entities/attachment.rb b/app/api/mobile/entities/attachment.rb index bb67b6d28..ab6f6fd71 100644 --- a/app/api/mobile/entities/attachment.rb +++ b/app/api/mobile/entities/attachment.rb @@ -29,6 +29,8 @@ module Mobile attachment_expose :quotes attachment_expose :created_on attachment_expose :file_dir + attachment_expose :attafile_size + attachment_expose :coursename #所属班级名 end end end \ No newline at end of file diff --git a/app/api/mobile/entities/exercise.rb b/app/api/mobile/entities/exercise.rb index 3218264fb..14c530a9b 100644 --- a/app/api/mobile/entities/exercise.rb +++ b/app/api/mobile/entities/exercise.rb @@ -3,6 +3,7 @@ module Mobile class Exercise < Grape::Entity expose :exercise_name expose :exercise_description + expose :coursename #所属班级名 end end end diff --git a/app/api/mobile/entities/homework.rb b/app/api/mobile/entities/homework.rb index db3e44119..17127f0f2 100644 --- a/app/api/mobile/entities/homework.rb +++ b/app/api/mobile/entities/homework.rb @@ -94,6 +94,8 @@ module Mobile homework_expose :homework_anony_type #是否是匿评作业 + homework_expose :coursename #所属班级名 + end end end \ No newline at end of file diff --git a/app/services/resources_service.rb b/app/services/resources_service.rb index 96034b4ce..41f57429e 100644 --- a/app/services/resources_service.rb +++ b/app/services/resources_service.rb @@ -1,7 +1,7 @@ #coding=utf-8 class ResourcesService - + include ActionView::Helpers::NumberHelper #发送资源到课程 def send_resource_to_course user,params send_id = params[:send_id] @@ -59,6 +59,12 @@ class ResourcesService attchments = Attachment.where("(author_id = #{user.id} and is_publish = 1 and container_id in #{courses_ids} and container_type = 'Course') or (container_type = 'Course' and is_publish = 1 and container_id in #{courses_ids})" ).order("created_on desc") + attchments.each do |v| + course = Course.where("id=?",v.container_id).first + v[:coursename] = course.nil? ? "未知" : course.name + v[:attafile_size] = (number_to_human_size(v[:filesize])).gsub("ytes", "").to_s + end + attchments end @@ -71,6 +77,11 @@ class ResourcesService homeworks = HomeworkCommon.where("course_id in #{courses_ids} and publish_time <= ?",Time.now.strftime("%Y-%m-%d")).order("created_at desc") + homeworks.each do |v| + course = Course.where("id=?",v.course_id).first + v[:coursename] = course.nil? ? "未知" : course.name + end + homeworks end @@ -83,6 +94,11 @@ class ResourcesService exercises = Exercise.where("exercise_status <> 1 and course_id in #{courses_ids}").order("created_at desc") + exercises.each do |v| + course = Course.where("id=?",v.course_id).first + v[:coursename] = course.nil? ? "未知" : course.name + end + exercises end diff --git a/public/assets/wechat/myresource.html b/public/assets/wechat/myresource.html index 4a28b2d3e..070ee5bef 100644 --- a/public/assets/wechat/myresource.html +++ b/public/assets/wechat/myresource.html @@ -12,22 +12,22 @@
    - {{r.filename}}发送
    - 课件来源:大小: + {{r.filename}}发送
    + 课件来源:{{r.coursename}}大小:{{r.attafile_size}}

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

    {{r.homework_name}}发送
    - 作业来源: + 作业来源:{{r.coursename}}

    暂无作业,
    请登录Trustie网站,在PC浏览器中创建作业。

    {{r.exercise_name}}发送
    - 题目来源: + 题目来源:{{r.coursename}}

    暂无测验,
    请登录Trustie网站,在PC浏览器中创建测验。

    From 955c258856844c0858be9508de76677d71e82b99 Mon Sep 17 00:00:00 2001 From: cxt Date: Tue, 12 Jul 2016 10:35:52 +0800 Subject: [PATCH 13/98] =?UTF-8?q?=E5=A4=8D=E5=88=B6=E7=8F=AD=E7=BA=A7?= =?UTF-8?q?=E7=9A=84=E5=BC=B9=E6=A1=86=E4=B8=AD=E2=80=9C=E8=AF=BE=E7=A8=8B?= =?UTF-8?q?=E5=90=8D=E7=A7=B0=E2=80=9D=E4=B8=8B=E6=8B=89=E6=A1=86=E4=B8=AD?= =?UTF-8?q?=E5=8F=AA=E6=98=BE=E7=A4=BA=E5=BD=93=E5=89=8D=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E7=9A=84=E6=89=80=E6=9C=89=E8=AF=BE=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/courses/_copy_course.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/courses/_copy_course.html.erb b/app/views/courses/_copy_course.html.erb index cc7f2fb53..d7a9fa4cd 100644 --- a/app/views/courses/_copy_course.html.erb +++ b/app/views/courses/_copy_course.html.erb @@ -53,7 +53,7 @@
  • - <%= select_tag :syllabus_id,options_for_select(syllabus_option,@course.syllabus_id), {:id=>"new_syllabus_id", :class=>"syllabus_input"} %> + <%= select_tag :syllabus_id,options_for_select(course_syllabus_option,@course.syllabus_id), {:id=>"new_syllabus_id", :class=>"syllabus_input"} %>
  • From 243f0bbe7dc1e586a24f1c9dcc776b153e4b7ee6 Mon Sep 17 00:00:00 2001 From: txz Date: Tue, 12 Jul 2016 10:43:21 +0800 Subject: [PATCH 14/98] =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E8=AF=A6=E6=83=85?= =?UTF-8?q?=E5=86=85=E5=AE=B9=E4=B8=8E=E5=9B=9E=E5=A4=8D=E4=B8=AD=E9=93=BE?= =?UTF-8?q?=E6=8E=A5=E6=B7=BB=E5=8A=A0=E8=93=9D=E8=89=B2?= 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/jour_message_detail.html | 2 +- public/stylesheets/weui/weixin.css | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/public/assets/wechat/blog_detail.html b/public/assets/wechat/blog_detail.html index c77842e4b..05f7d965a 100644 --- a/public/assets/wechat/blog_detail.html +++ b/public/assets/wechat/blog_detail.html @@ -16,7 +16,7 @@
    {{blog.title}}
    博客{{blog.created_at}}
    -
    +
    diff --git a/public/assets/wechat/jour_message_detail.html b/public/assets/wechat/jour_message_detail.html index 0724e98b7..e7a48e9ab 100644 --- a/public/assets/wechat/jour_message_detail.html +++ b/public/assets/wechat/jour_message_detail.html @@ -14,7 +14,7 @@
    留言{{message.created_on}}
    -
    +
    diff --git a/public/stylesheets/weui/weixin.css b/public/stylesheets/weui/weixin.css index 657cbc65f..5deb0ac99 100644 --- a/public/stylesheets/weui/weixin.css +++ b/public/stylesheets/weui/weixin.css @@ -122,6 +122,7 @@ a.underline {text-decoration:underline;} .post-reply-user {font-size:13px; text-align:left; margin-bottom:10px;} .post-reply-content {font-size:13px; text-align:left; word-break:break-all; word-wrap:break-word; overflow:hidden; padding-bottom:15px; border-bottom:1px solid #ccc;} .post-reply-content img {max-width:100%;} +.post-reply-content a {color:#136ec2;} .post-reply-date, .post-reply-trigger {font-size:13px;} .post-input-container {position:relative; padding-right:70px;} .copy-input {width:100%; height:28px; line-height:28px; padding:0 5px; vertical-align: middle; font-size:12px; border-radius:3px; position:absolute; left:-9999em;} From 9d91e9397b08d508d78ec04c04a6c63cc111ce72 Mon Sep 17 00:00:00 2001 From: txz Date: Tue, 12 Jul 2016 11:01:01 +0800 Subject: [PATCH 15/98] =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E9=82=80=E8=AF=B7?= =?UTF-8?q?=E7=A0=81=E6=8F=90=E7=A4=BA=E6=96=87=E5=AD=97=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/assets/wechat/invite_code.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/assets/wechat/invite_code.html b/public/assets/wechat/invite_code.html index abf588909..a1b225fc9 100644 --- a/public/assets/wechat/invite_code.html +++ b/public/assets/wechat/invite_code.html @@ -9,7 +9,7 @@ -
    +
    diff --git a/public/assets/wechat/course_discussion.html b/public/assets/wechat/course_discussion.html index 5bfb462a3..4c2d2ff03 100644 --- a/public/assets/wechat/course_discussion.html +++ b/public/assets/wechat/course_discussion.html @@ -46,7 +46,7 @@
    -
    +
    diff --git a/public/assets/wechat/course_notice.html b/public/assets/wechat/course_notice.html index d48dbd136..e1d131297 100644 --- a/public/assets/wechat/course_notice.html +++ b/public/assets/wechat/course_notice.html @@ -45,7 +45,7 @@
    -
    +
    diff --git a/public/assets/wechat/homework_detail.html b/public/assets/wechat/homework_detail.html index b156a0e32..bee40bfdf 100644 --- a/public/assets/wechat/homework_detail.html +++ b/public/assets/wechat/homework_detail.html @@ -51,7 +51,7 @@
    -
    +
    diff --git a/public/assets/wechat/issue_detail.html b/public/assets/wechat/issue_detail.html index 998cb58a6..dd9503a5b 100644 --- a/public/assets/wechat/issue_detail.html +++ b/public/assets/wechat/issue_detail.html @@ -51,7 +51,7 @@
    -
    +
    diff --git a/public/assets/wechat/jour_message_detail.html b/public/assets/wechat/jour_message_detail.html index e7a48e9ab..cf5e1d2c9 100644 --- a/public/assets/wechat/jour_message_detail.html +++ b/public/assets/wechat/jour_message_detail.html @@ -47,7 +47,7 @@
    -
    +
    diff --git a/public/assets/wechat/project_discussion.html b/public/assets/wechat/project_discussion.html index 1757822ab..b90d35b91 100644 --- a/public/assets/wechat/project_discussion.html +++ b/public/assets/wechat/project_discussion.html @@ -46,7 +46,7 @@
    -
    +
    From 717bbe2ffa24f34b7086caf3caadba6df66d2c3c Mon Sep 17 00:00:00 2001 From: txz Date: Tue, 12 Jul 2016 14:33:52 +0800 Subject: [PATCH 17/98] =?UTF-8?q?=E5=9B=9E=E5=A4=8D=E6=A1=86=E5=A4=9A?= =?UTF-8?q?=E8=A1=8C=E6=8F=90=E4=BA=A4=E5=90=8E=E5=88=9D=E5=A7=8B=E5=8C=96?= 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 +- public/javascripts/wechat/build/app.min.js | 2 +- public/stylesheets/weui/weixin.css | 1 + 9 files changed, 9 insertions(+), 8 deletions(-) diff --git a/public/assets/wechat/blog_detail.html b/public/assets/wechat/blog_detail.html index ceac87d03..dded5d644 100644 --- a/public/assets/wechat/blog_detail.html +++ b/public/assets/wechat/blog_detail.html @@ -33,7 +33,7 @@
    -
    +
  • diff --git a/app/views/users/_user_message_course.html.erb b/app/views/users/_user_message_course.html.erb index f48ce7010..065cb0b27 100644 --- a/app/views/users/_user_message_course.html.erb +++ b/app/views/users/_user_message_course.html.erb @@ -309,7 +309,7 @@
<% else %>
  • - <%= link_to ma.course_message.content.html_safe, board_message_path(ma.course_message.board_id, ma.course_message.parent_id), + <%= link_to message_content(ma.course_message.content), board_message_path(ma.course_message.board_id, ma.course_message.parent_id), :class => "#{ma.viewed==0 ? "newsBlack" : "newsGrey"}", :target => '_blank' %> @@ -348,7 +348,7 @@
  • <% unless ma.content.nil? %> - <%= link_to ma.content.html_safe, student_work_index_path(:homework => ma.course_message.student_work.homework_common_id), + <%= link_to message_content(ma.content), student_work_index_path(:homework => ma.course_message.student_work.homework_common_id), :class =>"#{ma.viewed == 0 ? "newsBlack" : "newsGrey"}", :target => '_blank' %> @@ -387,7 +387,7 @@ ">在班级中留言了:
  • - <%= link_to ma.course_message.notes.html_safe, course_feedback_path(:id => ma.course_id), + <%= link_to message_content(ma.course_message.notes), course_feedback_path(:id => ma.course_id), :class => "#{ma.viewed == 0 ? "newsBlack" : "newsGrey"}", :target => '_blank' %> @@ -414,7 +414,7 @@
  • - <%= link_to ma.course_message.notes.html_safe, homework_common_index_url_in_org( ma.course_id), + <%= link_to message_content(ma.course_message.notes), homework_common_index_url_in_org( ma.course_id), :class => "#{ma.viewed == 0 ? "newsBlack" : "newsGrey"}", :target => '_blank' %> @@ -437,7 +437,7 @@ ">回复了作品评论:
  • - <%= link_to ma.course_message.notes, student_work_index_path(:homework => ma.course_message.jour.student_work.homework_common_id,:show_work_id => ma.course_message.jour.student_work_id), :class => "#{ma.viewed == 0 ? "newsBlack" : "newsGrey"}", :target => '_blank' %> + <%= link_to message_content(ma.course_message.notes), student_work_index_path(:homework => ma.course_message.jour.student_work.homework_common_id,:show_work_id => ma.course_message.jour.student_work_id), :class => "#{ma.viewed == 0 ? "newsBlack" : "newsGrey"}", :target => '_blank' %> diff --git a/app/views/users/_user_message_forum.html.erb b/app/views/users/_user_message_forum.html.erb index e0111276a..4757aa401 100644 --- a/app/views/users/_user_message_forum.html.erb +++ b/app/views/users/_user_message_forum.html.erb @@ -17,7 +17,7 @@
  • <% else %>
  • - <%= link_to ma.memo.content.html_safe, forum_memo_path(ma.memo.forum_id, ma.memo.parent_id ? ma.memo.parent_id: ma.memo.id), :class =>"#{ma.viewed == 0 ? "newsBlack" : "newsGrey"}", :target => '_blank' %> + <%= link_to message_content(ma.memo.content), forum_memo_path(ma.memo.forum_id, ma.memo.parent_id ? ma.memo.parent_id: ma.memo.id), :class =>"#{ma.viewed == 0 ? "newsBlack" : "newsGrey"}", :target => '_blank' %> diff --git a/app/views/users/_user_message_system.html.erb b/app/views/users/_user_message_system.html.erb index a7e48f456..13967dce1 100644 --- a/app/views/users/_user_message_system.html.erb +++ b/app/views/users/_user_message_system.html.erb @@ -10,7 +10,7 @@ 【系统消息】
  • - <%= link_to ma.subject.blank? ? (ma.content.nil? ? ma.description.html_safe : ma.content.html_safe) : ma.subject, user_system_messages_path(User.current), + <%= link_to ma.subject.blank? ? (ma.content.nil? ? message_content(ma.description) : message_content(ma.content)) : ma.subject, user_system_messages_path(User.current), :id => "content_link_#{ma.id}", :target => '_blank' %> diff --git a/app/views/users/_user_message_userfeedaback.html.erb b/app/views/users/_user_message_userfeedaback.html.erb index 3af623813..1c33d9de4 100644 --- a/app/views/users/_user_message_userfeedaback.html.erb +++ b/app/views/users/_user_message_userfeedaback.html.erb @@ -9,7 +9,7 @@ "><%= ma.journals_for_message.reply_id == 0 ? "给你留言了:" : "回复了你的留言:" %>
  • - <%= link_to ma.journals_for_message.notes.gsub("

    ","").gsub("

    ","").gsub("
    ","").html_safe, feedback_path(ma.journals_for_message.jour_id), :class =>"#{ma.viewed == 0 ? "newsBlack" : "newsGrey"}", :target => '_blank'%> + <%= link_to message_content(ma.journals_for_message.notes), feedback_path(ma.journals_for_message.jour_id), :class =>"#{ma.viewed == 0 ? "newsBlack" : "newsGrey"}", :target => '_blank'%>
  • From e766adf087977677d67b22c7e998df97b58e4c23 Mon Sep 17 00:00:00 2001 From: huang Date: Tue, 12 Jul 2016 16:23:30 +0800 Subject: [PATCH 22/98] add delete to qa --- .../quality_analysis_controller.rb | 32 ++++++++++++++++--- .../quality_analysis/_result_list.html.erb | 13 ++++---- config/routes.rb | 3 +- lib/trustie/gitlab/helper.rb | 2 -- 4 files changed, 36 insertions(+), 14 deletions(-) diff --git a/app/controllers/quality_analysis_controller.rb b/app/controllers/quality_analysis_controller.rb index ae752f6b9..08ac4067f 100644 --- a/app/controllers/quality_analysis_controller.rb +++ b/app/controllers/quality_analysis_controller.rb @@ -2,7 +2,7 @@ class QualityAnalysisController < ApplicationController before_filter :find_project_by_project_id#, :except => [:getattachtype] before_filter :find_quality_analysis, :only => [:edit, :update_jenkins_job] before_filter :authorize - before_filter :connect_jenkins, :only => [:create, :edit, :update_jenkins_job, :index] + before_filter :connect_jenkins, :only => [:create, :edit, :update_jenkins_job, :index, :delete] layout "base_projects" include ApplicationHelper include QualityAnalysisHelper @@ -84,7 +84,7 @@ class QualityAnalysisController < ApplicationController end # sonar 缓冲,取数据 - sleep(5) + sleep(3) # 获取sonar output结果 console_build = @client.job.get_console_output("#{job_name}", build_num = 0, start = 0, mode = 'text')["output"] @@ -152,11 +152,31 @@ class QualityAnalysisController < ApplicationController @gitlab_default_branch = @g.project(@project.gpid).default_branch end + # 删除的时候主要删除三方面数据:1/Trustie数据 2/jenkins数据 3/sonar数据 + # 如果只删除数据1,则新建的时候会有冲突 + def delete + begin + qa = QualityAnalysis.find(params[:id]) + rep_id = Repository.where(:project_id => @project.id, :identifier => qa.rep_identifier).first.try(:id) + job_name = "#{qa.author_login}-#{rep_id}" + logger.info("result: job_name ###################==>#{job_name}") + logger.info("result: @client.job ###################==>#{@client.job}") + + d_job = @client.job.delete(job_name) + logger.info("result: delete job ###################==>#{d_job}") + qa.delete + respond_to do |format| + format.html{redirect_to project_quality_analysis_path(:project_id => @project.id)} + end + rescue Exception => e + puts e + end + end + # 更新Jenkins job,主要包括相关配置文件参数的更新,Trustie平台数据的更新 def update_jenkins_job begin rep_id = Repository.where(:project_id => @project.id).first.try(:id) - logger.error("#############################===>666") sonar_name = @quality_analysis.sonar_name job_name = "#{@quality_analysis.author_login}-#{rep_id}" version = @quality_analysis.sonar_version @@ -223,7 +243,7 @@ class QualityAnalysisController < ApplicationController if key == "sqale_index" value = com["frmt_val"] else - value = com["val"].to_i + value = com["val"] end @ha.store(key,value) end @@ -260,9 +280,11 @@ class QualityAnalysisController < ApplicationController def connect_jenkins @gitlab_address = Redmine::Configuration['gitlab_address'] @jenkins_address = Redmine::Configuration['jenkins_address'] + jenkins_username = Redmine::Configuration['jenkins_username'] + jenkins_password = Redmine::Configuration['jenkins_password'] # connect jenkins - @client = JenkinsApi::Client.new(:server_url => @jenkins_address, :username => "temp", :password => '123123') + @client = JenkinsApi::Client.new(:server_url => @jenkins_address, :username => jenkins_username, :password => jenkins_password) rescue => e logger.error("failed to connect Jenkins ==> #{e}") end diff --git a/app/views/quality_analysis/_result_list.html.erb b/app/views/quality_analysis/_result_list.html.erb index 3e2a7d373..d27ef6812 100644 --- a/app/views/quality_analysis/_result_list.html.erb +++ b/app/views/quality_analysis/_result_list.html.erb @@ -10,7 +10,7 @@
  • 分支
  • 语言
  • 路径
  • -
  • 编辑
  • +
  • @@ -21,16 +21,17 @@ - <% if User.current.try(:login) == qa.author_login %> + <% if User.current.try(:login) == qa.author_login || User.current.admin? || is_project_manager?(User.current.id, @project.id) %>
  • - <%=link_to "编辑", edit_project_quality_analysi_path(qa, :project_id => @project.id), :remote => true, :class => "fontBlue2" %> + <%=link_to "编辑", edit_project_quality_analysi_path(qa, :project_id => @project.id), :remote => true, :class => "fontBlue2" %> / + <%=link_to "删除", delete_project_quality_analysi_path(qa, :project_id => @project.id), :method => "delete", :confirm => "删除会一并删除分析结果,确定删除吗?", :class => "fontBlue2" %>
  • - <% else %> -
  • 编辑
  • - <% end %> + <% end %>
    <% end %> +<% else %> + <%#= 数据为空时候界面,待完善 %> <% end %> diff --git a/config/routes.rb b/config/routes.rb index a570fef55..fbb69af62 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -790,12 +790,13 @@ RedmineApp::Application.routes.draw do end end - resources :quality_analysis, :only => [:index, :create, :edit, :update] do + resources :quality_analysis, :only => [:index, :create, :edit, :update, :delete] do collection do end member do match 'update_jenkins_job' match 'edit' + match 'delete' match 'create' get 'error_list' end diff --git a/lib/trustie/gitlab/helper.rb b/lib/trustie/gitlab/helper.rb index c9cbcee26..615bb6ac3 100644 --- a/lib/trustie/gitlab/helper.rb +++ b/lib/trustie/gitlab/helper.rb @@ -60,8 +60,6 @@ module Trustie def get_gitlab_role m case m.roles.first.position - when 1,2 - GUEST when 5 REPORTER when 4 From 824f9d91741e3b043bcf29cbd42ab7a0b8504d1c Mon Sep 17 00:00:00 2001 From: yuanke <249218296@qq.com> Date: Tue, 12 Jul 2016 17:00:01 +0800 Subject: [PATCH 23/98] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E7=8F=AD=E7=BA=A7=E7=9A=84=E6=A8=A1=E7=89=88=E6=B6=88=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/courses_controller.rb | 3 ++ app/services/syllabuses_service.rb | 12 +++++++ app/services/wechat_service.rb | 45 +++++++++++++++++++++++++++ config/wechat.yml | 1 + 4 files changed, 61 insertions(+) diff --git a/app/controllers/courses_controller.rb b/app/controllers/courses_controller.rb index a9d84c2d9..deb1d9bc2 100644 --- a/app/controllers/courses_controller.rb +++ b/app/controllers/courses_controller.rb @@ -633,6 +633,9 @@ class CoursesController < ApplicationController =end end if @course + #发送微信消息 + ss = SyllabusesService.new + ss.send_wechat_create_class_notice User.current,@course respond_to do |format| flash[:notice] = l(:notice_successful_create) format.html {redirect_to course_url(@course)} diff --git a/app/services/syllabuses_service.rb b/app/services/syllabuses_service.rb index b3190182c..55e0768d7 100644 --- a/app/services/syllabuses_service.rb +++ b/app/services/syllabuses_service.rb @@ -72,6 +72,15 @@ class SyllabusesService course.course_infos << course_info end + def send_wechat_create_class_notice user,course + count = ShieldWechatMessage.where("container_type='User' and container_id=#{user.id} and shield_type='Course' and shield_id=#{course.id}").count + if count == 0 + ws = WechatService.new + title = "恭喜您创建班级成功" + ws.create_class_notice user.id, "create_course_notice", course.id,title, course.name, user.show_name, 0, "点击查看班级详情" + end + end + #创建大纲 # params {title: '大纲名称', [{course}, {course}]} def create(user, title, courses = []) @@ -83,6 +92,7 @@ class SyllabusesService if ::Course === course course.syllabus_id = sy.id course.save! + send_wechat_create_class_notice user,course elsif Hash === course c = ::Course.new(course) c.tea_id = user.id @@ -91,6 +101,7 @@ class SyllabusesService c.is_public = 0 c.save! after_create_course(c, user) + send_wechat_create_class_notice user,c end end @@ -134,6 +145,7 @@ class SyllabusesService course.is_public = 0 course.save! after_create_course(course, user) + send_wechat_create_class_notice user,course end status = 0 end diff --git a/app/services/wechat_service.rb b/app/services/wechat_service.rb index 3169763c4..eefc127d4 100644 --- a/app/services/wechat_service.rb +++ b/app/services/wechat_service.rb @@ -139,6 +139,38 @@ class WechatService data end + def three_keys_template(openid, template_id, type, id, first, key1, key2, key3, remark="") + data = { + touser:openid, + template_id:template_id, + url:"#{Setting.protocol}://#{Setting.host_name}/assets/wechat/app.html#/#{type}/#{id}", + topcolor:"#FF0000", + data:{ + first: { + value:first, + color:"#707070" + }, + keyword1:{ + value:key1, + color:"#707070" + }, + keyword2:{ + value:key2, + color:"#707070" + }, + keyword3:{ + value:key3, + color:"#707070" + }, + remark:{ + value:remark, + color:"#707070" + } + } + } + data + end + def four_keys_template(openid, template_id, type, id, first, key1, key2, key3, key4, remark="") data = { touser:openid, @@ -250,4 +282,17 @@ class WechatService end end + def create_class_notice(user_id, type, id, first, key1, key2, key3, remark="") + uw = UserWechat.where(user_id: user_id).first + unless uw.nil? + data = three_keys_template uw.openid,Wechat.config.create_class_notice, type, id, first, key1, key2, key3, remark + begin + req = Wechat.api.template_message_send Wechat::Message.to(uw.openid).template(data) + rescue Exception => e + Rails.logger.error "[wechat_create_class_notice] ===> #{e}" + end + Rails.logger.info "send over. #{req}" + end + end + end \ No newline at end of file diff --git a/config/wechat.yml b/config/wechat.yml index d243ca44c..152135358 100644 --- a/config/wechat.yml +++ b/config/wechat.yml @@ -26,6 +26,7 @@ default: &default journal_notice: "uC1zAw4F2q6HTA3Pcj8VUO6wKKKiYFwnPJB4iXxpdoM" homework_message_notice: "tCf7teCVqc2vl2LZ_hppIdWmpg8yLcrI8XifxYePjps" class_notice: "MQ_mFupbXP-9jWbeHT3C5xqNBvPo8EIlNv4ULakSpJA" + create_class_notice: "2GtJJGzzNlNy2i0UrsjEDlvfSVIUXQfSo47stpcQAVw" production: <<: *default From 4a7fb0e0b5ef44b210f8d87fea395636209dab3c Mon Sep 17 00:00:00 2001 From: yuanke <249218296@qq.com> Date: Tue, 12 Jul 2016 17:08:16 +0800 Subject: [PATCH 24/98] =?UTF-8?q?=E7=82=B9=E5=87=BB=E6=9F=A5=E7=9C=8B?= =?UTF-8?q?=E7=8F=AD=E7=BA=A7=E8=AF=A6=E6=83=85=E8=B7=B3=E5=85=A5=E7=8F=AD?= =?UTF-8?q?=E7=BA=A7=E4=BF=A1=E6=81=AF=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/services/wechat_service.rb | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/app/services/wechat_service.rb b/app/services/wechat_service.rb index eefc127d4..b16383385 100644 --- a/app/services/wechat_service.rb +++ b/app/services/wechat_service.rb @@ -285,7 +285,35 @@ class WechatService def create_class_notice(user_id, type, id, first, key1, key2, key3, remark="") uw = UserWechat.where(user_id: user_id).first unless uw.nil? - data = three_keys_template uw.openid,Wechat.config.create_class_notice, type, id, first, key1, key2, key3, remark + data = { + touser:uw.openid, + template_id:Wechat.config.create_class_notice, + url:"#{Setting.protocol}://#{Setting.host_name}/wechat/user_activities#/class?id="+id.to_s, + topcolor:"#FF0000", + data:{ + first: { + value:first, + color:"#707070" + }, + keyword1:{ + value:key1, + color:"#707070" + }, + keyword2:{ + value:key2, + color:"#707070" + }, + keyword2:{ + value:key3, + color:"#707070" + }, + remark:{ + value:remark, + color:"#707070" + } + } + } + #data = three_keys_template uw.openid,Wechat.config.create_class_notice, type, id, first, key1, key2, key3, remark begin req = Wechat.api.template_message_send Wechat::Message.to(uw.openid).template(data) rescue Exception => e From 191261d3b873d0c7ef46b8bb1cc90f9a13516806 Mon Sep 17 00:00:00 2001 From: huang Date: Tue, 12 Jul 2016 17:30:29 +0800 Subject: [PATCH 25/98] each time to 10s --- app/controllers/quality_analysis_controller.rb | 7 +++---- app/views/quality_analysis/error_list.html.erb | 2 +- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/app/controllers/quality_analysis_controller.rb b/app/controllers/quality_analysis_controller.rb index 08ac4067f..a7e421cdc 100644 --- a/app/controllers/quality_analysis_controller.rb +++ b/app/controllers/quality_analysis_controller.rb @@ -33,7 +33,6 @@ class QualityAnalysisController < ApplicationController arr = JSON.parse(projects_date).map {|m| m["nm"]} # eg: ["Hjqreturn:cc_rep", "Hjqreturn:putong", "Hjqreturn:sonar_rep2", "shitou:sonar_rep"] quality_an = QualityAnalysis.where(:sonar_name => sonar_name).first if @client.job.exists?(job_name) && QualityAnalysis.where(:sonar_name => sonar_name).select{|qa| arr.include?(qa.sonar_name)}.blank? - logger.info("88888888888888888888") aa = @client.job.delete("#{job_name}") quality_an.delete unless quality_an.blank? end @@ -71,12 +70,12 @@ class QualityAnalysisController < ApplicationController # 判断调用sonar分析是否成功 # 等待启动时间处理, 最长时间为30分钟 - for i in 0..60 do - sleep(30) + for i in 0..180 do + sleep(10) @current_build_status = @client.job.get_current_build_status("#{job_name}") if (@current_build_status == "success" || @current_build_status == "failure") break - if i == 60 + if i == 180 @build_console_result = false break end diff --git a/app/views/quality_analysis/error_list.html.erb b/app/views/quality_analysis/error_list.html.erb index 84f2777fa..138dc9c08 100644 --- a/app/views/quality_analysis/error_list.html.erb +++ b/app/views/quality_analysis/error_list.html.erb @@ -6,6 +6,6 @@ <% if @build_console_result == false %> 分析超时 <% else %> - <%= h @error_list.output %> + <%= h @error_list.try(:output).html_safe %> <% end %> \ No newline at end of file From 2cc87f1dd8f08423c805b60705ec6d04a0795284 Mon Sep 17 00:00:00 2001 From: txz Date: Tue, 12 Jul 2016 17:33:55 +0800 Subject: [PATCH 26/98] =?UTF-8?q?=E8=AF=BE=E7=A8=8B=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E5=90=84tab=E6=98=BE=E7=A4=BAbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/assets/wechat/class.html | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/public/assets/wechat/class.html b/public/assets/wechat/class.html index 6f8354259..14a5695dd 100644 --- a/public/assets/wechat/class.html +++ b/public/assets/wechat/class.html @@ -23,7 +23,7 @@
    -
    {{r.filename}}发送
    +
    {{r.filename}}发送

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

    @@ -31,23 +31,25 @@
    授课老师
    - {{teacher.name}}{{teacher.role_name|identify}} + {{teacher.name}}{{teacher.role_name|identify}} +
    我的同学
    - {{student.name}} + {{student.name}} +
    -
    {{r.homework_name}}
    +
    {{r.homework_name}}

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

    -
    {{r.exercise_name}}
    +
    {{r.exercise_name}}

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

    From f63df877dbe46cdc1a70413d66e84ffa5b6a4cf6 Mon Sep 17 00:00:00 2001 From: yuanke <249218296@qq.com> Date: Wed, 13 Jul 2016 08:44:20 +0800 Subject: [PATCH 27/98] =?UTF-8?q?=E5=B0=86=E6=9C=AA=E5=91=BD=E5=90=8D?= =?UTF-8?q?=E8=AF=BE=E7=A8=8B=E5=8E=BB=E6=8E=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/services/syllabuses_service.rb | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/app/services/syllabuses_service.rb b/app/services/syllabuses_service.rb index 55e0768d7..885dea975 100644 --- a/app/services/syllabuses_service.rb +++ b/app/services/syllabuses_service.rb @@ -29,19 +29,13 @@ class SyllabusesService end #获取指定用户的课程大纲 def user_syllabus(user) - courses = CoursesService.new.user_courses_list(user) - - other = Syllabus.new(title: '未命名课程',user_id: user.id) - - courses.each do |c| - other.courses << c[:course] unless c[:course].syllabus - end - - # user.syllabuses.each do |syllabus| - # syllabus.courses = syllabus.courses.not_deleted - # end + # courses = CoursesService.new.user_courses_list(user) + # + # other = Syllabus.new(title: '未命名课程',user_id: user.id) # - # user.syllabuses.to_a << other + # courses.each do |c| + # other.courses << c[:course] unless c[:course].syllabus + # end courses = user.courses.not_deleted syllabus_ids = courses.empty? ? '(-1)' : "(" + courses.map{|course| !course.syllabus_id.nil? && course.syllabus_id}.join(",") + ")" @@ -51,8 +45,9 @@ class SyllabusesService syllabus.courses = courses.where("syllabus_id = #{syllabus.id}").select("courses.*,(SELECT MAX(updated_at) FROM `course_activities` WHERE course_activities.course_id = courses.id) AS updatetime").order("time desc") end - syllabuses.to_a << other + # syllabuses.to_a << other + syllabuses.to_a #管理权限 can_setting syllabuses.each do |s| s = judge_can_setting(s,user) From 16cf8a56a1fa0dfe1bd55aee75afdd385eeba826 Mon Sep 17 00:00:00 2001 From: cxt Date: Wed, 13 Jul 2016 09:34:36 +0800 Subject: [PATCH 28/98] =?UTF-8?q?=E7=AE=A1=E7=90=86=E5=91=98=E5=92=8C?= =?UTF-8?q?=E8=80=81=E5=B8=88=E5=8F=AF=E7=9C=8B=E5=88=B0=E8=AF=BE=E7=A8=8B?= =?UTF-8?q?=E4=B8=8B=E7=9A=84=E6=89=80=E6=9C=89=E7=8F=AD=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/admin_controller.rb | 2 +- app/controllers/syllabuses_controller.rb | 6 +++++- app/controllers/users_controller.rb | 9 +++++++-- app/views/layouts/base_syllabus.html.erb | 9 +++++++-- 4 files changed, 20 insertions(+), 6 deletions(-) diff --git a/app/controllers/admin_controller.rb b/app/controllers/admin_controller.rb index 52e1f5fd0..36a5d9d4f 100644 --- a/app/controllers/admin_controller.rb +++ b/app/controllers/admin_controller.rb @@ -82,7 +82,7 @@ class AdminController < ApplicationController syllabus.update_attributes(:title => params[:title], :eng_name => params[:eng_name], :user_id => @user.id) syllabus.description = Message.where("id = 19412").first.nil? ? nil : Message.where("id = 19412").first.content if syllabus.save - course.update_attribute('syllabus_id', syllabus.id) + course.update_column('syllabus_id', syllabus.id) @flag = params[:flag].to_i @course = course respond_to do |format| diff --git a/app/controllers/syllabuses_controller.rb b/app/controllers/syllabuses_controller.rb index 8d7195f38..291e6ca30 100644 --- a/app/controllers/syllabuses_controller.rb +++ b/app/controllers/syllabuses_controller.rb @@ -109,7 +109,11 @@ class SyllabusesController < ApplicationController sort_name = "updated_on" sort_type = @c_sort == 1 ? "asc" : "desc" - @courses = User.current.courses.visible.where("is_delete =? and syllabus_id =?", 0, @syllabus.id).select("courses.*,(SELECT MAX(updated_at) FROM `course_activities` WHERE course_activities.course_id = courses.id) AS #{sort_name}").order("#{sort_name} #{sort_type}") + if User.current == @syllabus.user || User.current.admin? + @courses = @syllabus.courses.where("is_delete = 0").select("courses.*,(SELECT MAX(updated_at) FROM `course_activities` WHERE course_activities.course_id = courses.id) AS #{sort_name}").order("#{sort_name} #{sort_type}") + else + @courses = User.current.courses.visible.where("is_delete =? and syllabus_id =?", 0, @syllabus.id).select("courses.*,(SELECT MAX(updated_at) FROM `course_activities` WHERE course_activities.course_id = courses.id) AS #{sort_name}").order("#{sort_name} #{sort_type}") + end #根据 作业+资源数排序 if @order.to_i == 2 diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 83a794cd9..373b4f514 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -1410,8 +1410,13 @@ class UsersController < ApplicationController @all_count = @user.courses.visible.where("is_delete =?", 0).count elsif @type == 'Syllabus' @syllabus = Syllabus.where("id = #{params[:syllabus]}").first - @courses = User.current.courses.visible.where("is_delete =? and syllabus_id =?", 0, @syllabus.id).select("courses.*,(SELECT MAX(updated_at) FROM `course_activities` WHERE course_activities.course_id = courses.id) AS a").order("a desc").limit(5).offset(@page * 5) - @all_count = User.current.courses.visible.where("is_delete =? and syllabus_id =?", 0, @syllabus.id).count + if User.current == @syllabus.user || User.current.admin? + all_courses = @syllabus.courses.where("is_delete = 0").select("courses.*,(SELECT MAX(updated_at) FROM `course_activities` WHERE course_activities.course_id = courses.id) AS a").order("a desc") + else + all_courses = User.current.courses.visible.where("is_delete =? and syllabus_id =?", 0, @syllabus.id).select("courses.*,(SELECT MAX(updated_at) FROM `course_activities` WHERE course_activities.course_id = courses.id) AS a").order("a desc") + end + @courses = all_courses.limit(5).offset(@page * 5) + @all_count = all_courses.count end end diff --git a/app/views/layouts/base_syllabus.html.erb b/app/views/layouts/base_syllabus.html.erb index 5aa23b3c5..b0ecea006 100644 --- a/app/views/layouts/base_syllabus.html.erb +++ b/app/views/layouts/base_syllabus.html.erb @@ -75,8 +75,13 @@ <% end%> <% end%> - <% courses = User.current.courses.visible.where("is_delete =? and syllabus_id =?", 0, @syllabus.id).select("courses.*,(SELECT MAX(updated_at) FROM `course_activities` WHERE course_activities.course_id = courses.id) AS a").order("a desc").limit(5) %> - <% all_count = User.current.courses.visible.where("is_delete =? and syllabus_id =?", 0, @syllabus.id).count%> + <% if User.current == @syllabus.user || User.current.admin? + all_courses = @syllabus.courses.where("is_delete = 0").select("courses.*,(SELECT MAX(updated_at) FROM `course_activities` WHERE course_activities.course_id = courses.id) AS a").order("a desc") + else + all_courses = User.current.courses.visible.where("is_delete =? and syllabus_id =?", 0, @syllabus.id).select("courses.*,(SELECT MAX(updated_at) FROM `course_activities` WHERE course_activities.course_id = courses.id) AS a").order("a desc") + end %> + <% courses = all_courses.limit(5) %> + <% all_count = all_courses.count%>
      From 3700f437cbbe170e42540fe86554c82931f69615 Mon Sep 17 00:00:00 2001 From: yuanke <249218296@qq.com> Date: Wed, 13 Jul 2016 09:45:30 +0800 Subject: [PATCH 29/98] =?UTF-8?q?=E6=B5=8B=E8=AF=95=E7=89=88=E5=BE=AE?= =?UTF-8?q?=E4=BF=A1=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/wechat.yml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/config/wechat.yml b/config/wechat.yml index 152135358..1992a332a 100644 --- a/config/wechat.yml +++ b/config/wechat.yml @@ -8,25 +8,25 @@ default: &default #secret: "743e038392f1d89540e95f8f7645849a" #production - appid: "wx8e1ab05163a28e37" - secret: "beb4d3bc4b32b3557811680835357841" +# appid: "wx8e1ab05163a28e37" +# secret: "beb4d3bc4b32b3557811680835357841" #test - #appid: "wxc09454f171153c2d" - #secret: "dff5b606e34dcafe24163ec82c2715f8" + appid: "wxc09454f171153c2d" + secret: "dff5b606e34dcafe24163ec82c2715f8" token: "123456" access_token: "1234567" encrypt_mode: false # if true must fill encoding_aes_key - encoding_aes_key: "QGfP13YP4BbQGkkrlYuxpn4ZIDXpBJww4fxl8CObvNw" + encoding_aes_key: "QyocNOkRmrT5HzBpCG54EVPUQjk86nJapXNVDQm6Yy6" jsapi_ticket: "C:/Users/[user_name]/wechat_jsapi_ticket" #template - binding_succ_notice: "jjpDrgFErnmkrE9tf2M3o0t31ZrJ7mr0YtuE_wyLaMc" - journal_notice: "uC1zAw4F2q6HTA3Pcj8VUO6wKKKiYFwnPJB4iXxpdoM" - homework_message_notice: "tCf7teCVqc2vl2LZ_hppIdWmpg8yLcrI8XifxYePjps" - class_notice: "MQ_mFupbXP-9jWbeHT3C5xqNBvPo8EIlNv4ULakSpJA" - create_class_notice: "2GtJJGzzNlNy2i0UrsjEDlvfSVIUXQfSo47stpcQAVw" + binding_succ_notice: "n4KLwcWNrIMYkKxWL2hUwzunm5RTT54EbWem2MIUapU" + journal_notice: "XpHHYkqSGkwuF9vHthRdmPQLvCFRQ4_NbRBP12T7ciE" + homework_message_notice: "Kom0TsYYKsNKCS6luweYVRo9z-mH0wRPr24b1clGCPQ" + class_notice: "8LVu33l6bP-56SDomVgHn-yJc57YpCwwJ81rAJgRONk" + create_class_notice: "9CDIvHIKiGwPEQWRw_-wieec1o50tMXQPPZIfECKu0I" production: <<: *default From 9bf853d2bbcb6d781441bde7fa897b2d6e35b0de Mon Sep 17 00:00:00 2001 From: cxt Date: Wed, 13 Jul 2016 09:49:24 +0800 Subject: [PATCH 30/98] =?UTF-8?q?=E7=AE=A1=E7=90=86=E5=91=98=E5=8F=AF?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=AF=BE=E7=A8=8B=E5=90=8D=E7=A7=B0=E5=92=8C?= =?UTF-8?q?=E8=8B=B1=E6=96=87=E5=90=8D=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/layouts/_syllabus_eng_name.html.erb | 2 +- app/views/layouts/_syllabus_title.html.erb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/views/layouts/_syllabus_eng_name.html.erb b/app/views/layouts/_syllabus_eng_name.html.erb index ed8035736..72af30927 100644 --- a/app/views/layouts/_syllabus_eng_name.html.erb +++ b/app/views/layouts/_syllabus_eng_name.html.erb @@ -3,6 +3,6 @@ <% else%> 课程英文名称 <% end %> -<% if User.current == syllabus.user %> +<% if User.current == syllabus.user || User.current.admin? %> <%= link_to image_tag("../images/signature_edit.png",width:"12px", height: "12px"), "javascript:void(0);",:id => "syllabus_edit_ng_name_png", :class => "none", :onclick => "show_edit_eng_name();"%> <% end %> \ No newline at end of file diff --git a/app/views/layouts/_syllabus_title.html.erb b/app/views/layouts/_syllabus_title.html.erb index 5180da82d..51737fe4e 100644 --- a/app/views/layouts/_syllabus_title.html.erb +++ b/app/views/layouts/_syllabus_title.html.erb @@ -1,5 +1,5 @@ <%=@syllabus.title %> -<% if User.current == syllabus.user %> +<% if User.current == syllabus.user || User.current.admin? %> <%= link_to image_tag("../images/signature_edit.png",width:"12px", height: "12px"), "javascript:void(0);",:id => "syllabus_edit_title_png", :class => "none", :onclick => "show_edit_title();"%> <% end %> \ No newline at end of file From f83d791de17d5134f3297a1374a37c0b22f079d8 Mon Sep 17 00:00:00 2001 From: txz Date: Wed, 13 Jul 2016 09:54:37 +0800 Subject: [PATCH 31/98] =?UTF-8?q?=E8=BF=9B=E5=85=A5=E8=AF=BE=E7=A8=8B?= =?UTF-8?q?=E5=90=8E=EF=BC=8C=E8=AF=BE=E4=BB=B6=EF=BC=8C=E4=BD=9C=E4=B8=9A?= =?UTF-8?q?=EF=BC=8C=E6=B5=8B=E9=AA=8C=E5=8F=8A=E5=AD=A6=E7=94=9F=E7=AE=A1?= =?UTF-8?q?=E7=90=86tab=E6=A0=B7=E5=BC=8F=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/assets/wechat/class.html | 14 +++++++------- public/stylesheets/weui/weixin.css | 1 + 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/public/assets/wechat/class.html b/public/assets/wechat/class.html index 14a5695dd..85dd1c8de 100644 --- a/public/assets/wechat/class.html +++ b/public/assets/wechat/class.html @@ -23,33 +23,33 @@
    -
    {{r.filename}}发送
    +
    {{r.filename}}发送

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

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

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

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

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

    diff --git a/public/stylesheets/weui/weixin.css b/public/stylesheets/weui/weixin.css index 0a7a2b83c..dd60e6f2e 100644 --- a/public/stylesheets/weui/weixin.css +++ b/public/stylesheets/weui/weixin.css @@ -189,6 +189,7 @@ a.underline {text-decoration:underline;} .class-detail-search {width:100%; height:33px; color:#999; background-color:#fff; border:none; outline:none;} .border-top {border-top:1px solid #ccc;} .class-detail-row {width:100%; line-height:18px; padding:10px 0; border-bottom:1px solid #ccc; background-color:#fff;} +.class-member-row {width:100%; line-height:18px; padding:5px 0; border-bottom:1px solid #ccc; background-color:#fff;} .class-test-tip {text-align:center; font-size:13px; color:#444; padding-top:40px;} .img-circle {border-radius:50%;} .member-banner {height:24px; line-height:24px; text-align:center; vertical-align:middle; background-color:#dfdfdf;} From 845f36c4f3fa379b8f8a27e60a1ea13988ad0ba1 Mon Sep 17 00:00:00 2001 From: huang Date: Wed, 13 Jul 2016 10:00:04 +0800 Subject: [PATCH 32/98] =?UTF-8?q?=E8=A7=A3=E5=86=B3z=E6=B3=A8=E5=86=8C?= =?UTF-8?q?=E6=97=B6=E5=80=99=E9=82=AE=E7=AE=B1=E4=B8=8D=E8=83=BD=E6=98=AF?= =?UTF-8?q?=E5=A4=A7=E5=86=99=E5=8A=A0=E4=B8=8B=E5=88=92=E7=BA=BF=E7=9A=84?= =?UTF-8?q?=E5=BD=A2=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/account/login.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/account/login.html.erb b/app/views/account/login.html.erb index 23acabd1f..cfe9cd695 100644 --- a/app/views/account/login.html.erb +++ b/app/views/account/login.html.erb @@ -62,7 +62,7 @@ }); $mail.blur(function (event) { - if (/^[a-z0-9]+([._\\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$/.test(this.value) == false){ + if (/^[a-zA-Z0-9]+([._\\]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$/.test(this.value) == false){ $('#mail_req').html( '邮件格式不对').show(); $mail_correct = false; return ; From 5cd394c4ae6b7052ab26010ac816e6832adfc333 Mon Sep 17 00:00:00 2001 From: yuanke <249218296@qq.com> Date: Wed, 13 Jul 2016 10:09:47 +0800 Subject: [PATCH 33/98] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=BE=AE=E4=BF=A1?= =?UTF-8?q?=E7=8F=AD=E7=BA=A7=E6=B5=8B=E9=AA=8C=E6=8A=A5=E9=94=99=E7=9A=84?= =?UTF-8?q?BUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/apis/courses.rb | 7 ++- app/views/wechats/user_activities.html.erb | 54 +++++++++++----------- 2 files changed, 33 insertions(+), 28 deletions(-) diff --git a/app/api/mobile/apis/courses.rb b/app/api/mobile/apis/courses.rb index 301417781..1cde439b2 100644 --- a/app/api/mobile/apis/courses.rb +++ b/app/api/mobile/apis/courses.rb @@ -391,7 +391,12 @@ module Mobile end get ':course_id/exercises' do authenticate! - exercises = Course.find(params[:course_id]).exercises + + course = Course.find(params[:course_id]) + exercises = course.exercises + exercises.each do |v| + v[:coursename] = course.nil? ? "未知" : course.name + end present :data,exercises,with:Mobile::Entities::Exercise present :status,0 end diff --git a/app/views/wechats/user_activities.html.erb b/app/views/wechats/user_activities.html.erb index 240fec434..f724be392 100644 --- a/app/views/wechats/user_activities.html.erb +++ b/app/views/wechats/user_activities.html.erb @@ -26,33 +26,33 @@
    - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + From ef931d14918e059a0c5bc9c736c97bbc5657ed2a Mon Sep 17 00:00:00 2001 From: huang Date: Wed, 13 Jul 2016 12:07:27 +0800 Subject: [PATCH 34/98] =?UTF-8?q?=E7=BC=96=E8=BE=91issue=EF=BC=8C=E4=B8=8E?= =?UTF-8?q?=E5=9B=9E=E5=A4=8Dissue=E5=86=B2=E7=AA=81=E9=97=AE=E9=A2=98?= =?UTF-8?q?=EF=BC=88=E5=B1=80=E9=83=A8=E5=88=B7=E6=96=B0=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/issues/_form.html.erb | 24 ------------------------ app/views/issues/add_journal.js.erb | 5 +++-- app/views/issues/show.html.erb | 6 +++++- 3 files changed, 8 insertions(+), 27 deletions(-) diff --git a/app/views/issues/_form.html.erb b/app/views/issues/_form.html.erb index 8b313a2ef..e2b6a0a17 100644 --- a/app/views/issues/_form.html.erb +++ b/app/views/issues/_form.html.erb @@ -58,13 +58,6 @@
  • - <%# if @copy_from && @copy_from.attachments.any? %> - - - - - <%# end %> <% if @copy_from && !@copy_from.leaf? %>

    @@ -83,23 +76,6 @@ <%= render :partial => 'issues/attributes' %>

  • - - - - - <%#= link_to "", -# {:controller => 'watchers', :action => 'new', :project_id => @issue.project}, -# :remote => true, -# :method => 'get', - :class => "pic_sch mt5 ml5" %> - - <%#= javascript_tag "observeSearchfield('user_search', 'users_for_watcher', '#{ escape_javascript watchers_autocomplete_for_user_path(:user => @available_watchers, :format => 'js', :flag => 'ture') }')" %> - - - - - - <%= call_hook(:view_issues_form_details_bottom, {:issue => @issue, :form => f}) %> <% end %> 确定 diff --git a/app/views/issues/add_journal.js.erb b/app/views/issues/add_journal.js.erb index 21519d5a1..838e2d83d 100644 --- a/app/views/issues/add_journal.js.erb +++ b/app/views/issues/add_journal.js.erb @@ -1,8 +1,9 @@ <% if @issue_id %> //issue详情中回复 $("#reply_div_<%= @issue_id %>").html("<%= escape_javascript(render :partial => 'issues/issue_replies', :locals => {:issue => Issue.find( @issue_id),:replies_all_i=>0}) %>"); $("#div_issue_attachment_<%=@issue.id %>").html("<%= escape_javascript(render :partial => 'issues/issue_attachments', :locals => {:issue => Issue.find( @issue_id)}) %>"); - $("#issue_edit").replaceWith('<%= escape_javascript(render :partial => 'issues/edit') %>') - sd_create_editor_from_data(<%= @issue.id%>, null, "100%", "<%=@issue.class.name%>"); + $("#issue_detail_show").html('<%= escape_javascript(render :partial => 'issues/detail') %>') + $("#issue_edit_show").html('<%= escape_javascript(render :partial => 'issues/edit') %>') + sd_create_editor_from_data(<%= @issue.id %>, null, "100%", "<%= @issue.class.name %>"); issue_desc_editor = KindEditor.create('#issue_description', {"width":"85%", "resizeType":0, diff --git a/app/views/issues/show.html.erb b/app/views/issues/show.html.erb index 67bb4d59d..13642c0ca 100644 --- a/app/views/issues/show.html.erb +++ b/app/views/issues/show.html.erb @@ -15,7 +15,7 @@ } }); -
    +
    问题跟踪
    @@ -23,8 +23,12 @@
    +
    <%= render :partial => 'issues/detail'%> +
    +
    <%= render :partial => 'issues/edit'%> +
    From 61bf6604b1ffc8355cca02ef05a25d8b2d6a03e6 Mon Sep 17 00:00:00 2001 From: huang Date: Wed, 13 Jul 2016 12:23:28 +0800 Subject: [PATCH 35/98] =?UTF-8?q?=E8=A7=A3=E5=86=B3ajax=E6=83=85=E5=86=B5?= =?UTF-8?q?=E4=B8=8B=EF=BC=8Cissue=E7=8A=B6=E6=80=81=E9=80=89=E6=A1=86?= =?UTF-8?q?=E4=B8=8D=E6=98=BE=E7=A4=BA=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/issues_controller.rb | 1 + app/views/issues/_attributes.html.erb | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/app/controllers/issues_controller.rb b/app/controllers/issues_controller.rb index 44f0d15f4..73877ddc7 100644 --- a/app/controllers/issues_controller.rb +++ b/app/controllers/issues_controller.rb @@ -440,6 +440,7 @@ class IssuesController < ApplicationController jour.save update_user_activity(@issue.class,@issue.id) update_forge_activity(@issue.class,@issue.id) + @allowed_statuses = @issue.new_statuses_allowed_to(User.current) @user_activity_id = params[:user_activity_id] if params[:issue_id] diff --git a/app/views/issues/_attributes.html.erb b/app/views/issues/_attributes.html.erb index f0967843a..cb9b79c7c 100644 --- a/app/views/issues/_attributes.html.erb +++ b/app/views/issues/_attributes.html.erb @@ -4,15 +4,15 @@
    • - <% if @issue.safe_attribute?('status_id') && @allowed_statuses.present? %> + <%# if @issue.safe_attribute?('status_id') && @allowed_statuses.present? %> <%= f.select :status_id, (@allowed_statuses.collect { |p| [p.name, p.id] }), {:no_label => true}, # ajax 刷新 #:onchange => "updateIssueFrom('#{escape_javascript project_issue_form_path(@project, :id => @issue, :format => 'js')}')", :class => "w150" %> - <% else %> - <%= h(@issue.status.name) %> - <% end %> + <%# else %> + <%#= h(@issue.status.name) %> + <%# end %>
    • From a5acc2641e3503031e352e0fe083258d9d485913 Mon Sep 17 00:00:00 2001 From: yuanke <249218296@qq.com> Date: Wed, 13 Jul 2016 14:06:56 +0800 Subject: [PATCH 36/98] =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E7=82=B9=E8=B5=9E?= =?UTF-8?q?=E4=BF=9D=E8=AF=81=E5=90=84=E4=B8=AA=E5=88=87=E6=8D=A2=E4=B9=8B?= =?UTF-8?q?=E9=97=B4=E7=82=B9=E8=B5=9E=E7=8A=B6=E6=80=81=E4=BF=9D=E6=8C=81?= =?UTF-8?q?=E4=B8=80=E8=87=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wechat/controllers/activity.js | 44 +++++++++++++++++++ public/javascripts/wechat/others/factory.js | 13 +++--- 2 files changed, 52 insertions(+), 5 deletions(-) diff --git a/public/javascripts/wechat/controllers/activity.js b/public/javascripts/wechat/controllers/activity.js index 16a8e71d0..1ad4b9c1e 100644 --- a/public/javascripts/wechat/controllers/activity.js +++ b/public/javascripts/wechat/controllers/activity.js @@ -144,10 +144,54 @@ app.controller('ActivityController', } $scope.addPraise = function(act){ + for(var i in $scope.activities){ + if($scope.activities[i].act_id == act.act_id){ + $scope.activities[i].praise_count += 1; + $scope.activities[i].has_praise = true; + break; + } + } + for(var i in $scope.course_activities){ + if($scope.course_activities[i].act_id == act.act_id){ + $scope.course_activities[i].praise_count += 1; + $scope.course_activities[i].has_praise = true; + break; + } + } + for(var i in $scope.project_activities){ + if($scope.project_activities[i].act_id == act.act_id){ + $scope.project_activities[i].praise_count += 1; + $scope.project_activities[i].has_praise = true; + break; + } + } + common.addCommonPraise(act); }; $scope.decreasePraise = function(act){ + for(var i in $scope.activities){ + if($scope.activities[i].act_id == act.act_id){ + $scope.activities[i].praise_count -= 1; + $scope.activities[i].has_praise = false; + break; + } + } + for(var i in $scope.course_activities){ + if($scope.course_activities[i].act_id == act.act_id){ + $scope.course_activities[i].praise_count -= 1; + $scope.course_activities[i].has_praise = false; + break; + } + } + for(var i in $scope.project_activities){ + if($scope.project_activities[i].act_id == act.act_id){ + $scope.project_activities[i].praise_count -= 1; + $scope.project_activities[i].has_praise = false; + break; + } + } + common.decreaseCommonPraise(act); }; }]); \ No newline at end of file diff --git a/public/javascripts/wechat/others/factory.js b/public/javascripts/wechat/others/factory.js index 64204dfca..6c7709df3 100644 --- a/public/javascripts/wechat/others/factory.js +++ b/public/javascripts/wechat/others/factory.js @@ -126,8 +126,8 @@ app.factory('common', ['$http', 'auth', '$routeParams','rms', function($http, au }; var addCommonPraise = function(act){ - act.praise_count += 1; - act.has_praise = true; +// act.praise_count += 1; +// act.has_praise = true; $http({ method: 'POST', @@ -141,9 +141,8 @@ app.factory('common', ['$http', 'auth', '$routeParams','rms', function($http, au }; var decreaseCommonPraise = function(act){ - act.praise_count -= 1; - act.has_praise = false; - +// act.praise_count -= 1; +// act.has_praise = false; $http({ method: 'POST', url: apiUrl + "praise/" + act.act_id, @@ -205,6 +204,8 @@ app.factory('common', ['$http', 'auth', '$routeParams','rms', function($http, au rms.save("course_activities",course_activities); rms.save("project_activities",project_activities); + act.praise_count += 1; + act.has_praise = true; addCommonPraise(act); }; @@ -237,6 +238,8 @@ app.factory('common', ['$http', 'auth', '$routeParams','rms', function($http, au rms.save("course_activities",course_activities); rms.save("project_activities",project_activities); + act.praise_count -= 1; + act.has_praise = false; decreaseCommonPraise(act); }; } From ded8f48d34406bdf3fbc80a560bd9b4d8da10abf Mon Sep 17 00:00:00 2001 From: cxt Date: Wed, 13 Jul 2016 15:20:39 +0800 Subject: [PATCH 37/98] =?UTF-8?q?=E5=8D=9A=E5=AE=A2=E7=9A=84=E4=BA=8C?= =?UTF-8?q?=E7=BA=A7=E5=9B=9E=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/at_controller.rb | 6 +- app/controllers/blog_comments_controller.rb | 11 +++- app/controllers/users_controller.rb | 5 ++ app/helpers/application_helper.rb | 2 +- app/views/blog_comments/reply.js.erb | 2 +- .../users/_blog_comments_replies.html.erb | 59 +++++++++++++++++++ app/views/users/_reply_to.html.erb | 13 ++++ app/views/users/_user_blog.html.erb | 5 +- 8 files changed, 95 insertions(+), 8 deletions(-) create mode 100644 app/views/users/_blog_comments_replies.html.erb diff --git a/app/controllers/at_controller.rb b/app/controllers/at_controller.rb index 5b29565ad..69c33f90e 100644 --- a/app/controllers/at_controller.rb +++ b/app/controllers/at_controller.rb @@ -47,6 +47,8 @@ class AtController < ApplicationController find_journals_for_message(id) when 'Principal' find_principal(id) + when 'BlogComment' + find_blog_comment(id) when 'All' nil else @@ -166,8 +168,8 @@ class AtController < ApplicationController #BlogComment def find_blog_comment(id) - blog = BlogComment.find(id).blog - blog.users + blog = BlogComment.find(id) + blog.author.watcher_users end end \ No newline at end of file diff --git a/app/controllers/blog_comments_controller.rb b/app/controllers/blog_comments_controller.rb index 4a8de5814..a6e383504 100644 --- a/app/controllers/blog_comments_controller.rb +++ b/app/controllers/blog_comments_controller.rb @@ -130,9 +130,16 @@ class BlogCommentsController < ApplicationController params[:blog_comment][:sticky] = params[:blog_comment][:sticky] || 0 params[:blog_comment][:locked] = params[:blog_comment][:locked] || 0 @blogComment.safe_attributes = params[:blog_comment] - @blogComment.content = @quote + @blogComment.content @blogComment.title = "RE: #{@article.title}" unless params[:blog_comment][:title] - @article.children << @blogComment + if params[:activity_id] + @blogComment.content = params[:blog_comment][:content] + parent = BlogComment.find params[:parent_id] + @blogComment.reply_id = params[:reply_id] + parent.children << @blogComment + else + @blogComment.content = @quote + @blogComment.content + @article.children << @blogComment + end @article.save # @article.update_attribute(:updated_on, @blogComment.updated_on) @user_activity_id = params[:user_activity_id] diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 373b4f514..633254978 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -120,6 +120,11 @@ class UsersController < ApplicationController @is_course = params[:is_course] @is_board = params[:is_board] @type = 'Message' + when 'BlogComment' + @reply = BlogComment.find params[:reply_id] + @user_activity_id = params[:user_activity_id] + @activity_id = params[:activity_id] + @type = 'BlogComment' end respond_to do |format| format.js diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 3a28e4b72..3d8d970b5 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -3141,7 +3141,7 @@ end #获取所有子节点 def get_all_children result, jour - if (jour.kind_of? JournalsForMessage) || (jour.kind_of? Message) + if (jour.kind_of? JournalsForMessage) || (jour.kind_of? Message) || (jour.kind_of? BlogComment) jour.children.each do |jour_child| result << jour_child get_all_children result, jour_child diff --git a/app/views/blog_comments/reply.js.erb b/app/views/blog_comments/reply.js.erb index baf4418e9..f612cfe98 100644 --- a/app/views/blog_comments/reply.js.erb +++ b/app/views/blog_comments/reply.js.erb @@ -5,7 +5,7 @@ $("#user_activity_<%= @user_activity_id%>").replaceWith("<%= escape_javascript(render :partial => 'users/user_blog', :locals => {:activity => @article,:user_activity_id =>@user_activity_id}) %>"); // init_activity_KindEditor_data(<%#= @user_activity_id%>,"","87%", 'UserActivity'); <% else%> -$("#user_activity_<%= @user_activity_id%>").replaceWith("<%= escape_javascript(render :partial => 'blogs/article', :locals => {:activity => @article,:user_activity_id =>@user_activity_id}) %>"); +$("#user_activity_<%= @user_activity_id%>").replaceWith("<%= escape_javascript(render :partial => 'users/user_blog', :locals => {:activity => @article,:user_activity_id =>@user_activity_id}) %>"); //init_activity_KindEditor_data(<%#= @user_activity_id%>,"","87%", 'UserActivity'); <% end %> sd_create_editor_from_data(<%= @user_activity_id%>,"","100%", 'UserActivity'); \ No newline at end of file diff --git a/app/views/users/_blog_comments_replies.html.erb b/app/views/users/_blog_comments_replies.html.erb new file mode 100644 index 000000000..181f6698a --- /dev/null +++ b/app/views/users/_blog_comments_replies.html.erb @@ -0,0 +1,59 @@ +
        + <% comments.each do |comment| %> + +
      • +
        + <%= link_to image_tag(url_to_avatar(comment.creator_user), :width => 33, :height => 33, :alt => "用户头像"), user_url_in_org(comment.creator_user.id) %> +
        +
        +
        + <%= link_to comment.creator_user.show_name, user_url_in_org(comment.creator_user.id), :class => "newsBlue mr10 f14" %> + <%= time_from_now(comment.created_on) %> +
        + <% if !comment.parent.nil? && !comment.parent.parent.nil? %> + <%= render :partial => 'users/message_contents', :locals => {:comment => comment}%> + <% end %> + <% if !comment.content_detail.blank? %> +
        + <%= comment.content_detail.html_safe %> +
        +
        +
        + + + <%=render :partial=> "praise_tread/praise", :locals => {:activity=>comment, :user_activity_id=>comment.id,:type=>"reply"}%> + + + <%= link_to( + l(:button_reply), + {:controller => 'users' ,:action => 'reply_to', :reply_id => comment.id, :type => type, :user_activity_id => user_activity_id, :activity_id => activity_id}, + :remote => true, + :method => 'get', + :title => l(:button_reply)) %> + + + <% if comment.author == User.current %> + <%= link_to( + l(:button_delete), + {:controller => 'blog_comments',:action => 'destroy', :id => comment.id}, + :method => :delete, + :class => 'fr newsGrey mr10', + :data => {:confirm => l(:text_are_you_sure)}, + :title => l(:button_delete)) %> + <% end %> + +
        +
        +
        +

        + <% end %> +
        +
        +
      • + <% end %> +
      \ No newline at end of file diff --git a/app/views/users/_reply_to.html.erb b/app/views/users/_reply_to.html.erb index 8a2909ad4..8358a7d23 100644 --- a/app/views/users/_reply_to.html.erb +++ b/app/views/users/_reply_to.html.erb @@ -44,6 +44,19 @@

      <% end%> + <% elsif @type == 'BlogComment' %> + <%= form_for('new_form', :url => {:controller => 'blog_comments',:action => 'reply', :id => reply.id, :blog_id => reply.blog.id}, :method => "post", :remote => true) do |f| %> + + <%= hidden_field_tag 'user_activity_id',params[:user_activity_id],:value =>@user_activity_id %> + <%= hidden_field_tag 'activity_id',params[:activity_id],:value =>@activity_id %> + <%= hidden_field_tag 'parent_id', params[:parent_id], :value => reply.id %> + <%= hidden_field_tag 'reply_id', params[:reply_id], :value => reply.author_id %> +
      + + +
      +

      + <% end%> <% end %>
    diff --git a/app/views/users/_user_blog.html.erb b/app/views/users/_user_blog.html.erb index 77510c858..868f92979 100644 --- a/app/views/users/_user_blog.html.erb +++ b/app/views/users/_user_blog.html.erb @@ -45,10 +45,11 @@
    <%= render :partial => 'users/reply_banner', :locals => {:count => count, :activity => activity, :user_activity_id => user_activity_id} %> - <% comments = activity.children.reorder("created_on desc").limit(3) %> + <% all_comments = []%> + <% comments = get_all_children(all_comments, activity)[0..2] %> <% if count > 0 %>
    - <%= render :partial => 'users/all_replies', :locals => {:comments => comments}%> + <%= render :partial => 'users/blog_comments_replies', :locals => {:comments => comments, :user_activity_id => user_activity_id, :type => 'BlogComment', :activity_id =>activity.id}%>
    <% end %> From 3ffb909e15d8c19542d42071e4bcb1a02165bceb Mon Sep 17 00:00:00 2001 From: yuanke <249218296@qq.com> Date: Wed, 13 Jul 2016 15:54:58 +0800 Subject: [PATCH 38/98] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=8F=91=E9=80=81?= =?UTF-8?q?=E5=88=9B=E5=BB=BA=E7=8F=AD=E7=BA=A7=E7=9A=84=E9=80=9A=E7=9F=A5?= =?UTF-8?q?=E6=B6=88=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/services/wechat_service.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/services/wechat_service.rb b/app/services/wechat_service.rb index b16383385..3097e1842 100644 --- a/app/services/wechat_service.rb +++ b/app/services/wechat_service.rb @@ -303,7 +303,7 @@ class WechatService value:key2, color:"#707070" }, - keyword2:{ + keyword3:{ value:key3, color:"#707070" }, From e61aa9e0dc09778c2f466e90764f07b304b9b052 Mon Sep 17 00:00:00 2001 From: txz Date: Wed, 13 Jul 2016 16:53:17 +0800 Subject: [PATCH 39/98] =?UTF-8?q?=E5=9B=9E=E5=A4=8D=E6=A1=86=E9=AB=98?= =?UTF-8?q?=E5=BA=A6=E8=87=AA=E5=8A=A8=E5=A2=9E=E5=87=8Fjs=E5=90=8C?= =?UTF-8?q?=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/javascripts/wechat/directives/input_auto.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/public/javascripts/wechat/directives/input_auto.js b/public/javascripts/wechat/directives/input_auto.js index bcb44141e..28cb792ab 100644 --- a/public/javascripts/wechat/directives/input_auto.js +++ b/public/javascripts/wechat/directives/input_auto.js @@ -3,8 +3,8 @@ app.directive('inputAuto',function(){ restrict: 'A', scope: {}, link: function(scope, element){ - var copyContainer = element.parent().children().eq(0); - var sendButton = element.parent().next(); + var copyContainer = element.parent().children().children().eq(0); + var sendButton = element.next(); element.on('input',function(){ console.log(sendButton); copyContainer.html(element[0].value); From 24821ba01d6c209a8b9eb016464aec8b5d0c5de9 Mon Sep 17 00:00:00 2001 From: txz Date: Thu, 14 Jul 2016 09:44:35 +0800 Subject: [PATCH 40/98] =?UTF-8?q?=E7=99=BB=E5=BD=95=E4=B8=8E=E6=B3=A8?= =?UTF-8?q?=E5=86=8C=E9=A1=B5=E9=9D=A2=EF=BC=8C=E8=BE=93=E5=85=A5=E6=96=87?= =?UTF-8?q?=E5=AD=97=E6=98=BE=E7=A4=BA=E4=B8=8D=E5=85=A8bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/assets/wechat/login.html | 4 ++-- public/assets/wechat/reg.html | 8 ++++---- public/stylesheets/weui/weixin.css | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/public/assets/wechat/login.html b/public/assets/wechat/login.html index 1283ad281..61c9b9de3 100644 --- a/public/assets/wechat/login.html +++ b/public/assets/wechat/login.html @@ -4,13 +4,13 @@
    绑定注册
    From 1e8f496718954b856002670b3ad55f2b9cbc7770 Mon Sep 17 00:00:00 2001 From: yuanke <249218296@qq.com> Date: Thu, 14 Jul 2016 10:06:37 +0800 Subject: [PATCH 42/98] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=9F=A5=E9=87=8D?= =?UTF-8?q?=E7=BB=93=E6=9E=9C=20=E4=B8=8D=E6=98=BE=E7=A4=BA=E6=9C=AA?= =?UTF-8?q?=E6=8F=90=E4=BA=A4=E7=9A=84=E4=BD=9C=E5=93=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/courses_controller.rb | 2 +- app/controllers/student_work_controller.rb | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/controllers/courses_controller.rb b/app/controllers/courses_controller.rb index a9d84c2d9..479aec3ce 100644 --- a/app/controllers/courses_controller.rb +++ b/app/controllers/courses_controller.rb @@ -968,7 +968,7 @@ class CoursesController < ApplicationController @homework = HomeworkCommon.find params[:homework] #order("#{@order} #{@b_sort}" - @student_works = search_homework_member @homework.student_works.select("student_works.*,IF(final_score is null,null,IF(final_score = 0, 0, final_score - absence_penalty - late_penalty)) as score").order("simi_value desc"),@name + @student_works = search_homework_member @homework.student_works.select("student_works.*,IF(final_score is null,null,IF(final_score = 0, 0, final_score - absence_penalty - late_penalty)) as score").order("simi_value desc").has_committed,@name @works_hash = {} diff --git a/app/controllers/student_work_controller.rb b/app/controllers/student_work_controller.rb index bc1b97a2f..45b54cf0a 100644 --- a/app/controllers/student_work_controller.rb +++ b/app/controllers/student_work_controller.rb @@ -271,7 +271,7 @@ class StudentWorkController < ApplicationController all_studentwork = find_all_student_work_by_homeid() - @work_count = all_studentwork.count + @work_count = all_studentwork.has_committed.count end #代码查重 status: 0完成 -2不需要查重 -1查重失败不支持该语言 @@ -282,7 +282,7 @@ class StudentWorkController < ApplicationController @homework = HomeworkCommon.find params[:homework] - all_studentwork = find_all_student_work_by_homeid() + all_studentwork = find_all_student_work_by_homeid().has_committed if all_studentwork == nil resultObj[:status] = -2 From 9b59ca20de663cae04e9bb648036ee5721b8d0e1 Mon Sep 17 00:00:00 2001 From: huang Date: Thu, 14 Jul 2016 10:39:54 +0800 Subject: [PATCH 43/98] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dissue=E8=AF=A6=E6=83=85?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=EF=BC=8C=E5=88=A0=E9=99=A4=E5=9B=9E=E5=A4=8D?= =?UTF-8?q?=E5=90=8E=E5=86=8D=E7=BC=96=E8=BE=91=E4=BF=9D=E5=AD=98issue?= =?UTF-8?q?=E5=BC=B9=E5=87=BA=E7=99=BD=E8=89=B2=E6=A1=86=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/issues_controller.rb | 16 ++++++++-------- app/views/issues/_issue_replies.html.erb | 3 +-- app/views/issues/_issue_reply_ke_form.html.erb | 2 +- 3 files changed, 10 insertions(+), 11 deletions(-) diff --git a/app/controllers/issues_controller.rb b/app/controllers/issues_controller.rb index 73877ddc7..049842e37 100644 --- a/app/controllers/issues_controller.rb +++ b/app/controllers/issues_controller.rb @@ -432,12 +432,12 @@ class IssuesController < ApplicationController def add_journal if User.current.logged? - jour = Journal.new - jour.user_id = User.current.id - jour.notes = params[:notes] - jour.journalized = @issue - jour.save_attachments(params[:attachments]) - jour.save + @jour = Journal.new + @jour.user_id = User.current.id + @jour.notes = params[:notes] + @jour.journalized = @issue + @jour.save_attachments(params[:attachments]) + @jour.save update_user_activity(@issue.class,@issue.id) update_forge_activity(@issue.class,@issue.id) @allowed_statuses = @issue.new_statuses_allowed_to(User.current) @@ -493,7 +493,7 @@ class IssuesController < ApplicationController update_forge_activity(@issue.class,@issue.id) respond_to do |format| - format.js + format.html{redirect_to issue_url(@issue)} end end end @@ -503,7 +503,7 @@ class IssuesController < ApplicationController @issue = Issue.find(params[:id]) Journal.destroy(params[:journal_id]) respond_to do |format| - format.js + format.html{redirect_to issue_url(@issue)} end end diff --git a/app/views/issues/_issue_replies.html.erb b/app/views/issues/_issue_replies.html.erb index 7b5383c1e..4efef74b8 100644 --- a/app/views/issues/_issue_replies.html.erb +++ b/app/views/issues/_issue_replies.html.erb @@ -42,7 +42,6 @@ l(:button_delete), {:controller => 'issues',:action => 'delete_journal', :id => issue.id,:journal_id=>reply.id}, :method => :get, - :remote=>true, :class => 'fr newsGrey mr10', :data => {:confirm => l(:text_are_you_sure)}, :title => l(:button_delete) @@ -73,7 +72,7 @@
    - <%= render :partial => 'attachments/issue_reply', :locals => {:container => @issue} %> + <%= render :partial => 'attachments/issue_reply', :locals => {:container => @jour.nil? ? @issue : @jour} %>
    diff --git a/app/views/issues/_issue_reply_ke_form.html.erb b/app/views/issues/_issue_reply_ke_form.html.erb index 7fbb0d191..87b599aa3 100644 --- a/app/views/issues/_issue_reply_ke_form.html.erb +++ b/app/views/issues/_issue_reply_ke_form.html.erb @@ -7,7 +7,7 @@
    <% if User.current.logged? %>
    - <%= form_for('new_form',:url => add_reply_issue_path(@issue.id),:method => "post", :remote => true) do |f|%> + <%= form_for('new_form',:url => add_reply_issue_path(@issue.id),:method => "post") do |f|%> <%#= kindeditor_tag :notes,"",:height=>"33",:minHeight=>"33",:editor_id=>"issues_reply_editor"%> From 00c414c34791823a4eb0c8a8648d5ec68d05da4d Mon Sep 17 00:00:00 2001 From: huang Date: Thu, 14 Jul 2016 11:14:05 +0800 Subject: [PATCH 44/98] =?UTF-8?q?issue=E5=9B=9E=E5=A4=8D=E5=A1=AB=E5=86=99?= =?UTF-8?q?=E6=AD=A3=E7=A1=AE=E7=9A=84=E6=A0=B7=E5=BC=8F=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/issues/_issue_replies.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/issues/_issue_replies.html.erb b/app/views/issues/_issue_replies.html.erb index 4efef74b8..c120ca1b9 100644 --- a/app/views/issues/_issue_replies.html.erb +++ b/app/views/issues/_issue_replies.html.erb @@ -74,7 +74,7 @@
    <%= render :partial => 'attachments/issue_reply', :locals => {:container => @jour.nil? ? @issue : @jour} %>
    - +
    <% end %> From c2fadc54ef38d4a4bc6e2ecfe30d19f08789d561 Mon Sep 17 00:00:00 2001 From: yuanke <249218296@qq.com> Date: Thu, 14 Jul 2016 11:16:45 +0800 Subject: [PATCH 45/98] =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E6=B6=88=E6=81=AF?= =?UTF-8?q?=E9=80=9A=E7=9F=A5=E7=82=B9=E5=87=BB=E8=B7=B3=E8=BD=AC=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=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/users.rb | 4 ++-- app/services/wechat_service.rb | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/api/mobile/apis/users.rb b/app/api/mobile/apis/users.rb index a6536e73e..e2ea8d35b 100644 --- a/app/api/mobile/apis/users.rb +++ b/app/api/mobile/apis/users.rb @@ -41,8 +41,8 @@ module Mobile openid: openid, user: user ) - # ws = WechatService.new - # ws.binding_succ_notice(user.id, "您已成功绑定Trustie平台", user.login, format_time(Time.now)) + ws = WechatService.new + ws.binding_succ_notice(user.id, "您已成功绑定Trustie平台", user.login, Time.now.strftime("%Y-%m-%d")) present status: 0, message: '您已成功绑定Trustie平台' end diff --git a/app/services/wechat_service.rb b/app/services/wechat_service.rb index 3097e1842..6bb93400d 100644 --- a/app/services/wechat_service.rb +++ b/app/services/wechat_service.rb @@ -115,7 +115,7 @@ class WechatService data = { touser:openid, template_id:template_id, - url:"#{Setting.protocol}://#{Setting.host_name}/assets/wechat/app.html#/#{type}/#{id}", + url:"#{Setting.protocol}://#{Setting.host_name}/assets/wechat/user_activities#/#{type}/#{id}",#user_activities 本来是app.html topcolor:"#FF0000", data:{ first: { @@ -143,7 +143,7 @@ class WechatService data = { touser:openid, template_id:template_id, - url:"#{Setting.protocol}://#{Setting.host_name}/assets/wechat/app.html#/#{type}/#{id}", + url:"#{Setting.protocol}://#{Setting.host_name}/assets/wechat/user_activities#/#{type}/#{id}",#user_activities 本来是app.html topcolor:"#FF0000", data:{ first: { @@ -175,7 +175,7 @@ class WechatService data = { touser:openid, template_id:template_id, - url:"#{Setting.protocol}://#{Setting.host_name}/assets/wechat/app.html#/#{type}/#{id}", + url:"#{Setting.protocol}://#{Setting.host_name}/assets/wechat/user_activities#/#{type}/#{id}", #user_activities 本来是app.html topcolor:"#FF0000", data:{ first: { From 5bd404322b9ddeb6c44f08bee11081c7ee9b3a68 Mon Sep 17 00:00:00 2001 From: yuanke <249218296@qq.com> Date: Thu, 14 Jul 2016 11:28:28 +0800 Subject: [PATCH 46/98] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=BE=AE=E4=BF=A1?= =?UTF-8?q?=E6=B6=88=E6=81=AF=E9=80=9A=E7=9F=A5=E8=AF=A6=E6=83=85=E5=9C=B0?= =?UTF-8?q?=E5=9D=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/services/wechat_service.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/services/wechat_service.rb b/app/services/wechat_service.rb index 6bb93400d..2da942ea6 100644 --- a/app/services/wechat_service.rb +++ b/app/services/wechat_service.rb @@ -115,7 +115,7 @@ class WechatService data = { touser:openid, template_id:template_id, - url:"#{Setting.protocol}://#{Setting.host_name}/assets/wechat/user_activities#/#{type}/#{id}",#user_activities 本来是app.html + url:"#{Setting.protocol}://#{Setting.host_name}/wechat/user_activities#/#{type}/#{id}",#/assets/wechat/app.html#/#{type}/#{id} topcolor:"#FF0000", data:{ first: { @@ -143,7 +143,7 @@ class WechatService data = { touser:openid, template_id:template_id, - url:"#{Setting.protocol}://#{Setting.host_name}/assets/wechat/user_activities#/#{type}/#{id}",#user_activities 本来是app.html + url:"#{Setting.protocol}://#{Setting.host_name}/wechat/user_activities#/#{type}/#{id}",#/assets/wechat/app.html#/#{type}/#{id} topcolor:"#FF0000", data:{ first: { @@ -175,7 +175,7 @@ class WechatService data = { touser:openid, template_id:template_id, - url:"#{Setting.protocol}://#{Setting.host_name}/assets/wechat/user_activities#/#{type}/#{id}", #user_activities 本来是app.html + url:"#{Setting.protocol}://#{Setting.host_name}/wechat/user_activities#/#{type}/#{id}", #/assets/wechat/app.html#/#{type}/#{id} topcolor:"#FF0000", data:{ first: { From 8c6fca87c9a7a937dd9e5c9a4f47adeb2c75339e Mon Sep 17 00:00:00 2001 From: huang Date: Thu, 14 Jul 2016 13:57:06 +0800 Subject: [PATCH 47/98] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E5=8A=A8=E6=80=81?= =?UTF-8?q?=E4=B8=AD=EF=BC=8C=E6=96=B0=E9=97=BB=E6=B7=BB=E5=8A=A0=E5=BF=AB?= =?UTF-8?q?=E6=8D=B7=E6=93=8D=E4=BD=9C=EF=BC=8C=E6=89=80=E6=9C=89=E6=93=8D?= =?UTF-8?q?=E4=BD=9C=E9=BB=98=E8=AE=A4=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/projects/_project_news.html.erb | 19 +++++++++++++++++++ app/views/users/_project_message.html.erb | 4 ++-- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/app/views/projects/_project_news.html.erb b/app/views/projects/_project_news.html.erb index 2d498e827..e751e16ae 100644 --- a/app/views/projects/_project_news.html.erb +++ b/app/views/projects/_project_news.html.erb @@ -32,6 +32,25 @@
    <%= render :partial=>"attachments/activity_attach", :locals=>{:activity => activity} %>
    + <% if User.current.logged? %> +
    +
      +
    • + <% if User.current.logged? %> +
        +
      • <%= link_to("发送", 'javascript:void(0)',:class => "postOptionLink",:onclick=>"show_send('#{activity.id}',#{User.current.id},'news')") %>
      • +
      • + <%= link_to(l(:button_edit), {:controller => 'news', :action => 'edit', :id => activity}, :class => 'postOptionLink') if activity.author == User.current %> +
      • +
      • + <%= delete_link(news_path(activity), :data => {:confirm => l(:text_are_you_sure)}, :class => 'postOptionLink') if activity.author == User.current %> +
      • +
      + <% end %> +
    • +
    +
    + <% end %>
    diff --git a/app/views/users/_project_message.html.erb b/app/views/users/_project_message.html.erb index d1bb99296..00075dc8e 100644 --- a/app/views/users/_project_message.html.erb +++ b/app/views/users/_project_message.html.erb @@ -1,4 +1,4 @@ -
    +
    <%= link_to image_tag(url_to_avatar(activity.author), :width => "50", :height => "50"), user_path(activity.author_id), :alt => "用户头像" %> @@ -46,7 +46,7 @@ <%= render :partial=>"attachments/activity_attach", :locals=>{:activity => activity} %>
    <% if User.current.logged? %> - - <% comments_for_doc = document.children.reorder("created_at desc").limit(3) %> - <% count = document.children.count() %> + <% all_comments = []%> + <% count=get_all_children(all_comments, document).count %>
    - <%= render :partial => 'users/reply_banner', :locals => {:count => count, :activity => document, :user_activity_id => document.id} %> + <%= render :partial => 'users/reply_banner', :locals => {:count => count, :activity => document, :user_activity_id => act.id} %> + + <% all_comments = []%> + <% comments = get_all_children(all_comments, document)[0..2] %> + <% if count > 0 %> +
    + <%= render :partial => 'users/org_document_replies', :locals => {:comments => comments, :user_activity_id => act.id, :type => 'OrgDocumentComment', :activity_id =>document.id}%> +
    + <% end %> -
    - <%= render :partial => 'users/all_replies', :locals => {:comments => comments_for_doc}%> -
    <%= link_to image_tag(url_to_avatar(User.current), :width => "33", :height => "33", :alt => "用户头像"), user_url_in_org(User.current.id) %> @@ -84,7 +89,6 @@ <% if User.current.logged? %>
    <%= form_for('new_form', :url => add_reply_org_document_comment_path(:id => document.id, :act_id => act.id, :flag => flag), :method => "post", :remote => true) do |f| %> -
    diff --git a/app/views/users/_comment_reply_detail.html.erb b/app/views/users/_comment_reply_detail.html.erb index 266a0b32b..b8ea13cf4 100644 --- a/app/views/users/_comment_reply_detail.html.erb +++ b/app/views/users/_comment_reply_detail.html.erb @@ -3,7 +3,7 @@
    <%= link_to comment.creator_user.show_name, user_path(comment.creator_user.id), :class => "content-username" %> - <%= time_from_now(comment.created_on) %> + <%= time_from_now(comment.respond_to?(:created_on) ? comment.created_on : comment.created_at) %>
    <%= comment.content_detail.html_safe %>
    \ No newline at end of file diff --git a/app/views/users/_course_message.html.erb b/app/views/users/_course_message.html.erb index 70a7e6c7d..48daa6e95 100644 --- a/app/views/users/_course_message.html.erb +++ b/app/views/users/_course_message.html.erb @@ -80,8 +80,6 @@
    <% all_comments = []%> <% count=get_all_children(all_comments, activity).count %> - <%# allow_delete = (activity.user == User.current || User.current.admin? || User.current.allowed_to?(:as_teacher,activity.course)) %> - <%# count = fetch_user_leaveWord_reply(activity).count %>
    <%= render :partial => 'users/message_reply_banner', :locals => {:count => count, :activity => activity, :user_activity_id => user_activity_id,:is_course => is_course,:is_board =>is_board} %> diff --git a/app/views/users/_org_document_replies.html.erb b/app/views/users/_org_document_replies.html.erb new file mode 100644 index 000000000..ce26cf70c --- /dev/null +++ b/app/views/users/_org_document_replies.html.erb @@ -0,0 +1,60 @@ +
      + <% comments.each do |comment| %> + +
    • +
      + <%= link_to image_tag(url_to_avatar(comment.creator_user), :width => 33, :height => 33, :alt => "用户头像"), user_url_in_org(comment.creator_user.id) %> +
      +
      +
      + <%= link_to comment.creator_user.show_name, user_url_in_org(comment.creator_user.id), :class => "newsBlue mr10 f14" %> + <%= time_from_now(comment.created_at) %> +
      + <% if !comment.parent.nil? && !comment.parent.parent.nil? %> + <%= render :partial => 'users/message_contents', :locals => {:comment => comment}%> + <% end %> + <% if !comment.content_detail.blank? %> +
      + <%= comment.content_detail.html_safe %> +
      +
      +
      + + + <%=render :partial=> "praise_tread/praise", :locals => {:activity=>comment, :user_activity_id=>comment.id,:type=>"reply"}%> + + + <%= link_to( + l(:button_reply), + {:controller => 'users' ,:action => 'reply_to', :reply_id => comment.id, :type => type, :user_activity_id => user_activity_id, :activity_id => activity_id}, + :remote => true, + :method => 'get', + :title => l(:button_reply)) %> + + + <% if comment.creator_user == User.current %> + <%= link_to( + l(:button_delete), + {:controller => 'org_document_comments',:action => 'destroy', :id => comment.id, :user_activity_id => user_activity_id}, + :method => :delete, + :remote => true, + :class => 'fr mr20', + :data => {:confirm => l(:text_are_you_sure)}, + :title => l(:button_delete)) %> + <% end %> + +
      +
      +
      +

      + <% end %> +
      +
      +
    • + <% end %> +
    \ No newline at end of file diff --git a/app/views/users/_reply_to.html.erb b/app/views/users/_reply_to.html.erb index 5c3f2a70b..cb8b2e0ff 100644 --- a/app/views/users/_reply_to.html.erb +++ b/app/views/users/_reply_to.html.erb @@ -43,8 +43,6 @@

    <% end%> <% elsif @type == 'BlogComment' %> - <%#= form_for reply, :as => :reply, :url => {:controller => 'blog_comments',:action => 'reply', :id => reply.id, :blog_id => reply.blog.id}, :html => {:multipart => true, :id => 'new_form'} do |f| %> - <%= form_for('new_form', :url => {:controller => 'blog_comments',:action => 'reply', :id => reply.id, :blog_id => reply.blog.id, :user_id => User.current.id}, :method => "post", :remote => true) do |f| %> <%= hidden_field_tag 'user_activity_id',params[:user_activity_id],:value =>@user_activity_id %> @@ -57,7 +55,17 @@

    <% end%> - <% end %> + <% elsif @type == 'OrgDocumentComment' %> + <%= form_for('new_form', :url => {:controller => 'org_document_comments',:action => 'reply', :id => reply.id}, :method => "post", :remote => true) do |f| %> + + <%= hidden_field_tag 'user_activity_id',params[:user_activity_id],:value =>@user_activity_id %> +
    + + +
    +

    + <% end%> + <% end %>
    diff --git a/app/views/users/all_journals.js.erb b/app/views/users/all_journals.js.erb index 30ae23bfb..b7485def3 100644 --- a/app/views/users/all_journals.js.erb +++ b/app/views/users/all_journals.js.erb @@ -6,6 +6,8 @@ $('#reply_div_<%= @user_activity_id %>').html('<%=escape_javascript(render :part $('#reply_div_<%= params[:div_id].to_i %>').html('<%=escape_javascript(render :partial => 'users/message_replies', :locals => {:comments => @journals,:user_activity_id => @user_activity_id, :type => @type, :activity_id => params[:id].to_i,:is_course => @is_course, :is_board => @is_board}) %>'); <% elsif params[:type] == 'BlogComment' %> $('#reply_div_<%= params[:div_id].to_i %>').html('<%=escape_javascript(render :partial => 'users/blog_comments_replies', :locals => {:comments => @journals,:user_activity_id => @user_activity_id, :type => @type, :activity_id => params[:id].to_i, :homepage => @homepage}) %>'); +<% elsif params[:type] == 'OrgDocumentComment' %> +$('#reply_div_<%= params[:div_id].to_i %>').html('<%=escape_javascript(render :partial => 'users/org_document_replies', :locals => {:comments => @journals, :user_activity_id => @user_activity_id, :type => @type, :activity_id => params[:id].to_i}) %>'); <% else %> $('#reply_div_<%= params[:div_id].to_i %>').html('<%=escape_javascript(render :partial => 'users/all_replies', :locals => {:comments => @journals}) %>'); <% end %> From a43da43072b4e8e2cfffe7fcd2b8d27af7b389fa Mon Sep 17 00:00:00 2001 From: txz Date: Thu, 14 Jul 2016 17:34:26 +0800 Subject: [PATCH 55/98] =?UTF-8?q?checked.png=E6=9B=BF=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/images/wechat/checked.png | Bin 1092 -> 1021 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/public/images/wechat/checked.png b/public/images/wechat/checked.png index 77986d62ec83b4cb56f0bb5b95dac6598a24f128..0d9713fed12fe68cccc4172216cdaac855296b2e 100644 GIT binary patch delta 344 zcmX@Y@t1vr8&iyto0Frnsj-={iK&sHp{tprp|i1zrK^FViKU5&shN?ILPc(YudkI$ zesXDUYF>$_i>(q+L@y;X#R{s|9GBk7i5|o-|m4e#>Q(Sr{>oGgk zJKE-5VPIe=^mK6yskoK&=l_3uX3K`oMjr?9UM&Y5pH;_76zmv}Bozn-JP0`CRJia6Q7ql4)EEa4LUT9|d v__MWg-;~8%N49@tHGX`-vxtF_jp6dw7f~1X@=Ztq+RotV>gTe~DWM4f+j?zC delta 415 zcmey%euQI#8&izAxq+d%tA(?%iHWJ9p{tptk%hCRo0GYlrJ1q0i>s58LPc(YudkI$ zesXDUYF>$_i>(q+L@y;X#R{s|1()8*i5|o-|m4e#>CtP|b>oGgk ze~RnzW?*30;pyTSQgQ3drHy=yjsnL%T9$LRHaUsRb6lymDBz{W3z0_;JGi+zpLlh; zU#MnmWlH=T?p74ZwSB5*-O02~_w$T)HyWx5O| Date: Thu, 14 Jul 2016 17:39:22 +0800 Subject: [PATCH 56/98] =?UTF-8?q?=E5=BE=AE=E4=BF=A1=EF=BC=9A=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E7=8F=AD=E7=BA=A7=E4=B8=8B=E6=9C=89=E6=8C=82=E8=B5=B7?= =?UTF-8?q?=E4=BD=9C=E4=B8=9A=E6=89=80=E6=9C=89=E4=BD=9C=E4=B8=9A=E9=83=BD?= =?UTF-8?q?=E4=B8=8D=E6=98=BE=E7=A4=BA=E7=9A=84BUG=EF=BC=8C=E5=B0=86?= =?UTF-8?q?=E7=8F=AD=E7=BA=A7=E4=B8=8B=E4=BD=9C=E4=B8=9A=E3=80=81=E6=B5=8B?= =?UTF-8?q?=E9=AA=8C=E5=8F=91=E9=80=81=E6=8C=89=E9=92=AE=E5=B1=8F=E8=94=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/services/courses_service.rb | 2 +- public/assets/wechat/class.html | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/services/courses_service.rb b/app/services/courses_service.rb index a55a81e89..294c77019 100644 --- a/app/services/courses_service.rb +++ b/app/services/courses_service.rb @@ -419,7 +419,7 @@ class CoursesService def homework_list params,current_user course = Course.find(params[:id]) if course.is_public != 0 || current_user.member_of_course?(course) - bids = course.homework_commons.page(params[:page] || 1).per(20).order('created_at DESC') + bids = course.homework_commons.where("publish_time <= ?",Time.now.strftime("%Y-%m-%d")).page(params[:page] || 1).per(20).order('created_at DESC') bids = bids.like(params[:name]) if params[:name].present? homeworks = [] bids.each do |bid| diff --git a/public/assets/wechat/class.html b/public/assets/wechat/class.html index da58003cc..294610ac7 100644 --- a/public/assets/wechat/class.html +++ b/public/assets/wechat/class.html @@ -42,14 +42,14 @@
    -
    {{r.homework_name}}发送
    +
    {{r.homework_name}}发送

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

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

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

    From 6ab1269c01217ceae0514ac9477b21d0cea0ee58 Mon Sep 17 00:00:00 2001 From: yuanke <249218296@qq.com> Date: Fri, 15 Jul 2016 09:16:37 +0800 Subject: [PATCH 57/98] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=BE=AE=E4=BF=A1?= =?UTF-8?q?=E5=8F=8D=E9=A6=88=E6=A1=86=E5=8A=A0=E5=85=A5=E9=87=8D=E5=A4=8D?= =?UTF-8?q?=E7=8F=AD=E7=BA=A7=E6=8F=90=E7=A4=BA=E6=9C=89=E8=AF=AF=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/api/mobile/apis/courses.rb | 5 +---- app/controllers/wechats_controller.rb | 14 +++++++++++++- app/services/courses_service.rb | 6 +++--- app/views/courses/_set_join.js.erb | 6 +++--- 4 files changed, 20 insertions(+), 11 deletions(-) diff --git a/app/api/mobile/apis/courses.rb b/app/api/mobile/apis/courses.rb index 5908ef866..57fda4af1 100644 --- a/app/api/mobile/apis/courses.rb +++ b/app/api/mobile/apis/courses.rb @@ -393,10 +393,7 @@ module Mobile authenticate! course = Course.find(params[:course_id]) - exercises = course.exercises - exercises.each do |v| - v[:coursename] = course.nil? ? "未知" : course.name - end + exercises = course.exercises.where("exercise_status <> 1") present :data,exercises,with:Mobile::Entities::Exercise present :status,0 end diff --git a/app/controllers/wechats_controller.rb b/app/controllers/wechats_controller.rb index 5f1e54b8a..ef935c597 100644 --- a/app/controllers/wechats_controller.rb +++ b/app/controllers/wechats_controller.rb @@ -208,8 +208,20 @@ class WechatsController < ActionController::Base course = Course.where(invite_code: params[:invite_code]).first if params[:invite_code] raise "班级不存在,请确认您的邀请码是否输入正确,谢谢!" unless course + #取出用户角色类型 + role = 10 + + case user.user_extensions.identity + when 0 + role = "9" + when 1 + role = "10" + when 2 + role = "7" + end + cs = CoursesService.new - status = cs.join_course({invite_code: course.invite_code}, user) + status = cs.join_course({role:role,invite_code: course.invite_code}, user) logger.info status if status[:state] != 0 raise CoursesService::JoinCourseError.message(status[:state]) diff --git a/app/services/courses_service.rb b/app/services/courses_service.rb index 294c77019..fe23dc377 100644 --- a/app/services/courses_service.rb +++ b/app/services/courses_service.rb @@ -326,8 +326,8 @@ class CoursesService define_error [ 0, '加入成功', 1, '密码错误', - 2, '课程已过期 请联系课程管理员重启课程。', - 3, '您已经加入了课程', + 2, '班级已过期 请联系班级管理员重启班级。', + 3, '您已经加入了班级', 4, '您的邀请码不正确', 5, '您还未登录', 6, '申请成功,请等待审核完毕', @@ -522,7 +522,7 @@ class CoursesService def course_attachments params result = [] course = Course.find(params[:course_id]) - attachments = course.attachments.order("created_on ") + attachments = course.attachments.where("is_publish = 1").order("created_on desc") if !params[:name].nil? && params[:name] != "" attachments.each do |atta| result << atta if atta.filename.include?(params[:name]) diff --git a/app/views/courses/_set_join.js.erb b/app/views/courses/_set_join.js.erb index dbdf3d7f3..822757dfe 100644 --- a/app/views/courses/_set_join.js.erb +++ b/app/views/courses/_set_join.js.erb @@ -10,12 +10,12 @@ <% elsif @state == 1 %> alert("密码错误"); <% elsif @state == 2 %> - alert("课程已过期\n请联系课程管理员重启课程。(在配置课程处)"); + alert("班级已过期\n请联系班级管理员重启班级。(在配置班级处)"); <% elsif @state == 3 %> - alert("您已经加入了课程"); + alert("您已经加入了班级"); window.location.href= "http://"+"<%= Setting.host_name%>"+"/courses/" + "<%= course.id%>" <% elsif @state == 4 %> - alert("您加入的课程不存在"); + alert("您加入的班级不存在"); <% elsif @state == 5 %> alert("您还未登录"); <% elsif @state == 6 %> From b8c8b2c4ae11e5a4717866e8f1c1655330883405 Mon Sep 17 00:00:00 2001 From: yuanke <249218296@qq.com> Date: Fri, 15 Jul 2016 09:48:10 +0800 Subject: [PATCH 58/98] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=8A=A0=E5=85=A5?= =?UTF-8?q?=E7=8F=AD=E7=BA=A7=E7=9A=84=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/wechats_controller.rb | 11 +-------- app/services/courses_service.rb | 33 +++------------------------ 2 files changed, 4 insertions(+), 40 deletions(-) diff --git a/app/controllers/wechats_controller.rb b/app/controllers/wechats_controller.rb index ef935c597..38bff250e 100644 --- a/app/controllers/wechats_controller.rb +++ b/app/controllers/wechats_controller.rb @@ -211,17 +211,8 @@ class WechatsController < ActionController::Base #取出用户角色类型 role = 10 - case user.user_extensions.identity - when 0 - role = "9" - when 1 - role = "10" - when 2 - role = "7" - end - cs = CoursesService.new - status = cs.join_course({role:role,invite_code: course.invite_code}, user) + status = cs.join_course({invite_code: course.invite_code}, user) logger.info status if status[:state] != 0 raise CoursesService::JoinCourseError.message(status[:state]) diff --git a/app/services/courses_service.rb b/app/services/courses_service.rb index fe23dc377..7ef08f6d8 100644 --- a/app/services/courses_service.rb +++ b/app/services/courses_service.rb @@ -354,54 +354,27 @@ class CoursesService roleName = member.roles[0].name if member if params[:invite_code].present? #如果加入角色为学生 并且当前是学生 - if params[:role] == "10" && roleName == "Student" + if roleName == "Student" @state = 3 #如果加入的角色为老师,并且当前已经是老师 - elsif params[:role] == "9" && roleName == "Teacher" + elsif roleName == "Teacher" @state = 8 #如果加入的角色教辅并且当前为教辅 - elsif params[:role] == "7" && roleName == "TeachingAsistant" + elsif roleName == "TeachingAsistant" @state = 9 elsif roleName == "Manager" @state = 10 - #如果加入角色为教师或者教辅,并且当前是学生,或者是要成为教辅,当前不是教辅,或者要成为教师,当前不是教师。那么要发送请求 - elsif (params[:role] != "10" && roleName == "Student") || (params[:role] == "7" && roleName != "TeachingAsistant" ) || (params[:role] == "9" && roleName != "Teacher" ) - #如果已经发送过消息了,那么就要给个提示 - if CourseMessage.where("course_message_type = 'JoinCourseRequest' and user_id = #{course.tea_id} and course_message_id = #{User.current.id} and course_id = #{course.id} and status = 0 ").count != 0 - @state = 7 - else - Mailer.run.join_course_request(course, User.current, params[:role]) - CourseMessage.create(:user_id => course.tea_id, :course_id => course.id, :viewed => false,:content=> params[:role],:course_message_id=>User.current.id,:course_message_type=>'JoinCourseRequest',:status=>0) - @state = 6 - end - #如果加入角色是学生,但是是当前课程的教师或者教辅 - elsif params[:role] == "10" && roleName != "Student" - member.role_ids = [params[:role]] - member.save - StudentsForCourse.create(:student_id => current_user.id, :course_id => course.id) - @state = 0 end else @state = 1 end else if params[:invite_code].present? - if params[:role] == "10" || params[:role] == nil members = [] members << Member.new(:role_ids => [10], :user_id => current_user.id) course.members << members StudentsForCourse.create(:student_id => current_user.id, :course_id => course.id) @state = 0 - else - #如果已经发送过消息了,那么就要给个提示 - if CourseMessage.where("course_message_type = 'JoinCourseRequest' and user_id = #{course.tea_id} and content = #{params[:role]} and course_message_id = #{User.current.id} and course_id = #{course.id} and status = 0").count != 0 - @state = 7 - else - Mailer.run.join_course_request(course, User.current, params[:role]) - CourseMessage.create(:user_id => course.tea_id, :course_id => course.id, :viewed => false,:content=> params[:role],:course_message_id=>User.current.id,:course_message_type=>'JoinCourseRequest',:status=>0) - @state = 6 - end - end else @state = 1 end From 4be95cd9c5696b3b3c4b1b9916a423fa573107fb Mon Sep 17 00:00:00 2001 From: yuanke <249218296@qq.com> Date: Fri, 15 Jul 2016 09:52:57 +0800 Subject: [PATCH 59/98] =?UTF-8?q?=E7=8F=AD=E7=BA=A7=E5=86=85=E4=BD=9C?= =?UTF-8?q?=E4=B8=9A=E8=AF=BE=E4=BB=B6=E6=B5=8B=E9=AA=8C=E7=AD=89=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/apis/courses.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/api/mobile/apis/courses.rb b/app/api/mobile/apis/courses.rb index 57fda4af1..0467d6220 100644 --- a/app/api/mobile/apis/courses.rb +++ b/app/api/mobile/apis/courses.rb @@ -393,7 +393,7 @@ module Mobile authenticate! course = Course.find(params[:course_id]) - exercises = course.exercises.where("exercise_status <> 1") + exercises = course.exercises.where("exercise_status <> 1").order("created_at desc") present :data,exercises,with:Mobile::Entities::Exercise present :status,0 end From 7ea5d7d93449e6684a2bfa1321057fed7155aa95 Mon Sep 17 00:00:00 2001 From: cxt Date: Fri, 15 Jul 2016 10:21:59 +0800 Subject: [PATCH 60/98] =?UTF-8?q?=E6=96=B0=E5=BB=BA=E7=8F=AD=E7=BA=A7?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=EF=BC=8C=E6=8F=90=E7=A4=BA=E2=80=9C=E5=A6=82?= =?UTF-8?q?=E6=9E=9C=E5=88=97=E8=A1=A8=E4=B8=AD=E6=B2=A1=E6=9C=89=E5=AF=B9?= =?UTF-8?q?=E5=BA=94=E7=9A=84=E8=AF=BE=E7=A8=8B=EF=BC=8C=E8=AF=B7=E6=82=A8?= =?UTF-8?q?=E5=85=88=E5=88=9B=E5=BB=BA=E8=AF=BE=E7=A8=8B=E2=80=9D=E5=A7=8B?= =?UTF-8?q?=E7=BB=88=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/courses/_copy_course.html.erb | 2 +- app/views/courses/new.html.erb | 2 +- app/views/courses/settings.html.erb | 2 +- public/javascripts/course.js | 2 -- 4 files changed, 3 insertions(+), 5 deletions(-) diff --git a/app/views/courses/_copy_course.html.erb b/app/views/courses/_copy_course.html.erb index d7a9fa4cd..55217017b 100644 --- a/app/views/courses/_copy_course.html.erb +++ b/app/views/courses/_copy_course.html.erb @@ -54,7 +54,7 @@
  • <%= select_tag :syllabus_id,options_for_select(course_syllabus_option,@course.syllabus_id), {:id=>"new_syllabus_id", :class=>"syllabus_input"} %> - + 如果列表中没有对应的课程,请您先<%=link_to '创建课程', new_syllabus_path(),:target => '_blank', :class => 'ml5 green_btn_share c_white'%>
  • diff --git a/app/views/courses/new.html.erb b/app/views/courses/new.html.erb index 78b3d8293..a96380ecf 100644 --- a/app/views/courses/new.html.erb +++ b/app/views/courses/new.html.erb @@ -12,7 +12,7 @@ <%=@syllabus.title %> <% end %> - + 如果列表中没有对应的课程,请您先<%=link_to '创建课程', new_syllabus_path(),:target => '_blank', :class => 'ml5 green_btn_share c_white'%>
  • diff --git a/app/views/courses/settings.html.erb b/app/views/courses/settings.html.erb index ee0f6c98a..5b45042a7 100644 --- a/app/views/courses/settings.html.erb +++ b/app/views/courses/settings.html.erb @@ -32,7 +32,7 @@
  • <%= select_tag :syllabus_id,options_for_select(course_syllabus_option,@course.syllabus_id), {:id=>"edit_syllabus_id", :class=>"syllabus_input", :style=>'width:280px'} %> - + 如果列表中没有对应的课程,请您先<%=link_to '创建课程', new_syllabus_path(),:target => '_blank', :class => 'ml5 green_btn_share c_white'%>
  • diff --git a/public/javascripts/course.js b/public/javascripts/course.js index 0e60f01c9..e90742004 100644 --- a/public/javascripts/course.js +++ b/public/javascripts/course.js @@ -188,10 +188,8 @@ function regex_syllabus_option(str) { var obj = document.getElementById(str + "_syllabus_id"); var syllabus = obj.options[obj.selectedIndex]; if(parseInt(syllabus.value) == 0) { - $("#"+str+"_syllabus_notice").show(); return false; } else{ - $("#"+str+"_syllabus_notice").hide(); return true; } } else { From dc2ba9635394dc81411de2f8cc8d8f887a5e083b Mon Sep 17 00:00:00 2001 From: yuanke <249218296@qq.com> Date: Fri, 15 Jul 2016 10:26:37 +0800 Subject: [PATCH 61/98] =?UTF-8?q?=E7=94=A8=E6=88=B7=E6=B3=A8=E5=86=8C?= =?UTF-8?q?=E5=8F=91=E9=80=81=E7=BB=91=E5=AE=9A=E6=88=90=E5=8A=9F=E6=B6=88?= =?UTF-8?q?=E6=81=AF=E9=80=9A=E7=9F=A5=EF=BC=8C=E5=8A=A0=E5=85=A5=E7=8F=AD?= =?UTF-8?q?=E7=BA=A7=E6=B6=88=E6=81=AF=E9=80=9A=E7=9F=A5=E7=82=B9=E5=87=BB?= =?UTF-8?q?=E8=B7=B3=E5=85=A5=E7=8F=AD=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/apis/users.rb | 3 ++- app/controllers/wechats_controller.rb | 2 +- public/assets/wechat/class_list.html | 8 ++++---- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/app/api/mobile/apis/users.rb b/app/api/mobile/apis/users.rb index e2ea8d35b..e34bae63f 100644 --- a/app/api/mobile/apis/users.rb +++ b/app/api/mobile/apis/users.rb @@ -67,7 +67,8 @@ module Mobile openid: openid, user: user ) - + ws = WechatService.new + ws.binding_succ_notice(user.id, "您已成功绑定Trustie平台", user.login, Time.now.strftime("%Y-%m-%d")) present :data, user, with: Mobile::Entities::User present :status, 0 end diff --git a/app/controllers/wechats_controller.rb b/app/controllers/wechats_controller.rb index 38bff250e..ea305d967 100644 --- a/app/controllers/wechats_controller.rb +++ b/app/controllers/wechats_controller.rb @@ -221,7 +221,7 @@ class WechatsController < ActionController::Base news = (1..1).each_with_object([]) { |n, memo| memo << { title: '恭喜您成功加入班级,开始学习吧!', content: "课程名称: #{course.name}\n班级名称: #{course.name}\n任课老师: #{course.teacher.show_name}\n进入班级,和小伙伴愉快的学习吧!"} } return request.reply.news(news) do |article, n, index| # article is return object - url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=#{Wechat.config.appid}&redirect_uri=#{ROOT_URL+'/wechat/user_activities?id='+course.id.to_s}&response_type=code&scope=snsapi_base&state=myclass#wechat_redirect" + url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=#{Wechat.config.appid}&redirect_uri=#{ROOT_URL+'/wechat/user_activities#/class?id='+course.id.to_s}&response_type=code&scope=snsapi_base&state=myclass#wechat_redirect" pic_url = "#{ROOT_URL}/images/wechat/class.jpg" article.item title: "#{n[:title]}", description: n[:content], diff --git a/public/assets/wechat/class_list.html b/public/assets/wechat/class_list.html index dafce2cfc..b5feefc73 100644 --- a/public/assets/wechat/class_list.html +++ b/public/assets/wechat/class_list.html @@ -4,8 +4,8 @@
    我创建的课程
    -
    {{syllabus.title}}
    -
      +
      {{syllabus.title}}
      +
      • @@ -18,8 +18,8 @@
        我参与的课程
        -
        {{syllabus.title}}
        -
          +
          {{syllabus.title}}
          +
          • From 97b1ea22e7c84b2d2c7138404401fb517146c452 Mon Sep 17 00:00:00 2001 From: huang Date: Fri, 15 Jul 2016 10:51:44 +0800 Subject: [PATCH 62/98] =?UTF-8?q?=E8=A7=A3=E5=86=B3=EF=BC=9AFirefox?= =?UTF-8?q?=E6=B5=8F=E8=A7=88=E5=99=A8=E4=B8=AD=EF=BC=9A=E8=B5=84=E6=BA=90?= =?UTF-8?q?=E5=BA=93=EF=BC=8C=E5=85=88=E7=82=B9=E5=87=BB=E8=B5=84=E6=BA=90?= =?UTF-8?q?=E6=8F=8F=E8=BF=B0=E7=BC=96=E8=BE=91=E5=9B=BE=E6=A0=87=E6=8C=89?= =?UTF-8?q?=E9=92=AE=EF=BC=88=E7=AC=94=EF=BC=89=EF=BC=8C=E5=86=8D=E7=82=B9?= =?UTF-8?q?=E5=87=BB=E9=A1=B5=E9=9D=A2=E7=A9=BA=E7=99=BD=E5=A4=84=EF=BC=8C?= =?UTF-8?q?=E5=A6=82=E5=9B=BE=E4=B8=A4=E4=B8=AA=E8=B5=84=E6=BA=90=E4=B9=8B?= =?UTF-8?q?=E9=97=B4=E6=9C=89=E4=B8=80=E6=AE=B5=E7=A9=BA=E7=99=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/files/_resource_detail.html.erb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/views/files/_resource_detail.html.erb b/app/views/files/_resource_detail.html.erb index 85e0dc8d3..4e9f38c50 100644 --- a/app/views/files/_resource_detail.html.erb +++ b/app/views/files/_resource_detail.html.erb @@ -93,6 +93,6 @@
        -
    -
    \ No newline at end of file +
  • +
    \ No newline at end of file From df8b995d417bdeaeef6e5b83c820e25bfe621b91 Mon Sep 17 00:00:00 2001 From: txz Date: Fri, 15 Jul 2016 10:52:43 +0800 Subject: [PATCH 63/98] =?UTF-8?q?=E4=BD=9C=E4=B8=9A=EF=BC=8C=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E5=B1=9E=E6=80=A7=E5=AD=97=E4=BD=93=E5=87=8F=E5=B0=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/assets/wechat/activities.html | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/public/assets/wechat/activities.html b/public/assets/wechat/activities.html index 2da072cd8..cb1696dbf 100644 --- a/public/assets/wechat/activities.html +++ b/public/assets/wechat/activities.html @@ -36,8 +36,8 @@
    - 迟交扣分:{{act.homework_common_detail.late_penalty}}分 匿评开启时间:{{act.homework_common_detail.evaluation_start}}
    - 缺评扣分:{{act.homework_common_detail.absence_penalty}}分/作品 匿评关闭时间:{{act.homework_common_detail.evaluation_end}} + 迟交扣分:{{act.homework_common_detail.late_penalty}}分 匿评开启时间:{{act.homework_common_detail.evaluation_start}}
    + 缺评扣分:{{act.homework_common_detail.absence_penalty}}分/作品 匿评关闭时间:{{act.homework_common_detail.evaluation_end}}
    @@ -163,8 +163,8 @@
    - 状态:{{act.issue_detail.issue_status}} 优先级:{{act.issue_detail.issue_priority}}
    - 指派给:{{act.issue_detail.issue_assigned_to}} 完成度:{{act.issue_detail.done_ratio}}% + 状态:{{act.issue_detail.issue_status}} 优先级:{{act.issue_detail.issue_priority}}
    + 指派给:{{act.issue_detail.issue_assigned_to}} 完成度:{{act.issue_detail.done_ratio}}%
    From 08c6c16cfd7f2ff9cac538c6fb1b6df4ea4735c3 Mon Sep 17 00:00:00 2001 From: txz Date: Fri, 15 Jul 2016 10:56:54 +0800 Subject: [PATCH 64/98] =?UTF-8?q?=E8=AF=BE=E7=A8=8B=EF=BC=8C=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E8=AF=A6=E6=83=85=E9=A1=B5=E9=9D=A2=E5=B1=9E=E6=80=A7?= =?UTF-8?q?=E5=AD=97=E4=BD=93=E5=87=8F=E5=B0=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/assets/wechat/homework_detail.html | 8 ++++---- public/assets/wechat/issue_detail.html | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/public/assets/wechat/homework_detail.html b/public/assets/wechat/homework_detail.html index 583d0bcd7..8ec30acd8 100644 --- a/public/assets/wechat/homework_detail.html +++ b/public/assets/wechat/homework_detail.html @@ -15,10 +15,10 @@
    {{homework.name}}
    {{homework.course_name}} - 普通作业编程作业分组作业{{homework.publish_time}}
    - 迟交扣分:{{homework.late_penalty}}分 - 缺评扣分:{{homework.absence_penalty}}分/作品 - 匿评开启时间:{{homework.evaluation_start}} - 匿评关闭时间:{{homework.evaluation_end}} + 迟交扣分:{{homework.late_penalty}}分 + 匿评开启时间:{{homework.evaluation_start}}
    + 缺评扣分:{{homework.absence_penalty}}分/作品 + 匿评关闭时间:{{homework.evaluation_end}}
    diff --git a/public/assets/wechat/issue_detail.html b/public/assets/wechat/issue_detail.html index c28b53698..953fec3c7 100644 --- a/public/assets/wechat/issue_detail.html +++ b/public/assets/wechat/issue_detail.html @@ -17,10 +17,10 @@
    {{issue.project_name}} - 项目问题{{issue.created_on}}
    - 状   态:{{issue.issue_status}} - 优先级:{{issue.issue_priority}}
    - 指派给:{{issue.issue_assigned_to}} - 完成度:{{issue.done_ratio}}% + 状   态:{{issue.issue_status}} + 优先级:{{issue.issue_priority}}
    + 指派给:{{issue.issue_assigned_to}} + 完成度:{{issue.done_ratio}}%
    From fd68479d72ef011f76210cc700c8a711eb16bf7d Mon Sep 17 00:00:00 2001 From: cxt Date: Fri, 15 Jul 2016 11:02:53 +0800 Subject: [PATCH 65/98] =?UTF-8?q?=E8=AF=BE=E7=A8=8B/=E9=A1=B9=E7=9B=AE/?= =?UTF-8?q?=E7=BB=84=E7=BB=87=E8=B5=84=E6=BA=90=E5=BA=93=E5=8F=91=E9=80=81?= =?UTF-8?q?=E8=B5=84=E6=BA=90=E3=80=81=E9=97=AE=E7=AD=94=E5=8C=BA=E5=B8=96?= =?UTF-8?q?=E5=AD=90=E5=8F=91=E9=80=81=E3=80=81=E9=80=9A=E7=9F=A5=E5=8F=91?= =?UTF-8?q?=E9=80=81=E3=80=81=E6=96=B0=E9=97=BB=E5=8F=91=E9=80=81=E3=80=81?= =?UTF-8?q?=E5=8A=A8=E6=80=81=E4=B8=AD=E5=8F=91=E9=80=81=E5=88=B0=E8=AF=BE?= =?UTF-8?q?=E7=A8=8B=E6=94=B9=E4=B8=BA=E7=8F=AD=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/users/_resource_share_for_orgs.html.erb | 2 +- app/views/users/_resource_share_for_project_popup.html.erb | 2 +- app/views/users/_send_homework_to_course.html.erb | 2 +- app/views/users/_share_message_to_course.html.erb | 2 +- app/views/users/_share_message_to_org.html.erb | 2 +- app/views/users/_share_message_to_project.html.erb | 2 +- app/views/users/_share_news_to_course.html.erb | 2 +- app/views/users/_share_news_to_org.html.erb | 2 +- app/views/users/_share_news_to_project.html.erb | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/app/views/users/_resource_share_for_orgs.html.erb b/app/views/users/_resource_share_for_orgs.html.erb index 6788161f0..36d1c774f 100644 --- a/app/views/users/_resource_share_for_orgs.html.erb +++ b/app/views/users/_resource_share_for_orgs.html.erb @@ -5,7 +5,7 @@ <% send_ids = send_ids.class == String ? send_ids : send_ids.join(",") %> <% end %> 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 07f4abe38..b521bcb90 100644 --- a/app/views/users/_resource_share_for_project_popup.html.erb +++ b/app/views/users/_resource_share_for_project_popup.html.erb @@ -6,7 +6,7 @@ <% send_ids = send_ids.class == String ? send_ids : send_ids.join(",") %> <% end %> diff --git a/app/views/users/_send_homework_to_course.html.erb b/app/views/users/_send_homework_to_course.html.erb index fc4007d03..f6f007838 100644 --- a/app/views/users/_send_homework_to_course.html.erb +++ b/app/views/users/_send_homework_to_course.html.erb @@ -16,7 +16,7 @@ function send_submit() { var checkboxs = $("input[name='course_ids[]']:checked"); if(checkboxs.length == 0) { - $("#choose_courses_notice").text("请先选择课程"); + $("#choose_courses_notice").text("请先选择班级"); } else{ $("#choose_courses_notice").text(""); $("#choose_course_list_form").submit(); diff --git a/app/views/users/_share_message_to_course.html.erb b/app/views/users/_share_message_to_course.html.erb index d86c51f0d..4fc1a1766 100644 --- a/app/views/users/_share_message_to_course.html.erb +++ b/app/views/users/_share_message_to_course.html.erb @@ -5,7 +5,7 @@
    发送到
    diff --git a/app/views/users/_share_message_to_org.html.erb b/app/views/users/_share_message_to_org.html.erb index 8cb2fae57..37575a8d5 100644 --- a/app/views/users/_share_message_to_org.html.erb +++ b/app/views/users/_share_message_to_org.html.erb @@ -2,7 +2,7 @@
    发送到
    diff --git a/app/views/users/_share_message_to_project.html.erb b/app/views/users/_share_message_to_project.html.erb index 3a89c0b9f..89b36e22a 100644 --- a/app/views/users/_share_message_to_project.html.erb +++ b/app/views/users/_share_message_to_project.html.erb @@ -3,7 +3,7 @@
    发送到
    diff --git a/app/views/users/_share_news_to_course.html.erb b/app/views/users/_share_news_to_course.html.erb index e03a296b2..0e88c164e 100644 --- a/app/views/users/_share_news_to_course.html.erb +++ b/app/views/users/_share_news_to_course.html.erb @@ -5,7 +5,7 @@
    发送到
    diff --git a/app/views/users/_share_news_to_org.html.erb b/app/views/users/_share_news_to_org.html.erb index 095e09027..85d5e7104 100644 --- a/app/views/users/_share_news_to_org.html.erb +++ b/app/views/users/_share_news_to_org.html.erb @@ -2,7 +2,7 @@
    发送到
    diff --git a/app/views/users/_share_news_to_project.html.erb b/app/views/users/_share_news_to_project.html.erb index 0fb38f8df..d4c293304 100644 --- a/app/views/users/_share_news_to_project.html.erb +++ b/app/views/users/_share_news_to_project.html.erb @@ -3,7 +3,7 @@
    发送到
    From 38cc3c20100f669b79b3c808452efd2da9ad9a45 Mon Sep 17 00:00:00 2001 From: huang Date: Fri, 15 Jul 2016 11:31:31 +0800 Subject: [PATCH 66/98] =?UTF-8?q?=E5=8F=91=E9=80=81=E8=BF=87=E6=9D=A5?= =?UTF-8?q?=E7=9A=84=E8=B5=84=E6=BA=90=E5=9C=A8=E9=A1=B9=E7=9B=AE=E4=B8=AD?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=8A=A8=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/users_controller.rb | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 83a794cd9..15ddf0435 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -2132,6 +2132,7 @@ class UsersController < ApplicationController # 添加资源到对应的项目 def add_exist_file_to_project @flag = true + # 发送单个资源 if params[:send_id].present? send_id = params[:send_id] project_ids = params[:projects_ids] @@ -2168,6 +2169,8 @@ class UsersController < ApplicationController quotes = ori.quotes.to_i + 1 ori.update_attribute(:quotes, quotes) unless ori.nil? ori.forwards << Forward.new(:to_type => attach_copied_obj.class.name, :to_id => attach_copied_obj.id,:created_at => Time.now) + # 项目中添加动态 + ForgeActivity.create(:user_id => User.current.id, :project_id => project_id, :forge_act_id => attach_copied_obj.id, :forge_act_type => "Attachment" ) end unless Project.find(project_id).project_score.nil? Project.find(project_id).project_score.update_attribute(:attach_num, @@ -2176,6 +2179,7 @@ class UsersController < ApplicationController end @ori = ori end + # 发送多个资源 elsif params[:send_ids].present? send_ids = params[:send_ids].split(",") project_ids = params[:projects_ids] @@ -2214,6 +2218,8 @@ class UsersController < ApplicationController quotes = ori.quotes.to_i + 1 ori.update_attribute(:quotes, quotes) unless ori.nil? ori.forwards << Forward.new(:to_type => attach_copied_obj.class.name, :to_id => attach_copied_obj.id,:created_at => Time.now) + # 项目中添加动态 + ForgeActivity.create(:user_id => User.current.id, :project_id => project_id, :forge_act_id => attach_copied_obj.id, :forge_act_type => "Attachment" ) end unless Project.find(project_id).project_score.nil? Project.find(project_id).project_score.update_attribute(:attach_num, Project.find(project_id).project_score.attach_num + 1) From 77e4a66e7e166096c321292ab6d48730c240607a Mon Sep 17 00:00:00 2001 From: huang Date: Fri, 15 Jul 2016 13:50:15 +0800 Subject: [PATCH 67/98] =?UTF-8?q?=E6=A8=A1=E5=BC=8F=E5=88=87=E6=8D=A2?= =?UTF-8?q?=E5=88=B7=E6=96=B0=E5=90=8E=E5=BC=95=E8=B5=B7=E7=9A=84=E6=A0=B7?= =?UTF-8?q?=E5=BC=8F=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/projects/_friend_group.html.erb | 2 +- app/views/projects/_research_team.html.erb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/views/projects/_friend_group.html.erb b/app/views/projects/_friend_group.html.erb index feb4fb3ac..d50f96f22 100644 --- a/app/views/projects/_friend_group.html.erb +++ b/app/views/projects/_friend_group.html.erb @@ -22,7 +22,7 @@ <%= link_to "(#{@project.project_score.attach_num})", project_files_path(@project), :class => "subnav_num c_orange",:id=>'project_files_count_nav' %> <% end %> <% if User.current.member_of?(@project) %> - <%= link_to "+"+l(:label_upload_source), project_files_path(@project,:flag => true), :class => "subnav_green ml95" %> + <%= link_to "+"+l(:label_upload_source), project_files_path(@project,:flag => true), :class => "subnav_green ml105" %> <% end %>
    <% end %> \ No newline at end of file diff --git a/app/views/projects/_research_team.html.erb b/app/views/projects/_research_team.html.erb index 7c8d80c59..1d2debdfe 100644 --- a/app/views/projects/_research_team.html.erb +++ b/app/views/projects/_research_team.html.erb @@ -33,7 +33,7 @@ <%= link_to "(#{@project.project_score.attach_num})", project_files_path(@project), :class => "subnav_num c_orange",:id=>'project_files_count_nav' %> <% end %> <% if User.current.member_of?(@project) %> - <%= link_to "+"+l(:label_upload_source), project_files_path(@project,:flag => true), :class => "subnav_green ml95" %> + <%= link_to "+"+l(:label_upload_source), project_files_path(@project,:flag => true), :class => "subnav_green ml105" %> <% end %>
    <% end%> From 5a463721b80142d49376fc6ac5c232ffbb74820e Mon Sep 17 00:00:00 2001 From: txz Date: Fri, 15 Jul 2016 14:09:22 +0800 Subject: [PATCH 68/98] =?UTF-8?q?=E8=B5=84=E6=BA=90=E6=9D=A5=E6=BA=90?= =?UTF-8?q?=E9=99=90=E5=88=B6=E5=AE=BD=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/assets/wechat/myresource.html | 6 +++--- public/stylesheets/weui/weixin.css | 2 ++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/public/assets/wechat/myresource.html b/public/assets/wechat/myresource.html index 6300240d3..3744cf65c 100644 --- a/public/assets/wechat/myresource.html +++ b/public/assets/wechat/myresource.html @@ -13,21 +13,21 @@
    {{r.filename}}发送
    - 课件来源:{{r.coursename}}大小:{{r.attafile_size}} + 大小:{{r.attafile_size}}

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

    {{r.homework_name}}发送
    - 作业来源:{{r.coursename}} +

    暂无作业,
    请登录Trustie网站,在PC浏览器中创建作业。

    {{r.exercise_name}}发送
    - 题目来源:{{r.coursename}} +

    暂无测验,
    请登录Trustie网站,在PC浏览器中创建测验。

    diff --git a/public/stylesheets/weui/weixin.css b/public/stylesheets/weui/weixin.css index 17c039a29..cc81a4c0c 100644 --- a/public/stylesheets/weui/weixin.css +++ b/public/stylesheets/weui/weixin.css @@ -194,6 +194,8 @@ a.underline {text-decoration:underline;} .img-circle {border-radius:50%;} .member-banner {height:24px; line-height:24px; text-align:center; vertical-align:middle; background-color:#dfdfdf;} .resource-width {width:76%;} +.courseware-from-width {max-width:57%;} +.other-from-width {max-width:80%;} /*20160614班级列表*/ .course-diff-row {width:100%; height:28px; line-height:28px; vertical-align:middle; background-color:#fff;} From 4e3a7e8df121102c4302e112c2c26ef2812492e8 Mon Sep 17 00:00:00 2001 From: huang Date: Fri, 15 Jul 2016 14:11:51 +0800 Subject: [PATCH 69/98] =?UTF-8?q?=E6=96=B0=E5=BB=BA=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E2=80=9C=E6=97=A5=E6=9C=9F=E2=80=9D--=E3=80=8B=E2=80=9C?= =?UTF-8?q?=E6=88=AA=E6=AD=A2=E6=97=A5=E6=AD=A2=E2=80=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/projects/settings/_new_versions.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/projects/settings/_new_versions.html.erb b/app/views/projects/settings/_new_versions.html.erb index 557025eaa..68d35f9af 100644 --- a/app/views/projects/settings/_new_versions.html.erb +++ b/app/views/projects/settings/_new_versions.html.erb @@ -73,7 +73,7 @@
  • - + <%= f.text_field :effective_date, :size => 10, :readonly => true,:class=>" fl" %> <%= calendar_for('version_effective_date') %>
  • From b540ff7017238fe6e31df3864ec46263cc6a521b Mon Sep 17 00:00:00 2001 From: yuanke <249218296@qq.com> Date: Fri, 15 Jul 2016 14:44:37 +0800 Subject: [PATCH 70/98] =?UTF-8?q?=E6=88=91=E7=9A=84=E8=B5=84=E6=BA=90?= =?UTF-8?q?=E9=87=8C=E5=A2=9E=E5=8A=A0=E6=9B=B4=E5=A4=9A=E6=8C=89=E9=92=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/apis/resources.rb | 36 ++++- public/assets/wechat/class.html | 9 ++ public/assets/wechat/myresource.html | 9 ++ .../wechat/controllers/myresource.js | 124 +++++++++++++++--- 4 files changed, 157 insertions(+), 21 deletions(-) diff --git a/app/api/mobile/apis/resources.rb b/app/api/mobile/apis/resources.rb index 16531940f..d5823d5b4 100644 --- a/app/api/mobile/apis/resources.rb +++ b/app/api/mobile/apis/resources.rb @@ -8,13 +8,23 @@ module Mobile desc '获取所有课件' params do requires :token, type: String + requires :page, type: Integer end - get do + post do authenticate! + page = params[:page] ? params[:page] : 0 + rs = ResourcesService.new # data = current_user.course_attachments data = rs.all_course_attachments current_user + all_count = data.count + data = data.limit(10).offset(page * 10) + count = data.count + present :data, data, with: Mobile::Entities::Attachment,user: current_user + present :all_count, all_count + present :count, count + present :page, page present :status, 0 end @@ -24,14 +34,24 @@ module Mobile desc '获取所有作业' params do requires :token, type: String + requires :page, type: Integer end - get 'homeworks' do + post 'homeworks' do authenticate! + page = params[:page] ? params[:page] : 0 + rs = ResourcesService.new homeworks = rs.all_homework_commons current_user + all_count = homeworks.count + homeworks = homeworks.limit(10).offset(page * 10) + count = homeworks.count + present :data, homeworks, with: Mobile::Entities::Homework,user: current_user + present :all_count, all_count + present :count, count + present :page, page present :status, 0 end @@ -39,13 +59,23 @@ module Mobile desc '获取所有测验' params do requires :token, type: String + requires :page, type: Integer end - get 'exercies' do + post 'exercises' do authenticate! + page = params[:page] ? params[:page] : 0 + rs = ResourcesService.new exercises = rs.all_exercises current_user + all_count = exercises.count + exercises = exercises.limit(10).offset(page * 10) + count = exercises.count + present :data, exercises, with: Mobile::Entities::Exercise,user: current_user + present :all_count, all_count + present :count, count + present :page, page present :status, 0 end diff --git a/public/assets/wechat/class.html b/public/assets/wechat/class.html index 294610ac7..0539ee326 100644 --- a/public/assets/wechat/class.html +++ b/public/assets/wechat/class.html @@ -24,6 +24,9 @@
    {{r.filename}}发送
    +
    +
    更多
    +

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

    @@ -43,6 +46,9 @@
    {{r.homework_name}}发送
    +
    +
    更多
    +

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

    @@ -50,6 +56,9 @@
    {{r.exercise_name}}发送
    +
    +
    更多
    +

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

    diff --git a/public/assets/wechat/myresource.html b/public/assets/wechat/myresource.html index 6300240d3..bfa73b89b 100644 --- a/public/assets/wechat/myresource.html +++ b/public/assets/wechat/myresource.html @@ -14,6 +14,9 @@
    {{r.filename}}发送
    课件来源:{{r.coursename}}大小:{{r.attafile_size}} +
    +
    +
    更多

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

    @@ -22,12 +25,18 @@
    {{r.homework_name}}发送
    作业来源:{{r.coursename}}
    +
    +
    更多
    +

    暂无作业,
    请登录Trustie网站,在PC浏览器中创建作业。

    {{r.exercise_name}}发送
    题目来源:{{r.coursename}} +
    +
    +
    更多

    暂无测验,
    请登录Trustie网站,在PC浏览器中创建测验。

    diff --git a/public/javascripts/wechat/controllers/myresource.js b/public/javascripts/wechat/controllers/myresource.js index b371ee8cc..9aab39479 100644 --- a/public/javascripts/wechat/controllers/myresource.js +++ b/public/javascripts/wechat/controllers/myresource.js @@ -2,36 +2,124 @@ app.controller('MyResourceController', ['$scope', '$http', 'auth', 'config', '$l var vm = $scope; vm.menus = ['课件', '作业', '测验']; - vm.resources = null; - vm.homeworks = null; - vm.exercise = null; + vm.resources = []; + vm.homeworks = []; + vm.exercise = []; + + vm.has_more = false; + vm.page = 0; + + vm.homework_has_more = false; + vm.homework_page = 0; + + vm.exercise_has_more = false; + vm.exercise_page = 0; vm.searchText = ""; - vm.tab = function(index){ - vm.currentTab = index; - vm.searchText = ""; - if(index==1 && (!vm.resources || vm.resources.length <= 0 )){ - $http.get(config.apiUrl + "resources?token="+auth.token()).then(function(response){ + vm.sendFile = function(r){ + $location.path("/send_class_list").search({id: r.id}); + } + + vm.loadResourceData = function (index,page){ + if(index == 1){ + vm.page = page; + $http({ + method: 'POST', + url: apiUrl+ "resources", + data: {token: auth.token(), page: page} + }).then(function successCallback(response) { + if(response.data.page >0) { + vm.resources = vm.resources.concat(response.data.data); + } else { + vm.resources = response.data.data; + } + +// rms.save("resources", vm.resources); + vm.has_more = (response.data.count + response.data.page * 10) < response.data.all_count; +// rms.save('homework_has_more', vm.has_more); +// rms.save('homework_page', vm.data.page); + console.log(response.data); - vm.resources = response.data.data; + + }, function errorCallback(response) { }); - } else if(index==2 && (!vm.homeworks || vm.homeworks.length <= 0) ){ - $http.get(config.apiUrl + "resources/homeworks?token="+auth.token()).then(function(response){ + + } + else if(index==2 ){ + vm.homework_page = page; + $http({ + method: 'POST', + url: apiUrl+ "resources/homeworks", + data: {token: auth.token(), page: page} + }).then(function successCallback(response) { + if(response.data.page >0) { + vm.homeworks = vm.homeworks.concat(response.data.data); + } else { + vm.homeworks = response.data.data; + } + +// rms.save("homeworks", vm.homeworks); + vm.homework_has_more = (response.data.count + response.data.page * 10) < response.data.all_count; +// rms.save('homework_has_more', vm.has_more); +// rms.save('homework_page', vm.data.page); + console.log(response.data); - vm.homeworks = response.data.data; + + }, function errorCallback(response) { }); - } else if(index==3 && (!vm.exercise || vm.exercise.length <= 0) ){ - $http.get(config.apiUrl + "resources/exercies?token="+auth.token()).then(function(response){ + } + else if(index==3 ){ + vm.exercise_page = page; + $http({ + method: 'POST', + url: apiUrl+ "resources/exercises", + data: {token: auth.token(), page: page} + }).then(function successCallback(response) { + if(response.data.page >0) { + vm.exercise = vm.exercise.concat(response.data.data); + } else { + vm.exercise = response.data.data; + } + +// rms.save("homeworks", vm.homeworks); + vm.exercise_has_more = (response.data.count + response.data.page * 10) < response.data.all_count; +// rms.save('homework_has_more', vm.has_more); +// rms.save('homework_page', vm.data.page); + console.log(response.data); - vm.exercise = response.data.data; + + }, function errorCallback(response) { }); } } - vm.tab(1); + vm.tab = function(index){ + vm.currentTab = index; + vm.searchText = ""; - vm.sendFile = function(r){ - $location.path("/send_class_list").search({id: r.id}); + switch(index){ + //ALL + case 1: + if(vm.resources.length<=0){ + vm.loadResourceData(index,0); + } + break; + //homework + case 2: + if(vm.homeworks.length<=0){ + vm.loadResourceData(index,0); + } + break; + //exercise + case 3: + if(vm.exercise.length<=0){ + vm.loadResourceData(index,0); + } + break; + } } + + vm.tab(1); + }] ); From 8c2ae92d310da606e2fa136e364e75d86ce6314f Mon Sep 17 00:00:00 2001 From: guange <8863824@gmail.com> Date: Fri, 15 Jul 2016 14:45:01 +0800 Subject: [PATCH 71/98] =?UTF-8?q?=E5=8A=A0=E5=85=A5=E6=80=A7=E8=83=BD?= =?UTF-8?q?=E5=88=86=E6=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 2 +- config/menu.yml.test | 9 +++------ config/oneapm.yml | 4 ++-- config/wechat.yml | 8 ++++---- 4 files changed, 10 insertions(+), 13 deletions(-) diff --git a/Gemfile b/Gemfile index 3bea83669..03dbb5785 100644 --- a/Gemfile +++ b/Gemfile @@ -51,7 +51,7 @@ gem 'elasticsearch-rails' ### profile -#gem 'oneapm_rpm' +gem 'oneapm_rpm' group :development do gem 'grape-swagger' diff --git a/config/menu.yml.test b/config/menu.yml.test index a163bac61..a43d72816 100644 --- a/config/menu.yml.test +++ b/config/menu.yml.test @@ -2,21 +2,18 @@ button: - type: "view" name: "我的动态" - url: "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxc09454f171153c2d&redirect_uri=http://test.forge.trustie.net/wechat/user_activities&response_type=code&scope=snsapi_b -ase&state=activities#wechat_redirect" + url: "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxc09454f171153c2d&redirect_uri=https://ucloudtest.trustie.net/wechat/user_activities&response_type=code&scope=snsapi_base&state=activities#wechat_redirect" - name: "我的课程" sub_button: - type: "view" name: "课程" - url: "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxc09454f171153c2d&redirect_uri=http://test.forge.trustie.net/wechat/user_activities&response_type=code&scope=snsapi -_base&state=class_list#wechat_redirect" + url: "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxc09454f171153c2d&redirect_uri=https://ucloudtest.trustie.net/wechat/user_activities&response_type=code&scope=snsapi_base&state=class_list#wechat_redirect" - type: "view" name: "资源" - url: "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxc09454f171153c2d&redirect_uri=http://test.forge.trustie.net/wechat/user_activities&response_type=code&scope=snsapi -_base&state=myresource#wechat_redirect" + url: "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxc09454f171153c2d&redirect_uri=https://ucloudtest.trustie.net/wechat/user_activities&response_type=code&scope=snsapi_base&state=myresource#wechat_redirect" - name: "更多" diff --git a/config/oneapm.yml b/config/oneapm.yml index 7e85a3c65..3ab2385f5 100644 --- a/config/oneapm.yml +++ b/config/oneapm.yml @@ -11,7 +11,7 @@ common: &default_settings # 如果您修改了此处的app_name,一个新的应用会出现在后台, # 数据会上传到这个新应用,并停止向旧的应用上传数据。 # - app_name: trustie + app_name: trustie_wechat # # 环境相关配置 @@ -25,7 +25,7 @@ development: <<: *default_settings # development模式下,探针开启并上传性能数据 monitor_mode: true - app_name: trustie(Development) + app_name: My Application (Development) test: <<: *default_settings diff --git a/config/wechat.yml b/config/wechat.yml index d243ca44c..5740be9a6 100644 --- a/config/wechat.yml +++ b/config/wechat.yml @@ -8,12 +8,12 @@ default: &default #secret: "743e038392f1d89540e95f8f7645849a" #production - appid: "wx8e1ab05163a28e37" - secret: "beb4d3bc4b32b3557811680835357841" + #appid: "wx8e1ab05163a28e37" + #secret: "beb4d3bc4b32b3557811680835357841" #test - #appid: "wxc09454f171153c2d" - #secret: "dff5b606e34dcafe24163ec82c2715f8" + appid: "wxc09454f171153c2d" + secret: "dff5b606e34dcafe24163ec82c2715f8" token: "123456" access_token: "1234567" From 87e1e0c4b106e6eb06477f4f88aad1f74d940764 Mon Sep 17 00:00:00 2001 From: huang Date: Fri, 15 Jul 2016 14:45:06 +0800 Subject: [PATCH 72/98] =?UTF-8?q?rake=E4=BB=BB=E5=8A=A1=EF=BC=8C=E8=AF=BE?= =?UTF-8?q?=E7=A8=8B=E4=BD=9C=E4=B8=9A=E5=85=B3=E8=81=94=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E5=90=8E=E8=8E=B7=E5=8F=96=E6=9C=80=E6=96=B0=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E5=BA=93=E6=8F=90=E4=BA=A4=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/tasks/update_homework.rake | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/lib/tasks/update_homework.rake b/lib/tasks/update_homework.rake index d97004c8c..33bcc2231 100644 --- a/lib/tasks/update_homework.rake +++ b/lib/tasks/update_homework.rake @@ -15,11 +15,9 @@ namespace :update_homework do unless student_works.nil? student_works.each do |s| project = Project.find s.project_id - unless project.nil? && project.gpid.blank? + if !project.nil? && !project.gpid.blank? project_time=project.updated_on project_time=ForgeActivity.where("project_id=?",project.id).last.updated_at if ForgeActivity.where("project_id=?",project.id).last - puts "the time is =========================> #{time}" - puts "the project_time is =========================> #{project_time}" if time.strftime('%Y-%m-%d %H:%M:%S') < project_time.strftime('%Y-%m-%d %H:%M:%S') #if format_time(time) < format_time(project_time) time = project_time @@ -31,9 +29,6 @@ namespace :update_homework do changesets = g.commits(project.gpid, :ref_name => default_branch) changesets_latest_coimmit = changesets[0] unless changesets[0].blank? - puts "the time is =========================> #{time}" - puts "the changesets_latest_coimmit is =========================> #{changesets_latest_coimmit.created_at}" - puts "the distance time is =========================> #{changesets_latest_coimmit.created_at.to_time > Time.now}" if time.strftime('%Y-%m-%d %H:%M:%S') < changesets_latest_coimmit.created_at.to_time.strftime('%Y-%m-%d %H:%M:%S') #if format_time(time) < format_time(changesets_latest_coimmit.created_at) time = changesets_latest_coimmit.created_at.to_time From b7e6725e1fd730c54feba9e6a2e1c409ce542a18 Mon Sep 17 00:00:00 2001 From: cxt Date: Fri, 15 Jul 2016 14:48:39 +0800 Subject: [PATCH 73/98] =?UTF-8?q?=E7=AE=A1=E7=90=86=E5=91=98=E7=95=8C?= =?UTF-8?q?=E9=9D=A2=E7=9A=84=E8=AF=BE=E7=A8=8B=E5=90=8D=E7=A7=B0=E5=8F=8C?= =?UTF-8?q?=E5=87=BB=E5=8F=AF=E7=82=B9=E5=87=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/admin_controller.rb | 13 ++- .../admin/_rename_syllabus_title.html.erb | 3 + app/views/admin/syllabuses.html.erb | 85 ++++++++++++++----- app/views/admin/update_syllabus_title.js.erb | 1 + app/views/layouts/_syllabus_info.html.erb | 4 +- app/views/layouts/_syllabus_title.html.erb | 2 +- app/views/layouts/base_syllabus.html.erb | 20 +++-- .../syllabuses/edit_syllabus_title.js.erb | 1 + config/routes.rb | 1 + public/javascripts/syllabus.js | 35 +++++--- 10 files changed, 121 insertions(+), 44 deletions(-) create mode 100644 app/views/admin/_rename_syllabus_title.html.erb create mode 100644 app/views/admin/update_syllabus_title.js.erb diff --git a/app/controllers/admin_controller.rb b/app/controllers/admin_controller.rb index 36a5d9d4f..6c62c642a 100644 --- a/app/controllers/admin_controller.rb +++ b/app/controllers/admin_controller.rb @@ -96,7 +96,7 @@ class AdminController < ApplicationController def courses @name = params[:name].to_s.strip.downcase if @name && @name != "" - @courses = Course.select{ |course| (course.teacher[:lastname].to_s.downcase + course.teacher[:firstname].to_s.downcase).include?(@name) || course.name.include?(@name)} + @courses = Course.select{ |course| course.teacher && ((course.teacher.show_name).include?(@name) || course.name.include?(@name))} @courses = @courses.sort{|x, y| y.created_at <=> x.created_at} else @courses = Course.order('created_at desc') @@ -135,6 +135,17 @@ class AdminController < ApplicationController end end + #修改课程名称 + def update_syllabus_title + @syllabus = Syllabus.where("id = #{params[:syllabus_id].to_i}").first + unless @syllabus.nil? + @syllabus.update_column("title", params[:name]) + respond_to do |format| + format.js + end + end + end + #管理员界面精品课程列表 def excellent_courses @courses = Course.where("is_excellent =? or excellent_option =?", 1, 1 ) diff --git a/app/views/admin/_rename_syllabus_title.html.erb b/app/views/admin/_rename_syllabus_title.html.erb new file mode 100644 index 000000000..e3a175215 --- /dev/null +++ b/app/views/admin/_rename_syllabus_title.html.erb @@ -0,0 +1,3 @@ + + <%= syllabus.title %> + \ No newline at end of file diff --git a/app/views/admin/syllabuses.html.erb b/app/views/admin/syllabuses.html.erb index 782f6b01c..194091abc 100644 --- a/app/views/admin/syllabuses.html.erb +++ b/app/views/admin/syllabuses.html.erb @@ -46,10 +46,8 @@ <%= syllabus.id %> - - - <%= link_to(syllabus.title, syllabus_path(syllabus.id)) %> - + + <%= render :partial => 'admin/rename_syllabus_title', :locals => {:syllabus => syllabus} %> @@ -89,23 +87,24 @@
    - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/javascripts/wechat/build/app.min.js b/public/javascripts/wechat/build/app.min.js index 7e4e69008..6511ffb0e 100644 --- a/public/javascripts/wechat/build/app.min.js +++ b/public/javascripts/wechat/build/app.min.js @@ -1,7 +1,7 @@ var app=angular.module("wechat",["ngRoute"]);app.constant("config",{rootPath:"/assets/wechat/",rootUrl:"/",apiUrl:"/api/v1/"}),app.run(["$rootScope","auth","$location","$routeParams",function(t,a,e,r){g_redirect_path&&g_redirect_path.length>1&&(e.path(g_redirect_path),g_redirect_path=null),t.$on("$routeChangeError",function(t,a,r){a&&a.templateUrl&&(a.templateUrl.endsWith("login.html")||a.templateUrl.endsWith("reg.html")||e.path("/login"))}),t.$on("$routeChangeStart",function(t,a,e){})}]); -app.factory("alertService",function(){function t(){this.title=null,this.message=null,this.visible=null,this.cb=null}return t.prototype.showMessage=function(t,e,n){this.message=e,this.title=t,this.visible=!0,this.cb=n},t.prototype.dismiss=function(){this.message=null,this.title=null,this.visible=!1,this.cb&&this.cb()},{create:function(){return new t}}}),app.factory("auth",["$http","$routeParams","$q","session","config",function(t,e,n,o,a){var i=function(){var a=n.defer(),i=c();if(i&&i.length>10)a.resolve(i);else{window.g_code||e.code||o.get("code");t.post("/wechat/get_bind",{}).then(function(t){0!=t.data.status?a.reject(t.data.message):(o.save("token",t.data.token),a.resolve(t.data.token))})["catch"](function(t){a.reject(t)})}return a.promise},c=function(){return o.get("token")};return{get_bind:i,token:c}}]),app.factory("session",function(){return{save:function(t,e){sessionStorage.setItem(t,e)},get:function(t){return sessionStorage.getItem(t)}}}),app.factory("rms",function(){var t={},e=function(e,n){t[e]=n},n=function(e){return t[e]};return{save:e,get:n}}),app.factory("common",["$http","auth","$routeParams",function(t,e,n){var o=function(n,o,a,i){if(a.comment&&!(a.comment.length<=0)){var c=a.comment.replace(/\n/g,"
    "),s={type:o,content:c,token:e.token()};a.disabled=!0,t({method:"POST",url:apiUrl+"new_comment/"+n,data:s}).then(function(t){a.disabled=!1,"function"==typeof i&&i()},function(t){})}},a=function(n,o){return t({method:"GET",url:apiUrl+o+"/"+n+"?token="+e.token()})},i=function(n){n.praise_count+=1,n.has_praise=!0,t({method:"POST",url:apiUrl+"praise/"+n.act_id,data:{token:e.token(),type:n.act_type}}).then(function(t){console.log(t.data)},function(t){})},c=function(n){n.praise_count-=1,n.has_praise=!1,t({method:"POST",url:apiUrl+"praise/"+n.act_id,data:{token:e.token(),type:n.act_type}}).then(function(t){console.log(t.data)},function(t){})},s=function(t){t.scope.formData={comment:""};var e=function(e){a(e,t.type).then(function(e){t.loadCallback(e.data)},function(t){})};e(t.id),t.scope.addReply=function(n){console.log(n.comment),o(t.id,t.replyType,n,function(){t.scope.formData={comment:""},e(t.id),"function"==typeof t.replyCallback&&t.replyCallback()})},t.scope.addPraise=i,t.scope.decreasePraise=c};return{init:s,addCommonReply:o,loadCommonData:a,addCommonPraise:i,decreaseCommonPraise:c}}]); +app.factory("alertService",function(){function t(){this.title=null,this.message=null,this.visible=null,this.cb=null}return t.prototype.showMessage=function(t,i,e){this.message=i,this.title=t,this.visible=!0,this.cb=e},t.prototype.dismiss=function(){this.message=null,this.title=null,this.visible=!1,this.cb&&this.cb()},{create:function(){return new t}}}),app.factory("auth",["$http","$routeParams","$q","session","config",function(t,i,e,a,c){var s=function(){var c=e.defer(),s=o();if(s&&s.length>10)c.resolve(s);else{window.g_code||i.code||a.get("code");t.post("/wechat/get_bind",{}).then(function(t){0!=t.data.status?c.reject(t.data.message):(a.save("token",t.data.token),c.resolve(t.data.token))})["catch"](function(t){c.reject(t)})}return c.promise},o=function(){return a.get("token")};return{get_bind:s,token:o}}]),app.factory("session",function(){return{save:function(t,i){sessionStorage.setItem(t,i)},get:function(t){return sessionStorage.getItem(t)}}}),app.factory("rms",function(){var t={},i=function(i,e){t[i]=e},e=function(i){return t[i]};return{save:i,get:e}}),app.factory("common",["$http","auth","$routeParams","rms",function(t,i,e,a){var c=function(e,a,c,s){if(c.comment&&!(c.comment.length<=0)){var o=c.comment.replace(/\n/g,"
    "),n={type:a,content:o,token:i.token()};c.disabled=!0,t({method:"POST",url:apiUrl+"new_comment/"+e,data:n}).then(function(t){c.disabled=!1,"function"==typeof s&&s()},function(t){})}},s=function(e,a){return t({method:"GET",url:apiUrl+a+"/"+e+"?token="+i.token()})},o=function(e){t({method:"POST",url:apiUrl+"praise/"+e.act_id,data:{token:i.token(),type:e.act_type}}).then(function(t){console.log(t.data)},function(t){})},n=function(e){t({method:"POST",url:apiUrl+"praise/"+e.act_id,data:{token:i.token(),type:e.act_type}}).then(function(t){console.log(t.data)},function(t){})},r=function(t){t.scope.formData={comment:""};var i=function(i){s(i,t.type).then(function(i){t.loadCallback(i.data)},function(t){})};i(t.id),t.scope.addReply=function(e){console.log(e.comment),c(t.id,t.replyType,e,function(){t.scope.formData={comment:""},i(t.id),"function"==typeof t.replyCallback&&t.replyCallback()})},t.scope.addPraise=function(t){activities=a.get("activities")||[],course_activities=a.get("course_activities")||[],project_activities=a.get("project_activities")||[];for(var i in activities)if(activities[i].act_id==t.act_id){activities[i].praise_count+=1,activities[i].has_praise=!0;break}for(var i in course_activities)if(course_activities[i].act_id==t.act_id){course_activities[i].praise_count+=1,course_activities[i].has_praise=!0;break}for(var i in project_activities)if(project_activities[i].act_id==t.act_id){project_activities[i].praise_count+=1,project_activities[i].has_praise=!0;break}a.save("activities",activities),a.save("course_activities",course_activities),a.save("project_activities",project_activities),t.praise_count+=1,t.has_praise=!0,o(t)},t.scope.decreasePraise=function(t){activities=a.get("activities")||[],course_activities=a.get("course_activities")||[],project_activities=a.get("project_activities")||[];for(var i in activities)if(activities[i].act_id==t.act_id){activities[i].praise_count-=1,activities[i].has_praise=!1;break}for(var i in course_activities)if(course_activities[i].act_id==t.act_id){course_activities[i].praise_count-=1,course_activities[i].has_praise=!1;break}for(var i in project_activities)if(project_activities[i].act_id==t.act_id){project_activities[i].praise_count-=1,project_activities[i].has_praise=!1;break}a.save("activities",activities),a.save("course_activities",course_activities),a.save("project_activities",project_activities),t.praise_count-=1,t.has_praise=!1,n(t)}};return{init:r,addCommonReply:c,loadCommonData:s,addCommonPraise:o,decreaseCommonPraise:n}}]); app.filter("safeHtml",["$sce",function(t){return function(n){return t.trustAsHtml(n)}}]),app.filter("identify",function(){return function(t){return"TeachingAsistant"==t?"教辅":""}}); -app.controller("ActivityController",["$anchorScroll","$location","$scope","$http","$timeout","auth","rms","common","alertService",function(e,a,t,c,o,i,r,s,n){t.replaceUrl=function(e){return e},t.menus=["所有动态","课程动态","项目动态"],t.alertService=n.create(),console.log("ActivityController load"),t.page=r.get("page")||0,t.activities=r.get("activities")||[],t.has_more=r.get("has_more"),t.course_page=r.get("course_page")||0,t.course_activities=r.get("course_activities")||[],t.course_has_more=r.get("course_has_more"),t.project_page=r.get("project_page")||0,t.project_activities=r.get("project_activities")||[],t.project_has_more=r.get("project_has_more"),t.loadActData=function(e,a){switch(container_type="All",e){case 1:container_type="All",t.page=a;break;case 2:container_type="Course",t.course_page=a;break;case 3:container_type="Project",t.project_page=a}c({method:"POST",url:apiUrl+"activities",data:{token:i.token(),page:a,container_type:container_type}}).then(function(e){if(e.data.page>0)switch(e.data.container_type){case"All":t.activities=t.activities.concat(e.data.data);break;case"Course":t.course_activities=t.course_activities.concat(e.data.data);break;case"Project":t.project_activities=t.project_activities.concat(e.data.data);break;case 3:}else switch(e.data.container_type){case"All":t.activities=e.data.data;break;case"Course":t.course_activities=e.data.data;break;case"Project":t.project_activities=e.data.data;break;case 3:}switch(e.data.container_type){case"All":r.save("activities",t.activities),t.has_more=e.data.count+10*e.data.page0)switch(a.data.container_type){case"All":t.activities=t.activities.concat(a.data.data);break;case"Course":t.course_activities=t.course_activities.concat(a.data.data);break;case"Project":t.project_activities=t.project_activities.concat(a.data.data);break;case 3:}else switch(a.data.container_type){case"All":t.activities=a.data.data;break;case"Course":t.course_activities=a.data.data;break;case"Project":t.project_activities=a.data.data;break;case 3:}switch(a.data.container_type){case"All":o.save("activities",t.activities),t.has_more=a.data.count+10*a.data.page Date: Fri, 15 Jul 2016 15:06:33 +0800 Subject: [PATCH 75/98] =?UTF-8?q?=E5=AF=BC=E8=88=AA=E6=A0=8F=E9=A2=98?= =?UTF-8?q?=E5=BA=93=E4=B8=AD=20=E6=88=91=E7=9A=84=E9=A2=98=E5=BA=93?= =?UTF-8?q?=E6=94=BE=E5=9C=A8=E5=89=8D=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/users_controller.rb | 40 ++++++++++++------------- app/views/users/user_homeworks.html.erb | 4 +-- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 335604205..f5684f202 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -569,12 +569,12 @@ class UsersController < ApplicationController @order,@b_sort = params[:order] || "created_at",params[:sort] || "desc" @user = User.current @r_sort = @b_sort == "desc" ? "asc" : "desc" - if(params[:type].blank? || params[:type] == "1") #题库 + if(params[:type].blank? || params[:type] == "1") #我的题库 + @homeworks = HomeworkCommon.where("user_id = #{@user.id} and publish_time <= '#{Date.today}'").order("#{@order} #{@b_sort}") + elsif params[:type] == "2" #题库 visible_course = Course.where("is_delete = 0") visible_course_ids = visible_course.empty? ? "(-1)" : "(" + visible_course.map{|course| course.id}.join(",") + ")" @homeworks = HomeworkCommon.where("course_id in #{visible_course_ids} and publish_time <= '#{Date.today}'").order("#{@order} #{@b_sort}") - elsif params[:type] == "2" #我的题库 - @homeworks = HomeworkCommon.where("user_id = #{@user.id} and publish_time <= '#{Date.today}'").order("#{@order} #{@b_sort}") end @type = params[:type] @limit = 25 @@ -728,7 +728,11 @@ class UsersController < ApplicationController @order,@b_sort = params[:order] || "created_at",params[:sort] || "desc" @r_sort = @b_sort == "desc" ? "asc" : "desc" @user = User.current - if(params[:type].blank? || params[:type] == "1") #题库 + if(params[:type].blank? || params[:type] == "1") #我的题库 + courses = @user.courses.where("is_delete = 1") + course_ids = courses.empty? ? "(-1)" : "(" + courses.map{|course| course.id}.join(",") + ")" + @homeworks = HomeworkCommon.where("user_id = #{@user.id} and publish_time <= '#{Date.today}' and course_id not in #{course_ids}").order("#{@order} #{@b_sort}") + elsif params[:type] == "2" #题库 if params[:is_import].to_i == 1 visible_course = Course.where("is_public = 1 && is_delete = 0") elsif params[:is_import].to_i == 0 @@ -736,10 +740,6 @@ class UsersController < ApplicationController end visible_course_ids = visible_course.empty? ? "(-1)" : "(" + visible_course.map{|course| course.id}.join(",") + ")" @homeworks = HomeworkCommon.where("course_id in #{visible_course_ids} and publish_time <= '#{Date.today}'").order("#{@order} #{@b_sort}") - elsif params[:type] == "2" #我的题库 - courses = @user.courses.where("is_delete = 1") - course_ids = courses.empty? ? "(-1)" : "(" + courses.map{|course| course.id}.join(",") + ")" - @homeworks = HomeworkCommon.where("user_id = #{@user.id} and publish_time <= '#{Date.today}' and course_id not in #{course_ids}").order("#{@order} #{@b_sort}") elsif params[:type] == "3" #申请题库 none_visible_course = Course.where("is_delete = 1") none_visible_course_ids = none_visible_course.empty? ? "(-1)" : "(" + none_visible_course.map{|course| course.id}.join(",") + ")" @@ -806,7 +806,18 @@ class UsersController < ApplicationController @user = User.current search = params[:name].to_s.strip.downcase type_ids = params[:property]=="" || params[:property].nil? ? "(1, 2, 3)" : "(" + params[:property] + ")" - if(params[:type].blank? || params[:type] == "1") #全部 + if(params[:type].blank? || params[:type] == "1") #我的题库 + courses = @user.courses.where("is_delete = 1") + course_ids = courses.empty? ? "(-1)" : "(" + courses.map{|course| course.id}.join(",") + ")" + if @order == "course_name" + sql = "SELECT homework_commons.* FROM homework_commons INNER JOIN courses ON homework_commons.course_id = courses.id where homework_commons.course_id not in #{course_ids} and homework_commons.user_id = #{@user.id} and homework_type in #{type_ids} and publish_time <= '#{Date.today}' and (homework_commons.name like '%#{search}%') order by CONVERT (courses.name USING gbk) COLLATE gbk_chinese_ci #{@b_sort}" + @homeworks = HomeworkCommon.find_by_sql(sql) + elsif @order == "user_name" + @homeworks = HomeworkCommon.where("user_id = #{@user.id} and course_id not in #{course_ids} and publish_time <= '#{Date.today}' and (name like '%#{search}%') and homework_type in #{type_ids}").joins(:user).order("CONVERT (lastname USING gbk) COLLATE gbk_chinese_ci #{@b_sort}, CONVERT (firstname USING gbk) COLLATE gbk_chinese_ci #{@b_sort},login #{@b_sort}") + else + @homeworks = HomeworkCommon.where("user_id = #{@user.id} and course_id not in #{course_ids} and publish_time <= '#{Date.today}' and (name like '%#{search}%') and homework_type in #{type_ids}").order("#{@order} #{@b_sort}") + end + elsif params[:type] == "2" #题库 if params[:is_import].to_i == 1 visible_course = Course.where("is_public = 1 && is_delete = 0") elsif params[:is_import].to_i == 0 @@ -825,17 +836,6 @@ class UsersController < ApplicationController else @homeworks = HomeworkCommon.where("course_id in #{visible_course_ids} and publish_time <= '#{Date.today}' and homework_type in #{type_ids} and (name like '%#{search}%' or user_id in #{user_ids})").order("#{@order} #{@b_sort}") end - elsif params[:type] == "2" #我的题库 - courses = @user.courses.where("is_delete = 1") - course_ids = courses.empty? ? "(-1)" : "(" + courses.map{|course| course.id}.join(",") + ")" - if @order == "course_name" - sql = "SELECT homework_commons.* FROM homework_commons INNER JOIN courses ON homework_commons.course_id = courses.id where homework_commons.course_id not in #{course_ids} and homework_commons.user_id = #{@user.id} and homework_type in #{type_ids} and publish_time <= '#{Date.today}' and (homework_commons.name like '%#{search}%') order by CONVERT (courses.name USING gbk) COLLATE gbk_chinese_ci #{@b_sort}" - @homeworks = HomeworkCommon.find_by_sql(sql) - elsif @order == "user_name" - @homeworks = HomeworkCommon.where("user_id = #{@user.id} and course_id not in #{course_ids} and publish_time <= '#{Date.today}' and (name like '%#{search}%') and homework_type in #{type_ids}").joins(:user).order("CONVERT (lastname USING gbk) COLLATE gbk_chinese_ci #{@b_sort}, CONVERT (firstname USING gbk) COLLATE gbk_chinese_ci #{@b_sort},login #{@b_sort}") - else - @homeworks = HomeworkCommon.where("user_id = #{@user.id} and course_id not in #{course_ids} and publish_time <= '#{Date.today}' and (name like '%#{search}%') and homework_type in #{type_ids}").order("#{@order} #{@b_sort}") - end elsif params[:type] == "3" #申请题库 apply_homeworks = ApplyHomework.where("user_id = ?",@user.id) homework_ids = apply_homeworks.empty? ? "(-1)" : "(" + apply_homeworks.map{|ah| ah.homework_common_id}.join(",") + ")" diff --git a/app/views/users/user_homeworks.html.erb b/app/views/users/user_homeworks.html.erb index 6197aa9c4..6016f4101 100644 --- a/app/views/users/user_homeworks.html.erb +++ b/app/views/users/user_homeworks.html.erb @@ -39,10 +39,10 @@
    • - 题库 + 我的题库
    • - 我的题库 + 题库
    • 申请题库 From 2cc42a8f5ac7f01e87d2bcdeed324e4afa815ee2 Mon Sep 17 00:00:00 2001 From: yuanke <249218296@qq.com> Date: Fri, 15 Jul 2016 15:32:40 +0800 Subject: [PATCH 76/98] =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E8=B5=84=E6=BA=90=E6=9B=B4=E5=A4=9A=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wechat/controllers/myresource.js | 37 ++++++++++--------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/public/javascripts/wechat/controllers/myresource.js b/public/javascripts/wechat/controllers/myresource.js index 9aab39479..802982266 100644 --- a/public/javascripts/wechat/controllers/myresource.js +++ b/public/javascripts/wechat/controllers/myresource.js @@ -1,4 +1,4 @@ -app.controller('MyResourceController', ['$scope', '$http', 'auth', 'config', '$location', function($scope, $http, auth, config, $location){ +app.controller('MyResourceController', ['$scope', '$http', 'auth', 'config', '$location', 'rms', function($scope, $http, auth, config, $location,rms){ var vm = $scope; vm.menus = ['课件', '作业', '测验']; @@ -6,14 +6,17 @@ app.controller('MyResourceController', ['$scope', '$http', 'auth', 'config', '$l vm.homeworks = []; vm.exercise = []; - vm.has_more = false; - vm.page = 0; + vm.page = rms.get('page') || 0; + vm.resources = rms.get("resources") || []; + vm.has_more = rms.get("has_more"); - vm.homework_has_more = false; - vm.homework_page = 0; + vm.homework_page = rms.get('homework_page') || 0; + vm.homeworks = rms.get("homeworks") || []; + vm.homework_has_more = rms.get("homework_has_more"); - vm.exercise_has_more = false; - vm.exercise_page = 0; + vm.exercise_page = rms.get('exercise_page') || 0; + vm.exercise = rms.get("exercise") || []; + vm.exercise_has_more = rms.get("exercise_has_more"); vm.searchText = ""; @@ -35,10 +38,10 @@ app.controller('MyResourceController', ['$scope', '$http', 'auth', 'config', '$l vm.resources = response.data.data; } -// rms.save("resources", vm.resources); - vm.has_more = (response.data.count + response.data.page * 10) < response.data.all_count; -// rms.save('homework_has_more', vm.has_more); -// rms.save('homework_page', vm.data.page); + rms.save("resources", vm.resources); + vm.has_more = (response.data.count + response.data.page * 10) < response.data.all_count; + rms.save('has_more', vm.has_more); + rms.save('page', response.data.page); console.log(response.data); @@ -59,10 +62,10 @@ app.controller('MyResourceController', ['$scope', '$http', 'auth', 'config', '$l vm.homeworks = response.data.data; } -// rms.save("homeworks", vm.homeworks); + rms.save("homeworks", vm.homeworks); vm.homework_has_more = (response.data.count + response.data.page * 10) < response.data.all_count; -// rms.save('homework_has_more', vm.has_more); -// rms.save('homework_page', vm.data.page); + rms.save('homework_has_more', vm.has_more); + rms.save('homework_page', response.data.page); console.log(response.data); @@ -82,10 +85,10 @@ app.controller('MyResourceController', ['$scope', '$http', 'auth', 'config', '$l vm.exercise = response.data.data; } -// rms.save("homeworks", vm.homeworks); + rms.save("exercise", vm.exercise); vm.exercise_has_more = (response.data.count + response.data.page * 10) < response.data.all_count; -// rms.save('homework_has_more', vm.has_more); -// rms.save('homework_page', vm.data.page); + rms.save('exercise_has_more', vm.exercise_has_more); + rms.save('exercise_page', response.data.page); console.log(response.data); From 05fe987a8bd652ee92a6e65a67ce6308f6915864 Mon Sep 17 00:00:00 2001 From: cxt Date: Fri, 15 Jul 2016 15:43:35 +0800 Subject: [PATCH 77/98] =?UTF-8?q?=E6=96=B0=E6=89=8B=E6=B3=A8=E5=86=8C?= =?UTF-8?q?=E4=B8=89=E6=9D=A1=E7=95=99=E8=A8=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/user.rb | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/app/models/user.rb b/app/models/user.rb index daf1237cf..996aa9be7 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -1148,17 +1148,17 @@ class User < Principal #为新注册用户发送留言 def add_new_jour - if Message.where("id=19278").any? and Message.where("id=19291").any? and Message.where("id=19292").any? - lead_message1 = Message.find(19278) + if Message.where("id=19504").any? and Message.where("id=19291").any? and Message.where("id=19292").any? + lead_message1 = Message.find(19292) notes1 = lead_message1.content - # lead_message2 = Message.find(19292) - # notes2 = lead_message2.content - # lead_message3 = Message.find(19291) - # notes3 = lead_message3.content - # # user_id 默认为课程使者创建 + lead_message2 = Message.find(19291) + notes2 = lead_message2.content + lead_message3 = Message.find(19504) + notes3 = lead_message3.content + #user_id 默认为课程使者创建 self.journals_for_messages << JournalsForMessage.new(:user_id => 1, :notes => notes1, :reply_id => 0, :status => true, :is_readed => false, :private => 0) - # self.journals_for_messages << JournalsForMessage.new(:user_id => 1, :notes => notes2, :reply_id => 0, :status => true, :is_readed => false, :private => 0) - # self.journals_for_messages << JournalsForMessage.new(:user_id => 1, :notes => notes3, :reply_id => 0, :status => true, :is_readed => false, :private => 0) + self.journals_for_messages << JournalsForMessage.new(:user_id => 1, :notes => notes2, :reply_id => 0, :status => true, :is_readed => false, :private => 0) + self.journals_for_messages << JournalsForMessage.new(:user_id => 1, :notes => notes3, :reply_id => 0, :status => true, :is_readed => false, :private => 0) end end From c476dae15b608f83ca02f2da3ab938176f8bcf67 Mon Sep 17 00:00:00 2001 From: yuanke <249218296@qq.com> Date: Fri, 15 Jul 2016 16:08:04 +0800 Subject: [PATCH 78/98] =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E6=88=91=E7=9A=84?= =?UTF-8?q?=E8=B5=84=E6=BA=90=E4=B8=AD=20=E6=9B=B4=E5=A4=9A=E6=8C=89?= =?UTF-8?q?=E9=92=AE=E6=9A=82=E6=97=B6=E9=9A=90=E8=97=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/apis/resources.rb | 36 +---- public/assets/wechat/myresource.html | 27 ++-- .../wechat/controllers/myresource.js | 129 +++--------------- 3 files changed, 31 insertions(+), 161 deletions(-) diff --git a/app/api/mobile/apis/resources.rb b/app/api/mobile/apis/resources.rb index d5823d5b4..16531940f 100644 --- a/app/api/mobile/apis/resources.rb +++ b/app/api/mobile/apis/resources.rb @@ -8,23 +8,13 @@ module Mobile desc '获取所有课件' params do requires :token, type: String - requires :page, type: Integer end - post do + get do authenticate! - page = params[:page] ? params[:page] : 0 - rs = ResourcesService.new # data = current_user.course_attachments data = rs.all_course_attachments current_user - all_count = data.count - data = data.limit(10).offset(page * 10) - count = data.count - present :data, data, with: Mobile::Entities::Attachment,user: current_user - present :all_count, all_count - present :count, count - present :page, page present :status, 0 end @@ -34,24 +24,14 @@ module Mobile desc '获取所有作业' params do requires :token, type: String - requires :page, type: Integer end - post 'homeworks' do + get 'homeworks' do authenticate! - page = params[:page] ? params[:page] : 0 - rs = ResourcesService.new homeworks = rs.all_homework_commons current_user - all_count = homeworks.count - homeworks = homeworks.limit(10).offset(page * 10) - count = homeworks.count - present :data, homeworks, with: Mobile::Entities::Homework,user: current_user - present :all_count, all_count - present :count, count - present :page, page present :status, 0 end @@ -59,23 +39,13 @@ module Mobile desc '获取所有测验' params do requires :token, type: String - requires :page, type: Integer end - post 'exercises' do + get 'exercies' do authenticate! - page = params[:page] ? params[:page] : 0 - rs = ResourcesService.new exercises = rs.all_exercises current_user - all_count = exercises.count - exercises = exercises.limit(10).offset(page * 10) - count = exercises.count - present :data, exercises, with: Mobile::Entities::Exercise,user: current_user - present :all_count, all_count - present :count, count - present :page, page present :status, 0 end diff --git a/public/assets/wechat/myresource.html b/public/assets/wechat/myresource.html index 2de3a2ef7..e91185968 100644 --- a/public/assets/wechat/myresource.html +++ b/public/assets/wechat/myresource.html @@ -11,33 +11,24 @@
    -
    - {{r.filename}}发送
    - 大小:{{r.attafile_size}}
    -
    -
    -
    更多
    -
    +
    + {{r.filename}}发送
    + 大小:{{r.attafile_size}}
    +

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

    -
    {{r.homework_name}}发送
    -
    -
    -
    -
    更多
    +
    {{r.homework_name}}发送
    +

    暂无作业,
    请登录Trustie网站,在PC浏览器中创建作业。

    -
    {{r.exercise_name}}发送
    -
    -
    -
    -
    更多
    -
    +
    {{r.exercise_name}}发送
    +
    +

    暂无测验,
    请登录Trustie网站,在PC浏览器中创建测验。

    diff --git a/public/javascripts/wechat/controllers/myresource.js b/public/javascripts/wechat/controllers/myresource.js index 802982266..b371ee8cc 100644 --- a/public/javascripts/wechat/controllers/myresource.js +++ b/public/javascripts/wechat/controllers/myresource.js @@ -1,128 +1,37 @@ -app.controller('MyResourceController', ['$scope', '$http', 'auth', 'config', '$location', 'rms', function($scope, $http, auth, config, $location,rms){ +app.controller('MyResourceController', ['$scope', '$http', 'auth', 'config', '$location', function($scope, $http, auth, config, $location){ var vm = $scope; vm.menus = ['课件', '作业', '测验']; - vm.resources = []; - vm.homeworks = []; - vm.exercise = []; - - vm.page = rms.get('page') || 0; - vm.resources = rms.get("resources") || []; - vm.has_more = rms.get("has_more"); - - vm.homework_page = rms.get('homework_page') || 0; - vm.homeworks = rms.get("homeworks") || []; - vm.homework_has_more = rms.get("homework_has_more"); - - vm.exercise_page = rms.get('exercise_page') || 0; - vm.exercise = rms.get("exercise") || []; - vm.exercise_has_more = rms.get("exercise_has_more"); + vm.resources = null; + vm.homeworks = null; + vm.exercise = null; vm.searchText = ""; - vm.sendFile = function(r){ - $location.path("/send_class_list").search({id: r.id}); - } - - vm.loadResourceData = function (index,page){ - if(index == 1){ - vm.page = page; - $http({ - method: 'POST', - url: apiUrl+ "resources", - data: {token: auth.token(), page: page} - }).then(function successCallback(response) { - if(response.data.page >0) { - vm.resources = vm.resources.concat(response.data.data); - } else { - vm.resources = response.data.data; - } - - rms.save("resources", vm.resources); - vm.has_more = (response.data.count + response.data.page * 10) < response.data.all_count; - rms.save('has_more', vm.has_more); - rms.save('page', response.data.page); - + vm.tab = function(index){ + vm.currentTab = index; + vm.searchText = ""; + if(index==1 && (!vm.resources || vm.resources.length <= 0 )){ + $http.get(config.apiUrl + "resources?token="+auth.token()).then(function(response){ console.log(response.data); - - }, function errorCallback(response) { + vm.resources = response.data.data; }); - - } - else if(index==2 ){ - vm.homework_page = page; - $http({ - method: 'POST', - url: apiUrl+ "resources/homeworks", - data: {token: auth.token(), page: page} - }).then(function successCallback(response) { - if(response.data.page >0) { - vm.homeworks = vm.homeworks.concat(response.data.data); - } else { - vm.homeworks = response.data.data; - } - - rms.save("homeworks", vm.homeworks); - vm.homework_has_more = (response.data.count + response.data.page * 10) < response.data.all_count; - rms.save('homework_has_more', vm.has_more); - rms.save('homework_page', response.data.page); - + } else if(index==2 && (!vm.homeworks || vm.homeworks.length <= 0) ){ + $http.get(config.apiUrl + "resources/homeworks?token="+auth.token()).then(function(response){ console.log(response.data); - - }, function errorCallback(response) { + vm.homeworks = response.data.data; }); - } - else if(index==3 ){ - vm.exercise_page = page; - $http({ - method: 'POST', - url: apiUrl+ "resources/exercises", - data: {token: auth.token(), page: page} - }).then(function successCallback(response) { - if(response.data.page >0) { - vm.exercise = vm.exercise.concat(response.data.data); - } else { - vm.exercise = response.data.data; - } - - rms.save("exercise", vm.exercise); - vm.exercise_has_more = (response.data.count + response.data.page * 10) < response.data.all_count; - rms.save('exercise_has_more', vm.exercise_has_more); - rms.save('exercise_page', response.data.page); - + } else if(index==3 && (!vm.exercise || vm.exercise.length <= 0) ){ + $http.get(config.apiUrl + "resources/exercies?token="+auth.token()).then(function(response){ console.log(response.data); - - }, function errorCallback(response) { + vm.exercise = response.data.data; }); } } - vm.tab = function(index){ - vm.currentTab = index; - vm.searchText = ""; - - switch(index){ - //ALL - case 1: - if(vm.resources.length<=0){ - vm.loadResourceData(index,0); - } - break; - //homework - case 2: - if(vm.homeworks.length<=0){ - vm.loadResourceData(index,0); - } - break; - //exercise - case 3: - if(vm.exercise.length<=0){ - vm.loadResourceData(index,0); - } - break; - } - } - vm.tab(1); + vm.sendFile = function(r){ + $location.path("/send_class_list").search({id: r.id}); + } }] ); From 606393284081509c417c846c3547eec74c77b031 Mon Sep 17 00:00:00 2001 From: txz Date: Fri, 15 Jul 2016 16:14:52 +0800 Subject: [PATCH 79/98] =?UTF-8?q?=E8=AF=BE=E7=A8=8B=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E4=B8=AD=EF=BC=8C=E5=AF=B9=E8=AF=BE=E7=A8=8B,=E7=8F=AD?= =?UTF-8?q?=E7=BA=A7=E5=90=8D=E7=A7=B0=E7=BC=96=E8=BE=91=E6=97=B6=EF=BC=8C?= =?UTF-8?q?=E5=AD=97=E4=BD=93=E5=8F=98=E7=81=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/assets/wechat/edit_class.html | 4 ++-- public/javascripts/wechat/controllers/edit_class.js | 4 ++++ public/stylesheets/weui/weixin.css | 2 +- show | 0 4 files changed, 7 insertions(+), 3 deletions(-) create mode 100644 show diff --git a/public/assets/wechat/edit_class.html b/public/assets/wechat/edit_class.html index c61ca8ce9..5953e046b 100644 --- a/public/assets/wechat/edit_class.html +++ b/public/assets/wechat/edit_class.html @@ -3,9 +3,9 @@
    管理课程
    -
    课程
    +
    课程
    -
    班级删除
    +
    班级删除
    完成 diff --git a/public/javascripts/wechat/controllers/edit_class.js b/public/javascripts/wechat/controllers/edit_class.js index 5f377e594..b5ee1a025 100644 --- a/public/javascripts/wechat/controllers/edit_class.js +++ b/public/javascripts/wechat/controllers/edit_class.js @@ -107,4 +107,8 @@ app.controller('EditClassController', ['$scope', '$http', 'auth', 'config', 'ale } + vm.fadeText = function () { + $scope.change = true; + } + }] ); \ No newline at end of file diff --git a/public/stylesheets/weui/weixin.css b/public/stylesheets/weui/weixin.css index cc81a4c0c..4d930bbb0 100644 --- a/public/stylesheets/weui/weixin.css +++ b/public/stylesheets/weui/weixin.css @@ -43,7 +43,7 @@ blockquote {border:1px solid #d4d4d4; padding: 0.6em; margin: 5px 0.4em 5px 1.4e .mr55 {margin-right:55px;} .c-red {color:#e81a1a;} .c-blue {color:#269ac9;} -.c-grey {color:#9a9a9a;} +.c-grey {color:#9a9a9a !important;} .c-grey2 {color:#707070;} .c-grey3 {color:#555555;} .c-grey4 {color:#888888;} diff --git a/show b/show new file mode 100644 index 000000000..e69de29bb From b2a8a0fed6d292ba26d28f0c96c3f9504dec301c Mon Sep 17 00:00:00 2001 From: huang Date: Fri, 15 Jul 2016 16:28:33 +0800 Subject: [PATCH 80/98] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=87=8C=E7=A8=8B?= =?UTF-8?q?=E7=A2=91=E8=BF=9B=E5=BA=A6=E6=9D=A1=E6=95=B0=E6=8D=AE=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E9=94=99=E8=AF=AF=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/helpers/application_helper.rb | 17 ++-- app/views/versions/_overview.html.erb | 2 +- app/views/versions/index.html.erb | 113 +++++++++++++------------- public/stylesheets/project.css | 4 +- 4 files changed, 68 insertions(+), 68 deletions(-) diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 23fd401fd..348276d44 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -1765,20 +1765,21 @@ module ApplicationHelper link_to_function(l(:button_uncheck_all), "checkAll('#{form_name}', false)") end + # 本次修改,修改为只显示关闭的所占%比 def progress_bar(pcts, options={}) - pcts = [pcts, pcts] unless pcts.is_a?(Array) + pcts = [pcts] unless pcts.is_a?(Array) pcts = pcts.collect(&:round) - pcts[1] = pcts[1] - pcts[0] - pcts << (100 - pcts[1] - pcts[0]) + # pcts[1] = pcts[1] + pcts[0] + pcts << (100 - pcts[0]) width = options[:width] || '100px;' legend = options[:legend] || '' content_tag('table', content_tag('tr', - (pcts[0] > 0 ? content_tag('td', '', :style => "width: #{pcts[0]}%;", :class => 'closed') : ''.html_safe) + - (pcts[1] > 0 ? content_tag('td', '', :style => "width: #{pcts[1]}%;", :class => 'done') : ''.html_safe) + - (pcts[2] > 0 ? content_tag('td', '', :style => "width: #{pcts[2]}%;", :class => 'todo') : ''.html_safe) - ), :class => 'progress', :style => "width: #{width};").html_safe + - content_tag('p', legend, :class => 'percent').html_safe + (pcts[0] > 0 ? content_tag('td', '', :style => "width: #{pcts[0]}%;", :class => 'closed', :title => "已关闭:#{pcts[0]}%") : ''.html_safe) + + # (pcts[1] > 0 ? content_tag('td', '', :style => "width: #{pcts[1]}%;", :class => 'done', :title => "开发中:#{pcts[1]}%") : ''.html_safe) + + (pcts[1] > 0 ? content_tag('td', '', :style => "width: #{pcts[1]}%;", :class => 'todo', :title => "未完成:#{pcts[1]}%") : ''.html_safe), :style => "width: #{width}" + ), :class => 'progress').html_safe + # + content_tag('p', legend, :class => 'percent').html_safe end def checked_image(checked=true) diff --git a/app/views/versions/_overview.html.erb b/app/views/versions/_overview.html.erb index 8d34a20da..6d9719c8c 100644 --- a/app/views/versions/_overview.html.erb +++ b/app/views/versions/_overview.html.erb @@ -1,7 +1,7 @@ <% if version.issues_count > 0 %>

    »<%= l(:label_versions_progress)%>

    - <%= progress_bar([version.closed_percent, version.completed_percent], :width => '82%', :legend => ('%0.0f%' % version.completed_percent)) %> + <%= progress_bar([version.closed_percent], :width => '648px;', :legend => ('%0.0f%' % version.completed_percent)) %>

    <%= link_to(l(:label_x_issues, :count => version.issues_count), project_issues_path(version.project, :status_id => '*', :fixed_version_id => version, :set_filter => 1), :class =>"c_dblue",) %> diff --git a/app/views/versions/index.html.erb b/app/views/versions/index.html.erb index 0b71fa5e2..ab606d289 100644 --- a/app/views/versions/index.html.erb +++ b/app/views/versions/index.html.erb @@ -2,69 +2,68 @@

    <%= l(:label_roadmap) %>

    - - + -<% if @versions.empty? %> + <% if @versions.empty? %>

    <%= l(:label_no_data) %>

    -<% else %> + <% else %> <% @versions.each do |version| %> -
    -

    - <%= link_to_version_show version, :name => version_anchor(version) %> - <% if version.completed? %> - <%= format_date(version.effective_date) %> - <% elsif version.effective_date %> - <%= due_date_distance_in_words(version.effective_date) %> (<%= format_date(version.effective_date) %>) - <% end %> - -

    -
    - <%= render :partial => 'versions/overview', :locals => {:version => version} %> - <%= render(:partial => "wiki/content", :locals => {:content => version.wiki_page.content}) if version.wiki_page %> +
    +

    + <%= link_to_version_show version, :name => version_anchor(version) %> + <% if version.completed? %> + <%= format_date(version.effective_date) %> + <% elsif version.effective_date %> + <%= due_date_distance_in_words(version.effective_date) %> (<%= format_date(version.effective_date) %>) + <% end %> + +

    +
    + <%= render :partial => 'versions/overview', :locals => {:version => version} %> + <%#= render(:partial => "wiki/content", :locals => {:content => version.wiki_page.content}) if version.wiki_page %> -
    - <% if (issues = @issues_by_version[version]) && issues.size > 0 %> -
    - <%= form_tag({}) do -%> -

    »<%= l(:label_related_issues) %>

    -
      - <% issues.each do |issue| -%> -
    • - <%= link_to_issue_version(issue, :project => (@project != issue.project)) %> -
    • - <% end -%> -
    - <% end %> -
    - <% end %> -
    -

    »<%= l(:label_versions_description)%>

    -

    <%=h version.description %>

    -
    -
    - <% end %> +
    + <% if (issues = @issues_by_version[version]) && issues.size > 0 %> +
    + <%= form_tag({}) do -%> +

    »<%= l(:label_related_issues) %>

    +
      + <% issues.each do |issue| -%> +
    • + <%= link_to_issue_version(issue, :project => (@project != issue.project)) %> +
    • + <% end -%> +
    + <% end %> +
    + <% end %> +
    +

    »<%= l(:label_versions_description)%>

    +

    <%=h version.description %>

    +
    +
    + <% end %> -
      - <%= pagination_links_full @versions_pages%> -
    -
    +
      + <%= pagination_links_full @versions_pages%> +
    +
    <% end %>
    diff --git a/public/stylesheets/project.css b/public/stylesheets/project.css index 9a3ba2e47..3075e8db1 100644 --- a/public/stylesheets/project.css +++ b/public/stylesheets/project.css @@ -605,8 +605,8 @@ img.ui-datepicker-trigger { /* 里程碑 */ .roadmap_box{ background:#f8f8f8; width:648px; padding:10px; margin-top:5px; border:1px solid #ddd; color:#555;} -.progress{ width:520px; height:20px; margin-bottom:5px; background:#e9e9e9;} -.closed{ background:#bae0ba; display:block;height:20px; float:left;} +.progress{ width:648px; height:20px; margin-bottom:5px; background:#e9e9e9;} +.closed{ background:#bae0ba; height:20px;} .done{ background:#d3edd3; display:block;height:20px;float:left;} .roadmap_box{ margin-bottom:10px;} .roadmap_list_ul{border:1px solid #ddd; border-bottom:none; margin-bottom:10px;} From 2af3c50dbc93667ad29df84776054864c8c9f43b Mon Sep 17 00:00:00 2001 From: huang Date: Fri, 15 Jul 2016 16:43:07 +0800 Subject: [PATCH 81/98] =?UTF-8?q?=E9=87=8C=E7=A8=8B=E7=A2=91=E5=8C=BA?= =?UTF-8?q?=E5=88=86issue=E7=8A=B6=E6=80=81=E2=80=9C=E5=B7=B2=E8=A7=A3?= =?UTF-8?q?=E5=86=B3=E2=80=9D=E2=80=9C=E5=B7=B2=E5=85=B3=E9=97=AD=E2=80=9D?= =?UTF-8?q?=20=E5=AF=B9=E5=BA=94=E4=B8=8D=E5=90=8C=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/helpers/application_helper.rb | 1 + public/stylesheets/project.css | 1 + 2 files changed, 2 insertions(+) diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 348276d44..add8a9552 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -385,6 +385,7 @@ module ApplicationHelper subject = truncate(subject, :length => 60) end end + # status_id:3、已解决 5、已关闭 if issue.status_id == 3 s = link_to text, issue_path(issue), :class => "text_line_s", :title => title elsif issue.status_id == 5 diff --git a/public/stylesheets/project.css b/public/stylesheets/project.css index 3075e8db1..b5d7f0aba 100644 --- a/public/stylesheets/project.css +++ b/public/stylesheets/project.css @@ -613,6 +613,7 @@ img.ui-datepicker-trigger { .roadmap_list_ul li{border-bottom:1px solid #ddd; height:21px; padding-top:5px; padding-left:10px;} .roadmap_list_ul li:hover{background:#ffffdd;} .text_line_s{ text-decoration:line-through; color:#999;} +.del_line{ text-decoration:line-through !important; color:#999;} .roadmap_list_w{ width:555px;overflow:hidden; white-space: nowrap; text-overflow:ellipsis;} .wiki_text{ width:663px; height:300px; margin-bottom:10px;} From 60dc0e72cf8c93116f7e4b0738b476c8dd51508c Mon Sep 17 00:00:00 2001 From: yuanke <249218296@qq.com> Date: Fri, 15 Jul 2016 16:46:27 +0800 Subject: [PATCH 82/98] =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E6=88=91=E6=88=91?= =?UTF-8?q?=E7=9A=84=E8=B5=84=E6=BA=90=E6=9B=B4=E5=A4=9A=E6=8C=89=E9=92=AE?= =?UTF-8?q?=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/apis/resources.rb | 36 ++++- app/views/wechats/user_activities.html.erb | 50 +++---- public/assets/wechat/myresource.html | 9 ++ .../wechat/controllers/myresource.js | 129 +++++++++++++++--- 4 files changed, 177 insertions(+), 47 deletions(-) diff --git a/app/api/mobile/apis/resources.rb b/app/api/mobile/apis/resources.rb index 16531940f..d5823d5b4 100644 --- a/app/api/mobile/apis/resources.rb +++ b/app/api/mobile/apis/resources.rb @@ -8,13 +8,23 @@ module Mobile desc '获取所有课件' params do requires :token, type: String + requires :page, type: Integer end - get do + post do authenticate! + page = params[:page] ? params[:page] : 0 + rs = ResourcesService.new # data = current_user.course_attachments data = rs.all_course_attachments current_user + all_count = data.count + data = data.limit(10).offset(page * 10) + count = data.count + present :data, data, with: Mobile::Entities::Attachment,user: current_user + present :all_count, all_count + present :count, count + present :page, page present :status, 0 end @@ -24,14 +34,24 @@ module Mobile desc '获取所有作业' params do requires :token, type: String + requires :page, type: Integer end - get 'homeworks' do + post 'homeworks' do authenticate! + page = params[:page] ? params[:page] : 0 + rs = ResourcesService.new homeworks = rs.all_homework_commons current_user + all_count = homeworks.count + homeworks = homeworks.limit(10).offset(page * 10) + count = homeworks.count + present :data, homeworks, with: Mobile::Entities::Homework,user: current_user + present :all_count, all_count + present :count, count + present :page, page present :status, 0 end @@ -39,13 +59,23 @@ module Mobile desc '获取所有测验' params do requires :token, type: String + requires :page, type: Integer end - get 'exercies' do + post 'exercises' do authenticate! + page = params[:page] ? params[:page] : 0 + rs = ResourcesService.new exercises = rs.all_exercises current_user + all_count = exercises.count + exercises = exercises.limit(10).offset(page * 10) + count = exercises.count + present :data, exercises, with: Mobile::Entities::Exercise,user: current_user + present :all_count, all_count + present :count, count + present :page, page present :status, 0 end diff --git a/app/views/wechats/user_activities.html.erb b/app/views/wechats/user_activities.html.erb index 5e86d32d1..cb9f4095a 100644 --- a/app/views/wechats/user_activities.html.erb +++ b/app/views/wechats/user_activities.html.erb @@ -28,31 +28,31 @@ - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/wechat/myresource.html b/public/assets/wechat/myresource.html index e91185968..0782aeb3b 100644 --- a/public/assets/wechat/myresource.html +++ b/public/assets/wechat/myresource.html @@ -15,6 +15,9 @@ {{r.filename}}发送
    大小:{{r.attafile_size}}
    +
    +
    更多
    +

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

    @@ -22,6 +25,9 @@
    {{r.homework_name}}发送
    +
    +
    更多
    +

    暂无作业,
    请登录Trustie网站,在PC浏览器中创建作业。

    @@ -29,6 +35,9 @@
    {{r.exercise_name}}发送
    +
    +
    更多
    +

    暂无测验,
    请登录Trustie网站,在PC浏览器中创建测验。

    diff --git a/public/javascripts/wechat/controllers/myresource.js b/public/javascripts/wechat/controllers/myresource.js index b371ee8cc..802982266 100644 --- a/public/javascripts/wechat/controllers/myresource.js +++ b/public/javascripts/wechat/controllers/myresource.js @@ -1,37 +1,128 @@ -app.controller('MyResourceController', ['$scope', '$http', 'auth', 'config', '$location', function($scope, $http, auth, config, $location){ +app.controller('MyResourceController', ['$scope', '$http', 'auth', 'config', '$location', 'rms', function($scope, $http, auth, config, $location,rms){ var vm = $scope; vm.menus = ['课件', '作业', '测验']; - vm.resources = null; - vm.homeworks = null; - vm.exercise = null; + vm.resources = []; + vm.homeworks = []; + vm.exercise = []; + + vm.page = rms.get('page') || 0; + vm.resources = rms.get("resources") || []; + vm.has_more = rms.get("has_more"); + + vm.homework_page = rms.get('homework_page') || 0; + vm.homeworks = rms.get("homeworks") || []; + vm.homework_has_more = rms.get("homework_has_more"); + + vm.exercise_page = rms.get('exercise_page') || 0; + vm.exercise = rms.get("exercise") || []; + vm.exercise_has_more = rms.get("exercise_has_more"); vm.searchText = ""; - vm.tab = function(index){ - vm.currentTab = index; - vm.searchText = ""; - if(index==1 && (!vm.resources || vm.resources.length <= 0 )){ - $http.get(config.apiUrl + "resources?token="+auth.token()).then(function(response){ + vm.sendFile = function(r){ + $location.path("/send_class_list").search({id: r.id}); + } + + vm.loadResourceData = function (index,page){ + if(index == 1){ + vm.page = page; + $http({ + method: 'POST', + url: apiUrl+ "resources", + data: {token: auth.token(), page: page} + }).then(function successCallback(response) { + if(response.data.page >0) { + vm.resources = vm.resources.concat(response.data.data); + } else { + vm.resources = response.data.data; + } + + rms.save("resources", vm.resources); + vm.has_more = (response.data.count + response.data.page * 10) < response.data.all_count; + rms.save('has_more', vm.has_more); + rms.save('page', response.data.page); + console.log(response.data); - vm.resources = response.data.data; + + }, function errorCallback(response) { }); - } else if(index==2 && (!vm.homeworks || vm.homeworks.length <= 0) ){ - $http.get(config.apiUrl + "resources/homeworks?token="+auth.token()).then(function(response){ + + } + else if(index==2 ){ + vm.homework_page = page; + $http({ + method: 'POST', + url: apiUrl+ "resources/homeworks", + data: {token: auth.token(), page: page} + }).then(function successCallback(response) { + if(response.data.page >0) { + vm.homeworks = vm.homeworks.concat(response.data.data); + } else { + vm.homeworks = response.data.data; + } + + rms.save("homeworks", vm.homeworks); + vm.homework_has_more = (response.data.count + response.data.page * 10) < response.data.all_count; + rms.save('homework_has_more', vm.has_more); + rms.save('homework_page', response.data.page); + console.log(response.data); - vm.homeworks = response.data.data; + + }, function errorCallback(response) { }); - } else if(index==3 && (!vm.exercise || vm.exercise.length <= 0) ){ - $http.get(config.apiUrl + "resources/exercies?token="+auth.token()).then(function(response){ + } + else if(index==3 ){ + vm.exercise_page = page; + $http({ + method: 'POST', + url: apiUrl+ "resources/exercises", + data: {token: auth.token(), page: page} + }).then(function successCallback(response) { + if(response.data.page >0) { + vm.exercise = vm.exercise.concat(response.data.data); + } else { + vm.exercise = response.data.data; + } + + rms.save("exercise", vm.exercise); + vm.exercise_has_more = (response.data.count + response.data.page * 10) < response.data.all_count; + rms.save('exercise_has_more', vm.exercise_has_more); + rms.save('exercise_page', response.data.page); + console.log(response.data); - vm.exercise = response.data.data; + + }, function errorCallback(response) { }); } } - vm.tab(1); + vm.tab = function(index){ + vm.currentTab = index; + vm.searchText = ""; - vm.sendFile = function(r){ - $location.path("/send_class_list").search({id: r.id}); + switch(index){ + //ALL + case 1: + if(vm.resources.length<=0){ + vm.loadResourceData(index,0); + } + break; + //homework + case 2: + if(vm.homeworks.length<=0){ + vm.loadResourceData(index,0); + } + break; + //exercise + case 3: + if(vm.exercise.length<=0){ + vm.loadResourceData(index,0); + } + break; + } } + + vm.tab(1); + }] ); From 5b070b6acc664177fd8b57569108c829a36481c4 Mon Sep 17 00:00:00 2001 From: cxt Date: Fri, 15 Jul 2016 16:52:18 +0800 Subject: [PATCH 83/98] =?UTF-8?q?=E6=B6=88=E6=81=AF=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E7=9A=84html=E6=A0=87=E7=AD=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/helpers/application_helper.rb | 3 ++- app/views/users/_user_message_userfeedaback.html.erb | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 1306d5625..fa0a60eea 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -3289,7 +3289,7 @@ def strip_html(text,len=0,endss="...") ss = "" if !text.nil? && text.length>0 ss=text.gsub(/<\/?.*?>/, '').strip - ss = ss.gsub(/ /, ' ') + ss = ss.gsub(/ */, ' ') if len > 0 && ss.length > len ss = ss[0, len] + endss @@ -3303,6 +3303,7 @@ end def message_content content content = (strip_html content).strip + content = content.gsub(/\s+/, " ") if content.gsub(" ", "") == "" content = "[非文本消息]" end diff --git a/app/views/users/_user_message_userfeedaback.html.erb b/app/views/users/_user_message_userfeedaback.html.erb index bfdbeb9f3..666fa37a3 100644 --- a/app/views/users/_user_message_userfeedaback.html.erb +++ b/app/views/users/_user_message_userfeedaback.html.erb @@ -9,7 +9,7 @@ "><%= ma.journals_for_message.reply_id == 0 ? "给你留言了:" : "回复了你的留言:" %>
  • - <%= link_to ma.journals_for_message.notes.gsub("

    ","").gsub("

    ","").gsub("
    ","").html_safe, feedback_path(ma.journals_for_message.jour_id, :anchor => "user_activity_#{ma.journals_for_message.id}"), :class =>"#{ma.viewed == 0 ? "newsBlack" : "newsGrey"}", :target => '_blank'%> + <%= link_to message_content(ma.journals_for_message.notes), feedback_path(ma.journals_for_message.jour_id, :anchor => "user_activity_#{ma.journals_for_message.id}"), :class =>"#{ma.viewed == 0 ? "newsBlack" : "newsGrey"}", :target => '_blank'%>
  • <% if i == 9 && projects.count > 10 %> diff --git a/app/views/users/_user_homework_detail.html.erb b/app/views/users/_user_homework_detail.html.erb index 4c8e17d5d..1b9490918 100644 --- a/app/views/users/_user_homework_detail.html.erb +++ b/app/views/users/_user_homework_detail.html.erb @@ -233,15 +233,13 @@ <%= image_tag(url_to_avatar(project),:width=>"40",:height => "40",:class => "borderRadius relatePImage",:id=>"project_img_"+project.id.to_s+"_"+homework_common.id.to_s,:alt =>"项目头像") %> <% end %> <% com_time = project.project_score.commit_time %> - <% time=project.updated_on %> <% forge_time=ForgeActivity.where("project_id=?",project.id).last.updated_at if ForgeActivity.where("project_id=?",project.id).last %> - <% time= time > forge_time ? time : forge_time %>

    <%=(User.find project.user_id).show_name %>(组长)

    -

    <%=time_from_now !com_time.nil? && format_time(com_time) > format_time(time) ? com_time : time %>  <%= project.project_score.changeset_num %>提交

    +

    <%=time_from_now !com_time.nil? && format_time(com_time) > format_time(forge_time) ? com_time : forge_time %>  <%= project.project_score.changeset_num %>提交

    项目名称:<%=project.name %>
    创建者:<%=(User.find project.user_id).show_name %>(组长)
    - 更新时间:<%=time_from_now !com_time.nil? && format_time(com_time) > format_time(time) ? com_time : time %> + 更新时间:<%=time_from_now !com_time.nil? && format_time(com_time) > format_time(forge_time) ? com_time : forge_time %>
    <% if i == 9 && projects.count > 10 %> From 6491e16c64c87919426af0df8a26a28436578595 Mon Sep 17 00:00:00 2001 From: txz Date: Fri, 15 Jul 2016 17:31:33 +0800 Subject: [PATCH 85/98] =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E8=AF=BE=E7=A8=8B?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E5=BA=95=E8=BE=B9=E9=87=8D=E5=90=88=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/assets/wechat/class_list.html | 4 ++-- public/stylesheets/weui/weixin.css | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/public/assets/wechat/class_list.html b/public/assets/wechat/class_list.html index b5feefc73..a3c709cb5 100644 --- a/public/assets/wechat/class_list.html +++ b/public/assets/wechat/class_list.html @@ -4,7 +4,7 @@
    我创建的课程
    -
    {{syllabus.title}}
    +
    {{syllabus.title}}
    • @@ -18,7 +18,7 @@
      我参与的课程
      -
      {{syllabus.title}}
      +
      {{syllabus.title}}
      • diff --git a/public/stylesheets/weui/weixin.css b/public/stylesheets/weui/weixin.css index 4d930bbb0..7082955e3 100644 --- a/public/stylesheets/weui/weixin.css +++ b/public/stylesheets/weui/weixin.css @@ -198,13 +198,14 @@ a.underline {text-decoration:underline;} .other-from-width {max-width:80%;} /*20160614班级列表*/ -.course-diff-row {width:100%; height:28px; line-height:28px; vertical-align:middle; background-color:#fff;} +.course-diff-row {width:100%; height:28px; line-height:28px; vertical-align:middle; background-color:#fff; border-bottom:1px solid #ccc;} .course-list-row {width:100%; height:38px; line-height:38px; vertical-align:middle; border-top:1px solid #ccc; border-bottom:1px solid #ccc; background-color:#fff;} .class-list {width:100%; border-bottom:1px solid #ccc;} .class-list li {height:40px; line-height:40px; vertical-align:middle; margin:0 25px; border-left:1px solid #ccc; border-bottom:1px solid #ccc; position:relative;} .class-list-name {max-width:75%; display:inline-block;} .class-list-dot {position:absolute; top:13px; left:-8px;} .border-bottom-none {border-bottom:none !important;} +.border-top-none {border-top:none !important;} .students-amount {height:14px; line-height:14px; vertical-align:middle; padding:2px 5px; background-color:#e6e6e6; border-radius:10px;} .new-class-btn {font-size:15px; color:#fff; background-color:#3b94d6; padding:10px 40px; border-radius:20px; display:inline-block; margin:0 auto;} .join-class-btn {font-size:15px; color:#444; background-color:#ccc; padding:10px 40px; border-radius:20px; display:inline-block; margin:0 auto;} From fcc8a08138320ab24e75007d198e58d3c04fdfeb Mon Sep 17 00:00:00 2001 From: cxt Date: Fri, 15 Jul 2016 17:38:10 +0800 Subject: [PATCH 86/98] =?UTF-8?q?=E8=AF=BE=E7=A8=8B=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E7=9A=84=E6=A0=B7=E5=BC=8F=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/users/_user_syllabus_list.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/users/_user_syllabus_list.html.erb b/app/views/users/_user_syllabus_list.html.erb index 8e33696d6..aa77c727d 100644 --- a/app/views/users/_user_syllabus_list.html.erb +++ b/app/views/users/_user_syllabus_list.html.erb @@ -43,7 +43,7 @@

        <%=course.name %>

        - 主讲老师:<%=course.teacher.show_name %> +
        From 7725db9c69f7602aded20773e866f4caca88aa73 Mon Sep 17 00:00:00 2001 From: cxt Date: Fri, 15 Jul 2016 17:38:32 +0800 Subject: [PATCH 87/98] =?UTF-8?q?=E9=A2=98=E5=BA=93=E6=8A=A5500?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...60715091215_delete_none_course_homework.rb | 17 ++ db/schema.rb | 214 +++++++++++++++++- 2 files changed, 220 insertions(+), 11 deletions(-) create mode 100644 db/migrate/20160715091215_delete_none_course_homework.rb diff --git a/db/migrate/20160715091215_delete_none_course_homework.rb b/db/migrate/20160715091215_delete_none_course_homework.rb new file mode 100644 index 000000000..8e212bbe8 --- /dev/null +++ b/db/migrate/20160715091215_delete_none_course_homework.rb @@ -0,0 +1,17 @@ +class DeleteNoneCourseHomework < ActiveRecord::Migration + def up + count = HomeworkCommon.all.count / 30 + 2 + transaction do + for i in 1 ... count do i + HomeworkCommon.page(i).per(30).each do |h| + if h.course_id.nil? || h.course.nil? + h.destroy + end + end + end + end + end + + def down + end +end diff --git a/db/schema.rb b/db/schema.rb index 6ee190852..48f9aca23 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended to check this file into your version control system. -ActiveRecord::Schema.define(:version => 20160414055511) do +ActiveRecord::Schema.define(:version => 20160715091215) do create_table "activities", :force => true do |t| t.integer "act_id", :null => false @@ -57,6 +57,29 @@ ActiveRecord::Schema.define(:version => 20160414055511) do t.integer "user_id", :null => false end + create_table "apply_add_schools", :force => true do |t| + t.string "name" + t.string "province" + t.string "city" + t.string "address" + t.string "remarks" + t.integer "school_id" + t.integer "status", :default => 0 + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "apply_homeworks", :force => true do |t| + t.integer "status" + t.integer "user_id" + t.integer "homework_common_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + add_index "apply_homeworks", ["homework_common_id"], :name => "index_apply_homeworks_on_homework_common_id" + add_index "apply_homeworks", ["user_id"], :name => "index_apply_homeworks_on_user_id" + create_table "apply_project_masters", :force => true do |t| t.integer "user_id" t.string "apply_type" @@ -66,6 +89,18 @@ ActiveRecord::Schema.define(:version => 20160414055511) do t.datetime "updated_at", :null => false end + create_table "apply_resources", :force => true do |t| + t.integer "status" + t.integer "user_id" + t.integer "attachment_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.integer "container_id" + t.string "container_type" + t.text "content" + t.integer "apply_user_id" + end + create_table "at_messages", :force => true do |t| t.integer "user_id" t.integer "at_message_id" @@ -334,6 +369,17 @@ ActiveRecord::Schema.define(:version => 20160414055511) do t.boolean "diff_all" end + create_table "code_tests", :force => true do |t| + t.integer "homework_id" + t.integer "wait_time", :default => 0 + t.integer "language" + t.integer "status" + t.integer "time_used", :default => 0 + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.integer "student_work_id", :default => 0 + end + create_table "comments", :force => true do |t| t.string "commented_type", :limit => 30, :default => "", :null => false t.integer "commented_id", :default => 0, :null => false @@ -428,15 +474,15 @@ ActiveRecord::Schema.define(:version => 20160414055511) do create_table "course_contributor_scores", :force => true do |t| t.integer "course_id" t.integer "user_id" - t.integer "message_num" - t.integer "message_reply_num" - t.integer "news_reply_num" - t.integer "resource_num" - t.integer "journal_num" - t.integer "journal_reply_num" + t.integer "message_num", :default => 0 + t.integer "message_reply_num", :default => 0 + t.integer "news_reply_num", :default => 0 + t.integer "resource_num", :default => 0 + t.integer "journal_num", :default => 0 + t.integer "journal_reply_num", :default => 0 t.datetime "created_at", :null => false t.datetime "updated_at", :null => false - t.integer "total_score" + t.integer "total_score", :default => 0 t.integer "homework_journal_num", :default => 0 t.integer "news_num", :default => 0 end @@ -463,8 +509,10 @@ ActiveRecord::Schema.define(:version => 20160414055511) do t.integer "viewed" t.datetime "created_at", :null => false t.datetime "updated_at", :null => false - t.string "content" + t.text "content" t.integer "status" + t.integer "apply_user_id" + t.integer "apply_result" end add_index "course_messages", ["course_message_type"], :name => "index_course_messages_on_course_message_type" @@ -514,8 +562,14 @@ ActiveRecord::Schema.define(:version => 20160414055511) do t.integer "excellent_option", :default => 0 t.integer "is_copy", :default => 0 t.integer "visits", :default => 0 + t.integer "syllabus_id" + t.string "invite_code" + t.string "qrcode" end + add_index "courses", ["invite_code"], :name => "index_courses_on_invite_code", :unique => true + add_index "courses", ["syllabus_id"], :name => "index_courses_on_syllabus_id" + create_table "custom_fields", :force => true do |t| t.string "type", :limit => 30, :default => "", :null => false t.string "name", :limit => 30, :default => "", :null => false @@ -1241,6 +1295,7 @@ ActiveRecord::Schema.define(:version => 20160414055511) do t.boolean "locked", :default => false t.integer "sticky", :default => 0 t.integer "org_subfield_id" + t.integer "status", :default => 0 end create_table "org_member_roles", :force => true do |t| @@ -1304,6 +1359,7 @@ ActiveRecord::Schema.define(:version => 20160414055511) do t.boolean "allow_guest_download", :default => true t.integer "visits", :default => 0 t.integer "show_mode", :default => 0 + t.integer "allow_teacher", :default => 0 end create_table "phone_app_versions", :force => true do |t| @@ -1464,6 +1520,7 @@ ActiveRecord::Schema.define(:version => 20160414055511) do t.integer "journals_count", :default => 0 t.integer "boards_reply_count", :default => 0 t.integer "visits", :default => 0 + t.integer "hot", :default => 0 end add_index "projects", ["lft"], :name => "index_projects_on_lft" @@ -1477,6 +1534,19 @@ ActiveRecord::Schema.define(:version => 20160414055511) do add_index "projects_trackers", ["project_id", "tracker_id"], :name => "projects_trackers_unique", :unique => true add_index "projects_trackers", ["project_id"], :name => "projects_trackers_project_id" + create_table "quality_analyses", :force => true do |t| + t.integer "project_id" + t.string "author_login" + t.string "rep_identifier" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.integer "sonar_version", :default => 0 + t.string "path" + t.string "branch" + t.string "language" + t.string "sonar_name" + end + create_table "queries", :force => true do |t| t.integer "project_id" t.string "name", :default => "", :null => false @@ -1521,6 +1591,18 @@ ActiveRecord::Schema.define(:version => 20160414055511) do t.string "topic_resource" end + create_table "rep_statics", :force => true do |t| + t.integer "project_id" + t.integer "commits_num" + t.string "uname" + t.string "email" + t.integer "add" + t.integer "del" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.integer "changeset" + end + create_table "repositories", :force => true do |t| t.integer "project_id", :default => 0, :null => false t.string "url", :default => "", :null => false @@ -1563,10 +1645,11 @@ ActiveRecord::Schema.define(:version => 20160414055511) do create_table "schools", :force => true do |t| t.string "name" t.string "province" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false t.string "logo_link" t.string "pinyin" + t.integer "school_type", :default => 0 end create_table "secdomains", :force => true do |t| @@ -1628,6 +1711,15 @@ ActiveRecord::Schema.define(:version => 20160414055511) do t.datetime "updated_at", :null => false end + create_table "shield_wechat_messages", :force => true do |t| + t.integer "container_id" + t.string "container_type" + t.integer "shield_id" + t.string "shield_type" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + create_table "softapplications", :force => true do |t| t.string "name" t.text "description" @@ -1646,6 +1738,28 @@ ActiveRecord::Schema.define(:version => 20160414055511) do t.integer "project_id" end + create_table "sonar_errors", :force => true do |t| + t.integer "project_id" + t.string "jenkins_job_name" + t.text "output" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "ssos", :force => true do |t| + t.integer "user_id" + t.string "openid" + t.string "name" + t.string "password" + t.string "email" + t.integer "sex" + t.string "school" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + add_index "ssos", ["user_id"], :name => "index_ssos_on_user_id" + create_table "student_work_projects", :force => true do |t| t.integer "homework_common_id" t.integer "student_work_id" @@ -1688,6 +1802,8 @@ ActiveRecord::Schema.define(:version => 20160414055511) do t.boolean "is_test", :default => false t.integer "simi_id" t.integer "simi_value" + t.float "work_score" + t.integer "work_status", :default => 0 end add_index "student_works", ["homework_common_id", "user_id"], :name => "index_student_works_on_homework_common_id_and_user_id" @@ -1719,6 +1835,31 @@ ActiveRecord::Schema.define(:version => 20160414055511) do add_index "students_for_courses", ["course_id"], :name => "index_students_for_courses_on_course_id" add_index "students_for_courses", ["student_id"], :name => "index_students_for_courses_on_student_id" + create_table "sub_document_comments", :force => true do |t| + t.text "content" + t.text "title" + t.integer "sub_domain_id" + t.integer "creator_id" + t.integer "parent_id" + t.integer "reply_id" + t.integer "locked" + t.integer "sticky" + t.integer "org_subfield_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + create_table "sub_domains", :force => true do |t| + t.integer "org_subfield_id" + t.integer "priority", :default => 0 + t.string "name" + t.string "field_type" + t.integer "hide", :default => 0 + t.integer "status", :default => 0 + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + create_table "subfield_subdomain_dirs", :force => true do |t| t.integer "org_subfield_id" t.string "name" @@ -1726,6 +1867,26 @@ ActiveRecord::Schema.define(:version => 20160414055511) do t.datetime "updated_at", :null => false end + create_table "syllabuses", :force => true do |t| + t.string "title" + t.text "description" + t.integer "user_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.string "eng_name" + t.integer "syllabus_type" + t.integer "credit" + t.integer "hours" + t.integer "theory_hours" + t.integer "practice_hours" + t.string "applicable_major" + t.string "pre_course" + t.integer "visits", :default => 0 + t.integer "des_status", :default => 0 + end + + add_index "syllabuses", ["user_id"], :name => "index_syllabuses_on_user_id" + create_table "system_messages", :force => true do |t| t.integer "user_id" t.string "content" @@ -1920,6 +2081,25 @@ ActiveRecord::Schema.define(:version => 20160414055511) do add_index "user_statuses", ["grade"], :name => "index_user_statuses_on_grade" add_index "user_statuses", ["watchers_count"], :name => "index_user_statuses_on_watchers_count" + create_table "user_wechats", :force => true do |t| + t.integer "subscribe" + t.string "openid" + t.string "nickname" + t.integer "sex" + t.string "language" + t.string "city" + t.string "province" + t.string "country" + t.string "headimgurl" + t.string "subscribe_time" + t.string "unionid" + t.string "remark" + t.integer "groupid" + t.integer "user_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + create_table "users", :force => true do |t| t.string "login", :default => "", :null => false t.string "hashed_password", :limit => 40, :default => "", :null => false @@ -1939,6 +2119,8 @@ ActiveRecord::Schema.define(:version => 20160414055511) do t.string "salt", :limit => 64 t.integer "gid" t.integer "visits", :default => 0 + t.integer "excellent_teacher", :default => 0 + t.integer "excellent_student", :default => 0 end add_index "users", ["auth_source_id"], :name => "index_users_on_auth_source_id" @@ -1996,6 +2178,16 @@ ActiveRecord::Schema.define(:version => 20160414055511) do t.datetime "updated_at", :null => false end + create_table "wechat_logs", :force => true do |t| + t.string "openid", :null => false + t.text "request_raw" + t.text "response_raw" + t.text "session_raw" + t.datetime "created_at", :null => false + end + + add_index "wechat_logs", ["openid"], :name => "index_wechat_logs_on_openid" + create_table "wiki_content_versions", :force => true do |t| t.integer "wiki_content_id", :null => false t.integer "page_id", :null => false From ba1af901ad8605c79dcfb2fcca64b64ebbfa257c Mon Sep 17 00:00:00 2001 From: yuanke <249218296@qq.com> Date: Fri, 15 Jul 2016 17:39:21 +0800 Subject: [PATCH 88/98] =?UTF-8?q?=E5=BC=BA=E5=88=B6=E6=9B=B4=E6=96=B0myres?= =?UTF-8?q?ource.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/wechats/user_activities.html.erb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/views/wechats/user_activities.html.erb b/app/views/wechats/user_activities.html.erb index cb9f4095a..941cbed4a 100644 --- a/app/views/wechats/user_activities.html.erb +++ b/app/views/wechats/user_activities.html.erb @@ -29,7 +29,7 @@ - + @@ -50,7 +50,7 @@ - + From c02245adfb7c1eca183c64d0f499d5678862b12f Mon Sep 17 00:00:00 2001 From: guange <8863824@gmail.com> Date: Fri, 15 Jul 2016 18:08:19 +0800 Subject: [PATCH 89/98] =?UTF-8?q?=E9=82=80=E8=AF=B7=E7=A0=81=E5=88=86?= =?UTF-8?q?=E4=BA=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/apis/courses.rb | 6 +----- public/javascripts/wechat/controllers/invite_code.js | 2 +- public/javascripts/wechat/others/routes.js | 4 ++-- 3 files changed, 4 insertions(+), 8 deletions(-) diff --git a/app/api/mobile/apis/courses.rb b/app/api/mobile/apis/courses.rb index 0467d6220..1765ce23d 100644 --- a/app/api/mobile/apis/courses.rb +++ b/app/api/mobile/apis/courses.rb @@ -193,14 +193,10 @@ module Mobile desc "返回单个课程" params do requires :id, type: Integer - optional :token, type: String end route_param :id do get do - authenticate! - cs = CoursesService.new - course = cs.show_course(params,(current_user.nil? ? User.find(2):current_user)) - #course = Course.find(params[:id]) + course = Course.find(params[:id]) present :data, course, with: Mobile::Entities::Course,user: current_user { status: 0} end diff --git a/public/javascripts/wechat/controllers/invite_code.js b/public/javascripts/wechat/controllers/invite_code.js index 1b92f592c..8ef93b21b 100644 --- a/public/javascripts/wechat/controllers/invite_code.js +++ b/public/javascripts/wechat/controllers/invite_code.js @@ -8,7 +8,7 @@ app.controller('InviteCodeController', ['$scope','$http', '$routeParams','config vm.course = {}; var courseid = $routeParams.id; - $http.get(config.apiUrl+ 'courses/'+courseid+"?token="+auth.token()).then( + $http.get(config.apiUrl+ 'courses/'+courseid+").then( function(response){ console.log(response.data); vm.course = response.data.data; diff --git a/public/javascripts/wechat/others/routes.js b/public/javascripts/wechat/others/routes.js index 2c63609b0..a40951bcc 100644 --- a/public/javascripts/wechat/others/routes.js +++ b/public/javascripts/wechat/others/routes.js @@ -35,7 +35,7 @@ app.config(['$routeProvider',"$httpProvider", "$locationProvider",'config', func .when('/edit_class', makeRoute('edit_class.html', 'EditClassController')) .when('/class_list', makeRoute('class_list.html', 'ClassListController')) .when('/myresource', makeRoute('myresource.html', 'MyResourceController')) - .when('/invite_code', makeRoute('invite_code.html', 'InviteCodeController')) + .when('/invite_code', {templateUrl: rootPath + 'invite_code.html', controller: 'InviteCodeController'}) .when('/send_class_list', makeRoute('send_class_list.html', 'SendClassListController')) .otherwise({ redirectTo: '/activites' @@ -66,4 +66,4 @@ app.config(['$routeProvider',"$httpProvider", "$locationProvider",'config', func } }; }]); -}]); \ No newline at end of file +}]); From 7dd26bb5d9c470b95feb9d964ff2af1fac15a456 Mon Sep 17 00:00:00 2001 From: yuanke <249218296@qq.com> Date: Fri, 15 Jul 2016 18:19:37 +0800 Subject: [PATCH 90/98] =?UTF-8?q?=E9=82=80=E8=AF=B7=E7=A0=81BUG=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/javascripts/wechat/controllers/invite_code.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/javascripts/wechat/controllers/invite_code.js b/public/javascripts/wechat/controllers/invite_code.js index 8ef93b21b..0b5841b5f 100644 --- a/public/javascripts/wechat/controllers/invite_code.js +++ b/public/javascripts/wechat/controllers/invite_code.js @@ -8,7 +8,7 @@ app.controller('InviteCodeController', ['$scope','$http', '$routeParams','config vm.course = {}; var courseid = $routeParams.id; - $http.get(config.apiUrl+ 'courses/'+courseid+").then( + $http.get(config.apiUrl+ 'courses/'+courseid).then( function(response){ console.log(response.data); vm.course = response.data.data; From 596bfe4bfca42a9a55bd91da56675b24b81bd3fd Mon Sep 17 00:00:00 2001 From: yuanke <249218296@qq.com> Date: Fri, 15 Jul 2016 19:08:05 +0800 Subject: [PATCH 91/98] =?UTF-8?q?=E9=82=80=E8=AF=B7=E7=A0=81=E5=88=86?= =?UTF-8?q?=E4=BA=AB=E9=97=AE=E9=A2=98=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 | 5 ++++- app/services/courses_service.rb | 8 ++++---- public/assets/wechat/class.html | 19 +++++-------------- .../wechat/controllers/invite_code.js | 8 ++++---- 4 files changed, 17 insertions(+), 23 deletions(-) diff --git a/app/api/mobile/apis/courses.rb b/app/api/mobile/apis/courses.rb index 1765ce23d..caabad198 100644 --- a/app/api/mobile/apis/courses.rb +++ b/app/api/mobile/apis/courses.rb @@ -193,10 +193,13 @@ module Mobile desc "返回单个课程" params do requires :id, type: Integer + requires :token,type:String end route_param :id do get do - course = Course.find(params[:id]) + # course = Course.find(params[:id]) + cs = CoursesService.new + course = cs.show_course(params,current_user) present :data, course, with: Mobile::Entities::Course,user: current_user { status: 0} end diff --git a/app/services/courses_service.rb b/app/services/courses_service.rb index 7ef08f6d8..39c77de4b 100644 --- a/app/services/courses_service.rb +++ b/app/services/courses_service.rb @@ -187,10 +187,10 @@ class CoursesService else work_unit = get_user_work_unit course.teacher end - unless (course.is_public == 1 || current_user.member_of_course?(course) || current_user.admin?) - raise '403' - end - {:course => course,:work_unit => work_unit, :img_url => url_to_avatar(course),:current_user_is_member => current_user.member_of_course?(course),:current_user_is_teacher => is_course_teacher(current_user,course),:course_student_num => course ? course.student.count.to_s : 0} + # unless (course.is_public == 1 || current_user.member_of_course?(course) || current_user.admin?) + # raise '403' + # end + {:course => course,:work_unit => work_unit, :img_url => url_to_avatar(course),:current_user_is_member => current_user.nil? ? false : current_user.member_of_course?(course),:current_user_is_teacher => current_user.nil? ? false : is_course_teacher(current_user,course),:course_student_num => course ? course.student.count.to_s : 0} end #创建课程 diff --git a/public/assets/wechat/class.html b/public/assets/wechat/class.html index 0539ee326..c328ed226 100644 --- a/public/assets/wechat/class.html +++ b/public/assets/wechat/class.html @@ -8,10 +8,10 @@ - - - - + + + + @@ -23,10 +23,7 @@
        -
        {{r.filename}}发送
        -
        -
        更多
        -
        +
        {{r.filename}}发送

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

        @@ -46,9 +43,6 @@
        {{r.homework_name}}发送
        -
        -
        更多
        -

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

        @@ -56,9 +50,6 @@
        {{r.exercise_name}}发送
        -
        -
        更多
        -

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

        diff --git a/public/javascripts/wechat/controllers/invite_code.js b/public/javascripts/wechat/controllers/invite_code.js index 0b5841b5f..0c8bbe09e 100644 --- a/public/javascripts/wechat/controllers/invite_code.js +++ b/public/javascripts/wechat/controllers/invite_code.js @@ -5,16 +5,16 @@ app.controller('InviteCodeController', ['$scope','$http', '$routeParams','config','auth', function($scope, $http, $routeParams, config, auth){ var vm = $scope; - + vm.course = {}; var courseid = $routeParams.id; - $http.get(config.apiUrl+ 'courses/'+courseid).then( + $http.get(config.apiUrl+ 'courses/'+courseid+"?token="+auth.token()).then( function(response){ console.log(response.data); vm.course = response.data.data; } ); - + vm.share = function(){ window.WeixinJSBridge.invoke('sendAppMessage',{ 'appid': 'wxf694495398c7d470', // 公众号appID @@ -30,5 +30,5 @@ app.controller('InviteCodeController', ['$scope','$http', '$routeParams','config //alert(res.err_msg); }); } - + }]); From 67fa6da8ae6bfc27218a1ee82cbab0854bc1a340 Mon Sep 17 00:00:00 2001 From: yuanke <249218296@qq.com> Date: Fri, 15 Jul 2016 19:18:30 +0800 Subject: [PATCH 92/98] =?UTF-8?q?=E6=88=91=E7=9A=84=E8=B5=84=E6=BA=90?= =?UTF-8?q?=E7=95=8C=E9=9D=A2=E5=8A=A0=E8=BD=BD=E5=89=8D=20=E4=B8=8D?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E6=9A=82=E6=97=A0=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/assets/wechat/myresource.html | 6 +++--- public/javascripts/wechat/controllers/myresource.js | 7 +++++++ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/public/assets/wechat/myresource.html b/public/assets/wechat/myresource.html index 0782aeb3b..c89f39684 100644 --- a/public/assets/wechat/myresource.html +++ b/public/assets/wechat/myresource.html @@ -18,7 +18,7 @@
        更多
        -

        暂无课件,
        +

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

        @@ -28,7 +28,7 @@
        更多
        -

        暂无作业,
        +

        暂无作业,
        请登录Trustie网站,在PC浏览器中创建作业。

        @@ -38,7 +38,7 @@
        更多
        -

        暂无测验,
        +

        暂无测验,
        请登录Trustie网站,在PC浏览器中创建测验。

        diff --git a/public/javascripts/wechat/controllers/myresource.js b/public/javascripts/wechat/controllers/myresource.js index 802982266..fb564cde8 100644 --- a/public/javascripts/wechat/controllers/myresource.js +++ b/public/javascripts/wechat/controllers/myresource.js @@ -6,6 +6,10 @@ app.controller('MyResourceController', ['$scope', '$http', 'auth', 'config', '$l vm.homeworks = []; vm.exercise = []; + vm.resources_tag = false; + vm.homeworks_tag = false; + vm.exercises_tag = false; + vm.page = rms.get('page') || 0; vm.resources = rms.get("resources") || []; vm.has_more = rms.get("has_more"); @@ -32,6 +36,7 @@ app.controller('MyResourceController', ['$scope', '$http', 'auth', 'config', '$l url: apiUrl+ "resources", data: {token: auth.token(), page: page} }).then(function successCallback(response) { + vm.resources_tag = true if(response.data.page >0) { vm.resources = vm.resources.concat(response.data.data); } else { @@ -56,6 +61,7 @@ app.controller('MyResourceController', ['$scope', '$http', 'auth', 'config', '$l url: apiUrl+ "resources/homeworks", data: {token: auth.token(), page: page} }).then(function successCallback(response) { + vm.homeworks_tag = true if(response.data.page >0) { vm.homeworks = vm.homeworks.concat(response.data.data); } else { @@ -79,6 +85,7 @@ app.controller('MyResourceController', ['$scope', '$http', 'auth', 'config', '$l url: apiUrl+ "resources/exercises", data: {token: auth.token(), page: page} }).then(function successCallback(response) { + vm.exercises_tag = true; if(response.data.page >0) { vm.exercise = vm.exercise.concat(response.data.data); } else { From c9e0143fe8095b86dec541fb0539b2ba73b43e62 Mon Sep 17 00:00:00 2001 From: cxt Date: Fri, 15 Jul 2016 19:36:46 +0800 Subject: [PATCH 93/98] =?UTF-8?q?=E4=BD=9C=E4=B8=9A=E5=8A=A8=E6=80=81?= =?UTF-8?q?=E7=9A=84=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/helpers/application_helper.rb | 2 +- app/views/users/_course_homework.html.erb | 4 +--- app/views/users/_user_homework_detail.html.erb | 4 +--- lib/tasks/update_homework.rake | 6 ++++++ 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index e6029d33c..603084cd1 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -2992,7 +2992,7 @@ int main(int argc, char** argv){ unless projects.empty? project_ids = '('+projects.map{|pro|pro.project_id}.join(',')+')' sort_projects = ForgeActivity.find_by_sql("SELECT MAX(updated_at) AS updated_at,user_id, project_id FROM forge_activities WHERE project_id IN #{project_ids} GROUP BY project_id ORDER BY MAX(updated_at) DESC") - + #sort_projects = sort_projects.sort_by{|sp| (!sp.project.project_score.nil? && !sp.project.project_score.commit_time.nil?) ? '' : sp.project.project_score.commit_time} return sort_projects end end diff --git a/app/views/users/_course_homework.html.erb b/app/views/users/_course_homework.html.erb index 7b51ef568..f87b483da 100644 --- a/app/views/users/_course_homework.html.erb +++ b/app/views/users/_course_homework.html.erb @@ -198,10 +198,8 @@ <%# first_pro = sort_projects.first %> <% first_pro = Project.find sort_projects.first.project_id %> <% commit_time = first_pro.project_score.commit_time %> - <% one_time = first_pro.updated_on %> <% one_forge_time=ForgeActivity.where("project_id=?",first_pro.id).last.updated_at if ForgeActivity.where("project_id=?",first_pro.id).last %> - <% one_time= one_time > one_forge_time ? one_time : one_forge_time %> - # <%=time_from_now !commit_time.nil? && format_time(commit_time) > format_time(one_time) ? commit_time : one_time %><%= link_to User.find(first_pro.user_id).show_name, user_activities_path(first_pro.user_id), :class => "newsBlue ml5 mr5"%>更新了项目,最近更新: + # <%=time_from_now !commit_time.nil? && format_time(commit_time) > format_time(one_forge_time) ? commit_time : one_forge_time %><%= link_to User.find(first_pro.user_id).show_name, user_activities_path(first_pro.user_id), :class => "newsBlue ml5 mr5"%>更新了项目,最近更新:
        <% sort_projects.each_with_index do |pro, i| %> diff --git a/app/views/users/_user_homework_detail.html.erb b/app/views/users/_user_homework_detail.html.erb index 1b9490918..6e325c2f0 100644 --- a/app/views/users/_user_homework_detail.html.erb +++ b/app/views/users/_user_homework_detail.html.erb @@ -208,10 +208,8 @@
        <% first_pro = Project.find sort_projects.first.project_id %> <% commit_time = first_pro.project_score.commit_time %> - <% one_time = first_pro.updated_on %> <% one_forge_time=ForgeActivity.where("project_id=?",first_pro.id).last.updated_at if ForgeActivity.where("project_id=?",first_pro.id).last %> - <% one_time= one_time > one_forge_time ? one_time : one_forge_time %> - # <%=time_from_now !commit_time.nil? && format_time(commit_time) > format_time(one_time) ? commit_time : one_time %><%= link_to User.find(first_pro.user_id).show_name, user_activities_path(first_pro.user_id), :class => "newsBlue ml5 mr5"%>更新了项目,最近更新: + # <%=time_from_now !commit_time.nil? && format_time(commit_time) > format_time(one_forge_time) ? commit_time : one_forge_time %><%= link_to User.find(first_pro.user_id).show_name, user_activities_path(first_pro.user_id), :class => "newsBlue ml5 mr5"%>更新了项目,最近更新:
        <% sort_projects.each_with_index do |pro, i| %> diff --git a/lib/tasks/update_homework.rake b/lib/tasks/update_homework.rake index 33bcc2231..d66f2aa25 100644 --- a/lib/tasks/update_homework.rake +++ b/lib/tasks/update_homework.rake @@ -29,6 +29,12 @@ namespace :update_homework do changesets = g.commits(project.gpid, :ref_name => default_branch) changesets_latest_coimmit = changesets[0] unless changesets[0].blank? + project_score = project.project_score + if project_score.nil? + ProjectScore.create(:project_id => project.id, :score => false) + else + project_score.update_column(:commit_time, changesets_latest_coimmit.created_at.to_time) + end if time.strftime('%Y-%m-%d %H:%M:%S') < changesets_latest_coimmit.created_at.to_time.strftime('%Y-%m-%d %H:%M:%S') #if format_time(time) < format_time(changesets_latest_coimmit.created_at) time = changesets_latest_coimmit.created_at.to_time From 552f1a2709ed3053eb22a181e14b72958067179f Mon Sep 17 00:00:00 2001 From: yuanke <249218296@qq.com> Date: Fri, 15 Jul 2016 19:47:33 +0800 Subject: [PATCH 94/98] =?UTF-8?q?=E6=AD=A3=E5=BC=8F=E7=89=88=E9=85=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/wechat.yml | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/config/wechat.yml b/config/wechat.yml index 6b3799706..d839f1606 100644 --- a/config/wechat.yml +++ b/config/wechat.yml @@ -20,26 +20,26 @@ default: &default encrypt_mode: false # if true must fill encoding_aes_key #production -# encoding_aes_key: "QGfP13YP4BbQGkkrlYuxpn4ZIDXpBJww4fxl8CObvNw" -# jsapi_ticket: "C:/Users/[user_name]/wechat_jsapi_ticket" -# -# #template -# binding_succ_notice: "jjpDrgFErnmkrE9tf2M3o0t31ZrJ7mr0YtuE_wyLaMc" -# journal_notice: "uC1zAw4F2q6HTA3Pcj8VUO6wKKKiYFwnPJB4iXxpdoM" -# homework_message_notice: "tCf7teCVqc2vl2LZ_hppIdWmpg8yLcrI8XifxYePjps" -# class_notice: "MQ_mFupbXP-9jWbeHT3C5xqNBvPo8EIlNv4ULakSpJA" -# create_class_notice: "2GtJJGzzNlNy2i0UrsjEDlvfSVIUXQfSo47stpcQAVw" - - #test - encoding_aes_key: "QyocNOkRmrT5HzBpCG54EVPUQjk86nJapXNVDQm6Yy6" + encoding_aes_key: "QGfP13YP4BbQGkkrlYuxpn4ZIDXpBJww4fxl8CObvNw" jsapi_ticket: "C:/Users/[user_name]/wechat_jsapi_ticket" #template - binding_succ_notice: "n4KLwcWNrIMYkKxWL2hUwzunm5RTT54EbWem2MIUapU" - journal_notice: "XpHHYkqSGkwuF9vHthRdmPQLvCFRQ4_NbRBP12T7ciE" - homework_message_notice: "Kom0TsYYKsNKCS6luweYVRo9z-mH0wRPr24b1clGCPQ" - class_notice: "8LVu33l6bP-56SDomVgHn-yJc57YpCwwJ81rAJgRONk" - create_class_notice: "9CDIvHIKiGwPEQWRw_-wieec1o50tMXQPPZIfECKu0I" + binding_succ_notice: "jjpDrgFErnmkrE9tf2M3o0t31ZrJ7mr0YtuE_wyLaMc" + journal_notice: "uC1zAw4F2q6HTA3Pcj8VUO6wKKKiYFwnPJB4iXxpdoM" + homework_message_notice: "tCf7teCVqc2vl2LZ_hppIdWmpg8yLcrI8XifxYePjps" + class_notice: "MQ_mFupbXP-9jWbeHT3C5xqNBvPo8EIlNv4ULakSpJA" + create_class_notice: "2GtJJGzzNlNy2i0UrsjEDlvfSVIUXQfSo47stpcQAVw" + + #test +# encoding_aes_key: "QyocNOkRmrT5HzBpCG54EVPUQjk86nJapXNVDQm6Yy6" +# jsapi_ticket: "C:/Users/[user_name]/wechat_jsapi_ticket" +# +# #template +# binding_succ_notice: "n4KLwcWNrIMYkKxWL2hUwzunm5RTT54EbWem2MIUapU" +# journal_notice: "XpHHYkqSGkwuF9vHthRdmPQLvCFRQ4_NbRBP12T7ciE" +# homework_message_notice: "Kom0TsYYKsNKCS6luweYVRo9z-mH0wRPr24b1clGCPQ" +# class_notice: "8LVu33l6bP-56SDomVgHn-yJc57YpCwwJ81rAJgRONk" +# create_class_notice: "9CDIvHIKiGwPEQWRw_-wieec1o50tMXQPPZIfECKu0I" production: <<: *default From c14979d878575c98685138c8f271028981336d5e Mon Sep 17 00:00:00 2001 From: guange <8863824@gmail.com> Date: Fri, 15 Jul 2016 19:53:38 +0800 Subject: [PATCH 95/98] assets --- app/views/wechats/user_activities.html.erb | 50 +++++++++++----------- public/javascripts/wechat/build/app.min.js | 6 +-- 2 files changed, 28 insertions(+), 28 deletions(-) diff --git a/app/views/wechats/user_activities.html.erb b/app/views/wechats/user_activities.html.erb index 941cbed4a..6c3da9cf4 100644 --- a/app/views/wechats/user_activities.html.erb +++ b/app/views/wechats/user_activities.html.erb @@ -28,31 +28,31 @@ - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/javascripts/wechat/build/app.min.js b/public/javascripts/wechat/build/app.min.js index 6511ffb0e..b704dfb6e 100644 --- a/public/javascripts/wechat/build/app.min.js +++ b/public/javascripts/wechat/build/app.min.js @@ -7,13 +7,13 @@ app.controller("ClassController",["$scope","config","$http","auth","$location"," app.controller("ClassListController",["$scope","config","auth","$http","$location","alertService","rms",function(e,s,a,t,o,l,n){var c=e;c.syllabuses=n.get("syllabuses")||[],c.alertService=l.create();var i=function(){t.get(s.apiUrl+"syllabuses?token="+a.token()).then(function(e){console.log(e.data),c.syllabuses=e.data.data,n.save("syllabuses",c.syllabuses)})};c.syllabuses.length<=0&&i(),c.goClass=function(e){console.log(e),o.path("/class").search({id:e})},c.newClass=function(){t.post(s.apiUrl+"syllabuses/auth",{token:a.token()}).then(function(e){console.log(e.data),0==e.data.auth?c.alertService.showMessage("提示","非教师身份不能创建课程哦~"):o.path("/new_class")})},c.goResource=function(){o.path("/myresource")},c.joinClass=function(){var e=window.prompt("请输入5位班级邀请码(不区分大小写)");e&&5==e.length?t.post(s.apiUrl+"courses/join",{token:a.token(),invite_code:e}).then(function(e){console.log(e.data),0!=e.data.status?c.alertService.showMessage("错误",e.data.message):(c.alertService.showMessage("提示","加入课程成功"),i())}):e&&c.alertService.showMessage("错误","邀请码格式不正确")},c.onSetting=function(e){console.log(e),n.save("current_edit_syllobus",e),o.path("/edit_class").search({id:e.id})}}]); app.controller("CourseNoticeController",["$scope","$http","$routeParams","auth","common",function(o,e,t,n,a){a.init({id:t.id,scope:o,type:"newss",replyType:"News",loadCallback:function(e){o.news=e.data},replyCallback:function(){}})}]); app.controller("DiscussionController",["$scope","$http","$routeParams","auth","common",function(o,s,a,e,n){n.init({id:a.id,scope:o,type:"messages",replyType:"Message",loadCallback:function(s){o.discussion=s.data},replyCallback:function(){}})}]); -app.controller("EditClassController",["$scope","$http","auth","config","alertService","$location","$routeParams","rms",function(s,e,a,l,t,o,r,u){var n=s;n.syllabus=u.get("current_edit_syllobus");var i=r.id;if(n.syllabus||e.get(l.apiUrl+"syllabuses/"+i+"?token="+a.token()).then(function(s){if(console.log(s.data),n.syllabus=s.data.data,n.syllabus){for(var e in n.syllabus.courses){var a=n.syllabus.courses[e];a.tmpname=a.name}n.syllabus.tmptitle=n.syllabus.title}}),console.log(n.syllabus),n.syllabus){for(var c in n.syllabus.courses){var d=n.syllabus.courses[c];d.tmpname=d.name}n.syllabus.tmptitle=n.syllabus.title}n.alertService_1=t.create(),n.alertService_2=t.create(),n.addClass=function(){n.syllabus.courses.push({can_setting:!0})},n.deleteClass=function(s){var t=n.syllabus.courses[s];t.id>0?n.alertService_2.showMessage("提示","您确定要删除该班级吗?",function(){e.post(l.apiUrl+"courses/"+t.id+"/del",{token:a.token()}).then(function(e){0!=e.data.status?n.alertService_1.showMessage("出错了",e.data.message):n.alertService_1.showMessage("提示","删除班级成功",function(){n.syllabus.courses.splice(s,1)}),console.log(e.data.data)})}):n.syllabus.courses.splice(s,1)},n.newClass=function(s,t){if(s.$setSubmitted(),console.log(t),!s.$valid)return void console.log(s.$error);var r=[],c=[];for(var d in n.syllabus.courses){var b=n.syllabus.courses[d];b.id?b.tmpname!=b.name&&c.push({id:b.id,name:b.tmpname}):r.push(b.tmpname)}e.post(l.apiUrl+"syllabuses/"+i+"/edit",{token:a.token(),id:i,title:n.syllabus.tmptitle,add_courses:r,modify_courses:c}).then(function(s){0!=s.data.status?n.alertService_1.showMessage("出错了",s.data.message):n.alertService_1.showMessage("提示","保存课程成功",function(){u.save("syllabuses",[]),o.path("/class_list")}),console.log(s.data.data)})}}]); +app.controller("EditClassController",["$scope","$http","auth","config","alertService","$location","$routeParams","rms",function(s,e,a,l,t,o,r,n){var u=s;u.syllabus=n.get("current_edit_syllobus");var i=r.id;if(u.syllabus||e.get(l.apiUrl+"syllabuses/"+i+"?token="+a.token()).then(function(s){if(console.log(s.data),u.syllabus=s.data.data,u.syllabus){for(var e in u.syllabus.courses){var a=u.syllabus.courses[e];a.tmpname=a.name}u.syllabus.tmptitle=u.syllabus.title}}),console.log(u.syllabus),u.syllabus){for(var c in u.syllabus.courses){var d=u.syllabus.courses[c];d.tmpname=d.name}u.syllabus.tmptitle=u.syllabus.title}u.alertService_1=t.create(),u.alertService_2=t.create(),u.addClass=function(){u.syllabus.courses.push({can_setting:!0})},u.deleteClass=function(s){var t=u.syllabus.courses[s];t.id>0?u.alertService_2.showMessage("提示","您确定要删除该班级吗?",function(){e.post(l.apiUrl+"courses/"+t.id+"/del",{token:a.token()}).then(function(e){0!=e.data.status?u.alertService_1.showMessage("出错了",e.data.message):u.alertService_1.showMessage("提示","删除班级成功",function(){u.syllabus.courses.splice(s,1)}),console.log(e.data.data)})}):u.syllabus.courses.splice(s,1)},u.newClass=function(s,t){if(s.$setSubmitted(),console.log(t),!s.$valid)return void console.log(s.$error);var r=[],c=[];for(var d in u.syllabus.courses){var b=u.syllabus.courses[d];b.id?b.tmpname!=b.name&&c.push({id:b.id,name:b.tmpname}):r.push(b.tmpname)}e.post(l.apiUrl+"syllabuses/"+i+"/edit",{token:a.token(),id:i,title:u.syllabus.tmptitle,add_courses:r,modify_courses:c}).then(function(s){0!=s.data.status?u.alertService_1.showMessage("出错了",s.data.message):u.alertService_1.showMessage("提示","保存课程成功",function(){n.save("syllabuses",[]),o.path("/class_list")}),console.log(s.data.data)})},u.fadeText=function(){s.change=!0}}]); app.controller("HomeworkController",["$scope","$http","$routeParams","auth","common",function(o,e,l,n,r){r.init({id:l.id,scope:o,type:"whomeworks",replyType:"HomeworkCommon",loadCallback:function(e){console.log(e),o.homework=e.data},replyCallback:function(){}})}]); app.controller("InviteCodeController",["$scope","$http","$routeParams","config","auth",function(t,e,i,n,o){var a=t;a.course={};var c=i.id;e.get(n.apiUrl+"courses/"+c+"?token="+o.token()).then(function(t){console.log(t.data),a.course=t.data.data}),a.share=function(){window.WeixinJSBridge.invoke("sendAppMessage",{appid:"wxf694495398c7d470",type:"link",data_url:"",img_url:"http://pnewsapp.tc.qq.com/newsapp_bt/0/9963967/640",img_height:370,img_width:550,link:"http://view.inews.qq.com/a/WXN2013101101385701",desc:"desc",title:"title"},function(t){})}}]); app.controller("IssueController",["$scope","$http","$routeParams","auth","common",function(o,e,l,s,t){t.init({id:l.id,scope:o,type:"issues",replyType:"Issue",loadCallback:function(e){console.log(e),o.issue=e.data},replyCallback:function(){}})}]); app.controller("JournalsController",["$scope","$http","$routeParams","auth","common",function(o,a,e,l,n){n.init({id:e.id,scope:o,type:"journal_for_messages",replyType:"JournalsForMessage",loadCallback:function(a){o.message=a.data},replyCallback:function(){}})}]); app.controller("LoginController",["$scope","$http","$location","$routeParams","alertService","config","auth","session",function(e,o,t,a,i,n,s,l){s.get_bind().then(function(){t.path("/activities")}),a.code&&l.save("code",a.code);var r=e;r.loginFailed=!1,r.alertService=i.create(),r.findPwdDialog=i.create(),r.login=function(a,i){return a.$setSubmitted(),console.log(i),a.$valid?(console.log(apiUrl+"auth"),void o.post(n.apiUrl+"users/wxbind",{login:i.login,password:i.password}).then(function(o){console.log(o.data),r.loginFailed=0!=o.data.status,e.loginFailed?r.alertService.showMessage("出错了",o.data.message):r.alertService.showMessage("提示",o.data.message,function(){t.path("/activities")})})["catch"](function(e){r.alertService.showMessage("出错了",e)})):void console.log(a.$error)},r.showBox=function(){r.findPwdDialog.showMessage("提示","请访问www.trustie.net获取密码,谢谢!")},r.goReg=function(){t.path("/reg")}}]); -app.controller("MyResourceController",["$scope","$http","auth","config","$location",function(e,o,t,n,r){var s=e;s.menus=["课件","作业","测验"],s.resources=null,s.homeworks=null,s.exercise=null,s.searchText="",s.tab=function(e){s.currentTab=e,s.searchText="",1==e&&(!s.resources||s.resources.length<=0)?o.get(n.apiUrl+"resources?token="+t.token()).then(function(e){console.log(e.data),s.resources=e.data.data}):2==e&&(!s.homeworks||s.homeworks.length<=0)?o.get(n.apiUrl+"resources/homeworks?token="+t.token()).then(function(e){console.log(e.data),s.homeworks=e.data.data}):3==e&&(!s.exercise||s.exercise.length<=0)&&o.get(n.apiUrl+"resources/exercies?token="+t.token()).then(function(e){console.log(e.data),s.exercise=e.data.data})},s.tab(1),s.sendFile=function(e){r.path("/send_class_list").search({id:e.id})}}]); +app.controller("MyResourceController",["$scope","$http","auth","config","$location","rms",function(e,a,o,s,r,t){var c=e;c.menus=["课件","作业","测验"],c.resources=[],c.homeworks=[],c.exercise=[],c.resources_tag=!1,c.homeworks_tag=!1,c.exercises_tag=!1,c.page=t.get("page")||0,c.resources=t.get("resources")||[],c.has_more=t.get("has_more"),c.homework_page=t.get("homework_page")||0,c.homeworks=t.get("homeworks")||[],c.homework_has_more=t.get("homework_has_more"),c.exercise_page=t.get("exercise_page")||0,c.exercise=t.get("exercise")||[],c.exercise_has_more=t.get("exercise_has_more"),c.searchText="",c.sendFile=function(e){r.path("/send_class_list").search({id:e.id})},c.loadResourceData=function(e,s){1==e?(c.page=s,a({method:"POST",url:apiUrl+"resources",data:{token:o.token(),page:s}}).then(function(e){c.resources_tag=!0,e.data.page>0?c.resources=c.resources.concat(e.data.data):c.resources=e.data.data,t.save("resources",c.resources),c.has_more=e.data.count+10*e.data.page0?c.homeworks=c.homeworks.concat(e.data.data):c.homeworks=e.data.data,t.save("homeworks",c.homeworks),c.homework_has_more=e.data.count+10*e.data.page0?c.exercise=c.exercise.concat(e.data.data):c.exercise=e.data.data,t.save("exercise",c.exercise),c.exercise_has_more=e.data.count+10*e.data.page Date: Fri, 15 Jul 2016 20:25:08 +0800 Subject: [PATCH 96/98] =?UTF-8?q?=E6=AD=A3=E5=BC=8F=E7=89=88=E9=85=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/wechat.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/config/wechat.yml b/config/wechat.yml index d839f1606..9021a5c8b 100644 --- a/config/wechat.yml +++ b/config/wechat.yml @@ -8,12 +8,12 @@ default: &default #secret: "743e038392f1d89540e95f8f7645849a" #production - #appid: "wx8e1ab05163a28e37" - #secret: "beb4d3bc4b32b3557811680835357841" + appid: "wx8e1ab05163a28e37" + secret: "beb4d3bc4b32b3557811680835357841" #test - appid: "wxc09454f171153c2d" - secret: "dff5b606e34dcafe24163ec82c2715f8" +# appid: "wxc09454f171153c2d" +# secret: "dff5b606e34dcafe24163ec82c2715f8" token: "123456" access_token: "1234567" From 3198f8a4734d601f51cad9be3912a39c88675c38 Mon Sep 17 00:00:00 2001 From: huang Date: Mon, 18 Jul 2016 11:17:22 +0800 Subject: [PATCH 97/98] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E5=BA=93=E6=8F=90=E4=BA=A4=E8=AE=B0=E5=BD=95=E4=B8=AD=EF=BC=9A?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E5=9B=BE=E7=89=87=E6=88=96=E8=80=85=E9=9D=9E?= =?UTF-8?q?=E5=8F=AF=E4=BB=A5=E9=A2=84=E8=A7=88=E6=96=87=E4=BB=B6=20?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E8=AF=A6=E6=83=85500=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/repositories_controller.rb | 2 +- app/helpers/repositories_helper.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/controllers/repositories_controller.rb b/app/controllers/repositories_controller.rb index 4764d1cd7..25d7b2a15 100644 --- a/app/controllers/repositories_controller.rb +++ b/app/controllers/repositories_controller.rb @@ -49,7 +49,7 @@ class RepositoriesController < ApplicationController helper :project_score #@root_path = RepositoriesHelper::ROOT_PATH $g=Gitlab.client - require 'net/ssh' + # require 'net/ssh' rescue_from Redmine::Scm::Adapters::CommandFailed, :with => :show_error_command_failed def new diff --git a/app/helpers/repositories_helper.rb b/app/helpers/repositories_helper.rb index b525c4aed..72bee4843 100644 --- a/app/helpers/repositories_helper.rb +++ b/app/helpers/repositories_helper.rb @@ -65,7 +65,7 @@ module RepositoriesHelper # 获取diff内容行号 def diff_line_num content - content.scan(/@@ -(\d+),\d+ \+\d+,\d+ @@/).first.join("").to_i + content.scan(/@@ -(\d+),\d+ \+\d+,\d+ @@/).first.nil? ? "" : content.scan(/@@ -(\d+),\d+ \+\d+,\d+ @@/).first.join("").to_i end # 处理内容 From 097374df1483fc5d6b8fff5920c44f33e7bba38d Mon Sep 17 00:00:00 2001 From: huang Date: Mon, 18 Jul 2016 11:25:45 +0800 Subject: [PATCH 98/98] =?UTF-8?q?=E5=8E=BB=E6=8E=89=E5=85=A8=E5=B1=80?= =?UTF-8?q?=E5=8F=98=E9=87=8F=EF=BC=8C=E9=80=9A=E8=BF=87filter=E8=8E=B7?= =?UTF-8?q?=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/repositories_controller.rb | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/app/controllers/repositories_controller.rb b/app/controllers/repositories_controller.rb index 25d7b2a15..6b41e39fc 100644 --- a/app/controllers/repositories_controller.rb +++ b/app/controllers/repositories_controller.rb @@ -38,7 +38,7 @@ class RepositoriesController < ApplicationController before_filter :find_changeset, :only => [:revision, :add_related_issue, :remove_related_issue] before_filter :authorize , :except => [:newrepo,:newcreate,:fork, :to_gitlab, :forked, :commit_diff, :project_archive, :quality_analysis] # 链接gitlab - before_filter :connect_gitlab, :only => [:quality_analysis, :show] + before_filter :connect_gitlab, :only => [:quality_analysis, :show, :commit_diff, :find_project_repository] # 版本库新增权限 before_filter :show_rep, :only => [:show] accept_rss_auth :revisions @@ -48,8 +48,7 @@ class RepositoriesController < ApplicationController include RepositoriesHelper helper :project_score #@root_path = RepositoriesHelper::ROOT_PATH - $g=Gitlab.client - # require 'net/ssh' + require 'net/ssh' rescue_from Redmine::Scm::Adapters::CommandFailed, :with => :show_error_command_failed def new @@ -548,8 +547,8 @@ update # 每次提交对应的文件差异 def commit_diff - @commit_diff = $g.commit_diff(@project.gpid, params[:changeset]) - @commit_details = $g.commit(@project.gpid, params[:changeset]) + @commit_diff = @g.commit_diff(@project.gpid, params[:changeset]) + @commit_details = @g.commit(@project.gpid, params[:changeset]) render :layout => 'base_projects' end @@ -700,7 +699,8 @@ update (render_404; return false) unless @repository @path = params[:path].is_a?(Array) ? params[:path].join('/') : params[:path].to_s # gitlab端获取默认分支 - gitlab_branchs = $g.project(@project.gpid).default_branch + g = Gitlab.client + gitlab_branchs = g.project(@project.gpid).default_branch @project.gpid.nil? ? (@rev = params[:rev].blank? ? @repository.default_branch : params[:rev].to_s.strip) : (@rev = params[:rev].blank? ? gitlab_branchs : params[:rev].to_s.strip) @rev_to = params[:rev_to] unless @rev.to_s.match(REV_PARAM_RE) && @rev_to.to_s.match(REV_PARAM_RE)