Redmine: チェックボックスのカスタムフィールドを横並びで表示する (View customize plugin)

Redmine Users (japanese) - Google グループで、チェックボックスを横並びにしたいといった要望が出ていたので、View customize でやってみます。

なお、段組みを行う方法は以前書きましたが、段組みだと、コンテンツは上から下に流れるため、並び順としては横に並ばない形になります。

横に並べる方法としては、CSS3でflexboxという仕組みがあるので、これを使います。

flexboxを使うと、コンテンツを横並びに隙間なく埋めることが出来ます。(昔はfloatで頑張らなければならなかったので、便利になりましたね!)

設定内容

Path pattern

チケット編集系の画面を対象とします。

/issues

Code

Type:StyleSheetとして下記を設定します。

span.enumeration_cf.check_box_group {
  display: flex;
  display: -webkit-flex;
  flex-wrap: wrap; 
  -webkit-flex-wrap: wrap; 
}

項目のサイズを統一したい場合には、下記も追記します。(下記の例だと幅を60pxに)

span.enumeration_cf.check_box_group label {
  width: 60px;
}

結果

下記のように横並びで表示されるようになります。

f:id:onozaty:20161023004832p:plain

サイズを統一した場合は、下記のようになります。

f:id:onozaty:20161023005014p:plain

Redmine: コンテキストメニューからステータスを変えた際に、対象バージョンも変更する (View customize plugin)

Issueとして、コンテキストメニューからステータスを却下(6)に変えたときに、対象バージョンを未設定としたいんだけど、どうやれば、、といったものが上がっていたので、スクリプトを書いてみました。

やり方としては、コンテキストメニューが生成されたタイミングで、ステータスを却下に変えるリンクのパラメータに、対象バージョンも追加します。

設定内容

Path pattern

チケット一覧を対象にします。

/issues

Code

Type:JavaScriptとして下記を設定します。

$(function() {

  // コンテキストメニューを表示したタイミングでフックするために
  // jQueryのshow関数を差し替え
  jQuery.fn._show = jQuery.fn.show;

  jQuery.fn.show = function() {
    if (this.attr('id') == 'context-menu') {
      // ステータスを6:却下に変える場合に
      // 対象バージョンを未設定に
      var a = $('#context-menu a[href*="status_id%5D=6"]');
      a.attr('href',a.attr('href') + '&issue%5Bfixed_version_id%5D=none');
    }

    return jQuery.fn._show.apply(this, arguments);
  };
});