Index: arms/html/analysisTime/content-container.html =================================================================== diff -u -rb10ccef8a94c691e3016ce98d8408605f8dcc38f -r0d8e55973b5540053b203758cd787238151f9961 --- arms/html/analysisTime/content-container.html (.../content-container.html) (revision b10ccef8a94c691e3016ce98d8408605f8dcc38f) +++ arms/html/analysisTime/content-container.html (.../content-container.html) (revision 0d8e55973b5540053b203758cd787238151f9961) @@ -492,10 +492,9 @@
-
+
-
@@ -945,34 +944,10 @@ } /* 레이더 차트 */ - svg:not(:root) { + #versionGaugeChart svg:not(:root) { overflow: visible } - .radar-chart { - width: auto; /* 원하는 너비로 설정 */ - height: auto; /* 원하는 높이로 설정 */ - margin: auto; - } - - .radar-chart .area { - fill-opacity: 0.7; - } - .radar-chart.focus .area { - fill-opacity: 0.3; - } - .radar-chart.focus .area.focused { - fill-opacity: 0.9; - } - .area.germany, .germany .circle { - fill: #FFD700; - stroke: none; - } - .area.argentina, .argentina .circle { - fill: #ADD8E6; - stroke: none; - } - #radar-chart-main { height: 300px; } @@ -987,7 +962,22 @@ } } - #NETWORK_GRAPH { overflow: hidden!important;} - #NETWORK_GRAPH .node-label { font-size: 14px; font-weight:bold; color:#111; stroke: white;stroke-width: 1.5px;paint-order: stroke fill; text-anchor: middle;} + #NETWORK_GRAPH { + overflow: hidden!important; + } + #NETWORK_GRAPH .node-label { + font-size: 14px; + font-weight:bold; + color:#111; + stroke: white; + stroke-width: 1.5px; + paint-order: stroke fill; + text-anchor: middle; + } + + #calendar_yearview_blocks_chart_1, #calendar_yearview_blocks_chart_2 { + overflow-x: scroll; + } + \ No newline at end of file Index: arms/js/analysisTime.js =================================================================== diff -u -rfd38e36158d66f21fe2b5eb598e97d0391033ed6 -r0d8e55973b5540053b203758cd787238151f9961 --- arms/js/analysisTime.js (.../analysisTime.js) (revision fd38e36158d66f21fe2b5eb598e97d0391033ed6) +++ arms/js/analysisTime.js (.../analysisTime.js) (revision 0d8e55973b5540053b203758cd787238151f9961) @@ -4,7 +4,7 @@ var dashboardColor; var selectedVersionId; var tot_ver_count, active_ver_count, req_count, subtask_count, resource_count; -var jiraIssue = {}; +var globalJiraIssue = {}; // 필요시 작성 //////////////////////////////////////////////////////////////////////////////////////// @@ -118,8 +118,6 @@ //버전 멀티 셀렉트 박스 이니시에이터 makeVersionMultiSelectBox(); - radarChart(); - sevenTimeline(); dashboardColor = dashboardPalette.dashboardPalette01; @@ -284,10 +282,10 @@ combinationChart($("#selected_pdService").val(), selectedVersionId); getRelationJiraIssueByPdServiceAndVersions($("#selected_pdService").val(), selectedVersionId); - console.log(jiraIssue); + heatMapReady(); - networkChart(); + if (checked) { endPointUrl = "/T_ARMS_REQSTATUS_" + $("#selected_pdService").val() + "/getStatusMonitor.do?disable=true&versionTag=" + versionTag; @@ -309,16 +307,13 @@ contentType: "application/json;charset=UTF-8", dataType: "json", progress: true, - async: false, + async: true, statusCode: { 200: function (data) { - - jiraIssue = data; - data.forEach(issues => { console.log(issues); var display_date = formatDate(new Date(issues.updated)); - console.log(display_date); + // console.log(display_date); /* var random_elements = randomInt(1,3); for (var j=0; j < random_elements; j++) { @@ -327,7 +322,11 @@ return_object[display_date].items.push(random_item); } }*/ + }); + + networkChart(data); + globalJiraIssue = data; } } }); @@ -400,6 +399,7 @@ $("#version-timeline-bar").show(); Timeline.init($("#version-timeline-bar"), versionTimeline); + radarChart(pdservice_id, versionData); } } @@ -1123,18 +1123,70 @@ //////////////////// // 세번째 박스 //////////////////// -function radarChart() { +function radarChart(pdServiceId, pdServiceVersionList) { + + var maxCount; + var versionList = {}; + + var versionText = []; + var reqCount = []; + + var _url = "/auth-user/api/arms/dashboard/normal/"+pdServiceId; + $.ajax({ + url: _url, + type: "GET", + data: { "서비스아이디" : pdServiceId, + "메인그룹필드" : "pdServiceVersion", + "isReq" : true, + "컨텐츠보기여부" : false, + "크기" : 1000 + }, + contentType: "application/json;charset=UTF-8", + dataType: "json", + progress: true, + async: false, + statusCode: { + 200: function (data) { + maxCount = data.전체합계; + var result = data.검색결과.group_by_pdServiceVersion; + + versionList = pdServiceVersionList.reduce((obj, item) => { + obj[item.c_id] = item; + return obj; + }, {}); + + result.forEach(item => { + if (versionList[item.필드명]) { + versionList[item.필드명].개수 = item.개수; + } + }); + + console.log(Object.values(versionList)); + + Object.values(versionList).forEach(item => { + var version = {}; + version.text = item.c_title; + version.max = maxCount; + + versionText.push(version); + reqCount.push(item.개수); + }); + } + } + }); + var chart = echarts.init(document.getElementById('radar-chart-main')); chart.setOption({ + color: ['#E49400'], dataZoom: [ { // The first dataZoom component radiusAxisIndex: [0, 2] // Indicates that this dataZoom component // controls the first and the third radiusAxis } ], aria: { - show: true + show: false }, tooltip: {}, legend: { @@ -1148,27 +1200,26 @@ } }, radar: { - radius: [0, '60%'], + radius: [0, '50%'], triggerEvent: true, // shape: 'circle', - indicator: [ - { text: 'BaseVersion', max: 100}, - { text: '1.0.0BaseVersion', max: 100}, - { text: '1.0.1BaseVersion', max: 100}, - { text: '1.0.2BaseVersion', max: 100}, - { text: '1.0.3BaseVersion', max: 100}, - { text: '1.0.4BaseVersion', max: 100}, - { text: '2.0.0BaseVersion', max: 100}, - { text: '2.0.1BaseVersion', max: 100}, - { text: '2.0.2BaseVersion', max: 100}, - { text: '2.0.3BaseVersion', max: 100}, - { text: '2.0.4BaseVersion', max: 100} - ], + indicator: versionText, name: { rotate: 45, // 텍스트를 45도로 회전시킵니다. position: 'outside', // 텍스트를 레이더 영역 내부에 위치시킵니다. color: '#ffffff', - formatter:'【{value}】' + formatter: function(text) { + // 줄바꿈을 위해 '\n' 문자를 삽입합니다. + var wrappedValue = text.replace(/(.{12})/g, '$1\n'); // 10자마다 줄바꿈 + return '[' + wrappedValue + ']'; + }, + rich: { + value: { + align: 'left', + color: '#ffffff', + lineHeight: 10 // 줄 간격을 설정합니다. + } + } } }, series: [{ @@ -1189,7 +1240,7 @@ // areaStyle: {normal: {}}, data : [ { - value: ['-', 80, 20, 40, 10, 100, 80, 20, 40, 10, 30], + value: reqCount, name: '요구사항' } ], @@ -1201,18 +1252,8 @@ } ] }); - var theIndex = 2; - chart.on('click', function (params) { - console.log(params); - if (theIndex < 0) { - theIndex = 2; - } - chart.dispatchAction({ - type: 'showTip', - seriesIndex: 0, - dataIndex: theIndex - }); - theIndex--; + window.addEventListener('resize', function () { + chart.resize(); }); } @@ -1448,22 +1489,22 @@ // 다섯번째 박스 //////////////////// -function networkChart() { +function networkChart(jiraIssueData) { d3.select("#NETWORK_GRAPH").selectAll("*").remove(); var NETWORK_DATA = { "nodes": [], "links": [] }; - NETWORK_DATA.nodes = jiraIssue; + NETWORK_DATA.nodes = jiraIssueData; var index = {}; - jiraIssue.forEach(function(item) { + jiraIssueData.forEach(function(item) { index[item.key] = item; }); - jiraIssue.forEach(function(item) { + jiraIssueData.forEach(function(item) { var parentItem = index[item.parentReqKey]; if (parentItem) { var link = {