Google
SSブログ

Parllet(個人作成Web家計簿アプリ)の家計簿入力改修-2 [公開アプリ]

※ 注意! このエントリは ブログラミング(ブログを書きながらプログラミング)です。筆者がポストした時には気づいていない誤り等が後から発覚する恐れがあります。(過去の事例:2014年 1/4 の誤りに 1/9 に気づいて訂正、等 ^^; )

01_img.jpg

こんばんは。

何だかんだで、昨日届いた ジャッキーの拳精吹替版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の改修案の

今でも、金額の必須エラーでは改修したいことと同様の動きになっています。
07_current_dlg_upd_rec_06.jpg
08_current_dlg_upd_rec_07.jpg

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開発者ツールで見てみます

前回 と同じように入力して保存。

02_edit1_dlg_upd_rec_01.jpg

 

あらかじめブレークポイントを貼っていた位置で止まります。

03_edit1_dlg_upd_rec_02.jpg

 

「ウォッチ式の追加」で z.validation を追加。

04_edit1_dlg_upd_rec_03.jpg

 

ツリーを開いていくと、 z.validation.errors[0].key の中身に "record.handling_mst" として、エラーのあった項目が取得できることが分かりました!

05_edit1_dlg_upd_rec_04.jpg

 

これを使ってエラー処理を書き足していくことになりますが・・、今回はここまでです!

お疲れ様でした!

※ 毎度の念のための断りですが、今回編集した内容は現時点(2014/5/17)では公開しているParllet(パレット) の方には反映しておりません。

 

■ sakashushu のブクログから

私の、オープンソースへの興味はこの本から始まったと言える本、「コンピュータのきもち」です。

「この本、いつ買ったかな?」って、自分の Parllet(パレット)で探してみたら、

06_detail_list_01.jpg

2002年の10月!

正直、読んでから10年以上経ったという実感がありません・・。

今でもオープンソースのくだりを確認したくて、引っ張り出して読んだりしてるからかな。

未だに自分の中で確立出来ていないテーマですが、きっとこれからも気になり続けるんだろうな~。

 

 


 

TEL:
08034662740

メール:
sakashushu@gmail.com

ツイッター:
https://twitter.com/sakashushu

フェイスブック:
https://www.facebook.com/sakashushu

 

ご連絡・フォロー・友達申請 等、いつでもお気軽にどうぞ!

またお越しくださいませませ!

 


nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

トラックバックの受付は締め切りました

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。