You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							177 lines
						
					
					
						
							6.6 KiB
						
					
					
				
			
		
		
	
	
							177 lines
						
					
					
						
							6.6 KiB
						
					
					
				| class OrgDocumentCommentsController < ApplicationController
 | |
|   before_filter :find_organization, :only => [:new, :create, :show, :index]
 | |
|   before_filter :authorize_allowed, :only => [:create, :add_reply, :add_reply_in_doc]
 | |
|   helper :attachments,:organizations
 | |
|   layout 'base_org'
 | |
| 
 | |
|   def new
 | |
|      @org_document_comment = OrgDocumentComment.new
 | |
|   end
 | |
| 
 | |
| 
 | |
|   def create
 | |
|     @org_document_comment = OrgDocumentComment.new(:organization_id => @organization.id, :creator_id => User.current.id)
 | |
|     @org_document_comment.title = params[:org_document_comment][:title]
 | |
|     @org_document_comment.content = params[:org_document_comment][:content]
 | |
|     @org_document_comment.status = params[:org_document_comment][:status] == "on" ? 1 : 0
 | |
|     @org_document_comment.save_attachments(params[:attachments])
 | |
|     if params[:field_id]
 | |
|       @org_document_comment.org_subfield_id = params[:field_id].to_i
 | |
|     end
 | |
|     if @org_document_comment.save
 | |
|       flash.keep[:notice] = l(:notice_successful_create)
 | |
|       EditorOfDocument.create(:editor_id => User.current.id, :org_document_comment_id => @org_document_comment.id, :created_at => @org_document_comment.updated_at)
 | |
|       if params[:field_id]
 | |
|         @org_subfield = OrgSubfield.find(params[:field_id])
 | |
|         if @org_subfield.subfield_subdomain_dir.nil?
 | |
|           redirect_to organization_path(@organization, :org_subfield_id => params[:field_id])
 | |
|         else
 | |
|           redirect_to show_org_subfield_organization_path(:id => @organization.id, :sub_dir_name => @org_subfield.subfield_subdomain_dir.name)
 | |
|           end
 | |
|       else
 | |
|         redirect_to organization_org_document_comments_path(@organization)
 | |
|       end
 | |
|     else
 | |
|       redirect_to new_org_document_comment_path(:organization_id => @organization.id)
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   def show
 | |
|     @document = OrgDocumentComment.find(params[:id])
 | |
|     @org_subfield = OrgSubfield.where(:id => @document.org_subfield_id).first
 | |
|     @subfield_content = @organization.org_subfields.order("priority")
 | |
|     respond_to do |format|
 | |
|       format.html {render :layout => (@organization.switch_type && @document && !@document.org_subfield_id.blank?) ? 'base_org_custom' : 'base_org'}
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   def index
 | |
|     if @organization.is_public? || User.current.admin? || User.current.member_of_org?(@organization)
 | |
|       @documents = @organization.org_document_comments.where("parent_id is null").order("created_at desc")
 | |
|     else
 | |
|       render_403
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   def update
 | |
|     @org_document =  OrgDocumentComment.find(params[:id])
 | |
|     @org_document.update_attributes(:title => params[:org_document_comment][:title], :content => params[:org_document_comment][:content])
 | |
|     Attachment.attach_files(@org_document, params[:attachments])
 | |
|     # @org_document.save_attachments(params[:attachments])
 | |
|     if @org_document.parent.nil?
 | |
|       act  = OrgActivity.where("org_act_type='OrgDocumentComment' and org_act_id =?", @org_document.id).first
 | |
|       act.update_attributes(:updated_at => @org_document.updated_at)
 | |
|       EditorOfDocument.create(:editor_id => User.current.id, :org_document_comment_id => @org_document.id, :created_at => Time.now)
 | |
|     end
 | |
|     respond_to do |format|
 | |
|       format.html {
 | |
|         if params[:flag].to_i == 0
 | |
|           redirect_to organization_org_document_comments_path(:organization_id => @org_document.organization.id)
 | |
|         else
 | |
|           if params[:flag].to_i == 1
 | |
|             redirect_to org_document_comment_path(@org_document.root.id, :organization_id => @org_document.organization.id)
 | |
|           else
 | |
|             redirect_to organization_path(@org_document.organization.id, :org_subfield_id => params[:org_subfield_id])
 | |
|           end
 | |
|         end
 | |
|       }
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   def edit
 | |
|     @org_document = OrgDocumentComment.find(params[:id])
 | |
|     @flag = params[:flag]
 | |
|     @organization = Organization.find(params[:organization_id])
 | |
|   end
 | |
| 
 | |
|   def add_reply
 | |
|     @document = OrgDocumentComment.find(params[:id]).root
 | |
|     @act = OrgActivity.find(params[:act_id])
 | |
|     @comment = OrgDocumentComment.new(:organization_id => @document.organization_id, :creator_id => User.current.id, :reply_id => params[:id])
 | |
|     @comment.content = params[:org_content]
 | |
|     @document.children << @comment
 | |
|     @document.save
 | |
|   end
 | |
| 
 | |
|   def add_reply_in_doc
 | |
|     @document = OrgDocumentComment.find(params[:id]).root
 | |
|     @comment = OrgDocumentComment.new(:organization_id => @document.organization_id, :creator_id => User.current.id, :reply_id => params[:id])
 | |
|     if params[:org_comment].blank?
 | |
|       @comment.content = params[:org_content]
 | |
|     else
 | |
|       @comment.content = params[:org_comment][:org_content]
 | |
|     end
 | |
| 
 | |
|     @document.children << @comment
 | |
|     @document.save
 | |
|     respond_to do |format|
 | |
|       format.html {redirect_to org_document_comment_path(:id => @document.id, :organization_id => @document.organization_id)}
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   def find_organization
 | |
|     @organization = Organization.find(params[:organization_id])
 | |
|   end
 | |
| 
 | |
|   def authorize_allowed
 | |
|     unless User.current.logged?
 | |
|       redirect_to signin_url
 | |
|       return
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   def destroy
 | |
|     @org_document_comment = OrgDocumentComment.find(params[:id])
 | |
|     @org_sub_id = @org_document_comment.org_subfield_id
 | |
|     org = @org_document_comment.root.organization
 | |
|     if @org_document_comment.id == org.home_id
 | |
|       org.update_attributes(:home_id => nil)
 | |
|     end
 | |
|     if params[:user_activity_id]
 | |
|       @act = OrgActivity.find(params[:user_activity_id])
 | |
|       @document = @org_document_comment.root
 | |
|     end
 | |
|     if @org_document_comment.destroy
 | |
|     end
 | |
|     respond_to do |format|
 | |
|       format.js
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   def delete_reply
 | |
|     @org_document_comment = OrgDocumentComment.find(params[:id])
 | |
|     @document = @org_document_comment.root
 | |
|     org = @org_document_comment.organization
 | |
|     @org_document_comment.destroy
 | |
|     respond_to do |format|
 | |
|       format.html {redirect_to org_document_comment_path(:id => @document.id, :organization_id => @document.organization_id)}
 | |
|     end
 | |
|   end
 | |
|   def quote
 | |
|     @org_comment = OrgDocumentComment.find(params[:id])
 | |
|     @temp = OrgDocumentComment.new
 | |
|     respond_to do | format|
 | |
|       format.js
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   def reply
 | |
|     @document = OrgDocumentComment.find(params[:id])
 | |
|     @org_document = OrgDocumentComment.new(:creator_id => User.current.id, :reply_id => params[:id])
 | |
| 
 | |
|     @org_document.title = params[:org_document_comment][:title]
 | |
|     @org_document.content = params[:org_document_comment][:content]
 | |
| 
 | |
|     @document.children << @org_document
 | |
|     @document = @document.root
 | |
|     @user_activity_id = params[:user_activity_id]
 | |
|     @act = OrgActivity.find(@user_activity_id) if @user_activity_id
 | |
|     respond_to do |format|
 | |
|       format.html {
 | |
|         redirect_to org_document_comment_path(:id => @document.id, :organization_id => @document.organization_id)
 | |
|       }
 | |
|       format.js
 | |
|     end
 | |
|   end
 | |
| end
 |