From 2a971c3bc6e436c8d01e5a6719001ed9429522b5 Mon Sep 17 00:00:00 2001
From: yuanke <249218296@qq.com>
Date: Fri, 24 Jun 2016 11:24:48 +0800
Subject: [PATCH 1/9] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=9C=89=E7=9A=84?=
=?UTF-8?q?=E7=BB=84=E7=BB=87=E6=B7=BB=E5=8A=A0=E6=88=90=E5=91=98=E7=9A=84?=
=?UTF-8?q?BUG?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/views/organizations/setting.html.erb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/app/views/organizations/setting.html.erb b/app/views/organizations/setting.html.erb
index ebf3f5445..3a5a8c175 100644
--- a/app/views/organizations/setting.html.erb
+++ b/app/views/organizations/setting.html.erb
@@ -112,7 +112,7 @@
<%= form_tag url_for(:controller => 'org_member', :action => 'create', :org => @organization),:id=>'org_member_add_form',:remote=>true do |f|%>
<%# if @organization.secdomain_name.nil? %>
- <%= javascript_tag "observeSearchfield('not_org_member_search', null, '#{ escape_javascript host_with_protocol + "/org_member/org_member_autocomplete?" + {:org=> @organization.id}.to_query }')" %>
+ <%= javascript_tag "observeSearchfield('not_org_member_search', null, '#{ escape_javascript "/org_member/org_member_autocomplete?" + {:org=> @organization.id}.to_query }')" %>
<%# else %>
<%#= javascript_tag "observeSearchfield('not_org_member_search', null, '#{ escape_javascript secdomain_with_protocol(@organization.secdomain_name) + "/org_member/org_member_autocomplete?" + {:org=> @organization.id}.to_query }')" %>
<%# end %>
From 64d87b73988657765cd4852b287ea4ffbe87bb95 Mon Sep 17 00:00:00 2001
From: yuanke <249218296@qq.com>
Date: Fri, 24 Jun 2016 13:50:28 +0800
Subject: [PATCH 2/9] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=BB=84=E7=BB=87?=
=?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=88=90=E5=91=98=E7=9A=84BUG?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/controllers/organizations_controller.rb | 8 +++++++
.../org_member_autocomplete.js.erb | 23 +++++++++++++++++++
app/views/organizations/setting.html.erb | 3 ++-
config/routes.rb | 1 +
4 files changed, 34 insertions(+), 1 deletion(-)
create mode 100644 app/views/organizations/org_member_autocomplete.js.erb
diff --git a/app/controllers/organizations_controller.rb b/app/controllers/organizations_controller.rb
index b36ef592d..e052ec20f 100644
--- a/app/controllers/organizations_controller.rb
+++ b/app/controllers/organizations_controller.rb
@@ -642,4 +642,12 @@ class OrganizationsController < ApplicationController
OrgMessage.create(:user_id => params[:user_id], :organization_id => @organization.id, :message_type => 'AgreeApplySubdomain', :message_id => @organization.id, :sender_id => User.current.id, :viewed => 0, :content => params[:org_domain])
end
end
+
+ def org_member_autocomplete
+ @org = Organization.find(params[:org])
+ @flag = params[:flag] || false
+ respond_to do |format|
+ format.js
+ end
+ end
end
diff --git a/app/views/organizations/org_member_autocomplete.js.erb b/app/views/organizations/org_member_autocomplete.js.erb
new file mode 100644
index 000000000..1dbb972f8
--- /dev/null
+++ b/app/views/organizations/org_member_autocomplete.js.erb
@@ -0,0 +1,23 @@
+<% if @org%>
+var checked = $("#principals_for_new_member input:checked").size();
+if(checked > 0)
+{
+ alert('翻页或搜索后将丢失当前选择的用户数据!');
+}
+<% if @flag == "true"%>
+$('#principals_for_new_member').html('<%= escape_javascript(find_user_not_in_current_org_by_name(@org)) %>');
+<% else%>
+$('#principals_for_new_member').html('<%= escape_javascript(find_user_not_in_current_org_by_name(@org)) %>');
+<% end%>
+
+<%end%>
+var collection=$("#principals_for_new_member").children("#principals").children("label");
+collection.css("text-overflow","ellipsis");
+collection.css("white-space","nowrap");
+collection.css("width","200px");
+collection.css("overflow","hidden");
+for(i=0;i 'org_member', :action => 'create', :org => @organization),:id=>'org_member_add_form',:remote=>true do |f|%>
<%# if @organization.secdomain_name.nil? %>
- <%= javascript_tag "observeSearchfield('not_org_member_search', null, '#{ escape_javascript "/org_member/org_member_autocomplete?" + {:org=> @organization.id}.to_query }')" %>
+ <%#= javascript_tag "observeSearchfield('not_org_member_search', null, '#{ escape_javascript host_with_protocol + "/org_member/org_member_autocomplete?" + {:org=> @organization.id}.to_query }')" %>
+ <%= javascript_tag "observeSearchfield('not_org_member_search', null, '#{url_for(:controller => 'organizations', :action => 'org_member_autocomplete', :org=> @organization.id)}')" %>
<%# else %>
<%#= javascript_tag "observeSearchfield('not_org_member_search', null, '#{ escape_javascript secdomain_with_protocol(@organization.secdomain_name) + "/org_member/org_member_autocomplete?" + {:org=> @organization.id}.to_query }')" %>
<%# end %>
diff --git a/config/routes.rb b/config/routes.rb
index ec8fa2337..7008b3ab7 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -104,6 +104,7 @@ RedmineApp::Application.routes.draw do
post 'agree_apply_subdomain'
post 'update_field_by_admin'
post 'reset_update_field_by_admin'
+ get 'org_member_autocomplete'
end
end
From 86a5eccae6731968f43c80cdca011e62f3e2f726 Mon Sep 17 00:00:00 2001
From: yuanke <249218296@qq.com>
Date: Fri, 24 Jun 2016 14:16:39 +0800
Subject: [PATCH 3/9] =?UTF-8?q?=E7=BB=84=E7=BB=87=E8=AE=BE=E7=BD=AE?=
=?UTF-8?q?=E4=B8=AD=E6=B7=BB=E5=8A=A0=E6=88=90=E5=91=98BUG=E8=A7=A3?=
=?UTF-8?q?=E5=86=B3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/controllers/organizations_controller.rb | 8 -------
.../org_member_autocomplete.js.erb | 23 -------------------
app/views/organizations/setting.html.erb | 4 ++--
config/routes.rb | 1 -
public/javascripts/application.js | 1 +
5 files changed, 3 insertions(+), 34 deletions(-)
delete mode 100644 app/views/organizations/org_member_autocomplete.js.erb
diff --git a/app/controllers/organizations_controller.rb b/app/controllers/organizations_controller.rb
index e052ec20f..b36ef592d 100644
--- a/app/controllers/organizations_controller.rb
+++ b/app/controllers/organizations_controller.rb
@@ -642,12 +642,4 @@ class OrganizationsController < ApplicationController
OrgMessage.create(:user_id => params[:user_id], :organization_id => @organization.id, :message_type => 'AgreeApplySubdomain', :message_id => @organization.id, :sender_id => User.current.id, :viewed => 0, :content => params[:org_domain])
end
end
-
- def org_member_autocomplete
- @org = Organization.find(params[:org])
- @flag = params[:flag] || false
- respond_to do |format|
- format.js
- end
- end
end
diff --git a/app/views/organizations/org_member_autocomplete.js.erb b/app/views/organizations/org_member_autocomplete.js.erb
deleted file mode 100644
index 1dbb972f8..000000000
--- a/app/views/organizations/org_member_autocomplete.js.erb
+++ /dev/null
@@ -1,23 +0,0 @@
-<% if @org%>
-var checked = $("#principals_for_new_member input:checked").size();
-if(checked > 0)
-{
- alert('翻页或搜索后将丢失当前选择的用户数据!');
-}
-<% if @flag == "true"%>
-$('#principals_for_new_member').html('<%= escape_javascript(find_user_not_in_current_org_by_name(@org)) %>');
-<% else%>
-$('#principals_for_new_member').html('<%= escape_javascript(find_user_not_in_current_org_by_name(@org)) %>');
-<% end%>
-
-<%end%>
-var collection=$("#principals_for_new_member").children("#principals").children("label");
-collection.css("text-overflow","ellipsis");
-collection.css("white-space","nowrap");
-collection.css("width","200px");
-collection.css("overflow","hidden");
-for(i=0;i 'org_member', :action => 'create', :org => @organization),:id=>'org_member_add_form',:remote=>true do |f|%>
<%# if @organization.secdomain_name.nil? %>
- <%#= javascript_tag "observeSearchfield('not_org_member_search', null, '#{ escape_javascript host_with_protocol + "/org_member/org_member_autocomplete?" + {:org=> @organization.id}.to_query }')" %>
- <%= javascript_tag "observeSearchfield('not_org_member_search', null, '#{url_for(:controller => 'organizations', :action => 'org_member_autocomplete', :org=> @organization.id)}')" %>
+ <%= javascript_tag "observeSearchfield('not_org_member_search', null, '#{ escape_javascript "/org_member/org_member_autocomplete?" + {:org=> @organization.id}.to_query }')" %>
+ <%#= javascript_tag "observeSearchfield('not_org_member_search', null, '#{url_for(:controller => 'organizations', :action => 'org_member_autocomplete', :org=> @organization.id)}')" %>
<%# else %>
<%#= javascript_tag "observeSearchfield('not_org_member_search', null, '#{ escape_javascript secdomain_with_protocol(@organization.secdomain_name) + "/org_member/org_member_autocomplete?" + {:org=> @organization.id}.to_query }')" %>
<%# end %>
diff --git a/config/routes.rb b/config/routes.rb
index 7008b3ab7..ec8fa2337 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -104,7 +104,6 @@ RedmineApp::Application.routes.draw do
post 'agree_apply_subdomain'
post 'update_field_by_admin'
post 'reset_update_field_by_admin'
- get 'org_member_autocomplete'
end
end
diff --git a/public/javascripts/application.js b/public/javascripts/application.js
index 22483c1d5..a2f14332d 100644
--- a/public/javascripts/application.js
+++ b/public/javascripts/application.js
@@ -547,6 +547,7 @@ function observeSearchfield(fieldId, targetId, url) {
$.ajax({
url: url,
type: 'get',
+ dataType: 'jsonp',
data: {q: $this.val()},
success: function(data){ if(targetId) $('#'+targetId).html(data); },
beforeSend: function(){ $this.addClass('ajax-loading'); },
From 9ec1f916b6851bab2894411d78a48b7b395c4f45 Mon Sep 17 00:00:00 2001
From: guange <8863824@gmail.com>
Date: Fri, 24 Jun 2016 15:38:46 +0800
Subject: [PATCH 4/9] .
---
app/controllers/wechats_controller.rb | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/app/controllers/wechats_controller.rb b/app/controllers/wechats_controller.rb
index 15d4ab2e1..78484ca7f 100644
--- a/app/controllers/wechats_controller.rb
+++ b/app/controllers/wechats_controller.rb
@@ -189,9 +189,9 @@ class WechatsController < ActionController::Base
def join_class(params, user)
course = nil
- course = Course.where(qrcode: params[:ticket]) if params[:ticket]
- course = Course.where(invite_code: params[:invite_code]) if params[:invite_code]
- raise "课程不存在" if course.blank?
+ course = Course.where(qrcode: params[:ticket]).first if params[:ticket]
+ course = Course.where(invite_code: params[:invite_code]).first if params[:invite_code]
+ raise "课程不存在" unless course
cs = CoursesService.new
status = cs.join_course(course.invite_code, user)
@@ -200,7 +200,6 @@ class WechatsController < ActionController::Base
raise CoursesService::JoinCourseError.message(status[:state])
end
- course = status[:course]
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
From c522d7160cafbd6b2f3a4537f6db061da3a66722 Mon Sep 17 00:00:00 2001
From: guange <8863824@gmail.com>
Date: Fri, 24 Jun 2016 15:40:27 +0800
Subject: [PATCH 5/9] .
---
app/controllers/wechats_controller.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/app/controllers/wechats_controller.rb b/app/controllers/wechats_controller.rb
index 78484ca7f..c2891e850 100644
--- a/app/controllers/wechats_controller.rb
+++ b/app/controllers/wechats_controller.rb
@@ -194,7 +194,7 @@ class WechatsController < ActionController::Base
raise "课程不存在" unless course
cs = CoursesService.new
- status = cs.join_course(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])
From 9a9f6400da0376131e91a3b5413e554f7b6067b9 Mon Sep 17 00:00:00 2001
From: guange <8863824@gmail.com>
Date: Fri, 24 Jun 2016 15:42:00 +0800
Subject: [PATCH 6/9] .
---
app/controllers/wechats_controller.rb | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/app/controllers/wechats_controller.rb b/app/controllers/wechats_controller.rb
index c2891e850..33561c242 100644
--- a/app/controllers/wechats_controller.rb
+++ b/app/controllers/wechats_controller.rb
@@ -13,7 +13,7 @@ class WechatsController < ActionController::Base
if !uw
return sendBind()
else
- return join_class({invite_code: content}, uw.user)
+ return join_class({invite_code: content}, uw.user, request)
end
rescue => e
logger.error e.inspect
@@ -53,7 +53,7 @@ class WechatsController < ActionController::Base
if !uw
return sendBind()
else
- return join_class({ticket: ticket}, uw.user)
+ return join_class({ticket: ticket}, uw.user, request)
end
rescue => e
logger.error e.inspect
@@ -187,7 +187,7 @@ class WechatsController < ActionController::Base
end
end
- def join_class(params, user)
+ def join_class(params, user, request)
course = nil
course = Course.where(qrcode: params[:ticket]).first if params[:ticket]
course = Course.where(invite_code: params[:invite_code]).first if params[:invite_code]
From 657e5060712eedab31b2b68bb7fa47768d63437c Mon Sep 17 00:00:00 2001
From: guange <8863824@gmail.com>
Date: Fri, 24 Jun 2016 15:45:50 +0800
Subject: [PATCH 7/9] .
---
app/services/courses_service.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/app/services/courses_service.rb b/app/services/courses_service.rb
index 3c74c328c..bdd6564ae 100644
--- a/app/services/courses_service.rb
+++ b/app/services/courses_service.rb
@@ -355,7 +355,7 @@ class CoursesService
#如果加入角色为教师或者教辅,并且当前是学生,或者是要成为教辅,当前不是教辅,或者要成为教师,当前不是教师。那么要发送请求
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 content = #{params[:role]} and course_message_id = #{User.current.id} and course_id = #{course.id} and status = 0 ").count != 0
+ 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])
From 4436e87c8475e3e2776b586ff14399f279150f77 Mon Sep 17 00:00:00 2001
From: guange <8863824@gmail.com>
Date: Fri, 24 Jun 2016 16:35:27 +0800
Subject: [PATCH 8/9] .
---
app/controllers/wechats_controller.rb | 44 ++++++++++++---------------
1 file changed, 19 insertions(+), 25 deletions(-)
diff --git a/app/controllers/wechats_controller.rb b/app/controllers/wechats_controller.rb
index 33561c242..2afb85ace 100644
--- a/app/controllers/wechats_controller.rb
+++ b/app/controllers/wechats_controller.rb
@@ -8,18 +8,7 @@ class WechatsController < ActionController::Base
# default text responder when no other match
on :text do |request, content|
#邀请码
- begin
- uw = user_binded?(request[:FromUserName])
- if !uw
- return sendBind()
- else
- return join_class({invite_code: content}, uw.user, request)
- end
- rescue => e
- logger.error e.inspect
- logger.error e.backtrace.join("\n")
- return request.reply.text e
- end
+ sendBindClass(request, {invite_code: content})
end
# When receive 'help', will trigger this responder
@@ -48,24 +37,13 @@ class WechatsController < ActionController::Base
# When subscribe user scan scene_id in public account
on :scan, with: 'scene_id' do |request, ticket|
- begin
- uw = user_binded?(request[:FromUserName])
- if !uw
- return sendBind()
- else
- return join_class({ticket: ticket}, uw.user, request)
- end
- rescue => e
- logger.error e.inspect
- logger.error e.backtrace.join("\n")
- return request.reply.text e
- end
+ sendBindClass(request, {ticket: ticket})
end
# When no any on :scan responder can match subscribe user scaned scene_id
on :event, with: 'scan' do |request|
if request[:EventKey].present?
- request.reply.text "event scan got EventKey #{request[:EventKey]} Ticket #{request[:Ticket]}"
+ sendBindClass(request, {ticket: request[:Ticket]})
end
end
@@ -161,6 +139,22 @@ class WechatsController < ActionController::Base
end
end
+
+ def sendBindClass(request, params)
+ begin
+ uw = user_binded?(request[:FromUserName])
+ if !uw
+ return sendBind(request)
+ else
+ return join_class(params, uw.user, request)
+ end
+ rescue => e
+ logger.error e.inspect
+ logger.error e.backtrace.join("\n")
+ return request.reply.text e
+ end
+ end
+
def default_msg(request)
uw = user_binded?(request[:FromUserName])
if uw && uw.user
From c39a982093650a6f23049d4ff670d921857d93cf Mon Sep 17 00:00:00 2001
From: guange <8863824@gmail.com>
Date: Fri, 24 Jun 2016 16:51:40 +0800
Subject: [PATCH 9/9] =?UTF-8?q?=E4=BA=8C=E7=BB=B4=E7=A0=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/views/wechats/user_activities.html.erb | 42 +++++++++++-----------
public/assets/wechat/invite_code.html | 3 +-
public/javascripts/wechat/build/app.min.js | 9 ++---
3 files changed, 28 insertions(+), 26 deletions(-)
diff --git a/app/views/wechats/user_activities.html.erb b/app/views/wechats/user_activities.html.erb
index 2b4ebc703..80d254dae 100644
--- a/app/views/wechats/user_activities.html.erb
+++ b/app/views/wechats/user_activities.html.erb
@@ -28,27 +28,27 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+