이슈유형 설정에 상위 이슈 업체/ISP/호스팅 상속 기능 추가
| | |
| | | private String description; |
| | | private String color; |
| | | private Long usePartner; |
| | | private Boolean inheritPartners; |
| | | |
| | | @ManyToOne(fetch = FetchType.LAZY) |
| | | @JoinColumn(name = "workspace_id") |
| | |
| | | public void setIssueTypeApiEndStatuses(Set<IssueTypeApiEndStatus> issueTypeApiEndStatuses) { |
| | | this.issueTypeApiEndStatuses = issueTypeApiEndStatuses; |
| | | } |
| | | |
| | | public Boolean getInheritPartners() { |
| | | return inheritPartners; |
| | | } |
| | | |
| | | public void setInheritPartners(Boolean inheritPartners) { |
| | | this.inheritPartners = inheritPartners; |
| | | } |
| | | } |
| | |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import java.io.IOException; |
| | | import java.text.ParseException; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.*; |
| | | import java.util.regex.Pattern; |
| | | |
| | | import static kr.wisestone.owl.domain.enumType.CustomFieldType.*; |
| | | |
| | |
| | | private void setMapToIssueVo(List<Map<String, Object>> results, List<IssueVo> issueVos, IssueCondition issueCondition, User user) { |
| | | for (Map<String, Object> result : results) { |
| | | IssueVo issueVo = ConvertUtil.convertMapToClass(result, IssueVo.class); |
| | | if (MapUtil.getString(result, "inheritPartners") != null && MapUtil.getString(result, "inheritPartners").equals("1")) { |
| | | issueVo.setInheritPartners(true); |
| | | } |
| | | issueVos.add(issueVo); |
| | | issueCondition.addIssueIds(String.valueOf(issueVo.getId())); |
| | | } |
| | |
| | | this.issueIspService.modifyIssueIspField(issue, issueForm, detectIssueChange); |
| | | // HOSTING 정보 저장 |
| | | this.issueHostingService.modifyIssueHostingField(issue, issueForm, detectIssueChange); |
| | | |
| | | // 파트너정보 하위이슈 상속 |
| | | List<Issue> downIssues = this.issueRepository.findByParentIssueId(issue.getId()); |
| | | if (issueForm.getInheritYn() != null && issueForm.getInheritYn() |
| | | && downIssues != null && downIssues.size() > 0) { |
| | | for (Issue downIssue : downIssues) { |
| | | this.inheritPartners(downIssue, issue); |
| | | } |
| | | } |
| | | |
| | | // 이슈 이력 등록 |
| | | if (!StringUtils.isEmpty(detectIssueChange.toString())) { |
| | |
| | | |
| | | issue = this.issueRepository.saveAndFlush(issue); |
| | | |
| | | if (issueForm.getInheritYn() != null && issueForm.getInheritYn() && issue.getParentIssue() != null) { |
| | | // 상위이슈의 파트너 정보 상속 |
| | | this.inheritPartners(issue, issue.getParentIssue()); |
| | | } |
| | | |
| | | saveIssueForm.setId(issue.getId()); |
| | | |
| | | IssueDepartment issueDepartment = new IssueDepartment(); |
| | |
| | | this.issueHistoryService.detectDownIssues(IssueHistoryType.DELETE, issue, sb); |
| | | issue.setParentIssue(null); |
| | | } |
| | | |
| | | if (issueDownForm.getInheritYn() != null && issueDownForm.getInheritYn() && issue.getParentIssue() != null) { |
| | | // 상위이슈의 파트너 정보 상속받기 |
| | | issue = this.inheritPartners(issue, parentIssue); |
| | | } |
| | | |
| | | this.issueHistoryService.addIssueHistory(parentIssue, IssueHistoryType.MODIFY, sb.toString()); //parentIssue = myIssue(기록은 현재 상세페이지에 해야하니까) |
| | | this.issueRepository.saveAndFlush(issue); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 상위이슈의 파트너 정보 상속받기 |
| | | * @param issue Issue |
| | | * @param parentIssue Issue |
| | | * @return Issue |
| | | */ |
| | | private Issue inheritPartners(Issue issue, Issue parentIssue) { |
| | | if (parentIssue != null) { |
| | | if (parentIssue.getIssueType().getInheritPartners()) { |
| | | IssueCompany issueCompany = new IssueCompany(); |
| | | IssueIsp issueIsp = new IssueIsp(); |
| | | IssueHosting issueHosting = new IssueHosting(); |
| | | |
| | | if (parentIssue.getIssueCompanies() != null && parentIssue.getIssueCompanies().size() > 0) { |
| | | issue.getIssueCompanies().clear(); |
| | | issue.getIssueCompanies().addAll(parentIssue.getIssueCompanies()); |
| | | Iterator<IssueCompany> itrCompany = issue.getIssueCompanies().iterator(); |
| | | ConvertUtil.copyProperties(itrCompany.next(), issueCompany, "id"); |
| | | issueCompany.setIssue(issue); |
| | | issueCompany.setCompanyField(parentIssue.getIssueCompanies().iterator().next().getCompanyField()); |
| | | this.issueCompanyRepository.saveAndFlush(issueCompany); |
| | | } else { |
| | | this.issueCompanyRepository.deleteByIssueId(issue.getId()); |
| | | this.issueCompanyRepository.flush(); |
| | | } |
| | | if (parentIssue.getIssueIspFields() != null && parentIssue.getIssueIspFields().size() > 0) { |
| | | issue.getIssueIspFields().clear(); |
| | | issue.getIssueIspFields().addAll(parentIssue.getIssueIspFields()); |
| | | Iterator<IssueIsp> itrIsp = issue.getIssueIspFields().iterator(); |
| | | ConvertUtil.copyProperties(itrIsp.next(), issueIsp, "id"); |
| | | issueIsp.setIssue(issue); |
| | | issueIsp.setIspField(parentIssue.getIssueIspFields().iterator().next().getIspField()); |
| | | this.issueIspRepository.saveAndFlush(issueIsp); |
| | | } else { |
| | | this.issueIspRepository.deleteByIssueId(issue.getId()); |
| | | this.issueIspRepository.flush(); |
| | | } |
| | | if (parentIssue.getIssueHostingFields() != null && parentIssue.getIssueHostingFields().size() > 0) { |
| | | issue.getIssueHostingFields().clear(); |
| | | issue.getIssueHostingFields().addAll(parentIssue.getIssueHostingFields()); |
| | | Iterator<IssueHosting> itrHosting = issue.getIssueHostingFields().iterator(); |
| | | ConvertUtil.copyProperties(itrHosting.next(), issueHosting, "id"); |
| | | issueHosting.setIssue(issue); |
| | | issueHosting.setHostingField(parentIssue.getIssueHostingFields().iterator().next().getHostingField()); |
| | | this.issueHostingRepository.saveAndFlush(issueHosting); |
| | | } else { |
| | | this.issueHostingRepository.deleteByIssueId(issue.getId()); |
| | | this.issueHostingRepository.flush(); |
| | | } |
| | | } |
| | | } |
| | | return issue; |
| | | } |
| | | |
| | | @Override |
| | | public void findPartner(Map<String, Object> resJsonData, Map<String, Object> params) { |
| | | Long issueTypeId = MapUtil.getLong(params, "issueTypeId"); |
| | |
| | | |
| | | issueType.setUsePartner(issueTypeForm.getUsePartner()); |
| | | |
| | | issueType.setInheritPartners(issueTypeForm.getInheritPartners()); |
| | | |
| | | return this.issueTypeRepository.saveAndFlush(issueType); |
| | | } |
| | | |
| | |
| | | |
| | | issueType.setUsePartner(issueTypeForm.getUsePartner()); |
| | | |
| | | issueType.setInheritPartners(issueTypeForm.getInheritPartners()); |
| | | |
| | | /*if(issueTypeForm.getCompanyId() != null){ |
| | | CompanyField companyField = this.companyFieldService.getCompany(issueTypeForm.getCompanyId()); |
| | | issueType.setCompanyField(companyField); |
| | |
| | | |
| | | private Boolean modifyPermissionCheck = Boolean.TRUE; // 이슈 유형은 모든 사람들이 수정, 삭제할 수 있어서 기본 값이 True |
| | | |
| | | private Boolean inheritPartners; |
| | | |
| | | public IssueTypeVo(){} |
| | | |
| | | public Long getId() { |
| | |
| | | public void setUsePartners(Integer usePartners) { |
| | | this.usePartners = usePartners; |
| | | } |
| | | |
| | | public Boolean getInheritPartners() { |
| | | return inheritPartners; |
| | | } |
| | | |
| | | public void setInheritPartners(Boolean inheritPartners) { |
| | | this.inheritPartners = inheritPartners; |
| | | } |
| | | } |
| | |
| | | private int downTotalPage = 1; |
| | | private Long downTotalCount = 0L; |
| | | |
| | | private Boolean inheritPartners; // 파트너정보 상속유무 체크 |
| | | |
| | | public IssueVo(){} |
| | | |
| | | public Long getId() { |
| | |
| | | public void setDownPageNumber(int downPageNumber) { |
| | | this.downPageNumber = downPageNumber; |
| | | } |
| | | |
| | | public Boolean getInheritPartners() { |
| | | return inheritPartners; |
| | | } |
| | | |
| | | public void setInheritPartners(Boolean inheritPartners) { |
| | | this.inheritPartners = inheritPartners; |
| | | } |
| | | } |
| | |
| | | private String isApi = Issue.IS_API_NO; |
| | | private List<String> downIssuesStatus = Lists.newArrayList(); //하위이슈 상태 |
| | | |
| | | private Boolean inheritYn; |
| | | |
| | | public IssueForm() { |
| | | } |
| | | |
| | |
| | | } |
| | | if (MapUtil.getString(params, "hostingMemo") != null) { |
| | | form.setHostingMemo(MapUtil.getString(params, "hostingMemo")); |
| | | } |
| | | |
| | | if (MapUtil.getBoolean(params, "inheritYn") != null) { |
| | | form.setInheritYn(MapUtil.getBoolean(params, "inheritYn")); |
| | | } |
| | | |
| | | return form; |
| | |
| | | public void setStatusName(String statusName) { |
| | | this.statusName = statusName; |
| | | } |
| | | |
| | | public Boolean getInheritYn() { |
| | | return inheritYn; |
| | | } |
| | | |
| | | public void setInheritYn(Boolean inheritYn) { |
| | | this.inheritYn = inheritYn; |
| | | } |
| | | } |
| | |
| | | private Long projectId; |
| | | private List<Long> removeIds = Lists.newArrayList(); |
| | | private Long usePartner; |
| | | private Boolean inheritPartners; |
| | | |
| | | public IssueTypeForm(){} |
| | | |
| | |
| | | } else { |
| | | form.usePartner += id * 2; |
| | | } |
| | | } |
| | | } |
| | | |
| | | if (MapUtil.getString(params, "inheritPartners") != null) { |
| | | if (MapUtil.getString(params, "inheritPartners").equals("true")) { |
| | | form.setInheritPartners(true); |
| | | } else { |
| | | form.setInheritPartners(false); |
| | | } |
| | | } |
| | | |
| | |
| | | public void setUsePartner(Long usePartner) { |
| | | this.usePartner = usePartner; |
| | | } |
| | | |
| | | public Boolean getInheritPartners() { |
| | | return inheritPartners; |
| | | } |
| | | |
| | | public void setInheritPartners(Boolean inheritPartners) { |
| | | this.inheritPartners = inheritPartners; |
| | | } |
| | | } |
New file |
| | |
| | | |
| | | /* issue_type 파트너 상속 true/false */ |
| | | ALTER TABLE `issue_type` ADD COLUMN `inherit_partners` varchar(10) NOT NULL DEFAULT "false"; |
| | |
| | | project.project_key as projectKey, |
| | | issue_type.id as issueTypeId, |
| | | issue_type.name as issueTypeName, |
| | | issue_type.inherit_partners as inheritPartners, |
| | | issue_status.id as issueStatusId, |
| | | issue_status.issue_status_type as issueStatusType, |
| | | issue_status.name as issueStatusName, |
| | |
| | | it.description as description, |
| | | it.color as color, |
| | | it.project_id as projectId, |
| | | it.use_partner AS usePartners |
| | | it.use_partner AS usePartners, |
| | | it.inherit_partners as inheritPartners |
| | | FROM |
| | | issue_type it |
| | | INNER JOIN workspace ws on it.workspace_id = ws.id |
| | |
| | | margin-left: 3rem !important; |
| | | } |
| | | |
| | | .ml--12 { |
| | | margin-left: -12px !important; |
| | | } |
| | | |
| | | .p-0 { |
| | | padding: 0 !important; |
| | | } |
| | |
| | | "notAllowedAttachment": "첨부가 허용되지 않는 파일입니다.", |
| | | "nameErrorAttachment": "첨부 파일명 오류", |
| | | "succeededIssueRegistration": "이슈 등록 성공", |
| | | "succeededDownIssueRegistration": "하위 이슈 등록 성공", |
| | | "failedIssueRegistration": "이슈 등록 실패", |
| | | "failedIssueModify": "이슈 수정 실패", |
| | | "failedToProjectDetails": "프로젝트 상세 정보 조회 실패", |
| | |
| | | "downIssueTitle": "하위 이슈 제목", |
| | | "downIssueType": "하위 이슈 구분", |
| | | "addDownIssue": "하위 이슈 추가", |
| | | "modifyDownIssue": "하위 이슈 변경", |
| | | "downIssueRemove" : "하위 이슈 삭제", |
| | | "failedToIssueAddIssueDown": "하위 이슈 추가 실패", |
| | | "failedToIssueDeleteIssueDown": "하위 이슈 삭제 실패", |
| | | "errorSelectDownIssue" : "하위 이슈가 선택되지 않았습니다.", |
| | | "failedToIssueTypeDefault": "이슈 유형 기본값 조회 실패" |
| | | "failedToIssueTypeDefault": "이슈 유형 기본값 조회 실패", |
| | | "inheritPartners": "업체/ISP/호스팅 정보 상속 여부", |
| | | "wantToInheritPartnersOfParentIssue": "상위이슈의 파트너 정보(업체/ISP/호스팅)를 적용시키겠습니까?" |
| | | }, |
| | | "project": { |
| | | "createProject": "프로젝트 만들기", |
| | |
| | | "failedToReceiveEnquiry": "문의 접수 실패" |
| | | }, |
| | | "common": { |
| | | "ok" : "네", |
| | | "no" : "아니오", |
| | | "allIssueList" : "전체 이슈", |
| | | "urgent": "긴급", |
| | | "high": "높음", |
| | |
| | | }); |
| | | } |
| | | |
| | | // 연관 이슈 추가 |
| | | // 하위 이슈 추가 |
| | | function addDownIssue(downId) { |
| | | /*if ($scope.vm.issueName.length == 0 || $scope.vm.form.issues.length == 0 |
| | | || $scope.vm.issueName != $scope.vm.form.issues[0].title) { |
| | | SweetAlert.error($filter("translate")("issue.errorSelectRelationIssue"), ""); |
| | | return; |
| | | }*/ |
| | | var ids = []; |
| | | let inheritYn = false; |
| | | |
| | | 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; |
| | | } |
| | | |
| | | if (downId != null) { |
| | | ids.push(downId); |
| | | } |
| | | |
| | | var contents = { |
| | | //relationIssueType : $scope.vm.form.relationIssueTypeId, |
| | | // issueId : $rootScope.currentDetailIssueId, |
| | | issueId : parameter.id, |
| | | ids : ids, |
| | | parentIssueId : parameter.id |
| | | parentIssueId : parameter.id, |
| | | inheritYn : inheritYn |
| | | }; |
| | | |
| | | Issue.modifyParentIssue($resourceProvider.getContent( |
| | |
| | | $resourceProvider.getPageContent(0, 10))).then(function (result) { |
| | | |
| | | if (result.data.message.status === "success") { |
| | | SweetAlert.close(); |
| | | // 이슈 상세 화면 요청 |
| | | $rootScope.$broadcast("getIssueDetail", { |
| | | id : parameter.id |
| | | }); |
| | | } |
| | | else { |
| | | SweetAlert.error($filter("translate")("issue.failedToIssueAddIssueDown"), result.data.message.message); // "연관일감 생성 실패" |
| | | SweetAlert.error($filter("translate")("issue.failedToIssueAddIssueDown"), result.data.message.message); // "하위이슈 생성 실패" |
| | | } |
| | | }); |
| | | }); |
| | | } |
| | | |
| | | // 팝업 창 닫기 |
| | |
| | | }, |
| | | }; |
| | | |
| | | $scope.vm.inheritPartners = ""; |
| | | $scope.vm.downTotalCount = ""; |
| | | |
| | | $scope.vm.relResponseData = []; |
| | | $scope.vm.relTableConfigs = []; |
| | | // 테이블 이벤트 |
| | |
| | | return; |
| | | } |
| | | |
| | | 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 |
| | | parentIssueId : $rootScope.currentDetailIssueId, |
| | | inheritYn : inheritYn |
| | | }; |
| | | |
| | | Issue.modifyParentIssue($resourceProvider.getContent( |
| | |
| | | $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); // "연관일감 생성 실패" |
| | | SweetAlert.error($filter("translate")("issue.failedToIssueAddIssueDown"), result.data.message.message); // "하위이슈 생성 실패" |
| | | } |
| | | }); |
| | | }); |
| | | } |
| | | } |
| | | |
| | | // 이슈명을 클릭하면 이슈 상세 정보를 조회한다. |
| | |
| | | if ($rootScope.workProject.id > -1 && result.data.data.projectVo !== null) { |
| | | $rootScope.changeLastProject(result.data.data.projectVo.id); |
| | | } |
| | | |
| | | $scope.vm.inheritPartners = result.data.data.issueTypeVo.inheritPartners; |
| | | $scope.vm.downTotalCount = result.data.data.downTotalCount; |
| | | } |
| | | } |
| | | else { |
| | |
| | | function formSubmit() { |
| | | $rootScope.spinner = true; |
| | | |
| | | let inheritYn = false; |
| | | // 하위이슈 등록 & 파트너 정보 상속 일 경우 알림 창 |
| | | if ($rootScope.isDefined($scope.vm.form.issues) && $rootScope.isDefined($scope.vm.form.issues[0])) { |
| | | if ($scope.vm.form.issues[0].inheritPartners != null && $scope.vm.form.issues[0].inheritPartners === true) { |
| | | |
| | | 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; |
| | | } |
| | | Issue.importExcel({ |
| | | method : "POST", |
| | | file : $scope.vm.form.file, |
| | |
| | | } |
| | | } |
| | | return id; |
| | | })() |
| | | })(), |
| | | inheritYn : inheritYn |
| | | } |
| | | }, |
| | | fileFormDataName : "file" |
| | | fileFormDataName : "file", |
| | | }).then(function (result) { |
| | | if (result.data.message.status === "success") { |
| | | $timeout(function () { |
| | |
| | | $rootScope.spinner = false; |
| | | } |
| | | }); |
| | | }); |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | function cancel() { |
| | |
| | | } |
| | | |
| | | // 이슈 수정 팝업 호출 |
| | | function modify(id) { |
| | | function modify(id, downTotalCount) { |
| | | $uibModal.open({ |
| | | templateUrl : 'views/issue/issueModify.html', |
| | | size : "lg", |
| | |
| | | parameter : function () { |
| | | return { |
| | | id : id, |
| | | issueTypeId : $scope.vm.viewer.issueTypeVo.id |
| | | issueTypeId : $scope.vm.viewer.issueTypeVo.id, |
| | | inheritPartners : $scope.vm.viewer.issueTypeVo.inheritPartners, |
| | | downTotalCount : downTotalCount |
| | | }; |
| | | } |
| | | } |
| | |
| | | priorities : [], // 우선순위 정보 |
| | | severities : [], // 중요도 정보 |
| | | fileTableConfigs : [], // 파일 업로드 정보 테이블 |
| | | inheritPartners : parameter.inheritPartners, |
| | | downTotalCount : parameter.downTotalCount |
| | | }; |
| | | |
| | | // 연관 일감 관련 |
| | |
| | | function formSubmit() { |
| | | $rootScope.spinner = true; |
| | | |
| | | let inheritYn = false; |
| | | if ($scope.vm.inheritPartners && $scope.vm.downTotalCount > 0) { |
| | | SweetAlert.swal({ |
| | | title : $filter("translate")("issue.modifyDownIssue"), // 하위 이슈 변경 |
| | | 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 content = { |
| | | id : parameter.id, |
| | | title : $rootScope.preventXss($scope.vm.form.title), // 제목 |
| | | description : $rootScope.preventXss($scope.vm.form.description), // 내용 |
| | | inheritYn : inheritYn, |
| | | companyName : $scope.vm.companyName, |
| | | companyManager : $scope.vm.companyManager, |
| | | companyTel : $scope.vm.companyTel, |
| | |
| | | |
| | | $rootScope.spinner = false; |
| | | }); |
| | | }); |
| | | } |
| | | } |
| | | |
| | | function cancel() { |
| | |
| | | projects : [], // 프로젝트 |
| | | description : "", // 설명 |
| | | color : "#febd35", // 색상 |
| | | companies : [] // 업체/isp/호스팅 선택 배열 |
| | | companies : [], // 업체/isp/호스팅 선택 배열 |
| | | inheritPartners : true // 파트너 상속 유무 |
| | | }, |
| | | companyName : "", |
| | | projectName : "", |
| | |
| | | |
| | | name : $rootScope.preventXss($scope.vm.form.name), |
| | | description : $rootScope.preventXss($scope.vm.form.description), |
| | | color : $scope.vm.form.color |
| | | color : $scope.vm.form.color, |
| | | inheritPartners : (function () { |
| | | let inheritPartners = false; |
| | | if ($scope.vm.form.inheritPartners) { |
| | | inheritPartners = true; |
| | | } |
| | | return inheritPartners; |
| | | })() |
| | | }; |
| | | |
| | | IssueType.add($resourceProvider.getContent( |
| | |
| | | projects : [], // 프로젝트 |
| | | description : "", // 설명 |
| | | color : "", // 색상 |
| | | companies : [] // 업체/isp/호스팅 선택 배열 |
| | | companies : [], // 업체/isp/호스팅 선택 배열 |
| | | inheritPartners : "" // 파트너 상속 유무 |
| | | }, |
| | | companyName : "", |
| | | workflowName : "", |
| | |
| | | })(), |
| | | name : $rootScope.preventXss($scope.vm.form.name), |
| | | description : $rootScope.preventXss($scope.vm.form.description), |
| | | color : $scope.vm.form.color |
| | | color : $scope.vm.form.color, |
| | | inheritPartners : (function () { |
| | | let inheritPartners = false; |
| | | if ($scope.vm.form.inheritPartners) { |
| | | inheritPartners = true; |
| | | } |
| | | return inheritPartners; |
| | | })() |
| | | }; |
| | | |
| | | IssueType.modify($resourceProvider.getContent( |
| | |
| | | $scope.vm.projectName = result.data.data.projectVo.name; |
| | | } |
| | | $scope.vm.form.companies = result.data.data.usePartnerVos; |
| | | |
| | | $scope.vm.form.color = result.data.data.color; |
| | | $scope.vm.form.inheritPartners = result.data.data.inheritPartners; |
| | | } |
| | | } |
| | | else { |
| | |
| | | <i class="os-icon os-icon-airplay mr-20" ng-click="fn.versionView(vm.viewer.id)" data-toggle="tooltip" data-placement="right" title="이슈 변경 이력 상세 보기"></i> |
| | | <!-- <i class="os-icon os-icon-calendar-time mr-20" ng-if="vm.viewer.modifyPermissionCheck"--> |
| | | <!-- ng-click="fn.reservation(vm.viewer.id)" data-toggle="tooltip" data-placement="right" title="이슈 발생 예약 하기"></i>--> |
| | | <i class="os-icon os-icon-edit-1 mr-20" ng-click="fn.modify(vm.viewer.id)" |
| | | <i class="os-icon os-icon-edit-1 mr-20" ng-click="fn.modify(vm.viewer.id, vm.viewer.downTotalCount)" |
| | | ng-if="vm.viewer.modifyPermissionCheck" data-toggle="tooltip" data-placement="left" title="이슈 수정 하기"></i> |
| | | <!-- 상위 이슈가 있을때 뒤로가기 버튼 생성 --> |
| | | <span ng-if="vm.issueIds[0] != vm.viewer.id && vm.issueIds.length != 0 && vm.issueIds.length != 1" class="issue-close mr-10" ng-click="fn.issueBack()"><i class="os-icon os-icon-arrow-left7" data-toggle="tooltip" data-placement="left" title="이슈 뒤로 이동"></i></span> |
| | |
| | | |
| | | <div class="select3-selection__choicediv mt-10"> |
| | | <span class="select3-selection__choice" ng-repeat="company in vm.form.companies"> |
| | | <span>{{company.byName}}</span> <!--사용자가 속해 있는 부서 이름 출력--> |
| | | <span>{{company.byName}}</span> |
| | | <span class="select3-selection__choice__remove" ng-click="fn.removeUsePartner($index)">×</span> |
| | | </span> |
| | | </div> |
| | | </div> |
| | | |
| | | <div> |
| | | <span class="issue-label mb-0" translate="issue.inheritPartners">파트너 정보 상속</span> |
| | | </div> |
| | | <div class="form-group mt-5 ml--12"> |
| | | <label class='switch ml-3' style=""><input type='checkbox' ng-model='vm.form.inheritPartners'> |
| | | <span class='slider round'></span> |
| | | </label> |
| | | </div> |
| | | |
| | | <div class="form-group"> |
| | | <label for="issueTypeAddForm2"><span translate="common.color">색상</span> <code class="highlighter-rouge">*</code></label> |
| | | <div class="input-group"> |
| | |
| | | |
| | | <div class="select3-selection__choicediv mt-10"> |
| | | <span class="select3-selection__choice" ng-repeat="company in vm.form.companies"> |
| | | <span>{{company.byName}}</span> <!--사용자가 속해 있는 부서 이름 출력--> |
| | | <span>{{company.byName}}</span> |
| | | <span class="select3-selection__choice__remove" ng-click="fn.removeUsePartner($index)">×</span> |
| | | </span> |
| | | </div> |
| | | </div> |
| | | |
| | | |
| | | |
| | | <div> |
| | | <span class="issue-label mb-0" translate="issue.inheritPartners">파트너 정보 상속</span> |
| | | </div> |
| | | <div class="form-group mt-5 ml--12"> |
| | | <label class='switch ml-3' style=""><input type='checkbox' ng-model='vm.form.inheritPartners'> |
| | | <span class='slider round'></span> |
| | | </label> |
| | | </div> |
| | | |
| | | <div class="form-group"> |
| | | <label for="issueTypeModifyForm2"><span translate="common.color">색상</span> <code class="highlighter-rouge">*</code></label> |