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「コメント回答」
)
)
);
}
結果
/*
サンプルチケット編集画面
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で要否プルダウンが要のときのみ入力できる項目を表示する(否のときは表示しない)と組み合わせれば、グルーピングした領域をステータスや任意のプルダウンと連動させて表示/非表示を制御することも可能になります。
$('div#attributes').after()
を使って、自分が作成したいブロックを挿入しています。ちなみに、$('div#all_attributes').after()
としてもできそうな気がするのですが、画面が崩れてしまいうまくいきません。この記事を書くためにいろいろ実験をしたのですが、ここが一番ハマりました(汗)$('<fieldset id="my_fieldset1">')
のように作成して、そこに$('<legend>').text('起票者入力欄')
のようにして見出しを入れます。ここでは、my_fieldset1に起票者入力欄、my_fieldset2に回答者入力欄の見出しをつけています。Author And Source
この問題について(Redmineで入力フィールドをグルーピングして見出しを入れる), 我々は、より多くの情報をここで見つけました https://qiita.com/Mattani/items/d6cd77b843dbb7059f09著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .