64 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			64 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Ruby
		
	
	
	
| class Desktop::CoAuthorRelationsController < ApplicationController
 | |
|   def index
 | |
|     @co_author_relations = CoAuthorRelation.all
 | |
|     new
 | |
| 
 | |
|     respond_to do |format|
 | |
|       format.html {render layout: false }
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   def edit
 | |
|     @co_author_relation = CoAuthorRelation.find(params[:id])
 | |
|     respond_to do |format|
 | |
|       format.html { render :layout => false}
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   def new
 | |
|     @co_author_relation = CoAuthorRelation.new
 | |
|   end
 | |
| 
 | |
|   def create
 | |
|     @co_author_relation = CoAuthorRelation.new(params[:co_author_relation])
 | |
|     @co_author_relations = CoAuthorRelation.all
 | |
| 
 | |
|     if @co_author_relation.save
 | |
|       newv = render_to_string partial: "show_form", object: @co_author_relations
 | |
|       render json: {success: true, msg: "New Relation successfully saved!", newvalue: newv}.to_json
 | |
|     else
 | |
|       error_msg = @co_author_relation.errors.full_messages.join("<br />")
 | |
|       render json: {success: false, msg: error_msg}.to_json
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   def update
 | |
|     @co_author_relation = CoAuthorRelation.find(params[:id])
 | |
|     if @co_author_relation.update_attributes(params[:co_author_relation])
 | |
|       @co_author_relations = CoAuthorRelation.all
 | |
|       newv = render_to_string partial: "show_form", object: @co_author_relations
 | |
|       render json: {success: true, msg: "New Relation successfully updated!", newvalue: newv}.to_json
 | |
|     else
 | |
|       error_msg = @co_author.errors.full_messages.join("<br />")
 | |
|       render json: {success: false, msg: error_msg}.to_json
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   def destroy
 | |
|     @co_author_relation = CoAuthorRelation.find(params[:id])
 | |
|     @co_author_relation.destroy
 | |
|     reset_co_author_relation
 | |
| 
 | |
|     render :json => {success: true, msg: "deleted successfully!"}
 | |
|   end
 | |
| 
 | |
|   private
 | |
| 
 | |
|   def reset_co_author_relation
 | |
|     co_author = CoAuthor.where(co_author_relations_id: @co_author_relation.id)
 | |
|     co_author.map do |c|
 | |
|       c.update_attributes(co_author_relations_id: nil)
 | |
|     end
 | |
|   end
 | |
| end
 |