インターン一日目

インターン一日目ということで、時間がかかったところなどをまとめていきたいと思います。

・「基礎編:入力項目の追加をしてみよう」でやる内容のURLの表示がもともと実装されていた  理由) はじめにビルドしたときに他のインターン生?のブランチに設定されていたため既に実装されていた  解決策)masterブランチからpullし、自分のブランチに移ったあとに再度 “mvn install” から作業をやり直した

・どこのソースを参照にすればよいかわからなかった  解決策)”https://hacknote.jp/archives/10060/”を参考させていただいた。Networkをみてもどこに表示されているかわからなかったため質問させていただいたところ、その画面を表示した状態で要素の検証を押しても何も処理が行われていないのでだめで、要素の検証画面を出した状態でTest追加を押すことでソースコードの特定ができた。

作業した内容としましては、はじめはコードを見て適当に編集するファイルを決めてコードをいじってビルドしてみるということを繰り返してましたがわからず、要素検証によって”TestFormScreen”を参照すればよいとわかったので portlets/test/src/main/java/com/aimluck/eip/test/TestFormScreen.java を参照にすると68行目に


String layout_template = "portlets/html/ajax-test-form.vm";

とあったので portlets/test/src/main/webapp/WEB-INF/templates/vm/portlets/html/ja/ajax-test-form.vm を見てみたところgetFieldなどとあったのでtest_name, noteの欄を参考にしながら

#ALtdcaption("#ALrequired($!result.getFieldName('url'))")
#ALtditem("#ALtextfieldw100('url' $!result.TestName 50 'active')")

を56行目あたりに追加

その後TestFormScreenに戻りコードを読んでいたところ

    TestFormData formData = new TestFormData();

とあったのでTestFormData.javaを見るとtest_nameとnoteについての記述がたくさんあったのでとりあえず “command + f” でnoteと調べ同じようにurlとし記述してビルドし直したところURL記入欄を作ることができた。 その後、入力した結果を見たところURL欄がないことがわかったので要素の検証をみてTestDetailScreenを参照 参照した結果 ajax-test-detail.vm を見れば良いとわかったのでコードをみてnoteの真似をし、58行目あたりに

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

を追加 これで欄は追加されたがURL情報は追加されず

ひとまずこれは置いといてURL欄の横に付いている必須マークを消すことに “https://hacknote.jp/archives/12857/”ここを参考にさせていただき

#ALtdcaption("#ALrequired($!result.getFieldName('url'))")

#ALtdcaption($!result.getFieldName("url"))

に変更することで必須マークを消すことが出来ました。

その後URLの入力制限をしようと思い、TestFormData.javaのvalidate周りを見ていたが何をしていいかわからず質問させていただいたところurlなどの変数?はALStringField.javaの中で色々とメソッド?が作られているようでそこを参考にするといいとのこと また、aipo上の他の電話番号など制限がかかっているソースコードを読めばいいというアドバイスを頂いたので要素検証を行って電話番号の入力フォームのソースコード portleits/addressbook/src/main/java/com/aimluck/eip/addressbook/AdressBookFormData.java を参考にしたところ424行目に以下のような記述を発見 見つけ方は”command + f”でvalidate周辺を探しました。

    telephone1.setCharacterType(ALStringField.TYPE_NUMBER);

また、 core/src/main/java/com/aimluck/commons/field/ALstringField.java を参考にすると

 /** 文字の種類(半角英数字) */
  public static final int TYPE_ALPHABET_NUMBER = TYPE_ALPHABET | TYPE_NUMBER;

という記述があったのでこの2つを組み合わせ、TestFormData.javaの204行目あたりに以下のコードを追加

    url.setCharacterType(ALStringField.TYPE_ALPHABET_NUMBER);

こうすることでURL欄に全角文字を入力してもはじかれるようになりました。

次回はpgAdminから入力したURLがデータベースに保存されているか確認してから 「基礎編:追加した入力項目の表示をしてみよう」 に入りたいと思います。