Project

General

Profile

QA #235

終了したチケットをコメント不可にしたい

Added by 奈良 裕記 almost 4 years ago. Updated 10 months ago.

Status:
回答済
Priority:
通常
Assignee:
-
Category:
-
Target version:
Start date:
11/09/2016
Due date:
% Done:

0%

Estimated time:

Description

■現象/要望

終了したチケットをコメント不可にしたい。

作業記録/管理目的のチケットでは、既に終了したチケットへにコメントされると、運用上不味い場合がある。

■解決策

freeze closed issue
本家13814に2.4.6用のパッチ有
Redmine additionalsプラグインで対応しているらしい(13814のコメント)
https://github.com/alphanodes/additionals
freeze closed issue

チケットの編集権限の一つとして、Tracker/Role/Statusで制御できれば良いと思われる。

現時点の回避策

別トラッカー(注記不可)を作成し、チケット終了時にトラッカーを変更する。

■対応状況

標準未対応

■補足

http://www.redmine.org/issues/13814 No more comments when ticket closed
http://www.redmine.org/issues/18382 Feature #18382: Disable closed issues for commenting)

http://www.redmine.org/issues/2685 Patch #2685: Display notice when commenting on closed tickets

descriptionも同じ
http://www.redmine.org/issues/7557 Feature #7557: Deny editing of descriptions of closed issues

#1

Updated by 奈良 裕記 almost 4 years ago

  • Description updated (diff)
#2

Updated by 奈良 裕記 over 3 years ago

  • Description updated (diff)
#3

Updated by 奈良 裕記 about 1 year ago

  • Description updated (diff)
#4

Updated by 奈良 裕記 about 1 year ago

  • Description updated (diff)
#5

Updated by Kawai takashi about 1 year ago

View Customize Pluginでもできそうですね。

パスのパターン:/issues/[0-9]+
挿入位置:全てのページのヘッダ
種別:JavaScript

$(function(){
 var admin = ViewCustomize.context.user.admin;
 var status = $('#issue_status_id').val();
 if (admin != true && status == 5){ //サーバ管理者以外でステータスが終了の場合
   $('#issue_status_id').attr("disabled", true);
   $('#issue_notes').attr("disabled", true);
   $('a[class="icon-only icon-edit"]').css("display", "none");
 }
})
#6

Updated by 奈良 裕記 about 1 year ago

問題発生しましたので報告します。(3.4で確認)

1.編集アイコン部分

下記箇所の修正で表示制御できました。(右ボタンは残りますが、これでも十分かと)

<span class="icon icon-edit">編集</span>

2.ステータス取得不可
ステータス変更不可の状態では、
'#issue_status_id'で状態が取れません。
こちらはviewcustomizeかRedmine本体側に対応お願いするしかないですかねー。

#7

Updated by Kawai takashi about 1 year ago

1.編集アイコン部分
「終了したチケットをコメント不可にしたい。」の意味は、注記と履歴のコメントに入力できないという意味だと思ったので、icon-only icon-editにしました。icon icon-editだと、他の項目も全て編集できなくなってしまいます。

2.ステータス変更不可の状態では、'#issue_status_id'で状態が取れません。
ステータスの状態が取れないと、他で使用する場合に不都合だからということですよね。

以下のテストコードで試しましたが、ステータス変更不可の状態でも、ステータスの状態は取得できました。

$(function(){
 var status = $('#issue_status_id').val();
 $('input[type="submit"]').click(function(){
   alert(status);
 })
})

Rubyのコードだと、取得できないのでしょうか。でしたら、$('#issue_status_id').attr("disabled", true); の部分をコメントアウトしてください。ステータスは変更できる状態になりますが、ステータスを変更しても、保存しないうちは、注記には入力できないままですので用は足せると思います。

ステータス変更可能な状態にしておいて、しかも変更して保存をさせたくない場合、以下でどうでしょうか。

$(function(){
 var admin = ViewCustomize.context.user.admin;
 var status = $('#issue_status_id').val();
 if (admin != true && status == 5){ //サーバ管理者以外でステータスが終了の場合
   $('#issue_notes').attr("disabled", true);
   $('a[class="icon-only icon-edit"]').css("display", "none");

   $('input[type="submit"]').on('click', function(){
     var statussave = $('#issue_status_id').val();
     if (status != statussave){
       alert("終了のステータスは変更できません。サーバ管理者に連絡してください。");  
       $('#issue_status_id').val(status);    
       return false;       
     }  
   })  
 }
})

間違って終了にしてしまった場合、元に戻せないので面倒だということなら、$('#issue_status_id').attr("disabled", true); の部分をコメントアウトするだけで運用してください。

#8

Updated by 奈良 裕記 about 1 year ago

closedの場合、admin以外では、#issue_status_idが出力されていませんね。

手元の環境では、下記により動作しました。
Admin以外の場合、closedチケットへの注記不可、時間追加も不可となります。

ステータス-状態遷移の制御はRedmineのワークフロー設定で実施するものとしました。

残件
・終了済なので書込み不可の表示
・トラッカー、ステータス、ロール単位の例外処理

制約
・チケット一覧-右ボタンで編集操作は可能

$(function(){
 var admin = ViewCustomize.context.user.admin;
 var closed=false;
 if ($('div').hasClass('closed')){
   closed=true;
 }
 if (admin != true && closed == true){ //サーバ管理者以外でステータスが終了の場合
   // $('#issue_status_id').attr("disabled", true);
   $('#issue_notes').attr("disabled", true);                    //注記入力
   $('a[class="icon icon-edit"]').css("display", "none");       //編集アイコン
   $('a[class="icon icon-time-add"]').css("display", "none");   //時間追加アイコン
   // $('a[class="icon icon-fav-off"]').css("display", "none"); //watcher追加を消す場合
 }
})
#9

Updated by 奈良 裕記 about 1 year ago

Summary

When the user is not a server administrator and the status is closed,disable editing or commenting on the issue.

Workaround for the following issue.

http://www.redmine.org/issues/13814 No more comments when ticket closed
http://www.redmine.org/issues/18382 Disable closed issues for commenting

Procedure

Install view customize plugin.
https://github.com/onozaty/redmine-view-customize

Click "New view customize" and enter items.

Path pattern '/issues/[0-9]+'
Insertation posision 'Head of all pages'
Type 'JavaScript'
Code

$(function(){
 var admin = ViewCustomize.context.user.admin;
 var closed=false;
 if ($('div').hasClass('closed')){
   closed=true;
 }
 if (admin != true && closed == true){ 
   // $('#issue_status_id').attr("disabled", true);
   $('#issue_notes').attr("disabled", true);
   $('a[class="icon icon-edit"]').css("display", "none");
   $('a[class="icon icon-time-add"]').css("display", "none");
   // If you do not want to display the button additional watcher then remove comment out.
   // $('a[class="icon icon-fav-off"]').css("display", "none"); 
 }
})

Restrictions

It is possible to perform editing operation with the right button on the issue list screen.

#10

Updated by 奈良 裕記 about 1 year ago

  • Target version changed from 本家patch有 to Plugin対応済

ViewCustomizeで一応対処できているのでversion変更

本家チケットに記載
http://www.redmine.org/issues/13814#note-18

#11

Updated by 奈良 裕記 10 months ago

  • Description updated (diff)
#12

Updated by 奈良 裕記 10 months ago

  • Status changed from 新規 to 回答済
#13

Updated by 奈良 裕記 10 months ago

  • Description updated (diff)

Also available in: Atom PDF