Parllet(個人作成Web家計簿アプリ)の家計簿入力改修-2 [公開アプリ]
※ 注意! このエントリは ブログラミング(ブログを書きながらプログラミング)です。筆者がポストした時には気づいていない誤り等が後から発覚する恐れがあります。(過去の事例:2014年 1/4 の誤りに 1/9 に気づいて訂正、等 ^^; )
こんばんは。
何だかんだで、昨日届いた ジャッキーの拳精吹替版DVD は封も切れていない @sakashushu です。
Parllet(個人で作成・公開しているアルファ版のWeb家計簿)の、5/15 にポストした改修案 に沿ってのブログラミング(ブログを書きながらプログラミング)。
前回 から開始しまして、今回が2回目になります。
スポンサードリンク
■ ざっくり環境
OS:Windows 7 Home Premium
Play Flamework:1.2.4
ブラウザ:IE 11.0
Github公開リポジトリのCommitバージョン(スタート時点):
https://github.com/sakashushu/Parllet/tree/0fef927af194abc205a8c4bfb8385880b9cf12aa
■ 現状
前回 は、ダイアログが閉じる前にエラーメッセージが出る状態まで持っていきました。
今回は以下の、5/15の改修案の
今でも、金額の必須エラーでは改修したいことと同様の動きになっています。
via: Parllet(個人作成Web家計簿アプリ)の家計簿入力改修案
この金額の必須エラーと同様の動きを目指します。
いつものように体当たりでブログラミング(ブログを書きながらプログラミング)していきます。
■ 体当たり開始
今は、DB更新処理でエラーが合った場合に、フロント側にはメッセージしか返していません。
メッセージとは別に最低限、どの項目でエラーがあったかを知る必要があります。
メッセージの取得元は、Play Framework の validation です。
これってそのまま返したら、javascript 内でそのまま使えるんですかね?
はい、やってみます!
まずは更新結果返却用のワーク(WkCmRecRslt.java)に項目として追加します。
Parllet/app/models/WkCmRecRslt.java に以下のように追記(太字の部分)
public class WkCmRecRslt {
private int intRslt;
private String strErr;
private Record rec;
private Validation validation;
public int getIntRslt() {
return intRslt;
}
(中略)
public void setRec(Record rec) {
this.rec = rec;
}
public Validation getValidation() {
return validation;
}
public void setValidation(Validation validation) {
this.validation = validation;
}
}
そして更新時のエラー処理内で中身をセットします。
Parllet/app/controllers/Common.java に以下のように追記(太字の部分)
/**
* ダイアログフォームからRecordの更新
* @param strType
* @param strName
* @param bolZeroHddn
*/
public static void updateRec(
Long id,
(中略)
Boolean secret_rec_flg) {
WkCmRecRslt wr = new WkCmRecRslt();
(中略)
// Validate
validation.valid(record);
if (validation.hasErrors()) {
wr.setIntRslt(99);
wr.setStrErr(Messages.get(validation.errors().get(0).message()));
wr.setValidation(validation);
renderJSON(wr);
}
// 保存
record.save();
wr.setIntRslt(0);
renderJSON(wr);
}
リロードして、F12開発者ツールで見てみます
前回 と同じように入力して保存。
あらかじめブレークポイントを貼っていた位置で止まります。
「ウォッチ式の追加」で z.validation を追加。
ツリーを開いていくと、 z.validation.errors[0].key の中身に "record.handling_mst" として、エラーのあった項目が取得できることが分かりました!
これを使ってエラー処理を書き足していくことになりますが・・、今回はここまでです!
お疲れ様でした!
※ 毎度の念のための断りですが、今回編集した内容は現時点(2014/5/17)では公開しているParllet(パレット) の方には反映しておりません。
■ sakashushu のブクログから
私の、オープンソースへの興味はこの本から始まったと言える本、「コンピュータのきもち」です。
「この本、いつ買ったかな?」って、自分の Parllet(パレット)で探してみたら、
2002年の10月!
正直、読んでから10年以上経ったという実感がありません・・。
今でもオープンソースのくだりを確認したくて、引っ張り出して読んだりしてるからかな。
未だに自分の中で確立出来ていないテーマですが、きっとこれからも気になり続けるんだろうな~。
TEL:
08034662740
メール:
sakashushu@gmail.com
ツイッター:
https://twitter.com/sakashushu
フェイスブック:
https://www.facebook.com/sakashushu
ご連絡・フォロー・友達申請 等、いつでもお気軽にどうぞ!
またお越しくださいませませ!
コメント 0