| | |
| | | |
| | | // 함수 모음 |
| | | $scope.fn = { |
| | | findAllWidget : findAllWidget // 대시보드 위젯 전체 조회 |
| | | findAllWidget : findAllWidget, // 대시보드 위젯 전체 조회 |
| | | filterMembers : filterMembers // 멤버별 진행률 - 메인 프로젝트 + 하위 프로젝트 합쳐서 보여주기 |
| | | }; |
| | | |
| | | // 변수 모음 |
| | |
| | | issueTypeWidget : null, // 이슈 유형별 이슈 현황 |
| | | severityIssueWidget: null, // 중요도 별 이슈 현황 |
| | | }; |
| | | |
| | | function filterMembers(result) { |
| | | const members = result.data.memberProgressWidget.members; |
| | | var filterMembers = members.filter(function(item, idx){ |
| | | return members.findIndex(function(item2, idx2){ |
| | | return item.departmentName === item2.departmentName |
| | | }) == idx; |
| | | }); |
| | | |
| | | var departmentNames = []; |
| | | angular.forEach(filterMembers, function (member) { |
| | | departmentNames.push(member.departmentName); |
| | | }); |
| | | var completeCounts = []; |
| | | var delayCounts = []; |
| | | var remainCounts = []; |
| | | |
| | | for(var j=0; j<departmentNames.length; j++){ //배열 초기값 선언 |
| | | completeCounts[j] = 0; |
| | | delayCounts[j] = 0; |
| | | remainCounts[j] = 0; |
| | | } |
| | | |
| | | for(var i=0; i<members.length; i++){ |
| | | for(var j=0; j<departmentNames.length; j++){ |
| | | if(members[i].departmentName === departmentNames[j]){ |
| | | completeCounts[j] += members[i].completeCount; |
| | | delayCounts[j] += members[i].delayCount; |
| | | remainCounts[j] += members[i].remainCount; |
| | | } |
| | | } |
| | | } |
| | | for(var i=0; i<filterMembers.length; i++){ |
| | | filterMembers[i].completeCount = completeCounts[i] |
| | | filterMembers[i].delayCount = delayCounts[i] |
| | | filterMembers[i].remainCount = remainCounts[i] |
| | | } |
| | | result.data.memberProgressWidget.members = filterMembers; |
| | | } |
| | | |
| | | // 대시보드 위젯 전체 조회 |
| | | function findAllWidget() { |
| | |
| | | // 나의 이슈 현황 정보를 저장한다. |
| | | $scope.vm.myIssueWidget = result.data.myIssueWidget; |
| | | |
| | | const members = result.data.memberProgressWidget.members; |
| | | var filterMembers = members.filter(function(item, idx){ |
| | | return members.findIndex(function(item2, idx2){ |
| | | return item.departmentName === item2.departmentName |
| | | }) == idx; |
| | | }); |
| | | |
| | | var departmentNames = []; |
| | | angular.forEach(filterMembers, function (member) { |
| | | departmentNames.push(member.departmentName); |
| | | }); |
| | | var completeCounts = []; |
| | | var delayCounts = []; |
| | | var remainCounts = []; |
| | | |
| | | for(var j=0; j<departmentNames.length; j++){ //배열 초기값 선언 |
| | | completeCounts[j] = 0; |
| | | delayCounts[j] = 0; |
| | | remainCounts[j] = 0; |
| | | } |
| | | |
| | | for(var i=0; i<members.length; i++){ |
| | | for(var j=0; j<departmentNames.length; j++){ |
| | | if(members[i].departmentName === departmentNames[j]){ |
| | | completeCounts[j] += members[i].completeCount; |
| | | delayCounts[j] += members[i].delayCount; |
| | | remainCounts[j] += members[i].remainCount; |
| | | } |
| | | } |
| | | } |
| | | for(var i=0; i<filterMembers.length; i++){ |
| | | filterMembers[i].completeCount = completeCounts[i] |
| | | filterMembers[i].delayCount = delayCounts[i] |
| | | filterMembers[i].remainCount = remainCounts[i] |
| | | } |
| | | result.data.memberProgressWidget.members = filterMembers; |
| | | |
| | | // 멤버별 진행률을 저장한다. |
| | | $scope.fn.filterMembers(result);// 하위프로젝트가 있을 경우 합쳐서 보여주기 |
| | | $scope.vm.memberProgressWidget = result.data.memberProgressWidget; |
| | | // 전체 이슈 처리 현황 정보를 저장한다. |
| | | $scope.vm.issueCompleteWidget = result.data.issueCompleteWidget; |