Google
SSブログ

レスポンシブWebデザイン導入中の不具合対応(Parllet の場合 作成確認ダイアログ-1) [公開アプリ]

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

01_img.jpg

sakashushu です。

Parllet(個人で作成・公開しているアルファ版のWeb家計簿)レスポンシブWebデザイン導入中の不具合対応シリーズです。(こないだまで導入シリーズの番外編として書いてましたが不具合が多いので(汗)、不具合対応シリーズとしてみました。)

 

スポンサードリンク

 

 

■ ざっくり環境

OS:Windows 7 Home Premium
Play Flamework:1.2.4
ブラウザ:IE 11.0
Github公開リポジトリ のCommitバージョン(スタート時点):こちら

 

■ 現状

明細表の1つに残高明細(口座系)がありますが、これは口座電子マネー残高明細表を表示するページです。

しかし、Parllet(パレット) 登録直後は、口座電子マネーも存在しません。

ので、収支明細ページから残高明細(口座系)をクリックすると作成確認ダイアログ(dialogConfirm.html)が表示される仕様です。

 

で、クリックしてみたところ、表示されません。

02_current_01.jpg

 

もう一度クリックしてみたところ、

03_current_02.jpg

今度は表示されました。

 

いつものように体当たりで学びながら進めていきます。

 

■ 体当たり開始

久しぶりにF12開発ツールで辿る様子を載せます。

要素の選択で、

04_f12_tool_01.jpg

 

残高明細(口座系)をクリック。

05_f12_tool_02.jpg

 

id の aDlRemainderBank をコピー。

06_f12_tool_03.jpg

 

デバッガーに切り替えて、

07_f12_tool_04.jpg

 

検索窓にペーストして「#aDlRemainderBank」で検索。

08_f12_tool_05.jpg

 

検索で飛んだクリックイベント内の function 名、openDialogConfirm( をコピー。

09_f12_tool_06.jpg

 

検索窓にペーストして「function openDialogConfirm(」で検索。

10_f12_tool_07.jpg

 

この行でヒットするんですが、

11_f12_tool_08.jpg

 

もう一度次を検索をクリックすると、この行でもヒット!

12_f12_tool_09.jpg

 

要はソースが重複しちゃってるってぇことです・・・。

 

Parllet(パレット) は、Play framework の組込みテンプレートタグinclude を使ってテンプレートの取り込みを行っていて、作成確認ダイアログもそれに該当します。

include

別のテンプレートを取り込みます。取り込み側のテンプレート上の全ての変数は、取り込んだ側のテンプレートにて直接利用することができます。

<div id="tree">
    #{include 'tree.html' /}
</div> 

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

(上記参考は 2014/1/17 現在は Play! の1.2.7 のドキュメントです。私が使っているのは 1.2.4 です。)

 

#{include 'dialogConfirm.html' /}

で grep をかけたところ、

Parllet/app/views/dialogFrmUpdRec.html 内とParllet/app/views/DetailList/dl_header.html 内の双方に書かれていました。

dialogFrmUpdRec.html はログイン後の全てのページで呼ばれているため、単純に dl_header.html での記述が余計ですね。

 

Parllet/app/views/DetailList/dl_header.html 内から削除します。

削除前

// -->
</script>

#{include 'dialogConfirm.html' /}
<script type="text/javascript">
<!--
/* dialogConfirmを閉じた時の動作は呼び出し元で行う */
function whenDialogConfirmClosed(intRslt) {

 

削除後

// -->
</script>

<script type="text/javascript">
<!--
/* dialogConfirmを閉じた時の動作は呼び出し元で行う */
function whenDialogConfirmClosed(intRslt) {

 

この状態で、1回目のクリックで  

13_edit1_01.jpg

 

作成確認ダイアログが開くようになりました。

14_edit1_02.jpg

 

しかし、実はこれだけでは不十分だと思ってまして。

Parllet(パレット)ダイアログは、さっきの include を使っている関係で、閉じたときの動作を呼び出し元(include元)に記述しています。

作成確認ダイアログ の場合は

function whenDialogConfirmClosed(intRslt) {...}

ってのがそれに該当します。

 

勘の良い方はお気づきかもしれません。

include を2箇所でしていたってことは・・・。

そうです。 whenDialogConfirmClosed も2箇所書いちゃってると。

 

一応F12開発者ツールで見てみますと、

15_edit1_f12_tool_01.jpg

 

この行と、

16_edit1_f12_tool_02.jpg

 

この行でヒットしてますね。

17_edit1_f12_tool_03.jpg

 

これは単純に片方消す訳にはいかないんですわ。

何でかっていうと、わざわざ呼び出し元(include元)に記述しているのは、させたい動作がそれぞれで異なるからなんですね。

 

やるべきことがハッキリしたタイミングで申し訳ないんですが、今回はここまでです。

次回に whenDialogConfirmClosed 部分の改修を行っていきます。

続きます!

 

4/4 追記

続きを書きました。

 


 

いつも最後まで読んでいただいてありがとうございますm(_ _)m

何度も見に来ていただけることが、間違いなく私の原動力となっています(^_^)

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

 


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

nice! 1

コメント 0

コメントを書く

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

トラックバック 1

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

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