Sha256: ea7ed9e872d1699dfd55961fd4ed9877daef30840fcb1a7008c4da5c09aba099
Contents?: true
Size: 1.87 KB
Versions: 6
Compression:
Stored size: 1.87 KB
Contents
# frozen_string_literal: true class IssueTagsController < ApplicationController before_action :find_issues, only: %i[edit update] def edit return unless AdditionalTags.setting?(:active_issue_tags) && User.current.allowed_to?(:edit_issue_tags, @projects.first) @issue_ids = params[:ids] @is_bulk_editing = @issue_ids.size > 1 @issue_tags = if @is_bulk_editing issues = @issues.map(&:tag_list) issues.flatten! issues.uniq else @issues.first.tag_list end @issue_tags.sort! @most_used_tags = Issue.available_tags.most_used 10 @append = params[:append] == 'true' end def update if AdditionalTags.setting?(:active_issue_tags) && User.current.allowed_to?(:edit_issue_tags, @projects.first) tags = params[:issue] && params[:issue][:tag_list] ? params[:issue][:tag_list].reject(&:empty?) : [] unless User.current.allowed_to?(:create_issue_tags, @projects.first) || Issue.allowed_tags?(tags) flash[:error] = t :notice_failed_to_add_tags return end Issue.transaction do @issues.each do |issue| issue.init_journal User.current # add tags added in placeholder for a single/multiple issue or overwrite tags for single issue params[:append] == 'true' ? issue.tag_list << tags : issue.tag_list = tags issue.tags_to_journal issue.tag_list_was&.to_s, issue.tag_list.to_s issue.save! end end flash[:notice] = t :notice_tags_added else flash[:error] = t :notice_failed_to_add_tags end rescue StandardError => e Rails.logger.warn "Failed to add tags: #{e.inspect}" flash[:error] = t :notice_failed_to_add_tags ensure redirect_to_referer_or { render text: 'Tags updated.', layout: true } end end
Version data entries
6 entries across 6 versions & 1 rubygems