QA #235
未完了終了したチケットをコメント不可にしたい
0%
説明
■現象/要望¶
終了したチケットをコメント不可にしたい。
作業依頼-記録/管理目的のチケットでは、既に終了したチケットへにコメントされると、運用上不味い場合がある。
■解決策¶
1.ViewCustomizeで編集などのアイコンを非表示にする。¶
https://redmine.tokyo/issues/235#note-7
https://redmine.tokyo/issues/235#note-8
CODAの定義・運用の現在 2020年版 / 2.チケットを「凍結」・「解凍」したい
https://www.jss.jaxa.jp/mediadir/2020/11/redmine_tokyo_19_CODA2020_Public201114.pdf
画面表示で操作抑えているので、チケット一覧右ボタン-編集には効かない。
2.設定変更対応¶
チケットの編集権限の一つとして、Tracker/Role/Statusで制御する。
現時点の回避策として、別トラッカー(注記不可)を作成し、チケット終了時にトラッカーを変更する。
3.Redmine本体パッチ¶
本家13814に2.4.6用のパッチ有
4.Redmine additionalsプラグイン対応¶
https://github.com/alphanodes/additionals
■対応状況¶
標準未対応
■補足¶
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
Kawai takashi さんがほぼ5年前に更新
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");
}
})
Kawai takashi さんがほぼ5年前に更新
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); の部分をコメントアウトするだけで運用してください。
奈良 裕記 さんが4年以上前に更新
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追加を消す場合
}
})
奈良 裕記 さんが4年以上前に更新
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.