From 3b019e5599dfb5d368f4e8fd50fb557f4679a645 Mon Sep 17 00:00:00 2001 From: 이민희 <mhlee@maprex.co.kr> Date: 수, 12 1월 2022 15:19:58 +0900 Subject: [PATCH] 업체/isp/호스팅 기능 개편 --- src/main/java/kr/wisestone/owl/web/form/UsePartnerForm.java | 18 src/main/java/kr/wisestone/owl/web/controller/CompanyFieldCategoryController.java | 44 src/main/java/kr/wisestone/owl/domain/CompanyField.java | 60 + src/main/java/kr/wisestone/owl/mapper/CompanyFieldCategoryMapper.java | 22 src/main/java/kr/wisestone/owl/web/condition/CompanyFieldCategoryCondition.java | 131 ++ src/main/webapp/scripts/app/companyField/companyFieldList.controller.js | 50 src/main/webapp/scripts/app/ispField/ispFieldModify.controller.js | 135 ++ src/main/webapp/views/ispField/ispFieldModify.html | 93 + src/main/java/kr/wisestone/owl/vo/CompanyFieldVo.java | 91 + src/main/java/kr/wisestone/owl/service/impl/CompanyFieldCategoryServiceImpl.java | 96 + src/main/java/kr/wisestone/owl/service/impl/IspFieldServiceImpl.java | 18 src/main/java/kr/wisestone/owl/service/CompanyFieldCategoryService.java | 22 src/main/java/kr/wisestone/owl/web/form/HostingFieldForm.java | 8 src/main/webapp/scripts/app/hostingField/hostingFieldList.controller.js | 25 src/main/java/kr/wisestone/owl/repository/CompanyFieldCategoryRepository.java | 10 src/main/webapp/custom_components/js-autocomplete-single/js-autocomplete-single.js | 2 src/main/webapp/scripts/app/ispField/ispFieldList.controller.js | 25 src/main/java/kr/wisestone/owl/vo/CompanyFieldCategoryVo.java | 60 + src/main/webapp/scripts/main.js | 5 src/main/resources/migration/V1_3__insert_new_data.sql | 7 src/main/webapp/views/hostingField/hostingFieldAdd.html | 94 + src/main/java/kr/wisestone/owl/domain/enumType/CompanyFieldCategoryType.java | 12 src/main/resources/mybatis/query-template/companyField-template.xml | 8 src/main/webapp/scripts/app/companyField/companyFieldModify.controller.js | 271 ++++ src/main/webapp/views/ispField/ispFieldAdd.html | 92 + src/main/webapp/scripts/app/companyField/companyFieldAdd.controller.js | 209 +++ src/main/java/kr/wisestone/owl/constant/MsgConstants.java | 2 src/main/resources/mybatis/query-template/companyFieldCategory-template.xml | 49 src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties | 1 src/main/webapp/views/companyField/companyFieldModify.html | 369 +++-- src/main/webapp/assets/styles/main.css | 4 src/main/webapp/scripts/components/utils/autoComplete.controller.js | 92 + src/main/webapp/scripts/app/hostingField/hostingFieldModify.controller.js | 135 ++ src/main/java/kr/wisestone/owl/service/impl/CompanyFieldServiceImpl.java | 94 + src/main/java/kr/wisestone/owl/web/form/IspFieldForm.java | 8 src/main/java/kr/wisestone/owl/service/impl/HostingFieldServiceImpl.java | 18 src/main/java/kr/wisestone/owl/web/form/CompanyFieldForm.java | 65 + src/main/webapp/i18n/ko/global.json | 23 src/main/webapp/scripts/app/ispField/ispFieldAdd.controller.js | 96 + src/main/webapp/views/hostingField/hostingFieldModify.html | 95 + src/main/java/kr/wisestone/owl/domain/CompanyFieldCategory.java | 74 + src/main/webapp/scripts/app/hostingField/hostingFieldAdd.controller.js | 96 + src/main/webapp/WEB-INF/i18n/code_ko_KR.properties | 5 src/main/webapp/views/companyField/companyFieldAdd.html | 340 +++-- src/main/webapp/scripts/components/companyFieldCategory/companyFieldCategory.service.js | 20 45 files changed, 2,656 insertions(+), 538 deletions(-) diff --git a/src/main/java/kr/wisestone/owl/constant/MsgConstants.java b/src/main/java/kr/wisestone/owl/constant/MsgConstants.java index 7c64dc2..b5c9a1e 100644 --- a/src/main/java/kr/wisestone/owl/constant/MsgConstants.java +++ b/src/main/java/kr/wisestone/owl/constant/MsgConstants.java @@ -245,6 +245,8 @@ public static final String EMAIL_TEMPLATE_NOT_EXIST = "EMAIL_TEMPLATE_NOT_EXIST"; // �씠硫붿씪 �뀥�뵆由우쓣 李얠쓣�닔 �뾾�뒿�땲�떎. + public static final String PARENT_SECTOR_NOT_SELECT = "PARENT_SECTOR_NOT_SELECT"; // �뾽醫�(��遺꾨쪟)瑜� 癒쇱� �꽑�깮 �빐 二쇱꽭�슂. + /** * api �뙆�씪誘명꽣 �삤瑜�(�씠�뒋���엯) */ diff --git a/src/main/java/kr/wisestone/owl/domain/CompanyField.java b/src/main/java/kr/wisestone/owl/domain/CompanyField.java index d733e82..db28cbc 100644 --- a/src/main/java/kr/wisestone/owl/domain/CompanyField.java +++ b/src/main/java/kr/wisestone/owl/domain/CompanyField.java @@ -1,9 +1,6 @@ package kr.wisestone.owl.domain; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; +import javax.persistence.*; import java.io.Serializable; @Entity @@ -21,6 +18,13 @@ private String memo; private Long ispId; private Long hostingId; + + private Long companyTypeId; + private Long parentSectorId; + private Long childSectorId; + private Long regionId; + private Long statusId; + private String statusName; public CompanyField() {} @@ -95,4 +99,52 @@ public void setHostingId(Long hostingId) { this.hostingId = hostingId; } + + public Long getCompanyTypeId() { + return companyTypeId; + } + + public void setCompanyTypeId(Long companyTypeId) { + this.companyTypeId = companyTypeId; + } + + public Long getParentSectorId() { + return parentSectorId; + } + + public void setParentSectorId(Long parentSectorId) { + this.parentSectorId = parentSectorId; + } + + public Long getChildSectorId() { + return childSectorId; + } + + public void setChildSectorId(Long childSectorId) { + this.childSectorId = childSectorId; + } + + public Long getRegionId() { + return regionId; + } + + public void setRegionId(Long regionId) { + this.regionId = regionId; + } + + public Long getStatusId() { + return statusId; + } + + public void setStatusId(Long statusId) { + this.statusId = statusId; + } + + public String getStatusName() { + return statusName; + } + + public void setStatusName(String statusName) { + this.statusName = statusName; + } } diff --git a/src/main/java/kr/wisestone/owl/domain/CompanyFieldCategory.java b/src/main/java/kr/wisestone/owl/domain/CompanyFieldCategory.java new file mode 100644 index 0000000..28fcbfd --- /dev/null +++ b/src/main/java/kr/wisestone/owl/domain/CompanyFieldCategory.java @@ -0,0 +1,74 @@ +package kr.wisestone.owl.domain; + +import jdk.nashorn.internal.objects.annotations.Getter; +import jdk.nashorn.internal.objects.annotations.Setter; +import kr.wisestone.owl.domain.enumType.CompanyFieldCategoryType; +import kr.wisestone.owl.domain.enumType.IssueStatusType; + +import javax.persistence.*; +import java.io.Serializable; +@Entity +public class CompanyFieldCategory extends BaseEntity implements Serializable { + private static final long serialVersionUID = 1L; + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + private String typeCategory; + private String parentId; + private String useValue; + private String description; + + @Enumerated(EnumType.STRING) + private CompanyFieldCategoryType companyFieldCategoryType; + + public CompanyFieldCategory() {} + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getTypeCategory() { + return typeCategory; + } + + public void setTypeCategory(String typeCategory) { + this.typeCategory = typeCategory; + } + + public String getParentId() { + return parentId; + } + + public void setParentId(String parentId) { + this.parentId = parentId; + } + + public String getUseValue() { + return useValue; + } + + public void setUseValue(String useValue) { + this.useValue = useValue; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public CompanyFieldCategoryType getCompanyFieldCategoryType() { + return companyFieldCategoryType; + } + + public void setCompanyFieldCategoryType(CompanyFieldCategoryType companyFieldCategoryType) { + this.companyFieldCategoryType = companyFieldCategoryType; + } +} diff --git a/src/main/java/kr/wisestone/owl/domain/enumType/CompanyFieldCategoryType.java b/src/main/java/kr/wisestone/owl/domain/enumType/CompanyFieldCategoryType.java new file mode 100644 index 0000000..c5395d0 --- /dev/null +++ b/src/main/java/kr/wisestone/owl/domain/enumType/CompanyFieldCategoryType.java @@ -0,0 +1,12 @@ +package kr.wisestone.owl.domain.enumType; + +/** + * Created by wisestone on 2018-03-09. + */ +public enum CompanyFieldCategoryType { + COMPANYTYPE, + PARENTSECTOR, + CHILDSECTOR, + REGION, + STATUS +} diff --git a/src/main/java/kr/wisestone/owl/mapper/CompanyFieldCategoryMapper.java b/src/main/java/kr/wisestone/owl/mapper/CompanyFieldCategoryMapper.java new file mode 100644 index 0000000..8f2baab --- /dev/null +++ b/src/main/java/kr/wisestone/owl/mapper/CompanyFieldCategoryMapper.java @@ -0,0 +1,22 @@ +package kr.wisestone.owl.mapper; + +import kr.wisestone.owl.domain.CompanyFieldCategory; +import kr.wisestone.owl.web.condition.CompanyFieldCategoryCondition; +import kr.wisestone.owl.web.condition.CompanyFieldCondition; +import org.springframework.stereotype.Repository; + +import java.util.List; +import java.util.Map; + +/** + * Created by wisestone on 2018-02-26. + */ +@Repository +public interface CompanyFieldCategoryMapper { + List<Map<String, Object>> find(CompanyFieldCategoryCondition companyFieldCategoryCondition); + + Long count(CompanyFieldCategoryCondition companyFieldCategoryCondition); + + CompanyFieldCategory findById(Long id); + +} diff --git a/src/main/java/kr/wisestone/owl/repository/CompanyFieldCategoryRepository.java b/src/main/java/kr/wisestone/owl/repository/CompanyFieldCategoryRepository.java new file mode 100644 index 0000000..d041eb8 --- /dev/null +++ b/src/main/java/kr/wisestone/owl/repository/CompanyFieldCategoryRepository.java @@ -0,0 +1,10 @@ +package kr.wisestone.owl.repository; + +import kr.wisestone.owl.domain.CompanyField; +import kr.wisestone.owl.domain.CompanyFieldCategory; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.repository.query.Param; + +public interface CompanyFieldCategoryRepository extends JpaRepository<CompanyFieldCategory, Long> { + +} diff --git a/src/main/java/kr/wisestone/owl/service/CompanyFieldCategoryService.java b/src/main/java/kr/wisestone/owl/service/CompanyFieldCategoryService.java new file mode 100644 index 0000000..6567213 --- /dev/null +++ b/src/main/java/kr/wisestone/owl/service/CompanyFieldCategoryService.java @@ -0,0 +1,22 @@ +package kr.wisestone.owl.service; + +import kr.wisestone.owl.domain.CompanyField; +import kr.wisestone.owl.domain.CompanyFieldCategory; +import kr.wisestone.owl.vo.CompanyFieldCategoryVo; +import kr.wisestone.owl.vo.CompanyFieldVo; +import kr.wisestone.owl.web.condition.CompanyFieldCategoryCondition; +import kr.wisestone.owl.web.condition.CompanyFieldCondition; +import kr.wisestone.owl.web.form.CompanyFieldForm; +import org.springframework.data.domain.Pageable; +import org.springframework.ui.Model; +import org.springframework.web.servlet.ModelAndView; + +import javax.servlet.http.HttpServletRequest; +import java.util.List; +import java.util.Map; + +public interface CompanyFieldCategoryService { + List<CompanyFieldCategoryVo> find(Map<String, Object> resJsonData, CompanyFieldCategoryCondition condition, Pageable pageable); + + CompanyFieldCategory find(Long id); +} diff --git a/src/main/java/kr/wisestone/owl/service/impl/CompanyFieldCategoryServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/CompanyFieldCategoryServiceImpl.java new file mode 100644 index 0000000..0601504 --- /dev/null +++ b/src/main/java/kr/wisestone/owl/service/impl/CompanyFieldCategoryServiceImpl.java @@ -0,0 +1,96 @@ +package kr.wisestone.owl.service.impl; + +import com.google.common.collect.Lists; +import kr.wisestone.owl.common.ExcelConditionCheck; +import kr.wisestone.owl.constant.Constants; +import kr.wisestone.owl.constant.MsgConstants; +import kr.wisestone.owl.domain.CompanyField; +import kr.wisestone.owl.domain.CompanyFieldCategory; +import kr.wisestone.owl.domain.HostingField; +import kr.wisestone.owl.domain.IspField; +import kr.wisestone.owl.exception.OwlRuntimeException; +import kr.wisestone.owl.mapper.CompanyFieldCategoryMapper; +import kr.wisestone.owl.mapper.CompanyFieldMapper; +import kr.wisestone.owl.repository.CompanyFieldCategoryRepository; +import kr.wisestone.owl.repository.CompanyFieldRepository; +import kr.wisestone.owl.repository.HostingFieldRepository; +import kr.wisestone.owl.repository.IspFieldRepository; +import kr.wisestone.owl.service.*; +import kr.wisestone.owl.util.ConvertUtil; +import kr.wisestone.owl.vo.*; +import kr.wisestone.owl.web.condition.CompanyFieldCategoryCondition; +import kr.wisestone.owl.web.condition.CompanyFieldCondition; +import kr.wisestone.owl.web.condition.HostingFieldCondition; +import kr.wisestone.owl.web.form.CompanyFieldForm; +import kr.wisestone.owl.web.view.ExcelView; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.ui.Model; +import org.springframework.web.servlet.ModelAndView; + +import javax.servlet.http.HttpServletRequest; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class CompanyFieldCategoryServiceImpl extends AbstractServiceImpl<CompanyFieldCategory, Long, JpaRepository<CompanyFieldCategory, Long>> implements CompanyFieldCategoryService { + + @Autowired + private CompanyFieldCategoryRepository companyFieldCategoryRepository; + + @Autowired + private CompanyFieldCategoryMapper companyFieldCategoryMapper; + + @Override + protected JpaRepository<CompanyFieldCategory, Long> getRepository() { + return this.companyFieldCategoryRepository; + } + + @Override + public List<CompanyFieldCategoryVo> find(Map<String, Object> resJsonData, CompanyFieldCategoryCondition condition, Pageable pageable) { + condition.setPage(pageable.getPageNumber() * pageable.getPageSize()); + condition.setPageSize(pageable.getPageSize()); + + List<Map<String, Object>> results = Lists.newArrayList(); + Long totalCount = 0L; + + if (condition.getTypeCategory() != null && !condition.getTypeCategory().equals("")) { + if(condition.getTypeCategory().equals("CHILDSECTOR") + && (condition.getParentId() == null || condition.getParentId().equals(""))){ + throw new OwlRuntimeException( + this.messageAccessor.getMessage(MsgConstants.PARENT_SECTOR_NOT_SELECT)); + } + results = this.companyFieldCategoryMapper.find(condition); + totalCount = this.companyFieldCategoryMapper.count(condition); + } + + return this.convertCompanyFieldCategoryVoToMap(results, totalCount, pageable, resJsonData); + } + + public CompanyFieldCategory find(Long id) { + return this.companyFieldCategoryMapper.findById(id); + } + + // 寃��깋 寃곌낵瑜� Vo 濡� 蹂��솚�븳�떎. + private List<CompanyFieldCategoryVo> convertCompanyFieldCategoryVoToMap(List<Map<String, Object>> results, Long totalCount, Pageable pageable, Map<String, Object> resJsonData) { + List<CompanyFieldCategoryVo> companyFieldCategoryVos = Lists.newArrayList(); + + for (Map<String, Object> result : results) { + CompanyFieldCategoryVo companyFieldCategoryVo = ConvertUtil.convertMapToClass(result, CompanyFieldCategoryVo.class); + companyFieldCategoryVos.add(companyFieldCategoryVo); + } + + int totalPage = (int) Math.ceil((totalCount - 1) / pageable.getPageSize()) + 1; + + resJsonData.put(Constants.RES_KEY_CONTENTS, companyFieldCategoryVos); + resJsonData.put(Constants.REQ_KEY_PAGE_VO, new ResPage(pageable.getPageNumber(), pageable.getPageSize(), + totalPage, totalCount)); + + return companyFieldCategoryVos; + } +} diff --git a/src/main/java/kr/wisestone/owl/service/impl/CompanyFieldServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/CompanyFieldServiceImpl.java index 8a39129..12d42d4 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/CompanyFieldServiceImpl.java +++ b/src/main/java/kr/wisestone/owl/service/impl/CompanyFieldServiceImpl.java @@ -4,6 +4,8 @@ import kr.wisestone.owl.repository.HostingFieldRepository; import kr.wisestone.owl.repository.IspFieldRepository; import kr.wisestone.owl.service.*; +import kr.wisestone.owl.util.CommonUtil; +import kr.wisestone.owl.web.condition.CompanyFieldCategoryCondition; import kr.wisestone.owl.web.condition.CompanyFieldCondition; import kr.wisestone.owl.web.form.CompanyFieldForm; import org.apache.commons.lang3.StringUtils; @@ -26,10 +28,7 @@ import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Optional; +import java.util.*; @Service public class CompanyFieldServiceImpl extends AbstractServiceImpl<CompanyField, Long, JpaRepository<CompanyField, Long>> implements CompanyFieldService { @@ -53,6 +52,9 @@ private HostingFieldService hostingFieldService; @Autowired + private CompanyFieldCategoryService companyFieldCategoryService; + + @Autowired private UserService userService; @Autowired @@ -74,6 +76,15 @@ public CompanyField addCompany(CompanyFieldForm companyFieldForm) { // url �쑀�슚�꽦 泥댄겕 this.verifyUrl(companyFieldForm.getUrl(), null); + + if (companyFieldForm.getTelList() != null && companyFieldForm.getTelList().size() > 0) { + String[] tels = ConvertUtil.ToArray(companyFieldForm.getTelList()); + companyFieldForm.setTel(Arrays.toString(tels)); + } + if (companyFieldForm.getEmailList() != null && companyFieldForm.getEmailList().size() > 0) { + String[] emails = ConvertUtil.ToArray(companyFieldForm.getEmailList()); + companyFieldForm.setEmail(Arrays.toString(emails)); + } CompanyField companyField = ConvertUtil.copyProperties(companyFieldForm, CompanyField.class); companyFieldRepository.saveAndFlush(companyField); @@ -131,15 +142,46 @@ Long companyId = companyFieldCondition.getId(); if (companyId != null) { CompanyField companyField = this.getCompany(companyId); - if(companyField.getIspId() != null){ + if(companyField.getIspId() != null && companyField.getIspId() != -1){ ispField = this.ispFieldRepository.getOne(companyField.getIspId()); } - if(companyField.getHostingId() != null){ + if(companyField.getHostingId() != null && companyField.getHostingId() != -1){ hostingField = this.hostingFieldRepository.getOne(companyField.getHostingId()); } companyFieldVo = ConvertUtil.copyProperties(companyField, CompanyFieldVo.class); ispFieldVo = ConvertUtil.copyProperties(ispField, IspFieldVo.class); hostingFieldVo = ConvertUtil.copyProperties(hostingField, HostingFieldVo.class); + + if (companyField.getCompanyTypeId() != null && companyField.getCompanyTypeId() != -1) { + CompanyFieldCategory companyType = this.companyFieldCategoryService.find(companyField.getCompanyTypeId()); + if (companyType != null) { + companyFieldVo.setCompanyTypeName(companyType.getUseValue()); + } + } + if (companyField.getParentSectorId() != null && companyField.getParentSectorId() != -1) { + CompanyFieldCategory parentSector = this.companyFieldCategoryService.find(companyField.getParentSectorId()); + if (parentSector != null) { + companyFieldVo.setParentSectorName(parentSector.getUseValue()); + } + } + if (companyField.getChildSectorId() != null && companyField.getChildSectorId() != -1) { + CompanyFieldCategory childSector = this.companyFieldCategoryService.find(companyField.getChildSectorId()); + if (childSector != null) { + companyFieldVo.setChildSectorName(childSector.getUseValue()); + } + } + if (companyField.getRegionId() != null && companyField.getRegionId() != -1) { + CompanyFieldCategory region = this.companyFieldCategoryService.find(companyField.getRegionId()); + if (region != null) { + companyFieldVo.setRegionName(region.getUseValue()); + } + } + /*if (companyField.getStatusId() != null && companyField.getStatusId() != -1) { + CompanyFieldCategory status = this.companyFieldCategoryService.find(companyField.getStatusId()); + if (status != null) { + companyFieldVo.setStatusName(status.getUseValue()); + } + }*/ companyFieldVo.setIspFieldVo(ispFieldVo); companyFieldVo.setHostingFieldVo(hostingFieldVo); @@ -152,6 +194,15 @@ public void modifyCompany(CompanyFieldForm companyFieldForm) { // url �쑀�슚�꽦 泥댄겕 this.verifyUrl(companyFieldForm.getUrl(), companyFieldForm.getId()); + + if (companyFieldForm.getTelList() != null && companyFieldForm.getTelList().size() > 0) { + String[] tels = ConvertUtil.ToArray(companyFieldForm.getTelList()); + companyFieldForm.setTel(Arrays.toString(tels)); + } + if (companyFieldForm.getEmailList() != null && companyFieldForm.getEmailList().size() > 0) { + String[] emails = ConvertUtil.ToArray(companyFieldForm.getEmailList()); + companyFieldForm.setEmail(Arrays.toString(emails)); + } CompanyField companyField = ConvertUtil.copyProperties(companyFieldForm, CompanyField.class); companyFieldRepository.saveAndFlush(companyField); @@ -198,6 +249,11 @@ excelInfo.addAttrInfos(new ExportExcelAttrVo("tel", this.messageAccessor.message("companyField.companyTel"), 10, ExportExcelAttrVo.ALIGN_CENTER)); excelInfo.addAttrInfos(new ExportExcelAttrVo("email", this.messageAccessor.message("companyField.companyEmail"), 10, ExportExcelAttrVo.ALIGN_CENTER)); excelInfo.addAttrInfos(new ExportExcelAttrVo("url", this.messageAccessor.message("companyField.companyUrl"), 10, ExportExcelAttrVo.ALIGN_CENTER)); + excelInfo.addAttrInfos(new ExportExcelAttrVo("companyTypeName", this.messageAccessor.message("companyField.companyTypeName"), 10, ExportExcelAttrVo.ALIGN_CENTER)); + excelInfo.addAttrInfos(new ExportExcelAttrVo("parentSectorName", this.messageAccessor.message("companyField.parentSectorName"), 10, ExportExcelAttrVo.ALIGN_CENTER)); + excelInfo.addAttrInfos(new ExportExcelAttrVo("childSectorName", this.messageAccessor.message("companyField.childSectorName"), 10, ExportExcelAttrVo.ALIGN_CENTER)); + excelInfo.addAttrInfos(new ExportExcelAttrVo("regionName", this.messageAccessor.message("companyField.regionName"), 10, ExportExcelAttrVo.ALIGN_CENTER)); + excelInfo.addAttrInfos(new ExportExcelAttrVo("statusName", this.messageAccessor.message("companyField.statusName"), 10, ExportExcelAttrVo.ALIGN_CENTER)); excelInfo.addAttrInfos(new ExportExcelAttrVo("memo", this.messageAccessor.message("companyField.companyMemo"), 10, ExportExcelAttrVo.ALIGN_CENTER)); excelInfo.setDatas(companyFieldVos); @@ -212,6 +268,32 @@ for (Map<String, Object> result : results) { CompanyFieldVo companyFieldVo = ConvertUtil.convertMapToClass(result, CompanyFieldVo.class); + + if (companyFieldVo.getCompanyTypeId() != null && companyFieldVo.getCompanyTypeId() != -1) { + CompanyFieldCategory companyType = this.companyFieldCategoryService.find(companyFieldVo.getCompanyTypeId()); + if (companyType != null) { + companyFieldVo.setCompanyTypeName(companyType.getUseValue()); + } + } + if (companyFieldVo.getParentSectorId() != null && companyFieldVo.getParentSectorId() != -1) { + CompanyFieldCategory parentSector = this.companyFieldCategoryService.find(companyFieldVo.getParentSectorId()); + if (parentSector != null) { + companyFieldVo.setParentSectorName(parentSector.getUseValue()); + } + } + if (companyFieldVo.getChildSectorId() != null && companyFieldVo.getChildSectorId() != -1) { + CompanyFieldCategory childSector = this.companyFieldCategoryService.find(companyFieldVo.getChildSectorId()); + if (childSector != null) { + companyFieldVo.setChildSectorName(childSector.getUseValue()); + } + } + if (companyFieldVo.getRegionId() != null && companyFieldVo.getRegionId() != -1) { + CompanyFieldCategory region = this.companyFieldCategoryService.find(companyFieldVo.getRegionId()); + if (region != null) { + companyFieldVo.setRegionName(region.getUseValue()); + } + } + if(companyFieldVo.getIspId() != null && companyFieldVo.getIspId() != -1){ IspField ispField = this.ispFieldService.getIsp(companyFieldVo.getIspId()); if(ispField != null){ diff --git a/src/main/java/kr/wisestone/owl/service/impl/HostingFieldServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/HostingFieldServiceImpl.java index d2038a4..73d49c4 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/HostingFieldServiceImpl.java +++ b/src/main/java/kr/wisestone/owl/service/impl/HostingFieldServiceImpl.java @@ -28,6 +28,7 @@ import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; +import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -58,6 +59,15 @@ // Hosting 異붽� @Override public HostingField add(HostingFieldForm HostingFieldForm) { + if (HostingFieldForm.getTelList() != null && HostingFieldForm.getTelList().size() > 0) { + String[] tels = ConvertUtil.ToArray(HostingFieldForm.getTelList()); + HostingFieldForm.setTel(Arrays.toString(tels)); + } + if (HostingFieldForm.getEmailList() != null && HostingFieldForm.getEmailList().size() > 0) { + String[] emails = ConvertUtil.ToArray(HostingFieldForm.getEmailList()); + HostingFieldForm.setEmail(Arrays.toString(emails)); + } + HostingField hostingField = ConvertUtil.copyProperties(HostingFieldForm, HostingField.class); if (hostingField.getCode() != null && !hostingField.getCode().equals("")) { hostingFieldRepository.saveAndFlush(hostingField); @@ -100,6 +110,14 @@ // Hosting �젙濡쒕�� �닔�젙�븳�떎. @Override public void modify(HostingFieldForm HostingFieldForm) { + if (HostingFieldForm.getTelList() != null && HostingFieldForm.getTelList().size() > 0) { + String[] tels = ConvertUtil.ToArray(HostingFieldForm.getTelList()); + HostingFieldForm.setTel(Arrays.toString(tels)); + } + if (HostingFieldForm.getEmailList() != null && HostingFieldForm.getEmailList().size() > 0) { + String[] emails = ConvertUtil.ToArray(HostingFieldForm.getEmailList()); + HostingFieldForm.setEmail(Arrays.toString(emails)); + } HostingField HostingField = ConvertUtil.copyProperties(HostingFieldForm, HostingField.class); hostingFieldRepository.saveAndFlush(HostingField); } diff --git a/src/main/java/kr/wisestone/owl/service/impl/IspFieldServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/IspFieldServiceImpl.java index 054459d..ff3f903 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/IspFieldServiceImpl.java +++ b/src/main/java/kr/wisestone/owl/service/impl/IspFieldServiceImpl.java @@ -28,6 +28,7 @@ import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; +import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -58,6 +59,15 @@ // Isp 異붽� @Override public IspField add(IspFieldForm IspFieldForm) { + if (IspFieldForm.getTelList() != null && IspFieldForm.getTelList().size() > 0) { + String[] tels = ConvertUtil.ToArray(IspFieldForm.getTelList()); + IspFieldForm.setTel(Arrays.toString(tels)); + } + if (IspFieldForm.getEmailList() != null && IspFieldForm.getEmailList().size() > 0) { + String[] emails = ConvertUtil.ToArray(IspFieldForm.getEmailList()); + IspFieldForm.setEmail(Arrays.toString(emails)); + } + IspField ispField = ConvertUtil.copyProperties(IspFieldForm, IspField.class); if (ispField.getCode() != null && !ispField.getCode().equals("")) { ispFieldRepository.saveAndFlush(ispField); @@ -100,7 +110,13 @@ // Isp �젙濡쒕�� �닔�젙�븳�떎. @Override public void modify(IspFieldForm IspFieldForm) { - if(IspFieldForm.getUrl() != null){ + if (IspFieldForm.getTelList() != null && IspFieldForm.getTelList().size() > 0) { + String[] tels = ConvertUtil.ToArray(IspFieldForm.getTelList()); + IspFieldForm.setTel(Arrays.toString(tels)); + } + if (IspFieldForm.getEmailList() != null && IspFieldForm.getEmailList().size() > 0) { + String[] emails = ConvertUtil.ToArray(IspFieldForm.getEmailList()); + IspFieldForm.setEmail(Arrays.toString(emails)); } IspField IspField = ConvertUtil.copyProperties(IspFieldForm, IspField.class); diff --git a/src/main/java/kr/wisestone/owl/vo/CompanyFieldCategoryVo.java b/src/main/java/kr/wisestone/owl/vo/CompanyFieldCategoryVo.java new file mode 100644 index 0000000..86defa4 --- /dev/null +++ b/src/main/java/kr/wisestone/owl/vo/CompanyFieldCategoryVo.java @@ -0,0 +1,60 @@ +package kr.wisestone.owl.vo; + +public class CompanyFieldCategoryVo extends UsePartnerVo { + + private Long id; + private String typeCategory; + private String parentId; + private String useValue; + private String description; + + public CompanyFieldCategoryVo() {} + + public CompanyFieldCategoryVo(String typeCategory, String parentId, String useValue) { + this.typeCategory = typeCategory; + this.parentId = parentId; + this.useValue = useValue; + } + + @Override + public Long getId() { + return id; + } + + @Override + public void setId(Long id) { + this.id = id; + } + + public String getTypeCategory() { + return typeCategory; + } + + public void setTypeCategory(String typeCategory) { + this.typeCategory = typeCategory; + } + + public String getParentId() { + return parentId; + } + + public void setParentId(String parentId) { + this.parentId = parentId; + } + + public String getUseValue() { + return useValue; + } + + public void setUseValue(String useValue) { + this.useValue = useValue; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } +} diff --git a/src/main/java/kr/wisestone/owl/vo/CompanyFieldVo.java b/src/main/java/kr/wisestone/owl/vo/CompanyFieldVo.java index 5005a50..3ac93c8 100644 --- a/src/main/java/kr/wisestone/owl/vo/CompanyFieldVo.java +++ b/src/main/java/kr/wisestone/owl/vo/CompanyFieldVo.java @@ -14,6 +14,17 @@ private Long ispId; private Long hostingId; + private Long companyTypeId; + private Long parentSectorId; + private Long childSectorId; + private Long regionId; + private Long statusId; + private String companyTypeName; + private String parentSectorName; + private String childSectorName; + private String regionName; + private String statusName; + private IspFieldVo ispFieldVo; private HostingFieldVo hostingFieldVo; @@ -98,4 +109,84 @@ public void setHostingId(Long hostingId) { this.hostingId = hostingId; } + + public Long getCompanyTypeId() { + return companyTypeId; + } + + public void setCompanyTypeId(Long companyTypeId) { + this.companyTypeId = companyTypeId; + } + + public Long getParentSectorId() { + return parentSectorId; + } + + public void setParentSectorId(Long parentSectorId) { + this.parentSectorId = parentSectorId; + } + + public Long getChildSectorId() { + return childSectorId; + } + + public void setChildSectorId(Long childSectorId) { + this.childSectorId = childSectorId; + } + + public Long getRegionId() { + return regionId; + } + + public void setRegionId(Long regionId) { + this.regionId = regionId; + } + + public Long getStatusId() { + return statusId; + } + + public void setStatusId(Long statusId) { + this.statusId = statusId; + } + + public String getCompanyTypeName() { + return companyTypeName; + } + + public void setCompanyTypeName(String companyTypeName) { + this.companyTypeName = companyTypeName; + } + + public String getParentSectorName() { + return parentSectorName; + } + + public void setParentSectorName(String parentSectorName) { + this.parentSectorName = parentSectorName; + } + + public String getChildSectorName() { + return childSectorName; + } + + public void setChildSectorName(String childSectorName) { + this.childSectorName = childSectorName; + } + + public String getRegionName() { + return regionName; + } + + public void setRegionName(String regionName) { + this.regionName = regionName; + } + + public String getStatusName() { + return statusName; + } + + public void setStatusName(String statusName) { + this.statusName = statusName; + } } diff --git a/src/main/java/kr/wisestone/owl/web/condition/CompanyFieldCategoryCondition.java b/src/main/java/kr/wisestone/owl/web/condition/CompanyFieldCategoryCondition.java new file mode 100644 index 0000000..9bf326b --- /dev/null +++ b/src/main/java/kr/wisestone/owl/web/condition/CompanyFieldCategoryCondition.java @@ -0,0 +1,131 @@ +package kr.wisestone.owl.web.condition; + +import kr.wisestone.owl.util.ConvertUtil; + +import java.util.Map; + +public class CompanyFieldCategoryCondition { + private Long id; + private String typeCategory; + private String parentId; + private String useValue; + private String description; + + private Long companyTypeId; + private Long parentSectorId; + private Long childSectorId; + private Long regionId; + private Long statusId; + private String statusName; + + private Integer Page; + private Integer PageSize; + + public static CompanyFieldCategoryCondition make(Map<String, Object> companyFieldCategoryCondition) { + return ConvertUtil.convertMapToClass(companyFieldCategoryCondition, CompanyFieldCategoryCondition.class); + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getTypeCategory() { + return typeCategory; + } + + public void setTypeCategory(String typeCategory) { + this.typeCategory = typeCategory; + } + + public String getParentId() { + return parentId; + } + + public void setParentId(String parentId) { + this.parentId = parentId; + } + + public String getUseValue() { + return useValue; + } + + public void setUseValue(String useValue) { + this.useValue = useValue; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Integer getPage() { + return Page; + } + + public void setPage(Integer page) { + Page = page; + } + + public Integer getPageSize() { + return PageSize; + } + + public void setPageSize(Integer pageSize) { + PageSize = pageSize; + } + + public Long getCompanyTypeId() { + return companyTypeId; + } + + public void setCompanyTypeId(Long companyTypeId) { + this.companyTypeId = companyTypeId; + } + + public Long getParentSectorId() { + return parentSectorId; + } + + public void setParentSectorId(Long parentSectorId) { + this.parentSectorId = parentSectorId; + } + + public Long getChildSectorId() { + return childSectorId; + } + + public void setChildSectorId(Long childSectorId) { + this.childSectorId = childSectorId; + } + + public Long getRegionId() { + return regionId; + } + + public void setRegionId(Long regionId) { + this.regionId = regionId; + } + + public Long getStatusId() { + return statusId; + } + + public void setStatusId(Long statusId) { + this.statusId = statusId; + } + + public String getStatusName() { + return statusName; + } + + public void setStatusName(String statusName) { + this.statusName = statusName; + } +} diff --git a/src/main/java/kr/wisestone/owl/web/controller/CompanyFieldCategoryController.java b/src/main/java/kr/wisestone/owl/web/controller/CompanyFieldCategoryController.java new file mode 100644 index 0000000..466bd00 --- /dev/null +++ b/src/main/java/kr/wisestone/owl/web/controller/CompanyFieldCategoryController.java @@ -0,0 +1,44 @@ +package kr.wisestone.owl.web.controller; + +import kr.wisestone.owl.constant.Constants; +import kr.wisestone.owl.service.CompanyFieldCategoryService; +import kr.wisestone.owl.service.CompanyFieldService; +import kr.wisestone.owl.web.condition.CompanyFieldCategoryCondition; +import kr.wisestone.owl.web.condition.CompanyFieldCondition; +import kr.wisestone.owl.web.form.CompanyFieldForm; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Pageable; +import org.springframework.http.MediaType; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.servlet.ModelAndView; + +import javax.servlet.http.HttpServletRequest; +import java.util.HashMap; +import java.util.Map; + +@Controller +public class CompanyFieldCategoryController extends BaseController{ + + @Autowired + private CompanyFieldCategoryService companyFieldCategoryService; + + // 湲곗뾽援щ텇 議고쉶 + @RequestMapping(value = "/CompanyFieldCategory/find", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) + public + @ResponseBody + Map<String, Object> find(@RequestBody Map<String, Map<String, Object>> params) { + Map<String, Object> resJsonData = new HashMap<>(); + Pageable pageable = this.pageUtil.convertPageable(this.getPageVo(params)); + + this.companyFieldCategoryService.find(resJsonData, CompanyFieldCategoryCondition.make(params.get(Constants.REQ_KEY_CONTENT)), pageable); + + return this.setSuccessMessage(resJsonData); + } + +} + diff --git a/src/main/java/kr/wisestone/owl/web/form/CompanyFieldForm.java b/src/main/java/kr/wisestone/owl/web/form/CompanyFieldForm.java index 4d7b4a0..7432c6c 100644 --- a/src/main/java/kr/wisestone/owl/web/form/CompanyFieldForm.java +++ b/src/main/java/kr/wisestone/owl/web/form/CompanyFieldForm.java @@ -4,16 +4,23 @@ import kr.wisestone.owl.util.ConvertUtil; import kr.wisestone.owl.util.MapUtil; +import java.util.ArrayList; import java.util.List; import java.util.Map; public class CompanyFieldForm extends UsePartnerForm { private String manager; - private String tel; private String url; private String memo; + private String tel; private Long ispId; private Long hostingId; + private Long companyTypeId; + private Long parentSectorId; + private Long childSectorId; + private Long regionId; + private Long statusId; + private String statusName; private List<Long> removeIds = Lists.newArrayList(); @@ -21,6 +28,14 @@ } public static CompanyFieldForm make(Map<String, Object> params) { CompanyFieldForm form = ConvertUtil.convertMapToClass(params, CompanyFieldForm.class); + + if (MapUtil.getStrings(params, "tels") != null) { + form.setTelList(MapUtil.getStrings(params, "tels")); + } + + if (MapUtil.getStrings(params, "emails") != null) { + form.setEmailList(MapUtil.getStrings(params, "emails")); + } if (MapUtil.getLongs(params,"removeIds") != null) { form.setRemoveIds(MapUtil.getLongs(params, "removeIds")); @@ -83,4 +98,52 @@ public void setRemoveIds(List<Long> removeIds) { this.removeIds = removeIds; } + + public Long getCompanyTypeId() { + return companyTypeId; + } + + public void setCompanyTypeId(Long companyTypeId) { + this.companyTypeId = companyTypeId; + } + + public Long getParentSectorId() { + return parentSectorId; + } + + public void setParentSectorId(Long parentSectorId) { + this.parentSectorId = parentSectorId; + } + + public Long getChildSectorId() { + return childSectorId; + } + + public void setChildSectorId(Long childSectorId) { + this.childSectorId = childSectorId; + } + + public Long getRegionId() { + return regionId; + } + + public void setRegionId(Long regionId) { + this.regionId = regionId; + } + + public Long getStatusId() { + return statusId; + } + + public void setStatusId(Long statusId) { + this.statusId = statusId; + } + + public String getStatusName() { + return statusName; + } + + public void setStatusName(String statusName) { + this.statusName = statusName; + } } diff --git a/src/main/java/kr/wisestone/owl/web/form/HostingFieldForm.java b/src/main/java/kr/wisestone/owl/web/form/HostingFieldForm.java index 099b3f1..aed6f5e 100644 --- a/src/main/java/kr/wisestone/owl/web/form/HostingFieldForm.java +++ b/src/main/java/kr/wisestone/owl/web/form/HostingFieldForm.java @@ -20,6 +20,14 @@ public static HostingFieldForm make(Map<String, Object> params) { HostingFieldForm form = ConvertUtil.convertMapToClass(params, HostingFieldForm.class); + if (MapUtil.getStrings(params, "tels") != null) { + form.setTelList(MapUtil.getStrings(params, "tels")); + } + + if (MapUtil.getStrings(params, "emails") != null) { + form.setEmailList(MapUtil.getStrings(params, "emails")); + } + if (MapUtil.getLongs(params,"removeIds") != null) { form.setRemoveIds(MapUtil.getLongs(params, "removeIds")); } diff --git a/src/main/java/kr/wisestone/owl/web/form/IspFieldForm.java b/src/main/java/kr/wisestone/owl/web/form/IspFieldForm.java index 6d5b3ea..54013ef 100644 --- a/src/main/java/kr/wisestone/owl/web/form/IspFieldForm.java +++ b/src/main/java/kr/wisestone/owl/web/form/IspFieldForm.java @@ -20,6 +20,14 @@ public static IspFieldForm make(Map<String, Object> params) { IspFieldForm form = ConvertUtil.convertMapToClass(params, IspFieldForm.class); + if (MapUtil.getStrings(params, "tels") != null) { + form.setTelList(MapUtil.getStrings(params, "tels")); + } + + if (MapUtil.getStrings(params, "emails") != null) { + form.setEmailList(MapUtil.getStrings(params, "emails")); + } + if (MapUtil.getLongs(params,"removeIds") != null) { form.setRemoveIds(MapUtil.getLongs(params, "removeIds")); } diff --git a/src/main/java/kr/wisestone/owl/web/form/UsePartnerForm.java b/src/main/java/kr/wisestone/owl/web/form/UsePartnerForm.java index ddc5014..717a3cc 100644 --- a/src/main/java/kr/wisestone/owl/web/form/UsePartnerForm.java +++ b/src/main/java/kr/wisestone/owl/web/form/UsePartnerForm.java @@ -4,6 +4,7 @@ import kr.wisestone.owl.util.ConvertUtil; import kr.wisestone.owl.util.MapUtil; +import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -12,6 +13,8 @@ private String name; private String email; private String emailTemplate; + private List<String> telList = new ArrayList<>(); + private List<String> emailList = new ArrayList<>(); public UsePartnerForm() { } @@ -53,4 +56,19 @@ this.emailTemplate = emailTemplate; } + public List<String> getTelList() { + return telList; + } + + public void setTelList(List<String> telList) { + this.telList = telList; + } + + public List<String> getEmailList() { + return emailList; + } + + public void setEmailList(List<String> emailList) { + this.emailList = emailList; + } } diff --git a/src/main/resources/migration/V1_3__insert_new_data.sql b/src/main/resources/migration/V1_3__insert_new_data.sql index 7e83ca9..f624445 100644 --- a/src/main/resources/migration/V1_3__insert_new_data.sql +++ b/src/main/resources/migration/V1_3__insert_new_data.sql @@ -152,4 +152,9 @@ ALTER TABLE `company_field` ADD COLUMN `parent_sector_id` bigint(11) NULL; ALTER TABLE `company_field` ADD COLUMN `child_sector_id` bigint(11) NULL; ALTER TABLE `company_field` ADD COLUMN `region_id` bigint(11) NULL; -ALTER TABLE `company_field` ADD COLUMN `status_id` bigint(11) NULL; \ No newline at end of file +ALTER TABLE `company_field` ADD COLUMN `status_id` bigint(11) NULL; +ALTER TABLE `company_field` ADD COLUMN `status_name` varchar(50) NULL; + +ALTER TABLE `company_field` MODIFY `tel` varchar(255); +ALTER TABLE `isp_field` MODIFY `tel` varchar(255); +ALTER TABLE `hosting_field` MODIFY `tel` varchar(255); \ No newline at end of file diff --git a/src/main/resources/mybatis/query-template/companyField-template.xml b/src/main/resources/mybatis/query-template/companyField-template.xml index 2393acf..53496ef 100644 --- a/src/main/resources/mybatis/query-template/companyField-template.xml +++ b/src/main/resources/mybatis/query-template/companyField-template.xml @@ -13,7 +13,13 @@ cf.url as url, cf.memo as memo, cf.isp_id as ispId, - cf.hosting_id as hostingId + cf.hosting_id as hostingId, + cf.company_type_id as companyTypeId, + cf.parent_sector_id as parentSectorId, + cf.child_sector_id as childSectorId, + cf.region_id as regionId, + cf.status_id as statusId, + cf.status_name as statusName FROM company_field cf WHERE 1=1 diff --git a/src/main/resources/mybatis/query-template/companyFieldCategory-template.xml b/src/main/resources/mybatis/query-template/companyFieldCategory-template.xml new file mode 100644 index 0000000..0eacc70 --- /dev/null +++ b/src/main/resources/mybatis/query-template/companyFieldCategory-template.xml @@ -0,0 +1,49 @@ +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + +<mapper namespace="kr.wisestone.owl.mapper.CompanyFieldCategoryMapper"> + + <select id="find" resultType="java.util.HashMap" parameterType="kr.wisestone.owl.web.condition.CompanyFieldCategoryCondition"> + SELECT + cfc.id as id, + cfc.type_category as typeCategory, + cfc.parent_id as parentId, + cfc.use_value as useValue, + cfc.description as description + FROM + company_field_category cfc + WHERE cfc.type_category = #{typeCategory} + AND cfc.use_value != "吏곸젒�엯�젰" + <if test="parentId != '' and parentId != null"> + AND cfc.parent_id = #{parentId} + </if> + <if test="useValue != '' and useValue != null"> + AND cfc.use_value like CONCAT('%',#{useValue},'%') + </if> + ORDER BY cfc.id DESC + <if test="pageSize != '' and pageSize != null"> + limit #{pageSize} offset #{page}; + </if> + </select> + + <select id="count" resultType="java.lang.Long" parameterType="kr.wisestone.owl.web.condition.CompanyFieldCondition"> + SELECT + count(cfc.id) + FROM + company_field_category cfc + WHERE cfc.type_category = #{typeCategory} + </select> + + <select id="findById" resultType="kr.wisestone.owl.domain.CompanyFieldCategory" parameterType="java.lang.Long"> + SELECT + cfc.id as id, + cfc.type_category as typeCategory, + cfc.parent_id as parentId, + cfc.use_value as useValue, + cfc.description as description + FROM + company_field_category cfc + WHERE cfc.id = #{id} + </select> + +</mapper> \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/i18n/code_ko_KR.properties b/src/main/webapp/WEB-INF/i18n/code_ko_KR.properties index d5a7dc0..5132b05 100644 --- a/src/main/webapp/WEB-INF/i18n/code_ko_KR.properties +++ b/src/main/webapp/WEB-INF/i18n/code_ko_KR.properties @@ -141,6 +141,11 @@ companyField.companyTel=\uC804\uD654\uBC88\uD638 companyField.companyEmail=\uC774\uBA54\uC77C companyField.companyUrl=url +companyField.companyTypeName=\uAE30\uC5C5\uAD6C\uBD84 +companyField.parentSectorName=\uC5C5\uC885(\uB300\uBD84\uB958) +companyField.childSectorName=\uC5C5\uC885(\uC911\uBD84\uB958) +companyField.regionName=\uC9C0\uC5ED +companyField.statusName=\uC0C1\uD0DC companyField.companyMemo=\uBE44\uACE0 isp.ispName=ISP \uC774\uB984 isp.ispCode=\uCF54\uB4DC diff --git a/src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties b/src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties index 41d0054..23bcf21 100644 --- a/src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties +++ b/src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties @@ -26,6 +26,7 @@ PROJECT_NOT_INCLUDE_USER = \uC120\uD0DD\uD55C \uB2F4\uB2F9\uC790 \uC911 \uD504\uB85C\uC81D\uD2B8\uC5D0 \uCC38\uC5EC\uD558\uACE0 \uC788\uC9C0 \uC54A\uC740 \uC0AC\uC6A9\uC790\uAC00 \uC788\uC2B5\uB2C8\uB2E4. PROJECT_NOT_INCLUDE_DEPARTMENT = \uC120\uD0DD\uD55C \uBD80\uC11C \uC911 \uD504\uB85C\uC81D\uD2B8\uC5D0 \uCC38\uC5EC\uD558\uACE0 \uC788\uC9C0 \uC54A\uC740 \uBD80\uC11C\uAC00 \uC788\uC2B5\uB2C8\uB2E4. PROJECT_USED_PROJECT_KEY = \uD504\uB85C\uC81D\uD2B8 \uD0A4\uAC00 \uC774\uBBF8 \uC0AC\uC6A9\uB418\uACE0 \uC788\uC2B5\uB2C8\uB2E4. +PARENT_SECTOR_NOT_SELECT = \uC5C5\uC885(\uB300\uBD84\uB958)\uB97C \uBA3C\uC800 \uC120\uD0DD \uD574 \uC8FC\uC138\uC694. PAYMENT_TYPE_NOT_EXIST = \uACB0\uC81C \uBC29\uC2DD\uC774 \uC120\uD0DD\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. PAYMENT_NOT_EXIST = \uACB0\uC81C \uC815\uBCF4\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4. diff --git a/src/main/webapp/assets/styles/main.css b/src/main/webapp/assets/styles/main.css index 3105edb..3adeb1b 100644 --- a/src/main/webapp/assets/styles/main.css +++ b/src/main/webapp/assets/styles/main.css @@ -28561,6 +28561,10 @@ margin-top: 20px !important; } +.mt-25 { + margin-top: 25px !important; +} + .mt-30 { margin-top: 30px !important; } diff --git a/src/main/webapp/custom_components/js-autocomplete-single/js-autocomplete-single.js b/src/main/webapp/custom_components/js-autocomplete-single/js-autocomplete-single.js index 00505d3..33d11ed 100644 --- a/src/main/webapp/custom_components/js-autocomplete-single/js-autocomplete-single.js +++ b/src/main/webapp/custom_components/js-autocomplete-single/js-autocomplete-single.js @@ -158,7 +158,7 @@ // 寃��깋�맂 �븘�씠�뀥 �겢由��떆 �엯�젰 �븘�뱶 �룷而ㅼ뒪 二쇨린 function searchInputField() { - if ($scope.selectedModel.length > 0) { + if (angular.isDefined($scope.selectedModel) && $scope.selectedModel.length > 0) { $($element).find(".input-tag-search-field-readonly").focus(); } } diff --git a/src/main/webapp/i18n/ko/global.json b/src/main/webapp/i18n/ko/global.json index 92a5b7b..8e7bb48 100644 --- a/src/main/webapp/i18n/ko/global.json +++ b/src/main/webapp/i18n/ko/global.json @@ -867,6 +867,7 @@ "failedToProjectListLookUp": "�봽濡쒖젥�듃 紐⑸줉 議고쉶 �떎�뙣", "failedToWorkflowListLookUp": "�썙�겕�뵆濡쒖슦 紐⑸줉 議고쉶 �떎�뙣", "failedToIssueListLookUp": "�씠�뒋 紐⑸줉 議고쉶 �떎�뙣", + "failedToCompanyCategoryListLookUp": "�뾽泥� 移댄뀒怨좊━ 紐⑸줉 議고쉶 �떎�뙣", "title": "�젣紐�", "number": "踰덊샇", "m": "�썡", @@ -882,6 +883,11 @@ "emptyIsp": "�꽑�깮�븷 �닔 �엳�뒗 ISP媛� �뾾�뒿�땲�떎.", "emptyHosting": "�꽑�깮�븷 �닔 �엳�뒗 HOSTING�씠 �뾾�뒿�땲�떎.", "emptyCustomField": "�꽑�깮�븷 �닔 �엳�뒗 �궗�슜�옄 �젙�쓽 �븘�뱶媛� �뾾�뒿�땲�떎.", + "emptyCompanyType": "�꽑�깮�븷 �닔 �엳�뒗 湲곗뾽援щ텇�씠 �뾾�뒿�땲�떎.", + "emptyParentSector": "�꽑�깮�븷 �닔 �엳�뒗 �뾽醫�(��遺꾨쪟)�씠 �뾾�뒿�땲�떎.", + "emptyChildSector": "�꽑�깮�븷 �닔 �엳�뒗 �뾽醫�(以묐텇瑜�)�씠 �뾾�뒿�땲�떎.", + "emptyRegion": "�꽑�깮�븷 �닔 �엳�뒗 吏��뿭�씠 �뾾�뒿�땲�떎.", + "emptyStatus": "�꽑�깮�븷 �닔 �엳�뒗 �긽�깭媛� �뾾�뒿�땲�떎.", "department" : "遺��꽌", "level" : "�궗�슜�옄 �벑湲�", "manageDepartment": "遺��꽌 愿�由�", @@ -969,11 +975,16 @@ "domain" : "�룄硫붿씤", "url" : "url", "ipAdress" : "ip二쇱냼", - "manager" : "�떞�떦�옄", - "tel" : "�쟾�솕踰덊샇", + "tel" : "�뿰�씫泥�", "code" : "肄붾뱶", "email" : "�씠硫붿씪", "memo" : "鍮꾧퀬", + "companyType" : "湲곗뾽援щ텇", + "parentSector" : "�뾽醫�(��遺꾨쪟)", + "childSector" : "�뾽醫�(以묐텇瑜�)", + "region" : "吏��뿭", + "status" : "�긽�깭", + "description" : "�꽕紐�", "failedToSelectCompanyFieldFullList" : "�뾽泥� 愿�由� 紐⑸줉 議고쉶 �떎�뙣", "delete" : "�뾽泥� �궘�젣", "wantToDeleteSelectCompanyField" : "�꽑�깮�븳 �뾽泥대�� �궘�젣�븯寃좎뒿�땲源�? �궘�젣�맂 �뾽泥대뒗 蹂듦뎄�븷 �닔 �뾾�뒿�땲�떎.", @@ -981,7 +992,9 @@ "failedToDetailCompanyFieldModify" : "�뾽泥� �긽�꽭 �젙蹂� 議고쉶 �떎�뙣", "pleaseEnterCompanyFieldName": "�뾽泥� �씠由꾩쓣 �엯�젰�븯�꽭�슂.", "enterSpecialCharacters": "�뾽泥� �씠由꾩뿉�뒗 �듅�닔 臾몄옄瑜� �엯�젰 �븷 �닔 �뾾�뒿�땲�떎.", - "invalidTelFormat": "�쟾�솕踰덊샇 �삎�떇�씠 留욎� �븡�뒿�땲�떎. xxx-xxx-xxxx �삎�떇�쑝濡� �엯�젰�븯�꽭�슂." + "invalidTelFormat": "�쟾�솕踰덊샇 �삎�떇�씠 留욎� �븡�뒿�땲�떎. xxx-xxx-xxxx �삎�떇�쑝濡� �엯�젰�븯�꽭�슂.", + "writeCompanyTel": "�쟾�솕踰덊샇瑜� �엯�젰�빐二쇱꽭�슂.", + "writeTel": "�쟾�솕踰덊샇瑜� �엯�젰�븯�뀛�빞 異붽��븷�닔 �엳�뒿�땲�떎." }, "ispField" : { "info": "ISP�젙蹂�", @@ -990,7 +1003,7 @@ "name" : "ISP�씠由�", "ispName" : "ISP紐�", "manager" : "�떞�떦�옄", - "tel" : "�쟾�솕踰덊샇", + "tel" : "�뿰�씫泥�", "code" : "肄붾뱶", "email" : "�씠硫붿씪", "memo" : "鍮꾧퀬", @@ -1011,7 +1024,7 @@ "manager" : "�샇�뒪�똿�씠由�", "hostingName" : "�샇�뒪�똿紐�", "manager" : "�떞�떦�옄", - "tel" : "�쟾�솕踰덊샇", + "tel" : "�뿰�씫泥�", "code" : "肄붾뱶", "email" : "�씠硫붿씪", "memo" : "鍮꾧퀬", diff --git a/src/main/webapp/scripts/app/companyField/companyFieldAdd.controller.js b/src/main/webapp/scripts/app/companyField/companyFieldAdd.controller.js index 8da6eeb..0c14335 100644 --- a/src/main/webapp/scripts/app/companyField/companyFieldAdd.controller.js +++ b/src/main/webapp/scripts/app/companyField/companyFieldAdd.controller.js @@ -7,15 +7,24 @@ 'app' ], function (app) { - app.controller('companyFieldAddController', ['$scope', '$rootScope', '$log', '$resourceProvider', 'SweetAlert', '$uibModal', '$uibModalInstance', '$state', 'CompanyField', '$filter', '$injector','$controller', - function ($scope, $rootScope, $log, $resourceProvider, SweetAlert, $uibModal, $uibModalInstance, $state, CompanyField, $filter, $injector, $controller) { + app.controller('companyFieldAddController', ['$scope', '$rootScope', '$log', '$resourceProvider', 'SweetAlert', '$uibModal', '$uibModalInstance', '$state', 'CompanyField', 'CompanyFieldCategory', '$filter', '$injector','$controller', + function ($scope, $rootScope, $log, $resourceProvider, SweetAlert, $uibModal, $uibModalInstance, $state, CompanyField, CompanyFieldCategory, $filter, $injector, $controller) { $scope.fn = { cancel : cancel, // �뙘�뾽 李� �떕湲� formSubmit : formSubmit, // �뤌 �쟾�넚 formCheck : formCheck, // �뤌 泥댄겕 getIssueIspFieldListCallBack : getIssueIspFieldListCallBack, - getIssueHostingFieldListCallBack : getIssueHostingFieldListCallBack + getIssueHostingFieldListCallBack : getIssueHostingFieldListCallBack, + getCompanyTypeListCallBack : getCompanyTypeListCallBack, + getParentSectorListCallBack : getParentSectorListCallBack, + getChildSectorListCallBack : getChildSectorListCallBack, + getRegionListCallBack : getRegionListCallBack, + getStatusListCallBack : getStatusListCallBack, + addTel : addTel, + addMail : addMail, + removeTelInput : removeTelInput, + removeMailInput : removeMailInput }; $scope.vm = { @@ -29,7 +38,28 @@ tel : "", //�쟾�솕踰덊샇 email : "", //�씠硫붿씪 url : "", // url - memo : "" //鍮꾧퀬 + memo : "", //鍮꾧퀬 + companyTypeId : "", + companyType : "", //湲곗뾽援щ텇 + parentSectorId : "", + parentSector : "", //�뾽醫�(��遺꾨쪟) + childSectorId : "", + childSector : "", //�뾽醫�(以묐텇瑜�) + regionId : "", + region : "", //吏��뿭 + statusId : "", + status : "", //�긽�깭 + inputTels : [0], //�뿰�씫泥� + tels : {}, + inputMails : [0], //�씠硫붿씪 + emails : {} + }, + typeCategory : { + companyType : "COMPANYTYPE", + parentSector : "PARENTSECTOR", + childSector : "CHILDSECTOR", + region : "REGION", + status : "STATUS" }, autoCompletePage : { ispField : { @@ -37,6 +67,26 @@ totalPage : 0 }, hostingField : { + page : 0, + totalPage : 0 + }, + companyType : { + page : 0, + totalPage : 0 + }, + parentSector : { + page : 0, + totalPage : 0 + }, + childSector : { + page : 0, + totalPage : 0 + }, + region : { + page : 0, + totalPage : 0 + }, + status : { page : 0, totalPage : 0 } @@ -56,6 +106,31 @@ $scope.vm.autoCompletePage.hostingField.totalPage = result.data.page.totalPage; } + // 湲곗뾽援щ텇 autocomplete page �뾽�뜲�씠�듃 + function getCompanyTypeListCallBack(result) { + $scope.vm.autoCompletePage.companyType.totalPage = result.data.page.totalPage; + } + + // �뾽醫�(��遺꾨쪟) autocomplete page �뾽�뜲�씠�듃 + function getParentSectorListCallBack(result) { + $scope.vm.autoCompletePage.parentSector.totalPage = result.data.page.totalPage; + } + + // �뾽醫�(以묐텇瑜�) 移댄뀒怨좊━ autocomplete page �뾽�뜲�씠�듃 + function getChildSectorListCallBack(result) { + $scope.vm.autoCompletePage.childSector.totalPage = result.data.page.totalPage; + } + + // 吏��뿭 移댄뀒怨좊━ autocomplete page �뾽�뜲�씠�듃 + function getRegionListCallBack(result) { + $scope.vm.autoCompletePage.region.totalPage = result.data.page.totalPage; + } + + // �긽�깭 移댄뀒怨좊━ autocomplete page �뾽�뜲�씠�듃 + function getStatusListCallBack(result) { + $scope.vm.autoCompletePage.status.totalPage = result.data.page.totalPage; + } + // �뤌 泥댄겕 function formCheck(formInvalid) { if (formInvalid) { @@ -71,8 +146,6 @@ $scope.$on("hostingFieldEvent", function (event, result) { $scope.vm.form.hostingId = result[0].id; }); - - // �뤌 �쟾�넚 function formSubmit(condition) { @@ -95,10 +168,80 @@ return hostingId; })(), manager : $scope.vm.form.manager, //�떞�떦�옄 - tel : $scope.vm.form.tel, //�쟾�솕踰덊샇 - email : $scope.vm.form.email, //�씠硫붿씪 + tels : (function () { + var telList = []; + if ($scope.vm.form.tels != null) { + angular.forEach($scope.vm.form.tels, function (tel) { + telList.push(tel); + }); + telList = telList.filter(function(item) { //�벐�젅湲� �뜲�씠�꽣 �븘�꽣留� + return item !== null && item !== undefined && item !== ''; + }); + telList = telList.filter(function(item, idx){ + return telList.findIndex(function(item2, idx2){ + return item === item2 + }) == idx; + }); + } + return telList; + })(), + emails : (function () { + var emailList = []; + if ($scope.vm.form.emails != null) { + angular.forEach($scope.vm.form.emails, function (email) { + emailList.push(email); + }); + emailList = emailList.filter(function(item) { //�벐�젅湲� �뜲�씠�꽣 �븘�꽣留� + return item !== null && item !== undefined && item !== ''; + }); + emailList = emailList.filter(function(item, idx){ + return emailList.findIndex(function(item2, idx2){ + return item === item2 + }) == idx; + }); + } + return emailList; + })(), url : $scope.vm.form.url, // url - memo : $scope.vm.form.memo //鍮꾧퀬 + memo : $scope.vm.form.memo, //鍮꾧퀬 + companyTypeId : (function () { + var companyTypeId = -1; + if ($scope.vm.form.companyTypes != null) { + companyTypeId = $scope.vm.form.companyTypes[0].id; + } + return companyTypeId; + })(), + parentSectorId : (function () { + var parentSectorId = -1; + if ($scope.vm.form.parentSectors != null) { + parentSectorId = $scope.vm.form.parentSectors[0].id; + } + return parentSectorId; + })(), + childSectorId : (function () { + var childSectorId = -1; + if ($scope.vm.form.childSectors != null) { + childSectorId = $scope.vm.form.childSectors[0].id; + } + return childSectorId; + })(), + regionId : (function () { + var regionId = -1; + if ($scope.vm.form.regions != null) { + regionId = $scope.vm.form.regions[0].id; + } + return regionId; + })(), + statusId : (function () { + var statusId = -1; + if ($scope.vm.form.statuses != null) { + statusId = $scope.vm.form.statuses[0].id; + } else if ($scope.vm.form.status !== ""){ + statusId = 120; //吏곸젒�엯�젰 �씪 寃쎌슦 + } + return statusId; + })(), + statusName : $scope.vm.form.status }; CompanyField.add($resourceProvider.getContent(content, @@ -118,6 +261,54 @@ } + // �뿰�씫泥� input 李� 異붽� 踰꾪듉 + function addTel() { + var arrayFull = true; // 諛곗뿴�씠 媛��뱷 李� �엳�뒗吏� �뿬遺� + var index = 0; + $scope.vm.form.inputTels.forEach(function (tel) { + if (!$rootScope.isDefined($scope.vm.form.tels[index])) { + arrayFull = false; + } + index++; + }); + + if (arrayFull) { + $scope.vm.form.inputTels.push(index); + $scope.vm.form.tels[index] = ""; + } else { + SweetAlert.warning($filter("translate")("companyField.writeCompanyTel"), $filter("translate")("companyField.writeTel")); // 異붽�踰꾪듉 寃쎄퀬 + } + } + + // 硫붿씪 二쇱냼 input 李� 異붽� 踰꾪듉 + function addMail() { + var arrayFull = true; // 諛곗뿴�씠 媛��뱷 李� �엳�뒗吏� �뿬遺� + var index = 0; + $scope.vm.form.inputMails.forEach(function (email) { + if (!$rootScope.isDefined($scope.vm.form.emails[index])) { + arrayFull = false; + } + index++; + }); + + if (arrayFull) { + $scope.vm.form.inputMails.push(index); + $scope.vm.form.emails[index] = ""; + } else { + SweetAlert.warning($filter("translate")("issue.writeIssueMail"), $filter("translate")("issue.writeMail")); // 異붽�踰꾪듉 寃쎄퀬 + } + } + + // �뿰�씫泥� input �궘�젣 + function removeTelInput(index) { + $scope.vm.form.inputTels.splice(index, 1); + } + + // �씠硫붿씪 二쇱냼 input �궘�젣 + function removeMailInput(index) { + $scope.vm.form.inputMails.splice(index, 1); + } + // �뙘�뾽 李� �떕湲� function cancel() { $rootScope.$broadcast("closeLayer"); // �뙘�뾽�씠 �뿴由ш퀬 �굹�꽌 js-multi, js-single �벑�뿉�꽌 body �씠踰ㅽ듃媛� �궇�븘媛��뒗 �쁽�긽 �닔�젙 diff --git a/src/main/webapp/scripts/app/companyField/companyFieldList.controller.js b/src/main/webapp/scripts/app/companyField/companyFieldList.controller.js index 3c387b3..902cadf 100644 --- a/src/main/webapp/scripts/app/companyField/companyFieldList.controller.js +++ b/src/main/webapp/scripts/app/companyField/companyFieldList.controller.js @@ -97,6 +97,31 @@ .setDName("url") .setDAlign("text-center")); $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("companyField.companyType") + .setHWidth("bold") + .setDName("companyTypeName") + .setDAlign("text-center")); + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("companyField.parentSector") + .setHWidth("bold") + .setDName("parentSectorName") + .setDAlign("text-center")); + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("companyField.childSector") + .setHWidth("bold") + .setDName("childSectorName") + .setDAlign("text-center")); + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("companyField.region") + .setHWidth("bold") + .setDName("regionName") + .setDAlign("text-center")); + $scope.vm.tableConfigs.push($tableProvider.config() + .setHName("companyField.status") + .setHWidth("bold") + .setDName("statusName") + .setDAlign("text-center")); + $scope.vm.tableConfigs.push($tableProvider.config() .setHName("companyField.memo") .setHWidth("bold") .setDName("memo") @@ -130,10 +155,27 @@ $scope.vm.page.selectedPage = currentPage + 1; // �쟾�솕踰덊샇 議고쉶�떆 �븯�씠�뵂 異붽� �빐�꽌 議고쉶 - result.data.data.forEach(function (telData) { - let hyphen = telData.tel.trim(); - let phone = hyphen.replace(/(^02.{0}|^01.{1}|[0-9]{3})([0-9]+)([0-9]{4})/,"$1-$2-$3"); - telData.tel = phone; + result.data.data.forEach(function (data) { + if (data.tel != null && data.tel !== "") { + var tels = data.tel.substr(1, data.tel.indexOf("]")-1); + var telArr = tels.split(","); + + for (var i = 0; i < telArr.length; i++) { + let hyphen = telArr[i].trim(); + telArr[i] = hyphen.replace(/(^02.{0}|^01.{1}|[0-9]{3})([0-9]+)([0-9]{4})/, "$1-$2-$3"); + if (telArr[i] === "") { + telArr.splice(i,1); + } + } + data.tel = telArr.join(); + } + }); + + // �씠硫붿씪 議고쉶�떆 諛곗뿴 �삎�깭 �젣嫄� + result.data.data.forEach(function (data) { + if (data.email != null && data.email !== "") { + data.email = data.email.substr(1, data.email.indexOf("]")-1); + } }); $scope.vm.responseData = result.data; diff --git a/src/main/webapp/scripts/app/companyField/companyFieldModify.controller.js b/src/main/webapp/scripts/app/companyField/companyFieldModify.controller.js index 6b99e3c..6042b36 100644 --- a/src/main/webapp/scripts/app/companyField/companyFieldModify.controller.js +++ b/src/main/webapp/scripts/app/companyField/companyFieldModify.controller.js @@ -17,7 +17,16 @@ formSubmit : formSubmit, // �뤌 �쟾�넚 formCheck : formCheck, // �뤌 泥댄겕 getIssueIspFieldListCallBack : getIssueIspFieldListCallBack, - getIssueHostingFieldListCallBack : getIssueHostingFieldListCallBack + getIssueHostingFieldListCallBack : getIssueHostingFieldListCallBack, + getCompanyTypeListCallBack : getCompanyTypeListCallBack, + getParentSectorListCallBack : getParentSectorListCallBack, + getChildSectorListCallBack : getChildSectorListCallBack, + getRegionListCallBack : getRegionListCallBack, + getStatusListCallBack : getStatusListCallBack, + addTel : addTel, + addMail : addMail, + removeTelInput : removeTelInput, + removeMailInput : removeMailInput }; $scope.vm = { @@ -32,7 +41,28 @@ tel : "", //�쟾�솕踰덊샇 email : "", //�씠硫붿씪 url : "", // url - memo : "" //硫붾え(鍮꾧퀬) + memo : "", //硫붾え(鍮꾧퀬) + companyTypeId : "", + companyType : "", //湲곗뾽援щ텇 + parentSectorId : "", + parentSector : "", //�뾽醫�(��遺꾨쪟) + childSectorId : "", + childSector : "", //�뾽醫�(以묐텇瑜�) + regionId : "", + region : "", //吏��뿭 + statusId : "", + status : "", //�긽�깭 + inputTels : [0], + tels : {}, + inputMails : [0], + emails : {} + }, + typeCategory : { + companyType : "COMPANYTYPE", + parentSector : "PARENTSECTOR", + childSector : "CHILDSECTOR", + region : "REGION", + status : "STATUS" }, autoCompletePage : { ispField : { @@ -40,6 +70,26 @@ totalPage : 0 }, hostingField : { + page : 0, + totalPage : 0 + }, + companyType : { + page : 0, + totalPage : 0 + }, + parentSector : { + page : 0, + totalPage : 0 + }, + childSector : { + page : 0, + totalPage : 0 + }, + region : { + page : 0, + totalPage : 0 + }, + status : { page : 0, totalPage : 0 } @@ -57,6 +107,31 @@ // �샇�뒪�똿�젙蹂� autocomplete page �뾽�뜲�씠�듃 function getIssueHostingFieldListCallBack(result) { $scope.vm.autoCompletePage.hostingField.totalPage = result.data.page.totalPage; + } + + // �뾽泥� 移댄뀒怨좊━ autocomplete page �뾽�뜲�씠�듃 + function getCompanyTypeListCallBack(result) { + $scope.vm.autoCompletePage.companyType.totalPage = result.data.page.totalPage; + } + + // �뾽泥� 移댄뀒怨좊━ autocomplete page �뾽�뜲�씠�듃 + function getParentSectorListCallBack(result) { + $scope.vm.autoCompletePage.parentSector.totalPage = result.data.page.totalPage; + } + + // �뾽泥� 移댄뀒怨좊━ autocomplete page �뾽�뜲�씠�듃 + function getChildSectorListCallBack(result) { + $scope.vm.autoCompletePage.childSector.totalPage = result.data.page.totalPage; + } + + // �뾽泥� 移댄뀒怨좊━ autocomplete page �뾽�뜲�씠�듃 + function getRegionListCallBack(result) { + $scope.vm.autoCompletePage.region.totalPage = result.data.page.totalPage; + } + + // �뾽泥� 移댄뀒怨좊━ autocomplete page �뾽�뜲�씠�듃 + function getStatusListCallBack(result) { + $scope.vm.autoCompletePage.status.totalPage = result.data.page.totalPage; } // �뤌 泥댄겕 @@ -86,23 +161,105 @@ name : $rootScope.preventXss($scope.vm.form.name), ispId : (function () { // ISP �븘�씠�뵒 var ispId = -1; - if ($scope.vm.form.issueIspFields != null && $scope.vm.form.issueIspFields.length > 0) { + if ($scope.vm.form.ispName !== "" && $scope.vm.form.ispId !== null && $scope.vm.form.ispId !== -1) { ispId = $scope.vm.form.ispId; + }else if ($scope.vm.form.issueIspFields != null) { + ispId = $scope.vm.form.issueIspFields[0].id; } return ispId; })(), hostingId : (function () { // Hosting �븘�씠�뵒 var hostingId = -1; - if ($scope.vm.form.issueHostingFields != null && $scope.vm.form.issueHostingFields.length > 0) { + if ($scope.vm.form.hostingName !== "" && $scope.vm.form.hostingId !== null && $scope.vm.form.hostingId !== -1) { hostingId = $scope.vm.form.hostingId; + }else if ($scope.vm.form.issueHostingFields != null) { + hostingId = $scope.vm.form.issueHostingFields[0].id; } return hostingId; })(), manager : $rootScope.preventXss($scope.vm.form.manager), - tel : $rootScope.preventXss($scope.vm.form.tel), - email : $rootScope.preventXss($scope.vm.form.email), + tels : (function () { + var telList = []; + if ($scope.vm.form.tels != null) { + angular.forEach($scope.vm.form.tels, function (tel) { + telList.push(tel); + }); + telList = telList.filter(function(item) { //�벐�젅湲� �뜲�씠�꽣 �븘�꽣留� + return item !== null && item !== undefined && item !== ''; + }); + telList = telList.filter(function(item, idx){ + return telList.findIndex(function(item2, idx2){ + return item === item2 + }) == idx; + }); + } + return telList; + })(), + emails : (function () { + var emailList = []; + if ($scope.vm.form.emails != null) { + angular.forEach($scope.vm.form.emails, function (email) { + emailList.push(email); + }); + emailList = emailList.filter(function(item) { //�벐�젅湲� �뜲�씠�꽣 �븘�꽣留� + return item !== null && item !== undefined && item !== ''; + }); + emailList = emailList.filter(function(item, idx){ + return emailList.findIndex(function(item2, idx2){ + return item === item2 + }) == idx; + }); + } + return emailList; + })(), url : $rootScope.preventXss($scope.vm.form.url), // url - memo : $rootScope.preventXss($scope.vm.form.memo) + memo : $rootScope.preventXss($scope.vm.form.memo), + companyTypeId : (function () { + var companyTypeId = -1; + if ($scope.vm.form.companyType !== "" && $scope.vm.form.companyTypeId !== "" && $scope.vm.form.companyTypeId !== -1) { + companyTypeId = $scope.vm.form.companyTypeId; + }else if ($scope.vm.form.companyTypes != null) { + companyTypeId = $scope.vm.form.companyTypes[0].id; + } + return companyTypeId; + })(), + parentSectorId : (function () { + var parentSectorId = -1; + if ($scope.vm.form.parentSector !== "" && $scope.vm.form.parentSectorId !== "" && $scope.vm.form.parentSectorId !== -1) { + parentSectorId = $scope.vm.form.parentSectorId; + }else if ($scope.vm.form.parentSectors != null) { + parentSectorId = $scope.vm.form.parentSectors[0].id; + } + return parentSectorId; + })(), + childSectorId : (function () { + var childSectorId = -1; + if ($scope.vm.form.childSector !== "" && $scope.vm.form.childSectorId !== "" && $scope.vm.form.childSectorId !== -1) { + childSectorId = $scope.vm.form.childSectorId; + }else if ($scope.vm.form.childSectors != null) { + childSectorId = $scope.vm.form.childSectors[0].id; + } + return childSectorId; + })(), + regionId : (function () { + var regionId = -1; + if ($scope.vm.form.region !== "" && $scope.vm.form.regionId !== "" && $scope.vm.form.regionId !== -1) { + regionId = $scope.vm.form.regionId; + }else if ($scope.vm.form.regions != null) { + regionId = $scope.vm.form.regions[0].id; + } + return regionId; + })(), + statusId : (function () { + var statusId = -1; + if ($scope.vm.form.status !== "" && $scope.vm.form.statusId !== "" && $scope.vm.form.statusId !== -1) { + statusId = $scope.vm.form.statusId; + }else if ($scope.vm.form.statuses != null) { + statusId = $scope.vm.form.statuses[0].id; + } + return statusId; + })(), + statusName : $scope.vm.form.status }; CompanyField.modify($resourceProvider.getContent( @@ -111,7 +268,6 @@ if (result.data.message.status === "success") { $scope.fn.cancel(); - // 紐⑸줉 �솕硫� 媛깆떊 $rootScope.$broadcast("getPageList", {}); } @@ -122,6 +278,54 @@ $rootScope.spinner = false; }); + } + + // 硫붿씪 二쇱냼 input 李� 異붽� 踰꾪듉 + function addTel() { + var arrayFull = true; // 諛곗뿴�씠 媛��뱷 李� �엳�뒗吏� �뿬遺� + var index = 0; + $scope.vm.form.inputTels.forEach(function (tel) { + if (!$rootScope.isDefined($scope.vm.form.tels[index])) { + arrayFull = false; + } + index++; + }); + + if (arrayFull) { + $scope.vm.form.inputTels.push(index); + $scope.vm.form.tels[index] = ""; + } else { + SweetAlert.warning($filter("translate")("companyField.writeCompanyTel"), $filter("translate")("companyField.writeTel")); // 異붽�踰꾪듉 寃쎄퀬 + } + } + + // 硫붿씪 二쇱냼 input 李� 異붽� 踰꾪듉 + function addMail() { + var arrayFull = true; // 諛곗뿴�씠 媛��뱷 李� �엳�뒗吏� �뿬遺� + var index = 0; + $scope.vm.form.inputMails.forEach(function (email) { + if (!$rootScope.isDefined($scope.vm.form.emails[index])) { + arrayFull = false; + } + index++; + }); + + if (arrayFull) { + $scope.vm.form.inputMails.push(index); + $scope.vm.form.emails[index] = "" + } else { + SweetAlert.warning($filter("translate")("issue.writeIssueMail"), $filter("translate")("issue.writeMail")); // 異붽�踰꾪듉 寃쎄퀬 + } + } + + // �뿰�씫泥� input �궘�젣 + function removeTelInput(index) { + $scope.vm.form.inputTels.splice(index, 1); + } + + // �씠硫붿씪 二쇱냼 input �궘�젣 + function removeMailInput(index) { + $scope.vm.form.inputMails.splice(index, 1); } // �뙘�뾽 李� �떕湲� @@ -144,18 +348,63 @@ $resourceProvider.getPageContent(0, 1))).then(function (result) { if (result.data.message.status === "success") { - if (angular.isDefined(result.data.content)) { + if (result.data.content != null) { $scope.vm.form.name = result.data.content.name; $scope.vm.form.manager = result.data.content.manager; - $scope.vm.form.email = result.data.content.email; - $scope.vm.form.tel = result.data.content.tel; + + if (result.data.content.tel != null) { + var inputTels = $scope.vm.form.inputTels; + var tels = result.data.content.tel.substr(1, result.data.content.tel.indexOf("]")-1); + var telArr = tels.split(", "); + angular.forEach(telArr, function (tel) { + inputTels.push(tel); + }); + inputTels = inputTels.filter(function(item) { + return item !== null && item !== undefined && item !== ''; + }); + if (inputTels[0] === 0 || inputTels[0] === "") { + inputTels.shift(); + } + inputTels.push(""); + $scope.vm.form.tels = angular.copy(inputTels); + } + + if (result.data.content.email != null) { + var inputMails = $scope.vm.form.inputMails; + var emails = result.data.content.email.substr(1, result.data.content.email.indexOf("]")-1); + var emailArr = emails.split(", "); + angular.forEach(emailArr, function (email) { + inputMails.push(email); + }); + inputMails = inputMails.filter(function(item) { + return item !== null && item !== undefined && item !== ''; + }); + if(inputMails[0] === 0 || inputMails[0] === "") { // 泥ル쾲吏� 諛곗뿴�� 怨듬갚�쑝濡� + inputMails.shift(); + } + inputMails.push(""); + $scope.vm.form.emails = angular.copy(inputMails); + } + $scope.vm.form.url = result.data.content.url; $scope.vm.form.memo = result.data.content.memo; + $scope.vm.form.companyTypeId = result.data.content.companyTypeId; + $scope.vm.form.companyType = result.data.content.companyTypeName; + $scope.vm.form.parentSectorId = result.data.content.parentSectorId; + $scope.vm.form.parentSector = result.data.content.parentSectorName; + $scope.vm.form.childSectorId = result.data.content.childSectorId; + $scope.vm.form.childSector = result.data.content.childSectorName; + $scope.vm.form.regionId = result.data.content.regionId; + $scope.vm.form.region = result.data.content.regionName; + $scope.vm.form.statusId = result.data.content.statusId; + $scope.vm.form.status = result.data.content.statusName; if (result.data.content.ispFieldVo != null) { + $scope.vm.form.ispId = result.data.content.ispFieldVo.id; $scope.vm.form.ispName = result.data.content.ispFieldVo.name; } if (result.data.content.hostingFieldVo != null) { + $scope.vm.form.hostingId = result.data.content.hostingFieldVo.id; $scope.vm.form.hostingName = result.data.content.hostingFieldVo.name; } } diff --git a/src/main/webapp/scripts/app/hostingField/hostingFieldAdd.controller.js b/src/main/webapp/scripts/app/hostingField/hostingFieldAdd.controller.js index 1ab079f..d913c12 100644 --- a/src/main/webapp/scripts/app/hostingField/hostingFieldAdd.controller.js +++ b/src/main/webapp/scripts/app/hostingField/hostingFieldAdd.controller.js @@ -13,7 +13,11 @@ $scope.fn = { cancel : cancel, // �뙘�뾽 李� �떕湲� formSubmit : formSubmit, // �뤌 �쟾�넚 - formCheck : formCheck // �뤌 泥댄겕 + formCheck : formCheck, // �뤌 泥댄겕 + addTel : addTel, + addMail : addMail, + removeTelInput : removeTelInput, + removeMailInput : removeMailInput }; $scope.vm = { @@ -24,7 +28,11 @@ tel : "", //�쟾�솕踰덊샇 email : "", //�씠硫붿씪 url : "", // url - memo : "" //鍮꾧퀬 + memo : "", //鍮꾧퀬 + inputTels : [0], //�뿰�씫泥� + tels : {}, + inputMails : [0], //�씠硫붿씪 + emails : {} } }; @@ -44,8 +52,40 @@ code : $rootScope.preventXss($scope.vm.form.code), //肄붾뱶 name : $rootScope.preventXss($scope.vm.form.name), // �샇�뒪�똿紐� manager : $scope.vm.form.manager, //�떞�떦�옄 - tel : $scope.vm.form.tel, //�쟾�솕踰덊샇 - email : $scope.vm.form.email, //�씠硫붿씪 + tels : (function () { + var telList = []; + if ($scope.vm.form.tels != null) { + angular.forEach($scope.vm.form.tels, function (tel) { + telList.push(tel); + }); + telList = telList.filter(function(item) { //�벐�젅湲� �뜲�씠�꽣 �븘�꽣留� + return item !== null && item !== undefined && item !== ''; + }); + telList = telList.filter(function(item, idx){ + return telList.findIndex(function(item2, idx2){ + return item === item2 + }) == idx; + }); + } + return telList; + })(), + emails : (function () { + var emailList = []; + if ($scope.vm.form.emails != null) { + angular.forEach($scope.vm.form.emails, function (email) { + emailList.push(email); + }); + emailList = emailList.filter(function(item) { //�벐�젅湲� �뜲�씠�꽣 �븘�꽣留� + return item !== null && item !== undefined && item !== ''; + }); + emailList = emailList.filter(function(item, idx){ + return emailList.findIndex(function(item2, idx2){ + return item === item2 + }) == idx; + }); + } + return emailList; + })(), url : $scope.vm.form.url, // url memo : $scope.vm.form.memo //鍮꾧퀬 }; @@ -67,6 +107,54 @@ } + // �뿰�씫泥� input 李� 異붽� 踰꾪듉 + function addTel() { + var arrayFull = true; // 諛곗뿴�씠 媛��뱷 李� �엳�뒗吏� �뿬遺� + var index = 0; + $scope.vm.form.inputTels.forEach(function (tel) { + if (!$rootScope.isDefined($scope.vm.form.tels[index])) { + arrayFull = false; + } + index++; + }); + + if (arrayFull) { + $scope.vm.form.inputTels.push(index); + $scope.vm.form.tels[index] = ""; + } else { + SweetAlert.warning($filter("translate")("companyField.writeCompanyTel"), $filter("translate")("companyField.writeTel")); // 異붽�踰꾪듉 寃쎄퀬 + } + } + + // 硫붿씪 二쇱냼 input 李� 異붽� 踰꾪듉 + function addMail() { + var arrayFull = true; // 諛곗뿴�씠 媛��뱷 李� �엳�뒗吏� �뿬遺� + var index = 0; + $scope.vm.form.inputMails.forEach(function (email) { + if (!$rootScope.isDefined($scope.vm.form.emails[index])) { + arrayFull = false; + } + index++; + }); + + if (arrayFull) { + $scope.vm.form.inputMails.push(index); + $scope.vm.form.emails[index] = ""; + } else { + SweetAlert.warning($filter("translate")("issue.writeIssueMail"), $filter("translate")("issue.writeMail")); // 異붽�踰꾪듉 寃쎄퀬 + } + } + + // �뿰�씫泥� input �궘�젣 + function removeTelInput(index) { + $scope.vm.form.inputTels.splice(index, 1); + } + + // �씠硫붿씪 二쇱냼 input �궘�젣 + function removeMailInput(index) { + $scope.vm.form.inputMails.splice(index, 1); + } + // �뙘�뾽 李� �떕湲� function cancel() { $rootScope.$broadcast("closeLayer"); // �뙘�뾽�씠 �뿴由ш퀬 �굹�꽌 js-multi, js-single �벑�뿉�꽌 body �씠踰ㅽ듃媛� �궇�븘媛��뒗 �쁽�긽 �닔�젙 diff --git a/src/main/webapp/scripts/app/hostingField/hostingFieldList.controller.js b/src/main/webapp/scripts/app/hostingField/hostingFieldList.controller.js index c57c3ac..30e4888 100644 --- a/src/main/webapp/scripts/app/hostingField/hostingFieldList.controller.js +++ b/src/main/webapp/scripts/app/hostingField/hostingFieldList.controller.js @@ -129,10 +129,27 @@ $scope.vm.page.selectedPage = currentPage + 1; // �쟾�솕踰덊샇 議고쉶�떆 �븯�씠�뵂 異붽� �빐�꽌 議고쉶 - result.data.data.forEach(function (telDatas) { - let hyphen = telDatas.tel.trim(); - let phone = hyphen.replace(/(^02.{0}|^01.{1}|[0-9]{3})([0-9]+)([0-9]{4})/,"$1-$2-$3"); - telDatas.tel = phone; + result.data.data.forEach(function (data) { + if (data.tel != null && data.tel !== "") { + var tels = data.tel.substr(1, data.tel.indexOf("]")-1); + var telArr = tels.split(","); + + for (var i = 0; i < telArr.length; i++) { + let hyphen = telArr[i].trim(); + telArr[i] = hyphen.replace(/(^02.{0}|^01.{1}|[0-9]{3})([0-9]+)([0-9]{4})/, "$1-$2-$3"); + if (telArr[i] === "") { + telArr.splice(i,1); + } + } + data.tel = telArr.join(); + } + }); + + // �씠硫붿씪 議고쉶�떆 諛곗뿴 �삎�깭 �젣嫄� + result.data.data.forEach(function (data) { + if (data.email != null && data.email !== "") { + data.email = data.email.substr(1, data.email.indexOf("]")-1); + } }); $scope.vm.responseData = result.data; diff --git a/src/main/webapp/scripts/app/hostingField/hostingFieldModify.controller.js b/src/main/webapp/scripts/app/hostingField/hostingFieldModify.controller.js index b643107..edd8f2a 100644 --- a/src/main/webapp/scripts/app/hostingField/hostingFieldModify.controller.js +++ b/src/main/webapp/scripts/app/hostingField/hostingFieldModify.controller.js @@ -15,7 +15,11 @@ detail : detail, // �긽�꽭 議고쉶 cancel : cancel, // �뙘�뾽 李� �떕湲� formSubmit : formSubmit, // �뤌 �쟾�넚 - formCheck : formCheck // �뤌 泥댄겕 + formCheck : formCheck, // �뤌 泥댄겕 + addTel : addTel, + addMail : addMail, + removeTelInput : removeTelInput, + removeMailInput : removeMailInput }; $scope.vm = { @@ -27,7 +31,11 @@ tel : "", //�쟾�솕踰덊샇 email : "", //�씠硫붿씪 url : "", // url - memo : "" //硫붾え(鍮꾧퀬) + memo : "", //硫붾え(鍮꾧퀬) + inputTels : [0], + tels : {}, + inputMails : [0], + emails : {} } }; @@ -49,8 +57,40 @@ code : $rootScope.preventXss($scope.vm.form.code), name : $rootScope.preventXss($scope.vm.form.name), manager : $rootScope.preventXss($scope.vm.form.manager), - tel : $rootScope.preventXss($scope.vm.form.tel), - email : $rootScope.preventXss($scope.vm.form.email), + tels : (function () { + var telList = []; + if ($scope.vm.form.tels != null) { + angular.forEach($scope.vm.form.tels, function (tel) { + telList.push(tel); + }); + telList = telList.filter(function(item) { //�벐�젅湲� �뜲�씠�꽣 �븘�꽣留� + return item !== null && item !== undefined && item !== ''; + }); + telList = telList.filter(function(item, idx){ + return telList.findIndex(function(item2, idx2){ + return item === item2 + }) == idx; + }); + } + return telList; + })(), + emails : (function () { + var emailList = []; + if ($scope.vm.form.emails != null) { + angular.forEach($scope.vm.form.emails, function (email) { + emailList.push(email); + }); + emailList = emailList.filter(function(item) { //�벐�젅湲� �뜲�씠�꽣 �븘�꽣留� + return item !== null && item !== undefined && item !== ''; + }); + emailList = emailList.filter(function(item, idx){ + return emailList.findIndex(function(item2, idx2){ + return item === item2 + }) == idx; + }); + } + return emailList; + })(), url : $rootScope.preventXss($scope.vm.form.url), // url memo : $rootScope.preventXss($scope.vm.form.memo) }; @@ -74,6 +114,54 @@ } + // 硫붿씪 二쇱냼 input 李� 異붽� 踰꾪듉 + function addTel() { + var arrayFull = true; // 諛곗뿴�씠 媛��뱷 李� �엳�뒗吏� �뿬遺� + var index = 0; + $scope.vm.form.inputTels.forEach(function (tel) { + if (!$rootScope.isDefined($scope.vm.form.tels[index])) { + arrayFull = false; + } + index++; + }); + + if (arrayFull) { + $scope.vm.form.inputTels.push(index); + $scope.vm.form.tels[index] = ""; + } else { + SweetAlert.warning($filter("translate")("companyField.writeCompanyTel"), $filter("translate")("companyField.writeTel")); // 異붽�踰꾪듉 寃쎄퀬 + } + } + + // 硫붿씪 二쇱냼 input 李� 異붽� 踰꾪듉 + function addMail() { + var arrayFull = true; // 諛곗뿴�씠 媛��뱷 李� �엳�뒗吏� �뿬遺� + var index = 0; + $scope.vm.form.inputMails.forEach(function (email) { + if (!$rootScope.isDefined($scope.vm.form.emails[index])) { + arrayFull = false; + } + index++; + }); + + if (arrayFull) { + $scope.vm.form.inputMails.push(index); + $scope.vm.form.emails[index] = "" + } else { + SweetAlert.warning($filter("translate")("issue.writeIssueMail"), $filter("translate")("issue.writeMail")); // 異붽�踰꾪듉 寃쎄퀬 + } + } + + // �뿰�씫泥� input �궘�젣 + function removeTelInput(index) { + $scope.vm.form.inputTels.splice(index, 1); + } + + // �씠硫붿씪 二쇱냼 input �궘�젣 + function removeMailInput(index) { + $scope.vm.form.inputMails.splice(index, 1); + } + // �뙘�뾽 李� �떕湲� function cancel() { $rootScope.$broadcast("closeLayer"); // �뙘�뾽�씠 �뿴由ш퀬 �굹�꽌 js-multi, js-single �벑�뿉�꽌 body �씠踰ㅽ듃媛� �궇�븘媛��뒗 �쁽�긽 �닔�젙 @@ -94,12 +182,45 @@ $resourceProvider.getPageContent(0, 1))).then(function (result) { if (result.data.message.status === "success") { - if (angular.isDefined(result.data.content)) { + if (result.data.content != null) { $scope.vm.form.code = result.data.content.code; $scope.vm.form.name = result.data.content.name; $scope.vm.form.manager = result.data.content.manager; - $scope.vm.form.email = result.data.content.email; - $scope.vm.form.tel = result.data.content.tel; + + if (result.data.content.tel != null) { + var inputTels = $scope.vm.form.inputTels; + var tels = result.data.content.tel.substr(1, result.data.content.tel.indexOf("]")-1); + var telArr = tels.split(", "); + angular.forEach(telArr, function (tel) { + inputTels.push(tel); + }); + inputTels = inputTels.filter(function(item) { + return item !== null && item !== undefined && item !== ''; + }); + if (inputTels[0] === 0 || inputTels[0] === "") { + inputTels.shift(); + } + inputTels.push(""); + $scope.vm.form.tels = angular.copy(inputTels); + } + + if (result.data.content.email != null) { + var inputMails = $scope.vm.form.inputMails; + var emails = result.data.content.email.substr(1, result.data.content.email.indexOf("]")-1); + var emailArr = emails.split(", "); + angular.forEach(emailArr, function (email) { + inputMails.push(email); + }); + inputMails = inputMails.filter(function(item) { + return item !== null && item !== undefined && item !== ''; + }); + if(inputMails[0] === 0 || inputMails[0] === "") { // 泥ル쾲吏� 諛곗뿴�� 怨듬갚�쑝濡� + inputMails.shift(); + } + inputMails.push(""); + $scope.vm.form.emails = angular.copy(inputMails); + } + $scope.vm.form.url = result.data.content.url; $scope.vm.form.memo = result.data.content.memo; } diff --git a/src/main/webapp/scripts/app/ispField/ispFieldAdd.controller.js b/src/main/webapp/scripts/app/ispField/ispFieldAdd.controller.js index 139308c..6cc0e9e 100644 --- a/src/main/webapp/scripts/app/ispField/ispFieldAdd.controller.js +++ b/src/main/webapp/scripts/app/ispField/ispFieldAdd.controller.js @@ -13,7 +13,11 @@ $scope.fn = { cancel : cancel, // �뙘�뾽 李� �떕湲� formSubmit : formSubmit, // �뤌 �쟾�넚 - formCheck : formCheck // �뤌 泥댄겕 + formCheck : formCheck, // �뤌 泥댄겕 + addTel : addTel, + addMail : addMail, + removeTelInput : removeTelInput, + removeMailInput : removeMailInput }; $scope.vm = { @@ -24,7 +28,11 @@ tel : "", //�쟾�솕踰덊샇 email : "", //�씠硫붿씪 url : "", // url - memo : "" //鍮꾧퀬 + memo : "", //鍮꾧퀬 + inputTels : [0], //�뿰�씫泥� + tels : {}, + inputMails : [0], //�씠硫붿씪 + emails : {} } }; @@ -44,8 +52,40 @@ code : $rootScope.preventXss($scope.vm.form.code), //肄붾뱶 name : $rootScope.preventXss($scope.vm.form.name), // ISP紐� manager : $scope.vm.form.manager, //�떞�떦�옄 - tel : $scope.vm.form.tel, //�쟾�솕踰덊샇 - email : $scope.vm.form.email, //�씠硫붿씪 + tels : (function () { + var telList = []; + if ($scope.vm.form.tels != null) { + angular.forEach($scope.vm.form.tels, function (tel) { + telList.push(tel); + }); + telList = telList.filter(function(item) { //�벐�젅湲� �뜲�씠�꽣 �븘�꽣留� + return item !== null && item !== undefined && item !== ''; + }); + telList = telList.filter(function(item, idx){ + return telList.findIndex(function(item2, idx2){ + return item === item2 + }) == idx; + }); + } + return telList; + })(), + emails : (function () { + var emailList = []; + if ($scope.vm.form.emails != null) { + angular.forEach($scope.vm.form.emails, function (email) { + emailList.push(email); + }); + emailList = emailList.filter(function(item) { //�벐�젅湲� �뜲�씠�꽣 �븘�꽣留� + return item !== null && item !== undefined && item !== ''; + }); + emailList = emailList.filter(function(item, idx){ + return emailList.findIndex(function(item2, idx2){ + return item === item2 + }) == idx; + }); + } + return emailList; + })(), url : $scope.vm.form.url, // url memo : $scope.vm.form.memo //鍮꾧퀬 }; @@ -67,6 +107,54 @@ } + // �뿰�씫泥� input 李� 異붽� 踰꾪듉 + function addTel() { + var arrayFull = true; // 諛곗뿴�씠 媛��뱷 李� �엳�뒗吏� �뿬遺� + var index = 0; + $scope.vm.form.inputTels.forEach(function (tel) { + if (!$rootScope.isDefined($scope.vm.form.tels[index])) { + arrayFull = false; + } + index++; + }); + + if (arrayFull) { + $scope.vm.form.inputTels.push(index); + $scope.vm.form.tels[index] = ""; + } else { + SweetAlert.warning($filter("translate")("companyField.writeCompanyTel"), $filter("translate")("companyField.writeTel")); // 異붽�踰꾪듉 寃쎄퀬 + } + } + + // 硫붿씪 二쇱냼 input 李� 異붽� 踰꾪듉 + function addMail() { + var arrayFull = true; // 諛곗뿴�씠 媛��뱷 李� �엳�뒗吏� �뿬遺� + var index = 0; + $scope.vm.form.inputMails.forEach(function (email) { + if (!$rootScope.isDefined($scope.vm.form.emails[index])) { + arrayFull = false; + } + index++; + }); + + if (arrayFull) { + $scope.vm.form.inputMails.push(index); + $scope.vm.form.emails[index] = ""; + } else { + SweetAlert.warning($filter("translate")("issue.writeIssueMail"), $filter("translate")("issue.writeMail")); // 異붽�踰꾪듉 寃쎄퀬 + } + } + + // �뿰�씫泥� input �궘�젣 + function removeTelInput(index) { + $scope.vm.form.inputTels.splice(index, 1); + } + + // �씠硫붿씪 二쇱냼 input �궘�젣 + function removeMailInput(index) { + $scope.vm.form.inputMails.splice(index, 1); + } + // �뙘�뾽 李� �떕湲� function cancel() { $rootScope.$broadcast("closeLayer"); // �뙘�뾽�씠 �뿴由ш퀬 �굹�꽌 js-multi, js-single �벑�뿉�꽌 body �씠踰ㅽ듃媛� �궇�븘媛��뒗 �쁽�긽 �닔�젙 diff --git a/src/main/webapp/scripts/app/ispField/ispFieldList.controller.js b/src/main/webapp/scripts/app/ispField/ispFieldList.controller.js index c9028dd..9da1146 100644 --- a/src/main/webapp/scripts/app/ispField/ispFieldList.controller.js +++ b/src/main/webapp/scripts/app/ispField/ispFieldList.controller.js @@ -129,10 +129,27 @@ $scope.vm.page.selectedPage = currentPage + 1; // �쟾�솕踰덊샇 議고쉶�떆 �븯�씠�뵂 異붽� �빐�꽌 議고쉶 - result.data.data.forEach(function (telData) { - let hyphen = telData.tel.trim(); - let phone = hyphen.replace(/(^02.{0}|^01.{1}|[0-9]{3})([0-9]+)([0-9]{4})/,"$1-$2-$3"); - telData.tel = phone + result.data.data.forEach(function (data) { + if (data.tel != null && data.tel !== "") { + var tels = data.tel.substr(1, data.tel.indexOf("]")-1); + var telArr = tels.split(","); + + for (var i = 0; i < telArr.length; i++) { + let hyphen = telArr[i].trim(); + telArr[i] = hyphen.replace(/(^02.{0}|^01.{1}|[0-9]{3})([0-9]+)([0-9]{4})/, "$1-$2-$3"); + if (telArr[i] === "") { + telArr.splice(i,1); + } + } + data.tel = telArr.join(); + } + }); + + // �씠硫붿씪 議고쉶�떆 諛곗뿴 �삎�깭 �젣嫄� + result.data.data.forEach(function (data) { + if (data.email != null && data.email !== "") { + data.email = data.email.substr(1, data.email.indexOf("]")-1); + } }); $scope.vm.responseData = result.data; diff --git a/src/main/webapp/scripts/app/ispField/ispFieldModify.controller.js b/src/main/webapp/scripts/app/ispField/ispFieldModify.controller.js index 896eeea..552a3c6 100644 --- a/src/main/webapp/scripts/app/ispField/ispFieldModify.controller.js +++ b/src/main/webapp/scripts/app/ispField/ispFieldModify.controller.js @@ -15,7 +15,11 @@ detail : detail, // �긽�꽭 議고쉶 cancel : cancel, // �뙘�뾽 李� �떕湲� formSubmit : formSubmit, // �뤌 �쟾�넚 - formCheck : formCheck // �뤌 泥댄겕 + formCheck : formCheck, // �뤌 泥댄겕 + addTel : addTel, + addMail : addMail, + removeTelInput : removeTelInput, + removeMailInput : removeMailInput }; $scope.vm = { @@ -27,7 +31,11 @@ code : "", email : "", //�씠硫붿씪 url : "", // url - memo : "" //硫붾え(鍮꾧퀬) + memo : "", //硫붾え(鍮꾧퀬) + inputTels : [0], + tels : {}, + inputMails : [0], + emails : {} } }; @@ -48,8 +56,40 @@ code : $rootScope.preventXss($scope.vm.form.code), name : $rootScope.preventXss($scope.vm.form.name), manager : $rootScope.preventXss($scope.vm.form.manager), - tel : $rootScope.preventXss($scope.vm.form.tel), - email : $rootScope.preventXss($scope.vm.form.email), + tels : (function () { + var telList = []; + if ($scope.vm.form.tels != null) { + angular.forEach($scope.vm.form.tels, function (tel) { + telList.push(tel); + }); + telList = telList.filter(function(item) { //�벐�젅湲� �뜲�씠�꽣 �븘�꽣留� + return item !== null && item !== undefined && item !== ''; + }); + telList = telList.filter(function(item, idx){ + return telList.findIndex(function(item2, idx2){ + return item === item2 + }) == idx; + }); + } + return telList; + })(), + emails : (function () { + var emailList = []; + if ($scope.vm.form.emails != null) { + angular.forEach($scope.vm.form.emails, function (email) { + emailList.push(email); + }); + emailList = emailList.filter(function(item) { //�벐�젅湲� �뜲�씠�꽣 �븘�꽣留� + return item !== null && item !== undefined && item !== ''; + }); + emailList = emailList.filter(function(item, idx){ + return emailList.findIndex(function(item2, idx2){ + return item === item2 + }) == idx; + }); + } + return emailList; + })(), url : $rootScope.preventXss($scope.vm.form.url), // url memo : $rootScope.preventXss($scope.vm.form.memo) }; @@ -73,6 +113,54 @@ } + // 硫붿씪 二쇱냼 input 李� 異붽� 踰꾪듉 + function addTel() { + var arrayFull = true; // 諛곗뿴�씠 媛��뱷 李� �엳�뒗吏� �뿬遺� + var index = 0; + $scope.vm.form.inputTels.forEach(function (tel) { + if (!$rootScope.isDefined($scope.vm.form.tels[index])) { + arrayFull = false; + } + index++; + }); + + if (arrayFull) { + $scope.vm.form.inputTels.push(index); + $scope.vm.form.tels[index] = ""; + } else { + SweetAlert.warning($filter("translate")("companyField.writeCompanyTel"), $filter("translate")("companyField.writeTel")); // 異붽�踰꾪듉 寃쎄퀬 + } + } + + // 硫붿씪 二쇱냼 input 李� 異붽� 踰꾪듉 + function addMail() { + var arrayFull = true; // 諛곗뿴�씠 媛��뱷 李� �엳�뒗吏� �뿬遺� + var index = 0; + $scope.vm.form.inputMails.forEach(function (email) { + if (!$rootScope.isDefined($scope.vm.form.emails[index])) { + arrayFull = false; + } + index++; + }); + + if (arrayFull) { + $scope.vm.form.inputMails.push(index); + $scope.vm.form.emails[index] = "" + } else { + SweetAlert.warning($filter("translate")("issue.writeIssueMail"), $filter("translate")("issue.writeMail")); // 異붽�踰꾪듉 寃쎄퀬 + } + } + + // �뿰�씫泥� input �궘�젣 + function removeTelInput(index) { + $scope.vm.form.inputTels.splice(index, 1); + } + + // �씠硫붿씪 二쇱냼 input �궘�젣 + function removeMailInput(index) { + $scope.vm.form.inputMails.splice(index, 1); + } + // �뙘�뾽 李� �떕湲� function cancel() { $rootScope.$broadcast("closeLayer"); // �뙘�뾽�씠 �뿴由ш퀬 �굹�꽌 js-multi, js-single �벑�뿉�꽌 body �씠踰ㅽ듃媛� �궇�븘媛��뒗 �쁽�긽 �닔�젙 @@ -93,12 +181,45 @@ $resourceProvider.getPageContent(0, 1))).then(function (result) { if (result.data.message.status === "success") { - if (angular.isDefined(result.data.content)) { + if (result.data.content != null) { $scope.vm.form.code = result.data.content.code; $scope.vm.form.name = result.data.content.name; $scope.vm.form.manager = result.data.content.manager; - $scope.vm.form.email = result.data.content.email; - $scope.vm.form.tel = result.data.content.tel; + + if (result.data.content.tel != null) { + var inputTels = $scope.vm.form.inputTels; + var tels = result.data.content.tel.substr(1, result.data.content.tel.indexOf("]")-1); + var telArr = tels.split(", "); + angular.forEach(telArr, function (tel) { + inputTels.push(tel); + }); + inputTels = inputTels.filter(function(item) { + return item !== null && item !== undefined && item !== ''; + }); + if (inputTels[0] === 0 || inputTels[0] === "") { + inputTels.shift(); + } + inputTels.push(""); + $scope.vm.form.tels = angular.copy(inputTels); + } + + if (result.data.content.email != null) { + var inputMails = $scope.vm.form.inputMails; + var emails = result.data.content.email.substr(1, result.data.content.email.indexOf("]")-1); + var emailArr = emails.split(", "); + angular.forEach(emailArr, function (email) { + inputMails.push(email); + }); + inputMails = inputMails.filter(function(item) { + return item !== null && item !== undefined && item !== ''; + }); + if(inputMails[0] === 0 || inputMails[0] === "") { // 泥ル쾲吏� 諛곗뿴�� 怨듬갚�쑝濡� + inputMails.shift(); + } + inputMails.push(""); + $scope.vm.form.emails = angular.copy(inputMails); + } + $scope.vm.form.url = result.data.content.url; $scope.vm.form.memo = result.data.content.memo; } diff --git a/src/main/webapp/scripts/components/companyFieldCategory/companyFieldCategory.service.js b/src/main/webapp/scripts/components/companyFieldCategory/companyFieldCategory.service.js new file mode 100644 index 0000000..40a4deb --- /dev/null +++ b/src/main/webapp/scripts/components/companyFieldCategory/companyFieldCategory.service.js @@ -0,0 +1,20 @@ +/** + * Created by maprex on 2021-11-04 + */ +'use strict'; + +define([ + 'app' +], function (app) { + app.factory("CompanyFieldCategory", ['$http', '$log', function ($http, $log) { + return { + find : function (conditions) { + return $http.post("CompanyFieldCategory/find", conditions).then(function (response) { + $log.debug("�뾽泥� 移댄뀒怨좊━ 紐⑸줉 �뜲�씠�꽣 : ", 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 7fd4e7e..456ab56 100644 --- a/src/main/webapp/scripts/components/utils/autoComplete.controller.js +++ b/src/main/webapp/scripts/components/utils/autoComplete.controller.js @@ -25,6 +25,7 @@ var IssueType = $injector.get("IssueType"); var IssueTypeCustomField = $injector.get("IssueTypeCustomField"); var CustomField = $injector.get("CustomField"); + var CompanyFieldCategory = $injector.get("CompanyFieldCategory"); var $log = $injector.get("$log"); var SweetAlert = $injector.get("SweetAlert"); @@ -45,6 +46,8 @@ $scope.fn.getCustomFieldList = getCustomFieldList; // �궗�슜�옄 �젙�쓽 �븘�뱶 紐⑸줉 議고쉶 $scope.fn.getMailTargetAll = getMailTargetAll; // �궗�슜�옄 �젙�쓽 �븘�뱶 紐⑸줉 議고쉶 $scope.fn.getIssueTypeCustomFieldList = getIssueTypeCustomFieldList; // �씠�뒋 �쑀�삎�뿉�꽌 �궗�슜以묒씤 �궗�슜�옄�젙�쓽 �븘�뱶媛��졇�삤湲� + $scope.fn.getCompanyTypeCategory = getCompanyTypeCategory; // �뾽泥� 移댄뀒怨좊━ 紐⑸줉 �젙蹂대�� 議고쉶�븳�떎. + $scope.fn.getCompanyChildSector = getCompanyChildSector; // �뾽泥� 移댄뀒怨좊━ 紐⑸줉 �젙蹂대�� 議고쉶�븳�떎. function getUserList(query, excludeList, page, callBack) { var conditions = { @@ -410,7 +413,7 @@ function getIssueIspFieldList(query, excludeList, page, callBack) { var conditions = { - ispName : query, + name : query, excludeIds : (function () { var excludeIds = []; @@ -443,7 +446,7 @@ function getIssueHostingFieldList(query, excludeList, page, callBack) { var conditions = { - hostingName : query, + name : query, excludeIds : (function () { var excludeIds = []; @@ -475,6 +478,91 @@ return deferred.promise; } + function getCompanyTypeCategory(typeCategory, query, excludeList, page, callBack) { + var conditions = { + typeCategory : typeCategory, + useValue : query, + excludeIds : (function () { + var excludeIds = []; + + angular.forEach(excludeList, function (exclude) { + excludeIds.push(exclude.id); + }); + + return excludeIds; + })() + }; + + var deferred = $q.defer(); + + if ($rootScope.isDefined(page) && page > 0) { + $rootScope.spinner = true; + } + + CompanyFieldCategory.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") { + if ($rootScope.isDefined(callBack)) { + callBack(result); + } + deferred.resolve(result.data.data); + } + else { + SweetAlert.swal($filter("translate")("common.failedToCompanyCategoryListLookUp"), result.data.message.message, "error"); + } + $rootScope.spinner = false; + }); + + return deferred.promise; + } + + function getCompanyChildSector(parentSector, parentSectorId, typeCategory, query, excludeList, page, callBack) { + var conditions = { + parentId : (function () { // �뾽醫�(��遺꾨쪟) + var parentId = ""; + if (parentSector != null && parentSector !== "") { + parentId = parentSector[0].id; + }else { + parentId = parentSectorId; + } + return parentId; + })(), + typeCategory : typeCategory, + useValue : query, + excludeIds : (function () { + var excludeIds = []; + + angular.forEach(excludeList, function (exclude) { + excludeIds.push(exclude.id); + }); + + return excludeIds; + })() + }; + + var deferred = $q.defer(); + + if ($rootScope.isDefined(page) && page > 0) { + $rootScope.spinner = true; + } + + CompanyFieldCategory.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") { + if ($rootScope.isDefined(callBack)) { + callBack(result); + } + deferred.resolve(result.data.data); + } + else { + SweetAlert.swal($filter("translate")("common.failedToCompanyCategoryListLookUp"), result.data.message.message, "error"); + } + $rootScope.spinner = false; + }); + + return deferred.promise; + } + function getPartnerList(query, excludeList, page, callBack) { var conditions = { partnerName : query, diff --git a/src/main/webapp/scripts/main.js b/src/main/webapp/scripts/main.js index 7e5677d..d2a94ba 100644 --- a/src/main/webapp/scripts/main.js +++ b/src/main/webapp/scripts/main.js @@ -355,6 +355,8 @@ 'companyFieldAddController' : 'app/companyField/companyFieldAdd.controller', // �뾽泥� �깮�꽦 而⑦듃濡ㅻ윭 'companyFieldModifyController' : 'app/companyField/companyFieldModify.controller', // �뾽泥� �닔�젙 而⑦듃濡ㅻ윭 + 'companyFieldCategoryService' : 'components/companyFieldCategory/companyFieldCategory.service', // �뾽泥� 移댄뀒怨좊━ + /* ISP */ 'ispFieldRoute' : 'app/ispField/ispField', // ISP route �젙蹂� 'ispFieldService' : 'components/ispField/ispField.service', // ISP 愿��젴�맂 �넻�떊 �떞�떦 @@ -600,7 +602,8 @@ 'companyFieldService', 'ispFieldService', 'hostingFieldService', - 'userWorkspaceService' + 'userWorkspaceService', + 'companyFieldCategoryService', ], function ($, angular, domReady, app, sortable, crypto) { // ���떆蹂대뱶�뿉�꽌 Sortable �씤�떇 紐삵븯�뒗 臾몄젣 �빐寃� window.Sortable = sortable; diff --git a/src/main/webapp/views/companyField/companyFieldAdd.html b/src/main/webapp/views/companyField/companyFieldAdd.html index 54c55d0..6a8450b 100644 --- a/src/main/webapp/views/companyField/companyFieldAdd.html +++ b/src/main/webapp/views/companyField/companyFieldAdd.html @@ -31,43 +31,6 @@ </div> <div class="form-group"> - <label class="issue-label"> - <span translate="ispField.select">ISP �꽑�깮</span> - </label> - <js-autocomplete-single data-input-name="ispField" - selected-model="vm.form.issueIspFields" - ng-model="vm.form.ispName" - custom-input="true" - search="vm.form.ispName" - source="fn.getIssueIspFieldList(vm.ispName, vm.form.issueIspFields, vm.autoCompletePage.issueIspFields.page, fn.getIssueIspFieldListCallBack)" - page="vm.autoCompletePage.ispField.page" - total-page="vm.autoCompletePage.ispField.totalPage" - input-disabled="false" - translation-texts="{ empty : 'common.emptyIsp' }" - broad-cast="ispFieldEvent" - extra-settings="{ displayProp : 'name' , idProp : 'id', imageable : false, imagePathProp : '', - type : '', maxlength : 200, autoResize : false, stopRemoveBodyEvent : true }"></js-autocomplete-single> - </div> - - <div class="form-group"> - <label class="issue-label"> - <span translate="hostingField.select">�샇�뒪�똿 �꽑�깮</span> - </label> - <js-autocomplete-single data-input-name="hostingField" - selected-model="vm.form.issueHostingFields" - ng-model="vm.form.hostingName" - custom-input="true" - search="vm.hostingName" - source="fn.getIssueHostingFieldList(vm.hostingName, vm.form.issueHostingFields, vm.autoCompletePage.hostingField.page, fn.getIssueHostingFieldListCallBack)" - page="vm.autoCompletePage.hostingField.page" - total-page="vm.autoCompletePage.hostingField.totalPage" - input-disabled="false" - translation-texts="{ empty : 'common.emptyHosting' }" - broad-cast="hostingFieldEvent" - extra-settings="{ displayProp : 'name' , idProp : 'id', imageable : false, imagePathProp : '', - type : '', maxlength : 200, autoResize : false, stopRemoveBodyEvent : true }"></js-autocomplete-single> - </div> - <div class="form-group"> <label for="companyFieldAddForm10" class="issue-label"> <span translate="companyField.url">url</span> <code class="highlighter-rouge">*</code> @@ -87,140 +50,223 @@ translate="common.invalidUrlFormat">url �삎�떇�씠 留욎� �븡�뒿�땲�떎. </div> </div> - <!--<div class="row"> - <div class="col-md-3"> - <div class="form-group mb10"> - <label for="companyFieldAddForm2" class="issue-label"> <span - translate="companyField.company">�뾽泥� 遺꾨쪟</span> + + <div class="row"> + <div class="col-lg-6"> + <div class="form-group"> + <label class="issue-label"> + <span translate="ispField.select">ISP �꽑�깮</span> </label> - <select id="companyFieldAddForm2" - name="companyType" - class="form-control input-sm issue-select-label" - ng-model="vm.form.companyType" - > - <option value="" translate="common.selectTarget" ng-style="{ 'color' : '#353535' }"><span - translate="common.selectTarget">���긽 �꽑�깮</span> - </option> - <option value="personal">媛쒖씤</option> - <option value="business">湲곗뾽</option> - </select> + <js-autocomplete-single data-input-name="ispField" + selected-model="vm.form.issueIspFields" + ng-model="vm.form.ispName" + custom-input="true" + search="vm.form.ispName" + source="fn.getIssueIspFieldList(vm.form.ispName, vm.form.issueIspFields, vm.autoCompletePage.issueIspFields.page, fn.getIssueIspFieldListCallBack)" + page="vm.autoCompletePage.ispField.page" + total-page="vm.autoCompletePage.ispField.totalPage" + input-disabled="false" + translation-texts="{ empty : 'common.emptyIsp' }" + broad-cast="ispFieldEvent" + extra-settings="{ displayProp : 'name' , idProp : 'id', imageable : false, imagePathProp : '', + type : '', maxlength : 200, autoResize : false, stopRemoveBodyEvent : true }"></js-autocomplete-single> </div> </div> - <div class="col-md-3"> - <div class="form-group mb10"> - <label for="companyFieldAddForm3" class="issue-label"> - <span translate="companyField.profitYN">�쁺由�/鍮꾩쁺由�</span> + <div class="col-lg-6"> + <div class="form-group"> + <label class="issue-label"> + <span translate="hostingField.select">�샇�뒪�똿 �꽑�깮</span> </label> - <select id="companyFieldAddForm3" - name="profitYN" - class="form-control input-sm issue-select-label" - ng-model="vm.form.profitYN" - > - <option value="" translate="common.selectTarget" ng-style="{ 'color' : '#353535' }"> - <span translate="common.selectTarget">���긽 �꽑�깮</span> - </option> - <option value="profit">�쁺由�</option> - <option value="nonProfit">鍮꾩쁺由�</option> - </select> + <js-autocomplete-single data-input-name="hostingField" + selected-model="vm.form.issueHostingFields" + ng-model="vm.form.hostingName" + custom-input="true" + search="vm.form.hostingName" + source="fn.getIssueHostingFieldList(vm.form.hostingName, vm.form.issueHostingFields, vm.autoCompletePage.hostingField.page, fn.getIssueHostingFieldListCallBack)" + page="vm.autoCompletePage.hostingField.page" + total-page="vm.autoCompletePage.hostingField.totalPage" + input-disabled="false" + translation-texts="{ empty : 'common.emptyHosting' }" + broad-cast="hostingFieldEvent" + extra-settings="{ displayProp : 'name' , idProp : 'id', imageable : false, imagePathProp : '', + type : '', maxlength : 200, autoResize : false, stopRemoveBodyEvent : true }"></js-autocomplete-single> </div> </div> - <div class="col-md-6"> - <div class="form-group mb10"> - <label for="companyFieldAddForm4" class="issue-label"> <span - translate="companyField.industry">�궛�뾽 遺꾨쪟</span> + </div> + + <div class="row"> + <div class="col-lg-4"> + <div class="form-group"> + <label class="issue-label"><span translate="companyField.tel">�쟾�솕踰덊샇</span></label> + <div class="input-group" ng-repeat="tell in vm.form.inputTels"> + <input type="text" + name="tel" + class="form-control mt-1" + kr-input + ng-model="vm.form.tels[$index]" + input-regex="[^0-9]" + maxlength="11" + minlength="9" + autocomplete="off"> + <span class="select3-selection__email__remove" ng-click="fn.removeTelInput($index)">횞</span> + </div> + <div ng-show="companyFieldAddForm.tel.$error.minlength" class="help-block form-text text-danger" + translate="common.least9CharactersTel">�쟾�솕踰덊샇 �삎�떇�씠 留욎� �븡�뒿�땲�떎.(9�옄由� �씠�긽) + </div> + </div> + </div> + <div class="col-lg-2 mt-25" style="margin-left: -15px"> + <div> + <button type="button" class="btn btn-secondary" ng-click="fn.addTel()"> + <span translate="common.add">異붽�</span> + </button> + </div> + </div> + <div class="col-lg-5"> + <div class="form-group"> + <label class="issue-label"> + <span translate="companyField.email">�씠硫붿씪</span> </label> - <input id="companyFieldAddForm4" - name="industry" + <div class="input-group" ng-repeat="mail in vm.form.inputMails"> + <input type="text" + name="email" + class="form-control mt-1" + kr-input + ng-model="vm.form.emails[$index]" + ng-pattern="/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/" + autocomplete="off"> + <span class="select3-selection__email__remove" ng-click="fn.removeMailInput($index)">횞</span> + </div> + <div ng-show="companyFieldAddForm.email.$error.pattern" class="help-block form-text text-danger" + translate="users.invalidEmailFormat">�씠硫붿씪 �삎�떇�씠 留욎� �븡�뒿�땲�떎. + </div> + </div> + </div> + <div class="col-lg-2 mt-25" style="margin-left: -15px; margin-right: -16px;"> + <div> + <button type="button" class="btn btn-secondary" ng-click="fn.addMail()"> + <span translate="common.add">異붽�</span> + </button> + </div> + </div> + </div> + + <div class="row"> + <div class="col-lg-6"> + <div class="form-group"> + <label for="companyFieldAddForm9" class="issue-label"> + <span translate="companyField.manager">�떞�떦�옄</span> + </label> + <input id="companyFieldAddForm9" + name="manager" type="text" class="form-control" kr-input input-regex="[^a-zA-Z0-9 媛�-�옡�꽦-�뀕�뀖-�뀭\u318D\u119E\u11A2\u2022\u2025a\u00B7\uFE55]" autocomplete="off" - ng-model="vm.form.industry" - ng-maxlength="200" - maxlength="200" - > + ng-model="vm.form.manager" + ng-maxlength="100" + maxlength="100" + > + </div> + </div> + <div class="col-lg-6"> + <div class="form-group"> + <label class="issue-label"> + <span translate="companyField.companyType">湲곗뾽援щ텇</span> + </label> + <js-autocomplete-single data-input-name="companyType" + selected-model="vm.form.companyTypes" + ng-model="vm.form.companyType" + custom-input="false" + search="vm.form.companyType" + source="fn.getCompanyTypeCategory(vm.typeCategory.companyType, vm.form.companyType, vm.form.companyTypes, vm.autoCompletePage.companyType.page, fn.getCompanyTypeListCallBack)" + page="vm.autoCompletePage.companyType.page" + total-page="vm.autoCompletePage.companyType.totalPage" + input-disabled="false" + translation-texts="{ empty : 'common.emptyCompanyType' }" + extra-settings="{ displayProp : 'useValue' , idProp : 'id', imageable : false, imagePathProp : '', + type : '', maxlength : 200, autoResize : false, stopRemoveBodyEvent : true }"></js-autocomplete-single> </div> </div> </div> <div class="form-group"> - <label for="companyFieldAddForm5" class="issue-label"> - <span translate="companyField.domain">�룄硫붿씤</span> + <label class="issue-label"> + <span translate="companyField.parentSector">�뾽醫�(��遺꾨쪟)</span> </label> - <input id="companyFieldAddForm5" - name="domain" - type="text" - class="form-control" - kr-input - input-regex="[^a-zA-Z0-9 媛�-�옡�꽦-�뀕�뀖-�뀭\u318D\u119E\u11A2\u2022\u2025a\u00B7\uFE55]" - autocomplete="off" - ng-model="vm.form.domain" - ng-maxlength="200" - maxlength="200" - > - <!–<small translate="notice.enterSpecialCharacters">�젣紐⑹뿉�뒗 �듅�닔 臾몄옄瑜� �엯�젰�븷 �닔 �뾾�뒿�땲�떎.</small>–> - </div>--> - <div> - <div class="form-group"> - <label for="companyFieldAddForm9" class="issue-label"> - <span translate="companyField.manager">�떞�떦�옄</span> - </label> - <input id="companyFieldAddForm9" - name="manager" - type="text" - class="form-control" - kr-input - input-regex="[^a-zA-Z0-9 媛�-�옡�꽦-�뀕�뀖-�뀭\u318D\u119E\u11A2\u2022\u2025a\u00B7\uFE55]" - autocomplete="off" - ng-model="vm.form.manager" - ng-maxlength="100" - maxlength="100" - > - <!--<small translate="notice.enterSpecialCharacters">�젣紐⑹뿉�뒗 �듅�닔 臾몄옄瑜� �엯�젰�븷 �닔 �뾾�뒿�땲�떎.</small>--> - </div> + <js-autocomplete-single data-input-name="parentSector" + selected-model="vm.form.parentSectors" + ng-model="vm.form.parentSector" + custom-input="false" + search="vm.form.parentSector" + source="fn.getCompanyTypeCategory(vm.typeCategory.parentSector, vm.form.parentSector, vm.form.parentSectors, vm.autoCompletePage.parentSector.page, fn.getParentSectorListCallBack)" + page="vm.autoCompletePage.parentSector.page" + total-page="vm.autoCompletePage.parentSector.totalPage" + input-disabled="false" + translation-texts="{ empty : 'common.emptyParentSector' }" + extra-settings="{ displayProp : 'useValue' , idProp : 'id', imageable : false, imagePathProp : '', + type : '', maxlength : 200, autoResize : false, stopRemoveBodyEvent : true }"></js-autocomplete-single> </div> - <div> - <div class="form-group"> - <label for="companyFieldAddForm7" class="issue-label"><span translate="companyField.tel">�쟾�솕踰덊샇</span></label> - <input id="companyFieldAddForm7" - name="tel" - type="text" - class="form-control" - kr-input - input-regex="[^0-9]" - autocomplete="off" - ng-model="vm.form.tel" - maxlength="11" - minlength="9"> - <div ng-show="companyFieldAddForm.tel.$error.minlength" class="help-block form-text text-danger" - translate="common.least9CharactersTel">�쟾�솕踰덊샇 �삎�떇�씠 留욎� �븡�뒿�땲�떎.(9�옄由� �씠�긽) + <div class="form-group"> + <label class="issue-label"> + <span translate="companyField.childSector">�뾽醫�(以묐텇瑜�)</span> + </label> + <js-autocomplete-single data-input-name="childSector" + selected-model="vm.form.childSectors" + ng-model="vm.form.childSector" + custom-input="false" + search="vm.form.childSector" + source="fn.getCompanyChildSector(vm.form.parentSectorId, vm.form.parentSectors[0].id, vm.typeCategory.childSector, vm.form.childSector, vm.form.childSectors, vm.autoCompletePage.childSector.page, fn.getChildSectorListCallBack)" + page="vm.autoCompletePage.childSector.page" + total-page="vm.autoCompletePage.childSector.totalPage" + input-disabled="false" + translation-texts="{ empty : 'common.emptyChildSector' }" + extra-settings="{ displayProp : 'useValue' , idProp : 'id', imageable : false, imagePathProp : '', + type : '', maxlength : 200, autoResize : false, stopRemoveBodyEvent : true }"></js-autocomplete-single> + </div> + + <div class="row"> + <div class="col-lg-6"> + <div class="form-group"> + <label class="issue-label"> + <span translate="companyField.region">吏��뿭</span> + </label> + <js-autocomplete-single data-input-name="region" + selected-model="vm.form.regions" + ng-model="vm.form.region" + custom-input="false" + search="vm.form.region" + source="fn.getCompanyTypeCategory(vm.typeCategory.region, vm.form.region, vm.form.regions, vm.autoCompletePage.region.page, fn.getRegionListCallBack)" + page="vm.autoCompletePage.region.page" + total-page="vm.autoCompletePage.region.totalPage" + input-disabled="false" + translation-texts="{ empty : 'common.emptyRegion' }" + extra-settings="{ displayProp : 'useValue' , idProp : 'id', imageable : false, imagePathProp : '', + type : '', maxlength : 200, autoResize : false, stopRemoveBodyEvent : true }"></js-autocomplete-single> </div> -<!-- <div ng-show="companyFieldAddForm.tel.$error.pattern" class="help-block form-text text-danger"--> -<!-- translate="companyField.invalidTelFormat">�쟾�솕踰덊샇 �삎�떇�씠 留욎� �븡�뒿�땲�떎. xxx-xxx-xxxx �삎�떇�쑝濡� �엯�젰�븯�꽭�슂.--> -<!-- </div>--> </div> - </div> - <div> - <div class="form-group"> - <label for="companyFieldAddForm6" class="issue-label"> - <span translate="companyField.email">�씠硫붿씪</span> - </label> - <input id="companyFieldAddForm6" - name="email" - type="email" - class="form-control" - autocomplete="off" - maxLength="50" - ng-model="vm.form.email" - kr-input - ng-pattern="/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/" - > - <div ng-show="companyFieldAddForm.email.$error.pattern" class="help-block form-text text-danger" - translate="users.invalidEmailFormat">�씠硫붿씪 �삎�떇�씠 留욎� �븡�뒿�땲�떎. + <div class="col-lg-6"> + <div class="form-group"> + <label class="issue-label"> + <span translate="companyField.status">�긽�깭</span> + </label> + <js-autocomplete-single data-input-name="status" + selected-model="vm.form.statuses" + ng-model="vm.form.status" + custom-input="false" + search="vm.form.status" + source="fn.getCompanyTypeCategory(vm.typeCategory.status, vm.form.status, vm.form.statuses, vm.autoCompletePage.status.page, fn.getStatusListCallBack)" + page="vm.autoCompletePage.status.page" + total-page="vm.autoCompletePage.status.totalPage" + input-disabled="false" + translation-texts="{ empty : 'common.emptyStatus' }" + extra-settings="{ displayProp : 'useValue' , idProp : 'id', imageable : false, imagePathProp : '', + type : '', maxlength : 200, autoResize : false, stopRemoveBodyEvent : true }"></js-autocomplete-single> </div> </div> </div> + <div> <div class="form-group"> <label for="companyFieldAddForm8" class="issue-label"> diff --git a/src/main/webapp/views/companyField/companyFieldModify.html b/src/main/webapp/views/companyField/companyFieldModify.html index 8211942..b66d3e4 100644 --- a/src/main/webapp/views/companyField/companyFieldModify.html +++ b/src/main/webapp/views/companyField/companyFieldModify.html @@ -30,196 +30,243 @@ <small translate="companyField.enterSpecialCharacters">�뾽泥� �씠由꾩뿉�뒗 �듅�닔 臾몄옄瑜� �엯�젰 �븷�닔 �뾾�뒿�땲�떎.</small> </div> <div class="form-group"> - <label class="issue-label"> - <span translate="ispField.select">ISP �꽑�깮</span> + <label for="companyFieldAddForm10" class="issue-label"> + <span translate="companyField.url">url</span> </label> - <js-autocomplete-single data-input-name="ispField" - selected-model="vm.form.issueIspFields" - ng-model="vm.form.ispName" - custom-input="true" - search="vm.form.ispName" - source="fn.getIssueIspFieldList(vm.ispName, vm.form.issueIspFields, vm.autoCompletePage.issueIspFields.page, fn.getIssueIspFieldListCallBack)" - page="vm.autoCompletePage.ispField.page" - total-page="vm.autoCompletePage.ispField.totalPage" - input-disabled="false" - translation-texts="{ empty : 'common.emptyIsp' }" - broad-cast="ispFieldEvent" - extra-settings="{ displayProp : 'name' , idProp : 'id', imageable : false, imagePathProp : '', - type : '', maxlength : 200, autoResize : false, stopRemoveBodyEvent : true }"></js-autocomplete-single> + <input id="companyFieldAddForm10" + name="url" + type="text" + class="form-control" + kr-input + autocomplete="off" + ng-model="vm.form.url" + ng-maxlength="200" + maxlength="200" + ng-pattern="/(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/" + > + <div ng-show="companyFieldModifyForm.url.$error.pattern" class="help-block form-text text-danger" + translate="common.invalidUrlFormat">url �삎�떇�씠 留욎� �븡�뒿�땲�떎. + </div> </div> - - <div class="form-group"> - <label class="issue-label"> - <span translate="hostingField.select">�샇�뒪�똿 �꽑�깮</span> - </label> - <js-autocomplete-single data-input-name="hostingField" - selected-model="vm.form.issueHostingFields" - ng-model="vm.form.hostingName" - custom-input="true" - search="vm.form.hostingName" - source="fn.getIssueHostingFieldList(vm.hostingName, vm.form.issueHostingFields, vm.autoCompletePage.hostingField.page, fn.getIssueHostingFieldListCallBack)" - page="vm.autoCompletePage.hostingField.page" - total-page="vm.autoCompletePage.hostingField.totalPage" - input-disabled="false" - translation-texts="{ empty : 'common.emptyHosting' }" - broad-cast="hostingFieldEvent" - extra-settings="{ displayProp : 'name' , idProp : 'id', imageable : false, imagePathProp : '', - type : '', maxlength : 200, autoResize : false, stopRemoveBodyEvent : true }"></js-autocomplete-single> - </div> - <div> - <div class="form-group"> - <label for="companyFieldAddForm10" class="issue-label"> - <span translate="companyField.url">url</span> - </label> - <input id="companyFieldAddForm10" - name="url" - type="text" - class="form-control" - kr-input - autocomplete="off" - ng-model="vm.form.url" - ng-maxlength="200" - maxlength="200" - ng-pattern="/(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/" - > - <div ng-show="companyFieldModifyForm.url.$error.pattern" class="help-block form-text text-danger" - translate="common.invalidUrlFormat">url �삎�떇�씠 留욎� �븡�뒿�땲�떎. + <div class="row"> + <div class="col-lg-6"> + <div class="form-group"> + <label class="issue-label"> + <span translate="ispField.select">ISP �꽑�깮</span> + </label> + <js-autocomplete-single data-input-name="ispField" + selected-model="vm.form.issueIspFields" + ng-model="vm.form.ispName" + custom-input="true" + search="vm.form.ispName" + source="fn.getIssueIspFieldList(vm.form.ispName, vm.form.issueIspFields, vm.autoCompletePage.issueIspFields.page, fn.getIssueIspFieldListCallBack)" + page="vm.autoCompletePage.ispField.page" + total-page="vm.autoCompletePage.ispField.totalPage" + input-disabled="false" + translation-texts="{ empty : 'common.emptyIsp' }" + broad-cast="ispFieldEvent" + extra-settings="{ displayProp : 'name' , idProp : 'id', imageable : false, imagePathProp : '', + type : '', maxlength : 200, autoResize : false, stopRemoveBodyEvent : true }"></js-autocomplete-single> + </div> + </div> + <div class="col-lg-6"> + <div class="form-group"> + <label class="issue-label"> + <span translate="hostingField.select">�샇�뒪�똿 �꽑�깮</span> + </label> + <js-autocomplete-single data-input-name="hostingField" + selected-model="vm.form.issueHostingFields" + ng-model="vm.form.hostingName" + custom-input="true" + search="vm.form.hostingName" + source="fn.getIssueHostingFieldList(vm.form.hostingName, vm.form.issueHostingFields, vm.autoCompletePage.hostingField.page, fn.getIssueHostingFieldListCallBack)" + page="vm.autoCompletePage.hostingField.page" + total-page="vm.autoCompletePage.hostingField.totalPage" + input-disabled="false" + translation-texts="{ empty : 'common.emptyHosting' }" + broad-cast="hostingFieldEvent" + extra-settings="{ displayProp : 'name' , idProp : 'id', imageable : false, imagePathProp : '', + type : '', maxlength : 200, autoResize : false, stopRemoveBodyEvent : true }"></js-autocomplete-single> </div> </div> </div> - <!--<div class="row"> - <div class="col-md-3"> - <div class="form-group mb10"> - <label for="companyFieldModifyForm2" class="issue-label"> <span - translate="companyField.company">�뾽泥� 遺꾨쪟</span> + <div class="row"> + <div class="col-lg-4"> + <div class="form-group"> + <label class="issue-label"> + <span translate="companyField.tel">�쟾�솕踰덊샇</span> </label> - <select id="companyFieldModifyForm2" - name="companyType" - class="form-control input-sm issue-select-label" - ng-model="vm.form.companyType" - > - <option value="" translate="common.selectTarget" ng-style="{ 'color' : '#353535' }"><span - translate="common.selectTarget">���긽 �꽑�깮</span> - </option> - <option value="personal">媛쒖씤</option> - <option value="business">湲곗뾽</option> - </select> + <div class="input-group" ng-repeat="tell in vm.form.inputTels"> + <input type="text" + name="tel" + class="form-control mt-1" + kr-input + ng-model="vm.form.tels[$index]" + input-regex="[^0-9]" + maxlength="11" + minlength="9" + autocomplete="off"> + <span class="select3-selection__email__remove" ng-click="fn.removeTelInput($index)">횞</span> + </div> + <div ng-show="companyFieldModifyForm.tel.$error.minlength" class="help-block form-text text-danger" + translate="common.least9CharactersTel">�쟾�솕踰덊샇 �삎�떇�씠 留욎� �븡�뒿�땲�떎.(9�옄由� �씠�긽) + </div> </div> </div> - <div class="col-md-3"> - <div class="form-group mb10"> - <label for="companyFieldModifyForm3" class="issue-label"> - <span translate="companyField.profitYN">�쁺由�/鍮꾩쁺由�</span> - </label> - <select id="companyFieldModifyForm3" - name="profitYN" - class="form-control input-sm issue-select-label" - ng-model="vm.form.profitYN" - > - <option value="" translate="common.selectTarget" ng-style="{ 'color' : '#353535' }"> - <span translate="common.selectTarget">���긽 �꽑�깮</span> - </option> - <option value="profit">�쁺由�</option> - <option value="nonProfit">鍮꾩쁺由�</option> - </select> + <div class="col-lg-2 mt-25" style="margin-left: -15px"> + <div> + <button type="button" class="btn btn-secondary" ng-click="fn.addTel()"> + <span translate="common.add">異붽�</span> + </button> </div> </div> - <div class="col-md-6"> - <div class="form-group mb10"> - <label for="companyFieldModifyForm4" class="issue-label"> <span - translate="companyField.industry">�궛�뾽 遺꾨쪟</span> + <div class="col-lg-5"> + <div class="form-group"> + <label class="issue-label"> + <span translate="companyField.email">�씠硫붿씪</span> </label> - <input id="companyFieldModifyForm4" - name="industry" + <div class="input-group" ng-repeat="mail in vm.form.inputMails"> + <input type="text" + name="email" + class="form-control mt-1" + kr-input + ng-model="vm.form.emails[$index]" + ng-pattern="/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/" + autocomplete="off"> + <span class="select3-selection__email__remove" ng-click="fn.removeMailInput($index)">횞</span> + </div> + <div ng-show="companyFieldModifyForm.email.$error.pattern" class="help-block form-text text-danger" + translate="users.invalidEmailFormat">�씠硫붿씪 �삎�떇�씠 留욎� �븡�뒿�땲�떎. + </div> + </div> + </div> + <div class="col-lg-2 mt-25" style="margin-left: -15px; margin-right: -16px;"> + <div> + <button type="button" class="btn btn-secondary" ng-click="fn.addMail()"> + <span translate="common.add">異붽�</span> + </button> + </div> + </div> + </div> + <div class="row"> + <div class="col-lg-6"> + <div class="form-group"> + <label for="companyFieldModifyForm9" class="issue-label"> + <span translate="companyField.manager">�떞�떦�옄</span> + </label> + <input id="companyFieldModifyForm9" + name="manager" type="text" class="form-control" kr-input input-regex="[^a-zA-Z0-9 媛�-�옡�꽦-�뀕�뀖-�뀭\u318D\u119E\u11A2\u2022\u2025a\u00B7\uFE55]" autocomplete="off" - ng-model="vm.form.industry" - ng-maxlength="200" - maxlength="200" - > + ng-model="vm.form.manager" + ng-maxlength="100" + maxlength="100" + > + </div> + </div> + <div class="col-lg-6"> + <div class="form-group"> + <label class="issue-label"> + <span translate="companyField.companyType">湲곗뾽援щ텇</span> + </label> + <js-autocomplete-single data-input-name="companyType" + selected-model="vm.form.companyTypes" + ng-model="vm.form.companyType" + custom-input="false" + search="vm.form.companyType" + source="fn.getCompanyTypeCategory(vm.typeCategory.companyType, vm.form.companyType, vm.form.companyTypes, vm.autoCompletePage.companyType.page, fn.getCompanyTypeListCallBack)" + page="vm.autoCompletePage.companyType.page" + total-page="vm.autoCompletePage.companyType.totalPage" + input-disabled="false" + translation-texts="{ empty : 'common.emptyCompanyType' }" + broad-cast="companyTypeEvent" + extra-settings="{ displayProp : 'useValue' , idProp : 'id', imageable : false, imagePathProp : '', + type : '', maxlength : 200, autoResize : false, stopRemoveBodyEvent : true }"></js-autocomplete-single> </div> </div> </div> - - <div class="form-group"> - <label for="companyFieldModifyForm5" class="issue-label"> - <span translate="companyField.domain">�룄硫붿씤</span> - </label> - <input id="companyFieldModifyForm5" - name="domain" - type="text" - class="form-control" - kr-input - input-regex="[^a-zA-Z0-9 媛�-�옡�꽦-�뀕�뀖-�뀭\u318D\u119E\u11A2\u2022\u2025a\u00B7\uFE55]" - autocomplete="off" - ng-model="vm.form.domain" - ng-maxlength="200" - maxlength="200" - > - <!–<small translate="notice.enterSpecialCharacters">�젣紐⑹뿉�뒗 �듅�닔 臾몄옄瑜� �엯�젰�븷 �닔 �뾾�뒿�땲�떎.</small>–> - </div>--> <div> <div class="form-group"> - <label for="companyFieldModifyForm9" class="issue-label"> - <span translate="companyField.manager">�떞�떦�옄</span> + <label class="issue-label"> + <span translate="companyField.parentSector">�뾽醫�(��遺꾨쪟)</span> </label> - <input id="companyFieldModifyForm9" - name="manager" - type="text" - class="form-control" - kr-input - input-regex="[^a-zA-Z0-9 媛�-�옡�꽦-�뀕�뀖-�뀭\u318D\u119E\u11A2\u2022\u2025a\u00B7\uFE55]" - autocomplete="off" - ng-model="vm.form.manager" - ng-maxlength="100" - maxlength="100" - > - <!--<small translate="notice.enterSpecialCharacters">�젣紐⑹뿉�뒗 �듅�닔 臾몄옄瑜� �엯�젰�븷 �닔 �뾾�뒿�땲�떎.</small>--> + <js-autocomplete-single data-input-name="parentSector" + selected-model="vm.form.parentSectors" + ng-model="vm.form.parentSector" + custom-input="false" + search="vm.form.parentSector" + source="fn.getCompanyTypeCategory(vm.typeCategory.parentSector, vm.form.parentSector, vm.form.parentSectors, vm.autoCompletePage.parentSector.page, fn.getParentSectorListCallBack)" + page="vm.autoCompletePage.parentSector.page" + total-page="vm.autoCompletePage.parentSector.totalPage" + input-disabled="false" + translation-texts="{ empty : 'common.emptyParentSector' }" + broad-cast="parentSectorEvent" + extra-settings="{ displayProp : 'useValue' , idProp : 'id', imageable : false, imagePathProp : '', + type : '', maxlength : 200, autoResize : false, stopRemoveBodyEvent : true }"></js-autocomplete-single> </div> </div> <div> <div class="form-group"> - <label for="companyFieldModifyForm7" class="issue-label"> - <span translate="companyField.tel">�쟾�솕踰덊샇</span> + <label class="issue-label"> + <span translate="companyField.childSector">�뾽醫�(以묐텇瑜�)</span> </label> - <input id="companyFieldModifyForm7" - name="tel" - type="text" - class="form-control" - kr-input - input-regex="[^0-9]" - autocomplete="off" - ng-model="vm.form.tel" - maxlength="11" - minlength="9"> - <div ng-show="companyFieldModifyForm.tel.$error.minlength" class="help-block form-text text-danger" - translate="common.least9CharactersTel">�쟾�솕踰덊샇 �삎�떇�씠 留욎� �븡�뒿�땲�떎.(9�옄由� �씠�긽) + <js-autocomplete-single data-input-name="childSector" + selected-model="vm.form.childSectors" + ng-model="vm.form.childSector" + custom-input="false" + search="vm.form.childSector" + source="fn.getCompanyChildSector(vm.form.parentSectors, vm.form.parentSectorId, vm.typeCategory.childSector, vm.form.childSector, vm.form.childSectors, vm.autoCompletePage.childSector.page, fn.getChildSectorListCallBack)" + page="vm.autoCompletePage.childSector.page" + total-page="vm.autoCompletePage.childSector.totalPage" + input-disabled="false" + translation-texts="{ empty : 'common.emptyChildSector' }" + broad-cast="childSectorEvent" + extra-settings="{ displayProp : 'useValue' , idProp : 'id', imageable : false, imagePathProp : '', + type : '', maxlength : 200, autoResize : false, stopRemoveBodyEvent : true }"></js-autocomplete-single> + </div> + </div> + <div class="row"> + <div class="col-lg-6"> + <div class="form-group"> + <label class="issue-label"> + <span translate="companyField.region">吏��뿭</span> + </label> + <js-autocomplete-single data-input-name="region" + selected-model="vm.form.regions" + ng-model="vm.form.region" + custom-input="false" + search="vm.form.region" + source="fn.getCompanyTypeCategory(vm.typeCategory.region, vm.form.region, vm.form.regions, vm.autoCompletePage.region.page, fn.getRegionListCallBack)" + page="vm.autoCompletePage.region.page" + total-page="vm.autoCompletePage.region.totalPage" + input-disabled="false" + translation-texts="{ empty : 'common.emptyRegion' }" + broad-cast="regionEvent" + extra-settings="{ displayProp : 'useValue' , idProp : 'id', imageable : false, imagePathProp : '', + type : '', maxlength : 200, autoResize : false, stopRemoveBodyEvent : true }"></js-autocomplete-single> </div> -<!-- <div ng-show="companyFieldModifyForm.tel.$error.pattern" class="help-block form-text text-danger"--> -<!-- translate="companyField.invalidTelFormat">�쟾�솕踰덊샇 �삎�떇�씠 留욎� �븡�뒿�땲�떎. xxx-xxx-xxxx �삎�떇�쑝濡� �엯�젰�븯�꽭�슂.--> -<!-- </div>--> </div> - </div> - <div> - <div class="form-group"> - <label for="companyFieldModifyForm6" class="issue-label"> - <span translate="companyField.email">�씠硫붿씪</span> - </label> - <input id="companyFieldModifyForm6" - name="email" - type="email" - class="form-control" - autocomplete="off" - maxLength="50" - ng-model="vm.form.email" - kr-input - ng-pattern="/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/" - > - <div ng-show="companyFieldModifyForm.email.$error.pattern" class="help-block form-text text-danger" - translate="users.invalidEmailFormat">�씠硫붿씪 �삎�떇�씠 留욎� �븡�뒿�땲�떎. + <div class="col-lg-6"> + <div class="form-group"> + <label class="issue-label"> + <span translate="companyField.status">�긽�깭</span> + </label> + <js-autocomplete-single data-input-name="status" + selected-model="vm.form.statuses" + ng-model="vm.form.status" + custom-input="false" + search="vm.form.status" + source="fn.getCompanyTypeCategory(vm.typeCategory.status, vm.form.status, vm.form.statuses, vm.autoCompletePage.status.page, fn.getStatusListCallBack)" + page="vm.autoCompletePage.status.page" + total-page="vm.autoCompletePage.status.totalPage" + input-disabled="false" + translation-texts="{ empty : 'common.emptyStatus' }" + broad-cast="statusEvent" + extra-settings="{ displayProp : 'useValue' , idProp : 'id', imageable : false, imagePathProp : '', + type : '', maxlength : 200, autoResize : false, stopRemoveBodyEvent : true }"></js-autocomplete-single> </div> </div> </div> diff --git a/src/main/webapp/views/hostingField/hostingFieldAdd.html b/src/main/webapp/views/hostingField/hostingFieldAdd.html index 586f56a..99c340c 100644 --- a/src/main/webapp/views/hostingField/hostingFieldAdd.html +++ b/src/main/webapp/views/hostingField/hostingFieldAdd.html @@ -65,46 +65,64 @@ > </div> </div> - <div> - <div class="form-group"> - <label for="hostingFieldAddForm7" class="issue-label"> - <span translate="hostingField.tel">�쟾�솕踰덊샇</span> - </label> - <input id="hostingFieldAddForm7" - name="tel" - type="text" - class="form-control" - kr-input - input-regex="[^0-9]" - autocomplete="off" - ng-model="vm.form.tel" - maxlength="11" - minlength="9"> - <div ng-show="hostingFieldAddForm.tel.$error.minlength" class="help-block form-text text-danger" - translate="common.least9CharactersTel">�쟾�솕踰덊샇 �삎�떇�씠 留욎� �븡�뒿�땲�떎.(9�옄由� �씠�긽) + <div class="row"> + <div class="col-lg-4"> + <div class="form-group"> + <label class="issue-label"> + <span translate="hostingField.tel">�쟾�솕踰덊샇</span> + </label> + <div class="input-group" ng-repeat="i in vm.form.inputTels"> + <input name="tel" + type="text" + class="form-control" + kr-input + input-regex="[^0-9]" + autocomplete="off" + ng-model="vm.form.tels[$index]" + maxlength="11" + minlength="9"> + <span class="select3-selection__email__remove" ng-click="fn.removeTelInput($index)">횞</span> + </div> + <div ng-show="hostingFieldAddForm.tel.$error.minlength" class="help-block form-text text-danger" + translate="common.least9CharactersTel">�쟾�솕踰덊샇 �삎�떇�씠 留욎� �븡�뒿�땲�떎.(9�옄由� �씠�긽) + </div> </div> -<!-- <div ng-show="hostingFieldAddForm.tel.$error.pattern" class="help-block form-text text-danger"--> -<!-- translate="companyField.invalidTelFormat">�쟾�솕踰덊샇 �삎�떇�씠 留욎� �븡�뒿�땲�떎. xxx-xxx-xxxx �삎�떇�쑝濡� �엯�젰�븯�꽭�슂.--> -<!-- </div>--> </div> - </div> - <div> - <div class="form-group"> - <label for="hostingFieldAddForm6" class="issue-label"> - <span translate="hostingField.email">�씠硫붿씪</span> - </label> - <input id="hostingFieldAddForm6" - name="email" - type="email" - class="form-control" - autocomplete="off" - maxLength="50" - ng-model="vm.form.email" - kr-input - ng-pattern="/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/" - > - <div ng-show="hostingFieldAddForm.email.$error.pattern" class="help-block form-text text-danger" - translate="users.invalidEmailFormat">�씠硫붿씪 �삎�떇�씠 留욎� �븡�뒿�땲�떎. + <div class="col-lg-2 mt-25" style="margin-left: -15px"> + <div> + <button type="button" class="btn btn-secondary" ng-click="fn.addTel()"> + <span translate="common.add">異붽�</span> + </button> + </div> + </div> + <div class="col-lg-5"> + <div class="form-group"> + <label class="issue-label"> + <span translate="hostingField.email">�씠硫붿씪</span> + </label> + <div class="input-group" ng-repeat="mail in vm.form.inputMails"> + <input id="hostingFieldAddForm6" + name="email" + type="email" + class="form-control" + autocomplete="off" + maxLength="50" + ng-model="vm.form.emails[$index]" + kr-input + ng-pattern="/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/" + > + <span class="select3-selection__email__remove" ng-click="fn.removeMailInput($index)">횞</span> + </div> + <div ng-show="hostingFieldAddForm.email.$error.pattern" class="help-block form-text text-danger" + translate="users.invalidEmailFormat">�씠硫붿씪 �삎�떇�씠 留욎� �븡�뒿�땲�떎. + </div> + </div> + </div> + <div class="col-lg-2 mt-25" style="margin-left: -15px; margin-right: -16px;"> + <div> + <button type="button" class="btn btn-secondary" ng-click="fn.addMail()"> + <span translate="common.add">異붽�</span> + </button> </div> </div> </div> diff --git a/src/main/webapp/views/hostingField/hostingFieldModify.html b/src/main/webapp/views/hostingField/hostingFieldModify.html index 86643ab..1375b43 100644 --- a/src/main/webapp/views/hostingField/hostingFieldModify.html +++ b/src/main/webapp/views/hostingField/hostingFieldModify.html @@ -66,46 +66,63 @@ > </div> </div> - <div> - <div class="form-group"> - <label for="hostingFieldModifyForm7" class="issue-label"> - <span translate="hostingField.tel">�쟾�솕踰덊샇</span> - </label> - <input id="hostingFieldModifyForm7" - name="tel" - type="text" - class="form-control" - kr-input - input-regex="[^0-9]" - autocomplete="off" - ng-model="vm.form.tel" - maxlength="11" - minlength="9"> - <div ng-show="hostingFieldModifyForm.tel.$error.minlength" class="help-block form-text text-danger" - translate="common.least9CharactersTel">�쟾�솕踰덊샇 �삎�떇�씠 留욎� �븡�뒿�땲�떎.(9�옄由� �씠�긽) + <div class="row"> + <div class="col-lg-4"> + <div class="form-group"> + <label class="issue-label"> + <span translate="ispField.tel">�쟾�솕踰덊샇</span> + </label> + <div class="input-group" ng-repeat="tell in vm.form.inputTels"> + <input name="tel" + type="text" + class="form-control" + kr-input + input-regex="[^0-9]" + autocomplete="off" + ng-model="vm.form.tels[$index]" + maxlength="11" + minlength="9"> + <span class="select3-selection__email__remove" ng-click="fn.removeTelInput($index)">횞</span> + </div> + <div ng-show="hostingFieldModifyForm.tel.$error.minlength" class="help-block form-text text-danger" + translate="common.least9CharactersTel">�쟾�솕踰덊샇 �삎�떇�씠 留욎� �븡�뒿�땲�떎.(9�옄由� �씠�긽) + </div> </div> -<!-- <div ng-show="hostingFieldModifyForm.tel.$error.pattern" class="help-block form-text text-danger"--> -<!-- translate="companyField.invalidTelFormat">�쟾�솕踰덊샇 �삎�떇�씠 留욎� �븡�뒿�땲�떎. xxx-xxx-xxxx �삎�떇�쑝濡� �엯�젰�븯�꽭�슂.--> -<!-- </div>--> </div> - </div> - <div> - <div class="form-group"> - <label for="hostingFieldModifyForm6" class="issue-label"> - <span translate="hostingField.email">�씠硫붿씪</span> - </label> - <input id="hostingFieldModifyForm6" - name="email" - type="email" - class="form-control" - autocomplete="off" - maxLength="50" - ng-model="vm.form.email" - kr-input - ng-pattern="/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/" - > - <div ng-show="hostingFieldModifyForm.email.$error.pattern" class="help-block form-text text-danger" - translate="users.invalidEmailFormat">�씠硫붿씪 �삎�떇�씠 留욎� �븡�뒿�땲�떎. + <div class="col-lg-2 mt-25" style="margin-left: -15px"> + <div> + <button type="button" class="btn btn-secondary" ng-click="fn.addTel()"> + <span translate="common.add">異붽�</span> + </button> + </div> + </div> + <div class="col-lg-5"> + <div class="form-group"> + <label class="issue-label"> + <span translate="ispField.email">�씠硫붿씪</span> + </label> + <div class="input-group" ng-repeat="mail in vm.form.inputMails"> + <input name="email" + type="email" + class="form-control" + autocomplete="off" + maxLength="50" + ng-model="vm.form.emails[$index]" + kr-input + ng-pattern="/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/" + > + <span class="select3-selection__email__remove" ng-click="fn.removeMailInput($index)">횞</span> + </div> + <div ng-show="hostingFieldModifyForm.email.$error.pattern" class="help-block form-text text-danger" + translate="users.invalidEmailFormat">�씠硫붿씪 �삎�떇�씠 留욎� �븡�뒿�땲�떎. + </div> + </div> + </div> + <div class="col-lg-2 mt-25" style="margin-left: -15px; margin-right: -16px;"> + <div> + <button type="button" class="btn btn-secondary" ng-click="fn.addMail()"> + <span translate="common.add">異붽�</span> + </button> </div> </div> </div> @@ -125,7 +142,7 @@ maxlength="200" ng-pattern="/(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/" > - <div ng-show="ispFieldModifyForm.url.$error.pattern" class="help-block form-text text-danger" + <div ng-show="hostingFieldModifyForm.url.$error.pattern" class="help-block form-text text-danger" translate="common.invalidUrlFormat">url �삎�떇�씠 留욎� �븡�뒿�땲�떎. </div> </div> diff --git a/src/main/webapp/views/ispField/ispFieldAdd.html b/src/main/webapp/views/ispField/ispFieldAdd.html index 40b3553..6d4aa60 100644 --- a/src/main/webapp/views/ispField/ispFieldAdd.html +++ b/src/main/webapp/views/ispField/ispFieldAdd.html @@ -65,46 +65,62 @@ > </div> </div> - <div> - <div class="form-group"> - <label for="ispFieldAddForm7" class="issue-label"> - <span translate="ispField.tel">�쟾�솕踰덊샇</span> - </label> - <input id="ispFieldAddForm7" - name="tel" - type="text" - class="form-control" - kr-input - input-regex="[^0-9]" - autocomplete="off" - ng-model="vm.form.tel" - maxlength="11" - minlength="9"> - <div ng-show="ispFieldAddForm.tel.$error.minlength" class="help-block form-text text-danger" - translate="common.least9CharactersTel">�쟾�솕踰덊샇 �삎�떇�씠 留욎� �븡�뒿�땲�떎.(9�옄由� �씠�긽) + <div class="row"> + <div class="col-lg-4"> + <div class="form-group"> + <label class="issue-label"> <span translate="ispField.tel">�쟾�솕踰덊샇</span></label> + <div class="input-group" ng-repeat="tell in vm.form.inputTels"> + <input name="tel" + type="text" + class="form-control mt-1" + kr-input + input-regex="[^0-9]" + autocomplete="off" + ng-model="vm.form.tels[$index]" + maxlength="11" + minlength="9"> + <span class="select3-selection__email__remove" ng-click="fn.removeTelInput($index)">횞</span> + </div> + <div ng-show="ispFieldAddForm.tel.$error.minlength" class="help-block form-text text-danger" + translate="common.least9CharactersTel">�쟾�솕踰덊샇 �삎�떇�씠 留욎� �븡�뒿�땲�떎.(9�옄由� �씠�긽) + </div> </div> -<!-- <div ng-show="ispFieldAddForm.tel.$error.pattern" class="help-block form-text text-danger"--> -<!-- translate="companyField.invalidTelFormat">�쟾�솕踰덊샇 �삎�떇�씠 留욎� �븡�뒿�땲�떎. xxx-xxx-xxxx �삎�떇�쑝濡� �엯�젰�븯�꽭�슂.--> -<!-- </div>--> </div> - </div> - <div> - <div class="form-group"> - <label for="ispFieldAddForm6" class="issue-label"> - <span translate="ispField.email">�씠硫붿씪</span> - </label> - <input id="ispFieldAddForm6" - name="email" - type="email" - class="form-control" - autocomplete="off" - maxLength="50" - ng-model="vm.form.email" - kr-input - ng-pattern="/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/" - > - <div ng-show="ispFieldAddForm.email.$error.pattern" class="help-block form-text text-danger" - translate="users.invalidEmailFormat">�씠硫붿씪 �삎�떇�씠 留욎� �븡�뒿�땲�떎. + <div class="col-lg-2 mt-25" style="margin-left: -15px"> + <div> + <button type="button" class="btn btn-secondary" ng-click="fn.addTel()"> + <span translate="common.add">異붽�</span> + </button> + </div> + </div> + <div class="col-lg-5"> + <div class="form-group"> + <label class="issue-label"> + <span translate="ispField.email">�씠硫붿씪</span> + </label> + <div class="input-group" ng-repeat="mail in vm.form.inputMails"> + <input id="ispFieldAddForm6" + name="email" + type="email" + class="form-control" + autocomplete="off" + maxLength="50" + ng-model="vm.form.emails[$index]" + kr-input + ng-pattern="/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/" + > + <span class="select3-selection__email__remove" ng-click="fn.removeMailInput($index)">횞</span> + </div> + <div ng-show="ispFieldAddForm.email.$error.pattern" class="help-block form-text text-danger" + translate="users.invalidEmailFormat">�씠硫붿씪 �삎�떇�씠 留욎� �븡�뒿�땲�떎. + </div> + </div> + </div> + <div class="col-lg-2 mt-25" style="margin-left: -15px; margin-right: -16px;"> + <div> + <button type="button" class="btn btn-secondary" ng-click="fn.addMail()"> + <span translate="common.add">異붽�</span> + </button> </div> </div> </div> diff --git a/src/main/webapp/views/ispField/ispFieldModify.html b/src/main/webapp/views/ispField/ispFieldModify.html index 7804225..d00ae90 100644 --- a/src/main/webapp/views/ispField/ispFieldModify.html +++ b/src/main/webapp/views/ispField/ispFieldModify.html @@ -66,46 +66,63 @@ > </div> </div> - <div> - <div class="form-group"> - <label for="ispFieldModifyForm7" class="issue-label"> - <span translate="ispField.tel">�쟾�솕踰덊샇</span> - </label> - <input id="ispFieldModifyForm7" - name="tel" - type="text" - class="form-control" - kr-input - input-regex="[^0-9]" - autocomplete="off" - ng-model="vm.form.tel" - maxlength="11" - minlength="9"> - <div ng-show="ispFieldModifyForm.tel.$error.minlength" class="help-block form-text text-danger" - translate="common.least9CharactersTel">�쟾�솕踰덊샇 �삎�떇�씠 留욎� �븡�뒿�땲�떎.(9�옄由� �씠�긽) + <div class="row"> + <div class="col-lg-4"> + <div class="form-group"> + <label class="issue-label"> + <span translate="ispField.tel">�쟾�솕踰덊샇</span> + </label> + <div class="input-group" ng-repeat="tell in vm.form.inputTels"> + <input name="tel" + type="text" + class="form-control" + kr-input + input-regex="[^0-9]" + autocomplete="off" + ng-model="vm.form.tels[$index]" + maxlength="11" + minlength="9"> + <span class="select3-selection__email__remove" ng-click="fn.removeTelInput($index)">횞</span> + </div> + <div ng-show="ispFieldModifyForm.tel.$error.minlength" class="help-block form-text text-danger" + translate="common.least9CharactersTel">�쟾�솕踰덊샇 �삎�떇�씠 留욎� �븡�뒿�땲�떎.(9�옄由� �씠�긽) + </div> </div> -<!-- <div ng-show="ispFieldModifyForm.tel.$error.pattern" class="help-block form-text text-danger"--> -<!-- translate="companyField.invalidTelFormat">�쟾�솕踰덊샇 �삎�떇�씠 留욎� �븡�뒿�땲�떎. xxx-xxx-xxxx �삎�떇�쑝濡� �엯�젰�븯�꽭�슂.--> -<!-- </div>--> </div> - </div> - <div> - <div class="form-group"> - <label for="ispFieldModifyForm6" class="issue-label"> - <span translate="ispField.email">�씠硫붿씪</span> - </label> - <input id="ispFieldModifyForm6" - name="email" - type="email" - class="form-control" - autocomplete="off" - maxLength="50" - ng-model="vm.form.email" - kr-input - ng-pattern="/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/" - > - <div ng-show="ispFieldModifyForm.email.$error.pattern" class="help-block form-text text-danger" - translate="users.invalidEmailFormat">�씠硫붿씪 �삎�떇�씠 留욎� �븡�뒿�땲�떎. + <div class="col-lg-2 mt-25" style="margin-left: -15px"> + <div> + <button type="button" class="btn btn-secondary" ng-click="fn.addTel()"> + <span translate="common.add">異붽�</span> + </button> + </div> + </div> + <div class="col-lg-5"> + <div class="form-group"> + <label class="issue-label"> + <span translate="ispField.email">�씠硫붿씪</span> + </label> + <div class="input-group" ng-repeat="mail in vm.form.inputMails"> + <input name="email" + type="email" + class="form-control" + autocomplete="off" + maxLength="50" + ng-model="vm.form.emails[$index]" + kr-input + ng-pattern="/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/" + > + <span class="select3-selection__email__remove" ng-click="fn.removeMailInput($index)">횞</span> + </div> + <div ng-show="ispFieldModifyForm.email.$error.pattern" class="help-block form-text text-danger" + translate="users.invalidEmailFormat">�씠硫붿씪 �삎�떇�씠 留욎� �븡�뒿�땲�떎. + </div> + </div> + </div> + <div class="col-lg-2 mt-25" style="margin-left: -15px; margin-right: -16px;"> + <div> + <button type="button" class="btn btn-secondary" ng-click="fn.addMail()"> + <span translate="common.add">異붽�</span> + </button> </div> </div> </div> -- Gitblit v1.8.0