class JournalsController < ApplicationController before_action :require_login before_action :set_issue before_action :check_issue_permission before_action :set_journal, only: [:destroy, :edit, :update] def index @page = params[:page] || 1 @limit = params[:limit] || 10 journals = @issue.journals.journal_includes.order("created_on desc") @journals_size = journals.size @journals = journals.parent_journals.page(@page).per(@limit) end def create notes = params[:content] if notes.blank? normal_status(-1, "评论内容不能为空") else journal_params = { journalized_id: @issue.id , journalized_type: "Issue", user_id: current_user.id , notes: notes.to_s.strip, parent_id: params[:parent_id] } journal = Journal.new journal_params if journal.save if params[:attachment_ids].present? params[:attachment_ids].each do |id| attachment = Attachment.select(:id, :container_id, :container_type)&.find_by_id(id) unless attachment.blank? attachment.container = journal attachment.author_id = current_user.id attachment.description = "" attachment.save end end end # @issue.project_trends.create(user_id: current_user.id, project_id: @project.id, action_type: "journal") normal_status(0, "评论成功") else normal_status(-1, "评论失败") end end end def destroy if @journal.destroy #如果有子评论,子评论删除吗? normal_status(0, "评论删除成功") else normal_status(-1, "评论删除失败") end end def edit end def update content = params[:content] if content.present? if @journal.update_attribute(:notes, content) normal_status(0, "更新成功") else normal_status(-1, "更新失败") end else normal_status(-1, "评论的内容不能为空") end end private def set_issue @issue = Issue.find_by_id(params[:issue_id]) unless @issue.present? normal_status(-1, "标签不存在") end end def check_issue_permission @project = @issue.project unless !@issue.is_lock || @project.member?(current_user) || current_user.admin? normal_status(-1, "您没有权限") end end def set_journal @journal = Journal.find(params[:id]) unless @journal.present? normal_status(-1, "评论不存在") end end end