新規チケットの担当者の初期値をトラッカーにより設定する方法

526 views
Skip to first unread message

Tachibana Yuduki

unread,
Aug 10, 2021, 10:01:34 PM8/10/21
to Redmine Users (japanese)
MyRedmine(RedMica 1.3.0.stable)を利用しています。

表示のカスタマイズ(View customize plugin)で新規チケットの担当者の初期値を、選択しているトラッカーにより設定したいと考えています。

以下の通りスクリプトを組みましたが「初回表示処理にもデフォルト値設定処理を実行」部分がうまく動かないようで、新規チケット作成画面を開いた初期表示時には担当者が空欄となってしまいます。(そこからトラッカーを変更すると記載のとおりの担当者の初期値が表示されます)

新規チケット作成時のトラッカーのデフォルトは4(連絡票)で設定してあり、この時は135番のユーザを担当者の初期値として設定したいです。

どのように修正したら初回表示時に135番の人が担当者として表示されるか、ご教示頂ければ幸いです。


パスのパターン
/issues/new$

挿入位置
全ページのヘッダ

種別
JavaScript
---------------------------------------------------ここから----------------------------------------------------
var project_id = ViewCustomize.context.project.identifier;
var pid = project_id.substring(0,4);

//プロジェクトIDの頭がunyoで始まるプロジェクトのみ

if (pid == 'unyo'){

  $(function(){
    var trackerChanged = false;  //トラッカー変更有無

    //トラッカー変更イベントによりフラグの状態制御
    $(document).on('change', '#issue_tracker_id', function() {
      trackerChanged = true;
    });

    //現在の担当者ID取得
    var currentAssignees = $('#issue_assigned_to_id').val();

    // デフォルトのreplaceIssueFormWithを置き換え
    var _replaceIssueFormWith = replaceIssueFormWith;
    replaceIssueFormWith = function(html){

      _replaceIssueFormWith(html);

      // トラッカー変更時にデフォルト設定処理を実行
      if (trackerChanged) {
        setDefalutAssigned();
      }

      trackerChanged = false;
    };

    // トラッカーのデフォルト設定処理
    var setDefalutAssigned = function() {
      // トラッカーが「打合せ」「議事録」「その他」以外の時は135番の人に設定する
      switch($('#issue_tracker_id option:selected').val()) {
        case "5": //打合せ
          $('#issue_assigned_to_id').val(currentAssignees);
          break;
        case "6": //その他
          $('#issue_assigned_to_id').val(currentAssignees);
          break;
        case "7": //議事録
          $('#issue_assigned_to_id').val(currentAssignees);
          break;
        default: //それ以外
          $('#issue_assigned_to_id').val(135);
          break;
      }
    }

    // 初回表示処理にもデフォルト値設定処理を実行
    setDefalutAssigned();

  });
   
};

---------------------------------------------------ここまで----------------------------------------------------

※「初回表示処理にもデフォルト値設定処理を実行」部分に直接
「$('#issue_assigned_to_id').val(135);」を記載しても担当者は空欄で表示されます。

※そのほかに新規チケット作成画面の上部に注意事項を表示するカスタマイズも追加していますが、そちらを無効にしても同じように初回表示処理部分だけ動きません。

onozaty

unread,
Aug 13, 2021, 9:06:34 AM8/13/21
to redmine-...@googlegroups.com
onozatyです。

記載していただいたスクリプトを見る限りでは、問題無く動きそうに見えます。

何か他のスクリプトやプラグインと競合し、設定後に元に戻されていたりする可能性があるのではと思います。
何か競合しそうなスクリプトやプラグインがあったりしないでしょうか。

2021年8月11日(水) 11:00 Tachibana Yuduki <amayo....@gmail.com>:
--
このメールは Google グループのグループ「Redmine Users (japanese)」に登録しているユーザーに送られています。
このグループから退会し、グループからのメールの配信を停止するには redmine-users-...@googlegroups.com にメールを送信してください。
このディスカッションをウェブ上で閲覧するには https://groups.google.com/d/msgid/redmine-users-ja/9ac46310-7061-4afe-b8dc-1b450f1cc075n%40googlegroups.com にアクセスしてください。


--

Tachibana Yuduki

unread,
Aug 16, 2021, 1:36:25 AM8/16/21
to Redmine Users (japanese)



onozaty 様

ご回答頂きありがとうございます。
他に設定しているスクリプトを全て無効にしこのスクリプトのみ有効にしてみましたが、
やはり初期表示部分がうまく動かないので、スクリプトとは競合していないのかなと思います。

ちなみにですが、全てのスクリプトを無効にした上で、
設定>チケットトラッキングにある「デフォルトの担当者」を設定し保存しましたが、
初期表示時の担当者に設定した担当者が表示されていないので、
ご指摘の通り設定後もとに戻されている可能性は高い気がします。

なお、プラグインは現状、以下のものが設定されております。
一通りプラグインに関する説明は読みましたが、
競合する可能性があるものがわかりませんでした。
何かお分かりになればご教示頂ければ幸いです。

RedMica S3 plugin
RedMica UI extension
Redmine Farend Control Panel plugin
Redmine Ip Filter
Redmine Issue Templates plugin
Redmine Issues Panel plugin
Redmine message customize plugin
My Page Blocks plugin
View Customize plugin


2021年8月13日金曜日 22:06:34 UTC+9 ono...@gmail.com:

onozaty

unread,
Aug 16, 2021, 10:01:43 AM8/16/21
to redmine-...@googlegroups.com
プラグインの情報ありがとうございます。

RedMica UI extension が気になったので見てみたところ、こちらのプラグインで
セレクトボックスをカスタマイズ(select2というライブラリを使用)しており、
今のView customizeのコードではうまく選択項目を変更できていませんでした。

select2を使ったセレクトボックスは、値変更時に $.trigger('change') 
といったように変更したことを伝えてあげる必要があるようです。


下記のような感じで、switch文を抜けた後に追加してみていただけますでしょうか。


// トラッカーのデフォルト設定処理 var setDefalutAssigned = function() { // トラッカーが「打合せ」「議事録」「その他」以外の時は135番の人に設定する switch($('#issue_tracker_id option:selected').val()) { case "5": //打合せ $('#issue_assigned_to_id').val(currentAssignees); break; case "6": //その他 $('#issue_assigned_to_id').val(currentAssignees); break; case "7": //議事録 $('#issue_assigned_to_id').val(currentAssignees); break; default: //それ以外 $('#issue_assigned_to_id').val(135); break; }

      $('#issue_assigned_to_id').trigger('change'); // ◆これを追加
    }



2021年8月16日(月) 14:36 Tachibana Yuduki <amayo....@gmail.com>:
このディスカッションをウェブ上で閲覧するには https://groups.google.com/d/msgid/redmine-users-ja/bbfeab1b-e5b5-4fa9-abf4-11f8be365a1dn%40googlegroups.com にアクセスしてください。


--

Tachibana Yuduki

unread,
Aug 16, 2021, 10:36:50 PM8/16/21
to Redmine Users (japanese)



早速のご回答ありがとうございます。

ご教示頂いた記載を追加したところ、想定していた通りの初期値が設定されていることが
確認できました。

最初に向けて欲しい担当者を選択してくれないユーザが多く困っていたので、
これで改善されてくれるといいなと思っております。
大変助かりました。

プラグインの競合についてはまだまだ勉強が足りないなと思いました。
今後も使用していく中で勉強していきたいと思います。

本当にありがとうございました。


2021年8月16日月曜日 23:01:43 UTC+9 ono...@gmail.com:

onozaty

unread,
Aug 17, 2021, 8:55:59 AM8/17/21
to redmine-...@googlegroups.com
onozatyです。

解決したようで良かったです。

> 設定>チケットトラッキングにある「デフォルトの担当者」を設定し保存しましたが、
> 初期表示時の担当者に設定した担当者が表示されていないので、
> ご指摘の通り設定後もとに戻されている可能性は高い気がします。

こちらですが、「デフォルトの担当者」を設定していても、新規チケット作成画面の初期表示の際には選択状態にはならず、そのまま未選択で登録すると、「デフォルトの担当者」で選択していたものが登録されるというものでした。
私も作成画面表示時点で選択されるものかと勘違いしていて、Redmineのバグなのかな、、って思って調べてしまいました。

ご参考まで。

2021年8月17日(火) 11:36 Tachibana Yuduki <amayo....@gmail.com>:
このディスカッションをウェブ上で閲覧するには https://groups.google.com/d/msgid/redmine-users-ja/5b5bfc9b-75ed-4721-929d-be162e1bca5dn%40googlegroups.com にアクセスしてください。


--
Reply all
Reply to author
Forward
0 new messages