2
1
0

ステータス遷移時のトランジション画面上部にWARNING(トランジションは可)を出力したいです。

ドキュメントを参照しましたが、「setHelpText(helpText)」を利用しても対象フィールドの下部に表示されるので、全体に向けてのメッセージが書けないためです。
https://scriptrunner.adaptavist.com/latest/jira/behaviours-api-quickref.html

    Commentコメントを追加...

    1 回答

    1.  
      4
      3
      2

      Behavioursの「Initialiser」を利用することできます。
      サンプルにはなりますが、
      下記コードで子チケットのステータスに応じてWARNINGを制御してます。

      // トランジションが実行された場合
      if(underlyingIssue != null && getAction() != null && getAction().id != null){
      
          // トランジションID
          final int TRANSITION_ID = workflow.getActionsByName("申請依頼").getAt(0).getId();
      
          // カスタムフィールドID
          final Long CUSTOM_FIELD_ID = customFieldManager.getCustomFieldObjectsByName("カスタムフィールド名").getAt(0).getIdAsLong();
      
          // 課題タイプ名
          final String ISSUE_TYPE_NAME = "課題タイプ名";
          final String ISSUE_TYPE_ID = (String)issueTypeManager.getIssueTypes().find {it->it?.getName()==ISSUE_TYPE_NAME}?.getId();
      
          // ステータスID
          final String STATUS_NAME = "ステータス名";
          final String STATUS_ID = (String)statusManager.getStatuses().find {it->it?.getName()==STATUS_NAME}?.getId();
      
          // 特定ステータス確認用フラグ
          boolean targetStatusIssueExists = false;
      
          if(getAction().id == TRANSITION_ID){
              List OutwardLinks = issueLinkManager.getOutwardLinks(underlyingIssue.getId());
              String message = "<script>\n"+
                  "AJS.\$(document).ready(function(){\n"+
                  "if(\$('#title-container').size() != 0){\n" +
                  "AJS.\$(\"#title-container\").remove();\n"+
                  "AJS.\$(\"#title-container span\").remove();\n"+
                  "}\n"+
                  "AJS.\$(\".jira-dialog-heading\").after(\"<div id=\\\"title-container\\\"><span>説明を入力して下さい。</span></div>\");\n" +
                  "AJS.\$(\"#title-container span\").css(\"color\",\"red\");\n"+
                  "AJS.\$(\"#title-container\").css(\"text-align\",\"center\");\n"+
                  "AJS.\$(\"#title-container\").css(\"border\",\"1px solid red\");\n"+
                  "});\n"+
                  "</script>";
              if(OutwardLinks.isEmpty()){
                  getFieldById("customfield_" + CUSTOM_FIELD_ID).setHelpText(message);
              }else{
                  for (IssueLink OutwardLink : OutwardLinks) {
                      if (OutwardLink.getDestinationObject().getIssueType().getId() == ISSUETYPE_ID) {
                          Issue targetIssue =  OutwardLink.getDestinationObject();
                          if(STATUS_ID.contains(targetIssue.getStatus().getId())){
                              targetStatusIssueExists = true;
                              break;
                          }
                      }
                  }
                  if(!targetStatusIssueExists){
                      getFieldById("customfield_" + CUSTOM_FIELD_ID).setHelpText(message);
                  }
              }
          }
      }
        Commentコメントを追加...