You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
286 lines
8.1 KiB
JavaScript
286 lines
8.1 KiB
JavaScript
/**
|
|
* 화면 초기 로딩
|
|
* @lastUpdate 2016.08.28
|
|
* @author InswaveSystems
|
|
* @since 2016.08.28
|
|
*/
|
|
scwin.initMainLoad = function() {
|
|
$p.top().scwin.commonCodeList = [];
|
|
wfm_side.getWindow().scwin.fn_getInitData();
|
|
//scwin.openMenu("메인","/cm/common/main.xml","MAIN");
|
|
};
|
|
|
|
/**
|
|
* TabControl의 모든 메뉴 닫기 버튼 이벤트
|
|
* @lastUpdate 2016.08.28
|
|
* @author InswaveSystems
|
|
* @since 2016.08.28
|
|
*/
|
|
scwin.btn_CloseAll_onclick = function() {
|
|
var cnt = tac_layout.getTabCount();
|
|
for (var i = cnt; i > 0; i--) {
|
|
tac_layout.deleteTab(i);
|
|
}
|
|
};
|
|
|
|
/**
|
|
* WindowContainer의 닫기 이벤트
|
|
* @lastUpdate 2016.08.28
|
|
* @param <String> windowTitle
|
|
* @author InswaveSystems
|
|
* @since 2016.08.28
|
|
* @example
|
|
*/
|
|
scwin.closeAction = function(windowTitle) {
|
|
if (windowTitle == "메인") {
|
|
return false;
|
|
}
|
|
return true;
|
|
};
|
|
|
|
/**
|
|
* 메뉴를 open할 때 관련된 기능들을 경우에 따라 처리해준다.
|
|
* @lastUpdate 2016.08.28
|
|
* @param <String> menuNm 메뉴 명
|
|
* @param <String> menuUrl 메뉴 URL
|
|
* @param <String> menuCode 메뉴 코드
|
|
* @param <String> skipType Tree Node 선택 여부 ("Tree" || null)
|
|
* @author InswaveSystems
|
|
* @since 2016.08.28
|
|
* @example
|
|
* scwin.setMenuRelation("인사조회", "/tmp/tmp01.xml", "010001");
|
|
* scwin.setMenuRelation("인사조회", "/tmp/tmp01.xml", "010001", "Tree");
|
|
*/
|
|
scwin.setMenuRelation = function(menuNm, menuUrl, menuCode, skipType) {
|
|
scwin.openMenu(menuNm, menuUrl, menuCode);
|
|
scwin.addHistory(menuNm, menuUrl, menuCode);
|
|
wfm_side.getWindow().gen_history.removeClass("hide");
|
|
scwin.historyResize();
|
|
|
|
//treeview에서 클릭한 경우는 find를 하지 않는다.
|
|
if (!skipType || skipType !== "Tree") {
|
|
wfm_side.getWindow().trv_menu.findNodeByValue(menuCode, true);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 파라메터를 참조하여 화면을 연다.
|
|
* 메뉴를 최근 작업 항목에 추가하거나 메뉴 트리를 선택하게 하려면 scwin.setMenuRelation를 사용한다.
|
|
* @lastUpdate 2018.04.10
|
|
* @param <String> menuNm 메뉴명 - 단위화면에서 해당 값으로 title을 설정한다.
|
|
* @param <String> url 화면 파일 경로
|
|
* @param <String> menuCode 메뉴코드 - DB에 저장되어있는 메뉴 코드
|
|
* @author InswaveSystems
|
|
* @since 2016.08.28
|
|
* @example
|
|
* scwin.openMenu("인사조회","/tmp/tmp01.xml","010001");
|
|
*/
|
|
scwin.openMenu = function(menuNm, url, menuCode, paramObj, menuType) {
|
|
|
|
// client에서 url 숨기기 메뉴일 경우에는 새 창으로 띄우기 적용
|
|
if (url == "/") {
|
|
var url = document.location.href + "/";
|
|
window.open(url, "", "width=1200, height=700, left=450, top=100");
|
|
} else {
|
|
menuCode = menuCode || "";
|
|
var layout = scwin.getLayoutId();
|
|
var tmpUrl;
|
|
var menuCodeParm = menuCode;
|
|
var frameMode; // "wframe", "iframe"
|
|
var favStatus;
|
|
var data;
|
|
|
|
if (url.indexOf("/") !== 0) {
|
|
url = "/" + url;
|
|
}
|
|
url = gcm.CONTEXT_PATH + url;
|
|
|
|
//즐겨찾기가 추가 여부 확인하여 flag 붙임.
|
|
if (scwin.hasFavCode(menuCode) == 0) {
|
|
favStatus = "F";
|
|
} else {
|
|
favStatus = "T";
|
|
}
|
|
|
|
if ((typeof paramObj !== "undefined") && (paramObj !== null)) {
|
|
data = paramObj;
|
|
} else {
|
|
data = {};
|
|
}
|
|
|
|
data.menuNm = menuNm;
|
|
data.menuCode = menuCode;
|
|
data.favStatus = favStatus;
|
|
data.menuType = menuType;
|
|
|
|
if (layout == "T") {
|
|
var tabObj = { closable : true, //탭 닫기 기능 제공
|
|
openAction : "select", // exist 는 기존 탭을 갱신, new 는 항상 새로, select는 동일 id 가 존재하면 선택, last: 기존 tab을 마지막 tab으로 이동후 선택
|
|
label : menuNm };
|
|
|
|
// TabControl에서 iframe와 wframe을 혼용해서 오픈하려고 하면 아래의 코드를 이용해서 동작시킨다.
|
|
/*
|
|
scwin.iframeMenuCd = ["010202", "030101", "030102", "030103", "030104", "030105", "030106", "030107", "030108"];
|
|
var frameMode = "wframePreload";
|
|
for (var i = 0; i < scwin.iframeMenuCd.length; i++) {
|
|
if (scwin.iframeMenuCd[i] == menuCode) {
|
|
frameMode = "iframe";
|
|
break;
|
|
}
|
|
}
|
|
*/
|
|
|
|
if (com.getFrameMode() === "wframe") {
|
|
frameMode = "wframePreload";
|
|
} else {
|
|
frameMode = "iframe";
|
|
}
|
|
|
|
var contObj = {
|
|
frameMode : frameMode,
|
|
scope : true,
|
|
src : url,
|
|
alwaysDraw : false,
|
|
title : menuNm,
|
|
dataObject : {
|
|
type : "json",
|
|
name : "param",
|
|
data : data
|
|
}
|
|
};
|
|
|
|
tac_layout.addTab(menuCode, tabObj, contObj);
|
|
|
|
// tabObj의 openAction의 last값의 동작 특이 사항으로 선택이 되지 않은 경우 선택하는 로직 추가
|
|
if (tac_layout.getSelectedTabID() !== menuCode) {
|
|
var tabIndex = tac_layout.getTabIndex(menuCode);
|
|
if (tabIndex) {
|
|
tac_layout.setSelectedTabIndex(tabIndex);
|
|
}
|
|
}
|
|
} else if (layout == "M") {
|
|
|
|
if (com.getFrameMode() === "wframe") {
|
|
frameMode = "wframe";
|
|
} else {
|
|
frameMode = "iframe";
|
|
}
|
|
|
|
var options = {
|
|
dataObject : {
|
|
type : "json",
|
|
name : "param",
|
|
data : data
|
|
}
|
|
}
|
|
|
|
wdc_main.createWindow(menuNm, null, url, menuNm, menuCode, "existWindow", null, null, null, null, frameMode);
|
|
}
|
|
}
|
|
};
|
|
|
|
/**
|
|
* header menu 생성
|
|
*/
|
|
scwin.setHeaderMenu = function() {
|
|
wfm_header.getWindow().scwin.setGenerator(); //메뉴 생성
|
|
wfm_header.getWindow().scwin.setMenuCss(); //메뉴 css 적용
|
|
}
|
|
|
|
scwin.getLayoutId = function() {
|
|
if (typeof $p.top().$p.getComponentById("tac_layout") === "object") {
|
|
return "T";
|
|
} else if (typeof $p.top().$p.getComponentById("wdc_main") === "object") {
|
|
return "M";
|
|
}
|
|
return null;
|
|
};
|
|
|
|
/**
|
|
* 즐겨찾기 리스트에서 menuCode가 추가되어있는지 확인후 개수 반환.
|
|
* 없으면 == 0, 있으면 > 0
|
|
* @lastUpdate 2016.08.24
|
|
* @param <String> menuCode
|
|
* @returns <int> 존재 개수
|
|
* @author InswaveSystems
|
|
* @since 2016.08.24
|
|
* @example
|
|
* case 1. scwin.hasFavCode("030001"); return : 0 <br/>
|
|
* case 2. scwin.hasFavCode("030001"); return : 1
|
|
*/
|
|
scwin.hasFavCode = function(menuCode) {
|
|
return (wfm_side.getWindow().dlt_fav.getMatchedIndex("MENU_CD", menuCode, true)).length;
|
|
}
|
|
|
|
/**
|
|
* 최근 작업내용을 추가한다.
|
|
*
|
|
* @date 2016.07.19
|
|
* @param 메뉴 명
|
|
* @example
|
|
* scwin.addHistory(label);
|
|
*/
|
|
scwin.addHistory = function(menuNm, url, menuCode) {
|
|
// 맨 마지막에 열린 화면과 동일한 화면을 다시 오픈하는 경우에는 최근작업목록에 저장하지 않도록 반환한다.
|
|
if (wfm_side.getWindow().gen_history.getLength() >= 1) {
|
|
var lastMenuCode = wfm_side.getWindow().gen_history.getChild(0, "btn_History").getUserData("tmpMenuInfo").split("|")[0];
|
|
if (menuCode === lastMenuCode) {
|
|
return;
|
|
}
|
|
}
|
|
|
|
wfm_side.getWindow().gen_history.insertChild(0);
|
|
var curObj = wfm_side.getWindow().gen_history.getChild(0, "btn_History");
|
|
|
|
var tmpHH = $p.getFormattedDate(new Date(), "yyyy-MM-dd HH:mm");
|
|
curObj.setValue(menuNm);
|
|
curObj.setTitle("[" + tmpHH + "] " + menuNm);
|
|
curObj.setUserData("tmpMenuInfo", menuCode + "|" + url);
|
|
};
|
|
|
|
scwin.historyResize = function() {
|
|
var listHeight = wfm_side.getWindow().gen_history.getSize("height");
|
|
var swhInBoxId = wfm_side.getWindow().swh_lnbbox.getID();
|
|
$("#" + swhInBoxId + " .w2switch_case").animate({ "bottom" : listHeight + 44 }, 700);
|
|
$(".box_history").animate({ "height" : listHeight + 24 }, 700);
|
|
}
|
|
|
|
scwin.getMenuNavigation = function(menuCode, rsStr) {
|
|
var naviStr;
|
|
if (rsStr) {
|
|
naviStr = rsStr;
|
|
} else {
|
|
naviStr = "";
|
|
}
|
|
var menuJSON = wfm_side.getWindow().dlt_menu.getMatchedJSON("MENU_CD", menuCode, true)[0];
|
|
|
|
naviStr += menuJSON.MENU_NM + "%|%" + menuCode + "%|%";
|
|
|
|
if (menuJSON) {
|
|
if (menuJSON.PARENT_MENU_CD != "000000000") {
|
|
return this.getMenuNavigation(menuJSON.PARENT_MENU_CD, naviStr);
|
|
}
|
|
}
|
|
return naviStr;
|
|
};
|
|
|
|
scwin.setResultMessage = function(resultData) {
|
|
if (typeof wfm_footer !== "undefined") {
|
|
var messageObj = wfm_footer.getWindow().spn_message;
|
|
var curCode = messageObj.getUserData("tmpStatusCode");
|
|
|
|
if (curCode) {
|
|
messageObj.removeClass(curCode);
|
|
}
|
|
|
|
if (resultData.statusCode) {
|
|
messageObj.addClass(resultData.statusCode);
|
|
}
|
|
|
|
messageObj.setUserData("tmpStatusCode", resultData.statusCode);
|
|
messageObj.setValue(resultData.message);
|
|
wfm_footer.getWindow().grp_message.setUserData("message", resultData);
|
|
wfm_footer.getWindow().scwin.spn_message_onclick();
|
|
}
|
|
}
|