プロジェクト

全般

プロフィール

Feature #419

複数Redmineの参照

Akiko Takano約8年前に追加. 7年以上前に更新.

ステータス:
担当(Assigned)
優先度:
通常(Normal)
担当者:
カテゴリ:
付箋
対象バージョン:
開始日:
2010/05/30
期日:
進捗率:

80%

予定工数:

説明

あまり例が無いかもしれませんが、複数の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>
      
  • Redmineが複数の場合は、付箋の色も区別できる。(もしくはカスタマイズ可能)

却下でもかまいません....。

2ペイン画面案.png (8.61 KB) 2ペイン画面案.png yusuke kokubo, 2010/06/29 06:33
redmine.air (113 KB) redmine.air プロトタイプです。 Akiko Takano, 2010/10/26 03:31
screenshot.png (33.7 KB) screenshot.png プロトタイプのスクリーンショット。 Akiko Takano, 2010/10/26 03:59
redmineAir.air (648 KB) redmineAir.air プロジェクトのフィルタ、ログ表示機能を追加したプロトタイプです。 Akiko Takano, 2010/11/08 10:33
175
217

関連するチケット

関連している RedmineAir - Feature #438: 設定情報のオブジェクト化終了(Closed)2010-06-16

関連している RedmineAir - Feature #427: Gridをプロジェクトツリーにしたい却下(Invalid)2010-06-08

次のチケットに先行 RedmineAir - Feature #499: 設定をタスクトレイのメニューからも切り替えられるようにする担当(Assigned)2010-07-26

関係しているリビジョン

リビジョン 580b1f26 (差分)
akiko-pusu が7年以上前に追加

チケットの詳細表示をXML/Textで切り替えるように調整。(IssueID: 419)

ToDo: イメージをつかむため、同じredmineAir.as, redmineAir.mxml でコードを
書いています。チケット一覧、アクション用のスクリプトは、前のバージョンの
ようにメインの画面とは別コンポーネント化する予定です。

Signed-off-by: akiko-pusu <>

履歴

#1 yusuke kokubo約8年前に更新

提案ありがとうございます。

ぼくの会社では必要なさそうですが、これはあった方が良さそうですね。
というか、設定ファイルをわざわざURLとkeyで分けてるのはXMLで保存して取得する方法がわからなくて断念したという経緯があるので「設定のXML化」は是非ともしたいところです…^^;

#2 yusuke kokubo約8年前に更新

前向きに検討したいのですが、これをやろうと思うと画面のレイアウトも変わってくるのですぐにはできないかもです。

#誰かが実装してくれれば大歓迎ですが^^;

#3 yusuke kokubo約8年前に更新

(案をメモ)

複数Redmineを運用するときには個々のサイトを識別するのはURLになる。
なのでURLがキーになってその他APIKeyなどが紐づくような感じになる。

今はURLとKeyを個別のTextFieldになるけど将来的には
URLを選択ボックスにして複数のRedmineを切り替えられるようになったらよいかも。

#4 yusuke kokubo約8年前に更新

  • トラッカーProposal から Feature に変更

#5 yusuke kokubo約8年前に更新

  • 対象バージョン69 にセット

一般ユーザーの人はそれほど必要ないかもしれませんが、
開発側としてはあった方が良いですね…^^;

とりあえずロードマップに表示されるようにバージョンを設定します。
0.1.0目標くらいでどうでしょう。

#6 Akiko Takano約8年前に更新

サーバサイドのアプリ(Flex)では、設定ファイルをXMLで読み込むことは行っていました。
ローカルで持つ(Airアプリ)は、わたしも今回が初めての経験なので、実装が良くわかっていないのですが、下記が参考になりそうです。

ウォッチと担当のどっちをデフォルトにするかとか、0件の場合のアラートを表示させるかどうか...などの設定を個人でもほしいなと思ったので、まずは設定のXML化を切り出してみようと思います。

#7 yusuke kokubo約8年前に更新

【複数のRedmineを管理するUI案】

SQLServerのManagement Studioみたいに画面を2ペインに分けて左側に複数のRedmineサイトを並べて右側にチケット一覧を表示するようにしたらどうだろう?
サイトごとの設定が必要になったときも設定画面への誘導が簡単にできそうな気がする。

#8 yusuke kokubo約8年前に更新

175

【複数のRedmineを管理するUI案】

SQLServerのManagement Studioみたいに画面を2ペインに分けて左側に複数のRedmineサイトを並べて右側にチケット一覧を表示するようにしたらどうだろう?
サイトごとの設定が必要になったときも設定画面への誘導が簡単にできそうな気がする。

試しにcacooで画面のイメージを作ってみました。

#9 Akiko Takano約8年前に更新

yusuke kokubo は書きました:

【複数のRedmineを管理するUI案】

SQLServerのManagement Studioみたいに画面を2ペインに分けて左側に複数のRedmineサイトを並べて右側にチケット一覧を表示するようにしたらどうだろう?
サイトごとの設定が必要になったときも設定画面への誘導が簡単にできそうな気がする。

試しにcacooで画面のイメージを作ってみました。

SQL Serverユーザなので、イメージは判ります。ありがとうございます:)

この案でもいいと思いますが、デフォルトは左でプロジェクトをクリックするとGridのデータも変更されるけれど、複数プロジェクト(複数Redmine)を同時に見たい場合もありますよね。
この場合、新規にウィンドウを立ち上げるというのが良いかなと思っています。
そこまではまだ先っぽいですが、可能です。

#10 yusuke kokubo約8年前に更新

この場合、新規にウィンドウを立ち上げるというのが良いかなと思っています。

表示したいプロジェクトにチェックをつけるとチケット一覧に表示されるようにしたら良いのかなーとも思います。
(それをするとちょっと実装が面倒そうですが)

そこまではまだ先っぽいですが、可能です。

お任せっぱなしですみませんがお願いしますm(_ _)m

#11 yusuke kokubo約8年前に更新

  • ステータス新規(New) から 担当(Assigned) に変更
  • 担当者Akiko Takano にセット
  • 対象バージョン69 から 0.0.2 に変更

#427 にとって変わる形で0.0.2に入れたいな、と思います。
難しそうなら教えてください。

#12 Akiko Takano約8年前に更新

落ち着いたので着手しようと思います。
どなたか他に実装担当したいと希望される方、いらっしゃいますか?

本来は、自分がアクセスできるRedmineとプロジェクト一覧が見えて、そこをクリックしたタイミングでデータをロードするほうがいいのですよね。
ただ、ちょっと時間がかかるのと、Look&Feelを確認してもらうため、まずはこの案でいこうと思っています。

  • いままでと同じで、URLとKeyのみ指定でHTTPServiceからデータ取得(e4x)
  • issueList = new XMLListCollection(event.target.lastResult.issue) でlistが取れる
  • ここから、プロジェクトを抽出するのは、こんな感じ
    • issueList.project as XMLList
      • ここから、重複するプロジェクトを取り除けばよい

ただ、この構成だと、プロジェクトの親子関係はわからないので、kokuboさんの希望の画面からははずれちゃいますね。
また、チケットが無ければ、プロジェクトもツリーに出てきません。

事前に、アクセスできるプロジェクトを取得しないといけませんね。
これはもう一歩先でやりましょうか? それとも、最初はプロジェクト一覧を取得するようにしてしまい、そのあとでチケットを取りにいくようにしましょうか?

#13 yusuke kokubo約8年前に更新

事前に、アクセスできるプロジェクトを取得しないといけませんね。
これはもう一歩先でやりましょうか? それとも、最初はプロジェクト一覧を取得するようにしてしまい、そのあとでチケットを取りにいくようにしましょうか?

最終的な完成形はなんとなく認識を共有できてる感じがする
(SQLServer Management Studioみたいな感じでサーバに接続してプロジェクトからツリーでつながる)
のでakikoさんにとってやりやすい方法で進めてください。

#14 Akiko Takano約8年前に更新

  • 進捗率0 から 10 に変更

説明があまりうまくなくて、申し訳ありません。
たたき台が無いと難しいので、とり急ぎ形になるものを用意してみます。
その上で、あらためて。

#15 yusuke kokubo約8年前に更新

ちょっとここに書くのが遅すぎたかもしれませんが、考えたことをメモしておきます。
複数Redmineの処理について自分がイメージしてることです。

※※あくまでもメモなので違った実装に手をつけてても気にしないでください

  1. 画面に何も表示されていない状態から「接続」をクリックしてRedmineサイトを追加する
  2. ツリーを展開すると/projects.xmlを読み込んでプロジェクト一覧を取得する
    1. プロジェクトは親子関係を考慮して並ぶ
  3. 展開されたプロジェクトをクリックすると/issues.xml?project_id=xxxを読み込んでチケットを一覧に表示する
  4. 1度取得したチケットはキャッシュしておいてユーザーが再読み込みしたタイミングでサーバに取得しにいく

#16 Akiko Takano約8年前に更新

途中経過ですが、挙動が変わってくるので、これでいいかどうか書き込みます。

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を好きな形に変換できるわけではないので、やや面倒です(^^;

#17 yusuke kokubo約8年前に更新

まず、『ユーザのクリックのアクションで、はじめてチケットデータを取りに行く』という動きになるのはOKかどうか確認したいのですが、如何でしょう。(今までの動作と動きが異なります)

OKです。ぼくの考えてたことと同じです。

また、プロジェクト一覧の中からプロジェクトを選択しても、チケットのないものもありますので、そういったプロジェクトもツリーに表示してOKでしょうか。

これもOKです。
最初からそこまで考慮に入れなくてよいと思います。

#ほんとうは、Redmine側の返すXMLを、Flexが扱いやすいかたちに拡張するのが楽なのですが、そういう希望は通らないでっしょうね。SQL ServerのようにSQLでXMLを好きな形に変換できるわけではないので、やや面倒です(^^;

そうなんですか…。ちょっと面倒ですがRedmineAir側で頑張るしかなさそうですね。

#18 Akiko Takanoほぼ8年前に更新

  • 進捗率10 から 40 に変更

#419 に現在試しているパッケージを添付しました。
プロジェクトを複数選択・登録するためのUIが無いので、実質意味が無いのですが...。
左側のツリーに、Redmineのルートが複数表示される感じです。

また、プロジェクトのツリー構造ですが、現在XMLをうまく変換させることができないので、考えあぐねています。
このため、構造がフラットになっています。

ツリーとDataGrid双方を並べると、画面サイズも調整しないといけなくなりますね。
ここもUIとして考えどころです。

ご意見等いただければ幸いです。

#19 yusuke kokuboほぼ8年前に更新

  • 対象バージョン0.0.2 から 0.0.3 に変更

ちょっと簡単にはいきそうにないので0.0.3に移動させます。

#20 Akiko Takanoほぼ8年前に更新

了解しました。

メイン画面の分割(設定と一覧を分離) -> プロジェクトツリーでの表示 -> 複数Redmineを登録可能な設定をもてるようにする、といった作業が必要になるなと感じたので、助かります。

#21 yusuke kokuboほぼ8年前に更新

  • 対象バージョン0.0.3 から 0.0.4 に変更

#22 yusuke kokuboほぼ8年前に更新

  • 対象バージョン0.0.4 から 0.0.5 に変更

#23 Akiko Takanoほぼ8年前に更新

放置してしまっていた複数化ですが、ご意見伺えれば幸いです。

わかりにくければ、図を描いてみますので...。

1. チケットリストの見せ方
  • 複数Redmineがある場合、取得結果を1つのリストにまとめて見せるのはNGでしょうか?
    • Redmineごとにリストの画面を作ったり切り替えたりするのは難しい気がしています。
    • Windowオブジェクトを動的に複数生成しないといけなさそうで、扱いにくいなと思っています。
    • 起動時、もしくは更新アクションのタイミングで、複数のデータソースから一度に取得し、表示の際にはまとめて表示します。
    • もちろん、指定のRedmineや指定のプロジェクトを選択した場合は、フィルタリングして対象のものだけをリストに表示する感じです。
2. 対象RedmineのURL更新や削除の場合
  • 関連するRedmineの情報が変わったり、参照対象から外れた場合、先に永続化して保存してある付箋データは、削除したほうがいいのでしょうか。それとも、単独で付箋は付箋としてActivateできるほうがいいでしょうか。
  • 同様に、RedmineのURLを変更したい場合は、削除 -> 再登録という操作のほうがシンプルでしょうか。

#24 yusuke kokuboほぼ8年前に更新

自分もなかなか関われなくてすみません…^^;

1. チケットリストの見せ方

問題ないと思います。
現状を考えると1番シンプルな方法だと思うので。

2. 対象RedmineのURL更新や削除の場合
  • 関連するRedmineの情報が変わったり、参照対象から外れた場合、先に永続化して保存してある付箋データは、削除したほうがいいのでしょうか。それとも、単独で付箋は付箋としてActivateできるほうがいいでしょうか。

削除で良いと思います。
#最初のうちはそんなに気にせず作って後から考えても良いかもしれません

  • 同様に、RedmineのURLを変更したい場合は、削除 -> 再登録という操作のほうがシンプルでしょうか。

そうですね。
URLを変更ってそんなに滅多にすることではないと思うので
作り手側の作りやすさを優先して良いと思います。

#25 Akiko Takanoほぼ8年前に更新

お返事ありがとうございます。
#skillmapsもありますしね(^^

いろんなAirのUIやサンプルコードを見たりして悩んでいたのですが、まずはシンプルにしてみます。
ブランチとマージしたタイミングでどうかなと思ったのですが、結構実装が変わりそうなので、別途ためしてアップしてみます。

#26 Akiko Takano7年以上前に更新

ずいぶん間があいてしまいました。
SQLite化も試していたため、遅くなっていて申し訳ありません。

複数Redmineを登録してデータを参照するプロトタイプを作成してみました。
ソースは特にコミットせず、ローカルで作成しています。
redmine.air というパッケージで、データはマイドキュメントの下の、redmine というフォルダの下に作成されます。
下記のようなファイルができます。

- SQLiteのDBファイル
- log.txt
- debug.txt

できれば、お試しいただければと思います。

まだまだなので、下記のような制限があります。

  • 付箋は開けません(付箋の部分は実装してない)。
  • 参照できるタイプは、Assigned_id=me (自分の担当中のもの)のみです。
  • エラー処理とか、MVCの分離とかは考慮されてません。とにかく動くレベル。
  • 説明、ヘルプ、マルチリンガル対応は一切なし。
  • アプリケーションの起動に関しても何も考慮無し。

なお、 #468 で、タイムラインの取得というものがあったので、RSS FeedのKeyを入力すると、活動履歴も取ってくるようにしてみました。
いずれは、新着をポップアップするとかが良いのかなと思います。
現在は、Feedした内容を一覧で出し、クリックすると本文をHTMLで表示します。

また、本家にリクエストを出しているんですが、下記も対応してもらえたら、RedmineAirのUIに組み込めるんですけれど...。

#27 Akiko Takano7年以上前に更新

217

こんな感じになります。

プロトタイプのスクリーンショット。

#28 Haru Iida7年以上前に更新

かっこいい!

#29 yusuke kokubo7年以上前に更新

試してみました。
すごいですね!見た目がかなりカッコよくなっています。

第一ステップとしてはとても良いと思います。
必要があればブランチにコミットしてください。

#30 Akiko Takano7年以上前に更新

r113 に、ひとまずAntでもビルドできる状態までコミットしました。
Burritoで作成しましたが、Flex4.1をベースにしているので、一応r-labsのHudsonや開発者の皆さんの環境でビルドできると思います。

  • ant compile -> swfの形にビルド
  • ant run -> adl でプログラム起動

下記のような変更や制限があります。

  • Viewとロジックの分離のために、AbstractViewHelper の利用をしてみています。
  • ロギングのテストを行っています。
    • as3corelib.swc というバイナリになったライブラリを利用しています。
    • 上記は暗号化にも利用できます。
    • http://github.com/mikechambers/as3corelib
    • 必要があれば、こちらもソースからビルドする形で利用するのもいいかと思います。
  • 付箋は実装されていません。
  • NativeMenuは実装していません。
  • とりあえず国際化はなしで英語のみです。
  • 現在のRedmineAirとインストールパスがかぶらないようにしてください。
  • Haloスキンを当ててみています。

Redmineの操作には、XMLを結構利用しています。
いまはひとつのASの中でHTTPリクエストからデータ取得を行っていますが、Redmine用のクラス(コントローラ)を作成し、Observerパターンみたいな感じで複数のRedmineコントローラの動作を管理するような方向が良いかと思います。

#31 Akiko Takano7年以上前に更新

もう一回、手元でパッケージ化したものをアップします。
大枠のチケット選択のUIのイメージの確認のため、できれば複数Redmineを利用されている方にテスト・ご協力いただければ幸いです。(お声がけいただければ幸いです)

ログの参照、プロジェクト名でのフィルタリングのような機能を追加しています。

ただし、付箋機能はまだ実装していません。だいたい良さそうなら、trunkの機能をベースにして取り込んで行きます。

また、できればコミット漏れの防止の兼ねて、Hudsonでのビルドを行っていきたいのですが、どうするのが良いでしょう?

#32 yusuke kokubo7年以上前に更新

もう一回、手元でパッケージ化したものをアップします。

ありがとうございます。試してみました。
プロジェクトでフィルタリングできる仕組みがすごく便利だと思いました。
機能的には現状バージョンにだいぶ近づいてきた感じですね!

大きな不満はありませんが、ちょっと気になった点について

  • 全体のwindowのサイズは固定にしますか?
  • Redmineのadd, edit, removeはRedmine Listのすぐ下で良いと思います
    • 真下にあると見つけるのに時間がかかるので
  • 画面下部にチケットへのリンクを表示してますが現バージョンみたいに一覧のチケットNoをクリックで遷移するようになっていても良いかと思います
    • ちょっと表示領域を取り過ぎているような感じがします
  • チケットのxmlを表示する領域はxmlを見やすくレンダリングした画面と切り替えられるとすごく便利そうですね(先の話)

また、できればコミット漏れの防止の兼ねて、Hudsonでのビルドを行っていきたいのですが、どうするのが良いでしょう?

だいぶ新バージョンができつつあるので、
現trunkはtag付けして凍結させて、新バージョンをtrunkにしても良いかと思います。
もしくはGitHubにリポジトリを移行するかですが。
(Mercurialはゴメンなさい…)

#33 Akiko Takano7年以上前に更新

ご確認ありがとうございます。
また、haruさんにもビルドを試していただいたみたいで、こちらもありがとうございます。

UIの面はとても重要なので、できるだけちょっとした改善も加えていただくほうが良いと思います。
皆さんの環境で試せるようにしますので、もう少しお待ちください。

チケットのxmlを表示する領域はxmlを見やすくレンダリングした画面と切り替えられるとすごく便利そうですね(先の話)

そのあたりの楽しい動作は好きなので、実装すると思います。

また、リポジトリはこの際どこでも構いません。GitHubでも構いませんので、場所だけ作っていただければ幸いです。

#すごく汚いコードなので(汗)リファクタリング必須ですが、アジャイル風にがんばります...。

#34 Akiko Takano7年以上前に更新

  • 進捗率60 から 80 に変更

複数Redmineを登録して、チケットの取得をするところまで持って行きました。
(commit:79e4a6fa0b23c536a4be63dc566fb27c68cfbb00)

複数化対応で削いでしまった部分をこれから追加します。
#いまごろちまちま進めていますが、需要あるかな...。

他の形式にエクスポート: Atom PDF