项目创建和项目列表接口修复

This commit is contained in:
Yang Zhao 2017-01-01 11:23:26 +00:00
parent f457a7c18d
commit 27ebee5950
6 changed files with 36 additions and 37 deletions

View File

@ -4,20 +4,20 @@ class ProjectsController < ApplicationController
skip_before_action :verify_authenticity_token, :only => [:index,:create,:addUsers,:detail] skip_before_action :verify_authenticity_token, :only => [:index,:create,:addUsers,:detail]
#获取我的项目列表user_id保存在session中. #获取我的项目列表user_id保存在session中.
def index def index
#Todo #Todo
uid = session[:user_id] uid = session[:user_id]
pid = Projects_user.find_by(project_id: uid) data=[]
Projects_user.where(:user_id => uid).each do |i|
pid=i.project_id
p=Project.find_by(id:pid)
mc = Mission.where(:project_id => pid).size mc = Mission.where(:project_id => pid).size
uc = Projects_user.where(:project_id => pid).size uc = Projects_user.where(:project_id => pid).size
sc = Share.where(:project_id => pid).size sc = Share.where(:project_id => pid).size
data = []
Project.find(pid) do |i|
data+=[{ data+=[{
:id => i.id, :id => pid,
:name => i.name, :name => p.name,
:content => i.content, :content => p.content,
:mission_count => mc, :mission_count => mc,
:users_count => uc, :users_count => uc,
:shares_count => sc :shares_count => sc
@ -30,22 +30,15 @@ class ProjectsController < ApplicationController
end end
#创建项目 #创建项目
def create def create
#Todo uid = session[:user_id]
project = Project.new() project = Project.new(project_params)
project.content = params[:content] if project.save
project.name = params[:name] Projects_user.create(project_id:project.id,user_id:uid)
now = Time.new render status: :created, nothing: true
project.created_at = now else
project.updated_at = now render json: project.errors, status: :unprocessable_entity
project.save! end
# 将自己加入项目
pu = Project_user.new()
pu.project_id = project.id
pu.user_id = session[:user_id].to_i
pu.save!
render :json => {:code => 0}
end end
#项目添加用户 #项目添加用户
@ -94,5 +87,8 @@ class ProjectsController < ApplicationController
} }
} }
end end
private
def project_params
params.require(:project).permit(:name,:content)
end
end end

View File

@ -1,7 +1,7 @@
class Project < ActiveRecord::Base class Project < ActiveRecord::Base
has_and_belongs_to_many :users has_and_belongs_to_many :users
validate :require_at_least_on_user,on:addUsers # 项目中最少要有一个用户 validate :require_at_least_on_user,on: :update # 项目中最少要有一个用户
validates :name, presence: true, length: { minimum: 1, maximum: 50 }, uniqueness: true validates :name, presence: true, length: { minimum: 1, maximum: 50 }, uniqueness: true
private private

View File

@ -9,9 +9,6 @@ users = [
{:name => '杨诏', :password => '123123123', :email => 'lucio.yang@qq.com', :phone => '15652591529', :created_at => "2016/12/27", :updated_at => "2016/12/27"}, {:name => '杨诏', :password => '123123123', :email => 'lucio.yang@qq.com', :phone => '15652591529', :created_at => "2016/12/27", :updated_at => "2016/12/27"},
{:name => '陈翊', :password => '123456', :email => '1085730215@qq.com', :phone => '18269771988', :created_at => "2016/12/28", :updated_at => "2016/12/27"} {:name => '陈翊', :password => '123456', :email => '1085730215@qq.com', :phone => '18269771988', :created_at => "2016/12/28", :updated_at => "2016/12/27"}
] ]
projects = [
{:id=>'1001',:name => 'AAAA',:content => 'i like helloworld',:mission_count => '20',:users_count => '15',:shares_count => '15'}
]
users.each do |user| users.each do |user|
User.create!(user) User.create!(user)

View File

@ -174,6 +174,7 @@
type: "get", type: "get",
dataType: "json", dataType: "json",
url:"/session.json", url:"/session.json",
async: false,
statusCode: { statusCode: {
200: function(data) {// 请求成功 200: function(data) {// 请求成功
$("#name1").text(data.name); $("#name1").text(data.name);
@ -192,6 +193,9 @@
} }
}); });
}); });
if(getProjectId()==null){
window.location="pages/project_select.html";
}
function logout(){ function logout(){
$.ajax({ $.ajax({
type: "delete", type: "delete",

View File

@ -1,7 +1,4 @@
function initCurrent(){ function initCurrent(){
if(getProjectId()==null){
window.location="pages/project_select.html";
}
LoginUserInfo={ LoginUserInfo={
selectProject:getProjectId(), selectProject:getProjectId(),
name:'', name:'',

View File

@ -230,22 +230,27 @@
}); });
}); });
$("#creat_project").click(function(){ $("#creat_project").click(function(){
var pName=$("#exampleName").val();
var pContent=$("#exampleTextarea").val();
$.ajax({ $.ajax({
type:"post", type:"post",
dataType:"json", dataType:"json",
url:"/projects.json", url:"/projects.json",
data:{ data:{
"name":$("#exampleName").val(), "project[name]":pName,
"content":$("#exampleTextarea").val() "project[content]":pContent
}, },
statusCode: { statusCode: {
200: function() {// 请求成功 201: function() {// 请求成功
alert("创建成功!"); alert("创建成功!");
window.location.reload(); window.location.reload();
}, },
401:function(){// 未授权 401:function(){// 未授权
alert("未登录!"); alert("未登录!");
window.location.href="login.html"; window.location.href="login.html";
},
422:function(){
alert("项目名重复!");
} }
} }
}); });