2
1
0

JIRAのワークフロー、トランジションについて質問です。

トランジションボタン押下時に表示する画面にカスタムフィールドを設置、カスタムフィールド説明欄にjavascriptを仕込んで、トランジションごとに異なるメッセージを表示させたいです。

例)

「クローズ」を押すときに出る画面には「この課題をクローズします」、

「リオープン」を押すときに出る画面には「この課題をリオープンします」など

自分でやってみたのですが、今いるトランジションを取得する方法がわかりませんでした…

ご教授いただけないでしょうか。

    Commentコメントを追加...

    2 回答

    1.  
      2
      1
      0

      製品標準ではできないですが、技術的な方法としてはいくつか考えられると思います。

      例えば以下JavaScriptのような形ですかね。

      <script>
      AJS.toInit(function () {
      	function func() {
      		if (AJS.$("form#issue-workflow-transition input[name='id']").size() === 0) {
      			return;
      		}
      		if (AJS.$('form#issue-workflow-transition div#custom_customfield_10400_description').size() > 0) {
      			AJS.$('form#issue-workflow-transition div#custom_customfield_10400_description').remove();
      		}
      		var transitionName = null;
      		if (AJS.$("div[id^='workflow-transition'] h2").size() > 0) { // トランジション画面のポップアップ表示
      			transitionName = AJS.$("div[id^='workflow-transition'] h2").text().trim();
      		} else if (AJS.$("form#issue-workflow-transition h2").size() > 0) { // トランジション画面の別タブ表示
      			transitionName = AJS.$("form#issue-workflow-transition h2").text().trim();
      		}
      		if (transitionName !== null) {
      			AJS.$("form#issue-workflow-transition input#customfield_10400").after('<div id="custom_customfield_10400_description" class="description">次は' + transitionName + 'します</div>');
      		}
      	}
      
      	func();
      	JIRA.bind(JIRA.Events.NEW_CONTENT_ADDED, function (e, context, reason) {
      		if (reason === JIRA.CONTENT_ADDED_REASON.dialogReady) {
      			func();
      		}
      	});
      });
      </script>	

      (情報) customfield_10400 の部分は実際のカスタムフィールドの番号に読み替えてください。

       

      ScriptRunner for JIRA をインストールしているなら Behaviours 機能を使って

      https://scriptrunner.adaptavist.com/5.2.4/jira/behaviours-overview.html

      def field = getFieldById("customfield_10400");
      field.setHelpText(String.format("次は%sします", getActionName()));

      的なスクリプトでもできるかと思います。

      (情報) customfield_10400 の部分は実際のカスタムフィールドの番号に読み替えてください。

       

      参考になりましたら幸いです。

        Commentコメントを追加...
      1.  
        2
        1
        0

        1つ目の方法でトランジション表示できました、ありがとうございます!

        ScriptRunnerも入っているのでBehavioursの方もやってみて検討してみます。

        1. Kengo Ohsaki

          篠原-san,

          よかったです。標準外のカスタマイズ要求されているようですが…

          あまりJavaScriptでカスタマイズされるとバージョンアップ後の動作確認や

          保守など大変になるかと思いますので、なるべく控えめにするか、

          実施するとしても、どんなカスタマイズを実施しているか残して置いたほうがいいとは思います。

          余計なこと申し訳ございません。

        2. 篠原

          Kengo Ohsakiさん

          返信ありがとうございます。

          そうですね、カスタマイズして使いやすくなる半面、今後バージョンアップして影響が出る可能性もありますよね。他のフィールド等にもJavascriptを使用しているものがあるので感覚が麻痺しておりました。

          保守運用面も考慮して検討します…!

        3. Kengo Ohsaki

          篠原-san,

          カスタマイズして使いやすくなる半面、今後バージョンアップして影響が出る可能性もありますよね。他のフィールド等にもJavascriptを使用しているものがあるので感覚が麻痺しておりました。

          はい...余計な事申し訳ございません。

          頑張ってください!

        Commentコメントを追加...