Google
SSブログ

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

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

01_img.jpg

こんばんは。

もったいない星人 のくせに最近物欲が強くなってる気がしてる @sakashushu です。

Parllet(個人で作成・公開しているアルファ版のWeb家計簿)の、5/15 にポストした改修案 に沿ってのブログラミング(ブログを書きながらプログラミング)は 5/16 に開始して今回が3回目。

引き続き行ってまいります。

 

スポンサードリンク

 

 

■ ざっくり環境

OS:Windows 7 Home Premium
Play Flamework:1.2.4
ブラウザ:IE 11.0
Github公開リポジトリのCommitバージョン(スタート時点): https://github.com/sakashushu/Parllet/tree/258d5e0f5f8c326566e83a7cb8578c333902afae

 

 

■ 現状

前回 、Play Framework の validation をそのままフロント側に返し、z.validation.errors[0].key としてエラーのあった項目が取得できることが分かりました。

05_edit1_dlg_upd_rec_04.jpg

 

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

 

いつものように体当たりブログラミング(ブログを書きながらプログラミング)していきます。

 

 

■ 体当たり開始

前回 のエラーパターンでは、取得できたのが "record.handling_mst" で、これを元にして画面上には項目名の "取扱(実際)" を表示させることになります。

Parllet では、使っているテーブルの項目の名称を表示するのに、基本的には Parllet/conf/messages.ja から引っ張ってくるようにしています。

項目 handling_mst で言うと以下。

handling_mst=取扱(実際)

html ファイル内で "&{'handling_mst'}" と記述すれば "取扱(実際)" が表示されますが、javascript 内で hancling_mst の部分が動的に変わるとなると、その記述法は使えません。

以前もこういう感じのことがやりたかったけど、解決策が見つからずにその時はあきらめました。

リベンジも兼ねて、「play framework messages javascript」で検索!

i18n

ローカライズされた Javascript メッセージを外部化します。ローカライズされたメッセージは i18n() 関数を使うことで JavaScript から利用することができます。

conf/messages ファイルに訳語を定義してください。

hello_world=Hello, World !
hello_someone=Hello %s !

テンプレート (またはレイアウト) ページにメッセージを取り込んでください:

#{i18n /}

そして JavaScript からキーを使って検索してください:

alert(i18n('hello_world'));
alert(i18n('hello_someone', 'John'));


via: 組込みテンプレートタグ - Play Framework

 

・・・・・。

思いっきり公式ドキュメントにありましたね・・・。

ま・・前の時は検索ワードが、わ・・悪かったのかな~(汗)。

 

まあ、とにかくこれで、項目名は取れますね。

最終的にはダイアログの先頭位置に表示しますが、まずは今のアラートに表示してみます。

Parllet/app/views/dialogFrmUpdRec.html に以下のように追記(太字の部分)

#{include 'subCategory.html' /}
#{i18n /}

(中略)

function openDialogFrmUpdRec(pDfurRec) {
    
    (中略)
    
    jQuery(function() {
        
        (中略)
        
        buttons["&{'insupd.save'}"] = function() {
            var bValid = true;
            
            (中略)
            
            if (bValid) {
                
                (中略)
                
                jqxhrUpdRec
                .done(function(z) {
                    switch (z.intRslt) {
                        case 0:
                            intRslt = 1;
                            jQuery('#dialog-updRec').dialog("close");
                            break;
                        case 99:
                            var vld = z.validation.errors[0],
                                strKey = vld.key.replace('record.', '');
                            alert(i18n(strKey)+"は"+z.strErr);
                            break;
                        default:
                            strErrMsg += " result Error";
                            alert(strErrMsg);
                    }
                })
                .fail(function() {
                    strErrMsg += " Failed";
                    alert(strErrMsg);
                });
            }
            
        }
    });
    
    (中略)
    
}

 

リロードして、 前回 と同じように入力して保存。

02_edit1_dlg_upd_rec_01.jpg

 

"取扱(実際)" が取得できていて、アラートに表示されました。

03_edit1_dlg_upd_rec_02.jpg

 

まだ金額のエラーと同様になってはいませんが、今回はここまでです!

お疲れ様でした!

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

 

■ sakashushu のブクログから

「コンピュータは、むずかしすぎて使えない!」

これはいつ買ったかといいますと、

04_detail_list_01.jpg

2009年8月ですね。

このブログを書き始めた日の1ヶ月とちょっと前。

Parllet(パレット) は影も形も無かったですが、構想のような、想いのようなモノは頭の中で渦巻いていた時期です。

著者は Visual Basicの生みの親、アラン・クーパー。

私はこの本で、徹底的にユーザー目線が大事だということを思い知らされました。

今でも Parllet(パレット)は、直感的に扱える状態とは程遠いですが、今後もユーザー目線を忘れずに精進を続ける所存です!

当時から中古でしか入手出来なかったですが、今でもネットでの購入は可能なようですね。

 

 


 

TEL:
08034662740

メール:
sakashushu@gmail.com

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

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

 

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

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

 


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

nice! 0

コメント 0

コメントを書く

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

トラックバック 0

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

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