| | |
| | | ], |
| | | function (app, angular) { |
| | | app.controller('issueDetailController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$tableProvider', '$state', '$uibModal', '$q', |
| | | '$controller', '$injector', 'SweetAlert', '$timeout', 'Issue', 'IssueComment', 'IssueRelation', 'AttachedFile', 'Priority', 'Severity','IssueStatus', 'HostingField', 'IssueTableConfig', '$filter', |
| | | function ($scope, $rootScope, $log, $resourceProvider, $tableProvider, $state, $uibModal, $q, $controller, $injector, SweetAlert, $timeout, Issue, IssueComment, IssueRelation, AttachedFile, Priority, Severity, IssueStatus, HostingField, IssueTableConfig, $filter) { |
| | | '$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) { |
| | | |
| | | // IssueListController vm, fn 변수 상속. |
| | | |
| | |
| | | $scope.fn.modifyIssueUser = modifyIssueUser; // 이슈 담당자 변경 |
| | | $scope.fn.modifyIssueDepartment = modifyIssueDepartment; // 이슈 담당부서 변경 |
| | | $scope.fn.initReload = initReload; // 초기화 해야할 할목을 지정하여 다른 이슈를 클릭할 때 초기화해준다. |
| | | $scope.fn.sendMail = sendMail; // 특정 사용자에게 이슈 정보를 메일로 발송 |
| | | $scope.fn.sendMail = sendMail; |
| | | $scope.fn.sendMailAll = sendMailAll; |
| | | $scope.fn.sendMailVo = sendMailVo; |
| | | $scope.fn.getParameters = getParameters; |
| | | $scope.fn.getParametersAll = getParametersAll; |
| | | // 특정 사용자에게 이슈 정보를 메일로 발송 |
| | | $scope.fn.versionView = versionView; // 버전 정보를 표시한다. |
| | | $scope.fn.reservation = reservation; // 예약 정보를 확인 및 변경 한다. |
| | | $scope.fn.getIssueListCallBack = getIssueListCallBack; |
| | |
| | | $scope.fn.getRelTableConfigs = getRelTableConfigs; |
| | | $scope.fn.getDownTableConfigs = getDownTableConfigs; |
| | | $scope.fn.containsPartner = containsPartner; |
| | | $scope.fn.getPartners = getPartners; |
| | | $scope.fn.onActivate = onActivate; |
| | | |
| | | // 이슈 목록 컨트롤러 vm, fn 상속 중 |
| | | $scope.vm.viewer = []; |
| | | $scope.vm.viewer = {}; |
| | | $scope.vm.images = []; // 첨부된 파일 중 이미지 파일 |
| | | $scope.vm.activeTab = "ALL"; // 활동 내역 탭 |
| | | // 이슈 상태 변경 표시 여부 |
| | |
| | | |
| | | $scope.vm.form = { |
| | | issues : [], //연관 일감 |
| | | issuesDown : [] // 하위 일감 |
| | | issuesDown : [], // 하위 일감 |
| | | issueCompanyVos : [], |
| | | issueIspVos : [], |
| | | issueHostingVos : [] |
| | | }; |
| | | |
| | | |
| | |
| | | |
| | | $scope.vm.issueName = ""; // 선택된 연관 일감 이름 |
| | | $scope.vm.issueId = ""; // |
| | | $scope.vm.issueTypeId = ""; |
| | | $scope.vm.autoCompletePage = { |
| | | issue : { |
| | | page : 0, |
| | |
| | | |
| | | function changeDetailView(issue) { |
| | | // 이슈 번호를 저장한 후 이슈 목록으로 이동한다. |
| | | // $rootScope.$broadcast("makeIssueSearch", issue); |
| | | //$rootScope.$broadcast("makeIssueSearch",issue); |
| | | $scope.$parent.tableEvent.changeDetailView(issue.id); |
| | | $scope.fn.onActivate(); |
| | | } |
| | | |
| | | function onActivate() { |
| | | window.scroll(0,240); |
| | | } |
| | | |
| | | angular.extend(this, $controller('autoCompleteController', {$scope : $scope, $injector : $injector})); |
| | | |
| | | // 이슈 목록 데이터 갱신 |
| | | $scope.$on("getIssueList", function () { |
| | | $scope.fn.getIssueDetail(); |
| | | }); |
| | | |
| | | |
| | | |
| | | // 하위 이슈 삭제 |
| | | function removeDownIssue(id) { |
| | |
| | | .setDAlign("text-center") |
| | | .setDName("modifyDate")); |
| | | break; |
| | | // default :"ISSUE_RELATION_DELETE" // 연관 삭제 |
| | | // $scope.vm.relTableConfigs.push($tableProvider.config() |
| | | // .setHName("issue.downIssueTitle") |
| | | // .setDType("renderer") |
| | | // .setHWidth("bold" + issueTableConfig.width) |
| | | // .setHSort(false) |
| | | // .setDRenderer("ISSUE_RELATION_DELETE")); |
| | | // break; |
| | | } |
| | | |
| | | // 사용자 정의 필드 컬럼 |
| | |
| | | }); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | // 연관 이슈 추가 |
| | | function addRelationIssue() { |
| | | if ($scope.vm.issueName.length == 0 || $scope.vm.form.issues.length == 0 |
| | |
| | | } |
| | | |
| | | // 이슈명을 클릭하면 이슈 상세 정보를 조회한다. |
| | | $rootScope.$on("getIssueDetail", function (event, args) { |
| | | $scope.vm.viewer.id = args["id"]; |
| | | $scope.fn.getIssueDetail(); |
| | | }); |
| | | // $rootScope.$on("getIssueDetail", function (event, args) { |
| | | // $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.vm.viewer.id = args["id"]; |
| | | $scope.fn.getIssueDetail(); |
| | | }); |
| | | // $scope.$on("getIssueDetail", function (event, args) { |
| | | // $scope.vm.viewer.id = args["id"]; |
| | | // $scope.fn.getIssueDetail(); |
| | | // }); |
| | | |
| | | $scope.$watch(function() { |
| | | return $rootScope.currentDetailIssueId; |
| | | }, function() { |
| | | if ($rootScope.currentDetailIssueId != null) { |
| | | $scope.vm.viewer.id = $rootScope.currentDetailIssueId; |
| | | $scope.fn.getIssueDetail(); |
| | | } |
| | | }, true); |
| | | |
| | | // 초기화 해야할 할목을 지정하여 다른 이슈를 클릭할 때 초기화해준다. |
| | | function initReload() { |
| | | $scope.vm.editor.issueStatus = false; |
| | | $scope.vm.issueForm.issueStatusList = []; |
| | | $scope.vm.issueForm.issueStatusId = ""; |
| | | /*if ($scope.$root.$$phase !== '$apply' && $scope.$root.$$phase !== '$digest') { |
| | | $scope.$apply(); |
| | | }*/ |
| | | $scope.vm.issueTypeId = $rootScope.getCurrentIssueTypeId(); |
| | | // if ($scope.$root.$$phase !== '$apply' && $scope.$root.$$phase !== '$digest') { |
| | | // $scope.$apply(); |
| | | // } |
| | | } |
| | | |
| | | // 이슈 상태 변경 |
| | |
| | | return { |
| | | issueTypeId : $scope.vm.viewer.issueTypeVo.id |
| | | }; |
| | | |
| | | } |
| | | } |
| | | }); |
| | |
| | | }); |
| | | } |
| | | |
| | | // 업체/ISP/호스팅 이름이 포함 여부 확인 |
| | | function containsPartner(name) { |
| | | var result = false; |
| | | |
| | | if ($scope.vm.viewer.usePartnerVos != null) { |
| | | $scope.vm.viewer.usePartnerVos.forEach(function (partnerVo) { |
| | | if (name === partnerVo.name) { |
| | | result = true; |
| | | } |
| | | }); |
| | | } |
| | | return result; |
| | | |
| | | } |
| | | |
| | | // 이슈 상세 정보 조회 |
| | | function getIssueDetail() { |
| | | // 초기화 해야할 할목을 지정하여 다른 이슈를 클릭할 때 초기화해준다. |
| | |
| | | if (result.data.message.status === "success") { |
| | | if (angular.isDefined(result.data.data)) { |
| | | $scope.vm.viewer = angular.copy(result.data.data); |
| | | |
| | | // 이슈 이미지 미리 보기 만들기 |
| | | $scope.fn.makePreviewImages(result.data.data.attachedFileVos); |
| | | // 활동 이력 만들기 |
| | |
| | | $scope.vm.form.issuesDown.push(result.data.data); |
| | | |
| | | // 연관 이슈 반복문 |
| | | angular.forEach(result.data.data.issueRelationVos, function (issueRelationVo){ |
| | | issueRelationVo.relationIssueTypeName = $scope.vm.relationIssueTypes[issueRelationVo.relationIssueType].name; |
| | | $scope.vm.form.issues.push(issueRelationVo.issueRelation); |
| | | }); |
| | | if (result.data.data.issueRelationVos !== null) { |
| | | angular.forEach(result.data.data.issueRelationVos, function (issueRelationVo){ |
| | | issueRelationVo.relationIssueTypeName = $scope.vm.relationIssueTypes[issueRelationVo.relationIssueType].name; |
| | | $scope.vm.form.issues.push(issueRelationVo.issueRelation); |
| | | }); |
| | | } |
| | | |
| | | // 하위 이슈 반목문 |
| | | angular.forEach(result.data.data.issueDownVos, function (issueDownVo){ |
| | | $scope.vm.form.issuesDown.push(issueDownVo.issue); |
| | | }); |
| | | |
| | | if (result.data.data.issueDownVos !== null){ |
| | | angular.forEach(result.data.data.issueDownVos, function (issueDownVo){ |
| | | $scope.vm.form.issuesDown.push(issueDownVo.issue); |
| | | }); |
| | | } |
| | | $scope.vm.viewer.issueRelationVos = result.data.data.issueRelationVos; |
| | | $scope.vm.viewer.issueDownVos = result.data.data.issueDownVos; |
| | | |
| | | if ($rootScope.workProject.id > -1) { |
| | | $rootScope.changeLastProject(result.data.data.projectVo.id); |
| | | } |
| | | } |
| | | } |
| | | else { |
| | |
| | | }); |
| | | } |
| | | |
| | | |
| | | // =================================================================================== |
| | | |
| | | // 업체/ISP/호스팅 이름이 포함 여부 확인 |
| | | function containsPartner(name) { |
| | | var result = false; |
| | | // 일단 viewer를 맨위에 선언해 {} 이렇게 선언해 두었는데 값들이 어떤식으로 변환이 됬는지는 |
| | | // 몰라서 배열로 넘어와서 초기값을 배열로 바꾸었더니 이슈 상세에서는 보인다 |
| | | // 이제 이슈 추가에서 값이 어떻게 넘어오는지 확인해보자! |
| | | if ($scope.vm.viewer.usePartnerVos != null) { |
| | | $scope.vm.viewer.usePartnerVos.forEach(function (partnerVo) { |
| | | if (name === partnerVo.name) { |
| | | result = true; |
| | | } |
| | | }); |
| | | } |
| | | return result; |
| | | |
| | | } |
| | | // 이슈 이미지 미리 보기 만들기 |
| | | function makePreviewImages(attachedFileVos) { |
| | | // 미리보기 이미지 초기화 |
| | |
| | | switch (issueTypeCustomField.customFieldVo.customFieldType) { |
| | | case "INPUT" : |
| | | case "SINGLE_SELECT" : |
| | | case "NUMBER" : |
| | | case "DATETIME" : |
| | | case "IP_ADDRESS" : |
| | | case "EMAIL" : |
| | | case "SITE" : |
| | | case "TEL" : |
| | | issueTypeCustomField.useValues = ""; |
| | | break; |
| | | |
| | |
| | | }); |
| | | } |
| | | |
| | | function getPartners() { |
| | | function sendMailVo(partnerVos) { |
| | | $scope.fn.sendMail($scope.fn.getParametersAll(), $scope.fn.getParameters(null, partnerVos)); |
| | | } |
| | | |
| | | HostingField.getPartnerList($resourceProvider.getContent( |
| | | {}, |
| | | $resourceProvider.getPageContent(0, 1))).then(function (result) { |
| | | if (result.data.message.status === "success") { |
| | | $scope.vm.partnerVos = result.data.data.usePartnerVos; |
| | | } |
| | | }); |
| | | |
| | | function sendMailAll() { |
| | | var param = $scope.fn.getParametersAll(); |
| | | $scope.fn.sendMail(param, param); |
| | | } |
| | | |
| | | // 특정 사용자에게 이슈를 메일로 발송 |
| | | function sendMail(issueId, projectId) { |
| | | function sendMail(partnersAll, partners) { |
| | | $uibModal.open({ |
| | | templateUrl : 'views/issue/issueSendMail.html', |
| | | templateUrl : 'views/issue/issueSendMailPartners.html', |
| | | size : "md", |
| | | controller : 'issueSendMailController', |
| | | controller : 'issueSendMailPartnersController', |
| | | backdrop : 'static', |
| | | resolve : { |
| | | parameter : function () { |
| | | return { |
| | | issueId : issueId, |
| | | projectId : projectId |
| | | }; |
| | | parameter : { |
| | | partnersAll : partnersAll, |
| | | partners : partners, |
| | | issueId : $scope.vm.viewer.id, |
| | | projectId : $scope.vm.viewer.projectVo.id, |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | |
| | | 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); |
| | | |
| | | if (params != null && params.length > 0) { |
| | | for (let i = 0; i < params.length; i++) { |
| | | params[i].id = i; |
| | | } |
| | | } |
| | | return params; |
| | | } |
| | | |
| | | function getParameters(sourceArr, partnerVos) { |
| | | var excludeVos = sourceArr != null ? sourceArr.slice() : []; |
| | | |
| | | angular.forEach(partnerVos, function (vo) { |
| | | var account = { |
| | | account : vo.email |
| | | } |
| | | Object.assign(vo, account) |
| | | |
| | | excludeVos.push(vo); |
| | | }); |
| | | |
| | | return excludeVos; |
| | | } |
| | | |
| | | // 변경 정보를 확인한다. |
| | |
| | | } |
| | | }); |
| | | } |
| | | |
| | | } |
| | | ]); |
| | | } |