View customize pluginを使いこなす

onozaty
View customize pluginを
使いこなす
2016-05-14
第10回redmine.tokyo勉強会
Hirokazu Onozato
@onozaty
自己紹介
• Hirokazu Onozato (onozaty) オノザティ
• https://twitter.com/onozaty
• https://github.com/onozaty
• http://www.enjoyxstudy.com/
• 株式会社ユニスティ所属
• エンジニア
• アプリケーション開発
• マネージメントも少々
個人で作ったもの
• 個人の時間を使って作ったものを公開
• http://www.enjoyxstudy.com/products.html
• Firefoxの拡張機能、JavaScriptライブラリなど
• suggest.js - 入力補完ライブラリ
http://www.enjoyxstudy.com/javascript/suggest/
• ShortcutKey2URL ‐ショートカットキーでURLを開くための
Firefoxの拡張機能
http://www.enjoyxstudy.com/firefox/extension/shortcutkey2url/
• IRCbot Console - ブラウザから操作できる多機能なIRCボット
http://www.enjoyxstudy.com/ircbotconsole/
RedmineのPlugin
• RedmineのPluginも2年くらい前から作り出した
• 業務であったらいいなと思うものを、プライベー
トな時間で作って公開+自分でも利用
• View customize
https://www.redmine.org/plugins/redmine_view_customize
• Parent issue filter
https://www.redmine.org/plugins/redmine_parent_issue_filter
• Copy parent issue id
https://www.redmine.org/plugins/copy_parent_issue_id
Redmineの使用状況
• Redmine使用歴6年
• 初めて触ったのは10年前だったが、その時はあまり
しっかり使わずに、6年前から継続して使用
• 現プロジェクトでは、0.9 から使い始めて、1.x、
2.x とマイグレーションを重ねて、今は3.1を利用
• チケット数は40,000超え
利用プラグイン
• View customize https://www.redmine.org/plugins/redmine_view_customize
• Parent issue filter https://www.redmine.org/plugins/redmine_parent_issue_filter
• Copy parent issue id https://www.redmine.org/plugins/copy_parent_issue_id
• Issue Template https://www.redmine.org/plugins/issue_templates
• Checklists https://www.redmine.org/plugins/redmine_checklists
• News Notification https://github.com/georz/redmine_news_notification
• その他自作Pluginも
View customize plugin
View customize plugin
• Redmineの画面をカスタマイズするためのPlugin
• https://www.redmine.org/plugins/redmine_view_customize
• https://github.com/onozaty/redmine-view-customize
• 特定の画面に対して、JavaScript、CSSを埋め込む
機能を提供
View customize plugin
• Redmine自体のコードを変更したり、プラグイン
を作ったりといった手間無く、手軽にカスタマイ
ズできる
• 再起動不要でカスタマイズを適用
≒UserScript
• UserScriptをクライアントではなく、サーバ側で
設定して、Redmineを使用する全ユーザに適用す
るイメージ
※UserScriptとは、画面ロード時に任意のJavaScriptを実行して
画面カスタマイズを行えるブラウザの機能
できることの例
• プロジェクト毎にヘッダの色を変える
• チケット一覧を識別しやすいように装飾
• チケット作成時にトラッカーに応じてデフォルト値を設定
• サイドバーを開閉式に
• 「全てのチケット一覧」リンクをヘッダに
• 進行中にもかかわらず担当者が未設定の場合に警告を表示
• ユーザ選択のカスタムフィールドで自分を選択する項目を先頭に追加
• プロジェクト一覧からの各プロジェクトへのリンク先を変更
• カスタムフィールドを連動させる(親の値に応じて、子を絞り込む)
• コンテキストメニューを選択しやすくする
注意点
注意点
• View customize pluginでは、画面側(JavaScript、
CSS)でしかカスタマイズできないため、出来ない
こともある
• 画面にない情報を表示するとか
注意点
• 画面だけでもいろいろ解決できることがあるが、
もしも欲しい機能に特化したプラグインがあるな
らば、そちらを使った方が良い
• 画面側だけの制約が無いので、シンプルな実装になっ
ているはず
• その機能の検証も十分行われているはず
使い方
インストール
• Redmineのインストールディレクトリ配下の
pluginsディレクトリに移動して、View customize
pluginのリポジトリをclone
※clone時のディレクトリ名はview_customizeとしてください
cd /var/lib/redmine/plugins
git clone https://github.com/onozaty/redmine-view-customize.git view_customize
rake redmine:plugins:migrate RAILS_ENV=production
インストールしただけでは…
• 何も変わらない
• View customize pluginは、Redmineの拡張方法を
提供するだけで、どう設定するかはユーザ次第
設定方法
• 管理 > View customize で一覧画面へ遷移し、
「New view customize」で設定入力画面へ
設定方法
コードを実行するパス(URL)。
正規表現で記載。
実行するコード。
JavaScript または
StyleSheet(CSS)で書く。
Redmineの画面で使用され
ているjQueryも使える。
(Redmineのバージョンに
よってライブラリが違うの
で注意)
プライベートにチェックを入れると、作成したユーザ
のみに有効
実行
• Pathが一致すると、画面にコードが埋め込まれて
実行される
View customizeを触るうえで
キーとなる技術
キーとなる技術
• JavaScript(ブラウザ上で動作するスクリプト言語)
とCSS(ページのデザインを定義する仕組み)で設定
するので、オリジナルのカスタマイズをしたい場
合には、それらの知識が必要となってくる
• ただ、カスタマイズをするにあたって、そこまで多く
の知識が求められるわけではないので、調べたり、見
よう見まねでもどうにかなるはず
• 実際JavaScriptやCSS知らなかった人でも、調べながらで使え
てたりする
jQuery
jQuery
• JavaScriptライブラリ
• https://jquery.com/
• RedmineではjQueryをすべての画面で読み込んで
いるので、View customizeでもjQueryが利用でき
る
jQuery
• jQueryを使うと、クロスブラウザによる違いの煩
わしさを吸収したり、DOM操作が簡潔に書けるの
で便利
• ただ、最近のブラウザだと標準で代替するようなメ
ソッドが提供されているので、IE8捨てられるならば、
jQuery使うまでもないかも
• WebにjQueryの情報はあふれているので、調べる
のも簡単
CSSセレクタ
CSSセレクタ
• CSSセレクタとは、CSSでスタイルを適用する対象
を示すもの
• View customizeでも良く使うことになる
• JavaScriptで指定要素を取得するとき
• jQueryの$(selector)関数
• CSSで対象を指定するとき
div#header h1
設定に関するノウハウ
対象画面の指定方法
Path pattern
• Path patternに一致した画面の場合、該当のスクリ
プトが埋め込まれる
• 正規表現で記載する
URLとPath
• URLでアプリケーション配下がPath
• クエリパラメータは含まれない
• http://example.com/projects
-> /prjects
• http://example.com/projects/a/issues?set_filter=1
-> /projects/a/issues
• http://example.com/redmine/projects
※ドキュメントルートではなく、/redmineとしてインストール
-> /prjects
Pathを確認する方法
• バージョン1.1.4から、HTMLにPathをコメントと
して埋め込むようになっている
• ブラウザのソース表示で見ればその画面のPathが
わかる!
指定例 (よくつかうもの)
Path pattern 一致する画面
.* 全ての画面
/issues$ チケット一覧
/issues/new$ チケットの新規作成画面
/issues/[0-9]+$ 個々のチケット内容表示画面
/issues/[0-9]+/copy$ チケットのコピーによる作成画面
/issues/gantt ガントチャート
/projects$ プロジェクト一覧
.*[]+$ といった文字は、正規表現におけるメタ文字(特殊な意味をもった文字)
チケットの入力フォーム
• チケットの入力フォームは、いろいろな画面で存
在するので、Pathの指定だけだと面倒
• /issues/1 ○チケット内容表示画面でも編集ボタンでフォームが
• /issues/new ○新規作成
• /issues/1/copy ○コピーによる作成画面
• /issues/gantt ×ガントチャートなので、これは一致させたくない
• /issues ×チケット一覧の場合 ○チケット登録時のValidationエラーの場合
Path pattern + JavaScriptで絞る
• “/issues” と指定して、JavaScript側でチケットの入
力フォームが無かったら処理しないようにする
• チケットの入力フォームでしか存在しない要素
(#issue-form とか)で確認する
• 指定した要素が無かった場合でも処理がスキップされ
るように書いていればOK
jQueryの$(selector)関数
• jQueryの$(selector)関数で返却されるjQueryオブジェクト
は、一致する要素が無かった場合、何も処理されないので、
それを使っていれば大丈夫
• 上記例だと、入力フォームが無かった場合、on関数でのイベント
登録が行われず、何も処理されないことになる
(エラーにもならない)
$('#issue-form input[type="submit"]')
.on('click', function(event) {
// 送信ボタン押下時に何か処理を行わせる
});
プロジェクト毎の指定
• チケット詳細画面(/issues/1 など)は、プロジェク
トをパスに持たないので、Pathだけだとプロジェ
クトを指定できない
• /projects/prj1/issues
• /projects/prj1/issues/1 ×これはパスとして無効
• /issues/1 ○チケット詳細はプロジェクト関係なく固定パス
body要素に付与されるclass属性で判断
• body要素のclass属性に project-プロジェクト識別
子 が設定されるので、これを使ってプロジェクト
を識別する
JavaScriptでプロジェクトを判定
• jQueryの.hasClass()関数で指定のクラス名が存在
するかチェックできる
• または、class属性を取り出して比較するなど
if ($('body').hasClass('project-prj1')) {
// プロジェクト識別子が'prj1'の場合
}
CSSでプロジェクトを指定
• CSSのセレクタでbodyのclassを利用するだけ
body.project-prj1 #top-menu {
background-color: #006400; /* dark green */
}
body.project-prj1 #header {
background-color: #008000; /* green */
}
class属性が振られるもの
• プロジェクト以外にも、class属性が振られるもの
が多々あるので、対象画面や対象箇所を限定する
のに使用できる
class属性が振られるもの
• body要素
• controller-{コントローラ名}
• action-{アクション名}
• チケット一覧の各行
• tracker-{トラッカーID}
• status-{ステータスID}
• priority-{優先度ID}
• created-by-me
class属性が振られるもの
• 他にもいろいろあるので、詳しくは「Redmineの
画面で振られているclass属性について -
Enjoy*Study」にて
• http://blog.enjoyxstudy.com/entry/2014/10/11/000000
コード(JavaScript)の書き方
ブラウザの開発者ツールを活用
ブラウザの開発者ツール
• いきなりView customizeで設定するのではなく、
ブラウザの開発者ツールを使いながら作成、確認
する
• DOMインスペクタ
• コンソール
ブラウザの開発者ツール
• 開発者ツールは、Chrome、Firefox、IE それぞれ
のブラウザに標準でも入っている
• Firefoxだと拡張機能のFirebugでもOK
• 愛用しているので、以降のキャプチャはFirebugにて
DOMインスペクタ
• 選択した要素がHTML上でどういった構造で書か
れているか確認できる
• ソース表示で見るより簡単
コンソール
• 表示している画面に対してのJavaScriptの実行を手
軽に試せる
• 補完も効く(複数行モードの場合はダメ)
コンソール
• 複数行まとめて実行できるものもあり、長めの
コードでも修正、実行を繰り返し行える
実際に試してみる
例:ヘッダにチケット一覧リンクを追加
• やること
1. どこに要素を追加すればよいか調べる
2. その要素を起点に、リンクを追加するコードを書く
3. うまくいったら、View customize で設定
(いったんプライベートで)
4. 動作することが確認できたら、プライベートを外し
て全体に反映
追加位置を調べる
• DOMインスペクタで追加したい位置を選択
追加位置を調べる
• パスを確認
• id属性がtop-menuとなっているdiv要素配下のul要素の
最後に追加してあげればよさそう
追加位置を調べる
• コンソールで追加対象の要素を取得してみる
• div#top-menu > ul (id属性がtop-menuのdiv要素の子
のul要素) で取れた
リンクを追加するコードを書く
• 対象のul要素の子要素として、リンクを追加する
コードを実行し、思った動作になるまで確認
View customizeで設定
• 画面の描画完了時にコードを実行する必要がある
(描画完了前だと、要素が取得できない)ので、
jQueryの$(function)関数を利用
$(function() { // ロード完了時に呼び出される
$('#top-menu > ul')
.append('<li><a href="/issues">全てのチケット</a></li>');
});
View customizeで設定
• いったんプライベートで設定し、動作を確認する
• 動作OKでプライベートを外して、全体に有効へ
コード(CSS)の書き方
JavaScriptの時と同じ
• DOMインスペクタで、変更したい要素を探す
• CSSセレクタがどうなりそうかも確認しておく
• 要素のスタイルを変えて試す
CSSをView customizeに設定
• Path Patternは絞れるならば絞って問題ないが、
CSSセレクタ自体で対象箇所が絞ってかけるので、
全画面対象でもほとんど問題なし
• そのままCSSを書くイメージ
CSSセレクタの書き方
CSSセレクタの確認
• DOMインスペクタを使うことによって、CSSセレ
クタはわかる
CSSセレクタの指定
• bodyからすべてのパスを書く必要はなく、id属性
が付与されているものを起点に考えると良い
• id属性は、一意のものになるので
body div#wrapper div#wrapper2 div#wrapper3 div#header h1
div#header h1
bodyからのフルパス
こっちで十分
良く使うCSSセレクタ
他にもいろいろあるので、詳しくない場合には
”CSSセレクタ”で一度調べておくと良い
セレクタ名 書式 対象
型セレクタ E E要素
idセレクタ E#myid id名がmyidのE要素
classセレクタ E.warning class名がwarinigのE要素
子孫セレクタ E F E要素の子孫にあたるF要素
子セレクタ E > F E要素の子にあたるF要素
(子孫セレクタは、E要素の配下ならば、ど
こにあっても良いが、子セレクタは、1階層
下のみが対象)
CSSセレクタで気を付けること
• 必要のない要素と一致させない
• 一致してしまう場合には、条件をもっときつく
• 単に要素を指定するのではなく、要素+属性で指定す
る(idセレクタ、classセレクタなど)
• 子孫セレクタではなく子セレクタを使うなど
うまく動作しないときの
確認ポイント
Path patternがあっているか
• 画面のソースを表示して、View customizeで指定
したコードが埋め込まれているか確認
• 埋め込まれていない場合、Path patternが間違えている
ので、Path patternを見直す
JavaScriptでエラーが発生していないか
• 開発者ツールで、エラーメッセージが出力されて
いないか確認
• エラーメッセージが出力されていれば、それをもとに
JavaScriptを修正
CSSが上書きされていないか
• 複数のCSSが一致する場合、その要素に対してど
のようなスタイルが適用されるかは、優先度に
よって決まる
• 該当の要素を詳細に指定している方が優先される
• 型セレクタよりidセレクタで指定したものの方が優先
• セレクタのレベルが同じならば、後に書かれたものが
優先される
CSSが上書きされていないか
• 上にあるほどもの優先度が高い
• 取り消し線のものは、優先度が高いものによって上書きさ
れているもの
チケットの入力フォームがらみは面倒
• チケットの入力フォームは、トラッカーまたはス
テータスが変わると、フォームの再読み込みが行
われる(#all_attributes配下が差し替わる)
• これは、トラッカーやステータスによって入力可能な
フィールドや選択肢が変わるため
• これにより入力フォームの各要素に対する変更(内
容変更や、イベントの登録)は、リセットされてし
まう
チケット入力フォームに対するイベント
• 入力フォームが差し替わってもハンドリングでき
るようにする必要がある
• 考え方としては、親の要素に対してイベントを登
録しておいて、イベントが発生した際に発生元が
該当のものか判断するようなイメージ
• jQueryのon関数を使うと簡単に書ける
チケット入力フォームに対するイベント
• ダメな例
これだと、入力フォームが差し替わったタイミングで登録先の要素
(#issue_status_id)が別物に変わってしまうのでうまく動かない
• OKな例
documentに対してイベントハンドラを登録し、該当の要素(#issue_status_id)
が発生元だったら動作するように書くことによって、#issue_status_idが差し
替わってもハンドリング可能に
$('#issue_status_id')
.on('change', function(e) {
// ステータス変更時に実施したい処理
});
$(document)
.on('change', '#issue_status_id', function(e) {
// ステータス変更時に実施したい処理
});
チケット入力フォームに対する変更
• 入力フォームが差し替わると、変更した内容も元
に戻ってしまうので、差し替わったタイミングで
処理する必要がある
• たとえば、カスタムフィールドの値に応じて、他のカ
スタムフィールドで選択可能な値を絞る場合など
チケット入力フォームに対する変更
• 差し替え処理を行っている関数をフックして、差
し替え処理の後に処理を差し込む
• replaceIssueFormWith 関数が、差し替え処理を行って
いる関数なので、そこを対象に
// 関数を別名で退避
var _replaceIssueFormWith = replaceIssueFormWith;
// 関数を中身を変更
// 退避した処理を呼び出すような関数として作り変える
replaceIssueFormWith = function(html) {
// 退避しておいた関数を呼び出し
_replaceIssueFormWith(html);
// ここでフォーム差し替え後に
// やりたい処理を書く
};
View customize導入に向けて
試す環境を作る
• プロジェクトで使っているRedmineにいきなり適
用するのは敷居が高いという場合には、まずは仮
想環境などで試してみる
• Redmineの各バージョンのVagrant boxを公開している
ので、そちらを使えばすぐに
vagrant init onozaty/redmine-3.2
vagrant up
スクリプトを書いてみる
• この資料を参考に書いてみる
• スクリプトのサンプルは、下記リポジトリに貯め
ていっているので参考に
• https://github.com/onozaty/redmine-view-customize-scripts
• これからもだんだん増えていく予定
困ったときには
困ったときには…
• @onozaty まで (follow me!!)
• 即レスとまでいきませんが、毎日確認してます
• スクリプト例などもつぶやいています
困ったときには…
• こういうことできませんか?といった質問も、お
気軽にどうぞ
• 一応、全部答えている(できるものはBlogでも公開)つ
もりですが、拾えてなかったらごめんなさい
おわり
1 of 83

Recommended

View customize plugin for Redmineの紹介 (2019年版) by
View customize plugin for Redmineの紹介 (2019年版)View customize plugin for Redmineの紹介 (2019年版)
View customize plugin for Redmineの紹介 (2019年版)onozaty
10.9K views26 slides
Redmineの画面をあなた好みにカスタマイズ - View customize pluginの紹介 - Redmine Japan 2020 by
Redmineの画面をあなた好みにカスタマイズ - View customize pluginの紹介 - Redmine Japan 2020Redmineの画面をあなた好みにカスタマイズ - View customize pluginの紹介 - Redmine Japan 2020
Redmineの画面をあなた好みにカスタマイズ - View customize pluginの紹介 - Redmine Japan 2020onozaty
9.9K views61 slides
View Customize Pluginで出来ること by
View Customize Pluginで出来ることView Customize Pluginで出来ること
View Customize Pluginで出来ることonozaty
51.7K views29 slides
View customize1.2.0の紹介 by
View customize1.2.0の紹介View customize1.2.0の紹介
View customize1.2.0の紹介onozaty
5.2K views40 slides
ある工場のRedmine画面カスタム【View customize plugin 活用例】 by
ある工場のRedmine画面カスタム【View customize plugin 活用例】ある工場のRedmine画面カスタム【View customize plugin 活用例】
ある工場のRedmine画面カスタム【View customize plugin 活用例】Kohei Nakamura
19.2K views15 slides
View customizeでユーザー/プロジェクトのカスタムフィールドを利用した個別カスタマイズの方法 by
View customizeでユーザー/プロジェクトのカスタムフィールドを利用した個別カスタマイズの方法View customizeでユーザー/プロジェクトのカスタムフィールドを利用した個別カスタマイズの方法
View customizeでユーザー/プロジェクトのカスタムフィールドを利用した個別カスタマイズの方法Asa Morino
1.9K views16 slides

More Related Content

What's hot

Redmineカスタムフィールド表示改善 by
Redmineカスタムフィールド表示改善Redmineカスタムフィールド表示改善
Redmineカスタムフィールド表示改善Yuuki Nara
19.5K views21 slides
Redmineをプラグインで拡張しよう by
Redmineをプラグインで拡張しようRedmineをプラグインで拡張しよう
Redmineをプラグインで拡張しようHaruyuki Iida
19.7K views60 slides
RedmineのFAQとアンチパターン集 by
RedmineのFAQとアンチパターン集RedmineのFAQとアンチパターン集
RedmineのFAQとアンチパターン集akipii Oga
66.4K views43 slides
Redmine 5.0 + RedMica 2.1 新機能評価ガイド by
Redmine 5.0 + RedMica 2.1 新機能評価ガイドRedmine 5.0 + RedMica 2.1 新機能評価ガイド
Redmine 5.0 + RedMica 2.1 新機能評価ガイドGo Maeda
1.5K views55 slides
Redmineをちょっと便利に! プログラミング無しで使ってみるREST API by
Redmineをちょっと便利に! プログラミング無しで使ってみるREST APIRedmineをちょっと便利に! プログラミング無しで使ってみるREST API
Redmineをちょっと便利に! プログラミング無しで使ってみるREST APIGo Maeda
32.3K views44 slides
ユーザ要望に応えるView customize活用事例 by
ユーザ要望に応えるView customize活用事例ユーザ要望に応えるView customize活用事例
ユーザ要望に応えるView customize活用事例Hidehisa Matsutani
1.9K views18 slides

What's hot(20)

Redmineカスタムフィールド表示改善 by Yuuki Nara
Redmineカスタムフィールド表示改善Redmineカスタムフィールド表示改善
Redmineカスタムフィールド表示改善
Yuuki Nara19.5K views
Redmineをプラグインで拡張しよう by Haruyuki Iida
Redmineをプラグインで拡張しようRedmineをプラグインで拡張しよう
Redmineをプラグインで拡張しよう
Haruyuki Iida19.7K views
RedmineのFAQとアンチパターン集 by akipii Oga
RedmineのFAQとアンチパターン集RedmineのFAQとアンチパターン集
RedmineのFAQとアンチパターン集
akipii Oga66.4K views
Redmine 5.0 + RedMica 2.1 新機能評価ガイド by Go Maeda
Redmine 5.0 + RedMica 2.1 新機能評価ガイドRedmine 5.0 + RedMica 2.1 新機能評価ガイド
Redmine 5.0 + RedMica 2.1 新機能評価ガイド
Go Maeda1.5K views
Redmineをちょっと便利に! プログラミング無しで使ってみるREST API by Go Maeda
Redmineをちょっと便利に! プログラミング無しで使ってみるREST APIRedmineをちょっと便利に! プログラミング無しで使ってみるREST API
Redmineをちょっと便利に! プログラミング無しで使ってみるREST API
Go Maeda32.3K views
ユーザ要望に応えるView customize活用事例 by Hidehisa Matsutani
ユーザ要望に応えるView customize活用事例ユーザ要望に応えるView customize活用事例
ユーザ要望に応えるView customize活用事例
Hidehisa Matsutani1.9K views
Redmine にいろいろ埋め込んでみた by Kohei Nakamura
Redmine にいろいろ埋め込んでみたRedmine にいろいろ埋め込んでみた
Redmine にいろいろ埋め込んでみた
Kohei Nakamura27K views
Redmine issue assign notice plugin の紹介 by onozaty
Redmine issue assign notice plugin の紹介Redmine issue assign notice plugin の紹介
Redmine issue assign notice plugin の紹介
onozaty2.2K views
Redmineプラグイン導入・開発入門 by Minoru Maeda
Redmineプラグイン導入・開発入門Redmineプラグイン導入・開発入門
Redmineプラグイン導入・開発入門
Minoru Maeda18.5K views
挫折しないRedmine by Go Maeda
挫折しないRedmine挫折しないRedmine
挫折しないRedmine
Go Maeda120.5K views
ある工場の Redmine 2021 ( Redmine of one plant 2021 ) by Kohei Nakamura
ある工場の Redmine 2021 ( Redmine of one plant 2021 )ある工場の Redmine 2021 ( Redmine of one plant 2021 )
ある工場の Redmine 2021 ( Redmine of one plant 2021 )
Kohei Nakamura3K views
継続使用と新規追加したRedmine Plugin by Mei Nakamura
継続使用と新規追加したRedmine Plugin継続使用と新規追加したRedmine Plugin
継続使用と新規追加したRedmine Plugin
Mei Nakamura392 views
Redmineサーバ統合事例 by Yuuki Nara
Redmineサーバ統合事例Redmineサーバ統合事例
Redmineサーバ統合事例
Yuuki Nara7.3K views
Redmineを快適に使うためのおすすめ初期設定 by Go Maeda
Redmineを快適に使うためのおすすめ初期設定Redmineを快適に使うためのおすすめ初期設定
Redmineを快適に使うためのおすすめ初期設定
Go Maeda333.4K views
挫折しないRedmine (2022) by Go Maeda
 挫折しないRedmine  (2022) 挫折しないRedmine  (2022)
挫折しないRedmine (2022)
Go Maeda1.3K views
Redmineの情報を自分好みに見える化した話 by ToshiharuSakai
Redmineの情報を自分好みに見える化した話Redmineの情報を自分好みに見える化した話
Redmineの情報を自分好みに見える化した話
ToshiharuSakai6.6K views
チケット駆動開発現場の最前線.pdf by Yokoba
チケット駆動開発現場の最前線.pdfチケット駆動開発現場の最前線.pdf
チケット駆動開発現場の最前線.pdf
Yokoba 325 views
チケット駆動開発の解説~タスク管理からプロセス改善へ by akipii Oga
チケット駆動開発の解説~タスク管理からプロセス改善へチケット駆動開発の解説~タスク管理からプロセス改善へ
チケット駆動開発の解説~タスク管理からプロセス改善へ
akipii Oga4.4K views

Viewers also liked

ソフトウェアメトリクス概要 20160514 by
ソフトウェアメトリクス概要 20160514ソフトウェアメトリクス概要 20160514
ソフトウェアメトリクス概要 20160514Yutaka Ohwada
10K views33 slides
工数把握のすすめ 〜WorkTimeプラグインの使い方〜 by
工数把握のすすめ 〜WorkTimeプラグインの使い方〜工数把握のすすめ 〜WorkTimeプラグインの使い方〜
工数把握のすすめ 〜WorkTimeプラグインの使い方〜Tomohisa Kusukawa
35.3K views32 slides
Redmineでメトリクスを見える化する方法 by
Redmineでメトリクスを見える化する方法Redmineでメトリクスを見える化する方法
Redmineでメトリクスを見える化する方法Hidehisa Matsutani
25.8K views33 slides
みんなでRedmineをより良くしよう −Redmineプロジェクトへの貢献の仕方− by
みんなでRedmineをより良くしよう −Redmineプロジェクトへの貢献の仕方−みんなでRedmineをより良くしよう −Redmineプロジェクトへの貢献の仕方−
みんなでRedmineをより良くしよう −Redmineプロジェクトへの貢献の仕方−Go Maeda
18.5K views48 slides
「Redmineの運用パターン集~私に聞くな、チケットシステムに聞け」 by
「Redmineの運用パターン集~私に聞くな、チケットシステムに聞け」「Redmineの運用パターン集~私に聞くな、チケットシステムに聞け」
「Redmineの運用パターン集~私に聞くな、チケットシステムに聞け」akipii Oga
152.5K views50 slides
クロスプラットフォーム開発入門 by
クロスプラットフォーム開発入門クロスプラットフォーム開発入門
クロスプラットフォーム開発入門minazou67
16.7K views50 slides

Viewers also liked(18)

ソフトウェアメトリクス概要 20160514 by Yutaka Ohwada
ソフトウェアメトリクス概要 20160514ソフトウェアメトリクス概要 20160514
ソフトウェアメトリクス概要 20160514
Yutaka Ohwada10K views
工数把握のすすめ 〜WorkTimeプラグインの使い方〜 by Tomohisa Kusukawa
工数把握のすすめ 〜WorkTimeプラグインの使い方〜工数把握のすすめ 〜WorkTimeプラグインの使い方〜
工数把握のすすめ 〜WorkTimeプラグインの使い方〜
Tomohisa Kusukawa35.3K views
Redmineでメトリクスを見える化する方法 by Hidehisa Matsutani
Redmineでメトリクスを見える化する方法Redmineでメトリクスを見える化する方法
Redmineでメトリクスを見える化する方法
Hidehisa Matsutani25.8K views
みんなでRedmineをより良くしよう −Redmineプロジェクトへの貢献の仕方− by Go Maeda
みんなでRedmineをより良くしよう −Redmineプロジェクトへの貢献の仕方−みんなでRedmineをより良くしよう −Redmineプロジェクトへの貢献の仕方−
みんなでRedmineをより良くしよう −Redmineプロジェクトへの貢献の仕方−
Go Maeda18.5K views
「Redmineの運用パターン集~私に聞くな、チケットシステムに聞け」 by akipii Oga
「Redmineの運用パターン集~私に聞くな、チケットシステムに聞け」「Redmineの運用パターン集~私に聞くな、チケットシステムに聞け」
「Redmineの運用パターン集~私に聞くな、チケットシステムに聞け」
akipii Oga152.5K views
クロスプラットフォーム開発入門 by minazou67
クロスプラットフォーム開発入門クロスプラットフォーム開発入門
クロスプラットフォーム開発入門
minazou6716.7K views
BTS/ITSの近況とあれこれ 2015 by minazou67
BTS/ITSの近況とあれこれ 2015BTS/ITSの近況とあれこれ 2015
BTS/ITSの近況とあれこれ 2015
minazou6721K views
XPers/失われたリール《腰索》 by ledsun
XPers/失われたリール《腰索》XPers/失われたリール《腰索》
XPers/失われたリール《腰索》
ledsun780 views
早朝コーディングしてみた by Riou Tomita
早朝コーディングしてみた早朝コーディングしてみた
早朝コーディングしてみた
Riou Tomita1.2K views
ゲーム会社で
ゲーム以外のことを開発してる話 by Riou Tomita
ゲーム会社で
ゲーム以外のことを開発してる話ゲーム会社で
ゲーム以外のことを開発してる話
ゲーム会社で
ゲーム以外のことを開発してる話
Riou Tomita2.6K views
Redmineを活用したプロジェクトマネジメント教育について(ダイジェスト版) by Hirofumi Kadoya
Redmineを活用したプロジェクトマネジメント教育について(ダイジェスト版)Redmineを活用したプロジェクトマネジメント教育について(ダイジェスト版)
Redmineを活用したプロジェクトマネジメント教育について(ダイジェスト版)
Hirofumi Kadoya6.6K views
講演1 redmineの簡易crmとしての活用事例r2 by Hidehisa Matsutani
講演1 redmineの簡易crmとしての活用事例r2講演1 redmineの簡易crmとしての活用事例r2
講演1 redmineの簡易crmとしての活用事例r2
Hidehisa Matsutani7.8K views
ある工場はこれでRedmineバージョンアップを決意した by Kohei Nakamura
ある工場はこれでRedmineバージョンアップを決意したある工場はこれでRedmineバージョンアップを決意した
ある工場はこれでRedmineバージョンアップを決意した
Kohei Nakamura5.8K views
Redmineのバージョンアップに追従していくための一工夫 by Go Maeda
Redmineのバージョンアップに追従していくための一工夫Redmineのバージョンアップに追従していくための一工夫
Redmineのバージョンアップに追従していくための一工夫
Go Maeda25.2K views
Unofficial Redmine Cooking 闇鍋_デモ環境への発展 by Yuuki Nara
Unofficial Redmine Cooking 闇鍋_デモ環境への発展Unofficial Redmine Cooking 闇鍋_デモ環境への発展
Unofficial Redmine Cooking 闇鍋_デモ環境への発展
Yuuki Nara4.4K views
はじめる! Redmine (2015) by Go Maeda
はじめる! Redmine (2015)はじめる! Redmine (2015)
はじめる! Redmine (2015)
Go Maeda225K views

Similar to View customize pluginを使いこなす

ここが変わったTizen sdk2.0alpha by
ここが変わったTizen sdk2.0alphaここが変わったTizen sdk2.0alpha
ここが変わったTizen sdk2.0alphaHiroshi Sakate
1.8K views59 slides
Google Apps Scirpt勉強会 #1 by
Google Apps Scirpt勉強会 #1Google Apps Scirpt勉強会 #1
Google Apps Scirpt勉強会 #1ikikko
2K views18 slides
楽天トラベルとSpring(Spring Day 2016) by
楽天トラベルとSpring(Spring Day 2016)楽天トラベルとSpring(Spring Day 2016)
楽天トラベルとSpring(Spring Day 2016)Rakuten Group, Inc.
14.1K views135 slides
Devとopsをつなぐchat ops by
Devとopsをつなぐchat opsDevとopsをつなぐchat ops
Devとopsをつなぐchat opsikikko
1.9K views14 slides
HTML5を使うためのプログレッシブエンハンスメント 〜すべての人に確実に情報を届けるために〜SwapSkillsFreeEventProgressiv... by
HTML5を使うためのプログレッシブエンハンスメント 〜すべての人に確実に情報を届けるために〜SwapSkillsFreeEventProgressiv...HTML5を使うためのプログレッシブエンハンスメント 〜すべての人に確実に情報を届けるために〜SwapSkillsFreeEventProgressiv...
HTML5を使うためのプログレッシブエンハンスメント 〜すべての人に確実に情報を届けるために〜SwapSkillsFreeEventProgressiv...SwapSkills
1.8K views51 slides
WebComponentsとPolymerを使ってみた by
WebComponentsとPolymerを使ってみたWebComponentsとPolymerを使ってみた
WebComponentsとPolymerを使ってみたNakazawa Yuichi
1.3K views27 slides

Similar to View customize pluginを使いこなす(20)

ここが変わったTizen sdk2.0alpha by Hiroshi Sakate
ここが変わったTizen sdk2.0alphaここが変わったTizen sdk2.0alpha
ここが変わったTizen sdk2.0alpha
Hiroshi Sakate1.8K views
Google Apps Scirpt勉強会 #1 by ikikko
Google Apps Scirpt勉強会 #1Google Apps Scirpt勉強会 #1
Google Apps Scirpt勉強会 #1
ikikko 2K views
楽天トラベルとSpring(Spring Day 2016) by Rakuten Group, Inc.
楽天トラベルとSpring(Spring Day 2016)楽天トラベルとSpring(Spring Day 2016)
楽天トラベルとSpring(Spring Day 2016)
Rakuten Group, Inc.14.1K views
Devとopsをつなぐchat ops by ikikko
Devとopsをつなぐchat opsDevとopsをつなぐchat ops
Devとopsをつなぐchat ops
ikikko 1.9K views
HTML5を使うためのプログレッシブエンハンスメント 〜すべての人に確実に情報を届けるために〜SwapSkillsFreeEventProgressiv... by SwapSkills
HTML5を使うためのプログレッシブエンハンスメント 〜すべての人に確実に情報を届けるために〜SwapSkillsFreeEventProgressiv...HTML5を使うためのプログレッシブエンハンスメント 〜すべての人に確実に情報を届けるために〜SwapSkillsFreeEventProgressiv...
HTML5を使うためのプログレッシブエンハンスメント 〜すべての人に確実に情報を届けるために〜SwapSkillsFreeEventProgressiv...
SwapSkills1.8K views
WebComponentsとPolymerを使ってみた by Nakazawa Yuichi
WebComponentsとPolymerを使ってみたWebComponentsとPolymerを使ってみた
WebComponentsとPolymerを使ってみた
Nakazawa Yuichi1.3K views
ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会 by Takayuki Shimizukawa
ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会
ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会
Takayuki Shimizukawa37.8K views
GDK48総選挙の裏側 by Kiyotaka Oku
GDK48総選挙の裏側GDK48総選挙の裏側
GDK48総選挙の裏側
Kiyotaka Oku1.4K views
Chrome Apps のデバイスAPI by yoshikawa_t
Chrome Apps のデバイスAPIChrome Apps のデバイスAPI
Chrome Apps のデバイスAPI
yoshikawa_t21.5K views
Cockpit紹介 by atk1234
Cockpit紹介Cockpit紹介
Cockpit紹介
atk1234782 views
PythonのGUI_2018 with NSEG by Jun Okazaki
PythonのGUI_2018 with NSEGPythonのGUI_2018 with NSEG
PythonのGUI_2018 with NSEG
Jun Okazaki2.6K views
最近作ったもの by onozaty
最近作ったもの最近作ったもの
最近作ったもの
onozaty1.4K views
fulmo by Jun Omae
fulmofulmo
fulmo
Jun Omae880 views
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話 by Akira Inoue
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Akira Inoue2K views
アジャイル開発やってみた by Arata Fujimura
アジャイル開発やってみたアジャイル開発やってみた
アジャイル開発やってみた
Arata Fujimura2.3K views

More from onozaty

Selenium入門(2023年版) by
Selenium入門(2023年版)Selenium入門(2023年版)
Selenium入門(2023年版)onozaty
66 views30 slides
40歳過ぎてもエンジニアでいるためにやっていること by
40歳過ぎてもエンジニアでいるためにやっていること40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていることonozaty
32.3K views18 slides
Java8から17へ by
Java8から17へJava8から17へ
Java8から17へonozaty
735 views61 slides
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 - by
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -onozaty
3.2K views30 slides
Selenium入門 by
Selenium入門Selenium入門
Selenium入門onozaty
1.4K views30 slides
「伝わるチケット」の書き方 by
「伝わるチケット」の書き方「伝わるチケット」の書き方
「伝わるチケット」の書き方onozaty
3.3K views24 slides

More from onozaty(14)

Selenium入門(2023年版) by onozaty
Selenium入門(2023年版)Selenium入門(2023年版)
Selenium入門(2023年版)
onozaty66 views
40歳過ぎてもエンジニアでいるためにやっていること by onozaty
40歳過ぎてもエンジニアでいるためにやっていること40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていること
onozaty32.3K views
Java8から17へ by onozaty
Java8から17へJava8から17へ
Java8から17へ
onozaty735 views
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 - by onozaty
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
onozaty3.2K views
Selenium入門 by onozaty
Selenium入門Selenium入門
Selenium入門
onozaty1.4K views
「伝わるチケット」の書き方 by onozaty
「伝わるチケット」の書き方「伝わるチケット」の書き方
「伝わるチケット」の書き方
onozaty3.3K views
WebSocketでカメラの映像を共有してみた by onozaty
WebSocketでカメラの映像を共有してみたWebSocketでカメラの映像を共有してみた
WebSocketでカメラの映像を共有してみた
onozaty5.2K views
Lombokの紹介 by onozaty
Lombokの紹介Lombokの紹介
Lombokの紹介
onozaty2.5K views
Spring Bootを触ってみた by onozaty
Spring Bootを触ってみたSpring Bootを触ってみた
Spring Bootを触ってみた
onozaty2.7K views
30歳過ぎてもエンジニアでいるためにやったこと by onozaty
30歳過ぎてもエンジニアでいるためにやったこと30歳過ぎてもエンジニアでいるためにやったこと
30歳過ぎてもエンジニアでいるためにやったこと
onozaty2.2K views
技術書のススメ by onozaty
技術書のススメ技術書のススメ
技術書のススメ
onozaty2.4K views
課題管理と情報共有のためのツール群 by onozaty
課題管理と情報共有のためのツール群課題管理と情報共有のためのツール群
課題管理と情報共有のためのツール群
onozaty3.3K views
お試し用のLinux環境を作る by onozaty
お試し用のLinux環境を作るお試し用のLinux環境を作る
お試し用のLinux環境を作る
onozaty3.9K views
業務で使うIRC by onozaty
業務で使うIRC業務で使うIRC
業務で使うIRC
onozaty16.5K views

Recently uploaded

The Things Stack説明資料 by The Things Industries by
The Things Stack説明資料 by The Things IndustriesThe Things Stack説明資料 by The Things Industries
The Things Stack説明資料 by The Things IndustriesCRI Japan, Inc.
58 views29 slides
Windows 11 information that can be used at the development site by
Windows 11 information that can be used at the development siteWindows 11 information that can be used at the development site
Windows 11 information that can be used at the development siteAtomu Hidaka
88 views41 slides
SNMPセキュリティ超入門 by
SNMPセキュリティ超入門SNMPセキュリティ超入門
SNMPセキュリティ超入門mkoda
355 views15 slides
定例会スライド_キャチs 公開用.pdf by
定例会スライド_キャチs 公開用.pdf定例会スライド_キャチs 公開用.pdf
定例会スライド_キャチs 公開用.pdfKeio Robotics Association
111 views64 slides
さくらのひやおろし2023 by
さくらのひやおろし2023さくらのひやおろし2023
さくらのひやおろし2023法林浩之
96 views58 slides

Recently uploaded(11)

The Things Stack説明資料 by The Things Industries by CRI Japan, Inc.
The Things Stack説明資料 by The Things IndustriesThe Things Stack説明資料 by The Things Industries
The Things Stack説明資料 by The Things Industries
CRI Japan, Inc.58 views
Windows 11 information that can be used at the development site by Atomu Hidaka
Windows 11 information that can be used at the development siteWindows 11 information that can be used at the development site
Windows 11 information that can be used at the development site
Atomu Hidaka88 views
SNMPセキュリティ超入門 by mkoda
SNMPセキュリティ超入門SNMPセキュリティ超入門
SNMPセキュリティ超入門
mkoda355 views
さくらのひやおろし2023 by 法林浩之
さくらのひやおろし2023さくらのひやおろし2023
さくらのひやおろし2023
法林浩之96 views
SSH応用編_20231129.pdf by icebreaker4
SSH応用編_20231129.pdfSSH応用編_20231129.pdf
SSH応用編_20231129.pdf
icebreaker4335 views
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料) by NTT DATA Technology & Innovation
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20... by NTT DATA Technology & Innovation
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...

View customize pluginを使いこなす