|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176 |
- 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
|