basyura's blog

あしたになったらほんきだす。

Redmine - カスタムクエリをタブに追加する

Redmine実践ガイド 理論と実践、事例で学ぶ新しいプロジェクトマネジメント

Redmine実践ガイド 理論と実践、事例で学ぶ新しいプロジェクトマネジメント

チケットの一覧を見る際にはいろいろな視点がある。

  • 担当者の視点で自分担当のチケットを消化していく場合
  • 管理者の視点でステータス別や担当者別など全体状況を把握したい場合

などなど。カスタムクエリを作ってサイドバーにおいておくのも良いのだけど使い勝手が悪い。ちょっと遠いのと目につきにくいからだと思う。メンテをするために都度検索条件を設定するのはさらにめんどくさい。

だったら目について、かつクリックしやすい場所にクエリがあればいい。ちょうど良いスペースが有るし (・`ω・) ドヤァ。

f:id:basyura:20170701225706p:plain

とても便利な View Customize Plugin を使います。

コードはこんな感じで。

$(document).ready(function() {

    var menu = $("#main-menu");
    if (menu.size() == 0)
    {
        return;
    }

    var issue = menu.find(".issues");
    if (issue.size() == 0)
    {
        return;
    }

    var url = issue.attr("href");
    var queries = [
        [1, "担当者別"],
        [2, "ステータス別"],
    ];

    var ul = menu.find("ul");
    $.each(queries, function(i, query) {
        ul.append("<li><a href='" + url + "?query_id=" + query[0] + "'>" + query[1] + "</a></li>");   
    });
});

カスタムクエリがあらかじめ作って有ることが前提のコード。最初は url で検索条件を作っていたのだけど長くてメンテするときにめんどくさいのでやめた。カスタムクエリで登録した方が名称が出てわかりやすいし。

javascript というか jQuery を書くことがほぼほぼ無くなったので作法がイマイチ分からないけどドンマイ。

最近追加して使って見ているのだけど結構便利。久々に良い閃きだったと思う。