1
0
-1

課題作成/編集時のフィード名位置を右揃えから左揃えに変更することは可能でしょうか。(課題表示画面は左揃えでした)

フィールド名の改行を指定したい」を参照しましたが、ひとつひとつに設定するのが大変なのでできればプロジェクトごとに一括で設定したいです。


    Commentコメントを追加...

    1 回答

    1.  
      2
      1
      0

      CSS で

      text-align: right

      が設定されているようだったので、
      お知らせバナーから以下の JavaScript を適用すれば左に寄せることはできそうでした。

      <script>
      AJS.toInit(function() {
          function getProjectKey() {
            var project = AJS.$('#project-field').val();
            
            if (!project) return null;
            
            return project.substring(project.indexOf('(') + 1, project.indexOf(')'));
          }
          
          JIRA.bind(JIRA.Events.NEW_CONTENT_ADDED, function(e, context, reason) {
              if (reason === JIRA.CONTENT_ADDED_REASON.dialogReady) {
                if (getProjectKey() != 'PJA') return;
                
                AJS.$('form.aui legend, form.aui .field-group>label').css('text-align', 'left');
              }
          });
      });
      </script>

      'PJA' の部分は、
      左寄せとしたい対象のプロジェクトキーに置き換えてください。

      1. 荒木治

        ありがとうございます!想定したとおりに動作しました。

        複数やすべてのプロジェクトを指定も可能でしょうか。

      2. 荒木治

        すいません。あと編集画面でも左揃えにすることはできますでしょうか。

      3. Shuzaburo Doba

        以下のようにするといかがでしょうか...?

        <script>
        AJS.toInit(function() {
            var CREATE_ISSUE_DIALOG = 'create',
                EDIT_ISSUE_DIALOG = 'edit',
                targetProjectKeys = ['PJA', 'PJB', 'PJC'];
        
            function getDialogType() {
              var dialog = document.getElementById('create-issue-dialog') || document.getElementById('edit-issue-dialog'),
                  dialogType = null;
              if (!dialog) return null;
              
              if (dialog.id === 'create-issue-dialog') {
                dialogType = CREATE_ISSUE_DIALOG;
              } else if (dialog.id === 'edit-issue-dialog') {
                dialogType = EDIT_ISSUE_DIALOG;
              }
              
              return dialogType;
            }
            
            function getProjectKey() {
              var projectKey = null;
              if (getDialogType() === CREATE_ISSUE_DIALOG) {
                var project = AJS.$('#project-field').val();
                
                if (!project) return null;
                
                projectKey = project.substring(project.indexOf('(') + 1, project.indexOf(')'));
              } else if (getDialogType() === EDIT_ISSUE_DIALOG) {
                projectKey = JIRA.API.Projects.getCurrentProjectKey();
              }
              
              return projectKey;
            }
          
            function isTargetProject() {
              var currentProjectKey = getProjectKey(),
                  isTargetProject = false;
              
              if (!currentProjectKey) return false;
              
              for (var i = 0, len = targetProjectKeys.length; i < len; i++) {
                if (currentProjectKey === targetProjectKeys[i]) {
                  isTargetProject = true;
                  break;
                }
              }
              
              return isTargetProject;
            }
            
            JIRA.bind(JIRA.Events.NEW_CONTENT_ADDED, function(e, context, reason) {
                if (reason === JIRA.CONTENT_ADDED_REASON.dialogReady) {
                  
                  if (isTargetProject()) AJS.$('form.aui legend, form.aui .field-group>label').css('text-align', 'left');
                }
            });
        });
        </script>

        targetProjectKeys の配列に対象のプロジェクトキーを指定してください。

        すべてのプロジェクトに反映させたい場合は
        "if (isTargetProject())" を消してください。

      4. 荒木治

        意図したとおりに動作しました。ありがとうございます!とても助かりました。

      5. Shuzaburo Doba

        良かったです!!

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

      6. 荒木治

        こちらを設定した場合、以下の事象が発生することを確認しましたので共有します。
        もし、代替案があれば教えてもらえますと幸いです。

        【事象】

        URLにクエリパラメータがついていると編集画面に遷移できない

        【環境】

        Jira Core Server 7.12.3

        【手順】

        1. 任意の条件で検索を行う

        2. 検索結果の「課題キー」リンクをクリックする

        3. URLの課題キーの後ろにクエリパラメータが付与されていることを確認する

         「http://host:port/jira/browse/<課題キー><クエリパラメータ>

        4. 編集ボタンをクリックする

        【結果】

        編集画面に遷移しない(読み込みマークが回転)

        【期待結果】

        編集画面に遷移する

        【補足】

        クエリパラメータを除去すして読み込み直すと編集画面に遷移可能

      7. Shuzaburo Doba

        ご共有ありがとうございます。

        課題検索画面から遷移した場合の編集画面ですね。
        申し訳ありません、もしかしますと
        プロジェクトキーの取得のところでエラーになっているかもしれません。

        以下の内容を適用するといかがでしょうか...?

        <script>
        AJS.toInit(function() {
            var CREATE_ISSUE_DIALOG = 'create',
                EDIT_ISSUE_DIALOG = 'edit',
                targetProjectKeys = ['PJA', 'PJB', 'PJC'];
        
            function getDialogType() {
              var dialog = document.getElementById('create-issue-dialog') || document.getElementById('edit-issue-dialog'),
                  dialogType = null;
              if (!dialog) return null;
              
              if (dialog.id === 'create-issue-dialog') {
                dialogType = CREATE_ISSUE_DIALOG;
              } else if (dialog.id === 'edit-issue-dialog') {
                dialogType = EDIT_ISSUE_DIALOG;
              }
              
              return dialogType;
            }
            
            function getProjectKey() {
              var projectKey = null;
              if (getDialogType() === CREATE_ISSUE_DIALOG) {
                var project = AJS.$('#project-field').val();
                
                if (!project) return null;
                
                projectKey = project.substring(project.indexOf('(') + 1, project.indexOf(')'));
              } else if (getDialogType() === EDIT_ISSUE_DIALOG) {
                if (JIRA && JIRA.Issue && JIRA.Issue.getIssueKey) {
                  var issueKey = JIRA.Issue.getIssueKey();
                  if (issueKey) projectKey = issueKey.replace(/-[0-9]+$/, '');
                }
              }
              
              return projectKey;
            }
          
            function isTargetProject() {
              var currentProjectKey = getProjectKey(),
                  isTargetProject = false;
              
              if (!currentProjectKey) return false;
              
              for (var i = 0, len = targetProjectKeys.length; i < len; i++) {
                if (currentProjectKey === targetProjectKeys[i]) {
                  isTargetProject = true;
                  break;
                }
              }
              
              return isTargetProject;
            }
            
            JIRA.bind(JIRA.Events.NEW_CONTENT_ADDED, function(e, context, reason) {
                if (reason === JIRA.CONTENT_ADDED_REASON.dialogReady) {
                  
                  if (isTargetProject()) AJS.$('form.aui legend, form.aui .field-group>label').css('text-align', 'left');
                }
            });
        });
        
        </script>

        カスタマイズは注意が必要ですね...

        申し訳ありません。

      8. 荒木治

        確認が遅くなりました。

        再度ご提案いただいた内容で問題が改善されておりました。

        とても助かりました。ありがとうございます。

      9. Shuzaburo Doba

        こちらこそありがとうございます。

        無事改善されたとのことで安堵いたしました。

        よかったです!

      Commentコメントを追加...