/** * jQueryによるページ表示用のJavaScript */ // 現在の表示ページの位置を保持するグローバル変数 var lastModule = ""; var lastIndex = 0; var lastMenuIndex = 0; // 処理結果オブジェクトを保持するグローバル変数 var gResult = new Array(); /** * オブジェクトのダンプを表示する。 */ function dumpObj(o){ var str = ""; for(var i in o) { str = str + "\n" + i + "\t"+ o[i]; } return str; } /** * jQuery用のページ表示XMLを読み込んでページの生成を行う */ function display(index, handler){ // ページ設定の呼び出し。 jQuery.ajax({ url: "pages-config.xml", type: "GET", dataType: "xml", success: function(config){ // 設定からpageタグのブロックを取得する。 $(config).find("page").each(function(){ // pageタグのうち、indexの引数に与えられたものと、pageタグのindexパラメータが一致するものを処理対象とする。 if($(this).attr("index") == index){ if($(this).find("menu").text() != ""){ var submit = (($(this).find("submit").text() != "")?$(this).find("submit").text():"0"); setMenuIndex($(this).find("module").text(), $(this).find("menu").text(), submit); } if($(this).find("page").text() != ""){ showPage($(this).find("module").text(), $(this).find("page").text(), handler); } } }); }, error: function(xhr, stats){ Ext.MessageBox.alert("通信エラー", "設定ファイルの読み込みに失敗しました。"); } }); } function executeActionRaw(url, system, cls, method, args, handler){ jQuery.ajax({ url: "page.php", type: "POST", data: { "url": url, "system": system, "class": cls, "method": method, "args": args }, dataType: "json", success: function(result, type) { if(handler != undefined){ handler(result); } }, error: function(xhr, stats) { Ext.MessageBox.alert("通信エラー", "アクション情報の取得に失敗しました。"); } }); } /** * jQueryのAjaxを利用してページ生成に必要な情報を取得する。 */ function executeAction(url, system, cls, method, args, handler){ jQuery.ajax({ url: "page.php", type: "POST", data: { "url": url, "system": system, "class": cls, "method": method, "args": serialize(args) }, dataType: "json", success: function(result, type) { if(handler != undefined){ handler(result); } }, error: function(xhr, stats) { Ext.MessageBox.alert("通信エラー", "アクション情報の取得に失敗しました。"); } }); } /** * jQueryのAjaxを利用してページ生成に必要な情報を取得する。 */ function executeActionDebug(url, system, cls, method, args, handler){ jQuery.ajax({ url: "page.php", type: "POST", data: { "url": url, "system": system, "class": cls, "method": method, "args": serialize(args), "debug": "1" }, dataType: "text", success: function(result, type) { alert(result); }, error: function(xhr, stats) { Ext.MessageBox.alert("通信エラー", "アクション情報の取得に失敗しました。"); } }); } /** * jQueryにより、メニューのスタイルを変更する。 */ function setMenuIndex(module, menuIndex, submit){ // メニューのインデックスが変更された場合にはスタイルを変更する。 jQuery("#sub_title").css("background-image", "url(images/" + module + "/subtitle" + menuIndex + ".png)"); for(var i = 1; i <= stepCount; i ++){ var src = "images/" + module + "/step0" + i; if(i == menuIndex){ src += "_on"; } jQuery("#step" + i).css("background-image", "url(" + src + ".png)"); } // サブミットボタンフラグが1の場合はボタンを確定ボタンに変更 if(submit == 1){ jQuery("#btn-next").removeClass("btn-next").addClass("btn-submit"); }else{ jQuery("#btn-next").removeClass("btn-submit").addClass("btn-next"); } } /** * jQueryにより指定したページを表示する。 */ function showPage(module, index, handler){ // 前に表示しようとしたページと同じ場合は、処理を行わない。 if(module == lastModule && index == lastIndex) return; // 新しいページをグローバル変数に退避 lastModule = module; lastIndex = index; // ページの本体を所定のHTMLに設定 jQuery("#contents_body").load("html/" + module + "/step" + index + ".html?sid=" + (new Date().getTime()), null, handler); } /** * jQueryにより指定したページを表示する。 */ function showPageParts(id, module, partsName, handler, data, postHandler){ jQuery.ajax({ url: "html/" + module + "/parts/" + partsName + ".html", dataType: "html", success: function(html){ var parts = jQuery(html); for(var i in data){ var item = data[i]; if(handler != undefined){ parts = handler(parts, item); } jQuery("#" + id).append(parts.html()); } if(postHandler != undefined){ postHandler(); } }, error: function(xhr, stats) { Ext.MessageBox.alert("通信エラー", "パーツ情報の取得に失敗しました。"); } }); }