Project

General

Profile

QA #906

新しいチケットの作成時にデフォルトで任意のウォッチャーにチェックを入れたい。

Added by k a 5 months ago. Updated 5 months ago.

Status:
回答済
Priority:
通常
Assignee:
-
Category:
-
Target version:
-
Start date:
12/26/2018
Due date:
% Done:

0%

Estimated time:

Description

バージョン:Redmine3.4.3-1

URLから指定する形ではなく何か方法はないでしょうか。


Files

タスクの場合.png (68 KB) タスクの場合.png タスクの場合 Kawai takashi, 12/28/2018 04:32 PM
QAの場合.png (82.1 KB) QAの場合.png QAの場合 Kawai takashi, 12/28/2018 04:33 PM
それ以外の場合.png (72.7 KB) それ以外の場合.png それ以外の場合 Kawai takashi, 12/28/2018 04:33 PM

History

#1

Updated by 奈良 裕記 5 months ago

下記2案出してみます。テスト環境で試していただければと。

本家8568のパッチ利用

本家チケットでは下記があり、Redmine3.2時点のパッチが出ています。(そのままで動作するかは疑問ですが)
add ability to designate default watchers by tracker/project
https://www.redmine.org/issues/8568

watchersテーブルへの登録

watchersテーブルに全Issue分のwatchersを追加する方法も考えられます。
(本来は起票時に追加くらいするべきですが極論w)

十分なチケット数分、先にレコード追加しておけば、結果的にはチケット作成時に自動的にwatchersに追加されると思われます。
下記のwatchable_idがチケット番号、user_idがRedmine上のユーザIDです。(Redmine内で一意)


MariaDB [redmine]> desc watchers;
+----------------+--------------+------+-----+---------+----------------+
| Field          | Type         | Null | Key | Default | Extra          |
+----------------+--------------+------+-----+---------+----------------+
| id             | int(11)      | NO   | PRI | NULL    | auto_increment |
| watchable_type | varchar(255) | NO   |     |         |                |
| watchable_id   | int(11)      | NO   | MUL | 0       |                |
| user_id        | int(11)      | YES  | MUL | NULL    |                |
+----------------+--------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)

MariaDB [redmine]> select * from watchers;
+----+----------------+--------------+---------+
| id | watchable_type | watchable_id | user_id |
+----+----------------+--------------+---------+
|  1 | Issue          |        17786 |       1 |
|  2 | Issue          |        17786 |       5 |
+----+----------------+--------------+---------+
2 rows in set (0.00 sec)

#2

Updated by Kawai takashi 5 months ago

View Customize Plugin (V.1.2.2)で実現してみました。
どのような条件の場合にどのユーザーをデフォルトで任意のウォッチャーにしたいのかが記述されていませんでしたので、例としてトラッカー別にデフォルトで任意のウォッチャーを指定するようにしてみました。

パスのパターン:/issues/new
挿入位置:チケット入力欄の下
種別:JavaScript

$(function() {
 var tracker_id = $('#issue_tracker_id').val();

 $('#issue_tracker_id').on('change', function(){//トラッカーが変わったら一旦チェックをクリア
  $('input[name*="issue[watcher_user_ids]"]').prop('checked', false);
 })

   if (tracker_id == "2"){//タスク
    $('input[name*="issue[watcher_user_ids]"]:eq(2)').prop('checked', true);//Sadesh Warnakulasooriya
    $('input[name*="issue[watcher_user_ids]"]:eq(3)').prop('checked', true);//takashi Kawai
    $('input[name*="issue[watcher_user_ids]"]:eq(6)').prop('checked', true);// tosiaki Mikawa
   }else if (tracker_id == "3"){//QA
    $('input[name*="issue[watcher_user_ids]"]:eq(1)').prop('checked', true);//kunihiro Yoshikawa
    $('input[name*="issue[watcher_user_ids]"]:eq(3)').prop('checked', true);//takashi Kawai
    $('input[name*="issue[watcher_user_ids]"]:eq(5)').prop('checked', true);//tomu Oshidari
   }else{
    //何もしない
   }      
})

動作の結果は、添付画像を参照してください。

*途中でユーザーが追加・変更などされた場合は、その都度「:eq()」の番号を変更しないといけないですが。

#3

Updated by Kawai takashi 5 months ago

「作成」ボタン押下時に、必須エラーが出た場合に動作がおかしくなったので、修正しました。

1.パスのパターン:/issues/new → /issues
2. eq()で指定するのをやめて、value で指定するようにする。

//$('input[name*="issue[watcher_user_ids]"]:eq(2)').prop('checked', true);
$('input[name*="issue[watcher_user_ids]"][value="1"]').prop('checked', true);

#4

Updated by 奈良 裕記 5 months ago

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

Updated by 奈良 裕記 5 months ago

  • Subject changed from 新しいチケットタブ押下時にデフォルトで任意のウォッチャーにチェックを入れたい。 to 新しいチケットの作成時にデフォルトで任意のウォッチャーにチェックを入れたい。

Also available in: Atom PDF