/**
* admin/menu
*/
var mplus_admin_menu = function( language_code ){
//상속
mplus_admin.call(this);
var self = this;
//언어코드
var DEFAULT_LANGUAGE = language_code;
//변수
var $crudServiceBaseUrl = contextPath + '/admin/menu',
$txtId = $('#txtId'),
$txtMenu = $('#txtMenu'),
$txtOrder = $('#txtOrder'),
$sltMenuType = $('#sltMenuType'),
$sltDisplay = $('#sltDisplay'),
$txtPageUrl = $('#txtPageUrl'),
$txtImageUrl = $('#txtImageUrl'),
$txtMenuDesc = $('#txtMenuDesc'),
$btnCreateNode = $('#btnCreateNode'),
$btnCreateI18n = $('#btnCreateI18n'),
$btnNewItemI18n = $('#btnNewItem_i18n'),
$btnConfirmI18n = $('#btnConfirmItem_i18n'),
$btnCreateParam = $('#btnCreateParam'),
$btnNewItemParam = $('#btnNewItem_param'),
$btnConfirmParam = $('#btnConfirmItem_param'),
$btnCreateAuth = $('#btnCreateAuth'),
$btnNewItemAuth = $('#btnNewItem_auth'),
$btnConfirmAuth = $('#btnConfirmItem_auth'),
$btnRemoveNode = $('#btnRemoveNode'),
$btnSaveNode = $('#btnSaveNode'),
$btnCacheInit = $('#btnCacheInit'),
$btnDeselectNode = $('#btnDeselectNode'),
$authCrudServiceBaseUrl = contextPath + "/admin/auth"; //속성 관련 요청을 위해 별도로 작성;
var addedNodeArr = [];
/**
* 객체 초기화
*/
this.init = function(){
initTree();
initDropDownList();
//설명 글자수 이벤트 - core에 선언
self.checkDescBytes($txtMenuDesc, 'txtMenuDesc');
addEvent();
/*if($("#menuTreeView .fancytree-expander")[0]!=undefined){
$('#menuTreeView').fancytree('getTree').getNodeByKey($("#menuTreeView .fancytree-expander")[0].id).setActive();
}else{*/
$('#menuDetail').css('display', 'none');
$('#menuDetailEmpty').css('display', 'block');
/*};*/
};
/**
* 이벤트 등록
*/
var addEvent = function(){
// 아이템 갱신 (to 모바일 서버)
$btnCacheInit.on("click",function(e) {
reloadItem(e);
});
$btnCreateNode.on('click', function(e){
addItem(e);
});
$btnSaveNode.on("click",function(e) {
saveItem(e);
});
$btnRemoveNode.on("click",function(e) {
removeItem(e);
});
$btnDeselectNode.on("click",function(e) {
deselectItem(e);
});
$btnCreateI18n.on("click",function(e) {
editTableI18n(e);
});
$btnNewItemI18n.on("click", function(e){
newTableI18n(e);
});
$btnConfirmI18n.on("click", function(e){
confirmTableI18n(e);
});
$btnCreateParam.on("click",function(e) {
editTableParam(e);
});
$btnNewItemParam.on("click", function(e){
newTableParam(e);
});
$btnConfirmParam.on("click", function(e){
confirmTableParam(e);
});
$btnCreateAuth.on("click",function(e) {
editTableAuth(e);
});
$btnNewItemAuth.on("click", function(e){
newTableAuth(e);
});
$btnConfirmAuth.on("click", function(e){
confirmTableAuth(e);
});
};
/**
* 트리 아이템 신규 이벤트
* @private
*/
var addItem = function(e){
if($("#menuTreeView").fancytree("getActiveNode")!=null){
var node = $("#menuTreeView").fancytree("getActiveNode"),
item = $("#menuTreeView").fancytree("getActiveNode").data;
if(node.expanded==undefined){
$("#menuTreeView").fancytree("getActiveNode").setExpanded();
};
}else{
var node = $("#menuTreeView").fancytree("getRootNode");
};
if (addedNodeArr.length > 0) {
alert("저장하지 않은 아이템이 있습니다");
return false;
};
var nodeData = null,
defData = {
menuType: "CONT",
menuName: "NewItem",
menuOrder: 0,
enabledYn: "Y",
accessUriAddr: "",
imageUriAddr: "",
menuDesc: "",
childCount: 0,
i18ns: [],
menuSeq: null,
selected: false,
menuParam : [],
menuAuths : [],
};
if( node.length==undefined || node.length === 0 ) {
nodeData = $.extend(true, {}, {
menuType: 'MAIN'
}, defData);
} else {
if( item.childCount === 0 ) {
item.loaded(true);
}
nodeData = $.extend( true, {}, JSON.stringify(item), {
menuId: null,
parentMenuId: item.menuId
}, defData);
}
node.addChildren({title: defData.menuName,
key: defData.key,
folder: false,
lazy: false,
data: defData}
);
addedNodeArr.push( defData );
if(node.children.length==1 && node.parent!=null){
$("#menuTreeView").fancytree("getActiveNode").setExpanded();
};
node.children[node.children.length-1].li.click();
//첫번째놈, 그니까 추가된놈을 선택해야함!
$('#txtId').focus();
};
// 다국어 코드 중복 체크
var i18nArr = [];
/**
* 트리 아이템 저장 이벤트
* @private
*/
var saveItem = function(e){
var node = $("#menuTreeView").fancytree("getActiveNode"),
item = $("#menuTreeView").fancytree("getActiveNode").data,
pnode = node.parent.data;
if( node.length === 0 ) {
alert("선택한 아이템이 없습니다");
return false;
};
var reqI18nArr = [];
for (var i = 0; i < i18nList.length; i++) {
var it = i18nList[i];
reqI18nArr.push({'menuId': it.menuId, 'cdText': it.cdText, 'i18nCd': it.i18nCd});
};
var reqParamArr = [];
for (var i = 0; i < paramList.length; i++) {
var it = paramList[i],
paramName = it.paramName,
paramSeq = it.paramSeq;
reqParamArr.push({
'dataType': it.dataType,
'menuId': it.menuId,
'paramDesc': it.paramDesc,
'paramName': it.paramName.replace(/\s/gi, ''),
'paramValue': it.paramValue
});
};
var paramItem = {
accessUriAddr: $txtPageUrl.val(),
menuSeq: item.menuSeq,
auth: $("input:radio[name='certifyYN']:checked").val()=='Y'? true: false,
childCount: item.menuSeq==null? '0': item.childCount,
enabledYn: $sltDisplay.val(),
i18ns: reqI18nArr,
imageUriAddr: $txtImageUrl.val(),
menuAuth : authList,
menuDesc: $txtMenuDesc.val(),
menuId: $txtId.val(),
menuName: $txtMenu.val(),
menuOrder: $txtOrder.val(),
menuParam : reqParamArr,
menuType: $sltMenuType.val(),
parentMenuId: pnode.menuId
};
if( paramItem.menuId === null || paramItem.menuId === "" ) {
alert( "아이디를 입력해주세요." );
return false;
};
if( paramItem.menuName === null || paramItem.menuName === "" ) {
alert( "이름을 입력해주세요." );
return false;
};
if( paramItem.accessUriAddr === null || paramItem.accessUriAddr === "" ) {
alert( "페이지 URL을 입력해주세요." );
return false;
};
if( pnode.hasOwnProperty() ) {
if( pnode.menuType === "CONT" && paramItem.menuType !== "CONT" ) {
alert( "콘텐츠 하위에는 콘텐츠만 등록할 수 있습니다" );
return false;
}
if( paramItem.menuType === "SIDE" ){
alert( "메뉴타입을 사이드바로 지정할 수 없습니다." );
return false;
}
}
paramItem.accessUriAddr = $('#txtPageUrl').val();
/*if( paramItem.accessUriAddr.indexOf("javascript:") > -1 && paramItem.aggYn === "Y" ){
alert( "스크립트 메뉴는 통계여부를 '아니오'로 설정해주세요.")
return false;
};*/
var opt = {
url : $crudServiceBaseUrl + "/save.json",
method : "POST",
data : self.util.stringifyJson(paramItem),
dataType : "json",
contentType: "application/json; charset=UTF-8"
};
var success = function(data){
alert("저장 되었습니다");
addedNodeArr = [];
var saveItemData = $('#menuTreeView').fancytree('getActiveNode');
$('#title'+saveItemData.key).text(data.menuName);
saveItemData.data = data;
/*location.reload(true);*/
};
var error = function(xhr,d,t){
console.log(xhr);
console.log(t);
};
self.ajaxAdmin( opt, success, error );
addedNodeArr = [];
};
/**
* 트리 아이템 reload 이벤트
* @private
*/
var reloadItem = function(e){
var opt = {
url : $crudServiceBaseUrl + "/cacheReload.json",
type : "POST",
contentType: "application/json; charset=UTF-8"
};
var success = function(data){
if( data === 1 ) {
alert("갱신 되었습니다");
} else {
alert( "수행 중 에러가 발생하였습니다" );
}
};
var error = function(xhr,d,t){
console.log(xhr);
console.log(t);
};
self.ajaxAdmin( opt, success, error );
};
/**
* 트리 아이템 삭제 이벤트
* @private
*/
var removeItem = function(e){
var node = $("#menuTreeView").fancytree("getActiveNode");
if( node.length === 0 ) {
alert( '삭제할 메뉴를 선택해주세요.' );
return false;
}
var item = $("#menuTreeView").fancytree("getActiveNode").data;
if( item.menuSeq === null ) {
node.remove();
addedNodeArr = [];
$('#menuDetail').css('display', 'none');
$('#menuDetailEmpty').css('display', 'block');
} else {
if( item.childCount > 0 ) {
alert( "하위 아이템이 존재하여 삭제할 수 없습니다." );
return false;
}
if( !confirm( "삭제 하시겠습니까?" ) ) {
return false;
}
var opt = {
url : $crudServiceBaseUrl + "/remove.json",
type : "POST",
data : self.util.stringifyJson({ menuId : item.menuId }),
dataType : "json"
};
var success = function(data){
alert( "삭제 되었습니다" );
$('#menuTreeView').fancytree('getActiveNode').remove();
// location.reload(true);
};
var error = function(xhr,d,t){
console.log(xhr);
console.log(t);
};
self.ajaxAdmin( opt, success, error );
}
};
/**
* 트리 아이템 선택 해제 이벤트
* @private
*/
var deselectItem = function(e){
var node = $("#menuTreeView").fancytree("getActiveNode");
if(node!=null) {
node.setActive(false);
node.setFocus(false);
};
$txtId.attr('readonly', false);
$txtId.val('');
$txtMenu.val('');
$txtOrder.val('');
$sltMenuType.val('');
$sltDisplay.val('');
/*$("input:radio[name='displayYN']:radio[value='Y']").prop('checked', true);*/
/*$("input:radio[name='statsYN']:radio[value='Y']").prop('checked', true);*/
$("input:radio[name='certifyYN']:radio[value='Y']").prop('checked', true);
$("input:radio[name='certifyDisplayYN']:radio[value='Y']").prop('checked', true);
$txtPageUrl.val('');
$txtImageUrl.val('');
$txtMenuDesc.val('');
$('#menuDetail').css('display', 'none');
$('#menuDetailEmpty').css('display', 'block');
};
/**
* 속성 데이터 가져오기
*/
var authList;
var initDropDownList = function(){
$sltMenuType.on('change', function(e){
//네비게이션이면
if( e.currentTarget.value === "NAVI" ){
$('#txtPageUrl').val("/navigation.page");
} else {
var text = $('#txtPageUrl').val();
text = (text!==""&& text !=="/navigation.page")?text:"";
$('#txtPageUrl').val(text);
}
});
var opt = {
url : $authCrudServiceBaseUrl + '/getList.json',
type: 'post',
dataType: 'json',
contentType: 'application/json'
};
var success = function(data) {
for (var i = 0; i < data.length; i++) {
var auth = data[i];
$('#sltAuth').append('');
}
};
var error = function(xhr, d, t) {
console.log(xhr);
alert(xhr.responseText);
};
self.ajaxAdmin(opt, success, error);
};
/**
* 트리 초기화
*/
var createDeptNodeData = function(data) {
return $.extend({
title : data.menuName,
key : data.menuId,
folder : data.childCount>0? true: false,
lazy : data.childCount>0? true: false,
data : data
}, data);
};
var initTree = function(){
var $tree = $("#menuTreeView").fancytree(
{
extensions: ["edit"],
lazyLoad : function(event, ctx) {
var param_lazyload = {
async: false,
url : $crudServiceBaseUrl + "/getList.json",
dataType : 'json',
type : 'POST',
data: {menuId: ctx.node.data.menuId}
};
result = [];
var success_lazyload = function(data){
deptList = data;
for ( var i in deptList) {
var item = deptList[i];
result.push(createDeptNodeData(item));
};
ctx.result = result;
};
var error_lazyload = function(xhr,d,t){
console.log(xhr);
console.log(t);
};
self.ajaxAdmin( param_lazyload, success_lazyload, error_lazyload );
},
selectMode : 3,
activate : function(event, ctx) {
var menuData = ctx.node.data;
if(menuData.menuId==undefined){
$txtId.attr('readonly', false);
$txtId.val('');
$txtMenu.val('');
$txtOrder.val(0);
$sltMenuType.val('');
$sltDisplay.val('Y');
/*$("input:radio[name='displayYN']:radio[value='Y']").prop('checked', true);*/
/*$("input:radio[name='statsYN']:radio[value='Y']").prop('checked', true)*/
$("input:radio[name='certifyYN']:radio[value='Y']").prop('checked', true);
$("input:radio[name='certifyDisplayYN']:radio[value='Y']").prop('checked', true);
$txtPageUrl.val('');
$txtImageUrl.val('');
$txtMenuDesc.val('');
$('#table_i18n_view').empty();
$('#table_param_view').empty();
$('#table_auth_view').empty();
i18nList = [];
paramList = [];
authList = [];
i18nEditList = [];
paramEditList = [];
authEditList = [];
}else{
$txtId.attr('readonly', true);
$txtId.val(menuData.menuId);
$txtMenu.val(menuData.menuName);
$txtOrder.val(menuData.menuOrder);
$sltMenuType.val(menuData.menuType);
$sltDisplay.val(menuData.enabledYn);
$txtPageUrl.val(menuData.accessUriAddr);
$txtImageUrl.val(menuData.imageUriAddr);
$txtMenuDesc.val(menuData.menuDesc);
menuInfo(menuData.menuId);
};
//설명 글자수제한 초기화
$txtMenuDesc.trigger("keyup");
$('#menuDetail').css('display', 'block');
$('#menuDetailEmpty').css('display', 'none');
},
click : function(event, data) {
},
}).fancytree('getTree');
var deptList;
$.ajax({
async : false,
url : $crudServiceBaseUrl + "/getList.json",
dataType : 'json',
type : 'POST',
contentType : 'application/json',
success : function(result){
deptList = result;
}
});
var $root = $tree.getRootNode();
for ( var i in deptList) {
var item = deptList[i];
if (item.parentMenuId == null) {
$root.addNode(createDeptNodeData(item));
};
}
};
var i18nList = [];
var paramList = [];
var authList = [];
var i18nEditList = [];
var paramEditList = [];
var authEditList = [];
var temI18nSeq;
var temParamSeq;
var menuInfo = function(menuId){
//다국어 테이블
var opt_i18n = {
url : $crudServiceBaseUrl + "/getI18nList.json",
type : "POST",
dataType : "json",
data: self.util.stringifyJson({'menuId': menuId}),
contentType: "application/json; charset=UTF-8"
};
var success_i18n = function(data){
$('#table_i18n_view').empty();
i18nList = data;
temI18nSeq = data.length;
for(var i=0; i').clone();
var tdCode = $(' | ').clone().text(i18nList[i].i18nCd);
var tdText = $(' | ').clone().text(i18nList[i].cdText==null? '': self.util.getBytes(i18nList[i].cdText)>20? self.util.cut(i18nList[i].cdText, 20)+'...': i18nList[i].cdText);
i18nList[i].i18nSeq = i;
$('#table_i18n_view').append(tr.append(tdCode).append(tdText));
};
};
var error_i18n = function(xhr,d,t){
console.log(xhr);
console.log(t);
};
self.ajaxAdmin( opt_i18n, success_i18n, error_i18n );
//파라미터 테이블
var opt_param = {
url : $crudServiceBaseUrl + "/getParamList.json",
type : "POST",
dataType : "json",
data: self.util.stringifyJson({'menuId': menuId}),
contentType: "application/json; charset=UTF-8"
};
var success_param = function(data){
paramList = data;
temParamSeq = data.length;
$('#table_param_view').empty();
for(var i=0; i').clone();
var tdNo = $(' | ').clone().text(i+1);
var tdName = $(' | ').clone().text(paramList[i].paramName==null? '': self.util.getBytes(paramList[i].paramName)>10? self.util.cut(paramList[i].paramName, 10)+'...': paramList[i].paramName);
var tdType = $(' | ').clone().text(paramList[i].dataType);
var tdValue = $(' | ').clone().text(paramList[i].paramValue==null? '': self.util.getBytes(paramList[i].paramValue)>10? self.util.cut(paramList[i].paramValue, 10)+'...': paramList[i].paramValue);
var tdDesc = $(' | ').clone().text(paramList[i].paramDesc==null? '': self.util.getBytes(paramList[i].paramDesc)>10? self.util.cut(paramList[i].paramDesc, 10)+'...': paramList[i].paramDesc);
paramList[i].paramSeq = i;
$('#table_param_view').append(tr.append(tdNo).append(tdName).append(tdType).append(tdValue).append(tdDesc));
};
};
var error_param = function(xhr,d,t){
console.log(xhr);
console.log(t);
};
self.ajaxAdmin( opt_param, success_param, error_param );
//권한 테이블
var opt_auth = {
url : $crudServiceBaseUrl + "/getMenuAuthList.json",
type : "POST",
dataType : "json",
data: self.util.stringifyJson({'menuId': menuId}),
contentType: "application/json; charset=UTF-8"
};
var success_auth = function(data){
authList = data;
$('#table_auth_view').empty();
for(var i=0;i ').clone();
var tdName = $(' | ').clone().text(authList[i].authName);
$('#table_auth_view').append(tr.append(tdName));
};
};
var error_auth = function(xhr,d,t){
console.log(xhr);
console.log(t);
};
self.ajaxAdmin( opt_auth, success_auth, error_auth );
};
var getItemData = function(itemList, tableCheckValue, checkValue){
var itemData = {};
for(i=0; i').clone();
var tdCode = $(' | ').clone().text(i18nList[i].i18nCd);
var tdText = $(' | ').clone().addClass('max-width-sm').text(i18nList[i].cdText==null? '': self.util.getBytes(i18nList[i].cdText)>10? self.util.cut(i18nList[i].cdText, 10)+'...': i18nList[i].cdText);
var tdEdit = $(' | ').clone().append('');
$('#table_i18n').append(tr.append(tdCode).append(tdText).append(tdEdit));
};
$('#table_i18n tr').unbind();
$('#table_i18n tr').on('click', function(e){
editItemI18n(e);
$('#table_i18n tr').removeClass('active');
$(this).addClass('active');
});
$('#table_i18n tr td button').unbind();
$('#table_i18n tr td button').on('click', function(e){
removeItemI18n(e);
});
/*i18nEditList = i18nList;*/
i18nEditList = [];
$.extend(i18nEditList, i18nList); //객체 복사, 위의 방식으로하면 객체 공유가 되어버림!
$('#addItemModal_i18n').modal('show');
$('#saveItem_i18n').unbind();
$('#saveItem_i18n').on('click', function(){
var param = { 'i18nSeq': null,
'i18nCd': $('#sltI18n').val(),
'cdText': $('#txtI18n').val(),
'menuId': $("#txtId").val()};
saveItemI18n(param, 'new');
});
if($('#table_i18n tr').length>0){
$('#table_i18n tr')[0].click();
}else{
$('#modalI18nDetail').css('display', 'none');
$('#modalI18nDetailEmpty').css('display', 'block');
};
};
var newTableI18n = function(){
/*$('#sltI18n').attr('disabled', false);*/
$("#sltI18n").val($("#sltI18n option:first").val());
$('#txtI18n').val('');
$('#table_i18n tr').removeClass('active');
$('#saveItem_i18n').unbind();
$('#saveItem_i18n').on('click', function(){
var param = {
'i18nSeq': null,
'i18nCd': $('#sltI18n').val(),
'cdText': $('#txtI18n').val(),
'menuId': $("#txtId").val()
};
saveItemI18n(param, 'new');
});
$('#modalI18nDetail').css('display', 'block');
$('#modalI18nDetailEmpty').css('display', 'none');
$("#sltI18n").focus();
};
var saveItemI18n =function(param, newYn){
if($('#table_i18n tr[class!="active"][itemData="'+param.i18nCd+'"]').length>0){
alert('다국어 코드는 중복될 수 없습니다.');
return;
};
if(param.cdText==null||param.cdText==''){
alert('다국어 텍스트를 입력해주세요.');
return;
};
if(newYn=='edit'){
olderValue = $('#table_i18n tr.active')[0].attributes.itemData.value;
$('#table_i18n tr[itemData="'+olderValue+'"]')[0].children[0].innerText=param.i18nCd;
$('#table_i18n tr[itemData="'+olderValue+'"]')[0].children[1].innerText=param.cdText==null? '': self.util.getBytes(param.cdText)>10? self.util.cut(param.cdText, 10)+'...': param.cdText;
$('#table_i18n tr[itemData="'+olderValue+'"]')[0].children[2].children[0].attributes.itemData.value=param.i18nCd;
$('#table_i18n tr[itemData="'+olderValue+'"]')[0].attributes.itemdata.value=param.i18nCd;
for(var i=0; i').clone();
var tdCode = $(' | ').clone().text(param.i18nCd);
var tdText = $(' | ').clone().addClass('max-width-sm').text(param.cdText==null? '': self.util.getBytes(param.cdText)>10? self.util.cut(param.cdText, 10)+'...': param.cdText);
var tdEdit = $(' | ').clone().append('');
$('#table_i18n').append(tr.append(tdCode).append(tdText).append(tdEdit));
i18nEditList.push(param);
};
$('#table_i18n tr').unbind();
$('#table_i18n tr').on('click', function(e){
editItemI18n(e);
$('#table_i18n tr').removeClass('active');
$(this).addClass('active');
});
$('#table_i18n tr td button').unbind();
$('#table_i18n tr td button').on('click', function(e){
removeItemI18n(e);
});
$('#table_i18n tr[itemData="'+param.i18nCd+'"]').click();
};
var editItemI18n = function(e){
var itemData = getItemData(i18nEditList, 'i18nCd', e.currentTarget.attributes.itemData.value);
if(itemData==undefined || itemData ==null){
alert('정상적인 데이터가 아닙니다.'); //이표시가 맞을까?
return;
};
$('#sltI18n').val(itemData.i18nCd);
$('#txtI18n').val(itemData.cdText);
$('#saveItem_i18n').unbind();
$('#saveItem_i18n').on('click', function(){
var param = {
'i18nSeq': itemData.i18nSeq,
'i18nCd': $('#sltI18n').val(), 'cdText': $('#txtI18n').val(), 'menuId': $("#txtId").val()};
saveItemI18n(param, 'edit');
});
$('#modalI18nDetail').css('display', 'block');
$('#modalI18nDetailEmpty').css('display', 'none');
};
var removeItemI18n = function(e){
$('#table_i18n tr[itemData="'+e.currentTarget.attributes.itemData.value+'"]').remove();
for(var i=0; i').clone();
var tdCode = $(' | ').clone().text(i18nEditList[i].i18nCd);
var tdText = $(' | ').clone().text(i18nEditList[i].cdText==null? '': self.util.getBytes(i18nEditList[i].cdText)>20? self.util.cut(i18nEditList[i].cdText, 20)+'...': i18nEditList[i].cdText);
$('#table_i18n_view').append(tr.append(tdCode).append(tdText));
};
i18nList = [];
$.extend(i18nList, i18nEditList); //객체 복사
};
/*-------------------------- 다국어 테이블 CRUD 끝-------------------------- */
/*-------------------------- 파라미터 테이블 CRUD -------------------------- */
var editTableParam = function(){
$('#txtParamName').val('');
$("#sltParamType").val($("#sltParamType option:first").val());
$('#txtParamValue').val('');
$('#txtParamDesc').val('');
$('#table_param').empty();
for(var i=0; i').clone();
var tdName = $(' | ').clone().text(paramList[i].paramName==null? '': self.util.getBytes(paramList[i].paramName)>10? self.util.cut(paramList[i].paramName, 10)+'...': paramList[i].paramName);
var tdValue = $(' | ').clone().text(paramList[i].paramValue==null? '': self.util.getBytes(paramList[i].paramValue)>10? self.util.cut(paramList[i].paramValue, 10)+'...': paramList[i].paramValue);
var tdEdit = $(' | ').clone().append(
'');
$('#table_param').append(tr.append(tdName).append(tdValue).append(tdEdit));
};
$('#table_param tr').unbind();
$('#table_param tr').on('click', function(e) {
editItemParam(e);
$('#table_param tr').removeClass('active');
$(this).addClass('active');
});
$('#table_param tr td button').unbind();
$('#table_param tr td button').on('click', function(e){
removeItemParam(e);
});
paramEditList = [];
$.extend(paramEditList, paramList); //객체 복사
$('#addItemModal_param').modal('show');
$('#saveItem_param').unbind();
$('#saveItem_param').on('click', function(){
var param = {
'paramSeq' : null,
'paramName': $('#txtParamName').val(),
'dataType': $('#sltParamType').val(),
'paramValue': $('#txtParamValue').val(),
'paramDesc': $('#txtParamDesc').val(),
'menuId': $("#txtId").val()
};
saveItemParam(param, 'new');
});
if($('#table_param tr').length>0){
$('#table_param tr')[0].click();
$('#modalParamDetail').css('display', 'block');
$('#modalParamDetailEmpty').css('display', 'none');
}else{
$('#modalParamDetail').css('display', 'none');
$('#modalParamDetailEmpty').css('display', 'block');
};
};
var newTableParam = function(){
$('#txtParamName').val('');
$("#sltParamType").val($("#sltParamType option:first").val());
$('#txtParamValue').val('');
$('#txtParamDesc').val('');
$('#table_param tr').removeClass('active');
$('#modalParamDetail').css('display', 'block');
$('#modalParamDetailEmpty').css('display', 'none');
$('#txtParamName').focus();
$('#saveItem_param').unbind();
$('#saveItem_param').on('click', function(){
var param = {
'paramSeq' : null,
'paramName': $('#txtParamName').val(),
'dataType': $('#sltParamType').val(),
'paramValue': $('#txtParamValue').val(),
'paramDesc': $('#txtParamDesc').val(),
'menuId': $("#txtId").val()
};
saveItemParam(param, 'new');
});
};
var saveItemParam = function(param, newYn){
if(param.paramName==null || param.paramName==''){
alert('이름을 입력해주세요.');
return;
};
if($('#table_param tr[class!="active"][itemData="'+param.paramName+'"]').length>0){
alert('이름은 중복될 수 없습니다.');
return;
};
if(param.dataType==null||param.dataType==''){
alert('타입을 선택해주세요.');
return;
};
if(newYn=='edit'){
olderValue = $('#table_param tr.active')[0].attributes.itemData.value;
$('#table_param tr[itemData="'+olderValue+'"]')[0].children[0].innerText=param.paramName==null? '': self.util.getBytes(param.paramName)>10? self.util.cut(param.paramName, 10)+'...': param.paramName;
$('#table_param tr[itemData="'+olderValue+'"]')[0].children[1].innerText=param.paramValue==null? '': self.util.getBytes(param.paramValue)>10? self.util.cut(param.paramValue, 10)+'...': param.paramValue;
$('#table_param tr[itemData="'+olderValue+'"]')[0].children[2].children[0].attributes.itemData.value=param.paramName;
$('#table_param tr[itemData="'+olderValue+'"]')[0].attributes.itemdata.value=param.paramName;
for(var i=0; i').clone();
var tdName = $(' | ').clone().text(param.paramName==null? '': self.util.getBytes(param.paramName)>10? self.util.cut(param.paramName, 10)+'...': param.paramName);
var tdValue = $(' | ').clone().text(param.paramValue==null? '': self.util.getBytes(param.paramValue)>10? self.util.cut(param.paramValue, 10)+'...': param.paramValue);
var tdEdit = $(' | ').clone().append('');
$('#table_param').append(tr.append(tdName).append(tdValue).append(tdEdit));
paramEditList.push(param);
};
$('#table_param tr').unbind();
$('#table_param tr').on('click', function(e) {
editItemParam(e);
$('#table_param tr').removeClass('active');
$(this).addClass('active');
});
$('#table_param tr td button').unbind();
$('#table_param tr td button').on('click', function(e) {
removeItemParam(e);
});
$('#table_param tr[itemData="'+ param.paramName +'"]').click();
};
var editItemParam = function(e){
var itemData = getItemData(paramEditList, 'paramName', e.currentTarget.attributes.itemData.value);
if(itemData==undefined || itemData ==null){
alert('정상적인 데이터가 아닙니다.'); //이표시가 맞을까?
return;
};
$('#txtParamName').val(itemData.paramName);
$("#sltParamType").val(itemData.dataType);
$('#txtParamValue').val(itemData.paramValue);
$('#txtParamDesc').val(itemData.paramDesc);
$('#saveItem_param').unbind();
$('#saveItem_param').on('click', function(){
var param = {
'paramSeq' : itemData.paramSeq,
'paramName': $('#txtParamName').val(),
'dataType': $('#sltParamType').val(),
'paramValue': $('#txtParamValue').val(),
'paramDesc': $('#txtParamDesc').val(),
'menuId': $("#txtId").val()};
saveItemParam(param, 'edit');
});
$('#modalParamDetail').css('display', 'block');
$('#modalParamDetailEmpty').css('display', 'none');
};
var removeItemParam = function(e){
$('#table_param tr[itemData="'+e.currentTarget.attributes.itemData.value+'"]').remove();
for(var i=0; i').clone();
var tdNo = $(' | ').clone().text(i+1);
var tdName = $(' | ').clone().text(paramEditList[i].paramName==null? '': self.util.getBytes(paramEditList[i].paramName)>10? self.util.cut(paramEditList[i].paramName, 10)+'...': paramEditList[i].paramName);
var tdType = $(' | ').clone().text(paramEditList[i].dataType);
var tdValue = $(' | ').clone().text(paramEditList[i].paramValue==null? '': self.util.getBytes(paramEditList[i].paramValue)>10? self.util.cut(paramEditList[i].paramValue, 10)+'...': paramEditList[i].paramValue);
var tdDesc = $(' | ').clone().text(paramEditList[i].paramDesc==null? '': self.util.getBytes(paramEditList[i].paramDesc)>10? self.util.cut(paramEditList[i].paramDesc, 10)+'...': paramEditList[i].paramDesc);
$('#table_param_view').append(tr.append(tdNo).append(tdName).append(tdType).append(tdValue).append(tdDesc));
};
paramList = [];
$.extend(paramList, paramEditList); //객체 복사
};
/*-------------------------- 파라미터 테이블 CRUD 끝-------------------------- */
/*-------------------------- 권한 테이블 CRUD -------------------------- */
var editTableAuth = function(){
$("#sltAuth").val($("#sltAuth option:first").val());
$('#table_auth').empty();
for(var i=0;i ').clone();
var tdName = $(' | ').clone().text(authList[i].authName);
var tdEdit = $(' | ').clone().append('');
$('#table_auth').append(tr.append(tdName).append(tdEdit));
};
$('#table_auth tr').unbind();
$('#table_auth tr').on('click', function(e){
editItemAuth(e);
$('#table_auth tr').removeClass('active');
$(this).addClass('active');
});
$('#table_auth tr td button').unbind();
$('#table_auth tr td button').on('click', function(e){
removeItemAuth(e);
});
authEditList = [];
$.extend(authEditList, authList); //객체 복사
$('#addItemModal_auth').modal('show');
$('#saveItem_auth').unbind();
$('#saveItem_auth').on('click', function(){
var param = {'authId': $('#sltAuth').val(),
'authName': $('#sltAuth option:selected').text()};
saveItemAuth(param);
});
if($('#table_auth tr').length>0){
$('#table_auth tr')[0].click();
}else{
$('#modalAuthDetail').css('display', 'none');
$('#modalAuthDetailEmpty').css('display', 'block');
};
};
var newTableAuth = function(){
$("#sltAuth").val($("#sltAuth option:first").val());
$('#table_auth tr').removeClass('active');
$('#modalAuthDetail').css('display', 'block');
$('#modalAuthDetailEmpty').css('display', 'none');
$('#sltAuth').focus();
$('#saveItem_auth').unbind();
$('#saveItem_auth').on('click', function(){
var param = {
'authId': $('#sltAuth').val(),
'authName': $('#sltAuth option:selected').text()
};
saveItemAuth(param, 'new');
});
};
var saveItemAuth = function(param, newYn) {
if(param.authId==''){
alert('권한을 선택해주세요.');
return;
};
if($('#table_auth tr[class!="active"][itemData="'+param.authId+'"]').length>0){
alert('권한은 중복될 수 없습니다.');
return;
};
if(newYn=='edit'){
olderValue = $('#table_auth tr.active')[0].attributes.itemData.value;
$('#table_auth tr[itemData="'+olderValue+'"]')[0].children[0].innerText=param.authName;
$('#table_auth tr[itemData="'+olderValue+'"]')[0].children[1].children[0].attributes.itemData.value=param.paramName;
$('#table_auth tr[itemData="'+olderValue+'"]')[0].attributes.itemdata.value=param.paramName;
for(var i=0; i').clone();
var tdName = $(' | ').clone().text(param.authName);
var tdEdit = $(' | ').clone().append(
'');
$('#table_auth').append(tr.append(tdName).append(tdEdit));
authEditList.push(param);
};
$('#table_auth tr').unbind();
$('#table_auth tr').on('click', function(e){
editItemAuth(e);
$('#table_auth tr').removeClass('active');
$(this).addClass('active');
});
$('#table_auth tr td button').unbind();
$('#table_auth tr td button').on('click', function(e){
removeItemAuth(e);
});
$('#table_auth tr[itemData="'+param.authId+'"]').click();
};
var editItemAuth = function(e){
var itemData = getItemData(authEditList, 'authId', e.currentTarget.attributes.itemData.value);
if(itemData==undefined || itemData ==null){
alert('정상적인 데이터가 아닙니다.'); //이표시가 맞을까?
return;
};
$('#sltAuth').val(itemData.authId);
$('#saveItem_auth').unbind();
$('#saveItem_auth').on('click', function(){
var param = {'authId': $('#sltAuth').val(), 'authName': $('#sltAuth option:selected').text()};
saveItemAuth(param, 'edit');
});
$('#modalAuthDetail').css('display', 'block');
$('#modalAuthDetailEmpty').css('display', 'none');
};
var removeItemAuth = function(e){
$('#table_auth tr[itemData="'+e.currentTarget.attributes.itemData.value+'"]').remove();
for(var i=0; i').clone();
var tdName = $(' | ').clone().text(authEditList[i].authName);
$('#table_auth_view').append(tr.append(tdName));
};
authList = [];
$.extend(authList, authEditList); //객체 복사
};
/*-------------------------- 권한 테이블 CRUD 끝-------------------------- */
};
var rowNum = 0;
function resetRowNum(){
rowNum = 0;
}
function getNum(){
return ++rowNum;
};