/************************************************************************************************ @date : 2012-07-12 @author : ÃÖº´Áø @desc : TrustForm4.0 ºñµ¿±âÅë½Å °øÅë JavaScript *************************************************************************************************/ // submission Á¤º¸¸¦ ´ã°íÀÖ´Â Global array // callback ÇÔ¼ö³»¿¡¼­ °á°ú¸¦ ¸ÊÇÎÇÒ xpathÁ¤º¸¸¦ ´ã°íÀÖÀ½. var submitArray = new Array(); /** * @----------------------------------------------------------------------------------- * @desc : ºñµ¿±âÀûÀ¸·Î ¼­¹ö¿¡ ¿äûÀ» ÇÏ´Â ÇÔ¼ö * @param : transactionId - transaction map file id * paramPath - ¼­¹ö¿¡ ¿äûÇÒ µ¥ÀÌÅÍÀÇ xpath * resultPath - ¼­¹ö¿¡¼­ Àü´ÞµÈ µ¥ÀÌÅ͸¦ ¸ÊÇÎÇÒ xpath * responseHandler - ¼­¹öÀÇ ÀÀ´äÀ» ó¸®ÇÒ callback ÇÔ¼ö¸í. * ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é defaultResponseHandler°¡ »ç¿ëµÊ. * errorHandler - ¼­¹ö¿äû ½Ã ¹ß»ýÇÑ ¿¡·¯¿¡ ´ëÇÑ handler ÇÔ¼ö¸í. * ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é defaultErrorHandler°¡ »ç¿ëµÊ. * @return : * @----------------------------------------------------------------------------------- */ function asyncSend(transactionId, paramPath, resultPath, responseHandler, errorHandler) { // µ¿ÀÏÇÑ transactionId·Î 1¹øÀÌ»ó µ¿½Ã¿¡ È£ÃâÇÒ ¼ö ÀÖÀ¸¹Ç·Î ¸ðµç È£Ãâ¿¡ ´ëÇØ¼­ À¯ÀÏÇÑ Å°¸¦ »ý¼ºÇÏ¿© ó¸®ÇÔ. var submitUUID = "" + getRandomSubmitUUID(); // ºñµ¿±â Åë½ÅÀ» À§ÇÑ TFHttpService instance var submit = TFHttpService.createInstance(submitUUID); submit.url = getActionURL(transactionId); // common.js submit.mediaType = "application/x-www-form-urlencoded"; submit.method = "POST"; // default handler¿¡¼­ »ç¿ëÀÚhandler¸¦ È£ÃâÇϵµ·Ï ±â´É º¯°æ submit.onResponse = "defualtResponseHandler"; submit.onError = "defualtErrorHandler"; // ÇöÀçÀÇ È£ÃâÁ¤º¸¸¦ Global º¯¼ö¿¡ ÀúÀåÇÑ´Ù. // ÀúÀåµÈ object´Â °á°ú¸¦ resultPath¿¡ bindÇϱâ À§Çؼ­ »ç¿ëµÈ´Ù. if (submitArray == undefined || submitArray == null) { submitArray = new Array(); } // submit¿¡ ÇÊ¿äÇÑ Á¤º¸ ¹é¾÷ var submitItem = new Object(); submitItem.trid = transactionId; submitItem.resultPath = resultPath; submitItem.submitUUID = submitUUID; submitItem.responseHandler = responseHandler; // »ç¿ëÀÚ ÁöÁ¤ handler submitItem.errorHandler = errorHandler; // »ç¿ëÀÚ ÁöÁ¤ handler submitArray.push(submitItem); // ¼­ºñ½º È£Ãâ submit.send(paramPath); } /** * @----------------------------------------------------------------------------------- * @desc : default response handler * @param : * @return : * @----------------------------------------------------------------------------------- */ function defualtResponseHandler(submitUUID, response, responseType) { if (submitArray == null || submitArray.length <= 0) { messageBox("submit °á°ú ó¸® ½Ã ¿¡·¯°¡ ¹ß»ýÇÏ¿´½À´Ï´Ù.", "C"); return; } var submitItem = getSubmitItem(submitUUID); bindInstance(submitUUID, response, responseType, submitItem.resultPath); // »ç¿ëÀÚ ÁöÁ¤ callback ÇÔ¼ö È£Ãâ try { eval(submitItem.responseHandler+"()"); } catch (e) { messageBox(e.message, "C"); return; } //bindInstanceOld(submitUUID, response, responseType, submitItem.resultPath); } /** * @----------------------------------------------------------------------------------- * @desc : default error handler * @param : * @return : * @----------------------------------------------------------------------------------- */ function defualtErrorHandler(submitUUID, errorInfo) { var submitItem = getSubmitItem(submitUUID); if (typeof(submitItem.errorHandler) != "undefined") { try { eval(submitItem.errorHandler); } catch (e) { messageBox(e.message, "C"); return; } } else { messageBox(errorInfo, "C"); return; } } /** * @----------------------------------------------------------------------------------- * @desc : model¿¡ »ç¿ëÁßÀÎ instance¿¡ °á°ú xml stringÀ» ·ÎµùÇÏ´Â ±â´É * model.loadXmlNode ÇÔ¼ö´Â 4.3001.070 ¹öÀü ÀÌ»óºÎÅÍ °¡´É * @param : * @return : * @----------------------------------------------------------------------------------- */ function bindInstance(submitUUID, response, responseType, resultPath) { model.removeNode(resultPath); model.makeNode(resultPath); if (responseType == "xml") { model.loadXmlNode(resultPath, response, false); // xml string loading } model.refresh(); } /** * @----------------------------------------------------------------------------------- * @desc : Global submitArray¿¡¼­ ¿äûµÈ submission Á¤º¸¸¦ ¹ÝȯÇÔ. * @param : * @return : * @----------------------------------------------------------------------------------- */ function getSubmitItem(submitUUID) { if (submitUUID == undefined || submitUUID == "") { messageBox("submitItem ȹµæ ½ÇÆÐ!", "C"); return; } if (submitArray.length <= 0) { messageBox("submitArray is Empty!", "C"); return; } for (var idx = 0 ; idx < submitArray.length ; idx++) { var curItem = submitArray[idx]; if (submitUUID == curItem.submitUUID) { submitArray[idx] = null; makeFullArray(submitArray); return curItem; } } } /** * @----------------------------------------------------------------------------------- * @desc : submitArray Á¤¸® - Áß°£¿¡ ºñ¾îÀÖ´Â ºÎºÐÀ» ¸Ç ¸¶Áö¸· itemÀ¸·Î ä¿î´Ù. * @param : * @return : * @----------------------------------------------------------------------------------- */ function makeFullArray(array) { for (var idx = 0 ; idx < array.length ; idx++) { if (array[idx] == undefined || array[idx] == null) { var lastItem = array.pop(); if (lastItem != null) { array[idx] = lastItem; } } } } /** * @----------------------------------------------------------------------------------- * @desc : uuid »ý¼º. submit °íÀ¯ id ¹× instanceÀÇ id·Î »ç¿ëµÊ. * @param : * @return : * @----------------------------------------------------------------------------------- */ function getRandomSubmitUUID() { var s = [], itoh = ['0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F']; // Make array of random hex digits. The uuid only has 32 digits in it, but we // allocate an extra items to make room for the '-'s we'll be inserting. for (var i = 0; i <36; i++) { s[i] = Math.floor(Math.random()*0x10); } // Conform to RFC-4122, section 4.4 s[14] = 4; // Set 4 high bits of time_high field to version s[19] = (s[19] & 0x3) | 0x8; // Specify 2 high bits of clock sequence // Convert to hex chars for (var i = 0; i <36; i++) { s[i] = itoh[s[i]]; } // Insert '-'s // s[8] = s[13] = s[18] = s[23] = '-'; return s.join(''); }