Redmine에서 입력 필드를 그룹화하고 제목을 넣습니다.

소개



요전날 쓴 Redmine에서 필요 여부 풀다운이 필요한 경우에만 입력할 수 있는 항목을 표시한다(아니면 표시하지 않음) 의 발전으로, 몇개의 커스텀 필드를 그룹화해 표제를 넣는 방법을 소개합니다.

전제 조건



환경


  • Redmine 3.4.10.stable.18167
  • view_customize 플러그인 2.2.0

  • 극단적인 버전 의존 코드가 아니기 때문에 다른 버전에서도 아마 작동합니다.

    맞춤 입력란 설정




    ID
    이름
    형식
    비고


    2
    코멘트
    긴 텍스트

    3
    기표자
    사용자

    4
    댓글 답변
    긴 텍스트

    5
    응답자
    사용자



    이러한 커스텀 필드는, 이하의 샘플 코드로 사용하기 위해서 정의하고 있습니다만, 표준 필드나 임의의 커스텀 필드를 그룹화하는 것이 가능합니다.

    샘플 코드


    /*
    サンプルチケット編集画面
    Path pattern: .*
    挿入位置:チケット入力欄の下
    Type: JavaScript
    */
    
    if (!$('div#my_div1').length){                              // 自分で定義する'my_div1'ブロックない場合
      $('div#attributes').after(                                // 'div#attributes'の後ろに、'my_div1'ブロックを作成、その中身は以下のとおり
        $('<div id="my_div1">').append(                         //   'my_div1'ブロックを作成
          $('<fieldset id="my_fieldset1">').append(             //     'fieldset#my_fieldset1'を作成
            $('<legend>').text('起票者入力欄'),                   //       見出し「起票者入力欄」
            $(':input#issue_custom_field_values_3').parent(),   //       カスタムフィールド3「起票者」
            $(':input#issue_custom_field_values_2').parent()    //       カスタムフィールド2「コメント」
          )
        ),
        $('<div id="my_div2">').append(                         //   'my_div2'ブロックを作成
          $('<fieldset id="my_fieldset2">').append(             //     'fieldset#my_fieldset2'を作成
            $('<legend>').text('回答者入力欄'),                   //       見出し「回答票者入力欄」
            $(':input#issue_custom_field_values_5').parent(),   //       カスタムフィールド5「回答者」
            $(':input#issue_custom_field_values_4').parent()    //       カスタムフィールド4「コメント回答」
          )
        )
      );
    }
    
    

    결과



    Redmine의 티켓 편집 화면은 이런 느낌이 되었습니다. 기표자 입력란, 응답자 입력란이, 본 스크립트로 그룹화하고 있는 곳입니다.


    해설


  • $('div#attributes').after() 를 사용하여 자신이 만들려는 블록을 삽입합니다. 그건 그렇고, $('div#all_attributes').after() 이 기사를 작성하기 위해 여러 가지 실험을했지만 여기가 가장 빠졌습니다 (땀)
  • 그룹화할 필드를 $('<fieldset id="my_fieldset1">') 와 같이 만들고 거기에 $('<legend>').text('起票者入力欄') 와 같이 제목을 넣습니다. 여기에서는 my_fieldset1에 기표자 입력란, my_fieldset2에 응답자 입력란의 표제를 붙이고 있습니다.
  • 추가 발전으로, 전날 쓴 Redmine에서 필요 여부 풀다운이 필요한 경우에만 입력할 수 있는 항목을 표시한다(아니면 표시하지 않음) 과 조합하면, 그룹핑한 영역을 스테이터스나 임의의 풀다운과 연동시켜 표시/숨기기를 제어하는 ​​것도 가능하게 됩니다.
  • 좋은 웹페이지 즐겨찾기