Index: arms/js/mapping.js =================================================================== diff -u -r251023a0dffa14a367b70103ba05c3406c277ba4 -rbea58ee8641a53032784afc293d4d320c325264b --- arms/js/mapping.js (.../mapping.js) (revision 251023a0dffa14a367b70103ba05c3406c277ba4) +++ arms/js/mapping.js (.../mapping.js) (revision bea58ee8641a53032784afc293d4d320c325264b) @@ -85,20 +85,6 @@ make_alm_server_select_box(); gojs.init(); - // 전역 변수 - 상태 카테고리 설정 - get_arms_state_category_list() - .then((category_list) => { - for (var k in category_list) { - var obj = category_list[k]; - req_state_category_list[obj.c_id] = obj; - } - console.log(req_state_category_list); - }) - .catch((error) => { - // 오류가 발생한 경우 처리합니다. - console.error('Error fetching data:', error); - }); - save_req_state_btn_click(); update_req_state_btn_click(); delete_req_state_btn_click(); @@ -201,101 +187,44 @@ // --- select2 ( 제품(서비스) 검색 및 선택 ) 이벤트 --- // $("#selected_alm_server").on("select2:select", function(e) { - $("#cloud_project_tree").hide(); - $("#select-project-div").hide(); - $("#select-issuetype-div").hide(); - $("#select-project").text("선택되지 않음"); - $("#select-issuetype").text("선택되지 않음"); - selected_alm_server_id = $("#selected_alm_server").val(); - selected_alm_server_name = $("#selected_alm_server").select2("data")[0].text; - $("#select-alm-server").text(selected_alm_server_name); - let alm_server_data = alm_server_list[selected_alm_server_id]; - let alm_server_type = alm_server_data.c_jira_server_type; - /*var $flowchart = $('#state_flow_chart'); - $flowchart.flowchart('setData', {});*/ + // 전역 변수 - 상태 카테고리 설정 + get_arms_state_category_list() + .then((category_list) => { + for (var k in category_list) { + var obj = category_list[k]; + req_state_category_list[obj.c_id] = obj; + } + console.log(req_state_category_list); - if (alm_server_type === "클라우드") { - $("#cloud_project_tree").show(); - $("#select-project-div").show(); - $("#select-issuetype-div").show(); - build_alm_server_jstree(selected_alm_server_id); - let data = {}; - gojs.load(data); - } - else { - mapping_data_load(selected_alm_server_id, alm_server_type); + $("#cloud_project_tree").hide(); + $("#select-project-div").hide(); + $("#select-issuetype-div").hide(); + $("#select-project").text("선택되지 않음"); + $("#select-issuetype").text("선택되지 않음"); + selected_alm_server_id = $("#selected_alm_server").val(); + selected_alm_server_name = $("#selected_alm_server").select2("data")[0].text; + $("#select-alm-server").text(selected_alm_server_name); - // FLOW CHART - ALM 서버 이슈상태 조회 - /*get_alm_status_list(selected_alm_server_id) - .then((result) => { - console.log(result); - let alm_status_list = result; + let alm_server_data = alm_server_list[selected_alm_server_id]; + let alm_server_type = alm_server_data.c_jira_server_type; - var data = { - operators: {}, - links: {} - }; - - console.log(alm_status_list); - console.log(arms_state_list); - let inputData = arms_state_list; - let outputData = alm_status_list; - - let width = $flowchart.width(); - - var topPosition = 20; - var leftPositionInput = 20; - var leftPositionOutput = width-200; - - console.log(width); - inputData.forEach(function(input, index) { - var operatorId = 'operator' + (index + 1); - data.operators[operatorId] = { - top: topPosition + index * 80, - left: leftPositionInput, - properties: { - title: "A-RMS - " +input.c_title, - class: 'input-operator', - inputs: {}, - outputs: { - output_1: { - label: input.c_title, - } - } - } - }; - }); - outputData.forEach(function(output, index) { - var operatorId = 'operator' + (inputData.length + index + 1); - data.operators[operatorId] = { - top: topPosition + index * 80, - left: leftPositionOutput, - properties: { - title: "ALM - " + output.c_issue_status_name, - class: 'output-operator', - inputs: { - input_1: { - label: output.c_issue_status_name, - } - }, - outputs: {} - } - }; - }); - - console.log(data); - updateFlowchartData(data); - // mapping_flow_chart(alm_status_list, arms_state_list); - ////////////////////////////////////////////////////////// - ////////////////////////////////////////////////////////// - jSuccess("ALM 서버 상태 조회가 완료 되었습니다."); - }) - .catch((error) => { - // 오류가 발생한 경우 처리합니다. - console.error('Error fetching data:', error); - });*/ - } + if (alm_server_type === "클라우드") { + $("#cloud_project_tree").show(); + $("#select-project-div").show(); + $("#select-issuetype-div").show(); + build_alm_server_jstree(selected_alm_server_id); + let data = {}; + gojs.load(data); + } + else { + mapping_data_load(selected_alm_server_id, alm_server_type); + } + }) + .catch((error) => { + // 오류가 발생한 경우 처리합니다. + console.error('Error fetching data:', error); + }); }); } // end make_alm_server_select_box() @@ -833,8 +762,6 @@ .catch((error) => { console.error('Error fetching data:', error); }); - - // req_state_setting("popup_view_change_state_div", false, state_id); } } @@ -995,7 +922,6 @@ statusCode: { 200: function (result) { resolve(result); - // jSuccess("상태가 수정되었습니다."); } }, error: function (e) { @@ -1047,7 +973,6 @@ statusCode: { 200: function (result) { resolve(result); - // jSuccess("ALM 상태가 수정되었습니다."); } }, error: function (e) { Index: arms/js/mapping/gojs_setup.js =================================================================== diff -u -r22c42ee411f9044130f18e272a0f91caf65beaaa -rbea58ee8641a53032784afc293d4d320c325264b --- arms/js/mapping/gojs_setup.js (.../gojs_setup.js) (revision 22c42ee411f9044130f18e272a0f91caf65beaaa) +++ arms/js/mapping/gojs_setup.js (.../gojs_setup.js) (revision bea58ee8641a53032784afc293d4d320c325264b) @@ -52,14 +52,13 @@ 'Spot', { selectionAdorned: false, textEditable: false, locationObjectName: 'BODY' }, new go.Binding('location', 'loc', go.Point.parse).makeTwoWay(go.Point.stringify), - { - doubleClick: (e, node) => { - // 더블 클릭 시 실행할 메소드 호출 - console.log(node.data.c_id); - popup_modal('update_popup', node.data.c_id); - } - }, - // the main body consists of a Rectangle surrounding the text + // { + // doubleClick: (e, node) => { + // // 더블 클릭 시 실행할 메소드 호출 + // console.log(node.data.c_id); + // popup_modal('update_popup', node.data.c_id); + // } + // }, $(go.Panel, 'Auto', { name: 'BODY' }, @@ -103,25 +102,25 @@ width: 1, height: 1 } ), - $(go.Shape, - { - figure: "XLine", - width: 8, - height: 8, - stroke: "rgba(255, 255, 255, 0.45)", - strokeWidth: 2, // 두께 - margin: new go.Margin(0, 0, 0, 0), - cursor: "pointer", - alignment: go.Spot.Right, - click: function(e, obj) { - // 상태 삭제 확인 팝업 호출 - const node = obj.part; - const state_name = node.data.text; - const state_c_id = node.data.c_id; - popup_modal('delete_popup', state_c_id, state_name); - } - } - ) + // $(go.Shape, + // { + // figure: "XLine", + // width: 8, + // height: 8, + // stroke: "rgba(255, 255, 255, 0.45)", + // strokeWidth: 2, // 두께 + // margin: new go.Margin(0, 0, 0, 0), + // cursor: "pointer", + // alignment: go.Spot.Right, + // click: function(e, obj) { + // // 상태 삭제 확인 팝업 호출 + // const node = obj.part; + // const state_name = node.data.text; + // const state_c_id = node.data.c_id; + // popup_modal('delete_popup', state_c_id, state_name); + // } + // } + // ) /* $(go.TextBlock, { stroke: 'white', @@ -154,21 +153,64 @@ ) ); - // 우측 마우스 버튼 제거 - /*myDiagram.nodeTemplate.contextMenu = $('ContextMenu', - $('ContextMenuButton', - $(go.TextBlock, 'Rename'), - { click: (e, obj) => e.diagram.commandHandler.editTextBlock() }, - new go.Binding('visible', '', (o) => o.diagram && o.diagram.commandHandler.canEditTextBlock()).ofObject() - ), - // add one for Editing... - $('ContextMenuButton', - $(go.TextBlock, 'Delete'), - { click: (e, obj) => e.diagram.commandHandler.deleteSelection() }, - new go.Binding('visible', '', (o) => o.diagram && o.diagram.commandHandler.canDeleteSelection()).ofObject() - ) - );*/ + myDiagram.nodeTemplate.contextMenu = + $("ContextMenu", + $(go.Panel, "Vertical", + { + padding: 1, + defaultStretch: go.GraphObject.Horizontal, + // 기본 테두리와 모서리 반경 + defaultAlignment: go.Spot.Left, + cursor: "pointer", + margin: 2 + }, + $("ContextMenuButton", + $(go.TextBlock, "수정", + { + font: "bold 14px sans-serif", // 폰트 스타일 + stroke: "black", // 글자 색상 + margin: new go.Margin(5, 10, 5, 10), // 텍스트 블록의 여백 + } + ), + { + click: renameNode, + } + ), + $("ContextMenuButton", + $(go.TextBlock, "삭제", + { + font: "bold 14px sans-serif", // 폰트 스타일 + stroke: "black", // 글자 색상 + margin: new go.Margin(5, 10, 5, 10), // 텍스트 블록의 여백 + } + ), + { + click: deleteNode, + } + ) + ) + ); + function renameNode(e, obj) { + const node = obj.part.adornedPart; + if (node) { + console.log(node.data.c_id); + let state_c_id = node.data.c_id; + popup_modal("update_popup", state_c_id); + } + } + + function deleteNode(e, obj) { + const node = obj.part.adornedPart; + if (node) { + let state_c_id = node.data.c_id; + let state_name = node.data.text; + console.log(state_name); + + popup_modal("delete_popup", state_c_id, state_name); + } + } + // ARMS 카테고리 노드 설정 myDiagram.nodeTemplateMap.add( 'Loading', @@ -206,41 +248,41 @@ new go.Binding('text').makeTwoWay() )*/ $(go.TextBlock, - // 카테고리 별 아이콘 설정 + // 카테고리 별 아이콘 설정(하드코딩) { font: "12px FontAwesome, sans-serif", // 아이콘에 FontAwesome 사용 margin: new go.Margin(0, 8, 0, 8), // 아이콘과 텍스트 사이의 간격 설정 }, new go.Binding("text", "", function(data) { let icon = ""; if (data.c_id === "3") { - icon = ""; // 특정 아이콘 + icon = ""; } else if (data.c_id === "4") { - icon = ""; // 다른 아이콘 + icon = ""; } else if (data.c_id === "5") { - icon = ""; // 다른 아이콘 + icon = ""; } else if (data.c_id === "6") { - icon = ""; // 다른 아이콘 + icon = ""; } return " " + icon; }), // 카테고리 별 색상 설정 new go.Binding("stroke", "", function(data) { - let color = "black"; // 기본 색상 + let color = "white"; if (data.c_id === "3") { - color = "#DB2A34"; // 특정 아이콘 + color = "#DB2A34"; } else if (data.c_id === "4") { - color = "#E49400"; // 다른 아이콘 + color = "#E49400"; } else if (data.c_id === "5") { - color = "#2D8515"; // 다른 아이콘 + color = "#2D8515"; } else if (data.c_id === "6") { - color = "#2477FF"; // 다른 아이콘 + color = "#2477FF"; } return color; })