From 302112b8c095984fe054bb357cbbd2ef3d88e844 Mon Sep 17 00:00:00 2001
From: 박지현 <jhpark@maprex.co.kr>
Date: 화, 22 2월 2022 13:49:48 +0900
Subject: [PATCH] Merge branch 'master' of http://maprex.iptime.org:9001/r/owl-kisa

---
 src/main/webapp/scripts/app/issue/issueDetail.controller.js |  585 +++++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 436 insertions(+), 149 deletions(-)

diff --git a/src/main/webapp/scripts/app/issue/issueDetail.controller.js b/src/main/webapp/scripts/app/issue/issueDetail.controller.js
index 57f8369..6cbd9ca 100644
--- a/src/main/webapp/scripts/app/issue/issueDetail.controller.js
+++ b/src/main/webapp/scripts/app/issue/issueDetail.controller.js
@@ -8,9 +8,9 @@
         'angular'
     ],
     function (app, angular) {
-        app.controller('issueDetailController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$tableProvider', '$state', '$uibModal', '$q',
+        app.controller('issueDetailController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$tableProvider', '$relProvider', '$downProvider', '$state', '$uibModal', '$q',
             '$controller', '$injector', 'SweetAlert', '$timeout', 'Issue', 'IssueComment', 'IssueRelation', 'AttachedFile',  'Priority', 'Severity','IssueStatus', 'IssueTableConfig', '$filter',
-            function ($scope, $rootScope, $log, $resourceProvider, $tableProvider, $state, $uibModal, $q, $controller, $injector, SweetAlert, $timeout, Issue, IssueComment, IssueRelation, AttachedFile, Priority, Severity, IssueStatus, IssueTableConfig, $filter) {
+            function ($scope, $rootScope, $log, $resourceProvider, $tableProvider, $relProvider, $downProvider, $state, $uibModal, $q, $controller, $injector, SweetAlert, $timeout, Issue, IssueComment, IssueRelation, AttachedFile, Priority, Severity, IssueStatus, IssueTableConfig, $filter) {
 
                 //  IssueListController vm, fn 蹂��닔 �긽�냽.
 
@@ -51,8 +51,12 @@
                 $scope.fn.containsPartner = containsPartner;
                 $scope.fn.onActivate = onActivate;
                 $scope.fn.issueBack = issueBack;
+                $scope.fn.goParentIssue = goParentIssue;
                 $scope.fn.removeRelationIssue = removeRelationIssue;
                 $scope.fn.removeDownIssue = removeDownIssue;
+                $scope.fn.changeDetailPageRowCount = changeDetailPageRowCount;    //  �럹�씠吏� 蹂�寃�
+                $scope.fn.sendCommonMail = sendCommonMail;
+                $scope.fn.getSubPageContent = getSubPageContent;
 
                 //  �씠�뒋 紐⑸줉 而⑦듃濡ㅻ윭 vm, fn �긽�냽 以�
                 $scope.vm.viewer = {};      // �쁽�옱 �씠�뒋
@@ -89,6 +93,16 @@
                     issueHostingVos : []
                 };
 
+                $scope.vm.responseData = {
+                    data : []
+                };
+
+                $scope.vm.subPage = {
+                    selectedRelPage : 0,
+                    selectedRelPageRowCount : String(10),
+                    selectedDownPage : 0,
+                    selectedDownPageRowCount : String(10)
+                };
 
                 $scope.vm.issueNameDown = "";       // �꽑�깮�맂 �븯�쐞 �씪媛� �씠由�
                 $scope.vm.autoCompletePageDown = {
@@ -100,6 +114,7 @@
 
                 $scope.vm.issueName = "";       // �꽑�깮�맂 �뿰愿� �씪媛� �씠由�
                 $scope.vm.issueId = "";       //
+                $scope.vm.parentIssueId = "";
                 $scope.vm.issueTypeId = "";
                 $scope.vm.autoCompletePage = {
                     issue : {
@@ -107,6 +122,9 @@
                         totalPage : 0
                     },
                 };
+
+                $scope.vm.inheritPartners = "";
+                $scope.vm.downTotalCount = "";
 
                 $scope.vm.relResponseData = [];
                 $scope.vm.relTableConfigs = [];
@@ -132,7 +150,7 @@
                     $scope.fn.onActivate();
                 }
 
-                // �긽�쐞 �씠�뒋 �겢由��떆 �긽�쐞 �씠�뒋濡� �씠�룞
+                // �뮘濡쒓�湲� 踰꾪듉
                 function issueBack() {
                     var index = $scope.$parent.vm.issueIds.length -2;
                     if (index > -1) {
@@ -142,16 +160,29 @@
                     }
                 }
 
+                // �긽�쐞 �씠�뒋 �겢由��떆 �긽�쐞 �씠�뒋濡� �씠�룞
+                function goParentIssue() {
+                    var parentIssueId = $scope.vm.parentIssueId;
+                    $scope.$parent.tableEvent.changeDetailView(parentIssueId, true);
+                    //�븯�쐞�씠�뒋-> �긽�쐞�씠�뒋 -> �뿰愿��씠�뒋�뿉�꽌 �뮘濡쒓�湲� 踰꾪듉 �겢由� �떆 �븯�쐞�씠�뒋濡� �씠�룞�릺�뒗 臾몄젣濡� 留덉�留� 諛곗뿴媛� �젣嫄�
+                    $scope.$parent.vm.issueIds.pop();
+                }
+
+                //  �럹�씠吏� 蹂�寃�
+                function changeDetailPageRowCount() {
+                    $scope.fn.getIssueDetail(0,0);
+                }
+
                 function onActivate() {
                     window.scroll(0,240);
                 }
 
                 angular.extend(this, $controller('autoCompleteController', {$scope : $scope, $injector : $injector}));
 
-                 // �씠�뒋 紐⑸줉 �뜲�씠�꽣 媛깆떊
-                $scope.$on("getIssueList", function () {
-                    $scope.fn.getIssueDetail();
-                });
+                // �씠�뒋 紐⑸줉 �뜲�씠�꽣 媛깆떊
+                /*$scope.$on("getIssueList", function () {
+                    $scope.fn.getIssueDetail(0,0);
+                });*/
 
                 // �븯�쐞 �씠�뒋 �궘�젣
                 function removeDownIssue() {
@@ -213,7 +244,7 @@
                                     $resourceProvider.getPageContent(0, 10))).then(function (result) {
 
                                     if (result.data.message.status === "success") {
-                                        $scope.fn.getIssueDetail();
+                                        $scope.fn.getIssueDetail(0,0);
                                     }
                                     else {
                                         SweetAlert.error($filter("translate")("issue.failedToIssueDeleteIssueDown"), result.data.message.message); // "�뿰愿��씪媛� �궘�젣 �떎�뙣"
@@ -262,7 +293,7 @@
                     //  �궘�젣 �븣由�
                     SweetAlert.swal({
                             title : $filter("translate")("issue.relationIssueRemove"), // �뿰愿� �씠�뒋 �궘�젣
-                            text : $filter("translate")("issue.wantToDeleteSelectIssue"),
+                            text : $filter("translate")("issue.wantToDeleteSelectRelIssueInList"),
                             type : "warning",
                             showCancelButton : true,
                             confirmButtonColor : "#DD6B55",
@@ -286,7 +317,7 @@
                                     $resourceProvider.getPageContent(0, 10))).then(function (result) {
 
                                     if (result.data.message.status === "success") {
-                                        $scope.fn.getIssueDetail();
+                                        $scope.fn.getIssueDetail(0,0);
                                     }
                                     else {
                                         SweetAlert.error($filter("translate")("issue.failedToIssueDeleteIssueRelation"), result.data.message.message); // "�뿰愿��씪媛� �궘�젣 �떎�뙣"
@@ -309,90 +340,125 @@
                 }
 
                 //  �뀒�씠釉붿쓽 �뿰愿� �씠�뒋 而щ읆�쓣 留뚮뱾�뼱以��떎.
-                function setRelTableColumn(Rel_issueTableConfig) {
+                function setRelTableColumn(issueTableConfig) {
 
                     //  �뿰愿� �씠�뒋 而щ읆
-                    switch(Rel_issueTableConfig.key) {
+                    switch(issueTableConfig.key) {
                         case "RELATION_ISSUE_TYPE" :    // �뿰愿� �씠�뒋 援щ텇
-                            $scope.vm.relTableConfigs.push($tableProvider.config()
+                            $scope.vm.relTableConfigs.push($relProvider.config()
                                 .setHName("issue.relationIssueType")
+                                .setDName("relationIssueType")
                                 .setDType("renderer")
                                 .setDAlign("text-center")
-                                .setHWidth("bold " + Rel_issueTableConfig.width)
+                                .setHWidth("bold " + issueTableConfig.width)
                                 .setDRenderer("ISSUE_RELATION_TYPE"))
                                 /*.setHWidth("width-30 bold")*/
                                 /*.setHSort(false)*/
                             break;
                         case "RELATION_ISSUE_TITLE" :   // �뿰愿� �씠�뒋 �젣紐�
-                            $scope.vm.relTableConfigs.push($tableProvider.config()
+                            $scope.vm.relTableConfigs.push($relProvider.config()
                                 .setHName("issue.relationIssueTitle")
+                                .setDName("title")
                                 .setDType("renderer")
                                 .setDAlign("text-center")
-                                .setHWidth("bold " + Rel_issueTableConfig.width)
+                                .setHWidth("bold " + issueTableConfig.width)
                                 .setDRenderer("ISSUE_RELATION_MOVE"))
                                 /*.setHWidth("width-60 bold")*/
                                 /*.setHSort(true)*/
                             break;
                         case "RELATION_PRIORITY" :   // �뿰愿� �씠�뒋 �슦�꽑�닚�쐞
-                            $scope.vm.relTableConfigs.push($tableProvider.config()
+                            $scope.vm.relTableConfigs.push($relProvider.config()
                                 .setHName("common.priority")
+                                .setDName("priorityVo.id")
                                 .setDType("renderer")
-                                .setHWidth("bold " + Rel_issueTableConfig.width)
+                                .setHWidth("bold " + issueTableConfig.width)
                                 .setDAlign("text-center")
                                 .setDRenderer("REL_COMMON_PRIORITY"));
                             break;
                         case "RELATION_SEVERITY" :   //  �뿰愿� �씠�뒋 以묒슂�룄
-                            $scope.vm.relTableConfigs.push($tableProvider.config()
+                            $scope.vm.relTableConfigs.push($relProvider.config()
                                 .setHName("common.importance")
+                                .setDName("severityVo.id")
                                 .setDType("renderer")
-                                .setHWidth("bold " + Rel_issueTableConfig.width)
+                                .setHWidth("bold " + issueTableConfig.width)
                                 .setDAlign("text-center")
                                 .setDRenderer("REL_COMMON_SEVERITY"));
                             break;
                         case "RELATION_ASSIGNEE_TEAM" :   // �뿰愿� �씠�뒋 �떞�떦遺��꽌
-                            $scope.vm.relTableConfigs.push($tableProvider.config()
+                            $scope.vm.relTableConfigs.push($relProvider.config()
                                 .setHName("common.assigneeTeam")
+                                .setDName("departmentVos.departmentName")
                                 .setDType("renderer")
-                                .setHWidth("bold " + Rel_issueTableConfig.width)
+                                .setHWidth("bold " + issueTableConfig.width)
                                 .setDAlign("text-center")
                                 .setDRenderer("REL_ISSUE_DEPARTMENT"));
                             break;
 
-                        case "RELATION_REGISTER" :   // �뿰愿� �씠�뒋  �벑濡앹옄
-                            $scope.vm.relTableConfigs.push($tableProvider.config()
+                        case "RELATION_REGISTER" :   // �뿰愿� �씠�뒋 �벑濡앹옄
+                            $scope.vm.relTableConfigs.push($relProvider.config()
                                 .setHName("common.register")
+                                .setDName("registerVo.id")
                                 .setDType("renderer")
-                                .setHWidth("bold " + Rel_issueTableConfig.width)
+                                .setHWidth("bold " + issueTableConfig.width)
                                 .setDAlign("text-center")
                                 .setDRenderer("REL_REGISTER"));
                             break;
                         case "RELATION_PERIOD" : // �뿰愿� �씠�뒋 湲곌컙
-                            $scope.vm.relTableConfigs.push($tableProvider.config()
+                            $scope.vm.relTableConfigs.push($relProvider.config()
                                 .setHName("common.period")
                                 .setDType("renderer")
-                                .setHWidth("bold " + Rel_issueTableConfig.width)
+                                .setHWidth("bold " + issueTableConfig.width)
                                 .setDAlign("text-center")
                                 .setDRenderer("REL_ISSUE_DUE_DATE"));
                             break;
-                        case "RELATION_MODIFY_DATE" : // �뿰愿� �씠�뒋  理쒓렐 蹂�寃쎌씪
-                            $scope.vm.relTableConfigs.push($tableProvider.config()
+                        case "RELATION_MODIFY_DATE" : // �뿰愿� �씠�뒋 理쒓렐 蹂�寃쎌씪
+                            $scope.vm.relTableConfigs.push($relProvider.config()
                                 .setHName("common.lastChangeDate")
-                                .setHWidth("bold " + Rel_issueTableConfig.width)
-                                .setDAlign("text-center"));
+                                .setHWidth("bold " + issueTableConfig.width)
+                                .setDAlign("text-center")
+                                .setDName("modifyDate"));
+                            break;
+                        case "REL_COMPANY" :   //  �뾽泥�
+                            $scope.vm.relTableConfigs.push($tableProvider.config()
+                                .setHName("common.company")
+                                .setDName("companyName")
+                                .setDType("renderer")
+                                .setHWidth("bold " + issueTableConfig.width)
+                                .setDAlign("text-center")
+                                .setDRenderer("REL_USE_COMPANY"));
+                            break;
+                        case "REL_ISP" :   //  ISP
+                            $scope.vm.relTableConfigs.push($tableProvider.config()
+                                .setHName("common.isp")
+                                .setDName("ispName")
+                                .setDType("renderer")
+                                .setHWidth("bold " + issueTableConfig.width)
+                                .setDAlign("text-center")
+                                .setDRenderer("REL_USE_ISP"));
+                            break;
+                        case "REL_HOSTING" :   //  HOSTING
+                            $scope.vm.relTableConfigs.push($tableProvider.config()
+                                .setHName("common.hosting")
+                                .setDName("hostingName")
+                                .setDType("renderer")
+                                .setHWidth("bold " + issueTableConfig.width)
+                                .setDAlign("text-center")
+                                .setDRenderer("REL_USE_HOSTING"));
                             break;
                     }
 
                     //  �궗�슜�옄 �젙�쓽 �븘�뱶 而щ읆
-                    if (Rel_issueTableConfig.key.indexOf("CUSTOM_FIELD_") !== -1) {
+                    if (issueTableConfig.key.indexOf("CUSTOM_FIELD_") !== -1) {
                         //  留뚯빟 �씠�뒋 �뀒�씠釉� 而щ읆紐낆씠 �몴�떆�릺吏� �븡�쑝硫� �씠履쎌씠 臾몄젣
                         for (var count in $scope.vm.customFields) {
                             var customField = $scope.vm.customFields[count];
 
-                            if (customField.id === Number(Rel_issueTableConfig.key.substring(13))) {
-                                $scope.vm.relTableConfigs.push($tableProvider.config()
+                            if (customField.id === Number(issueTableConfig.key.substring(13))) {
+                                $scope.vm.relTableConfigs.push($relProvider.config()
                                     .setHName(customField.name)
+                                    .setDName("relCustomFieldName" + [count])
                                     .setDType("renderer")
-                                    .setHWidth("bold " + Rel_issueTableConfig.width)
+                                    .setHWidth("bold " + issueTableConfig.width)
                                     .setDAlign("text-center")
                                     .setColumnHint(customField)
                                     .setDRenderer("REL_ISSUE_CUSTOM_FIELD_VALUE_VIEW"));
@@ -404,88 +470,123 @@
 
 
                 //  �뀒�씠釉붿쓽 �븯�쐞 �씠�뒋 而щ읆�쓣 留뚮뱾�뼱以��떎.
-                function setDownTableColumn(Down_issueTableConfig) {
+                function setDownTableColumn(issueTableConfig) {
                     // if (issueTableConfig == null) return;
 
                     //  �븯�쐞 �씠�뒋 而щ읆
-                    switch(Down_issueTableConfig.key) {
+                    switch(issueTableConfig.key) {
                         case "DOWN_ISSUE_TITLE" :   //  �븯�쐞 �씠�뒋 �젣紐�
-                            $scope.vm.downTableConfigs.push($tableProvider.config()
+                            $scope.vm.downTableConfigs.push($downProvider.config()
                                 .setHName("issue.downIssueTitle")
+                                .setDName("title")
                                 .setDType("renderer")
-                                .setHWidth("bold " + Down_issueTableConfig.width)
+                                .setHWidth("bold " + issueTableConfig.width)
                                 .setDAlign("text-center")
                                 .setDRenderer("ISSUE_DOWN_MOVE"));
                             break;
 
-                        case "ISSUE_DOWN_STATUS_TYPE" : //  �씠�뒋 �긽�깭
-                            $scope.vm.downTableConfigs.push($tableProvider.config()
+                        case "ISSUE_DOWN_STATUS_TYPE" : // �븯�쐞 �씠�뒋 �긽�깭
+                            $scope.vm.downTableConfigs.push($downProvider.config()
                                 .setHName("issue.issueStatus")
+                                .setDName("issueStatusVo.id")
                                 .setDType("renderer")
-                                .setHWidth("bold " + Down_issueTableConfig.width)
+                                .setHWidth("bold " + issueTableConfig.width)
                                 .setDAlign("text-center")
                                 .setDRenderer("ISSUE_DOWN_STATUS_TYPE"));
                             break;
 
                         case "DOWN_PRIORITY" :   // �븯�쐞 �씠�뒋 �슦�꽑�닚�쐞
-                            $scope.vm.downTableConfigs.push($tableProvider.config()
+                            $scope.vm.downTableConfigs.push($downProvider.config()
                                 .setHName("common.priority")
+                                .setDName("priorityVo.id")
                                 .setDType("renderer")
-                                .setHWidth("bold " + Down_issueTableConfig.width)
+                                .setHWidth("bold " + issueTableConfig.width)
                                 .setDAlign("text-center")
                                 .setDRenderer("DOWN_COMMON_PRIORITY"));
                             break;
-                        case "DOWN_SEVERITY" :   //  以묒슂�룄
-                            $scope.vm.downTableConfigs.push($tableProvider.config()
+                        case "DOWN_SEVERITY" :   // �븯�쐞 �씠�뒋 以묒슂�룄
+                            $scope.vm.downTableConfigs.push($downProvider.config()
                                 .setHName("common.importance")
+                                .setDName("severityVo.id")
                                 .setDType("renderer")
-                                .setHWidth("bold " + Down_issueTableConfig.width)
+                                .setHWidth("bold " + issueTableConfig.width)
                                 .setDAlign("text-center")
                                 .setDRenderer("DOWN_COMMON_SEVERITY"));
                             break;
-                        case "DOWN_ASSIGNEE_TEAM" :   //  �떞�떦遺��꽌
-                            $scope.vm.downTableConfigs.push($tableProvider.config()
+                        case "DOWN_ASSIGNEE_TEAM" :   // �븯�쐞 �씠�뒋 �떞�떦遺��꽌
+                            $scope.vm.downTableConfigs.push($downProvider.config()
                                 .setHName("common.assigneeTeam")
+                                .setDName("departmentVos.departmentName")
                                 .setDType("renderer")
-                                .setHWidth("bold " + Down_issueTableConfig.width)
+                                .setHWidth("bold " + issueTableConfig.width)
                                 .setDAlign("text-center")
                                 .setDRenderer("DOWN_ISSUE_DEPARTMENT"));
                             break;
-                        case "DOWN_REGISTER" :   //  �벑濡앹옄
-                            $scope.vm.downTableConfigs.push($tableProvider.config()
+                        case "DOWN_REGISTER" :   // �븯�쐞 �씠�뒋 �벑濡앹옄
+                            $scope.vm.downTableConfigs.push($downProvider.config()
                                 .setHName("common.register")
+                                .setDName("registerVo.id")
                                 .setDType("renderer")
-                                .setHWidth("bold " + Down_issueTableConfig.width)
+                                .setHWidth("bold " + issueTableConfig.width)
                                 .setDAlign("text-center")
                                 .setDRenderer("DOWN_REGISTER"));
                             break;
-                        case "DOWN_PERIOD" : //  湲곌컙
-                            $scope.vm.downTableConfigs.push($tableProvider.config()
+                        case "DOWN_PERIOD" : // �븯�쐞 �씠�뒋 湲곌컙
+                            $scope.vm.downTableConfigs.push($downProvider.config()
                                 .setHName("common.period")
                                 .setDType("renderer")
-                                .setHWidth("bold " + Down_issueTableConfig.width)
+                                .setHWidth("bold " + issueTableConfig.width)
                                 .setDAlign("text-center")
                                 .setDRenderer("DOWN_ISSUE_DUE_DATE"));
                             break;
-                        case "DOWN_MODIFY_DATE" : //  理쒓렐 蹂�寃쎌씪
-                            $scope.vm.downTableConfigs.push($tableProvider.config()
+                        case "DOWN_MODIFY_DATE" : // �븯�쐞 �씠�뒋 理쒓렐 蹂�寃쎌씪
+                            $scope.vm.downTableConfigs.push($downProvider.config()
                                 .setHName("common.lastChangeDate")
-                                .setHWidth("bold " + Down_issueTableConfig.width)
-                                .setDAlign("text-center"));
+                                .setHWidth("bold " + issueTableConfig.width)
+                                .setDAlign("text-center")
+                                .setDName("modifyDate"));
+                            break;
+                        case "DOWN_COMPANY" :   //  �뾽泥�
+                            $scope.vm.downTableConfigs.push($tableProvider.config()
+                                .setHName("common.company")
+                                .setDName("companyName")
+                                .setDType("renderer")
+                                .setHWidth("bold " + issueTableConfig.width)
+                                .setDAlign("text-center")
+                                .setDRenderer("DOWN_USE_COMPANY"));
+                            break;
+                        case "DOWN_ISP" :   //  ISP
+                            $scope.vm.downTableConfigs.push($tableProvider.config()
+                                .setHName("common.isp")
+                                .setDName("ispName")
+                                .setDType("renderer")
+                                .setHWidth("bold " + issueTableConfig.width)
+                                .setDAlign("text-center")
+                                .setDRenderer("DOWN_USE_ISP"));
+                            break;
+                        case "DOWN_HOSTING" :   //  HOSTING
+                            $scope.vm.downTableConfigs.push($tableProvider.config()
+                                .setHName("common.hosting")
+                                .setDName("hostingName")
+                                .setDType("renderer")
+                                .setHWidth("bold " + issueTableConfig.width)
+                                .setDAlign("text-center")
+                                .setDRenderer("DOWN_USE_HOSTING"));
                             break;
                     }
 
                     //  �궗�슜�옄 �젙�쓽 �븘�뱶 而щ읆
-                    if (Down_issueTableConfig.key.indexOf("CUSTOM_FIELD_") !== -1) {
+                    if (issueTableConfig.key.indexOf("CUSTOM_FIELD_") !== -1) {
                         //  留뚯빟 �씠�뒋 �뀒�씠釉� 而щ읆紐낆씠 �몴�떆�릺吏� �븡�쑝硫� �씠履쎌씠 臾몄젣
                         for (var count in $scope.vm.customFields) {
                             var customField = $scope.vm.customFields[count];
 
-                            if (customField.id === Number(Down_issueTableConfig.key.substring(13))) {
-                                $scope.vm.downTableConfigs.push($tableProvider.config()
+                            if (customField.id === Number(issueTableConfig.key.substring(13))) {
+                                $scope.vm.downTableConfigs.push($downProvider.config()
                                     .setHName(customField.name)
+                                    .setDName("downCustomFieldName" + [count])
                                     .setDType("renderer")
-                                    .setHWidth("bold " + Down_issueTableConfig.width)
+                                    .setHWidth("bold " + issueTableConfig.width)
                                     .setDAlign("text-center")
                                     .setColumnHint(customField)
                                     .setDRenderer("DOWN_ISSUE_CUSTOM_FIELD_VALUE_VIEW"));
@@ -499,18 +600,18 @@
                 //  �뿰愿� �씠�뒋 �뀒�씠釉� �꽕�젙
                 function makeRelTableConfigs() {
                     $scope.vm.relTableConfigs = [];
-                    $scope.vm.relTableConfigs.push($tableProvider.config()
+                    $scope.vm.relTableConfigs.push($relProvider.config()
                         .setDType("checkbox")
                         .setHWidth("width-20-p")
                         .setDAlign("text-center"))
-                    $scope.vm.relTableConfigs.push($tableProvider.config()
+                    $scope.vm.relTableConfigs.push($relProvider.config()
                         .setHName("issue.relationIssueType")
                         .setDType("renderer")
                         .setDAlign("text-center")
                         .setHWidth("width-60-p bold")
                         .setHSort(false)
                         .setDRenderer("ISSUE_RELATION_TYPE"))
-                    $scope.vm.relTableConfigs.push($tableProvider.config()
+                    $scope.vm.relTableConfigs.push($relProvider.config()
                         .setHName("issue.relationIssueTitle")
                         .setDType("renderer")
                         .setDAlign("text-center")
@@ -518,7 +619,7 @@
                         .setHSort(false)
                         .setDRenderer("ISSUE_RELATION_MOVE"))
                     /*if($scope.vm.viewer.modifyPermissionCheck) {
-                        $scope.vm.relTableConfigs.push($tableProvider.config()
+                        $scope.vm.relTableConfigs.push($relProvider.config()
                             .setHName("issue.relationIssueDelete")
                             .setDType("renderer")
                             .setDAlign("text-center")
@@ -527,11 +628,11 @@
                             .setHSort(false)
                             .setDAlign("text-center"))
                     }*/
-                    angular.forEach($scope.vm.relTableConfigs, function (Rel_issueTableConfig) {
+                    angular.forEach($scope.vm.relTableConfigs, function (issueTableConfig) {
                         //  �몴�떆 ���긽�씤 而щ읆留� �솕硫댁뿉 洹몃젮以��떎.
-                        if (Rel_issueTableConfig.display) {
+                        if (issueTableConfig.display) {
                             //  �뀒�씠釉붿쓽 而щ읆�쓣 留뚮뱾�뼱以��떎.
-                            $scope.fn.setRelTableColumn(Rel_issueTableConfig);
+                            $scope.fn.setRelTableColumn(issueTableConfig);
                         }
                     });
                 }
@@ -539,11 +640,11 @@
                 //  �븯�쐞 �씠�뒋 �뀒�씠釉� �꽕�젙
                 function makeDownTableConfigs() {
                     $scope.vm.downTableConfigs = [];
-                    $scope.vm.downTableConfigs.push($tableProvider.config()
+                    $scope.vm.downTableConfigs.push($downProvider.config()
                         .setDType("checkbox")
                         .setHWidth("width-20-p")
                         .setDAlign("text-center"))
-                    $scope.vm.downTableConfigs.push($tableProvider.config()
+                    $scope.vm.downTableConfigs.push($downProvider.config()
                         .setHName("issue.downIssueTitle")
                         .setDType("renderer")
                         .setDAlign("text-center")
@@ -551,7 +652,7 @@
                         .setHSort(false)
                         .setDRenderer("ISSUE_DOWN_MOVE"))
                     /*if($scope.vm.viewer.modifyPermissionCheck){
-                        $scope.vm.downTableConfigs.push($tableProvider.config()
+                        $scope.vm.downTableConfigs.push($downProvider.config()
                             .setHName("issue.relationIssueDelete")
                             .setDType("renderer")
                             .setDAlign("text-center")
@@ -561,11 +662,11 @@
                             .setDAlign("text-center"))
                     }*/
 
-                    angular.forEach($scope.vm.downTableConfigs, function (Down_issueTableConfig) {
+                    angular.forEach($scope.vm.downTableConfigs, function (issueTableConfig) {
                         //  �몴�떆 ���긽�씤 而щ읆留� �솕硫댁뿉 洹몃젮以��떎.
-                        if (Down_issueTableConfig.display) {
+                        if (issueTableConfig.display) {
                             //  �뀒�씠釉붿쓽 而щ읆�쓣 留뚮뱾�뼱以��떎.
-                            $scope.fn.setDownTableColumn(Down_issueTableConfig);
+                            $scope.fn.setDownTableColumn(issueTableConfig);
                         }
                     });
                 }
@@ -578,45 +679,45 @@
                     }
                     var issueTableConfigs = issueTableConfigVo.issueTableConfigs;
 
-                    //  �뿰愿� �뒋 紐⑸줉 �뀒�씠釉� �꽕�젙 媛믪쓣 媛��졇���꽌 �쟻�슜�븳�떎.
+                    //  �뿰愿� �씠�뒋 紐⑸줉 �뀒�씠釉� �꽕�젙 媛믪쓣 媛��졇���꽌 �쟻�슜�븳�떎.
                     if ($rootScope.isDefined(issueTableConfigs)) {
                         //  �씠�뒋 �뀒�씠釉� �꽕�젙 �젙蹂대�� ���옣 �븳�떎.
 
                         $scope.vm.issueRelTableConfigs = [];
                         $scope.vm.issueRelTableConfigs = JSON.parse(issueTableConfigs);
                         $scope.vm.issueRelTableConfigs.sort(function (a, b) {
-                            return a.position < b.position ? -1 : a.position > b.position ? 1 : 0;
+                            return parseInt(a.position) < parseInt(b.position) ? -1 : parseInt(a.position) > parseInt(b.position) ? 1 : 0;
                         });
 
                         $scope.vm.relTableConfigs = [];
-    /*                  $scope.vm.relTableConfigs.push($tableProvider.config()
+    /*                  $scope.vm.relTableConfigs.push($relProvider.config()
                            .setHName("issue.relationIssueType")
                            .setDType("renderer")
                            .setDAlign("text-center")
                            .setHWidth("width-30-p bold")
                            .setHSort(false)
                            .setDRenderer("ISSUE_RELATION_TYPE"))
-                        $scope.vm.relTableConfigs.push($tableProvider.config()
+                        $scope.vm.relTableConfigs.push($relProvider.config()
                            .setHName("issue.relationIssueTitle")
                            .setDType("renderer")
                            .setDAlign("text-center")
                            .setHWidth("width-60-p bold")
                            .setHSort(false)
                            .setDRenderer("ISSUE_RELATION_MOVE"))*/
-                        $scope.vm.relTableConfigs.push($tableProvider.config()
+                        $scope.vm.relTableConfigs.push($relProvider.config()
                             .setDType("checkbox")
                             .setHWidth("width-20-p")
                             .setDAlign("text-center"))
-                        angular.forEach($scope.vm.issueRelTableConfigs, function (Rel_issueTableConfig) {
+                        angular.forEach($scope.vm.issueRelTableConfigs, function (issueTableConfig) {
                             //  �몴�떆 ���긽�씤 而щ읆留� �솕硫댁뿉 洹몃젮以��떎.
-                            if (Rel_issueTableConfig.display) {
+                            if (issueTableConfig.display) {
                                 //  �뀒�씠釉붿쓽 而щ읆�쓣 留뚮뱾�뼱以��떎.
-                                $scope.fn.setRelTableColumn(Rel_issueTableConfig);
+                                $scope.fn.setRelTableColumn(issueTableConfig);
 
                             }
                         });
                         /*if($scope.vm.viewer.modifyPermissionCheck) {
-                            $scope.vm.relTableConfigs.push($tableProvider.config()
+                            $scope.vm.relTableConfigs.push($relProvider.config()
                                 .setHName("issue.relationIssueDelete")
                                 .setDType("renderer")
                                 .setHWidth("width-40-p bold")
@@ -635,35 +736,35 @@
                     if (issueTableConfigVo == null) return;
                     var issueTableConfigs = issueTableConfigVo.issueTableConfigs;
 
-                    //  �뿰愿� �뒋 紐⑸줉 �뀒�씠釉� �꽕�젙 媛믪쓣 媛��졇���꽌 �쟻�슜�븳�떎.
+                    //  �뿰愿� �씠�뒋 紐⑸줉 �뀒�씠釉� �꽕�젙 媛믪쓣 媛��졇���꽌 �쟻�슜�븳�떎.
                     if ($rootScope.isDefined(issueTableConfigs)) {
                         //  �씠�뒋 �뀒�씠釉� �꽕�젙 �젙蹂대�� ���옣 �븳�떎.
                         $scope.vm.issueDownTableConfigs = [];
                         $scope.vm.issueDownTableConfigs = JSON.parse(issueTableConfigs);
                         $scope.vm.issueDownTableConfigs.sort(function (a, b) {
-                            return a.position < b.position ? -1 : a.position > b.position ? 1 : 0;
+                            return parseInt(a.position) < parseInt(b.position) ? -1 : parseInt(a.position) > parseInt(b.position) ? 1 : 0;
                         });
                         $scope.vm.downTableConfigs = [];
-/*                      $scope.vm.downTableConfigs.push($tableProvider.config()
+/*                      $scope.vm.downTableConfigs.push($downProvider.config()
                             .setHName("issue.downIssueTitle")
                             .setDType("renderer")
                             .setDAlign("text-center")
                             .setHWidth("width-60-p bold")
                             .setHSort(false)
                             .setDRenderer("ISSUE_DOWN_MOVE"))*/
-                        $scope.vm.downTableConfigs.push($tableProvider.config()
+                        $scope.vm.downTableConfigs.push($downProvider.config()
                             .setDType("checkbox")
                             .setHWidth("width-20-p")
                             .setDAlign("text-center"))
-                        angular.forEach($scope.vm.issueDownTableConfigs, function (Down_issueTableConfig) {
+                        angular.forEach($scope.vm.issueDownTableConfigs, function (issueTableConfig) {
                             //  �몴�떆 ���긽�씤 而щ읆留� �솕硫댁뿉 洹몃젮以��떎.
-                            if (Down_issueTableConfig.display) {
+                            if (issueTableConfig.display) {
                                 //  �뀒�씠釉붿쓽 而щ읆�쓣 留뚮뱾�뼱以��떎.
-                                $scope.fn.setDownTableColumn(Down_issueTableConfig);
+                                $scope.fn.setDownTableColumn(issueTableConfig);
                             }
                         });
                         /*if($scope.vm.viewer.modifyPermissionCheck) {
-                            $scope.vm.downTableConfigs.push($tableProvider.config()
+                            $scope.vm.downTableConfigs.push($downProvider.config()
                                 .setHName("issue.relationIssueDelete")
                                 .setDType("renderer")
                                 .setHWidth("width-40-p bold")
@@ -696,7 +797,7 @@
                         $resourceProvider.getPageContent(0, 10))).then(function (result) {
 
                         if (result.data.message.status === "success") {
-                            $scope.fn.getIssueDetail();
+                            $scope.fn.getIssueDetail(0,0);
                         }
                         else {
                             SweetAlert.error($filter("translate")("issue.failedToIssueAddIssueRelation"), result.data.message.message); // "�뿰愿��씪媛� �깮�꽦 �떎�뙣"
@@ -712,28 +813,50 @@
                         return;
                     }
 
-                    var ids = [];
-                    if ($scope.vm.form.issuesDown[0].id != null) {
-                        ids.push($scope.vm.form.issuesDown[0].id);
+                    let inheritYn = false;
+                    if ($scope.vm.inheritPartners) {
+                        SweetAlert.swal({
+                                title : $filter("translate")("issue.addDownIssue"), // �븯�쐞 �씠�뒋 異붽�
+                                text : $filter("translate")("issue.wantToInheritPartnersOfParentIssue"), // �긽�쐞�씠�뒋�쓽 �뙆�듃�꼫 �젙蹂�(�뾽泥�/ISP/�샇�뒪�똿)瑜� �쟻�슜�떆�궎寃좎뒿�땲源�?
+                                type : "warning",
+                                showCancelButton : true,
+                                confirmButtonColor : "#DD6B55",
+                                confirmButtonText : $filter("translate")("common.ok"), // �꽕
+                                cancelButtonText : $filter("translate")("common.no"), // �븘�땲�삤
+                                closeOnConfirm : false,
+                                closeOnCancel : false
+                            },
+                            function (isConfirm) {
+                                if (isConfirm) {
+                                    inheritYn = true;
+                                }
+
+                                var ids = [];
+                                if ($scope.vm.form.issuesDown[0].id != null) {
+                                    ids.push($scope.vm.form.issuesDown[0].id);
+                                }
+
+                                var contents = {
+                                    issueId : $rootScope.currentDetailIssueId,
+                                    ids : ids,
+                                    parentIssueId : $rootScope.currentDetailIssueId,
+                                    inheritYn : inheritYn
+                                };
+
+                                Issue.modifyParentIssue($resourceProvider.getContent(
+                                    contents,
+                                    $resourceProvider.getPageContent(0, 10))).then(function (result) {
+
+                                    if (result.data.message.status === "success") {
+                                        SweetAlert.close();
+                                        $scope.fn.getIssueDetail(0,0);
+                                    }
+                                    else {
+                                        SweetAlert.error($filter("translate")("issue.failedToIssueAddIssueDown"), result.data.message.message); // "�븯�쐞�씠�뒋 �깮�꽦 �떎�뙣"
+                                    }
+                                });
+                            });
                     }
-
-                    var contents = {
-                        issueId : $rootScope.currentDetailIssueId,
-                        ids : ids,
-                        parentIssueId : $rootScope.currentDetailIssueId
-                    };
-
-                    Issue.modifyParentIssue($resourceProvider.getContent(
-                        contents,
-                        $resourceProvider.getPageContent(0, 10))).then(function (result) {
-
-                        if (result.data.message.status === "success") {
-                            $scope.fn.getIssueDetail();
-                        }
-                        else {
-                            SweetAlert.error($filter("translate")("issue.failedToIssueAddIssueDown"), result.data.message.message); // "�뿰愿��씪媛� �깮�꽦 �떎�뙣"
-                        }
-                    });
                 }
 
                  // �씠�뒋紐낆쓣 �겢由��븯硫� �씠�뒋 �긽�꽭 �젙蹂대�� 議고쉶�븳�떎.
@@ -747,14 +870,14 @@
                 //     $scope.vm.viewer.id = args["id"];
                 //     $scope.fn.getIssueDetail();
                 // });
-                
+
                 // �씠硫붿씪 蹂대궦�썑 �긽�꽭�솕硫� 媛깆떊
                 //  $rootScope.$on("getIssueDetail", function (event, args) {
                 //      $scope.fn.getIssueDetail();
                 //  });
 
                 $scope.$on("getIssueDetail", function (event, args) {
-                    $scope.fn.getIssueDetail();
+                    $scope.fn.getIssueDetail(0,0);
                 });
 
                 $scope.$watch(function() {
@@ -762,7 +885,7 @@
                 }, function() {
                     if ($rootScope.currentDetailIssueId != null) {
                         $scope.vm.viewer.id = $rootScope.currentDetailIssueId;
-                        $scope.fn.getIssueDetail();
+                        $scope.fn.getIssueDetail(0,0);
                     }
                 }, true);
 
@@ -882,7 +1005,6 @@
                             parameter : function () {
                                 return {
                                     issueTypeId : $scope.vm.viewer.issueTypeVo.id
-
                                 };
                             }
                         }
@@ -950,20 +1072,74 @@
                     return result;
 
                 }
+                function getSubPageContent(relPage, relPageSize, downPage, downPageSize) {
+                    return {
+                        relPage: relPage,
+                        relPageSize: relPageSize,
+                        downPage: downPage,
+                        downPageSize: downPageSize
+                    };
+                }
 
                 //  �씠�뒋 �긽�꽭 �젙蹂� 議고쉶
-                function getIssueDetail() {
+                function getIssueDetail(selectedRelPage, selectedDownPage) {
                     $rootScope.spinner = true;
+                    if (selectedRelPage < 0) {
+                        selectedRelPage = 0;
+                    }
+                    if (selectedDownPage < 0) {
+                        selectedDownPage = 0;
+                    }
+                    //  �쁽�옱 �럹�씠吏� �젙蹂�
+                    var currentRelPage = 0;
+                    var currentDownPage = 0;
+
+                    //  荑좏궎�뿉 �꽑�깮�븳 �럹�씠吏� �젙蹂닿� �뾾�쑝硫� 湲곕낯 �럹�씠吏� �젙蹂� 0 �쓣 ���옣
+                    if (angular.isUndefined(selectedRelPage) || selectedRelPage === "") {
+                        currentRelPage = $scope.vm.page.selectedRelPage;
+                    }
+                    else {
+                        currentRelPage = selectedRelPage;
+                    }
+
+                    if (angular.isUndefined(selectedDownPage) || selectedDownPage === "") {
+                        currentDownPage = $scope.vm.page.selectedDownPage;
+                    }
+                    else {
+                        currentDownPage = selectedDownPage;
+                    }
+
                     //  珥덇린�솕 �빐�빞�븷 �븷紐⑹쓣 吏��젙�븯�뿬 �떎瑜� �씠�뒋瑜� �겢由��븷 �븣 珥덇린�솕�빐以��떎.
                     $scope.fn.initReload();
                     // $scope.fn.getRelTableConfigs();
                     // $scope.fn.getDownTableConfigs();
-                    Issue.detail($resourceProvider.getContent(
-                        {id : $scope.vm.viewer.id, deep : "02"},
-                        $resourceProvider.getPageContent(0, 1))).then(function (result) {
+
+                    var pageContent = $scope.fn.getSubPageContent(currentRelPage, $scope.vm.subPage.selectedRelPageRowCount
+                        , currentDownPage, $scope.vm.subPage.selectedDownPageRowCount);
+
+                    var content = $resourceProvider.getContent(
+                        {
+                            id : $scope.vm.viewer.id
+                            , issueTypeId : (function () {
+                                var id = "";
+                                if ($rootScope.allIssueList) {
+                                    id = -1;
+                                } else {
+                                    id = $rootScope.getCurrentIssueTypeId();
+                                }
+                                return id;
+                            })()
+                            , deep : "02", pageContent
+                        }, null);
+
+                    Issue.detail(content).then(function (result) {
 
                         if (result.data.message.status === "success") {
                             if (angular.isDefined(result.data.data)) {
+
+                                $scope.vm.subPage.selectedRelPage = currentRelPage + 1;
+                                $scope.vm.subPage.selectedDownPage = currentDownPage + 1;
+                                $scope.vm.responseData = result.data.data;
 
                                 $scope.vm.viewer = angular.copy(result.data.data);
                                 //  �씠�뒋 �씠誘몄� 誘몃━ 蹂닿린 留뚮뱾湲�
@@ -971,8 +1147,14 @@
                                 //  �솢�룞 �씠�젰 留뚮뱾湲�
                                 $scope.fn.makeActiveHistory();
 
+                                if ($rootScope.isDefined($scope.vm.viewer.parentIssueVo)) {
+                                    $scope.vm.parentIssueId = $scope.vm.viewer.parentIssueVo.id;
+                                }
+
                                 $scope.vm.viewer.startDate = result.data.data.startDate == null ? "common.unspecified" : result.data.data.startDate; // 誘몄��젙
                                 $scope.vm.viewer.completeDate = result.data.data.completeDate == null ? "common.unspecified" : result.data.data.completeDate; // 誘몄��젙
+
+                                $scope.vm.rangeDate = result.data.data.startDate + "~" + result.data.data.completeDate
 
                                 //  �씠�뒋 �쑀�삎�뿉 �뿰寃곕맂 �궗�슜�옄 �젙�쓽 �븘�뱶 �젙蹂대�� �엯�젰 �뤌�뿉�꽌 �궗�슜�븷 �닔 �엳寃� 媛�怨듯븳�떎.
                                 $scope.fn.setFormByIssueTypeCustomFields(result.data.data.issueTypeCustomFieldVos);
@@ -1017,8 +1199,11 @@
                                 $scope.vm.viewer.issueDownVos = result.data.data.issueDownVos;
 
                                 if ($rootScope.workProject.id > -1 && result.data.data.projectVo !== null) {
-                                    $rootScope.changeLastProject(result.data.data.projectVo.id);
+                                    $rootScope.changeLastProject(result.data.data.projectVo.id, false, false);
                                 }
+
+                                $scope.vm.inheritPartners = result.data.data.issueTypeVo.inheritPartners;
+                                $scope.vm.downTotalCount = result.data.data.downTotalCount;
                             }
                         }
                         else {
@@ -1102,21 +1287,69 @@
 
                 //  �솢�룞 �씠�젰 留뚮뱾湲�
                 function makeActiveHistory() {
-                    $scope.vm.viewer.activeParentHistory = "";
-                    $scope.vm.viewer.activeHistory = "";
+                    $scope.vm.viewer.activeParentHistory = [];
+                    $scope.vm.viewer.activeHistory = [];
+                    $scope.vm.viewer.activeParentMailHistory = [];
+                    $scope.vm.viewer.activeAllMailAndReplyHistory = []; //�긽�쐞+�븯�쐞 硫붿씪,�뙎湲� �엳�뒪�넗由�
+                    var oriMailHistory = [];
+                    var oriCommentHistory = [];
+
+                    if ($scope.vm.viewer.issueHistoryVos != null && $scope.vm.viewer.issueHistoryVos.length > 0) {
+                        //  �긽�쐞�씠�뒋 硫붿씪 �엳�뒪�넗由�
+                        for (var i=0; i<$scope.vm.viewer.issueHistoryVos.length; i++) {
+                            if ($scope.vm.viewer.issueHistoryVos[i].issueHistoryType === "SEND") {
+                                oriMailHistory.push($scope.vm.viewer.issueHistoryVos[i]);
+                            }
+                        }
+                        //$scope.vm.viewer.activeParentMailHistory = angular.copy(oriMailHistory);
+                    }
+                    
+                    //  �긽�쐞�씠�뒋 �뙎湲� �엳�뒪�넗由�
+                    if ($scope.vm.viewer.issueCommentVos != null && $scope.vm.viewer.issueCommentVos.length > 0) {
+                        for (var i=0; i<$scope.vm.viewer.issueCommentVos.length; i++) {
+                            oriCommentHistory.push($scope.vm.viewer.issueCommentVos[i]);
+                        }
+                    }
+
+                    $scope.vm.viewer.activeAllMailAndReplyHistory = oriMailHistory.concat(oriCommentHistory);
+                    
+                    //  �븯�쐞�씠�뒋 �엳�뒪�넗由�
                     if ($scope.vm.viewer.issueDownVos != null && $scope.vm.viewer.issueDownVos.length > 0) {
-                        $scope.vm.viewer.activeDownHistory = ""; //�븯�쐞�씠�뒋 �엳�뒪�넗由щ쭔
-                        $scope.vm.viewer.downComment = ""; //�븯�쐞�씠�뒋 �뙎湲�留�
-                        $scope.vm.viewer.activeDownAllHistory = ""; //�븯�쐞�씠�뒋 �엳�뒪�넗由�+�뙎湲�
+                        $scope.vm.viewer.activeDownHistory = []; //�븯�쐞�씠�뒋 �엳�뒪�넗由щ쭔
+                        $scope.vm.viewer.downComment = []; //�븯�쐞�씠�뒋 �뙎湲�留�
+                        $scope.vm.viewer.activeDownAllHistory = []; //�븯�쐞�씠�뒋 �엳�뒪�넗由�+�뙎湲�
+                        $scope.vm.viewer.activeDownMailAndReplyHistory = []; //�븯�쐞 硫붿씪+�뙎湲� �엳�뒪�넗由�
                         var downTitle = "";
                         var oriDownHistory = [];
                         var oriDownCommentHistory = [];
+                        var oriDownMailHistory = [];
 
                         // �븯�쐞�씠�뒋 �엳�뒪�넗由�
                         for (var i=0; i<$scope.vm.viewer.issueDownVos.length; i++){
                             oriDownHistory.push($scope.vm.viewer.issueDownVos[i].issueHistoryVos);
-                            oriDownCommentHistory.push($scope.vm.viewer.issueDownVos[i].issueCommentVos);
+
+                            //  �븯�쐞�씠�뒋 硫붿씪 湲곕줉
+                            for (var j=0; j<$scope.vm.viewer.issueDownVos[i].issueHistoryVos.length; j++) {
+                                if($scope.vm.viewer.issueDownVos[i].issueHistoryVos[j].issueHistoryType === "SEND") {
+                                    oriDownMailHistory.push($scope.vm.viewer.issueDownVos[i].issueHistoryVos[j]);
+                                }
+                            }
+                            //  �븯�쐞�씠�뒋 �뙎湲� 湲곕줉
+                            for (var k=0; k<$scope.vm.viewer.issueDownVos[i].issueCommentVos.length; k++) {
+                                oriDownCommentHistory.push($scope.vm.viewer.issueDownVos[i].issueCommentVos[k]);
+                            }
                         }
+                        //  �븯�쐞�씠�뒋 硫붿씪+�뙎湲� ���옣
+                        $scope.vm.viewer.activeDownMailAndReplyHistory = oriDownCommentHistory.concat(oriDownMailHistory);
+                        for (var i=0; i<$scope.vm.viewer.activeDownMailAndReplyHistory.length; i++){
+                            downTitle = "<div class='dot' style='margin-bottom: -8px'>*�븯�쐞�씠�뒋 : "+$scope.vm.viewer.activeDownMailAndReplyHistory[i].title+"</div>";
+                            $scope.vm.viewer.activeDownMailAndReplyHistory[i].desc = downTitle + $scope.vm.viewer.activeDownMailAndReplyHistory[i].description;
+                        }
+
+                        $scope.vm.viewer.activeDownMailAndReplyHistory.sort(function (a, b) {   //"MAIL_AND_REPLY_DOWN" �궡由쇱감�닚
+                            return a.registerDate > b.registerDate ? -1 : a.registerDate < b.registerDate ? 1 : 0;
+                        });
+
                         for (var i=0; i<oriDownHistory.length; i++){
                             if ($scope.vm.viewer.activeDownHistory === "") {
                                 $scope.vm.viewer.activeDownHistory = oriDownHistory[i];
@@ -1134,29 +1367,41 @@
                         });
 
                         // �븯�쐞�씠�뒋 �뙎湲� �엳�뒪�넗由�
-                       for (var i=0; i<oriDownCommentHistory.length; i++) {
+                        for (var i=0; i<oriDownCommentHistory.length; i++) {
                            if ($scope.vm.viewer.downComment === "") {
                                $scope.vm.viewer.downComment = oriDownCommentHistory[i];
                            } else {
                                $scope.vm.viewer.downComment = $scope.vm.viewer.downComment.concat(oriDownCommentHistory[i]);
                            }
-                       }
-                       $scope.vm.viewer.issueDownVos.sort(function (a, b) {   //�궡由쇱감�닚
-                           return a.registerDate > b.registerDate ? -1 : a.registerDate < b.registerDate ? 1 : 0;
-                       });
+                        }
+                        $scope.vm.viewer.issueDownVos.sort(function (a, b) {   //�궡由쇱감�닚
+                            return a.registerDate > b.registerDate ? -1 : a.registerDate < b.registerDate ? 1 : 0;
+                        });
 
-                       $scope.vm.viewer.activeDownAllHistory = $scope.vm.viewer.downComment.concat($scope.vm.viewer.activeDownHistory);
-                       $scope.vm.viewer.activeParentHistory = $scope.vm.viewer.issueCommentVos.concat($scope.vm.viewer.issueHistoryVos);
-                       $scope.vm.viewer.activeHistory = $scope.vm.viewer.activeParentHistory.concat($scope.vm.viewer.activeDownAllHistory);
+                        $scope.vm.viewer.activeDownAllHistory = $scope.vm.viewer.downComment.concat($scope.vm.viewer.activeDownHistory);
+
+                        $scope.vm.viewer.activeDownAllHistory.sort(function (a, b) {   //"RECODE_DOWN" �궡由쇱감�닚
+                            return a.registerDate > b.registerDate ? -1 : a.registerDate < b.registerDate ? 1 : 0;
+                        });
+
+                        $scope.vm.viewer.activeParentHistory = $scope.vm.viewer.issueCommentVos.concat($scope.vm.viewer.issueHistoryVos);
+                        $scope.vm.viewer.activeHistory = $scope.vm.viewer.activeParentHistory.concat($scope.vm.viewer.activeDownAllHistory);
+                        $scope.vm.viewer.activeAllMailAndReplyHistory = $scope.vm.viewer.activeAllMailAndReplyHistory.concat($scope.vm.viewer.activeDownMailAndReplyHistory);
 
                     }else {
                         $scope.vm.viewer.activeParentHistory = $scope.vm.viewer.issueCommentVos.concat($scope.vm.viewer.issueHistoryVos);
                         $scope.vm.viewer.activeHistory = $scope.vm.viewer.issueCommentVos.concat($scope.vm.viewer.issueHistoryVos);
                     }
-                    $scope.vm.viewer.activeParentHistory.sort(function (a, b) {   //�궡由쇱감�닚
+
+                    $scope.vm.viewer.activeHistory.sort(function (a, b) {   //"ALL" �궡由쇱감�닚
                         return a.registerDate > b.registerDate ? -1 : a.registerDate < b.registerDate ? 1 : 0;
                     });
-                    $scope.vm.viewer.activeHistory.sort(function (a, b) {   //�궡由쇱감�닚
+
+                    $scope.vm.viewer.activeParentHistory.sort(function (a, b) {   //"RECODE" �궡由쇱감�닚
+                        return a.registerDate > b.registerDate ? -1 : a.registerDate < b.registerDate ? 1 : 0;
+                    });
+
+                    $scope.vm.viewer.activeAllMailAndReplyHistory.sort(function (a, b) {   //"MAIL_AND_REPLY" �궡由쇱감�닚
                         return a.registerDate > b.registerDate ? -1 : a.registerDate < b.registerDate ? 1 : 0;
                     });
                 }
@@ -1290,17 +1535,59 @@
                     });
                 }
 
-                function getParametersAll() {
-                    var params = $scope.fn.getParameters(null, $scope.vm.viewer.issueCompanyVos);
-                    params = $scope.fn.getParameters(params, $scope.vm.viewer.issueIspVos);
-                    params = $scope.fn.getParameters(params, $scope.vm.viewer.issueHostingVos);
+                // �씪諛� 硫붿씪 諛쒖넚 (�궗�슜�옄 吏곸젒 �옉�꽦)
+                function sendCommonMail() {
+                    $uibModal.open({
+                        templateUrl : 'views/issue/issueCommonSendMail.html',
+                        size : "md",
+                        controller : 'issueCommonSendMailController',
+                        backdrop : 'static',
+                        resolve : {
+                            parameter : {
+                                issueId : $scope.vm.viewer.id,
+                            }
+                        }
+                    });
+                }
 
-                    if (params != null && params.length > 0) {
-                        for (let i = 0; i < params.length; i++) {
-                            params[i].id = i;
+                function getParametersAll() {
+                    var params = [];
+                    if ($scope.vm.viewer.issueCompanyVos != null && $scope.vm.viewer.issueCompanyVos.length > 0) {
+                        var issueCompany = $scope.fn.getParameters(params, $scope.vm.viewer.issueCompanyVos);
+                        if (issueCompany != null && issueCompany.length > 0) {
+                            angular.forEach(issueCompany, function (data) {
+                                params.push(data);
+                            });
                         }
                     }
-                    return params;
+                    if ($scope.vm.viewer.issueIspVos != null && $scope.vm.viewer.issueIspVos.length > 0) {
+                        var issueIsp = $scope.fn.getParameters(params, $scope.vm.viewer.issueIspVos)
+                        if (issueIsp != null && issueIsp.length > 0) {
+                            angular.forEach(issueIsp, function (data) {
+                                params.push(data);
+                            });
+                        }
+                    }
+                    if ($scope.vm.viewer.issueHostingVos != null && $scope.vm.viewer.issueHostingVos.length > 0) {
+                        var issueHosting = $scope.fn.getParameters(params, $scope.vm.viewer.issueHostingVos);
+                        if (issueHosting != null && issueHosting.length > 0) {
+                            angular.forEach(issueHosting, function (data) {
+                                params.push(data);
+                            });
+                        }
+                    }
+
+                    if (params != null && params.length > 0) {
+                        var filterData = params.filter(function(item, idx){
+                            return params.findIndex(function(item2, idx2){
+                                return item.email === item2.email
+                            }) == idx;
+                        });
+                        for (let i = 0; i < filterData.length; i++) {
+                            filterData[i].id = i;
+                        }
+                    }
+                    return filterData;
                 }
 
                 function getParameters(sourceArr, partnerVos) {

--
Gitblit v1.8.0