y-matsui::weblog

電子楽器、音楽、コンピュータ、プログラミング、雑感。面倒くさいオヤジの独り言

AlbumViewの改良

検索結果を画像一覧で表示する機能の追加を実施。
限りある表示スペースを、最も効率的に生かすことができる方法ということで、知恵を使ったつもりであったが、結局”ありがちな形”に落ち着いた。
1レコード複数画像を、斜め読みでき、そのままダウンロードまでできるインタフェースということで、まずまず満足している。
AlbumView.JPG
・1レコード複数画像の場合に、各サムネールセルのナビゲーションボタンをクリックすることで、次のイメージを参照できる
・サムネール上をクリックすると表示されているサムネールに関連する元データをダウンロードする
・画像が入れ替わった際にはALT属性も書き換わり、現在選択しているファイルの名称をポップアップする
・書類アイコンをクリックすると、レコードに関連付けられた全ファイルのファイルリストを表示する
・複数レコードの選択チェックボックスを選択し、”チェックアウト”ボタンをクリックすると、チェックしたレコードの複数
ファイルを一括で(サーバ上のセッションフォルダに)ダウンロードする

検索結果からレコードに関連するファイル一覧のID,リンク先、ファイル名を(レコードIDで定義した)Javascript配列にガッパガッパ入れ込み、各セルをDIVで定義した上で、レコード数分のJavascriptをサーバが生成するという無理やりな方法。矢印ボタンをクリックされた場合に、ファイルダウンロード関数の引数、イメージのALT属性などをクライアントサイドで生成させる仕組み。

※これでアルバム表示機能は一応の完成したかな

昨日の段階では、検索結果一覧でもlightboxを使ってアルバム表示させようと目論んでいたが、下記の点で適切でないことに気がついたため、今回の方式に落ち着いた。

1:すべての添付ファイルがブラウザで表示できる画像データであればOKであるが、混在する場合に適切な処理を行わせることが難しい。(ダウンロードダイアログを出すためのJavascriptをキックしなければならないのであるが、lightboxの複数ファイル表示のための書式では、元ファイル有り無し、サムネール有り無しなどの条件分岐が複雑化する)
2:どのファイルがダウンロードされたかをロギングしなければいけないため、直接httpで画像データをダウンロードする方式ではまずい。

lightboxを使っている部分は以下。
1レコードに対応する画像の一覧を表示させている部分で、ブラウザで表示可能なファイルについては表示する、対応していない場合には、ダウンロードダイアログを表示。
”ブラウザで別窓を出す動作の重さよりも、CSSで表現したlightboxの方が軽いから”という理由だけ。