src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java | ●●●●● 패치 | 보기 | raw | blame | 히스토리 | |
src/main/java/kr/wisestone/owl/vo/IssueVo.java | ●●●●● 패치 | 보기 | raw | blame | 히스토리 | |
src/main/webapp/scripts/app/issue/issueAdd.controller.js | ●●●●● 패치 | 보기 | raw | blame | 히스토리 | |
src/main/webapp/scripts/app/issue/issueModify.controller.js | ●●●●● 패치 | 보기 | raw | blame | 히스토리 | |
src/main/webapp/views/issue/issueModify.html | ●●●●● 패치 | 보기 | raw | blame | 히스토리 |
src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java
@@ -792,6 +792,9 @@ issueVo.setIssueStatusVo(ConvertUtil.copyProperties(issue.getIssueStatus(), IssueStatusVo.class)); issueVo.setPriorityVo(ConvertUtil.copyProperties(issue.getPriority(), PriorityVo.class)); issueVo.setSeverityVo(ConvertUtil.copyProperties(issue.getSeverity(), SeverityVo.class)); issueVo.setCompanyFieldVo(ConvertUtil.copyProperties(issue.getCompanyField(), CompanyFieldVo.class)); issueVo.setIspFieldVo(ConvertUtil.copyProperties(issue.getIspFieldId(), IspFieldVo.class)); issueVo.setHostingFieldVo(ConvertUtil.copyProperties(issue.getHostingFieldId(), HostingFieldVo.class)); this.setRegister(issue, issueVo); // 등록자 정보 셋팅 //this.setIssueUser(issue, issueVo); // 담당자 정보 셋팅 @@ -833,6 +836,9 @@ issueVo.setIssueStatusVo(issueStatusVo); issueVo.setPriorityVo(ConvertUtil.copyProperties(issue.getPriority(), PriorityVo.class)); issueVo.setSeverityVo(ConvertUtil.copyProperties(issue.getSeverity(), SeverityVo.class)); issueVo.setCompanyFieldVo(ConvertUtil.copyProperties(issue.getCompanyField(), CompanyFieldVo.class)); issueVo.setIspFieldVo(ConvertUtil.copyProperties(issue.getIspFieldId(), IspFieldVo.class)); issueVo.setHostingFieldVo(ConvertUtil.copyProperties(issue.getHostingFieldId(), HostingFieldVo.class)); this.setRegister(issue, issueVo); // 등록자 정보 셋팅 //this.setIssueUser(issue, issueVo); // 담당자 정보 셋팅 this.setIssueDepartment(issue, issueVo); // 담당부서 정보 셋팅 src/main/java/kr/wisestone/owl/vo/IssueVo.java
@@ -35,6 +35,9 @@ private PriorityVo priorityVo; // 이슈 상세에서 사용 private SeverityVo severityVo; // 이슈 상세에서 사용 private UserVo registerVo; // 이슈 상세에서 사용 private CompanyFieldVo companyFieldVo; // 이슈 상세에서 사용 private IspFieldVo ispFieldVo; // 이슈 상세에서 사용 private HostingFieldVo hostingFieldVo; // 이슈 상세에서 사용 private Boolean modifyPermissionCheck = Boolean.FALSE; private List<UserVo> userVos = Lists.newArrayList(); private List<DepartmentVo> departmentVos = Lists.newArrayList(); //담당부서 추가 @@ -49,6 +52,7 @@ private Long attachedFileCount; private Long issueCommentCount; private String modifyByName; // 변경자 정보 - 이슈 변경 정보 상세 확인에서 사용 private String byName; // 변경자 정보 - 이슈 변경 정보 상세 확인에서 사용 private WorkflowStatusVo workflowStatusVo; private Long parentIssueId; // 상위 일감 @@ -334,6 +338,30 @@ this.registerVo = registerVo; } public CompanyFieldVo getCompanyFieldVo() { return companyFieldVo; } public void setCompanyFieldVo(CompanyFieldVo companyFieldVo) { this.companyFieldVo = companyFieldVo; } public IspFieldVo getIspFieldVo() { return ispFieldVo; } public void setIspFieldVo(IspFieldVo ispFieldVo) { this.ispFieldVo = ispFieldVo; } public HostingFieldVo getHostingFieldVo() { return hostingFieldVo; } public void setHostingFieldVo(HostingFieldVo hostingFieldVo) { this.hostingFieldVo = hostingFieldVo; } public List<IssueHistoryVo> getIssueHistoryVos() { return issueHistoryVos; } @@ -350,6 +378,14 @@ this.modifyByName = modifyByName; } public String getByName() { return byName; } public void setByName(String byName) { this.byName = byName; } public void setWorkflowStatusVo(WorkflowStatusVo workflowStatusVo) { this.workflowStatusVo = workflowStatusVo; } src/main/webapp/scripts/app/issue/issueAdd.controller.js
@@ -372,6 +372,22 @@ var content = { title : $rootScope.preventXss($scope.vm.form.title), // 제목 description : $rootScope.preventXss($scope.vm.form.description), // 내용 // companyManager : $rootScope.preventXss($scope.vm.companyManager), // 내용 companyTel : $rootScope.preventXss($scope.vm.companyTel), // 내용 companyEmail : $rootScope.preventXss($scope.vm.companyEmail), // 내용 companyMemo : $rootScope.preventXss($scope.vm.companyMemo), // 내용 ispCode : $rootScope.preventXss($scope.vm.ispCode), // 내용 ispManager : $rootScope.preventXss($scope.vm.ispManager), // 내용 ispTel : $rootScope.preventXss($scope.vm.ispTel), // 내용 ispEmail : $rootScope.preventXss($scope.vm.ispEmail), // 내용 ispMemo : $rootScope.preventXss($scope.vm.ispMemo), // 내용 hostingCode : $rootScope.preventXss($scope.vm.hostingCode ), // 내용 hostingManager : $rootScope.preventXss($scope.vm.hostingManager), // 내용 hostingTel : $rootScope.preventXss($scope.vm.hostingTel), // 내용 hostingEmail : $rootScope.preventXss($scope.vm.hostingEmail), // 내용 hostingMemo : $rootScope.preventXss($scope.vm.hostingMemo), // 내용 // projectId : (function () { // 프로젝트 아이디 var projectId = ""; src/main/webapp/scripts/app/issue/issueModify.controller.js
@@ -33,7 +33,7 @@ setFormByIssueTypeCustomFields : setFormByIssueTypeCustomFields, // 이슈 유형에 연결된 사용자 정의 필드 정보를 입력 폼에서 사용할 수 있게 가공한다. setUseValueByIssueTypeCustomFields : setUseValueByIssueTypeCustomFields, // 이슈에서 사용자가 선택한 사용자 정의 필드 값을 입력 폼에 셋팅한다. detail : detail, // 이슈 정보 조회 removeManager : removeManager, // 담당자 삭제 // removeManager : removeManager, // 담당자 삭제 removeDepartment : removeDepartment, // 담당부서 삭제 removeUploadFile : removeUploadFile, // 특정 파일을 삭제 setIssueTypeTemplate : setIssueTypeTemplate, // 이슈 유형 템플릿 적용하기 @@ -56,8 +56,8 @@ priorityId : "", // 우선순위 아이디 severityId : "", // 중요도 아이디 issueStatusId : "", // 이슈 상태 아이디 users : [], // 담당자 departments : [], // 딤당부서 // users : [], // 담당자 departments : [], // 담당부서 files : [], // 업로드 파일 attachedFiles : [], // 섬머노트로 파일 업로드를 할 경우 서버에서 pk를 따고 issue id와 연동 작업이 필요하다. startCompleteDateRange : "", // 시작일 ~ 종료일 @@ -85,10 +85,10 @@ hostingEmail : "", // 호스팅 이메일 hostingMemo : "", // 호스팅 비고 autoCompletePage : { user : { page : 0, totalPage : 0 }, // user : { // page : 0, // totalPage : 0 // }, project : { page : 0, totalPage : 0 @@ -122,11 +122,11 @@ angular.extend(this, $controller('autoCompleteController', {$scope : $scope, $injector : $injector})); // 프로젝트가 변경되면 담당자 초기화 // 프로젝트가 변경되면 담당부서 초기화 $scope.$watch("vm.form.projects", function (newValue, oldValue) { if (angular.isDefined(newValue)) { if (newValue.length < 1) { $scope.vm.form.users = []; $scope.vm.form.departments = []; $scope.vm.form.issueCustomFields = []; } else { @@ -158,9 +158,9 @@ } // 담당자 삭제 function removeManager(index) { $scope.vm.form.users.splice(index, 1); } // function removeManager(index) { // $scope.vm.form.users.splice(index, 1); // } // 담당부서 삭제 function removeDepartment(index) { @@ -386,10 +386,6 @@ return projectId; })(), issueTypeId : $scope.vm.form.issueTypeId, // 이슈 유형 아이디 priorityId : $scope.vm.form.priorityId, // 우선순위 아이디 severityId : $scope.vm.form.severityId, // 중요도 아이디 issueStatusId : $scope.vm.form.issueStatusId, // 이슈 상태 아이디 companyId : (function () { // 프로젝트 아이디 var companyId = ""; @@ -418,6 +414,10 @@ return hostingId; })(), issueTypeId : $scope.vm.form.issueTypeId, // 이슈 유형 아이디 priorityId : $scope.vm.form.priorityId, // 우선순위 아이디 severityId : $scope.vm.form.severityId, // 중요도 아이디 issueStatusId : $scope.vm.form.issueStatusId, // 이슈 상태 아이디 userIds : (function () { var userIds = []; @@ -428,7 +428,6 @@ return userIds; })(), removeFiles : $scope.vm.form.removeFiles, departmentIds : (function () { var departmentIds = []; @@ -438,6 +437,7 @@ return departmentIds; })(), removeFiles : $scope.vm.form.removeFiles, attachedFileIds : (function () { var attachedFileIds = []; @@ -668,16 +668,41 @@ if (angular.isDefined(result.data.data)) { $scope.vm.form.title = result.data.data.title; $scope.vm.form.description = result.data.data.description; $scope.vm.form.projects.push(result.data.data.projectVo); $scope.vm.form.departments.push(result.data.data.departmentVo); $scope.vm.projectName = result.data.data.projectVo.name; $scope.vm.departmentName = result.data.data.departmentVo.departmentName; $scope.vm.form.issueTypeId = String(result.data.data.issueTypeVo.id); $scope.vm.form.priorityId = String(result.data.data.priorityVo.id); $scope.vm.form.severityId = String(result.data.data.severityVo.id); $scope.vm.form.issueStatusId = String(result.data.data.issueStatusVo.id); $scope.vm.form.users = result.data.data.userVos; /*$scope.vm.form.users = result.data.data.userVos;*/ $scope.vm.form.departments = result.data.data.departmentVos; $scope.vm.form.files = result.data.data.attachedFileVos; // $scope.vm.form.companyFields.push(result.data.data.companyFieldVo); $scope.vm.companyName = result.data.data.companyFieldVo.name; $scope.vm.companyManager = result.data.data.companyFieldVo.manager; $scope.vm.companyTel = result.data.data.companyFieldVo.tel; $scope.vm.companyEmail = result.data.data.companyFieldVo.email; $scope.vm.companyMemo = result.data.data.companyFieldVo.memo; $scope.vm.form.ispFields.push(result.data.data.ispFieldVo); $scope.vm.ispName = result.data.data.ispFieldVo.name; $scope.vm.ispCode = result.data.data.ispFieldVo.code; $scope.vm.ispManager = result.data.data.ispFieldVo.manager; $scope.vm.ispTel = result.data.data.ispFieldVo.tel; $scope.vm.ispEmail = result.data.data.ispFieldVo.email; $scope.vm.ispMemo = result.data.data.ispFieldVo.memo; $scope.vm.form.hostingFields.push(result.data.data.hostingFieldVo); $scope.vm.hostingName = result.data.data.hostingFieldVo.name; $scope.vm.hostingCode = result.data.data.hostingFieldVo.code; $scope.vm.hostingManager = result.data.data.hostingFieldVo.manager; $scope.vm.hostingTel = result.data.data.hostingFieldVo.tel; $scope.vm.hostingEmail = result.data.data.hostingFieldVo.email; $scope.vm.hostingMemo = result.data.data.hostingFieldVo.memo; if ($rootScope.isDefined(result.data.data.startDate)) { $scope.vm.form.startCompleteDateRange = result.data.data.startDate + " ~ " + result.data.data.completeDate; src/main/webapp/views/issue/issueModify.html
@@ -123,7 +123,7 @@ <div class="col-lg-4"> <div class="form-group mb10"> <label class="issue-label"> <span translate="common.assigneeTeam">담당부서</span> </label> <js-autocomplete-multi data-input-name="department" <js-autocomplete-multi data-input-name="departments" selected-model="vm.form.departments" search="vm.departmentName" source="fn.getIssueDepartmentList(vm.departmentName, vm.form.departments)"