6
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Redmine でチケットのウォッチャーに特定のメンバーを簡単に追加したい

Last updated at Posted at 2016-12-13

対象

  • Redmine : 3.3.1
  • クライアント : Linux, Firefox 50.0.2

やりたいこと

チケットのウォッチャーに特定のメンバーを追加することが多い。とする。
その状況の良し悪しはおいておく。

チケットを作成するたびにメンバーを選択して追加する操作をせず、簡単に済ませたい。

解決策

URL パラメーター

新規に作成するチケットが対象。だいたいがこれで良い気がする。

"新しいチケット作成時にウォッチャーのデフォルト値を設定したい - Google グループ"
https://groups.google.com/forum/#!topic/redmine-users-ja/qtllw2sUbNw

new?issue[watcher_user_ids][]=1&issue[watcher_user_ids][]=2&&issue[watcher_user_ids][]=3

のように指定してはどうでしょうか。

一括編集

作成済みのチケットが対象。

"Redmine 3.3新機能紹介: 複数チケットに対して一括してウォッチャーを追加 | Redmine.JP Blog"
http://blog.redmine.jp/articles/3_3/add-watchers/

REST API

作成済みのチケットが対象。

説明に

user_id (required): id of the user to add as a watcher

と書かれていて一回にウォッチャー一人しか追加できない (人数分 POST が必要) と思っていたが、以下のようにコントローラの処理を見て複数人を追加できると分かった。

  def create
    user_ids = []
    if params[:watcher].is_a?(Hash)
      user_ids << (params[:watcher][:user_ids] || params[:watcher][:user_id])
    else
      user_ids << params[:user_id]
    end
    users = User.active.visible.where(:id => user_ids.flatten.compact.uniq)
    # 以下省略

ブックマークレット

「新しいチケット」のページを開いている状態で使う。新規に作成するチケットが対象。

javascript:(function() {
    var userIds = [ "6", "7" ];

    var href = $(".search_for_watchers > a").attr("href");
    var url = href ? href.replace(/\/new\?/, "/append?") : href;

    if (url !== href) {
        $.post(url, { "watcher": { "user_ids": userIds } });
    }
})();

次。作成済みのチケットのページを開いている状態で使う。作成済みのチケットが対象。

javascript:(function() {
    var userIds = [ "6", "7" ];
    var key = "";

    $.ajax(
        location.href + "/watchers.json",
        {
            "method": "POST",
            "headers": {
                "Content-Type": "application/json",
                "X-Redmine-API-Key": key
            },
            "data": JSON.stringify({ "watcher": { "user_id": userIds } })
        }
    );
})();

もう一つ。作成済みのチケットのページを開いている状態で使う。作成済みのチケットが対象。

javascript:(function() {
    var userIds = [ "6", "7" ];

    $.post(location.href + "/watchers", { "watcher": { "user_ids": userIds } });
})();
6
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?