add co-author db and curd page, but it can't destory it...
This commit is contained in:
parent
6a9426c9c8
commit
d502f561ef
|
@ -0,0 +1,71 @@
|
||||||
|
class Desktop::CoAuthorsController < ApplicationController
|
||||||
|
def index
|
||||||
|
@co_authors = CoAuthor.where(name_id: current_user.id)
|
||||||
|
|
||||||
|
respond_to do |format|
|
||||||
|
format.html { render :layout => false}
|
||||||
|
format.json { render json: @co_authors }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def show
|
||||||
|
@co_author = CoAuthor.find(params[:id])
|
||||||
|
|
||||||
|
respond_to do |format|
|
||||||
|
format.html { redirect_to desktop_co_authors_url, :layout => false }
|
||||||
|
format.json { render json: @co_author }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def new
|
||||||
|
@co_author = CoAuthor.new
|
||||||
|
|
||||||
|
respond_to do |format|
|
||||||
|
format.html { render :layout => false}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def edit
|
||||||
|
@co_author = CoAuthor.find(params[:id])
|
||||||
|
respond_to do |format|
|
||||||
|
format.html { render :layout => false}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def create
|
||||||
|
@co_author = CoAuthor.new(params[:co_author])
|
||||||
|
@co_author.name_id= current_user.id
|
||||||
|
|
||||||
|
respond_to do |format|
|
||||||
|
if @co_author.save
|
||||||
|
format.html { redirect_to desktop_co_authors_path, :layout => false, notice: 'CoAuthor was successfully created.' }
|
||||||
|
else
|
||||||
|
format.html { render action: "new", :layout => false}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def update
|
||||||
|
@co_author = CoAuthor.find(params[:id])
|
||||||
|
|
||||||
|
respond_to do |format|
|
||||||
|
if @co_author.update_attributes(params[:co_author])
|
||||||
|
format.html { redirect_to desktop_co_authors_url, notice: 'CoAuthor was successfully updated.' }
|
||||||
|
format.json { head :no_content }
|
||||||
|
else
|
||||||
|
format.html { render action: "edit" }
|
||||||
|
format.json { render json: @co_author.errors, status: :unprocessable_entity }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def delete
|
||||||
|
@co_author = CoAuthor.find(params[:id])
|
||||||
|
@co_author.destroy
|
||||||
|
|
||||||
|
respond_to do |format|
|
||||||
|
format.html { redirect_to desktop_co_authors_url, :layout => false }
|
||||||
|
format.json { head :no_content }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,19 @@
|
||||||
|
class CoAuthor
|
||||||
|
include Mongoid::Document
|
||||||
|
|
||||||
|
LANGUAGE_TYPES = [ "English", "Chinese" ]
|
||||||
|
|
||||||
|
field :name_id, type: BSON::ObjectId
|
||||||
|
field :co_author, localize: true
|
||||||
|
field :email
|
||||||
|
field :type
|
||||||
|
|
||||||
|
|
||||||
|
VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i
|
||||||
|
validates :email, format: { with: VALID_EMAIL_REGEX },
|
||||||
|
uniqueness: { case_sensitive: false }
|
||||||
|
|
||||||
|
validates :co_author, presence: true
|
||||||
|
before_save { |coauthor| coauthor.email = email.downcase }
|
||||||
|
end
|
||||||
|
|
|
@ -0,0 +1,44 @@
|
||||||
|
<% if @co_author.errors.any? %>
|
||||||
|
<div id="error_explanation">
|
||||||
|
<h2><%= pluralize(@co_author.errors.count, "error") %> prohibited this user from being saved:</h2>
|
||||||
|
<ul>
|
||||||
|
<% @co_author.errors.full_messages.each do |msg| %>
|
||||||
|
<li><%= msg %></li>
|
||||||
|
<% end %>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
<div class="fn_g hp">
|
||||||
|
|
||||||
|
<%= button_tag "Save", name: "commit", value: "Save", class: "fn_btn hh2 thmc2 thmtxt" %>
|
||||||
|
<%= button_tag "Cancel", name: "commit", value: "Cancel", class: "fn_btn hh2 thmc2 thmtxt" %>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div></div>
|
||||||
|
<ul>
|
||||||
|
<li class="s_grid_row">
|
||||||
|
<%= f.label :co_author %><br />
|
||||||
|
<%= f.text_field :co_author %>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="s_grid_row">
|
||||||
|
<%= f.label :email %><br />
|
||||||
|
<%= f.text_field :email %>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="s_grid_row">
|
||||||
|
<%= f.label :type%><br />
|
||||||
|
<select name="co_author[type]" id="" class="s_grid s_grid_4">
|
||||||
|
<%= options_for_select(
|
||||||
|
[["朋友","朋友"],
|
||||||
|
["學生","摯友"],
|
||||||
|
["老師","老師"],
|
||||||
|
["摯友","摯友"],
|
||||||
|
["親戚","親戚"],
|
||||||
|
["同事","同事"],
|
||||||
|
["共同作者","共同作者"]
|
||||||
|
])
|
||||||
|
%>
|
||||||
|
</select>
|
||||||
|
</li>
|
||||||
|
</ul>
|
|
@ -0,0 +1,3 @@
|
||||||
|
<%= form_for @co_author, url: desktop_co_author_path(@co_author) do |f| %>
|
||||||
|
<%= render partial: 'desktop/co_authors/form', locals: {:f => f} %>
|
||||||
|
<% end %>
|
|
@ -0,0 +1,20 @@
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<th>Name</th>
|
||||||
|
<th>EMail</th>
|
||||||
|
<th>Type</th>
|
||||||
|
<th></th>
|
||||||
|
<th></th>
|
||||||
|
<th></th>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<% @co_authors.each do |co_author| %>
|
||||||
|
<tr>
|
||||||
|
<td><%= co_author.co_author %></td>
|
||||||
|
<td><%= co_author.email %></td>
|
||||||
|
<td><%= co_author.type%></td>
|
||||||
|
<td><%= link_to 'Destroy', desktop_co_author_path(co_author), method: :delete, confirm: 'Are you sure?' %></td>
|
||||||
|
</tr>
|
||||||
|
<% end %>
|
||||||
|
</table>
|
||||||
|
<br />
|
|
@ -0,0 +1,3 @@
|
||||||
|
<%= form_for @co_author, url: desktop_co_authors_path do |f| %>
|
||||||
|
<%= render partial: 'desktop/co_authors/form', locals: {:f => f} %>
|
||||||
|
<% end %>
|
Reference in New Issue