From 305de5dd5a88baf49b9939fe3233f207f3f7acf8 Mon Sep 17 00:00:00 2001 From: jhjang <jhjang@maprex.co.kr> Date: 목, 25 11월 2021 21:03:04 +0900 Subject: [PATCH] - 이슈 유형에 호스팅/업체/isp 설정 기능 추가 --- src/main/java/kr/wisestone/owl/vo/HostingFieldVo.java | 34 +-- src/main/webapp/views/issueType/issueTypeAdd.html | 24 + src/main/webapp/scripts/components/HostingField/hostingField.service.js | 8 src/main/webapp/views/issueType/issueTypeModify.html | 27 ++ src/main/webapp/scripts/app/issueType/issueTypeModify.controller.js | 23 ++ src/main/java/kr/wisestone/owl/web/form/IssueTypeForm.java | 47 ++-- src/main/java/kr/wisestone/owl/vo/CompanyFieldVo.java | 24 -- src/main/java/kr/wisestone/owl/constant/UseCompany.java | 44 ++++ src/main/java/kr/wisestone/owl/domain/IssueType.java | 31 -- src/main/webapp/scripts/components/utils/autoComplete.controller.js | 36 +++ src/main/java/kr/wisestone/owl/vo/UseCompanyVo.java | 44 ++++ src/main/java/kr/wisestone/owl/vo/IssueTypeVo.java | 33 +-- src/main/webapp/scripts/app/issueType/issueTypeAdd.controller.js | 44 +--- src/main/resources/migration/V1_11__Alter_Table.sql | 4 src/main/java/kr/wisestone/owl/web/controller/HostingFieldController.java | 16 + src/main/java/kr/wisestone/owl/vo/IspFieldVo.java | 24 -- src/main/java/kr/wisestone/owl/service/impl/IssueTypeServiceImpl.java | 34 ++- 17 files changed, 295 insertions(+), 202 deletions(-) diff --git a/src/main/java/kr/wisestone/owl/constant/UseCompany.java b/src/main/java/kr/wisestone/owl/constant/UseCompany.java new file mode 100644 index 0000000..59a8406 --- /dev/null +++ b/src/main/java/kr/wisestone/owl/constant/UseCompany.java @@ -0,0 +1,44 @@ +package kr.wisestone.owl.constant; + +import com.google.common.collect.Lists; +import kr.wisestone.owl.vo.HostingFieldVo; +import kr.wisestone.owl.vo.UseCompanyVo; + +import java.util.List; + +public class UseCompany { + + public static final int USE_COMPANY_HOSTING = 4; // 100 + public static final int USE_COMPANY_ISP = 2; // 010 + public static final int USE_COMPANY_COMPANY = 1; // 001 + + public static String[] Names = {"�뾽泥�", "ISP", "�샇�뒪�똿"}; + public static int[] useCompanies = {USE_COMPANY_COMPANY, USE_COMPANY_ISP, USE_COMPANY_HOSTING}; + + // 沅뚰븳 泥댄겕�썑 HostingFieldVo 媛��졇�삤湲� + public static UseCompanyVo checkUseCompany(int userPermission, int typePermission) + { + if (((userPermission & typePermission) != 0)) { + Long Id = 0L; + if (typePermission != USE_COMPANY_COMPANY) { + Id = typePermission / 2L; + } + + return UseCompanyVo.Create(Id, Names[Id.intValue()]); + } + return null; + } + + // �뾽泥�/ISP/�샇�뒪�똿 �쟾泥� 紐⑸줉 媛��졇�삤湲� + public static List<UseCompanyVo> getCompanyList() { + List<UseCompanyVo> useCompanyVos = Lists.newArrayList(); + + Long index = 0L; + for (String name : UseCompany.Names) { + useCompanyVos.add(UseCompanyVo.Create(index, name)); + index++; + } + return useCompanyVos; + } + +} diff --git a/src/main/java/kr/wisestone/owl/domain/IssueType.java b/src/main/java/kr/wisestone/owl/domain/IssueType.java index d0379b8..cd9fbfc 100644 --- a/src/main/java/kr/wisestone/owl/domain/IssueType.java +++ b/src/main/java/kr/wisestone/owl/domain/IssueType.java @@ -1,5 +1,7 @@ package kr.wisestone.owl.domain; +import org.hibernate.annotations.DynamicInsert; + import javax.persistence.*; import java.io.Serializable; import java.util.HashSet; @@ -9,6 +11,7 @@ * Created by wisestone on 2018-03-07. */ @Entity +@DynamicInsert public class IssueType extends BaseEntity implements Serializable { private static final long serialVersionUID = 1L; @@ -18,9 +21,7 @@ private String name; private String description; private String color; - private String companyYn = "N"; - private String ispYn = "N"; - private String hostingYn = "N"; + private Long useCompany; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "workspace_id") @@ -124,27 +125,11 @@ this.project = project; } - public String getCompanyYn() { - return companyYn; + public Long getUseCompany() { + return useCompany; } - public void setCompanyYn(String companyYn) { - this.companyYn = companyYn; - } - - public String getIspYn() { - return ispYn; - } - - public void setIspYn(String ispYn) { - this.ispYn = ispYn; - } - - public String getHostingYn() { - return hostingYn; - } - - public void setHostingYn(String hostingYn) { - this.hostingYn = hostingYn; + public void setUseCompany(Long useCompany) { + this.useCompany = useCompany; } } diff --git a/src/main/java/kr/wisestone/owl/service/impl/IssueTypeServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/IssueTypeServiceImpl.java index 5e457e9..d8c2d72 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/IssueTypeServiceImpl.java +++ b/src/main/java/kr/wisestone/owl/service/impl/IssueTypeServiceImpl.java @@ -3,7 +3,9 @@ import com.google.common.collect.Lists; import kr.wisestone.owl.common.ExcelConditionCheck; import kr.wisestone.owl.constant.Constants; +import kr.wisestone.owl.constant.MngPermission; import kr.wisestone.owl.constant.MsgConstants; +import kr.wisestone.owl.constant.UseCompany; import kr.wisestone.owl.domain.*; import kr.wisestone.owl.domain.enumType.ProjectType; import kr.wisestone.owl.exception.OwlRuntimeException; @@ -123,18 +125,8 @@ Project project = this.projectService.getProject(issueTypeForm.getProjectId()); issueType.setProject(project); - String Yes = "Y"; - String No = "N"; + issueType.setUseCompany(issueTypeForm.getUseCompany()); - if(!issueTypeForm.getCompanyYn().equals(No)){ - issueType.setCompanyYn(Yes); - } - if(!issueTypeForm.getHostingYn().equals(No)){ - issueType.setHostingYn(Yes); - } - if(!issueTypeForm.getIspYn().equals(No)){ - issueType.setIspYn(Yes); - } return this.issueTypeRepository.saveAndFlush(issueType); } @@ -276,6 +268,18 @@ if (project != null) { issueTypeVo.setProjectVo(ConvertUtil.copyProperties(issueType.getProject(), ProjectVo.class)); } + Integer use = issueType.getUseCompany() != null ? issueType.getUseCompany().intValue() : 0; + + List<UseCompanyVo> useCompanyVos = Lists.newArrayList(); + for (Integer useCompany : UseCompany.useCompanies) { + UseCompanyVo useCompanyVo = UseCompany.checkUseCompany(use, useCompany); + + if (useCompanyVo != null) { + useCompanyVos.add(useCompanyVo); + } + } + + issueTypeVo.setUseCompanyVos(useCompanyVos); /*CompanyField companyField = issueType.getCompanyField(); if(companyField != null){ @@ -317,6 +321,8 @@ Project project = this.projectService.getProject(issueTypeForm.getProjectId()); issueType.setProject(project); + issueType.setUseCompany(issueTypeForm.getUseCompany()); + /*if(issueTypeForm.getCompanyId() != null){ CompanyField companyField = this.companyFieldService.getCompany(issueTypeForm.getCompanyId()); issueType.setCompanyField(companyField); @@ -329,9 +335,9 @@ HostingField hostingField = this.hostingFieldService.getHosting(issueTypeForm.getHostingId()); issueType.setHostingField(hostingField); }*/ - issueType.setCompanyYn(issueTypeForm.getCompanyYn()); - issueType.setIspYn(issueTypeForm.getIspYn()); - issueType.setHostingYn(issueTypeForm.getHostingYn()); +// issueType.setCompanyYn(issueTypeForm.getCompanyYn()); +// issueType.setIspYn(issueTypeForm.getIspYn()); +// issueType.setHostingYn(issueTypeForm.getHostingYn()); this.issueTypeRepository.saveAndFlush(issueType); diff --git a/src/main/java/kr/wisestone/owl/vo/CompanyFieldVo.java b/src/main/java/kr/wisestone/owl/vo/CompanyFieldVo.java index 4d87568..ba8c0be 100644 --- a/src/main/java/kr/wisestone/owl/vo/CompanyFieldVo.java +++ b/src/main/java/kr/wisestone/owl/vo/CompanyFieldVo.java @@ -1,9 +1,7 @@ package kr.wisestone.owl.vo; -public class CompanyFieldVo extends BaseVo{ +public class CompanyFieldVo extends UseCompanyVo{ - private Long id; - private String name; private String manager; private String tel; private String email; @@ -11,30 +9,12 @@ public CompanyFieldVo() {} - public CompanyFieldVo(Long id, String name, String manager, String tel, String email, String memo) { + public CompanyFieldVo(String manager, String tel, String email, String memo) { - this.id = id; - this.name = name; this.manager = manager; this.tel = tel; this.email = email; this.memo = memo; - } - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; } public String getManager() { diff --git a/src/main/java/kr/wisestone/owl/vo/HostingFieldVo.java b/src/main/java/kr/wisestone/owl/vo/HostingFieldVo.java index 6ee9243..8c08f08 100644 --- a/src/main/java/kr/wisestone/owl/vo/HostingFieldVo.java +++ b/src/main/java/kr/wisestone/owl/vo/HostingFieldVo.java @@ -1,34 +1,22 @@ package kr.wisestone.owl.vo; -public class HostingFieldVo extends BaseVo{ +public class HostingFieldVo extends UseCompanyVo { - private Long id; private String code; - private String name; private String manager; private String tel; private String email; private String memo; + private String byName; public HostingFieldVo() {} - public HostingFieldVo(Long id, String code, String name, String manager, String tel, String email, String memo) { - - this.id = id; + public HostingFieldVo(String code, String manager, String tel, String email, String memo) { this.code = code; - this.name = name; this.manager = manager; this.tel = tel; this.email = email; this.memo = memo; - } - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; } public String getCode() { @@ -37,14 +25,6 @@ public void setCode(String code) { this.code = code; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; } public String getManager() { @@ -78,4 +58,12 @@ public void setMemo(String memo) { this.memo = memo; } + + public String getByName() { + return byName; + } + + public void setByName(String byName) { + this.byName = byName; + } } diff --git a/src/main/java/kr/wisestone/owl/vo/IspFieldVo.java b/src/main/java/kr/wisestone/owl/vo/IspFieldVo.java index 654c610..1d2e6f1 100644 --- a/src/main/java/kr/wisestone/owl/vo/IspFieldVo.java +++ b/src/main/java/kr/wisestone/owl/vo/IspFieldVo.java @@ -1,10 +1,8 @@ package kr.wisestone.owl.vo; -public class IspFieldVo extends BaseVo{ +public class IspFieldVo extends UseCompanyVo{ - private Long id; private String code; - private String name; private String manager; private String tel; private String email; @@ -12,23 +10,13 @@ public IspFieldVo() {} - public IspFieldVo(Long id, String code, String name, String manager, String tel, String email, String memo) { + public IspFieldVo(String code, String manager, String tel, String email, String memo) { - this.id = id; this.code = code; - this.name = name; this.manager = manager; this.tel = tel; this.email = email; this.memo = memo; - } - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; } public String getCode() { @@ -37,14 +25,6 @@ public void setCode(String code) { this.code = code; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; } public String getManager() { diff --git a/src/main/java/kr/wisestone/owl/vo/IssueTypeVo.java b/src/main/java/kr/wisestone/owl/vo/IssueTypeVo.java index e74ab58..a23d46e 100644 --- a/src/main/java/kr/wisestone/owl/vo/IssueTypeVo.java +++ b/src/main/java/kr/wisestone/owl/vo/IssueTypeVo.java @@ -1,6 +1,9 @@ package kr.wisestone.owl.vo; +import com.google.common.collect.Lists; import kr.wisestone.owl.domain.Project; + +import java.util.List; /** * Created by wisestone on 2018-05-29. @@ -12,9 +15,9 @@ private String color; private WorkflowVo workflowVo; private ProjectVo projectVo; - private CompanyFieldVo companyFieldVo; - private IspFieldVo ispFieldVo; - private HostingFieldVo hostingFieldVo; + + private List<UseCompanyVo> useCompanyVos = Lists.newArrayList(); + private Boolean modifyPermissionCheck = Boolean.TRUE; // �씠�뒋 �쑀�삎�� 紐⑤뱺 �궗�엺�뱾�씠 �닔�젙, �궘�젣�븷 �닔 �엳�뼱�꽌 湲곕낯 媛믪씠 True public IssueTypeVo(){} @@ -75,27 +78,11 @@ this.projectVo = projectVo; } - public CompanyFieldVo getCompanyFieldVo() { - return companyFieldVo; + public List<UseCompanyVo> getUseCompanyVos() { + return useCompanyVos; } - 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 void setUseCompanyVos(List<UseCompanyVo> useCompanyVos) { + this.useCompanyVos = useCompanyVos; } } diff --git a/src/main/java/kr/wisestone/owl/vo/UseCompanyVo.java b/src/main/java/kr/wisestone/owl/vo/UseCompanyVo.java new file mode 100644 index 0000000..eb3dc69 --- /dev/null +++ b/src/main/java/kr/wisestone/owl/vo/UseCompanyVo.java @@ -0,0 +1,44 @@ +package kr.wisestone.owl.vo; + +public class UseCompanyVo extends BaseVo { + private Long id; + private String name; + private String byName; + + public UseCompanyVo() { + } + + public static UseCompanyVo Create(Long id, String name) { + UseCompanyVo useCompanyVo = new UseCompanyVo(); + useCompanyVo.setName(name); + useCompanyVo.setId(id); + useCompanyVo.setByName(name); + + return useCompanyVo; + } + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getByName() { + return byName; + } + + public void setByName(String byName) { + this.byName = byName; + } +} diff --git a/src/main/java/kr/wisestone/owl/web/controller/HostingFieldController.java b/src/main/java/kr/wisestone/owl/web/controller/HostingFieldController.java index b903c38..db50054 100644 --- a/src/main/java/kr/wisestone/owl/web/controller/HostingFieldController.java +++ b/src/main/java/kr/wisestone/owl/web/controller/HostingFieldController.java @@ -1,7 +1,11 @@ package kr.wisestone.owl.web.controller; +import com.google.common.collect.Lists; import kr.wisestone.owl.constant.Constants; +import kr.wisestone.owl.constant.UseCompany; import kr.wisestone.owl.service.HostingFieldService; +import kr.wisestone.owl.util.ConvertUtil; +import kr.wisestone.owl.vo.HostingFieldVo; import kr.wisestone.owl.web.condition.HostingFieldCondition; import kr.wisestone.owl.web.form.HostingFieldForm; import org.springframework.beans.factory.annotation.Autowired; @@ -17,6 +21,7 @@ import javax.servlet.http.HttpServletRequest; import java.util.HashMap; +import java.util.List; import java.util.Map; @Controller @@ -86,6 +91,17 @@ return this.setSuccessMessage(resJsonData); } + // �뾽泥�/ISP/�샇�뒪�똿 紐⑸줉 媛��졇�삤湲� + @RequestMapping(value = "/company/getCompanyList", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) + public + @ResponseBody + Map<String, Object> getCompanyList(@RequestBody Map<String, Map<String, Object>> params) { + Map<String, Object> resJsonData = new HashMap<>(); + resJsonData.put(Constants.REQ_KEY_CONTENT, UseCompany.getCompanyList()); + + return this.setSuccessMessage(resJsonData); + } + // �뾽泥� �뿊�� �떎�슫濡쒕뱶 @RequestMapping(value = "/hostingField/downloadExcel", method = RequestMethod.POST) diff --git a/src/main/java/kr/wisestone/owl/web/form/IssueTypeForm.java b/src/main/java/kr/wisestone/owl/web/form/IssueTypeForm.java index d903b49..e1b0e2b 100644 --- a/src/main/java/kr/wisestone/owl/web/form/IssueTypeForm.java +++ b/src/main/java/kr/wisestone/owl/web/form/IssueTypeForm.java @@ -1,8 +1,13 @@ package kr.wisestone.owl.web.form; import com.google.common.collect.Lists; +import kr.wisestone.owl.constant.UseCompany; +import kr.wisestone.owl.domain.HostingField; +import kr.wisestone.owl.domain.IssueType; import kr.wisestone.owl.util.ConvertUtil; import kr.wisestone.owl.util.MapUtil; +import kr.wisestone.owl.web.condition.HostingFieldCondition; +import kr.wisestone.owl.web.controller.HostingFieldController; import java.util.List; import java.util.Map; @@ -17,10 +22,8 @@ private String color; private Long workflowId; private Long projectId; - private String companyYn; - private String ispYn; - private String hostingYn; private List<Long> removeIds = Lists.newArrayList(); + private Long useCompany; public IssueTypeForm(){} @@ -29,6 +32,20 @@ if (MapUtil.getLongs(params, "removeIds") != null) { form.setRemoveIds(MapUtil.getLongs(params, "removeIds")); + } + + if (MapUtil.getLongs(params, "companyIds") != null) { +// form.setRemoveIds(MapUtil.getLongs(params, "companyIds")); + List<Long> longs = MapUtil.getLongs(params, "companyIds"); + form.useCompany = 0L; + + for (Long id : longs) { + if (id == UseCompany.USE_COMPANY_COMPANY - 1) { + form.useCompany += 1; + } else { + form.useCompany += id * 2; + } + } } return form; @@ -94,27 +111,11 @@ this.projectId = projectId; } - public String getCompanyYn() { - return companyYn; + public Long getUseCompany() { + return useCompany; } - public void setCompanyYn(String companyYn) { - this.companyYn = companyYn; - } - - public String getIspYn() { - return ispYn; - } - - public void setIspYn(String ispYn) { - this.ispYn = ispYn; - } - - public String getHostingYn() { - return hostingYn; - } - - public void setHostingYn(String hostingYn) { - this.hostingYn = hostingYn; + public void setUseCompany(Long useCompany) { + this.useCompany = useCompany; } } diff --git a/src/main/resources/migration/V1_11__Alter_Table.sql b/src/main/resources/migration/V1_11__Alter_Table.sql index bcd6835..0bfb235 100644 --- a/src/main/resources/migration/V1_11__Alter_Table.sql +++ b/src/main/resources/migration/V1_11__Alter_Table.sql @@ -208,6 +208,4 @@ ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- issue_type �뀒�씠釉� �뾽泥�,ISP,�샇�뒪�똿 而щ읆 異붽� -ALTER TABLE `issue_type` ADD COLUMN `company_yn` VARCHAR(1) NOT NULL DEFAULT 'N'; -ALTER TABLE `issue_type` ADD COLUMN `isp_yn` VARCHAR(1) NOT NULL DEFAULT 'N'; -ALTER TABLE `issue_type` ADD COLUMN `hosting_yn` VARCHAR(1) NOT NULL DEFAULT 'N'; \ No newline at end of file +ALTER TABLE `issue_type` ADD COLUMN `use_company` BIGINT(11) NOT NULL DEFAULT '0'; diff --git a/src/main/webapp/scripts/app/issueType/issueTypeAdd.controller.js b/src/main/webapp/scripts/app/issueType/issueTypeAdd.controller.js index f9f3a04..4dd1907 100644 --- a/src/main/webapp/scripts/app/issueType/issueTypeAdd.controller.js +++ b/src/main/webapp/scripts/app/issueType/issueTypeAdd.controller.js @@ -16,6 +16,7 @@ getProjectListCallBack : getProjectListCallBack, // �봽濡쒖젥�듃 auto complete callback function cancel : cancel, // �뙘�뾽 李� �떕湲� formSubmit : formSubmit, // �뤌 �쟾�넚 + removeUseCompany : removeUseCompany, // �뾽泥�/ISP/�샇�뒪�똿 �궘�젣 formCheck : formCheck // �뤌 泥댄겕 }; @@ -26,13 +27,9 @@ projects : [], // �봽濡쒖젥�듃 description : "", // �꽕紐� color : "#febd35", // �깋�긽 - companyFields : [], // �뾽泥댁젙蹂� - ispFields : [], // ISP �젙蹂� - hostingFields : [] // �샇�뒪�똿�젙蹂� + companies : [] // �뾽泥�/isp/�샇�뒪�똿 �꽑�깮 諛곗뿴 }, companyName : "", - ispId : "", - hostingId : "", projectName : "", workflowName : "", autoCompletePage : { @@ -124,6 +121,12 @@ return false; } + // �뾽泥�/ISP/�샇�뒪�똿 �궘�젣 + function removeUseCompany(index) { + $scope.vm.form.companies.splice(index, 1); + } + + function formSubmit() { $rootScope.spinner = true; @@ -146,33 +149,16 @@ return projectId; })(), - companyId : (function () { - var companyId = ""; + companyIds : (function () { + var companyIds = []; - if ($scope.vm.form.companyFields.length > 0) { - companyId = $scope.vm.form.companyFields[0].id; - } + $scope.vm.form.companies.forEach(function (company) { + companyIds.push(company.id); + }); - return companyId; - }), - ispId : (function () { - var ispId = ""; + return companyIds; + })(), - if ($scope.vm.form.ispFields.length > 0) { - ispId = $scope.vm.form.ispFields[0].id; - } - - return ispId; - }), - hostingId : (function () { - var hostingId = ""; - - if ($scope.vm.form.hostingFields.length > 0) { - hostingId = $scope.vm.form.hostingFields[0].id; - } - - return hostingId; - }), name : $rootScope.preventXss($scope.vm.form.name), description : $rootScope.preventXss($scope.vm.form.description), color : $scope.vm.form.color diff --git a/src/main/webapp/scripts/app/issueType/issueTypeModify.controller.js b/src/main/webapp/scripts/app/issueType/issueTypeModify.controller.js index 9da781c..ab8f228 100644 --- a/src/main/webapp/scripts/app/issueType/issueTypeModify.controller.js +++ b/src/main/webapp/scripts/app/issueType/issueTypeModify.controller.js @@ -17,6 +17,7 @@ cancel : cancel, // �뙘�뾽 李� �떕湲� formSubmit : formSubmit, // �뤌 �쟾�넚 formCheck : formCheck, // �뤌 泥댄겕 + removeUseCompany : removeUseCompany, // �뾽泥�/isp/�샇�뒪�똿 �궘�젣 detail : detail // �긽�꽭 �젙蹂� }; @@ -31,8 +32,10 @@ workflows : [], // �썙�겕�뵆濡쒖슦 projects : [], // �봽濡쒖젥�듃 description : "", // �꽕紐� - color : "" // �깋�긽 + color : "", // �깋�긽 + companies : [] // �뾽泥�/isp/�샇�뒪�똿 �꽑�깮 諛곗뿴 }, + companyName : "", workflowName : "", projectName : "", autoCompletePage : { @@ -98,6 +101,7 @@ angular.extend(this, $controller('autoCompleteController', {$scope : $scope, $injector : $injector})); + function formCheck(formInvalid) { if (formInvalid) { return true; @@ -137,6 +141,15 @@ return projectId; })(), + companyIds : (function () { + var companyIds = []; + + $scope.vm.form.companies.forEach(function (company) { + companyIds.push(company.id); + }); + + return companyIds; + })(), name : $rootScope.preventXss($scope.vm.form.name), description : $rootScope.preventXss($scope.vm.form.description), color : $scope.vm.form.color @@ -175,6 +188,12 @@ $(document).unbind("keydown"); // �떒異뺥궎 �씠踰ㅽ듃 �젣嫄� } + // �뾽泥�/ISP/�샇�뒪�똿 �궘�젣 + function removeUseCompany(index) { + $scope.vm.form.companies.splice(index, 1); + } + + function detail() { $scope.vm.form.workflows = []; @@ -192,6 +211,8 @@ $scope.vm.form.projects.push(result.data.data.projectVo); $scope.vm.projectName = result.data.data.projectVo.name; } + $scope.vm.form.companies = result.data.data.useCompanyVos; + $scope.vm.form.color = result.data.data.color; } } diff --git a/src/main/webapp/scripts/components/HostingField/hostingField.service.js b/src/main/webapp/scripts/components/HostingField/hostingField.service.js index f06551f..e0b36fa 100644 --- a/src/main/webapp/scripts/components/HostingField/hostingField.service.js +++ b/src/main/webapp/scripts/components/HostingField/hostingField.service.js @@ -37,8 +37,14 @@ $log.debug("HostingField �궘�젣 寃곌낵 : ", response); return response; }); + }, + // �뾽泥�/ISP/�샇�뒪�똿 議고쉶 + getCompanyList : function (conditions) { + return $http.post("company/getCompanyList", conditions).then(function (response) { + $log.debug("�뾽泥�/isp/�샇�뒪�똿 紐⑸줉 議고쉶 寃곌낵 : ", response); + return response; + }); } - } } diff --git a/src/main/webapp/scripts/components/utils/autoComplete.controller.js b/src/main/webapp/scripts/components/utils/autoComplete.controller.js index 4178972..c87f50b 100644 --- a/src/main/webapp/scripts/components/utils/autoComplete.controller.js +++ b/src/main/webapp/scripts/components/utils/autoComplete.controller.js @@ -35,6 +35,7 @@ $scope.fn.getIssueDepartmentList = getIssueDepartmentList; // �떞�떦�옄 -> �떞�떦遺��꽌 紐⑸줉 �젙蹂대�� 議고쉶�븳�떎. $scope.fn.getIssueIspFieldList = getIssueIspFieldList; // ISP 紐⑸줉 �젙蹂대�� 議고쉶�븳�떎. $scope.fn.getIssueHostingFieldList = getIssueHostingFieldList; // �샇�뒪�똿 紐⑸줉 �젙蹂대�� 議고쉶�븳�떎. + $scope.fn.getCompanyList = getCompanyList; // �뾽泥�/isp/�샇�뒪�똿 紐⑸줉 議고쉶 function getUserList(query, excludeList, page, callBack) { var conditions = { @@ -316,8 +317,6 @@ var deferred = $q.defer(); - - IspField.find($resourceProvider.getContent( // �럹�씠吏� �뾽�뜲�씠�듃媛� �븘�슂�븳 而댄룷�꼳�듃 �씪寃쎌슦, page �뾽�뜲�씠�듃媛� �엳�쓣 寃쎌슦 湲곕낯 10媛쒖뵫 媛��졇�삤怨� �븘�땺寃쎌슦 25媛쒖뵫 媛��졇�삩�떎. conditions, $resourceProvider.getPageContent($rootScope.isDefined(page) ? page : 0, $rootScope.isDefined(page) ? 10 : 25))).then(function (result) { if (result.data.message.status === "success") { @@ -368,6 +367,39 @@ return deferred.promise; } + + function getCompanyList(query, excludeList, page, callBack) { + var conditions = { + hostingName : query, + excludeIds : (function () { + var excludeIds = []; + + angular.forEach(excludeList, function (exclude) { + excludeIds.push(exclude.id); + }); + + return excludeIds; + })() + }; + + var deferred = $q.defer(); + + HostingField.getCompanyList($resourceProvider.getContent( // �럹�씠吏� �뾽�뜲�씠�듃媛� �븘�슂�븳 而댄룷�꼳�듃 �씪寃쎌슦, page �뾽�뜲�씠�듃媛� �엳�쓣 寃쎌슦 湲곕낯 10媛쒖뵫 媛��졇�삤怨� �븘�땺寃쎌슦 25媛쒖뵫 媛��졇�삩�떎. + conditions, $resourceProvider.getPageContent($rootScope.isDefined(page) ? page : 0, $rootScope.isDefined(page) ? 10 : 25))).then(function (result) { + if (result.data.message.status === "success") { + if ($rootScope.isDefined(callBack)) { + callBack(result); + } + + deferred.resolve(result.data.content); + } + else { + SweetAlert.swal($filter("translate")("common.failedToProjectListLookUp"), result.data.message.message, "error"); // "�봽濡쒖젥�듃 紐⑸줉 議고쉶 �떎�뙣" + } + }); + + return deferred.promise; + } } ]); } diff --git a/src/main/webapp/views/issueType/issueTypeAdd.html b/src/main/webapp/views/issueType/issueTypeAdd.html index a9e6d52..ced6331 100644 --- a/src/main/webapp/views/issueType/issueTypeAdd.html +++ b/src/main/webapp/views/issueType/issueTypeAdd.html @@ -58,15 +58,23 @@ type : '', maxlength : 200, autoResize : false, stopRemoveBodyEvent : true }"></js-autocomplete-single> </div> + <div class="form-group mgb5"> + <label class="issue-label"> <span translate="issue.companyInfo">�뾽泥�/ISP/�샇�뒪�똿 �젙蹂�</span> </label> + <js-autocomplete-multi data-input-name="departments" + selected-model="vm.form.companies" + search="vm.companyName" + source="fn.getCompanyList(vm.companyName, vm.form.companies)" + input-disabled="false" + translation-texts="{ count : 'common.userNum', empty : 'common.emptyUser' }" + extra-settings="{ displayProp : 'byName' , idProp : 'id', imageable : false, maxlength : 100, autoResize : true }"></js-autocomplete-multi> - <div class="form-group"> - <label><span - translate="issue.companyInfo">�뾽泥�/ISP/�샇�뒪�똿 �젙蹂�</span></label> - <ng-dropdown-multiselect class="multiSelect cursor" - data-input-name="issueStatusTypes" - selected-model="vm.search.issueStatusTypes" - extra-settings="{ stringTypeOption : true }" - options="vm.options.emailTemplates"></ng-dropdown-multiselect> + + <div class="select3-selection__choicediv mt-10"> + <span class="select3-selection__choice" ng-repeat="company in vm.form.companies"> + <span>{{company.byName}}</span> <!--�궗�슜�옄媛� �냽�빐 �엳�뒗 遺��꽌 �씠由� 異쒕젰--> + <span class="select3-selection__choice__remove" ng-click="fn.removeUseCompany($index)">횞</span> + </span> + </div> </div> <div class="form-group"> diff --git a/src/main/webapp/views/issueType/issueTypeModify.html b/src/main/webapp/views/issueType/issueTypeModify.html index a43fb0a..53060e2 100644 --- a/src/main/webapp/views/issueType/issueTypeModify.html +++ b/src/main/webapp/views/issueType/issueTypeModify.html @@ -63,17 +63,28 @@ </div> - <div class="form-group"> - <label><span - translate="issue.companyInfo">�뾽泥�/ISP/�샇�뒪�똿 �젙蹂�</span></label> - <ng-dropdown-multiselect class="multiSelect cursor" - data-input-name="issueStatusTypes" - selected-model="vm.search.issueStatusTypes" - extra-settings="{ stringTypeOption : true }" - options="vm.options.emailTemplates"></ng-dropdown-multiselect> + <div class="form-group mgb5"> + <label class="issue-label"> <span translate="issue.companyInfo">�뾽泥�/ISP/�샇�뒪�똿 �젙蹂�</span> </label> + <js-autocomplete-multi data-input-name="departments" + selected-model="vm.form.companies" + search="vm.companyName" + source="fn.getCompanyList(vm.companyName, vm.form.companies)" + input-disabled="false" + translation-texts="{ count : 'common.userNum', empty : 'common.emptyUser' }" + extra-settings="{ displayProp : 'byName' , idProp : 'id', imageable : false, maxlength : 100, autoResize : true }"></js-autocomplete-multi> + + + <div class="select3-selection__choicediv mt-10"> + <span class="select3-selection__choice" ng-repeat="company in vm.form.companies"> + <span>{{company.byName}}</span> <!--�궗�슜�옄媛� �냽�빐 �엳�뒗 遺��꽌 �씠由� 異쒕젰--> + <span class="select3-selection__choice__remove" ng-click="fn.removeUseCompany($index)">횞</span> + </span> + </div> </div> + + <div class="form-group"> <label for="issueTypeModifyForm2"><span translate="common.color">�깋�긽</span> <code class="highlighter-rouge">*</code></label> <div class="input-group"> -- Gitblit v1.8.0