diff --git a/WebContent/jsp/onl/admin/rule/transformManDetail.jsp b/WebContent/jsp/onl/admin/rule/transformManDetail.jsp index 7a24350..8b785a8 100644 --- a/WebContent/jsp/onl/admin/rule/transformManDetail.jsp +++ b/WebContent/jsp/onl/admin/rule/transformManDetail.jsp @@ -33,6 +33,8 @@ const LAYOUT_ITEM_TYPE_FIELD = "Field"; const LAYOUT_ITEM_TYPE_ARRAY = "Array"; + var srcItemComboOptionFormat = '"["+this.data[index]["LOUTITEMPATH"]+"] "+this.data[index]["loutItemDesc"]'; + var isDetail = false; var srcGroup; @@ -230,6 +232,13 @@ } } + // 변환명령에서 매핑 가능한(필드 유형) 소스 항목만 콤보로 표시 + var srcFieldRows = data.filter(function (rowData) { + return rowData['loutItemType'] == LAYOUT_ITEM_TYPE_FIELD; + }); + $("#srcItemComboDialog").empty(); + new makeOptions("id","LOUTITEMPATH").setObj($("#srcItemComboDialog")).setData(srcFieldRows).setFormat(srcItemComboOptionFormat).rendering(); + sourceGrid.find('.jqgrow').mouseover(function (e) { var rowId = $(this).attr('id'); const loutItemName = sourceGrid.getRowData(rowId)['loutItemName'] @@ -499,6 +508,17 @@ }, onSelectRow: function (rowId) { var rowData = sourceGrid.getRowData(rowId); + + // 매핑 불가능한 유형(필드가 아닌 행)을 선택하면 타겟 그리드 선택 해제 및 하단 상세 초기화 + if (rowData['loutItemType'] != LAYOUT_ITEM_TYPE_FIELD) { + targetGrid.jqGrid('resetSelection'); + $('textarea[name=CNVSNRSULTITEMPATHNAME]').val(''); + $('textarea[name=CNVSNCMDNAME]').val(''); + $('input[name=CNVSNITEMBASCVAL]').val(''); + $('input[name=CNVSNITEMSERNO]').val(''); + return; + } + // 소스 항목과 이미 매핑된 타겟 항목을 강조 표시 tgtGridSelect(rowData['LOUTITEMPATH'], rowId); } @@ -576,6 +596,17 @@ }, onSelectRow: function (rowId) { var rowData = targetGrid.getRowData(rowId); + + // 매핑 불가능한 유형(필드가 아닌 행)을 선택하면 소스 그리드 선택 해제 및 하단 상세 초기화 + if (rowData['loutItemType'] != LAYOUT_ITEM_TYPE_FIELD) { + sourceGrid.jqGrid('resetSelection'); + $('textarea[name=CNVSNRSULTITEMPATHNAME]').val(''); + $('textarea[name=CNVSNCMDNAME]').val(''); + $('input[name=CNVSNITEMBASCVAL]').val(''); + $('input[name=CNVSNITEMSERNO]').val(''); + return; + } + $('textarea[name=CNVSNRSULTITEMPATHNAME]').val(rowData['CNVSNRSULTITEMPATHNAME']); $('textarea[name=CNVSNCMDNAME]').val(rowData['CNVSNCMDNAME']); $('input[name=CNVSNITEMBASCVAL]').val(rowData['CNVSNITEMBASCVAL']); @@ -703,11 +734,15 @@ return ; } - targetGrid.jqGrid('setCell',tgtRowId,'CNVSNCMDNAME',addArrayTag(sourceRow['loutItemType'], addGroupTag(srcGroup,sourceRow['LOUTITEMPATH']))); + var cnvsnCmdName = addArrayTag(sourceRow['loutItemType'], addGroupTag(srcGroup,sourceRow['LOUTITEMPATH'])); + targetGrid.jqGrid('setCell',tgtRowId,'CNVSNCMDNAME',cnvsnCmdName); targetGrid.jqGrid('setCell',tgtRowId,'CNVSNRSULTITEMPATHNAME',addArrayTag(targetRow['loutItemType'], addGroupTag(tgtGroup,targetRow['LOUTITEMPATH']))); targetGrid.jqGrid('setCell',tgtRowId,'CNVSNITEMSERNO',targetRow['loutItemSerno']); + + // 하단 CNVSNCMDNAME 값 갱신 (함수 적용 상태로 남아있던 값이 그대로 표시되는 것 방지) + $('textarea[name=CNVSNCMDNAME]').val(cnvsnCmdName); }); - + $("#remove").click(function(){ var tgtRowId = targetGrid.getGridParam( "selrow" ); if (tgtRowId == null) {alert("타겟레이아웃을 선택하여 주십시요.");return;} @@ -820,22 +855,25 @@ return; } - var srcRowId = sourceGrid.getGridParam( "selrow" ); - if (isNull(srcRowId)){ + var srcItemIds = $('#srcItemComboDialog').val(); + if (isNull(srcItemIds) || srcItemIds.length == 0){ alert('<%=localeMessage.getString("transformManDetail.alert5")%>'); return; } var targetRow = targetGrid.getRowData( tgtRowId ); // 타겟 그리드에서 선택된 ROW 값 - var sourceRow = sourceGrid.getRowData( srcRowId ); // 소스 그리드에서 선택된 ROW 값 - var cnvsnCmdName = addArrayTag(sourceRow['loutItemType'], addGroupTag(srcGroup, sourceRow['LOUTITEMPATH'])); + var itemNames = srcItemIds.map(function (srcItemId) { + var sourceRow = sourceGrid.getRowData( srcItemId ); // 소스 항목 콤보에서 선택된 ROW 값 + return addArrayTag(sourceRow['loutItemType'], addGroupTag(srcGroup, sourceRow['LOUTITEMPATH'])); + }); + + var cnvsnCmdName = itemNames.join(", "); if ($('#functionComboDialog').val() != "") { cnvsnCmdName = $('#functionComboDialog').val() + "(" + cnvsnCmdName + ")"; } - var existingCmdName = $('textarea[name=CNVSNCMDNAME]').val(); - $('textarea[name=CNVSNCMDNAME]').val(existingCmdName ? existingCmdName + ' ' + cnvsnCmdName : cnvsnCmdName); + $('textarea[name=CNVSNCMDNAME]').val(cnvsnCmdName); $('textarea[name=CNVSNRSULTITEMPATHNAME]').val(addArrayTag(targetRow['loutItemType'], addGroupTag(tgtGroup, targetRow['LOUTITEMPATH']))); $('input[name=CNVSNITEMSERNO]').val(targetRow['loutItemSerno']); @@ -1243,8 +1281,11 @@ <%=localeMessage.getString("transformManDetail.transCmdName")%> +
+ +
- +