controllers Test version1.1
This commit is contained in:
commit
64416e7a8a
|
@ -1,7 +1,14 @@
|
|||
class ProjectsController < ApplicationController
|
||||
|
||||
before_action :authenticate
|
||||
skip_before_action :verify_authenticity_token, :only => [:index,:create,:addUsers,:detail]
|
||||
skip_before_action :verify_authenticity_token, :only => [
|
||||
:index,
|
||||
:create,
|
||||
:addUsers,
|
||||
:detail,
|
||||
:update,
|
||||
:deleteUsers
|
||||
]
|
||||
|
||||
#=============================================>获取我的项目列表,user_id保存在session中.
|
||||
def index
|
||||
|
@ -32,80 +39,112 @@ class ProjectsController < ApplicationController
|
|||
#=============================================>创建项目
|
||||
|
||||
def create
|
||||
|
||||
user_id = session[:user_id]
|
||||
params_project = {content: params[:content],name: params[:name]}
|
||||
project = Project.new(params_project)
|
||||
if project.save
|
||||
Projects_user.create(project_id:project.id,user_id:user_id)
|
||||
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
|
||||
|
||||
|
||||
#=============================================>项目添加用户
|
||||
|
||||
def addUsers
|
||||
uid = User.find_by(email:params[:email]).id# 需要添加的用户
|
||||
register = session[:user_id]# 当前用户
|
||||
pid = params[:project_id]
|
||||
# 检查该项目中是否已经有要添加的用户
|
||||
pu_exist=Projects_user.find_by(project_id:pid,user_id:uid)
|
||||
if pu_exist.nil?# 不存在
|
||||
params_pu = {project_id: pid,user_id: uid}
|
||||
pu = Projects_user.new(params_pu)
|
||||
pu.save
|
||||
|
||||
uid = params[:user_id]
|
||||
register = session[:user_id]
|
||||
#username = params[:username]
|
||||
pid = params[:project_id]
|
||||
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}
|
||||
note = Note.new(params_note)
|
||||
note.save!
|
||||
#puts Note.find_by(id: note.id).inspect
|
||||
# now = Datetime.now
|
||||
# note.created_at = now
|
||||
# note.updated_at = now
|
||||
note.save!
|
||||
render :json => {:code => 0}
|
||||
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}
|
||||
else# 存在
|
||||
render json:current_user.errors, status: :unprocessable_entity
|
||||
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
|
||||
#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
|
||||
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
|
||||
|
||||
#=============================================>项目修改
|
||||
def update
|
||||
project = Project.find_by(:id => params[:project][:id])
|
||||
if project.update(project_params)
|
||||
render :json => {:code => 0}
|
||||
else
|
||||
render json:current_user.errors, status: :unprocessable_entity
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
def project_params
|
||||
params.require(:project).permit(:name,:content)
|
||||
params.require(:project).permit(:name,:content,:id)
|
||||
end
|
||||
end
|
|
@ -1,7 +1,7 @@
|
|||
class Project < ActiveRecord::Base
|
||||
has_and_belongs_to_many :users
|
||||
|
||||
validate :require_at_least_on_user,on: :update # 项目中最少要有一个用户
|
||||
validate :require_at_least_on_user,on: :update # 项目中最少要有一个用户
|
||||
|
||||
validates :name, presence: true, length: { minimum: 1, maximum: 50 }, uniqueness: true
|
||||
|
||||
|
|
|
@ -68,7 +68,9 @@ Rails.application.routes.draw do
|
|||
|
||||
get 'projects' => 'projects#index'
|
||||
post 'projects' => 'projects#create'
|
||||
patch 'projects' => 'projects#update'
|
||||
post 'projects/users' => 'projects#addUsers'
|
||||
delete 'projects/users' => 'projects#deleteUsers'
|
||||
get 'projects/detail' => 'projects#detail'
|
||||
|
||||
get 'notes/list' => 'notes#getNotesList'
|
||||
|
|
|
@ -37,7 +37,7 @@
|
|||
//3:通知
|
||||
//4:修改个人信息
|
||||
//5:项目详情 edited by cy
|
||||
var src_array=["project_select","task","share","inform","alter_info","project_detail"];
|
||||
var src_array=["project_select","task","share","inform","user_detail","project_detail"];
|
||||
var src="pages/"+src_array[seq]+".html";
|
||||
if(seq == 5){
|
||||
$("#cy_close").click();
|
||||
|
|
|
@ -62,14 +62,14 @@
|
|||
<div class="form-group row has-feedback">
|
||||
<label for="inputEmail3" class="col-sm-2 col-md-push-2 control-label">项目名称</label>
|
||||
<div class="col-sm-6 col-md-push-2">
|
||||
<input type="text" class="form-control" value="11" id="name" name="name" placeholder="姓名">
|
||||
<input type="text" class="form-control" value="" id="project_name" placeholder="请输入项目名称">
|
||||
</div>
|
||||
</div>
|
||||
<!-- ./form-group -->
|
||||
<div class="form-group row has-feedback">
|
||||
<label for="inputPassword3" class="col-sm-2 col-md-push-2 control-label">项目简介</label>
|
||||
<div class="col-sm-6 col-md-push-2">
|
||||
<input type="text" class="form-control" value="11" id="address" name="address" placeholder="地址">
|
||||
<textarea class="form-control" value="" id="project_content" placeholder="请输入项目简介"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<!-- ./form-group -->
|
||||
|
@ -77,7 +77,7 @@
|
|||
</div>
|
||||
<!-- /.box-body -->
|
||||
<div class="box-footer">
|
||||
<button onclick="cy_submit()" class="btn btn-primary pull-right">提交修改</button>
|
||||
<button onclick="basic_alter()" class="btn btn-primary pull-right">提交修改</button>
|
||||
</div>
|
||||
<!-- /.box-footer -->
|
||||
</div>
|
||||
|
@ -92,7 +92,6 @@
|
|||
</div>
|
||||
<!-- /.box-header -->
|
||||
<!-- form start -->
|
||||
<form role="form">
|
||||
<div class="box-body">
|
||||
<div class="row">
|
||||
<div class="col-lg-9 col-md-push-2">
|
||||
|
@ -104,14 +103,6 @@
|
|||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>杨诏</td>
|
||||
<td><button class="btn btn-primary btn-danger">删除</button></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>杨诏</td>
|
||||
<td><button class="btn btn-primary btn-danger">删除</button></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
@ -120,16 +111,15 @@
|
|||
<!-- /.row -->
|
||||
<div class="form-group row has-feedback">
|
||||
<div class="col-sm-6 col-md-push-2">
|
||||
<input type="text" class="form-control" value="" id="cy_new_user" name="address" placeholder="输入新成员邮箱">
|
||||
<input type="text" class="form-control" value="" id="new_user_email" placeholder="输入新成员邮箱">
|
||||
</div>
|
||||
<div class="col-sm-2 col-md-push-2">
|
||||
<button onclick="cy_addUser()" class="btn btn-primary btn-success">添加成员</button>
|
||||
<button onclick="addUser()" class="btn btn-primary btn-success">添加成员</button>
|
||||
</div>
|
||||
</div>
|
||||
<!-- ./form-group -->
|
||||
</div>
|
||||
<!-- /.box-body -->
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<!-- ./col -->
|
||||
|
@ -158,114 +148,143 @@
|
|||
$.ajax({
|
||||
type:"get",
|
||||
dataType:"json",
|
||||
url:"/projects.json",
|
||||
url:"/projects/detail.json",
|
||||
data:{
|
||||
"id":parent.LoginUserInfo.selectProject
|
||||
},
|
||||
statusCode: {
|
||||
200: function(rpstr) {// 请求成功
|
||||
var robj = eval('('+rpstr+')');
|
||||
if(robj["code"]=="0"){
|
||||
$("#name").val(robj["name"]);
|
||||
$("#address").val(robj["content"]);
|
||||
var users = robj["users"];
|
||||
var data=rpstr.data;
|
||||
if(rpstr.code=="0"){
|
||||
$("#project_name").val(data.name);
|
||||
$("#project_content").val(data.content);
|
||||
var users = data.users;
|
||||
for(var i = 0; i < users.length; ++i){
|
||||
var tduser = $("<td></td>").text(users[i]["nickname"]);
|
||||
var tduser = $("<td></td>").text(users[i].nickname);
|
||||
var btn = $("<button></button>").text("删除");
|
||||
btn.attr("class","btn btn-primary btn-danger");
|
||||
btn.attr("onclick","cy_deleteUser("+users[i]['id']+")");
|
||||
var tdbtn = $("<td></td>").append(btn);
|
||||
btn.attr("onclick","deleteUser("+users[i].id+")");
|
||||
if( users[i].id!=parent.LoginUserInfo.id ){// 不能将自己从项目中删除
|
||||
var tdbtn = $("<td></td>").append(btn);
|
||||
}
|
||||
$("#cy_user_lists").children("tbody").append($("<tr></tr>").append(tduser,tdbtn));
|
||||
}
|
||||
}
|
||||
else{
|
||||
//todo
|
||||
alert("服务器内部出错啦!");
|
||||
}
|
||||
},
|
||||
401:function(){// 未授权
|
||||
|
||||
// TODO
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
function cy_addUser(){
|
||||
$.ajax({
|
||||
type:"post",
|
||||
dataType:"json",
|
||||
url:"/projects.json",
|
||||
data:{
|
||||
"user_id":$("#cy_new_user"),
|
||||
"project_id":parent.LoginUserInfo.selectProject
|
||||
},
|
||||
statusCode: {
|
||||
200: function(rpstr) {// 请求成功
|
||||
var robj = eval('('+rpstr+')');
|
||||
if(robj["code"]==0){
|
||||
window.location.reload();
|
||||
}
|
||||
else{
|
||||
//todo
|
||||
}
|
||||
function addUser(){
|
||||
var new_user_email=$("#new_user_email").val();
|
||||
if( new_user_email.length>0 ){
|
||||
// 邮箱对应的用户是否存在
|
||||
var exist;
|
||||
$.ajax({
|
||||
type: "get",
|
||||
dataType: "json",
|
||||
url:"/users/emailExist.json",
|
||||
async:false,// 强制同步
|
||||
data: {
|
||||
"email":new_user_email
|
||||
},
|
||||
401:function(){// 未授权
|
||||
|
||||
statusCode: {
|
||||
200: function(data) {// 请求成功
|
||||
//alert(data);
|
||||
if( data=='1' )
|
||||
exist=true;
|
||||
else
|
||||
exist=false;
|
||||
},
|
||||
422:function(){
|
||||
alert("输入不符合要求,请重新输入!");
|
||||
},
|
||||
401:function(){// 未授权
|
||||
alert("用户名或密码错误!");
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
if( exist ){// 邮箱存在
|
||||
$.ajax({
|
||||
type:"post",
|
||||
dataType:"json",
|
||||
async:false,// 强制同步
|
||||
url:"/projects/users.json",
|
||||
data:{
|
||||
"email":new_user_email,
|
||||
"project_id":parent.LoginUserInfo.selectProject
|
||||
},
|
||||
statusCode: {
|
||||
200: function(response) {// 请求成功
|
||||
alert("添加成功!");
|
||||
window.location.reload();
|
||||
},
|
||||
422:function(){
|
||||
alert("用户已经在项目中!")
|
||||
}
|
||||
}
|
||||
});
|
||||
}else{// 邮箱不存在
|
||||
alert("该邮箱对应的用户不存在!")
|
||||
}
|
||||
}else{
|
||||
alert("请输入完整!");
|
||||
}
|
||||
}
|
||||
function cy_deleteUser(id){
|
||||
return;
|
||||
function deleteUser(id){
|
||||
$.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("用户不在项目中!")
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
function cy_submit(){
|
||||
$.ajax({
|
||||
type:"patch",
|
||||
dataType:"json",
|
||||
url:"/projects.json",
|
||||
data:{
|
||||
"project_id":parent.LoginUserInfo.selectProject,
|
||||
"name":$("#name").val(),
|
||||
"content":$("#address").val()
|
||||
//todo (write todo for find, need to be edited)
|
||||
},
|
||||
statusCode: {
|
||||
200: function(rpstr) {// 请求成功
|
||||
var robj = eval('('+rpstr+')');
|
||||
if(robj["code"]==0){
|
||||
window.location.reload();
|
||||
function basic_alter(){
|
||||
var project_content=$("#project_content").val();
|
||||
var project_name=$("#project_name").val();
|
||||
if( project_name.length>0 && project_content.length>0 ){
|
||||
$.ajax({
|
||||
type:"patch",
|
||||
dataType:"json",
|
||||
url:"/projects.json",
|
||||
data:{
|
||||
"project[id]":parent.LoginUserInfo.selectProject,
|
||||
"project[name]":project_name,
|
||||
"project[content]":project_content
|
||||
},
|
||||
statusCode: {
|
||||
200: function(rpstr) {// 请求成功
|
||||
var robj = rpstr;
|
||||
if(robj["code"]==0){
|
||||
alert("修改成功!");
|
||||
window.location.reload();
|
||||
}
|
||||
},
|
||||
422:function(){
|
||||
alert("输入不符合要求,请重新输入!");
|
||||
}
|
||||
else{
|
||||
//todo
|
||||
}
|
||||
},
|
||||
401:function(){// 未授权
|
||||
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}else{
|
||||
alert("请输入完整!");
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
||||
|
|
|
@ -183,11 +183,12 @@
|
|||
statusCode: {
|
||||
200: function(data) {// 请求成功
|
||||
alert("更新成功!");
|
||||
window.location.reload();
|
||||
// alter
|
||||
LoginUserInfo.name=name;
|
||||
LoginUserInfo.email=email;
|
||||
LoginUserInfo.phone=phone;
|
||||
parent.LoginUserInfo.name=name;
|
||||
parent.LoginUserInfo.email=email;
|
||||
parent.LoginUserInfo.phone=phone;
|
||||
window.location.reload();
|
||||
|
||||
},
|
||||
401:function(){// 未授权
|
||||
alert("未登录!");
|
Loading…
Reference in New Issue