OWL ITS + 탐지시스템(인터넷 진흥원)
src/main/webapp/scripts/app/issue/issueAddRelation.controller.js
@@ -45,6 +45,7 @@
                    getChildSectorListCallBack : getChildSectorListCallBack,
                    getRegionListCallBack : getRegionListCallBack,
                    getStatusListCallBack : getStatusListCallBack,
                    getIssueTypeOfProject : getIssueTypeOfProject
                };
                $scope.vm = {
@@ -97,6 +98,8 @@
                    companyTel : "",  // 업체 전화번호
                    companyEmail : "",  // 업체 이메일
                    companyUrl : "", // 업체 url
                    ipStart : "", //ip시작주소
                    ipEnd : "", //ip종료주소
                    companyMemo : "",  // 업체 비고
                    ispId : -1, // ISP ID
                    ispName : "", // ISP 명
@@ -197,14 +200,14 @@
                //  프로젝트가 변경되면 담당자 초기화
                $scope.$watch("vm.form.projects", function (newValue, oldValue) {
                    if (angular.isDefined(newValue)) {
                        if (newValue.length < 1) {
                            $scope.vm.form.users = [];
                        } else {
                            //  이슈 유형에 연결된 사용자 정의 필드 가져오기
                            $scope.fn.getIssueTypeCustomFields();
                            //  선택한 프로젝트에 속해있는 이슈유형만 보여주기
                            $scope.fn.getIssueTypeOfProject();
                        }
                    }
                });
@@ -436,7 +439,16 @@
                }
                // 업종(대분류) autocomplete page 업데이트
                function getParentSectorListCallBack(result) {
                function getParentSectorListCallBack(result, value) {
                    if (value === "") {
                        $scope.vm.form.parentSectorId = "";
                        if ($rootScope.isDefined($scope.vm.form.parentSectors) && $rootScope.isDefined($scope.vm.form.parentSectors[0])) {
                            $scope.vm.form.parentSectors[0].id = "";
                        }
                        $scope.vm.form.childSectorId = "";
                        $scope.vm.form.childSector = "";
                        $scope.vm.form.childSectors = [];
                    }
                    $scope.vm.autoCompletePage.parentSector.totalPage = result.data.page.totalPage;
                }
@@ -465,89 +477,131 @@
                // 업체정보 결과 값 Event 처리(set)
                $scope.$on("companyFieldEvent", function (event, result) {
                    var ispFieldVo = result[0].ispFieldVo;
                    var hostingFieldVo = result[0].hostingFieldVo;
                    if ($rootScope.isDefined(result) && $rootScope.isDefined(result[0])) {
                        var ispFieldVo = result[0].ispFieldVo;
                        var hostingFieldVo = result[0].hostingFieldVo;
                    $scope.vm.companyId = result[0].id;
                    $scope.vm.companyName = result[0].name;
                    $scope.vm.companyManager = result[0].manager;
                    $scope.vm.companyTel = result[0].tel;
                    $scope.vm.companyEmail = result[0].email;
                    $scope.vm.companyUrl = result[0].url;
                    $scope.vm.companyMemo = result[0].memo;
                    $scope.vm.form.companyTypeId = result[0].companyTypeId;
                    $scope.vm.form.parentSectorId = result[0].parentSectorId;
                    $scope.vm.form.childSectorId = result[0].childSectorId;
                    $scope.vm.form.regionId = result[0].regionId;
                    $scope.vm.form.statusId = result[0].statusId;
                    $scope.vm.form.companyType = result[0].companyTypeName;
                    $scope.vm.form.parentSector = result[0].parentSectorName;
                    $scope.vm.form.childSector = result[0].childSectorName;
                    $scope.vm.form.region = result[0].regionName;
                    $scope.vm.form.status = result[0].statusName;
                        $scope.vm.companyId = result[0].id;
                        $scope.vm.companyName = result[0].name;
                        $scope.vm.companyManager = result[0].manager;
                        $scope.vm.companyTel = result[0].tel;
                        $scope.vm.companyEmail = result[0].email;
                        $scope.vm.companyUrl = result[0].url;
                        $scope.vm.ipStart = result[0].ipStart;
                        $scope.vm.ipEnd = result[0].ipEnd;
                        $scope.vm.companyMemo = result[0].memo;
                        $scope.vm.form.companyTypeId = result[0].companyTypeId;
                        $scope.vm.form.parentSectorId = result[0].parentSectorId;
                        $scope.vm.form.childSectorId = result[0].childSectorId;
                        $scope.vm.form.regionId = result[0].regionId;
                        $scope.vm.form.statusId = result[0].statusId;
                        $scope.vm.form.companyType = result[0].companyTypeName;
                        $scope.vm.form.parentSector = result[0].parentSectorName;
                        $scope.vm.form.childSector = result[0].childSectorName;
                        $scope.vm.form.region = result[0].regionName;
                        $scope.vm.form.status = result[0].statusName;
                    $scope.vm.ispId = "";
                    $scope.vm.ispName = "";
                    $scope.vm.ispCode = "";
                    $scope.vm.ispManager = "";
                    $scope.vm.ispTel = "";
                    $scope.vm.ispEmail = "";
                    $scope.vm.ispUrl = "";
                    $scope.vm.ispMemo = "";
                        $scope.vm.ispId = "";
                        $scope.vm.ispName = "";
                        $scope.vm.ispCode = "";
                        $scope.vm.ispManager = "";
                        $scope.vm.ispTel = "";
                        $scope.vm.ispEmail = "";
                        $scope.vm.ispUrl = "";
                        $scope.vm.ispMemo = "";
                    $scope.vm.hostingId = "";
                    $scope.vm.hostingName = "";
                    $scope.vm.hostingCode = "";
                    $scope.vm.hostingManager = "";
                    $scope.vm.hostingTel = "";
                    $scope.vm.hostingEmail = "";
                    $scope.vm.hostingUrl = "";
                    $scope.vm.hostingMemo = "";
                        $scope.vm.hostingId = "";
                        $scope.vm.hostingName = "";
                        $scope.vm.hostingCode = "";
                        $scope.vm.hostingManager = "";
                        $scope.vm.hostingTel = "";
                        $scope.vm.hostingEmail = "";
                        $scope.vm.hostingUrl = "";
                        $scope.vm.hostingMemo = "";
                    if (ispFieldVo != null){
                        $scope.vm.ispId = ispFieldVo.id;
                        $scope.vm.ispName = ispFieldVo.name;
                        $scope.vm.ispCode = ispFieldVo.code;
                        $scope.vm.ispManager = ispFieldVo.manager;
                        $scope.vm.ispTel = ispFieldVo.tel;
                        $scope.vm.ispEmail = ispFieldVo.email;
                        $scope.vm.ispUrl = ispFieldVo.url;
                        $scope.vm.ispMemo = ispFieldVo.memo;
                    }
                    if (hostingFieldVo != null){
                        $scope.vm.hostingId = hostingFieldVo.id;
                        $scope.vm.hostingName = hostingFieldVo.name;
                        $scope.vm.hostingCode = hostingFieldVo.code;
                        $scope.vm.hostingManager = hostingFieldVo.manager;
                        $scope.vm.hostingTel = hostingFieldVo.tel;
                        $scope.vm.hostingEmail = hostingFieldVo.email;
                        $scope.vm.hostingUrl = hostingFieldVo.url;
                        $scope.vm.hostingMemo = hostingFieldVo.memo;
                        if (ispFieldVo != null) {
                            $scope.vm.ispId = ispFieldVo.id;
                            $scope.vm.ispName = ispFieldVo.name;
                            $scope.vm.ispCode = ispFieldVo.code;
                            $scope.vm.ispManager = ispFieldVo.manager;
                            $scope.vm.ispTel = ispFieldVo.tel;
                            $scope.vm.ispEmail = ispFieldVo.email;
                            $scope.vm.ispUrl = ispFieldVo.url;
                            $scope.vm.ispMemo = ispFieldVo.memo;
                        }
                        if (hostingFieldVo != null) {
                            $scope.vm.hostingId = hostingFieldVo.id;
                            $scope.vm.hostingName = hostingFieldVo.name;
                            $scope.vm.hostingCode = hostingFieldVo.code;
                            $scope.vm.hostingManager = hostingFieldVo.manager;
                            $scope.vm.hostingTel = hostingFieldVo.tel;
                            $scope.vm.hostingEmail = hostingFieldVo.email;
                            $scope.vm.hostingUrl = hostingFieldVo.url;
                            $scope.vm.hostingMemo = hostingFieldVo.memo;
                        }
                    }
                });
                // ISP정보 결과 값 Event 처리(set)
                $scope.$on("ispFieldEvent", function (event, result) {
                    $scope.vm.ispId = result[0].id;
                    $scope.vm.ispName = result[0].name;
                    $scope.vm.ispCode = result[0].code;
                    $scope.vm.ispManager = result[0].manager;
                    $scope.vm.ispTel = result[0].tel;
                    $scope.vm.ispEmail = result[0].email;
                    $scope.vm.ispUrl = result[0].url;
                    $scope.vm.ispMemo = result[0].memo;
                    if ($rootScope.isDefined(result) && $rootScope.isDefined(result[0])) {
                        $scope.vm.ispId = result[0].id;
                        $scope.vm.ispName = result[0].name;
                        $scope.vm.ispCode = result[0].code;
                        $scope.vm.ispManager = result[0].manager;
                        $scope.vm.ispTel = result[0].tel;
                        $scope.vm.ispEmail = result[0].email;
                        $scope.vm.ispUrl = result[0].url;
                        $scope.vm.ispMemo = result[0].memo;
                    }
                });
                // 호스팅정보 결과 값 Event 처리(set)
                $scope.$on("hostingFieldEvent", function (event, result) {
                    $scope.vm.hostingId = result[0].id;
                    $scope.vm.hostingName = result[0].name;
                    $scope.vm.hostingCode = result[0].code;
                    $scope.vm.hostingManager = result[0].manager;
                    $scope.vm.hostingTel = result[0].tel;
                    $scope.vm.hostingEmail = result[0].email;
                    $scope.vm.hostingUrl = result[0].url;
                    $scope.vm.hostingMemo = result[0].memo;
                    if ($rootScope.isDefined(result) && $rootScope.isDefined(result[0])) {
                        $scope.vm.hostingId = result[0].id;
                        $scope.vm.hostingName = result[0].name;
                        $scope.vm.hostingCode = result[0].code;
                        $scope.vm.hostingManager = result[0].manager;
                        $scope.vm.hostingTel = result[0].tel;
                        $scope.vm.hostingEmail = result[0].email;
                        $scope.vm.hostingUrl = result[0].url;
                        $scope.vm.hostingMemo = result[0].memo;
                    }
                });
                $scope.$on("companyTypeEvent", function (event, result) {
                    if ($rootScope.isDefined(result) && $rootScope.isDefined(result[0])) {
                        $scope.vm.form.companyTypeId = result[0].id;
                    }
                });
                $scope.$on("parentSectorEvent", function (event, result) {
                    if ($rootScope.isDefined(result) && $rootScope.isDefined(result[0])) {
                        $scope.vm.form.parentSectorId = result[0].id;
                    }  else {
                        $scope.vm.form.parentSectorId = "";
                        if ($rootScope.isDefined($scope.vm.form.parentSectors) && $rootScope.isDefined($scope.vm.form.parentSectors[0])) {
                            $scope.vm.form.parentSectors[0].id = "";
                        }
                    }
                    $scope.vm.form.childSectorId = "";
                    $scope.vm.form.childSector = "";
                    $scope.vm.form.childSectors = [];
                });
                $scope.$on("childSectorEvent", function (event, result) {
                    if ($rootScope.isDefined(result) && $rootScope.isDefined(result[0])) {
                        $scope.vm.form.childSectorId = result[0].id;
                    }
                });
                $scope.$on("regionEvent", function (event, result) {
                    if ($rootScope.isDefined(result) && $rootScope.isDefined(result[0])) {
                        $scope.vm.form.regionId = result[0].id;
                    }
                });
                $scope.$on("statusEvent", function (event, result) {
                    if ($rootScope.isDefined(result) && $rootScope.isDefined(result[0])) {
                        $scope.vm.form.statusId = result[0].id;
                    }
                });
                //  폼 전송
@@ -563,38 +617,40 @@
                        companyTel : $scope.vm.companyTel,
                        companyEmail :$scope.vm.companyEmail,
                        companyUrl : $scope.vm.companyUrl,
                        ipStart :$scope.vm.ipStart,
                        ipEnd :$scope.vm.ipEnd,
                        companyMemo : $scope.vm.companyMemo,
                        companyTypeId : (function () {
                            var companyTypeId = -1;
                            if ($scope.vm.form.companyTypes != null) {
                            if ($scope.vm.form.companyTypes != null && $scope.vm.form.companyTypes.length > 0) {
                                companyTypeId = $scope.vm.form.companyTypes[0].id;
                            }
                            return companyTypeId;
                        })(),
                        parentSectorId : (function () {
                            var parentSectorId = -1;
                            if ($scope.vm.form.parentSectors != null) {
                            if ($scope.vm.form.parentSectors != null && $scope.vm.form.parentSectors.length > 0) {
                                parentSectorId = $scope.vm.form.parentSectors[0].id;
                            }
                            return parentSectorId;
                        })(),
                        childSectorId : (function () {
                            var childSectorId = -1;
                            if ($scope.vm.form.childSectors != null) {
                            if ($scope.vm.form.childSectors != null && $scope.vm.form.childSectors.length > 0) {
                                childSectorId = $scope.vm.form.childSectors[0].id;
                            }
                            return childSectorId;
                        })(),
                        regionId : (function () {
                            var regionId = -1;
                            if ($scope.vm.form.regions != null) {
                            if ($scope.vm.form.regions != null && $scope.vm.form.regions.length > 0) {
                                regionId = $scope.vm.form.regions[0].id;
                            }
                            return regionId;
                        })(),
                        statusId : (function () {
                            var statusId = -1;
                            if ($scope.vm.form.statuses != null) {
                            if ($scope.vm.form.statuses != null && $scope.vm.form.statuses.length > 0) {
                                statusId = $scope.vm.form.statuses[0].id;
                            } else if ($scope.vm.form.status !== ""){
                                statusId = 120; //직접입력 일 경우
@@ -634,7 +690,7 @@
                        companyId : (function () {
                            var companyId = -1;
                            if ($scope.vm.form.issueCompanyFields.length > 0) {
                            if ($scope.vm.form.issueCompanyFields != null && $scope.vm.form.issueCompanyFields.length > 0) {
                                companyId = $scope.vm.form.issueCompanyFields[0].id;
                            }
                            return companyId;
@@ -707,12 +763,15 @@
                                    tel : $scope.vm.companyTel,
                                    email :$scope.vm.companyEmail,
                                    url :$scope.vm.companyUrl,
                                    ipStart :$scope.vm.ipStart,
                                    ipEnd :$scope.vm.ipEnd,
                                    memo : $scope.vm.companyMemo,
                                    companyTypeId : companyField.companyTypeId,
                                    parentSectorId : companyField.parentSectorId,
                                    childSectorId : companyField.childSectorId,
                                    regionId : companyField.regionId,
                                    statusId : companyField.statusId
                                    companyTypeId : $scope.vm.form.companyTypeId,
                                    parentSectorId : $scope.vm.form.parentSectorId,
                                    childSectorId : $scope.vm.form.childSectorId,
                                    regionId : $scope.vm.form.regionId,
                                    statusId : $scope.vm.form.statusId,
                                    statusName : $scope.vm.form.status
                                });
                            }
@@ -877,6 +936,39 @@
                        if (result.data.message.status === "success") {
                            $scope.vm.issueTypes = result.data.data;
                        }
                        else {
                            SweetAlert.swal($filter("translate")("issue.failedToIssueTypeListLookup"), result.data.message.message, "error"); // 이슈 타입 목록 조회 실패
                        }
                        deferred.resolve(result.data.data);
                    });
                    return deferred.promise;
                }
                //  선택한 프로젝트에 속해있는 이슈유형만 보여주기
                function getIssueTypeOfProject() {
                    var deferred = $q.defer();
                    IssueType.find($resourceProvider.getContent({projectId : $scope.vm.form.projects[0].id},
                        $resourceProvider.getPageContent(0, 1000))).then(function (result) {
                        if (result.data.message.status === "success") {
                            $scope.vm.issueTypes = result.data.data;
                            //  option 빈값 방지
                            if ($rootScope.isDefined($scope.vm.issueTypes) && $scope.vm.issueTypes.length > 0) {
                                let chk = 0;
                                angular.forEach($scope.vm.issueTypes, function (issueType) {
                                    if (issueType.id.toString() === $scope.vm.form.issueTypeId.toString()) {
                                        chk ++;
                                    }
                                });
                                if (chk === 0) {
                                    $scope.vm.form.issueTypeId = null;
                                }
                            }
                        }
                        else {
                            SweetAlert.swal($filter("translate")("issue.failedToIssueTypeListLookup"), result.data.message.message, "error"); // 이슈 타입 목록 조회 실패
@@ -1081,6 +1173,9 @@
                            $scope.vm.projectName = $rootScope.workProject.name;
                            $scope.vm.form.projects = [];
                            $scope.vm.form.projects.push($rootScope.workProject);
                        } else {
                            $scope.vm.projectName = parameter.project.name;
                            $scope.vm.form.projects.push(parameter.project);
                        }
                        // 현재 이슈타입 유형 설정
                        var id = $rootScope.getCurrentIssueTypeId();
@@ -1089,6 +1184,10 @@
                        } else {
                            $scope.vm.form.issueTypeId = parameter.issueTypeId.toString();
                        }
                        //  프로젝트의 이슈유형 set
                        $scope.fn.getIssueTypeOfProject();
                        // 이슈유형, 프로젝트 set 한 후에 사용자정의필드 set
                        $scope.fn.getIssueTypeCustomFields();
                        $log.debug("promises 결과 ", results);
                    });
                }