From 857d72c02b98c858f8ef26254371737ca002ba84 Mon Sep 17 00:00:00 2001 From: cxt <853663049@qq.com> Date: Tue, 23 Jul 2019 13:46:59 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=A0=E5=85=A5=E8=AF=BE=E5=A0=82=E7=9A=84?= =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/users_controller.rb | 7 ++ .../courses/_join_private_course.html.erb | 66 ++++++++++++------- app/views/users/join_private_courses.js.erb | 2 + config/routes.rb | 1 + 4 files changed, 53 insertions(+), 23 deletions(-) create mode 100644 app/views/users/join_private_courses.js.erb diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 3fd3759a..61f05495 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -360,6 +360,13 @@ class UsersController < ApplicationController @messages = PrivateMessage.find_by_sql("SELECT ui.* FROM (SELECT * FROM private_messages WHERE STATUS != 2 AND user_id = #{@user.id} ORDER BY id DESC) ui GROUP BY ui.target_id ORDER BY ui.send_time DESC") end + def join_private_courses + @invitation_code = params[:invitation_code] + respond_to do |format| + format.js + end + end + # 我收到的issue def user_receive_issues @receive_issues = "我收到的Issue" diff --git a/app/views/courses/_join_private_course.html.erb b/app/views/courses/_join_private_course.html.erb index 575ded92..453ab3a1 100644 --- a/app/views/courses/_join_private_course.html.erb +++ b/app/views/courses/_join_private_course.html.erb @@ -4,35 +4,35 @@
- <%= form_tag({:controller => 'courses', :action => 'join_course_multi_role'}, :remote => true, :method => :post, :id => 'new-watcher-form') do %> - +
@@ -45,10 +45,30 @@ $("#none_invite_code_notice").hide(); if ($("input[name='role[]']:checked").length >= 1){ $("#none_checked_notice").hide(); - $('#new-watcher-form').submit(); - hideModal(); + $.ajax({ + url: "/api/courses/apply_to_join_course.json", + type: "post", + dataType: 'json', + data: { + student: $("#join_course_role_10").is(":checked") ? 1 : "", + professor: $("#join_course_role_9").is(":checked") ? 1 : "", + assistant_professor: $("#join_course_role_7").is(":checked") ? 1 : "", + invite_code: $("input[name='invite_code']").val(), + }, + success: function(data){ + if(data.status == -1){ + $("#none_checked_notice").html(data.message).show(); + } else if(data.status == 0 && data.message == "成功"){ + window.location = "/courses/"+data.course_id+"/students"; + } else{ + hideModal(); + notice_box(data.message); + } + } + }); + return; }else{ - $("#none_checked_notice").show(); + $("#none_checked_notice").html("请至少选择一个身份").show(); } } } diff --git a/app/views/users/join_private_courses.js.erb b/app/views/users/join_private_courses.js.erb new file mode 100644 index 00000000..35214ee0 --- /dev/null +++ b/app/views/users/join_private_courses.js.erb @@ -0,0 +1,2 @@ +var htmlvalue = "<%= escape_javascript(render :partial => 'courses/join_private_course') %>"; +pop_box_new(htmlvalue,460,220); \ No newline at end of file diff --git a/config/routes.rb b/config/routes.rb index 33b7f4d5..9ab407ee 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1670,6 +1670,7 @@ RedmineApp::Application.routes.draw do ## oauth相关 get 'html_show' get 'switch_user_module' get 'reward_grade' + match 'join_private_courses', :via => [:get, :post] end member do