URLをリンク付で表示する方法/一覧画面にURLの追加/サムネイルとドメインの追加

hurts14 69views 更新:2017年2月13日

AipoのTest詳細画面でURLをリンク付で表示する方法

まずTest詳細画面がどのファイルに対応しているか検証を使って調べます。
networkを見ると対応するjavaファイルのヒントが出てくるので、eclipseのファイル検索を使って検索します。

portlets/html/ajax-test-detail.vmのファイルがhtmlとして表示していると言っているので
そこに行きます。。。
そこでメモ機能の記述を真似て

#ALtdcaption($l10n.TODO_MEMO)
#ALtditem($!result.Detail.Note)
+#ALtdcaption($l10n.TODO_URL)
+#ALtditem($!result.Detail.Url)

$l10n.TODO_URLという変数がなにかを理解して無かったので、しときましょう。


さらにTODO_URLのテンプレを記載していないので
AipoLocalization_ja.propertiesで記載します。

ここで一旦実行してみると
$!result.Detail.Urlがそのまま表示されてしまいます。

先輩に尋ねると新手のハックのリンクを下さいました。
これを見ると上記のresultの働きが複雑になっていることがわかりました。

TestResultData.javaにコードを加えました。


一覧画面にURLの追加

方法が2パターンほどあるみたいです。
* タイトルの右側にURLを表示するパターン
* URLのリストをタイトルの右に作って表示するパターン

前者を選びました。

ajax-test-list.vmの87行目に

<th>#ALajaxsort('test_name' $l10n.TODO_URL $result 'TestListScreen')</th>

さらに99行目に


#ALtdcellheaderAtt('class="auiMTCaption"') <div> <a href="$record.Url"</a> </div> #ALtdcellfooter()

を追加しました。

そしてTestSelectData.javaのprotected Object getResultData(EipTTest record)内に

rd.setUrl(ALCommonUtils.compressString(
        record.getUrl(),
        getStrLength()));

を追加しました。


サムネイルの追加

ハックを見たり、先輩に教えてもらったりしてなんとかできました。
TestResultData クラス内getUrlOriginal() を追加しました。 ,br>

public String getUrlOriginal() {
    return url.getValue();
}

ajax-test-detail.vmの38行目に下記を記述しました。


#ALtdcaption($l10n.TODO_THUMBNAIL) <td><a target="_blank" href=$!{result.Detail.UrlOriginal}><img src="http://capture.heartrails.com/free/1440556126970?$!result.Detail.UrlOriginal" alt="$!result.Detail.UrlOriginal" width="200" height="300" /></a></td>

あとはテンプレTODO_THUMBNAIL=サムネイルを追加しました。


詳細画面のURLからドメインだけを抽出する機能を追加

こちらも方法が複数ありました。
* 正規表現を使う
* URIクラスを使う
などです。
参考ハック
http://hacknote.jp/archives/13258/
http://hacknote.jp/archives/17488/
http://hacknote.jp/archives/14639/
このハックをみてやりました。

ログイン / 新規登録してコメントする

このソースコードをストックして後で利用したり、作業に利用したソースコードをまとめることができます。

こちらもお役に立つかもしれません