diff --git a/WebContent/jsp/onl/admin/rule/transformManDetail.jsp b/WebContent/jsp/onl/admin/rule/transformManDetail.jsp index 8b785a8..525b8d0 100644 --- a/WebContent/jsp/onl/admin/rule/transformManDetail.jsp +++ b/WebContent/jsp/onl/admin/rule/transformManDetail.jsp @@ -144,6 +144,11 @@ LIST_TRANSFORM_ITEM = listTransformItem(tgt, cnvsnName, tgtLoutIoId, tgtLoutType, src); LIST_LAYOUT_ITEM = listLayoutItem(src, srcLoutIoId, srcLoutType); + // 소스/타겟 그리드가 모두 로드된 후, 소스에 없는 아이템이 매핑된 타겟 항목을 표시 + $.when(LIST_TRANSFORM_ITEM, LIST_LAYOUT_ITEM).done(function () { + validateMapping(); + }); + console.debug('LIST_TRANSFORM_SOURCE_RESULT done'); }).fail(function (e) { alert(e.responseText); @@ -342,6 +347,50 @@ return LIST_TRANSFORM_ITEM; } + // 소스에 없는(삭제/변경된) 아이템이 타겟에 매핑되어 있으면 빨간색으로 표시하고 ISVALIDMAPPING을 false로 체크 + function validateMapping() { + var sourceData = sourceGrid.getRowData(); + var validPaths = {}; + for (var i = 0; i < sourceData.length; i++) { + validPaths[sourceData[i]['LOUTITEMPATH'].replace(/\[\*\]/g, "")] = true; + } + + var targetData = targetGrid.getRowData(); + for (var j = 0; j < targetData.length; j++) { + var rowData = targetData[j]; + var cnvsnSrcItems = $.trim(rowData['CNVSNSRCITEMS']); + if (cnvsnSrcItems == "") continue; + + var invalid = false; + var srcItems = cnvsnSrcItems.split(','); + for (var k = 0; k < srcItems.length; k++) { + var matchPath = srcItems[k].replace(/\[\*\]/g, ""); + if (!validPaths[matchPath]) { + invalid = true; + break; + } + } + + if (invalid) { + // 연결 정보가 없음 (jqGridOnConnection의 미연결 처리와 동일하게 매핑 데이터를 초기화) + targetGrid.jqGrid('setCell', rowData['id'], 'CNVSNCMDNAME', null); + targetGrid.jqGrid('setCell', rowData['id'], 'CNVSNRSULTITEMPATHNAME', null); + targetGrid.jqGrid('setCell', rowData['id'], 'CNVSNITEMSERNO', null); + targetGrid.jqGrid('setCell', rowData['id'], 'CNVSNITEMBASCVAL', null); + targetGrid.jqGrid('setCell', rowData['id'], 'CNVSNSRCITEMS', null); + targetGrid.jqGrid('setCell', rowData['id'], 'ISVALIDMAPPING', false); + targetGrid.jqGrid('setCell', rowData['id'], 'loutItemName', '', {color:'red'}); + if (isValidMapping) { + isValidMapping = false; + // alert은 1회 + alert('<%=localeMessage.getString("transformManDetail.alert8")%>'); + } + } else { + targetGrid.jqGrid('setCell', rowData['id'], 'ISVALIDMAPPING', true); + } + } + } + function addGroupTag(group, data) { Object.keys(group) @@ -874,12 +923,19 @@ } $('textarea[name=CNVSNCMDNAME]').val(cnvsnCmdName); + $('textarea[name=CNVSNRSULTITEMPATHNAME]').val(addArrayTag(targetRow['loutItemType'], addGroupTag(tgtGroup, targetRow['LOUTITEMPATH']))); $('input[name=CNVSNITEMSERNO]').val(targetRow['loutItemSerno']); setTgtCell(); }); + $("#resetCmd").click(function(){ + $('#functionComboDialog').val(''); + $('#srcItemComboDialog').val([]); + $('textarea[name=CNVSNCMDNAME]').val(''); + }); + $("#btn_delete").click(function(){ if(!confirm("삭제하시겠습니까?")){ return; @@ -1281,13 +1337,14 @@