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] =?UTF-8?q?1.=E4=BC=98=E5=8C=96=E5=8A=A0=E5=85=A5=E8=AF=BE?= =?UTF-8?q?=E7=A8=8B=E9=A1=B5=E9=9D=A2=202.=E5=A2=9E=E5=8A=A0=E6=98=AF?= =?UTF-8?q?=E5=90=A6=E5=B7=B2=E7=BB=8F=E5=8A=A0=E5=85=A5=E8=AF=BE=E7=A8=8B?= =?UTF-8?q?=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