From 273234ddaa1024725a3a25d7cc29678052903bb6 Mon Sep 17 00:00:00 2001 From: Yang Zhao Date: Sun, 1 Jan 2017 15:07:16 +0000 Subject: [PATCH] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E5=88=A0=E9=99=A4=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E5=8A=9F=E8=83=BD=E5=AE=8C=E6=88=90=EF=BC=9B=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E9=A1=B9=E7=9B=AE=E5=88=A0=E9=99=A4=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=EF=BC=9B=E4=BF=AE=E6=94=B9=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E6=8E=A5=E5=8F=A3bug=EF=BC=9B=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E9=A1=B9=E7=9B=AE=E5=88=97=E8=A1=A8bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/projects_controller.rb | 116 +++++++++++++++---------- config/routes.rb | 1 + public/pages/project_detail.html | 26 +++--- public/pages/project_select.html | 3 +- 4 files changed, 84 insertions(+), 62 deletions(-) diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index 5a56ea4..2546700 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -1,7 +1,14 @@ class ProjectsController < ApplicationController before_action :authenticate - skip_before_action :verify_authenticity_token, :only => [:index,:create,:addUsers,:detail,:update] + skip_before_action :verify_authenticity_token, :only => [ + :index, + :create, + :addUsers, + :detail, + :update, + :deleteUsers + ] #=============================================>获取我的项目列表,user_id保存在session中. def index @@ -32,21 +39,15 @@ class ProjectsController < ApplicationController #=============================================>创建项目 def create - #Todo - user_id = session[:user_id] - user = User.find_by(id: user_id) - params_project = {content: params[:content],name: params[:name]} - project = Project.new(params_project) - project.users << user - project.save - if project.save - Projects_user.create(project_id:project.id,user_id:uid) - render status: :created, nothing: true - else - render json: project.errors, status: :unprocessable_entity - end - #render :json => {:code => 0} - end + uid = session[:user_id] + project = Project.new(project_params) + if project.save + Projects_user.create(project_id:project.id,user_id:uid) + render status: :created, nothing: true + else + render json: project.errors, status: :unprocessable_entity + end + end #=============================================>项目添加用户 @@ -61,6 +62,7 @@ class ProjectsController < ApplicationController params_pu = {project_id: pid,user_id: uid} pu = Projects_user.new(params_pu) pu.save + content = User.find_by(id: register).name + "邀请您进入项目" + Project.find_by(id: pid).name puts content params_note = {user_id: uid,content: content,category: 2,project_id: pid} @@ -72,39 +74,63 @@ class ProjectsController < ApplicationController end end + #=============================================>项目删除用户 + def deleteUsers + uid = params[:user_id]# 需要添加的用户 + register = session[:user_id]# 当前用户 + pid = params[:project_id] + # 检查该项目中是否已经有要添加的用户 + projects_user=Projects_user.find_by(project_id:pid,user_id:uid) + if projects_user.nil?# 不存在 + render json:current_user.errors, status: :unprocessable_entity + end + # 存在 + puts projects_user.user_id + puts projects_user.project_id + Projects_user.where(project_id:pid,user_id:uid).delete_all + + content = User.find_by(id: register).name + "把您从项目" + Project.find_by(id: pid).name+"中删除" + puts content + params_note = {user_id: uid,content: content,category: 2,project_id: pid} + note = Note.new(params_note) + note.save! + + render :json => {:code => 0} + end + #=============================================>项目详情 def detail - #Todo - pid = params[:id] - project = Project.find_by(id: pid) - #uid = Projects_user.where(:project_id => pid) - users = [] - projects_users = Projects_user.where("project_id = ?",pid).all - - projects_users.each do |projects_user| - uid = projects_user.user_id - i = User.find_by(id: uid) - users += [{ - :nickname => i.name, - :id => i.id - }] - end - #puts users.inspect - # Users.find(uid).each do |i| - # users += [{ - # :nickname => i.name, - # :id => i.id - # }] - # end - render :json => { - :code => 0, - :data => { - :name => project.name, - :content => project.content, - :users => users + #Todo + pid = params[:id] + project = Project.find_by(id: pid) + #uid = Projects_user.where(:project_id => pid) + users = [] + projects_users = Projects_user.where("project_id = ?",pid).all + + projects_users.each do |projects_user| + uid = projects_user.user_id + i = User.find_by(id: uid) + users += [{ + :nickname => i.name, + :id => i.id + }] + end + #puts users.inspect + # Users.find(uid).each do |i| + # users += [{ + # :nickname => i.name, + # :id => i.id + # }] + # end + render :json => { + :code => 0, + :data => { + :name => project.name, + :content => project.content, + :users => users + } } - } end #=============================================>项目修改 diff --git a/config/routes.rb b/config/routes.rb index 740ee37..e7be66c 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -70,6 +70,7 @@ Rails.application.routes.draw do post 'projects' => 'projects#create' patch 'projects' => 'projects#update' post 'projects/users' => 'projects#addUsers' + delete 'projects/users' => 'projects#deleteUsers' get 'projects/detail' => 'projects#detail' get 'missions/project/status' => 'missions#getlist' diff --git a/public/pages/project_detail.html b/public/pages/project_detail.html index 44b76d3..e90c312 100644 --- a/public/pages/project_detail.html +++ b/public/pages/project_detail.html @@ -163,8 +163,10 @@ var tduser = $("").text(users[i].nickname); var btn = $("").text("删除"); btn.attr("class","btn btn-primary btn-danger"); - btn.attr("onclick","cy_deleteUser("+users[i].id+")"); - var tdbtn = $("").append(btn); + btn.attr("onclick","deleteUser("+users[i].id+")"); + if( users[i].id!=parent.LoginUserInfo.id ){// 不能将自己从项目中删除 + var tdbtn = $("").append(btn); + } $("#cy_user_lists").children("tbody").append($("").append(tduser,tdbtn)); } } @@ -233,31 +235,23 @@ }else{ alert("请输入完整!"); } - // 添加用户 } function deleteUser(id){ - return; $.ajax({ type:"delete", dataType:"json", - url:"/projects.json", + url:"/projects/users.json", data:{ "project_id":parent.LoginUserInfo.selectProject, "user_id":id - //todo (write todo for find, need to be edited) }, statusCode: { - 200: function(rpstr) {// 请求成功 - var robj = eval('('+rpstr+')'); - if(robj["code"]==0){ - window.location.reload(); - } - else{ - //todo - } + 200: function(response) {// 请求成功 + alert("删除成功!"); + window.location.reload(); }, - 401:function(){// 未授权 - + 422:function(){ + alert("用户不在项目中!") } } }); diff --git a/public/pages/project_select.html b/public/pages/project_select.html index 24fd144..6702d99 100644 --- a/public/pages/project_select.html +++ b/public/pages/project_select.html @@ -188,6 +188,7 @@ var jstr = htmlobj.responseText; var robj = eval('('+jstr+')'); console.log(jstr); + var count=0; if(robj["code"]==0){ var data = robj["data"]; for(var i=data.length-1;i>=0;--i){ @@ -208,7 +209,7 @@ tp.find("#cy_template_shares_count").attr("id","cy_shares_count_"+id); tp.find("#cy_template_enterbtn").attr("id","cy_enter_"+id); - tp.find("#cy_template_bg").attr("class","widget-user-header "+bg_color[Math.floor(Math.random()*4)]); + tp.find("#cy_template_bg").attr("class","widget-user-header "+bg_color[(count++)%4]); tp.find("#cy_template_bg").attr("id","cy_bg_"+id);