Feature #419
複数Redmineの参照
80%
Description
あまり例が無いかもしれませんが、複数のRedmineを参照したい事があります。
サイト&APIキーを複数登録し、表示を切り替えたりできると良いなあと思っています。
案としては以下のような感じ:
- URL&Keyを複数持てる
- 現在設定ファイルがURL用とKey用のそれぞれ別のtxtファイルに書かれている。こちらを変えて、複数設定できるように、設定をXMLで管理する。
Flexアプリを作っていたときは、こんな感じで複数のデータソースを参照するアプリを作っていました。 <Config> <redmine memo="1つめのRedmine"> <url>http://....../</url> <key>xxxxxxxxx</key> </redmine> <redmine memo="2つめのRedmine"> <url>http://....../</url> <key>xxxxxxxxx</key> </redmine> </Config>
- 現在設定ファイルがURL用とKey用のそれぞれ別のtxtファイルに書かれている。こちらを変えて、複数設定できるように、設定をXMLで管理する。
- Redmineが複数の場合は、付箋の色も区別できる。(もしくはカスタマイズ可能)
却下でもかまいません....。
Files
Related issues
Updated by yusuke kokubo almost 11 years ago
提案ありがとうございます。
ぼくの会社では必要なさそうですが、これはあった方が良さそうですね。
というか、設定ファイルをわざわざURLとkeyで分けてるのはXMLで保存して取得する方法がわからなくて断念したという経緯があるので「設定のXML化」は是非ともしたいところです…^^;
Updated by yusuke kokubo over 10 years ago
前向きに検討したいのですが、これをやろうと思うと画面のレイアウトも変わってくるのですぐにはできないかもです。
#誰かが実装してくれれば大歓迎ですが^^;
Updated by yusuke kokubo over 10 years ago
(案をメモ)
複数Redmineを運用するときには個々のサイトを識別するのはURLになる。
なのでURLがキーになってその他APIKeyなどが紐づくような感じになる。
今はURLとKeyを個別のTextFieldになるけど将来的には
URLを選択ボックスにして複数のRedmineを切り替えられるようになったらよいかも。
Updated by yusuke kokubo over 10 years ago
- Target version set to 69
一般ユーザーの人はそれほど必要ないかもしれませんが、
開発側としてはあった方が良いですね…^^;
とりあえずロードマップに表示されるようにバージョンを設定します。
0.1.0目標くらいでどうでしょう。
Updated by Akiko Takano over 10 years ago
サーバサイドのアプリ(Flex)では、設定ファイルをXMLで読み込むことは行っていました。
ローカルで持つ(Airアプリ)は、わたしも今回が初めての経験なので、実装が良くわかっていないのですが、下記が参考になりそうです。
- XML 環境設定ファイルの読み取りおよび書き込み
ウォッチと担当のどっちをデフォルトにするかとか、0件の場合のアラートを表示させるかどうか...などの設定を個人でもほしいなと思ったので、まずは設定のXML化を切り出してみようと思います。
Updated by yusuke kokubo over 10 years ago
【複数のRedmineを管理するUI案】
SQLServerのManagement Studioみたいに画面を2ペインに分けて左側に複数のRedmineサイトを並べて右側にチケット一覧を表示するようにしたらどうだろう?
サイトごとの設定が必要になったときも設定画面への誘導が簡単にできそうな気がする。
Updated by yusuke kokubo over 10 years ago
- File 2ペイン画面案.png 2ペイン画面案.png added
【複数のRedmineを管理するUI案】
SQLServerのManagement Studioみたいに画面を2ペインに分けて左側に複数のRedmineサイトを並べて右側にチケット一覧を表示するようにしたらどうだろう?
サイトごとの設定が必要になったときも設定画面への誘導が簡単にできそうな気がする。
試しにcacooで画面のイメージを作ってみました。
Updated by Akiko Takano over 10 years ago
yusuke kokubo は書きました:
【複数のRedmineを管理するUI案】
SQLServerのManagement Studioみたいに画面を2ペインに分けて左側に複数のRedmineサイトを並べて右側にチケット一覧を表示するようにしたらどうだろう?
サイトごとの設定が必要になったときも設定画面への誘導が簡単にできそうな気がする。試しにcacooで画面のイメージを作ってみました。
SQL Serverユーザなので、イメージは判ります。ありがとうございます
この案でもいいと思いますが、デフォルトは左でプロジェクトをクリックするとGridのデータも変更されるけれど、複数プロジェクト(複数Redmine)を同時に見たい場合もありますよね。
この場合、新規にウィンドウを立ち上げるというのが良いかなと思っています。
そこまではまだ先っぽいですが、可能です。
Updated by yusuke kokubo over 10 years ago
この場合、新規にウィンドウを立ち上げるというのが良いかなと思っています。
表示したいプロジェクトにチェックをつけるとチケット一覧に表示されるようにしたら良いのかなーとも思います。
(それをするとちょっと実装が面倒そうですが)
そこまではまだ先っぽいですが、可能です。
お任せっぱなしですみませんがお願いしますm(_ _)m
Updated by yusuke kokubo over 10 years ago
- Status changed from 新規(New) to 担当(Assigned)
- Assignee set to Akiko Takano
- Target version changed from 69 to 0.0.2
#427 にとって変わる形で0.0.2に入れたいな、と思います。
難しそうなら教えてください。
Updated by Akiko Takano over 10 years ago
落ち着いたので着手しようと思います。
どなたか他に実装担当したいと希望される方、いらっしゃいますか?
本来は、自分がアクセスできるRedmineとプロジェクト一覧が見えて、そこをクリックしたタイミングでデータをロードするほうがいいのですよね。
ただ、ちょっと時間がかかるのと、Look&Feelを確認してもらうため、まずはこの案でいこうと思っています。
- いままでと同じで、URLとKeyのみ指定でHTTPServiceからデータ取得(e4x)
- issueList = new XMLListCollection(event.target.lastResult.issue) でlistが取れる
- ここから、プロジェクトを抽出するのは、こんな感じ
- issueList.project as XMLList
- ここから、重複するプロジェクトを取り除けばよい
- issueList.project as XMLList
ただ、この構成だと、プロジェクトの親子関係はわからないので、kokuboさんの希望の画面からははずれちゃいますね。
また、チケットが無ければ、プロジェクトもツリーに出てきません。
事前に、アクセスできるプロジェクトを取得しないといけませんね。
これはもう一歩先でやりましょうか? それとも、最初はプロジェクト一覧を取得するようにしてしまい、そのあとでチケットを取りにいくようにしましょうか?
Updated by yusuke kokubo over 10 years ago
事前に、アクセスできるプロジェクトを取得しないといけませんね。
これはもう一歩先でやりましょうか? それとも、最初はプロジェクト一覧を取得するようにしてしまい、そのあとでチケットを取りにいくようにしましょうか?
最終的な完成形はなんとなく認識を共有できてる感じがする
(SQLServer Management Studioみたいな感じでサーバに接続してプロジェクトからツリーでつながる)
のでakikoさんにとってやりやすい方法で進めてください。
Updated by Akiko Takano over 10 years ago
- % Done changed from 0 to 10
説明があまりうまくなくて、申し訳ありません。
たたき台が無いと難しいので、とり急ぎ形になるものを用意してみます。
その上で、あらためて。
Updated by yusuke kokubo over 10 years ago
ちょっとここに書くのが遅すぎたかもしれませんが、考えたことをメモしておきます。
複数Redmineの処理について自分がイメージしてることです。
※※あくまでもメモなので違った実装に手をつけてても気にしないでください
- 画面に何も表示されていない状態から「接続」をクリックしてRedmineサイトを追加する
- ツリーを展開すると/projects.xmlを読み込んでプロジェクト一覧を取得する
- プロジェクトは親子関係を考慮して並ぶ
- 展開されたプロジェクトをクリックすると/issues.xml?project_id=xxxを読み込んでチケットを一覧に表示する
- 1度取得したチケットはキャッシュしておいてユーザーが再読み込みしたタイミングでサーバに取得しにいく
Updated by Akiko Takano over 10 years ago
途中経過ですが、挙動が変わってくるので、これでいいかどうか書き込みます。
1. 現在は登録されているURLとKeyをもとに、起動直後に自動でデータを取得しています。(issues.xmlから)
2. プロジェクトツリーの構成にした場合は、下記のような挙動となるが、これでOKでしょうか?
- 登録されているURLとKeyをもとに,起動直後に project.xml を参照しに行く。
- チケットの取得は行わない。
- プロジェクトツリー描画後、ユーザが希望のプロジェクトをクリックしたアクションで、はじめてチケットデータを取りに行く。
- データ取得はプロジェクト単位。
- issues.xml にプロジェクトのクエリをくっつけてサーバ側で絞り込んだ結果をもらう。
まず、『ユーザのクリックのアクションで、はじめてチケットデータを取りに行く』という動きになるのはOKかどうか確認したいのですが、如何でしょう。(今までの動作と動きが異なります)
また、プロジェクト一覧の中からプロジェクトを選択しても、チケットのないものもありますので、そういったプロジェクトもツリーに表示してOKでしょうか。
最初に自動で全チケットを取りにいくのであれば、チケットのあるプロジェクトのみを絞り込むこともできますが、この場合は、
全チケットを先に取得して、クライアント側(Airの側)で、チケットのなかからフィルタをかけてプロジェクト単位で取り出すことになります。
Redmineの返すXMLは、どちらにしてもmxmlのTree構造に利用するデータとしては向いていないので、Air側でいったんXMLを変換する作業が発生します。
#ほんとうは、Redmine側の返すXMLを、Flexが扱いやすいかたちに拡張するのが楽なのですが、そういう希望は通らないでっしょうね。SQL ServerのようにSQLでXMLを好きな形に変換できるわけではないので、やや面倒です(^^;
Updated by yusuke kokubo over 10 years ago
まず、『ユーザのクリックのアクションで、はじめてチケットデータを取りに行く』という動きになるのはOKかどうか確認したいのですが、如何でしょう。(今までの動作と動きが異なります)
OKです。ぼくの考えてたことと同じです。
また、プロジェクト一覧の中からプロジェクトを選択しても、チケットのないものもありますので、そういったプロジェクトもツリーに表示してOKでしょうか。
これもOKです。
最初からそこまで考慮に入れなくてよいと思います。
#ほんとうは、Redmine側の返すXMLを、Flexが扱いやすいかたちに拡張するのが楽なのですが、そういう希望は通らないでっしょうね。SQL ServerのようにSQLでXMLを好きな形に変換できるわけではないので、やや面倒です(^^;
そうなんですか…。ちょっと面倒ですがRedmineAir側で頑張るしかなさそうですね。
Updated by Akiko Takano over 10 years ago
- % Done changed from 10 to 40
#419 に現在試しているパッケージを添付しました。
プロジェクトを複数選択・登録するためのUIが無いので、実質意味が無いのですが...。
左側のツリーに、Redmineのルートが複数表示される感じです。
また、プロジェクトのツリー構造ですが、現在XMLをうまく変換させることができないので、考えあぐねています。
このため、構造がフラットになっています。
ツリーとDataGrid双方を並べると、画面サイズも調整しないといけなくなりますね。
ここもUIとして考えどころです。
ご意見等いただければ幸いです。
Updated by yusuke kokubo over 10 years ago
- Target version changed from 0.0.2 to 0.0.3
ちょっと簡単にはいきそうにないので0.0.3に移動させます。
Updated by Akiko Takano over 10 years ago
了解しました。
メイン画面の分割(設定と一覧を分離) -> プロジェクトツリーでの表示 -> 複数Redmineを登録可能な設定をもてるようにする、といった作業が必要になるなと感じたので、助かります。
Updated by Akiko Takano over 10 years ago
放置してしまっていた複数化ですが、ご意見伺えれば幸いです。
わかりにくければ、図を描いてみますので...。
1. チケットリストの見せ方- 複数Redmineがある場合、取得結果を1つのリストにまとめて見せるのはNGでしょうか?
- Redmineごとにリストの画面を作ったり切り替えたりするのは難しい気がしています。
- Windowオブジェクトを動的に複数生成しないといけなさそうで、扱いにくいなと思っています。
- 起動時、もしくは更新アクションのタイミングで、複数のデータソースから一度に取得し、表示の際にはまとめて表示します。
- もちろん、指定のRedmineや指定のプロジェクトを選択した場合は、フィルタリングして対象のものだけをリストに表示する感じです。
- 関連するRedmineの情報が変わったり、参照対象から外れた場合、先に永続化して保存してある付箋データは、削除したほうがいいのでしょうか。それとも、単独で付箋は付箋としてActivateできるほうがいいでしょうか。
- 同様に、RedmineのURLを変更したい場合は、削除 -> 再登録という操作のほうがシンプルでしょうか。
Updated by yusuke kokubo over 10 years ago
自分もなかなか関われなくてすみません…^^;
1. チケットリストの見せ方
問題ないと思います。
現状を考えると1番シンプルな方法だと思うので。
2. 対象RedmineのURL更新や削除の場合
- 関連するRedmineの情報が変わったり、参照対象から外れた場合、先に永続化して保存してある付箋データは、削除したほうがいいのでしょうか。それとも、単独で付箋は付箋としてActivateできるほうがいいでしょうか。
削除で良いと思います。
#最初のうちはそんなに気にせず作って後から考えても良いかもしれません
- 同様に、RedmineのURLを変更したい場合は、削除 -> 再登録という操作のほうがシンプルでしょうか。
そうですね。
URLを変更ってそんなに滅多にすることではないと思うので
作り手側の作りやすさを優先して良いと思います。
Updated by Akiko Takano over 10 years ago
お返事ありがとうございます。
#skillmapsもありますしね(^^
いろんなAirのUIやサンプルコードを見たりして悩んでいたのですが、まずはシンプルにしてみます。
ブランチとマージしたタイミングでどうかなと思ったのですが、結構実装が変わりそうなので、別途ためしてアップしてみます。
Updated by Akiko Takano over 10 years ago
- File redmine.air redmine.air added
- % Done changed from 40 to 50
ずいぶん間があいてしまいました。
SQLite化も試していたため、遅くなっていて申し訳ありません。
複数Redmineを登録してデータを参照するプロトタイプを作成してみました。
ソースは特にコミットせず、ローカルで作成しています。
redmine.air というパッケージで、データはマイドキュメントの下の、redmine というフォルダの下に作成されます。
下記のようなファイルができます。
- SQLiteのDBファイル
- log.txt
- debug.txt
できれば、お試しいただければと思います。
まだまだなので、下記のような制限があります。
- 付箋は開けません(付箋の部分は実装してない)。
- 参照できるタイプは、Assigned_id=me (自分の担当中のもの)のみです。
- エラー処理とか、MVCの分離とかは考慮されてません。とにかく動くレベル。
- 説明、ヘルプ、マルチリンガル対応は一切なし。
- アプリケーションの起動に関しても何も考慮無し。
なお、 #468 で、タイムラインの取得というものがあったので、RSS FeedのKeyを入力すると、活動履歴も取ってくるようにしてみました。
いずれは、新着をポップアップするとかが良いのかなと思います。
現在は、Feedした内容を一覧で出し、クリックすると本文をHTMLで表示します。
Updated by yusuke kokubo over 10 years ago
試してみました。
すごいですね!見た目がかなりカッコよくなっています。
第一ステップとしてはとても良いと思います。
必要があればブランチにコミットしてください。
Updated by Akiko Takano over 10 years ago
r113 に、ひとまずAntでもビルドできる状態までコミットしました。
Burritoで作成しましたが、Flex4.1をベースにしているので、一応r-labsのHudsonや開発者の皆さんの環境でビルドできると思います。
- ant compile -> swfの形にビルド
- ant run -> adl でプログラム起動
下記のような変更や制限があります。
- Viewとロジックの分離のために、AbstractViewHelper の利用をしてみています。
- Ref: http://www.adobe.com/jp/devnet/flex/articles/imxmlobject_interface_04.html
- ちなみに、もとのソースはMITライセンスです。せっかくなので、パッケージ構成もふくめそのまま利用させておらおうかと思います。
- FxUGのnobuさんにお話をしてみます。(nobuさんのCopyrightをそのまま保持する形)
- ロギングのテストを行っています。
- as3corelib.swc というバイナリになったライブラリを利用しています。
- 上記は暗号化にも利用できます。
- http://github.com/mikechambers/as3corelib
- 必要があれば、こちらもソースからビルドする形で利用するのもいいかと思います。
- 付箋は実装されていません。
- NativeMenuは実装していません。
- とりあえず国際化はなしで英語のみです。
- 現在のRedmineAirとインストールパスがかぶらないようにしてください。
- Haloスキンを当ててみています。
Redmineの操作には、XMLを結構利用しています。
いまはひとつのASの中でHTTPリクエストからデータ取得を行っていますが、Redmine用のクラス(コントローラ)を作成し、Observerパターンみたいな感じで複数のRedmineコントローラの動作を管理するような方向が良いかと思います。
Updated by Akiko Takano over 10 years ago
- File redmineAir.air redmineAir.air added
- % Done changed from 50 to 60
もう一回、手元でパッケージ化したものをアップします。
大枠のチケット選択のUIのイメージの確認のため、できれば複数Redmineを利用されている方にテスト・ご協力いただければ幸いです。(お声がけいただければ幸いです)
ログの参照、プロジェクト名でのフィルタリングのような機能を追加しています。
ただし、付箋機能はまだ実装していません。だいたい良さそうなら、trunkの機能をベースにして取り込んで行きます。
また、できればコミット漏れの防止の兼ねて、Hudsonでのビルドを行っていきたいのですが、どうするのが良いでしょう?
Updated by yusuke kokubo over 10 years ago
もう一回、手元でパッケージ化したものをアップします。
ありがとうございます。試してみました。
プロジェクトでフィルタリングできる仕組みがすごく便利だと思いました。
機能的には現状バージョンにだいぶ近づいてきた感じですね!
大きな不満はありませんが、ちょっと気になった点について
- 全体のwindowのサイズは固定にしますか?
- Redmineのadd, edit, removeはRedmine Listのすぐ下で良いと思います
- 真下にあると見つけるのに時間がかかるので
- 画面下部にチケットへのリンクを表示してますが現バージョンみたいに一覧のチケットNoをクリックで遷移するようになっていても良いかと思います
- ちょっと表示領域を取り過ぎているような感じがします
- チケットのxmlを表示する領域はxmlを見やすくレンダリングした画面と切り替えられるとすごく便利そうですね(先の話)
また、できればコミット漏れの防止の兼ねて、Hudsonでのビルドを行っていきたいのですが、どうするのが良いでしょう?
だいぶ新バージョンができつつあるので、
現trunkはtag付けして凍結させて、新バージョンをtrunkにしても良いかと思います。
もしくはGitHubにリポジトリを移行するかですが。
(Mercurialはゴメンなさい…)
Updated by Akiko Takano over 10 years ago
ご確認ありがとうございます。
また、haruさんにもビルドを試していただいたみたいで、こちらもありがとうございます。
UIの面はとても重要なので、できるだけちょっとした改善も加えていただくほうが良いと思います。
皆さんの環境で試せるようにしますので、もう少しお待ちください。
チケットのxmlを表示する領域はxmlを見やすくレンダリングした画面と切り替えられるとすごく便利そうですね(先の話)
そのあたりの楽しい動作は好きなので、実装すると思います。
また、リポジトリはこの際どこでも構いません。GitHubでも構いませんので、場所だけ作っていただければ幸いです。
#すごく汚いコードなので(汗)リファクタリング必須ですが、アジャイル風にがんばります...。
Updated by Akiko Takano about 10 years ago
- % Done changed from 60 to 80
複数Redmineを登録して、チケットの取得をするところまで持って行きました。
(commit:79e4a6fa0b23c536a4be63dc566fb27c68cfbb00)
複数化対応で削いでしまった部分をこれから追加します。
#いまごろちまちま進めていますが、需要あるかな...。