From 4c41c10e0d3d6fd67ed53a943825e0843f3821eb Mon Sep 17 00:00:00 2001
From: sw <939547590@qq.com>
Date: Thu, 16 Oct 2014 10:56:13 +0800
Subject: [PATCH 1/4] =?UTF-8?q?=E9=A6=96=E9=A1=B5=E5=A2=9E=E5=8A=A0?=
=?UTF-8?q?=E5=8A=A0=E5=85=A5=E8=AF=BE=E7=A8=8B=E6=8C=89=E9=92=AE=EF=BC=8C?=
=?UTF-8?q?=E7=94=A8=E6=88=B7=E5=8F=AF=E4=BB=A5=E8=BE=93=E5=85=A5=E8=AF=BE?=
=?UTF-8?q?=E7=A8=8BID=E4=BB=A5=E5=8F=8A=E8=AF=BE=E7=A8=8B=E5=AF=86?=
=?UTF-8?q?=E7=A0=81=E5=8A=A0=E5=85=A5=E5=AF=B9=E5=BA=94=E7=9A=84=E8=AF=BE?=
=?UTF-8?q?=E7=A8=8B=EF=BC=8C=E5=B7=B2=E8=BF=87=E6=9C=9F=E8=AF=BE=E7=A8=8B?=
=?UTF-8?q?=E4=BC=9A=E7=BB=99=E5=87=BA=E5=AF=B9=E5=BA=94=E6=8F=90=E7=A4=BA?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/controllers/courses_controller.rb | 10 +++-
.../courses/_join_private_course.html.erb | 59 +++++++++++++++++++
app/views/courses/join_private_courses.js.erb | 3 +
app/views/layouts/base_courses.html.erb | 4 +-
app/views/projects/_new_join.html.erb | 1 +
app/views/welcome/course.html.erb | 2 +
config/routes.rb | 6 +-
7 files changed, 81 insertions(+), 4 deletions(-)
create mode 100644 app/views/courses/_join_private_course.html.erb
create mode 100644 app/views/courses/join_private_courses.js.erb
diff --git a/app/controllers/courses_controller.rb b/app/controllers/courses_controller.rb
index 01945358d..ef9204f04 100644
--- a/app/controllers/courses_controller.rb
+++ b/app/controllers/courses_controller.rb
@@ -14,7 +14,7 @@ class CoursesController < ApplicationController
menu_item l(:label_sort_by_influence), :only => :index
before_filter :can_show_course, :except => []
- before_filter :find_course, :except => [ :index, :search,:list, :new,:join,:unjoin, :create, :copy, :statistics, :new_join, :course, :enterprise_course, :course_enterprise,:view_homework_attaches]
+ before_filter :find_course, :except => [ :index, :search,:list, :new,:join,:unjoin, :create, :copy, :statistics, :new_join, :course, :enterprise_course, :course_enterprise,:view_homework_attaches,:join_private_courses]
before_filter :authorize_course, :only => [:show, :settings, :edit, :update, :modules, :close, :reopen, :view_homework_attaches, :course]
before_filter :authorize_course_global, :only => [:view_homework_attaches, :new,:create]
before_filter :require_admin, :only => [:copy, :archive, :unarchive, :destroy, :calendar]
@@ -60,6 +60,14 @@ class CoursesController < ApplicationController
end
end
+ def join_private_courses
+
+ respond_to do |format|
+ # format.html { redirect_to_referer_or {render :text => (watching ? 'Watcher added.' : 'Watcher removed.'), :layout => true}}
+ format.js
+ end
+ end
+
#更新课程信息
def update
@course.safe_attributes = params[:course]
diff --git a/app/views/courses/_join_private_course.html.erb b/app/views/courses/_join_private_course.html.erb
new file mode 100644
index 000000000..2c616027e
--- /dev/null
+++ b/app/views/courses/_join_private_course.html.erb
@@ -0,0 +1,59 @@
+
+
+
+
请输入课程密码
+
+<%= form_tag({:controller => 'courses',
+ :action => 'join'},
+ :remote => true,
+ :method => :post,
+ :id => 'new-watcher-form') do %>
+
+ 课程ID:
+ <%= text_field_tag 'object_id', nil, :style=>'width:80%'%>
+
+
+ 密码:
+ <%= text_field_tag 'course_password', nil, :style=>'width:80%'%>
+
+
+
+ <%= submit_tag l(:label_new_join), :name => nil, :class => "bid_btn", :onclick => "hideModal(this);" %>
+ <%= submit_tag l(:button_cancel), :name => nil, :class => "bid_btn", :onclick => "hideModal(this);", :type => 'button' %>
+
+<% end %>
diff --git a/app/views/courses/join_private_courses.js.erb b/app/views/courses/join_private_courses.js.erb
new file mode 100644
index 000000000..71c7e62b7
--- /dev/null
+++ b/app/views/courses/join_private_courses.js.erb
@@ -0,0 +1,3 @@
+$('#ajax-modal').html('<%= escape_javascript(render :partial => 'join_private_course') %>');
+showModal('ajax-modal', '400px');
+$('#ajax-modal').addClass('new-watcher');
\ No newline at end of file
diff --git a/app/views/layouts/base_courses.html.erb b/app/views/layouts/base_courses.html.erb
index 91ab68fdf..305e09abe 100644
--- a/app/views/layouts/base_courses.html.erb
+++ b/app/views/layouts/base_courses.html.erb
@@ -80,9 +80,9 @@
<% else %>
<%= join_in_course(@course, User.current) %>
<% end %>
- <% unless User.current.member_of_course?(@course) %>
+ <%# unless User.current.member_of_course?(@course) %>
- <% end %>
+ <%# end %>
<% end %>
diff --git a/app/views/projects/_new_join.html.erb b/app/views/projects/_new_join.html.erb
index cc83ac80d..e74ddeba0 100644
--- a/app/views/projects/_new_join.html.erb
+++ b/app/views/projects/_new_join.html.erb
@@ -56,6 +56,7 @@
<%= submit_tag l(:label_new_join), :name => nil, :class => "bid_btn", :onclick => "hideModal(this);" %>
<%= submit_tag l(:button_cancel), :name => nil, :class => "bid_btn", :onclick => "hideModal(this);", :type => 'button' %>
+
<% end %>
diff --git a/app/views/welcome/course.html.erb b/app/views/welcome/course.html.erb
index ea8963f7e..b3c1341a4 100644
--- a/app/views/welcome/course.html.erb
+++ b/app/views/welcome/course.html.erb
@@ -127,6 +127,8 @@
<%= l(:label_issue_feedback_activities)%>
<%= link_to l(:label_my_question), newbie_send_path, {:class => 'orangeButton idea_btn', :style => "color: #EEEEEE"} %>
<%= link_to l(:label_my_feedback), suggestion_send_path, {:class => 'orangeButton idea_btn', :style => "color: #EEEEEE"} %>
+
+ <%#= link_to "加入私有课程", join_private_courses_courses_path ,:remote => true %>
<%= link_to "更多>>", forums_path %>
diff --git a/config/routes.rb b/config/routes.rb
index dedf15dfe..f67e63419 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -31,7 +31,6 @@ RedmineApp::Application.routes.draw do
#match '/contests/:id/contestnotifications', :controller => 'contestnotifications', :action => 'index'
resources :homework_users
-
resources :no_uses
delete 'no_uses', :to => 'no_uses#delete'
@@ -626,7 +625,12 @@ RedmineApp::Application.routes.draw do
get 'member', :controller => 'courses', :action => 'member', :as => 'member'
post 'finishcourse'
post 'restartcourse'
+
end
+ collection do
+ match 'join_private_courses', :via => [:get, :post]
+ end
+
match '/member', :to => 'courses#member', :as => 'member', :via => :get
resources :boards
resources :files, :only => [:index, :new, :create] do
From b696aa3362627faf0022147a15b224ce9d7d81d7 Mon Sep 17 00:00:00 2001
From: sw <939547590@qq.com>
Date: Thu, 16 Oct 2014 11:33:11 +0800
Subject: [PATCH 2/4] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=8A=A0=E5=85=A5?=
=?UTF-8?q?=E8=AF=BE=E7=A8=8B=E7=95=8C=E9=9D=A2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/views/courses/_join_private_course.html.erb | 4 ++--
app/views/welcome/_more_course.html.erb | 2 ++
app/views/welcome/course.html.erb | 2 +-
3 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/app/views/courses/_join_private_course.html.erb b/app/views/courses/_join_private_course.html.erb
index 2c616027e..592c79ba1 100644
--- a/app/views/courses/_join_private_course.html.erb
+++ b/app/views/courses/_join_private_course.html.erb
@@ -36,7 +36,7 @@
}
-请输入课程密码
+请输入相关信息
<%= form_tag({:controller => 'courses',
:action => 'join'},
@@ -48,7 +48,7 @@
<%= text_field_tag 'object_id', nil, :style=>'width:80%'%>
- 密码:
+ 密码 :
<%= text_field_tag 'course_password', nil, :style=>'width:80%'%>
diff --git a/app/views/welcome/_more_course.html.erb b/app/views/welcome/_more_course.html.erb
index c871e7f97..d48050a63 100644
--- a/app/views/welcome/_more_course.html.erb
+++ b/app/views/welcome/_more_course.html.erb
@@ -3,6 +3,8 @@
<%= link_to(l(:label_course_new), {:controller => 'courses', :action => 'new'},
:class => 'icon icon-add') if User.current.allowed_to?(:add_course,nil, :global => true) %>
<% end %>
+
<% end %>
+<%= link_to "加入课程", join_private_courses_courses_path ,:remote => true, :class => 'icon icon-add' %>
<%= link_to l(:label_more), {:controller => 'courses', :action => 'index', :school_id => school_id} %>
\ No newline at end of file
diff --git a/app/views/welcome/course.html.erb b/app/views/welcome/course.html.erb
index b3c1341a4..b9eec5014 100644
--- a/app/views/welcome/course.html.erb
+++ b/app/views/welcome/course.html.erb
@@ -128,7 +128,7 @@
<%= link_to l(:label_my_question), newbie_send_path, {:class => 'orangeButton idea_btn', :style => "color: #EEEEEE"} %>
<%= link_to l(:label_my_feedback), suggestion_send_path, {:class => 'orangeButton idea_btn', :style => "color: #EEEEEE"} %>
- <%#= link_to "加入私有课程", join_private_courses_courses_path ,:remote => true %>
+
<%= link_to "更多>>", forums_path %>
From 6a339341224a48b06b3e675f3f3c7310cf9e2ae0 Mon Sep 17 00:00:00 2001
From: sw <939547590@qq.com>
Date: Thu, 16 Oct 2014 11:55:42 +0800
Subject: [PATCH 3/4] =?UTF-8?q?1.=E4=BC=98=E5=8C=96=E5=8A=A0=E5=85=A5?=
=?UTF-8?q?=E8=AF=BE=E7=A8=8B=E9=A1=B5=E9=9D=A2=202.=E5=A2=9E=E5=8A=A0?=
=?UTF-8?q?=E6=98=AF=E5=90=A6=E5=B7=B2=E7=BB=8F=E5=8A=A0=E5=85=A5=E8=AF=BE?=
=?UTF-8?q?=E7=A8=8B=E7=9A=84=E5=88=A4=E6=96=AD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/controllers/courses_controller.rb | 28 ++++++++++++-------
.../courses/_join_private_course.html.erb | 3 +-
app/views/courses/_set_join.js.erb | 10 +++++--
app/views/welcome/_more_course.html.erb | 2 +-
4 files changed, 29 insertions(+), 14 deletions(-)
diff --git a/app/controllers/courses_controller.rb b/app/controllers/courses_controller.rb
index ef9204f04..4ddf5186d 100644
--- a/app/controllers/courses_controller.rb
+++ b/app/controllers/courses_controller.rb
@@ -26,21 +26,31 @@ class CoursesController < ApplicationController
def join
if User.current.logged?
course = Course.find(params[:object_id])
- if params[:course_password] == course.password
- members = []
- members << Member.new(:role_ids => [10], :user_id => User.current.id)
- course.members << members
-
- StudentsForCourse.create(:student_id => User.current.id, :course_id => params[:object_id])
- @state = 0
+ unless User.current.member_of_course? course
+ if params[:course_password] == course.password
+ members = []
+ members << Member.new(:role_ids => [10], :user_id => User.current.id)
+ course.members << members
+
+ StudentsForCourse.create(:student_id => User.current.id, :course_id => params[:object_id])
+ @state = 0
+ else
+ @state = 1
+ end
else
- @state = 1
+ @state = 3
end
end
respond_to do |format|
# format.html { redirect_to_referer_or {render :text => (watching ? 'Watcher added.' : 'Watcher removed.'), :layout => true}}
format.js { render :partial => 'set_join', :locals => {:user => User.current, :course => Course.find(params[:object_id]), :object_id => params[:object_id]} }
end
+ rescue Exception => e
+ @state = 4
+ respond_to do |format|
+ # format.html { redirect_to_referer_or {render :text => (watching ? 'Watcher added.' : 'Watcher removed.'), :layout => true}}
+ format.js { render :partial => 'set_join', :locals => {:user => User.current, :course => nil, :object_id => nil} }
+ end
end
def unjoin
@@ -61,9 +71,7 @@ class CoursesController < ApplicationController
end
def join_private_courses
-
respond_to do |format|
- # format.html { redirect_to_referer_or {render :text => (watching ? 'Watcher added.' : 'Watcher removed.'), :layout => true}}
format.js
end
end
diff --git a/app/views/courses/_join_private_course.html.erb b/app/views/courses/_join_private_course.html.erb
index 592c79ba1..60223922f 100644
--- a/app/views/courses/_join_private_course.html.erb
+++ b/app/views/courses/_join_private_course.html.erb
@@ -36,7 +36,7 @@
}
-请输入相关信息
+加入公开课程或私有课程
<%= form_tag({:controller => 'courses',
:action => 'join'},
@@ -46,6 +46,7 @@
课程ID:
<%= text_field_tag 'object_id', nil, :style=>'width:80%'%>
+ (课程ID是课程的网址中出现的序号)
密码 :
diff --git a/app/views/courses/_set_join.js.erb b/app/views/courses/_set_join.js.erb
index a4b5dd3c6..8b5c1fb36 100644
--- a/app/views/courses/_set_join.js.erb
+++ b/app/views/courses/_set_join.js.erb
@@ -1,4 +1,6 @@
-$("#<%=object_id%>").replaceWith('<%= escape_javascript join_in_course_for_list(course, user) %>');
+<% if object_id%>
+ $("#<%=object_id%>").replaceWith('<%= escape_javascript join_in_course_for_list(course, user) %>');
+<% end %>
<% if @state %>
<% if @state == 0 %>
alert("加入成功")
@@ -6,7 +8,11 @@ $("#<%=object_id%>").replaceWith('<%= escape_javascript join_in_course_for_list(
alert("密码错误")
<% elsif @state == 2 %>
alert("课程已过期\n请联系课程管理员重启课程。(在配置课程处)")
- <% else %>
+ <% elsif @state == 3 %>
+ alert("您已经加入了课程");
+ <% elsif @state == 3 %>
+ alert("您已经的课程不存在")
+ <% else %>
alert("未知错误,请稍后再试")
<% end %>
<% end %>
diff --git a/app/views/welcome/_more_course.html.erb b/app/views/welcome/_more_course.html.erb
index d48050a63..a5464c27c 100644
--- a/app/views/welcome/_more_course.html.erb
+++ b/app/views/welcome/_more_course.html.erb
@@ -5,6 +5,6 @@
<% end %>
<% end %>
-<%= link_to "加入课程", join_private_courses_courses_path ,:remote => true, :class => 'icon icon-add' %>
+<%= link_to l(:label_course_join_student), join_private_courses_courses_path ,:remote => true, :class => 'icon icon-add' %>
<%= link_to l(:label_more), {:controller => 'courses', :action => 'index', :school_id => school_id} %>
\ No newline at end of file
From 496ad85469942eca9a6548797456a94e54c12366 Mon Sep 17 00:00:00 2001
From: sw <939547590@qq.com>
Date: Thu, 16 Oct 2014 14:48:33 +0800
Subject: [PATCH 4/4] 1
---
app/controllers/courses_controller.rb | 1 -
1 file changed, 1 deletion(-)
diff --git a/app/controllers/courses_controller.rb b/app/controllers/courses_controller.rb
index 4ddf5186d..696511100 100644
--- a/app/controllers/courses_controller.rb
+++ b/app/controllers/courses_controller.rb
@@ -31,7 +31,6 @@ class CoursesController < ApplicationController
members = []
members << Member.new(:role_ids => [10], :user_id => User.current.id)
course.members << members
-
StudentsForCourse.create(:student_id => User.current.id, :course_id => params[:object_id])
@state = 0
else