Merge remote-tracking branch 'origin/master'
36개 파일 추가됨
5개 파일 이름 변경됨
31개 파일 변경됨
5개 파일 삭제됨
| | |
| | | public static final String DEPARTMENT_ALREADY_IN_USE = "DEPARTMENT_ALREADY_IN_USE"; // 선택한 부서는 이미 사용하고 있습니다. |
| | | public static final String DEPARTMENT_REMOVE_NOT_SELECT = "DEPARTMENT_REMOVE_NOT_SELECT"; // 삭제할 부서가 선택되지 않았습니다. |
| | | |
| | | |
| | | |
| | | public static final String COMPANY_REMOVE_NOT_SELECT = "COMPANY_REMOVE_NOT_SELECT"; // 삭제할 업체가 선택되지 않았습니다. |
| | | public static final String COMPANYFIELD_NOT_EXIST = "COMPANYFIELD_NOT_EXIST"; // 업체가 존재하지 않습니다. |
| | | |
| | | public static final String HOSTING_NOT_EXIST = "HOSTING_NOT_EXIST"; // 호스팅이 존재하지 않습니다. |
| | | public static final String HOSTING_REMOVE_NOT_SELECT = "HOSTING_REMOVE_NOT_SELECT"; // 삭제할 호스팅이 선택되지 않았습니다. |
| | | |
| | | public static final String ISP_NOT_EXIST = "ISP_NOT_EXIST"; // ISP가 존재하지 않습니다. |
| | | public static final String ISP_REMOVE_NOT_SELECT = "ISP_REMOVE_NOT_SELECT"; // 삭제할 ISP가 선택되지 않았습니다. |
| | | } |
File was renamed from src/main/java/kr/wisestone/owl/domain/DepartmentManage.java |
| | |
| | | import java.io.Serializable; |
| | | |
| | | @Entity |
| | | public class DepartmentManage extends BaseEntity implements Serializable { |
| | | public class Department extends BaseEntity implements Serializable { |
| | | |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | |
| | | private String departmentName; |
| | | private String departmentDescription; |
| | | |
| | | public DepartmentManage() { |
| | | public Department() { |
| | | } |
| | | |
| | | public Long getId() { |
New file |
| | |
| | | package kr.wisestone.owl.domain; |
| | | |
| | | import javax.persistence.Entity; |
| | | import javax.persistence.GeneratedValue; |
| | | import javax.persistence.GenerationType; |
| | | import javax.persistence.Id; |
| | | import java.io.Serializable; |
| | | |
| | | @Entity |
| | | public class HostingField extends BaseEntity implements Serializable { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | @Id |
| | | @GeneratedValue(strategy = GenerationType.IDENTITY) |
| | | private Long id; |
| | | private String code; |
| | | private String name; |
| | | private String manager; |
| | | private String tel; |
| | | private String email; |
| | | private String memo; |
| | | |
| | | public HostingField() {} |
| | | |
| | | public Long getId() { |
| | | return id; |
| | | } |
| | | |
| | | public void setId(Long id) { |
| | | this.id = id; |
| | | } |
| | | |
| | | public String getCode() { |
| | | return code; |
| | | } |
| | | |
| | | public void setCode(String code) { |
| | | this.code = code; |
| | | } |
| | | |
| | | public String getName() { |
| | | return name; |
| | | } |
| | | |
| | | public void setName(String name) { |
| | | this.name = name; |
| | | } |
| | | |
| | | public String getManager() { |
| | | return manager; |
| | | } |
| | | |
| | | public void setManager(String manager) { |
| | | this.manager = manager; |
| | | } |
| | | |
| | | public String getTel() { |
| | | return tel; |
| | | } |
| | | |
| | | public void setTel(String tel) { |
| | | this.tel = tel; |
| | | } |
| | | |
| | | public String getEmail() { |
| | | return email; |
| | | } |
| | | |
| | | public void setEmail(String email) { |
| | | this.email = email; |
| | | } |
| | | |
| | | public String getMemo() { |
| | | return memo; |
| | | } |
| | | |
| | | public void setMemo(String memo) { |
| | | this.memo = memo; |
| | | } |
| | | } |
New file |
| | |
| | | package kr.wisestone.owl.domain; |
| | | |
| | | import javax.persistence.Entity; |
| | | import javax.persistence.GeneratedValue; |
| | | import javax.persistence.GenerationType; |
| | | import javax.persistence.Id; |
| | | import java.io.Serializable; |
| | | |
| | | @Entity |
| | | public class IspField extends BaseEntity implements Serializable { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | @Id |
| | | @GeneratedValue(strategy = GenerationType.IDENTITY) |
| | | private Long id; |
| | | private String code; |
| | | private String name; |
| | | private String manager; |
| | | private String tel; |
| | | private String email; |
| | | private String memo; |
| | | |
| | | public IspField() {} |
| | | |
| | | public Long getId() { |
| | | return id; |
| | | } |
| | | |
| | | public void setId(Long id) { |
| | | this.id = id; |
| | | } |
| | | |
| | | public String getCode() { |
| | | return code; |
| | | } |
| | | |
| | | public void setCode(String code) { |
| | | this.code = code; |
| | | } |
| | | |
| | | public String getName() { |
| | | return name; |
| | | } |
| | | |
| | | public void setName(String name) { |
| | | this.name = name; |
| | | } |
| | | |
| | | public String getManager() { |
| | | return manager; |
| | | } |
| | | |
| | | public void setManager(String manager) { |
| | | this.manager = manager; |
| | | } |
| | | |
| | | public String getTel() { |
| | | return tel; |
| | | } |
| | | |
| | | public void setTel(String tel) { |
| | | this.tel = tel; |
| | | } |
| | | |
| | | public String getEmail() { |
| | | return email; |
| | | } |
| | | |
| | | public void setEmail(String email) { |
| | | this.email = email; |
| | | } |
| | | |
| | | public String getMemo() { |
| | | return memo; |
| | | } |
| | | |
| | | public void setMemo(String memo) { |
| | | this.memo = memo; |
| | | } |
| | | } |
| | |
| | | private String phone; |
| | | private String profile; |
| | | private String awsKey; |
| | | // private Long departmentId; |
| | | @Enumerated(EnumType.STRING) |
| | | private SocialType socialType; |
| | | private Long lastWorkspaceId; |
| | |
| | | @JoinColumn(name="level_id") |
| | | private UserLevel userLevel; |
| | | |
| | | @ManyToOne(targetEntity = DepartmentManage.class, fetch = FetchType.LAZY) |
| | | @JoinColumn(name="department_id") |
| | | private DepartmentManage departmentManage; |
| | | |
| | | // @ManyToOne(targetEntity = Department.class, fetch = FetchType.LAZY) |
| | | // @JoinColumn(name="department_id") |
| | | // private Department department; |
| | | |
| | | public User() { |
| | | } |
| | |
| | | this.id = id; |
| | | this.name = name; |
| | | this.account = account; |
| | | } |
| | | |
| | | public DepartmentManage getDepartmentManage() { |
| | | return departmentManage; |
| | | } |
| | | |
| | | public void setDepartmentManage(DepartmentManage departmentManage) { |
| | | this.departmentManage = departmentManage; |
| | | } |
| | | |
| | | public UserLevel getUserLevel() { |
New file |
| | |
| | | package kr.wisestone.owl.domain; |
| | | |
| | | import javax.persistence.*; |
| | | import java.io.Serializable; |
| | | |
| | | @Entity |
| | | public class UserDepartment extends BaseEntity implements Serializable { |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | @Id |
| | | @GeneratedValue(strategy = GenerationType.IDENTITY) |
| | | private Long id; |
| | | private String departmentId; |
| | | |
| | | @ManyToOne(targetEntity = User.class, fetch = FetchType.LAZY) |
| | | @JoinColumn(name="user_id") |
| | | private User user; |
| | | |
| | | public UserDepartment(){} |
| | | |
| | | public Long getId() { |
| | | return id; |
| | | } |
| | | |
| | | public void setId(Long id) { |
| | | this.id = id; |
| | | } |
| | | |
| | | public String getDepartmentId() { |
| | | return departmentId; |
| | | } |
| | | |
| | | public void setDepartmentId(String departmentId) { |
| | | this.departmentId = departmentId; |
| | | } |
| | | |
| | | public User getUser() { |
| | | return user; |
| | | } |
| | | |
| | | public void setUser(User user) { |
| | | this.user = user; |
| | | } |
| | | } |
| | |
| | | package kr.wisestone.owl.mapper; |
| | | |
| | | import kr.wisestone.owl.web.condition.CompanyFieldCondition; |
| | | import kr.wisestone.owl.web.condition.DepartmentManageCondition; |
| | | import org.springframework.stereotype.Repository; |
| | | |
| | | import java.util.List; |
New file |
| | |
| | | package kr.wisestone.owl.mapper; |
| | | |
| | | import kr.wisestone.owl.web.condition.DepartmentCondition; |
| | | import org.springframework.stereotype.Repository; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * Created by wisestone on 2018-02-26. |
| | | */ |
| | | @Repository |
| | | public interface DepartmentMapper { |
| | | List<Map<String, Object>> find(DepartmentCondition departmentCondition); |
| | | |
| | | Long count(DepartmentCondition departmentCondition); |
| | | |
| | | List<Map<String, Object>> findEvent(); |
| | | |
| | | Long findBydepartmentId(Long Id); |
| | | } |
New file |
| | |
| | | package kr.wisestone.owl.mapper; |
| | | |
| | | import kr.wisestone.owl.web.condition.HostingFieldCondition; |
| | | import org.springframework.stereotype.Repository; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * Created by wisestone on 2018-02-26. |
| | | */ |
| | | @Repository |
| | | public interface HostingFieldMapper { |
| | | List<Map<String, Object>> find(HostingFieldCondition hostingFieldCondition); |
| | | |
| | | Long count(HostingFieldCondition hostingFieldCondition); |
| | | |
| | | List<Map<String, Object>> findEvent(); |
| | | |
| | | Long findByHosting(Long id); |
| | | } |
New file |
| | |
| | | package kr.wisestone.owl.mapper; |
| | | |
| | | import kr.wisestone.owl.web.condition.IspFieldCondition; |
| | | import org.springframework.stereotype.Repository; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * Created by wisestone on 2018-02-26. |
| | | */ |
| | | @Repository |
| | | public interface IspFieldMapper { |
| | | List<Map<String, Object>> find(IspFieldCondition ispFieldCondition); |
| | | |
| | | Long count(IspFieldCondition ispFieldCondition); |
| | | |
| | | List<Map<String, Object>> findEvent(); |
| | | |
| | | Long findByIsp(Long id); |
| | | } |
| | |
| | | package kr.wisestone.owl.mapper; |
| | | |
| | | import kr.wisestone.owl.web.condition.UserCondition; |
| | | import kr.wisestone.owl.web.condition.UserLevelCondition; |
| | | import org.springframework.stereotype.Repository; |
| | | |
New file |
| | |
| | | package kr.wisestone.owl.repository; |
| | | |
| | | import kr.wisestone.owl.domain.Department; |
| | | import org.springframework.data.jpa.repository.JpaRepository; |
| | | |
| | | public interface DepartmentRepository extends JpaRepository<Department, Long> { |
| | | |
| | | } |
New file |
| | |
| | | package kr.wisestone.owl.repository; |
| | | |
| | | import kr.wisestone.owl.domain.HostingField; |
| | | import org.springframework.data.jpa.repository.JpaRepository; |
| | | |
| | | public interface HostingFieldRepository extends JpaRepository<HostingField, Long> { |
| | | |
| | | } |
New file |
| | |
| | | package kr.wisestone.owl.repository; |
| | | |
| | | import kr.wisestone.owl.domain.IspField; |
| | | import org.springframework.data.jpa.repository.JpaRepository; |
| | | |
| | | public interface IspFieldRepository extends JpaRepository<IspField, Long> { |
| | | |
| | | } |
| | |
| | | void removeCompany(CompanyFieldForm make); |
| | | |
| | | ModelAndView downloadExcel(HttpServletRequest request, Model model); |
| | | |
| | | boolean company(Long id); |
| | | } |
New file |
| | |
| | | package kr.wisestone.owl.service; |
| | | |
| | | import kr.wisestone.owl.domain.Department; |
| | | import kr.wisestone.owl.vo.DepartmentVo; |
| | | import kr.wisestone.owl.web.condition.DepartmentCondition; |
| | | import kr.wisestone.owl.web.form.DepartmentForm; |
| | | import org.springframework.data.domain.Pageable; |
| | | import org.springframework.data.jpa.repository.JpaRepository; |
| | | 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 DepartmentService extends AbstractService<Department, Long, JpaRepository<Department, Long>> { |
| | | Department add(DepartmentForm departmentForm); |
| | | |
| | | List<DepartmentVo> find(Map<String, Object> resJsonData, |
| | | DepartmentCondition make, Pageable pageable); |
| | | Department getDepartment(Long id); |
| | | |
| | | void modify(DepartmentForm departmentForm); |
| | | |
| | | void remove(DepartmentForm departmentForm); |
| | | |
| | | void detail(Map<String, Object> resJsonData, DepartmentCondition make); |
| | | |
| | | ModelAndView downloadExcel(HttpServletRequest request, Model model); |
| | | |
| | | boolean department(Long id); |
| | | } |
New file |
| | |
| | | package kr.wisestone.owl.service; |
| | | |
| | | import kr.wisestone.owl.domain.HostingField; |
| | | import kr.wisestone.owl.vo.HostingFieldVo; |
| | | import kr.wisestone.owl.web.condition.HostingFieldCondition; |
| | | import kr.wisestone.owl.web.form.HostingFieldForm; |
| | | 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 HostingFieldService { |
| | | HostingField add(HostingFieldForm hostingFieldForm); |
| | | |
| | | List<HostingFieldVo> find(Map<String, Object> resJsonData, HostingFieldCondition make, Pageable pageable); |
| | | |
| | | HostingField getHosting(Long id); |
| | | |
| | | void detail(Map<String, Object> resJsonData, HostingFieldCondition make); |
| | | |
| | | void modify(HostingFieldForm make); |
| | | |
| | | void remove(HostingFieldForm make); |
| | | |
| | | ModelAndView downloadExcel(HttpServletRequest request, Model model); |
| | | |
| | | } |
New file |
| | |
| | | package kr.wisestone.owl.service; |
| | | |
| | | import kr.wisestone.owl.domain.IspField; |
| | | import kr.wisestone.owl.vo.IspFieldVo; |
| | | import kr.wisestone.owl.web.condition.IspFieldCondition; |
| | | import kr.wisestone.owl.web.form.IspFieldForm; |
| | | 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 IspFieldService { |
| | | IspField add(IspFieldForm ispFieldForm); |
| | | |
| | | List<IspFieldVo> find(Map<String, Object> resJsonData, IspFieldCondition make, Pageable pageable); |
| | | |
| | | IspField getIsp(Long id); |
| | | |
| | | void detail(Map<String, Object> resJsonData, IspFieldCondition make); |
| | | |
| | | void modify(IspFieldForm make); |
| | | |
| | | void remove(IspFieldForm make); |
| | | |
| | | ModelAndView downloadExcel(HttpServletRequest request, Model model); |
| | | } |
| | |
| | | return new ModelAndView(this.excelView); |
| | | } |
| | | |
| | | // 삭제 할 업체가 있는지 확인 |
| | | @Override |
| | | public boolean company(Long Id) { |
| | | return this.companyFieldMapper.findByCompany(Id) > 0; |
| | | } |
| | | |
| | | // 검색 결과를 CompanyFieldVo 로 변환한다. |
| | | private List<CompanyFieldVo> convertCompanyVoToMap(List<Map<String, Object>> results, Long totalCompanyCount, Pageable pageable, Map<String, Object> resJsonData) { |
| | | List<CompanyFieldVo> companyFieldVos = Lists.newArrayList(); |
New file |
| | |
| | | package kr.wisestone.owl.service.impl; |
| | | |
| | | import kr.wisestone.owl.domain.Department; |
| | | import kr.wisestone.owl.mapper.DepartmentMapper; |
| | | import kr.wisestone.owl.service.UserService; |
| | | import kr.wisestone.owl.web.condition.DepartmentCondition; |
| | | import kr.wisestone.owl.web.form.DepartmentForm; |
| | | import org.springframework.ui.Model; |
| | | 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.exception.OwlRuntimeException; |
| | | import kr.wisestone.owl.repository.DepartmentRepository; |
| | | import kr.wisestone.owl.service.DepartmentService; |
| | | import kr.wisestone.owl.service.WorkspaceService; |
| | | import kr.wisestone.owl.util.ConvertUtil; |
| | | import kr.wisestone.owl.vo.*; |
| | | import kr.wisestone.owl.web.view.ExcelView; |
| | | 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.web.servlet.ModelAndView; |
| | | |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | @Service |
| | | public class DepartmentServiceImpl extends AbstractServiceImpl<Department, Long, JpaRepository<Department, Long>> implements DepartmentService { |
| | | |
| | | @Autowired |
| | | private DepartmentRepository departmentRepository; |
| | | |
| | | @Autowired |
| | | private DepartmentMapper departmentMapper; |
| | | |
| | | @Autowired |
| | | private UserService userService; |
| | | |
| | | @Autowired |
| | | private WorkspaceService workspaceService; |
| | | |
| | | @Autowired |
| | | private ExcelView excelView; |
| | | |
| | | @Autowired |
| | | private ExcelConditionCheck excelConditionCheck; |
| | | |
| | | @Override |
| | | protected JpaRepository<Department, Long> getRepository() { |
| | | return this.departmentRepository; |
| | | } |
| | | |
| | | // 부서 추가 |
| | | @Override |
| | | public Department add(DepartmentForm departmentForm) { |
| | | Department department = ConvertUtil.copyProperties(departmentForm, Department.class); |
| | | departmentRepository.saveAndFlush(department); |
| | | return department; |
| | | } |
| | | |
| | | // 부서 목록을 가져온다. |
| | | @Override |
| | | public List<DepartmentVo>find(Map<String, Object> resJsonData, |
| | | DepartmentCondition condition, Pageable pageable) { |
| | | condition.setPage(pageable.getPageNumber() * pageable.getPageSize()); |
| | | condition.setPageSize(pageable.getPageSize()); |
| | | |
| | | List<Map<String, Object>> results = this.departmentMapper.find(condition); |
| | | Long totalDepartmentCount = this.departmentMapper.count(condition); |
| | | |
| | | return this.convertDepartmentVoToMap(results, totalDepartmentCount, pageable, resJsonData); |
| | | } |
| | | |
| | | // 부서 상세 조회한다. |
| | | @Override |
| | | public void detail(Map<String, Object> resJsonData, DepartmentCondition departmentCondition) { |
| | | DepartmentVo departmentVo = new DepartmentVo(); |
| | | |
| | | Long departmentId = departmentCondition.getId(); |
| | | if (departmentId != null) { |
| | | Department department = this.getDepartment(departmentId); |
| | | departmentVo = ConvertUtil.copyProperties(department, DepartmentVo.class); |
| | | } |
| | | resJsonData.put(Constants.RES_KEY_CONTENTS, departmentVo); |
| | | } |
| | | |
| | | // 부서 정보를 수정한다. |
| | | @Override |
| | | public void modify(DepartmentForm departmentForm) { |
| | | Department department = ConvertUtil.copyProperties(departmentForm, Department.class); |
| | | departmentRepository.saveAndFlush(department); |
| | | } |
| | | |
| | | // 부서를 삭제한다. |
| | | @Override |
| | | public void remove(DepartmentForm departmentForm) { |
| | | if (departmentForm.getRemoveIds().size() < 1) { |
| | | throw new OwlRuntimeException( |
| | | this.messageAccessor.getMessage(MsgConstants.DEPARTMENT_REMOVE_NOT_SELECT)); |
| | | } |
| | | |
| | | for (Long id : departmentForm.getRemoveIds()) { |
| | | if (!this.userService.useUserLevel(id)) { |
| | | this.departmentRepository.deleteById(id); |
| | | } else { |
| | | throw new OwlRuntimeException( |
| | | this.messageAccessor.getMessage(MsgConstants.DEPARTMENT_ALREADY_IN_USE)); |
| | | } |
| | | |
| | | } |
| | | this.departmentRepository.flush(); |
| | | } |
| | | |
| | | // 부서 목록을 엑셀로 다운로드 한다. |
| | | @Override |
| | | public ModelAndView downloadExcel(HttpServletRequest request, Model model) { |
| | | |
| | | ModelAndView modelAndView = this.workspaceService.checkUseExcelDownload(model); |
| | | if (modelAndView != null) { |
| | | return modelAndView; |
| | | } |
| | | |
| | | Map<String, Object> conditions = new HashMap<>(); |
| | | // 엑셀 다운로드에 필요한 검색 조건 정보를 추출하고 검색 조건 추출에 오류가 발생하면 경고를 표시해준다. |
| | | modelAndView = this.excelConditionCheck.checkCondition(conditions, request, model); |
| | | if (modelAndView != null) { |
| | | return modelAndView; |
| | | } |
| | | |
| | | DepartmentCondition departmentCondition = DepartmentCondition.make(conditions); |
| | | |
| | | |
| | | List<Map<String, Object>> results = this.departmentMapper.find(departmentCondition); |
| | | List<DepartmentVo> departmentVos = ConvertUtil.convertListToListClass(results, DepartmentVo.class); |
| | | // code_ko_KR 에 code명 설정 |
| | | ExportExcelVo excelInfo = new ExportExcelVo(); |
| | | excelInfo.setFileName(this.messageAccessor.message("부서 목록")); |
| | | excelInfo.addAttrInfos(new ExportExcelAttrVo("departmentName", this.messageAccessor.message("department.departmentName"), 6, ExportExcelAttrVo.ALIGN_CENTER)); |
| | | excelInfo.addAttrInfos(new ExportExcelAttrVo("departmentDescription", this.messageAccessor.message("department.departmentDescription"), 20, ExportExcelAttrVo.ALIGN_CENTER)); |
| | | excelInfo.addAttrInfos(new ExportExcelAttrVo("departmentCount", this.messageAccessor.message("department.departmentCount"), 3, ExportExcelAttrVo.ALIGN_CENTER)); |
| | | |
| | | excelInfo.setDatas(departmentVos); |
| | | |
| | | model.addAttribute(Constants.EXCEL, excelInfo); |
| | | return new ModelAndView(this.excelView); |
| | | |
| | | } |
| | | |
| | | // 사용자 부서 ID로 조회한다. |
| | | @Override |
| | | public Department getDepartment(Long id) { |
| | | if (id == null) { |
| | | throw new OwlRuntimeException( |
| | | this.messageAccessor.getMessage(MsgConstants.DEPARTMENT_NOT_EXIST)); |
| | | } |
| | | |
| | | Department department = this.findOne(id); |
| | | |
| | | if (department == null) { |
| | | throw new OwlRuntimeException( |
| | | this.messageAccessor.getMessage(MsgConstants.DEPARTMENT_NOT_EXIST)); |
| | | } |
| | | |
| | | return department; |
| | | } |
| | | |
| | | |
| | | // 삭제 할 부서 유저가 사용하고 있는지 확인 |
| | | @Override |
| | | public boolean department(Long Id) { |
| | | return this.departmentMapper.findBydepartmentId(Id) > 0; |
| | | } |
| | | |
| | | |
| | | // 검색 결과를 DepartmentVo 로 변환한다. |
| | | private List<DepartmentVo> convertDepartmentVoToMap(List<Map<String, Object>> results, Long totalDepartmentsCount, Pageable pageable, Map<String, Object> resJsonData) { |
| | | List<DepartmentVo> departmentVos = Lists.newArrayList(); |
| | | |
| | | for (Map<String, Object> result : results) { |
| | | DepartmentVo departmentVo = ConvertUtil.convertMapToClass(result, DepartmentVo.class); |
| | | departmentVos.add(departmentVo); |
| | | } |
| | | |
| | | int totalPage = (int) Math.ceil((totalDepartmentsCount - 1) / pageable.getPageSize()) + 1; |
| | | |
| | | resJsonData.put(Constants.RES_KEY_CONTENTS, departmentVos); |
| | | resJsonData.put(Constants.REQ_KEY_PAGE_VO, new ResPage(pageable.getPageNumber(), pageable.getPageSize(), |
| | | totalPage, totalDepartmentsCount)); |
| | | |
| | | return departmentVos; |
| | | } |
| | | } |
New file |
| | |
| | | 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.HostingField; |
| | | import kr.wisestone.owl.exception.OwlRuntimeException; |
| | | import kr.wisestone.owl.mapper.HostingFieldMapper; |
| | | import kr.wisestone.owl.repository.HostingFieldRepository; |
| | | import kr.wisestone.owl.service.HostingFieldService; |
| | | import kr.wisestone.owl.service.WorkspaceService; |
| | | import kr.wisestone.owl.util.ConvertUtil; |
| | | import kr.wisestone.owl.vo.HostingFieldVo; |
| | | import kr.wisestone.owl.vo.ExportExcelAttrVo; |
| | | import kr.wisestone.owl.vo.ExportExcelVo; |
| | | import kr.wisestone.owl.vo.ResPage; |
| | | import kr.wisestone.owl.web.condition.HostingFieldCondition; |
| | | import kr.wisestone.owl.web.form.HostingFieldForm; |
| | | import kr.wisestone.owl.web.view.ExcelView; |
| | | 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.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 HostingFieldFieldServiceImpl extends AbstractServiceImpl<HostingField, Long, JpaRepository<HostingField, Long>> implements HostingFieldService { |
| | | |
| | | @Autowired |
| | | private HostingFieldRepository hostingFieldRepository; |
| | | |
| | | @Autowired |
| | | private HostingFieldMapper hostingFieldMapper; |
| | | |
| | | @Autowired |
| | | private WorkspaceService workspaceService; |
| | | |
| | | @Autowired |
| | | private ExcelView excelView; |
| | | |
| | | @Autowired |
| | | private ExcelConditionCheck excelConditionCheck; |
| | | |
| | | @Override |
| | | protected JpaRepository<HostingField, Long> getRepository() { |
| | | return this.hostingFieldRepository; |
| | | } |
| | | |
| | | // Hosting 추가 |
| | | @Override |
| | | public HostingField add(HostingFieldForm HostingFieldForm) { |
| | | HostingField HostingField = ConvertUtil.copyProperties(HostingFieldForm, HostingField.class); |
| | | hostingFieldRepository.saveAndFlush(HostingField); |
| | | return HostingField; |
| | | } |
| | | |
| | | // Hosting 목록을 가져온다. |
| | | @Override |
| | | public List<HostingFieldVo> find(Map<String, Object> resJsonData, |
| | | HostingFieldCondition condition, Pageable pageable) { |
| | | condition.setPage(pageable.getPageNumber() * pageable.getPageSize()); |
| | | condition.setPageSize(pageable.getPageSize()); |
| | | |
| | | List<Map<String, Object>> results = this.hostingFieldMapper.find(condition); |
| | | Long totalHostingCount = this.hostingFieldMapper.count(condition); |
| | | |
| | | return this.convertHostingVoToMap(results, totalHostingCount, pageable, resJsonData); |
| | | } |
| | | |
| | | |
| | | // Hosting 상세 조회한다. |
| | | @Override |
| | | public void detail(Map<String, Object> resJsonData, HostingFieldCondition hostingFieldCondition) { |
| | | HostingFieldVo HostingFieldVo = new HostingFieldVo(); |
| | | |
| | | Long hostingId = hostingFieldCondition.getId(); |
| | | if (hostingId != null) { |
| | | HostingField HostingField = this.getHosting(hostingId); |
| | | HostingFieldVo = ConvertUtil.copyProperties(HostingField, HostingFieldVo.class); |
| | | } |
| | | resJsonData.put(Constants.REQ_KEY_CONTENT, HostingFieldVo); |
| | | } |
| | | |
| | | // Hosting 정로를 수정한다. |
| | | @Override |
| | | public void modify(HostingFieldForm HostingFieldForm) { |
| | | HostingField HostingField = ConvertUtil.copyProperties(HostingFieldForm, HostingField.class); |
| | | hostingFieldRepository.saveAndFlush(HostingField); |
| | | } |
| | | |
| | | |
| | | // Hosting를 삭제한다. |
| | | @Override |
| | | public void remove(HostingFieldForm HostingFieldForm) { |
| | | if (HostingFieldForm.getRemoveIds().size() < 1) { |
| | | throw new OwlRuntimeException( |
| | | this.messageAccessor.getMessage(MsgConstants.COMPANY_REMOVE_NOT_SELECT)); |
| | | } |
| | | for (Long id : HostingFieldForm.getRemoveIds()) { |
| | | this.hostingFieldRepository.deleteById(id); |
| | | |
| | | } |
| | | this.hostingFieldRepository.flush(); |
| | | } |
| | | |
| | | // Hosting 목록을 엑셀로 다운로드 한다. |
| | | @Override |
| | | public ModelAndView downloadExcel(HttpServletRequest request, Model model) { |
| | | ModelAndView modelAndView = this.workspaceService.checkUseExcelDownload(model); |
| | | if (modelAndView != null) { |
| | | return modelAndView; |
| | | } |
| | | |
| | | Map<String, Object> conditions = new HashMap<>(); |
| | | // 엑셀 다운로드에 필요한 검색 조건 정보를 추출하고 검색 조건 추출에 오류가 발생하면 경고를 표시해준다. |
| | | modelAndView = this.excelConditionCheck.checkCondition(conditions, request, model); |
| | | if (modelAndView != null) { |
| | | return modelAndView; |
| | | } |
| | | |
| | | HostingFieldCondition hostingFieldCondition = HostingFieldCondition.make(conditions); |
| | | |
| | | |
| | | List<Map<String, Object>> results = this.hostingFieldMapper.find(hostingFieldCondition); |
| | | List<HostingFieldVo> hostingFieldVos = ConvertUtil.convertListToListClass(results, HostingFieldVo.class); |
| | | // code_ko_KR 에 code명 설정 |
| | | ExportExcelVo excelInfo = new ExportExcelVo(); |
| | | excelInfo.setFileName(this.messageAccessor.message("Hosting 목록")); |
| | | excelInfo.addAttrInfos(new ExportExcelAttrVo("companyName", this.messageAccessor.message("Hosting.companyName"), 6, ExportExcelAttrVo.ALIGN_CENTER)); |
| | | excelInfo.addAttrInfos(new ExportExcelAttrVo("companyManager", this.messageAccessor.message("Hosting.companyManager"), 10, ExportExcelAttrVo.ALIGN_CENTER)); |
| | | excelInfo.addAttrInfos(new ExportExcelAttrVo("companyTel", this.messageAccessor.message("Hosting.companyTel"), 10, ExportExcelAttrVo.ALIGN_CENTER)); |
| | | excelInfo.addAttrInfos(new ExportExcelAttrVo("companyEmail", this.messageAccessor.message("Hosting.companyEmail"), 10, ExportExcelAttrVo.ALIGN_CENTER)); |
| | | excelInfo.addAttrInfos(new ExportExcelAttrVo("companyMemo", this.messageAccessor.message("Hosting.companyMemo"), 10, ExportExcelAttrVo.ALIGN_CENTER)); |
| | | |
| | | excelInfo.setDatas(hostingFieldVos); |
| | | |
| | | model.addAttribute(Constants.EXCEL, excelInfo); |
| | | return new ModelAndView(this.excelView); |
| | | } |
| | | |
| | | // 검색 결과를 HostingVo 로 변환한다. |
| | | private List<HostingFieldVo> convertHostingVoToMap(List<Map<String, Object>> results, Long totalHostingCount, Pageable pageable, Map<String, Object> resJsonData) { |
| | | List<HostingFieldVo> hostingFieldVos = Lists.newArrayList(); |
| | | |
| | | for (Map<String, Object> result : results) { |
| | | HostingFieldVo HostingFieldVo = ConvertUtil.convertMapToClass(result, HostingFieldVo.class); |
| | | hostingFieldVos.add(HostingFieldVo); |
| | | } |
| | | |
| | | int totalPage = (int) Math.ceil((totalHostingCount - 1) / pageable.getPageSize()) + 1; |
| | | |
| | | resJsonData.put(Constants.RES_KEY_CONTENTS, hostingFieldVos); |
| | | resJsonData.put(Constants.REQ_KEY_PAGE_VO, new ResPage(pageable.getPageNumber(), pageable.getPageSize(), |
| | | totalPage, totalHostingCount)); |
| | | |
| | | return hostingFieldVos; |
| | | } |
| | | |
| | | // Hosting ID 로 조회한다 |
| | | @Override |
| | | public HostingField getHosting(Long id) { |
| | | if (id == null) { |
| | | throw new OwlRuntimeException( |
| | | this.messageAccessor.getMessage(MsgConstants.HOSTING_NOT_EXIST)); |
| | | } |
| | | |
| | | HostingField HostingField = this.findOne(id); |
| | | |
| | | if (HostingField == null) { |
| | | throw new OwlRuntimeException( |
| | | this.messageAccessor.getMessage(MsgConstants.HOSTING_NOT_EXIST)); |
| | | } |
| | | return HostingField; |
| | | } |
| | | } |
New file |
| | |
| | | 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.IspField; |
| | | import kr.wisestone.owl.exception.OwlRuntimeException; |
| | | import kr.wisestone.owl.mapper.IspFieldMapper; |
| | | import kr.wisestone.owl.repository.IspFieldRepository; |
| | | import kr.wisestone.owl.service.IspFieldService; |
| | | import kr.wisestone.owl.service.WorkspaceService; |
| | | import kr.wisestone.owl.util.ConvertUtil; |
| | | import kr.wisestone.owl.vo.IspFieldVo; |
| | | import kr.wisestone.owl.vo.ExportExcelAttrVo; |
| | | import kr.wisestone.owl.vo.ExportExcelVo; |
| | | import kr.wisestone.owl.vo.ResPage; |
| | | import kr.wisestone.owl.web.condition.IspFieldCondition; |
| | | import kr.wisestone.owl.web.form.IspFieldForm; |
| | | import kr.wisestone.owl.web.view.ExcelView; |
| | | 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.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 IspFieldFieldServiceImpl extends AbstractServiceImpl<IspField, Long, JpaRepository<IspField, Long>> implements IspFieldService { |
| | | |
| | | @Autowired |
| | | private IspFieldRepository ispFieldRepository; |
| | | |
| | | @Autowired |
| | | private IspFieldMapper ispFieldMapper; |
| | | |
| | | @Autowired |
| | | private WorkspaceService workspaceService; |
| | | |
| | | @Autowired |
| | | private ExcelView excelView; |
| | | |
| | | @Autowired |
| | | private ExcelConditionCheck excelConditionCheck; |
| | | |
| | | @Override |
| | | protected JpaRepository<IspField, Long> getRepository() { |
| | | return this.ispFieldRepository; |
| | | } |
| | | |
| | | // Isp 추가 |
| | | @Override |
| | | public IspField add(IspFieldForm IspFieldForm) { |
| | | IspField IspField = ConvertUtil.copyProperties(IspFieldForm, IspField.class); |
| | | ispFieldRepository.saveAndFlush(IspField); |
| | | return IspField; |
| | | } |
| | | |
| | | // Isp 목록을 가져온다. |
| | | @Override |
| | | public List<IspFieldVo> find(Map<String, Object> resJsonData, |
| | | IspFieldCondition condition, Pageable pageable) { |
| | | condition.setPage(pageable.getPageNumber() * pageable.getPageSize()); |
| | | condition.setPageSize(pageable.getPageSize()); |
| | | |
| | | List<Map<String, Object>> results = this.ispFieldMapper.find(condition); |
| | | Long totalIspCount = this.ispFieldMapper.count(condition); |
| | | |
| | | return this.convertIspVoToMap(results, totalIspCount, pageable, resJsonData); |
| | | } |
| | | |
| | | |
| | | // Isp 상세 조회한다. |
| | | @Override |
| | | public void detail(Map<String, Object> resJsonData, IspFieldCondition ispFieldCondition) { |
| | | IspFieldVo IspFieldVo = new IspFieldVo(); |
| | | |
| | | Long IspId = ispFieldCondition.getId(); |
| | | if (IspId != null) { |
| | | IspField IspField = this.getIsp(IspId); |
| | | IspFieldVo = ConvertUtil.copyProperties(IspField, IspFieldVo.class); |
| | | } |
| | | resJsonData.put(Constants.REQ_KEY_CONTENT, IspFieldVo); |
| | | } |
| | | |
| | | // Isp 정로를 수정한다. |
| | | @Override |
| | | public void modify(IspFieldForm IspFieldForm) { |
| | | IspField IspField = ConvertUtil.copyProperties(IspFieldForm, IspField.class); |
| | | ispFieldRepository.saveAndFlush(IspField); |
| | | } |
| | | |
| | | |
| | | // Isp를 삭제한다. |
| | | @Override |
| | | public void remove(IspFieldForm IspFieldForm) { |
| | | if (IspFieldForm.getRemoveIds().size() < 1) { |
| | | throw new OwlRuntimeException( |
| | | this.messageAccessor.getMessage(MsgConstants.ISP_REMOVE_NOT_SELECT)); |
| | | } |
| | | for (Long id : IspFieldForm.getRemoveIds()) { |
| | | this.ispFieldRepository.deleteById(id); |
| | | } |
| | | this.ispFieldRepository.flush(); |
| | | } |
| | | |
| | | // Isp 목록을 엑셀로 다운로드 한다. |
| | | @Override |
| | | public ModelAndView downloadExcel(HttpServletRequest request, Model model) { |
| | | ModelAndView modelAndView = this.workspaceService.checkUseExcelDownload(model); |
| | | if (modelAndView != null) { |
| | | return modelAndView; |
| | | } |
| | | |
| | | Map<String, Object> conditions = new HashMap<>(); |
| | | // 엑셀 다운로드에 필요한 검색 조건 정보를 추출하고 검색 조건 추출에 오류가 발생하면 경고를 표시해준다. |
| | | modelAndView = this.excelConditionCheck.checkCondition(conditions, request, model); |
| | | if (modelAndView != null) { |
| | | return modelAndView; |
| | | } |
| | | |
| | | IspFieldCondition ispFieldCondition = IspFieldCondition.make(conditions); |
| | | |
| | | |
| | | List<Map<String, Object>> results = this.ispFieldMapper.find(ispFieldCondition); |
| | | List<IspFieldVo> ispFieldVos = ConvertUtil.convertListToListClass(results, IspFieldVo.class); |
| | | // code_ko_KR 에 code명 설정 |
| | | ExportExcelVo excelInfo = new ExportExcelVo(); |
| | | excelInfo.setFileName(this.messageAccessor.message("Isp 목록")); |
| | | excelInfo.addAttrInfos(new ExportExcelAttrVo("IspName", this.messageAccessor.message("Isp.IspName"), 6, ExportExcelAttrVo.ALIGN_CENTER)); |
| | | excelInfo.addAttrInfos(new ExportExcelAttrVo("IspManager", this.messageAccessor.message("Isp.IspManager"), 10, ExportExcelAttrVo.ALIGN_CENTER)); |
| | | excelInfo.addAttrInfos(new ExportExcelAttrVo("IspTel", this.messageAccessor.message("Isp.IspTel"), 10, ExportExcelAttrVo.ALIGN_CENTER)); |
| | | excelInfo.addAttrInfos(new ExportExcelAttrVo("IspEmail", this.messageAccessor.message("Isp.IspEmail"), 10, ExportExcelAttrVo.ALIGN_CENTER)); |
| | | excelInfo.addAttrInfos(new ExportExcelAttrVo("IspMemo", this.messageAccessor.message("Isp.IspMemo"), 10, ExportExcelAttrVo.ALIGN_CENTER)); |
| | | |
| | | excelInfo.setDatas(ispFieldVos); |
| | | |
| | | model.addAttribute(Constants.EXCEL, excelInfo); |
| | | return new ModelAndView(this.excelView); |
| | | } |
| | | |
| | | // 검색 결과를 IspVo 로 변환한다. |
| | | private List<IspFieldVo> convertIspVoToMap(List<Map<String, Object>> results, Long totalIspCount, Pageable pageable, Map<String, Object> resJsonData) { |
| | | List<IspFieldVo> ispFieldVos = Lists.newArrayList(); |
| | | |
| | | for (Map<String, Object> result : results) { |
| | | IspFieldVo IspFieldVo = ConvertUtil.convertMapToClass(result, IspFieldVo.class); |
| | | ispFieldVos.add(IspFieldVo); |
| | | } |
| | | |
| | | int totalPage = (int) Math.ceil((totalIspCount - 1) / pageable.getPageSize()) + 1; |
| | | |
| | | resJsonData.put(Constants.RES_KEY_CONTENTS, ispFieldVos); |
| | | resJsonData.put(Constants.REQ_KEY_PAGE_VO, new ResPage(pageable.getPageNumber(), pageable.getPageSize(), |
| | | totalPage, totalIspCount)); |
| | | |
| | | return ispFieldVos; |
| | | } |
| | | |
| | | // Isp ID 로 조회한다 |
| | | @Override |
| | | public IspField getIsp(Long id) { |
| | | if (id == null) { |
| | | throw new OwlRuntimeException( |
| | | this.messageAccessor.getMessage(MsgConstants.ISP_NOT_EXIST)); |
| | | } |
| | | |
| | | IspField IspField = this.findOne(id); |
| | | |
| | | if (IspField == null) { |
| | | throw new OwlRuntimeException( |
| | | this.messageAccessor.getMessage(MsgConstants.ISP_NOT_EXIST)); |
| | | } |
| | | return IspField; |
| | | } |
| | | } |
| | |
| | | import kr.wisestone.owl.domain.enumType.SocialType; |
| | | import kr.wisestone.owl.exception.OwlRuntimeException; |
| | | import kr.wisestone.owl.mapper.UserMapper; |
| | | import kr.wisestone.owl.repository.DepartmentRepository; |
| | | import kr.wisestone.owl.repository.UserRepository; |
| | | import kr.wisestone.owl.service.*; |
| | | import kr.wisestone.owl.util.*; |
| | | import kr.wisestone.owl.vo.*; |
| | | import kr.wisestone.owl.web.condition.UserCondition; |
| | | import kr.wisestone.owl.web.form.DepartmentManageForm; |
| | | import kr.wisestone.owl.web.form.DepartmentForm; |
| | | import kr.wisestone.owl.web.form.UserForm; |
| | | import kr.wisestone.owl.web.view.ExcelView; |
| | | import org.apache.commons.validator.routines.EmailValidator; |
| | |
| | | private UserRepository userRepository; |
| | | |
| | | @Autowired |
| | | private DepartmentRepository departmentRepository; |
| | | |
| | | @Autowired |
| | | private UserLevelService userLevelService; |
| | | |
| | | @Autowired |
| | | private DepartmentManageService departmentManageService; |
| | | private DepartmentService departmentService; |
| | | |
| | | @Autowired |
| | | private SystemRoleService systemRoleService; |
| | |
| | | |
| | | this.userLevelService.addNormalUserLevel(); |
| | | |
| | | // DepartmentManage에 임시로 Name, Description 값 추가 |
| | | DepartmentManageForm departmentManageForm = new DepartmentManageForm(); |
| | | |
| | | departmentManageForm.setDepartmentName("개발팀"); |
| | | departmentManageForm.setDepartmentDescription("웹사이트 및 앱 서비스 개발"); |
| | | DepartmentManage departmentManage = this.departmentManageService.addDepartmentManage(departmentManageForm); |
| | | user.setDepartmentManage(departmentManage); |
| | | |
| | | if(primaryWorkspace == null || primaryWorkspace.getName() != userForm.getWorkspaceName()) { |
| | | // 업무 공간를 생성한다. 가입한 사용자는 업무 공간의 주인이다. |
| | | Workspace workspace = this.workspaceService.addWorkspace(userForm.getWorkspaceName()); |
| | |
| | | /*user.setPermission(MngPermission.makeSubAllPermission());*/ |
| | | } |
| | | } |
| | | DepartmentForm departmentForm = new DepartmentForm(); |
| | | |
| | | departmentForm.setDepartmentName("부서 없음"); |
| | | Department department = this.departmentService.add(departmentForm); |
| | | |
| | | // wyu |
| | | this.departmentRepository.saveAndFlush(department); |
| | | this.userRepository.saveAndFlush(user); |
| | | |
| | | // 이메일 알림 예정 시간이 공백이면 디폴트 이메일 알림 예정 시간으로 설정한다. |
| | |
| | | @Transactional(readOnly = true) |
| | | public User getUserSession(Map<String, Object> resJsonData, HttpServletRequest httpServletRequest) { |
| | | User user = this.getUser(this.webAppUtil.getLoginId()); |
| | | UserVo userVo = ConvertUtil.copyProperties(user, UserVo.class, "password","permission"); // wyu - ignores permission ?? |
| | | UserVo userVo = ConvertUtil.copyProperties(user, UserVo.class, "password","permission"); |
| | | // user에서 Permission 값을 가져와서 userVo 에 setPermission 함 |
| | | userVo.setPermission(user.getPermission()); |
| | | userVo.setAccount(CommonUtil.decryptAES128(userVo.getAccount())); |
| | |
| | | private UserLevelService userLevelService; |
| | | |
| | | @Autowired |
| | | private DepartmentManageService departmentManageService; |
| | | private DepartmentService departmentService; |
| | | |
| | | @Autowired |
| | | private UserWorkspaceMapper userWorkspaceMapper; |
| | |
| | | } |
| | | |
| | | // 부서 변경 |
| | | DepartmentManage currentDepartment = user.getDepartmentManage(); |
| | | if (currentDepartment == null || (userWorkspaceForm.getDepartmentId() != null && currentDepartment.getId() != userWorkspaceForm.getDepartmentId())) { |
| | | // 부서명 변경시 |
| | | DepartmentManage departmentManage = this.departmentManageService.getDepartment(userWorkspaceForm.getDepartmentId()); |
| | | user.setDepartmentManage(departmentManage); |
| | | userWorkspace.setUser(user); |
| | | } |
| | | // DepartmentManage currentDepartment = user.getDepartmentManage(); |
| | | // if (currentDepartment == null || (userWorkspaceForm.getDepartmentId() != null && currentDepartment.getId() != userWorkspaceForm.getDepartmentId())) { |
| | | // // 부서명 변경시 |
| | | // DepartmentManage departmentManage = this.departmentService.getDepartment(userWorkspaceForm.getDepartmentId()); |
| | | // user.setDepartmentManage(departmentManage); |
| | | // userWorkspace.setUser(user); |
| | | // } |
| | | |
| | | // 참여로 상태를 변경하려고 할때 |
| | | if (userWorkspace.getUseYn() != userWorkspaceForm.getUseYn()) { |
File was renamed from src/main/java/kr/wisestone/owl/vo/DepartmentManageVo.java |
| | |
| | | /** |
| | | * Created by wyu on 2021-11-05. |
| | | */ |
| | | public class DepartmentManageVo extends BaseVo{ |
| | | public class DepartmentVo extends BaseVo{ |
| | | |
| | | private Long id; |
| | | private String departmentName; |
| | | private String departmentDescription; |
| | | |
| | | private Long departmentCount; |
| | | public DepartmentManageVo() {} |
| | | public DepartmentVo() {} |
| | | |
| | | public DepartmentManageVo(Long id, String departmentName, String departmentDescription) { |
| | | public DepartmentVo(Long id, String departmentName, String departmentDescription) { |
| | | this.id = id; |
| | | this.departmentName = departmentName; |
| | | this.departmentDescription = departmentDescription; |
New file |
| | |
| | | package kr.wisestone.owl.vo; |
| | | |
| | | public class HostingFieldVo extends BaseVo{ |
| | | |
| | | private Long id; |
| | | private String code; |
| | | private String name; |
| | | private String manager; |
| | | private String tel; |
| | | private String email; |
| | | private String memo; |
| | | |
| | | public HostingFieldVo() {} |
| | | |
| | | public HostingFieldVo(Long id, String code, String name, String manager, String tel, String email, String memo) { |
| | | |
| | | this.id = id; |
| | | this.code = code; |
| | | this.name = name; |
| | | this.manager = manager; |
| | | this.tel = tel; |
| | | this.email = email; |
| | | this.memo = memo; |
| | | } |
| | | |
| | | public Long getId() { |
| | | return id; |
| | | } |
| | | |
| | | public void setId(Long id) { |
| | | this.id = id; |
| | | } |
| | | |
| | | public String getCode() { |
| | | return code; |
| | | } |
| | | |
| | | public void setCode(String code) { |
| | | this.code = code; |
| | | } |
| | | |
| | | public String getName() { |
| | | return name; |
| | | } |
| | | |
| | | public void setName(String name) { |
| | | this.name = name; |
| | | } |
| | | |
| | | public String getManager() { |
| | | return manager; |
| | | } |
| | | |
| | | public void setManager(String manager) { |
| | | this.manager = manager; |
| | | } |
| | | |
| | | public String getTel() { |
| | | return tel; |
| | | } |
| | | |
| | | public void setTel(String tel) { |
| | | this.tel = tel; |
| | | } |
| | | |
| | | public String getEmail() { |
| | | return email; |
| | | } |
| | | |
| | | public void setEmail(String email) { |
| | | this.email = email; |
| | | } |
| | | |
| | | public String getMemo() { |
| | | return memo; |
| | | } |
| | | |
| | | public void setMemo(String memo) { |
| | | this.memo = memo; |
| | | } |
| | | } |
New file |
| | |
| | | package kr.wisestone.owl.vo; |
| | | |
| | | public class IspFieldVo extends BaseVo{ |
| | | |
| | | private Long id; |
| | | private String code; |
| | | private String name; |
| | | private String manager; |
| | | private String tel; |
| | | private String email; |
| | | private String memo; |
| | | |
| | | public IspFieldVo() {} |
| | | |
| | | public IspFieldVo(Long id, String code, String name, String manager, String tel, String email, String memo) { |
| | | |
| | | this.id = id; |
| | | this.code = code; |
| | | this.name = name; |
| | | this.manager = manager; |
| | | this.tel = tel; |
| | | this.email = email; |
| | | this.memo = memo; |
| | | } |
| | | |
| | | public Long getId() { |
| | | return id; |
| | | } |
| | | |
| | | public void setId(Long id) { |
| | | this.id = id; |
| | | } |
| | | |
| | | public String getCode() { |
| | | return code; |
| | | } |
| | | |
| | | public void setCode(String code) { |
| | | this.code = code; |
| | | } |
| | | |
| | | public String getName() { |
| | | return name; |
| | | } |
| | | |
| | | public void setName(String name) { |
| | | this.name = name; |
| | | } |
| | | |
| | | public String getManager() { |
| | | return manager; |
| | | } |
| | | |
| | | public void setManager(String manager) { |
| | | this.manager = manager; |
| | | } |
| | | |
| | | public String getTel() { |
| | | return tel; |
| | | } |
| | | |
| | | public void setTel(String tel) { |
| | | this.tel = tel; |
| | | } |
| | | |
| | | public String getEmail() { |
| | | return email; |
| | | } |
| | | |
| | | public void setEmail(String email) { |
| | | this.email = email; |
| | | } |
| | | |
| | | public String getMemo() { |
| | | return memo; |
| | | } |
| | | |
| | | public void setMemo(String memo) { |
| | | this.memo = memo; |
| | | } |
| | | } |
File was renamed from src/main/java/kr/wisestone/owl/web/condition/DepartmentManageCondition.java |
| | |
| | | /** |
| | | * Created by wyu on 2021-11-05. |
| | | */ |
| | | public class DepartmentManageCondition { |
| | | public class DepartmentCondition { |
| | | private Long id; |
| | | private String departmentName; |
| | | private String departmentDescription; |
| | |
| | | private Integer Page; |
| | | private Integer PageSize; |
| | | |
| | | public static DepartmentManageCondition make(Map<String, Object> departmentManageConditions) { |
| | | return ConvertUtil.convertMapToClass(departmentManageConditions, DepartmentManageCondition.class); |
| | | public static DepartmentCondition make(Map<String, Object> departmentConditions) { |
| | | return ConvertUtil.convertMapToClass(departmentConditions, DepartmentCondition.class); |
| | | } |
| | | |
| | | public Long getId() { |
New file |
| | |
| | | package kr.wisestone.owl.web.condition; |
| | | |
| | | import kr.wisestone.owl.util.ConvertUtil; |
| | | |
| | | import java.util.Map; |
| | | |
| | | public class HostingFieldCondition { |
| | | private Long id; |
| | | private String code; |
| | | private String name; |
| | | private String manager; |
| | | private String tel; |
| | | private String email; |
| | | private String memo; |
| | | |
| | | private Integer Page; |
| | | private Integer PageSize; |
| | | |
| | | public static HostingFieldCondition make(Map<String, Object> hostingFieldCondition) { |
| | | return ConvertUtil.convertMapToClass(hostingFieldCondition, HostingFieldCondition.class); |
| | | } |
| | | |
| | | public Long getId() { |
| | | return id; |
| | | } |
| | | |
| | | public void setId(Long id) { |
| | | this.id = id; |
| | | } |
| | | |
| | | public String getCode() { |
| | | return code; |
| | | } |
| | | |
| | | public void setCode(String code) { |
| | | this.code = code; |
| | | } |
| | | |
| | | |
| | | public String getName() { |
| | | return name; |
| | | } |
| | | |
| | | public void setName(String name) { |
| | | this.name = name; |
| | | } |
| | | |
| | | public String getManager() { |
| | | return manager; |
| | | } |
| | | |
| | | public void setManager(String manager) { |
| | | this.manager = manager; |
| | | } |
| | | |
| | | public String getTel() { |
| | | return tel; |
| | | } |
| | | |
| | | public void setTel(String tel) { |
| | | this.tel = tel; |
| | | } |
| | | |
| | | public String getEmail() { |
| | | return email; |
| | | } |
| | | |
| | | public void setEmail(String email) { |
| | | this.email = email; |
| | | } |
| | | |
| | | public String getMemo() { |
| | | return memo; |
| | | } |
| | | |
| | | public void setMemo(String memo) { |
| | | this.memo = memo; |
| | | } |
| | | |
| | | public Integer getPage() { |
| | | return Page; |
| | | } |
| | | |
| | | public void setPage(Integer page) { |
| | | Page = page; |
| | | } |
| | | |
| | | public Integer getPageSize() { |
| | | return PageSize; |
| | | } |
| | | |
| | | public void setPageSize(Integer pageSize) { |
| | | PageSize = pageSize; |
| | | } |
| | | } |
New file |
| | |
| | | package kr.wisestone.owl.web.condition; |
| | | |
| | | import kr.wisestone.owl.util.ConvertUtil; |
| | | |
| | | import java.util.Map; |
| | | |
| | | public class IspFieldCondition { |
| | | private Long id; |
| | | private String code; |
| | | private String name; |
| | | private String manager; |
| | | private String tel; |
| | | private String email; |
| | | private String memo; |
| | | |
| | | private Integer Page; |
| | | private Integer PageSize; |
| | | |
| | | public static IspFieldCondition make(Map<String, Object> companyFieldCondition) { |
| | | return ConvertUtil.convertMapToClass(companyFieldCondition, IspFieldCondition.class); |
| | | } |
| | | |
| | | public Long getId() { |
| | | return id; |
| | | } |
| | | |
| | | public void setId(Long id) { |
| | | this.id = id; |
| | | } |
| | | |
| | | public String getCode() { |
| | | return code; |
| | | } |
| | | |
| | | public void setCode(String code) { |
| | | this.code = code; |
| | | } |
| | | |
| | | public String getName() { |
| | | return name; |
| | | } |
| | | |
| | | public void setName(String name) { |
| | | this.name = name; |
| | | } |
| | | |
| | | public String getManager() { |
| | | return manager; |
| | | } |
| | | |
| | | public void setManager(String manager) { |
| | | this.manager = manager; |
| | | } |
| | | |
| | | public String getTel() { |
| | | return tel; |
| | | } |
| | | |
| | | public void setTel(String tel) { |
| | | this.tel = tel; |
| | | } |
| | | |
| | | public String getEmail() { |
| | | return email; |
| | | } |
| | | |
| | | public void setEmail(String email) { |
| | | this.email = email; |
| | | } |
| | | |
| | | public String getMemo() { |
| | | return memo; |
| | | } |
| | | |
| | | public void setMemo(String memo) { |
| | | this.memo = memo; |
| | | } |
| | | |
| | | public Integer getPage() { |
| | | return Page; |
| | | } |
| | | |
| | | public void setPage(Integer page) { |
| | | Page = page; |
| | | } |
| | | |
| | | public Integer getPageSize() { |
| | | return PageSize; |
| | | } |
| | | |
| | | public void setPageSize(Integer pageSize) { |
| | | PageSize = pageSize; |
| | | } |
| | | } |
File was renamed from src/main/java/kr/wisestone/owl/web/controller/DepartmentManageController.java |
| | |
| | | package kr.wisestone.owl.web.controller; |
| | | |
| | | import kr.wisestone.owl.constant.Constants; |
| | | import kr.wisestone.owl.service.DepartmentManageService; |
| | | import kr.wisestone.owl.web.condition.DepartmentManageCondition; |
| | | import kr.wisestone.owl.web.form.DepartmentManageForm; |
| | | import kr.wisestone.owl.service.DepartmentService; |
| | | import kr.wisestone.owl.web.condition.DepartmentCondition; |
| | | import kr.wisestone.owl.web.form.DepartmentForm; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.domain.Pageable; |
| | | import org.springframework.http.MediaType; |
| | |
| | | * Created by jeong on 2017-08-02. |
| | | */ |
| | | @Controller |
| | | public class DepartmentManageController extends BaseController { |
| | | public class DepartmentController extends BaseController { |
| | | |
| | | @Autowired |
| | | private DepartmentManageService departmentManageService; |
| | | private DepartmentService departmentService; |
| | | |
| | | // 부서 생성 |
| | | @RequestMapping(value = "/departmentManage/add", method = RequestMethod.POST) |
| | | @RequestMapping(value = "/department/add", method = RequestMethod.POST) |
| | | public |
| | | @ResponseBody |
| | | Map<String, Object> add(@RequestBody Map<String, Map<String, Object>> params) { |
| | | Map<String, Object> resJsonData = new HashMap<>(); |
| | | Map<String, Object> content = params.get(Constants.REQ_KEY_CONTENT); |
| | | this.departmentManageService.addDepartmentManage(DepartmentManageForm.make(content)); |
| | | this.departmentService.add(DepartmentForm.make(content)); |
| | | |
| | | return this.setSuccessMessage(resJsonData); |
| | | } |
| | | |
| | | // 부서 조회 |
| | | @RequestMapping(value = "/departmentManage/find", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) |
| | | @RequestMapping(value = "/department/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.departmentManageService.findDepartment(resJsonData, DepartmentManageCondition.make(params.get(Constants.REQ_KEY_CONTENT)), pageable); |
| | | this.departmentService.find(resJsonData, DepartmentCondition.make(params.get(Constants.REQ_KEY_CONTENT)), pageable); |
| | | |
| | | return this.setSuccessMessage(resJsonData); |
| | | } |
| | | |
| | | // 부서 상세 조회 |
| | | @RequestMapping(value = "/departmentManage/detail", produces = MediaType.APPLICATION_JSON_VALUE) |
| | | @RequestMapping(value = "/department/detail", produces = MediaType.APPLICATION_JSON_VALUE) |
| | | public |
| | | @ResponseBody |
| | | Map<String, Object> detail(@RequestBody Map<String, Map<String, Object>> params) { |
| | | Map<String, Object> resJsonData = new HashMap<>(); |
| | | this.departmentManageService.detailDepartment(resJsonData, DepartmentManageCondition.make(params.get(Constants.REQ_KEY_CONTENT))); |
| | | this.departmentService.detail(resJsonData, DepartmentCondition.make(params.get(Constants.REQ_KEY_CONTENT))); |
| | | |
| | | return this.setSuccessMessage(resJsonData); |
| | | } |
| | | |
| | | // 부서 수정 |
| | | @RequestMapping(value = "/departmentManage/modify", produces = MediaType.APPLICATION_JSON_VALUE) |
| | | @RequestMapping(value = "/department/modify", produces = MediaType.APPLICATION_JSON_VALUE) |
| | | public |
| | | @ResponseBody |
| | | Map<String, Object> modify(@RequestBody Map<String, Map<String, Object>> params) { |
| | | Map<String, Object> resJsonData = new HashMap<>(); |
| | | |
| | | this.departmentManageService.modifyDepartment(DepartmentManageForm.make(params.get(Constants.REQ_KEY_CONTENT))); |
| | | this.departmentService.modify(DepartmentForm.make(params.get(Constants.REQ_KEY_CONTENT))); |
| | | |
| | | return this.setSuccessMessage(resJsonData); |
| | | } |
| | | |
| | | // 부서 삭제 |
| | | @RequestMapping(value = "/departmentManage/remove", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) |
| | | @RequestMapping(value = "/department/remove", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) |
| | | public |
| | | @ResponseBody |
| | | Map<String, Object> remove(@RequestBody Map<String, Map<String, Object>> params) { |
| | | Map<String, Object> resJsonData = new HashMap<>(); |
| | | Map<String, Object> content = params.get(Constants.REQ_KEY_CONTENT); |
| | | |
| | | this.departmentManageService.removeDepartment(DepartmentManageForm.make(content)); |
| | | this.departmentService.remove(DepartmentForm.make(content)); |
| | | |
| | | return this.setSuccessMessage(resJsonData); |
| | | } |
| | | |
| | | |
| | | // 부서 엑셀 다운로드 |
| | | @RequestMapping(value = "/departmentManage/downloadExcel", method = RequestMethod.POST) |
| | | @RequestMapping(value = "/department/downloadExcel", method = RequestMethod.POST) |
| | | public ModelAndView downloadExcel(HttpServletRequest request, Model model) { |
| | | return this.departmentManageService.downloadExcel(request, model); |
| | | return this.departmentService.downloadExcel(request, model); |
| | | } |
| | | } |
| | | |
New file |
| | |
| | | package kr.wisestone.owl.web.controller; |
| | | |
| | | import kr.wisestone.owl.constant.Constants; |
| | | import kr.wisestone.owl.service.HostingFieldService; |
| | | import kr.wisestone.owl.web.condition.HostingFieldCondition; |
| | | import kr.wisestone.owl.web.form.HostingFieldForm; |
| | | 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 HostingFieldController extends BaseController{ |
| | | |
| | | @Autowired |
| | | private HostingFieldService HostingFieldService; |
| | | |
| | | // 업체 생성 |
| | | @RequestMapping(value = "/hostingField/add", method = RequestMethod.POST) |
| | | public |
| | | @ResponseBody |
| | | Map<String, Object> add(@RequestBody Map<String, Map<String, Object>> params) { |
| | | Map<String, Object> resJsonData = new HashMap<>(); |
| | | Map<String, Object> content = params.get(Constants.REQ_KEY_CONTENT); |
| | | this.HostingFieldService.add(HostingFieldForm.make(content)); |
| | | |
| | | return this.setSuccessMessage(resJsonData); |
| | | } |
| | | |
| | | // 업체 조회 |
| | | @RequestMapping(value = "/hostingField/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.HostingFieldService.find(resJsonData, HostingFieldCondition.make(params.get(Constants.REQ_KEY_CONTENT)), pageable); |
| | | |
| | | return this.setSuccessMessage(resJsonData); |
| | | } |
| | | |
| | | // 업체 상세 조회 |
| | | @RequestMapping(value = "/hostingField/detail", produces = MediaType.APPLICATION_JSON_VALUE) |
| | | public |
| | | @ResponseBody |
| | | Map<String, Object> detail(@RequestBody Map<String, Map<String, Object>> params) { |
| | | Map<String, Object> resJsonData = new HashMap<>(); |
| | | this.HostingFieldService.detail(resJsonData, HostingFieldCondition.make(params.get(Constants.REQ_KEY_CONTENT))); |
| | | |
| | | return this.setSuccessMessage(resJsonData); |
| | | } |
| | | |
| | | // 업체 수정 |
| | | @RequestMapping(value = "/hostingField/modify", produces = MediaType.APPLICATION_JSON_VALUE) |
| | | public |
| | | @ResponseBody |
| | | Map<String, Object> modify(@RequestBody Map<String, Map<String, Object>> params) { |
| | | Map<String, Object> resJsonData = new HashMap<>(); |
| | | |
| | | this.HostingFieldService.modify(HostingFieldForm.make(params.get(Constants.REQ_KEY_CONTENT))); |
| | | |
| | | return this.setSuccessMessage(resJsonData); |
| | | } |
| | | |
| | | // 업체 삭제 |
| | | @RequestMapping(value = "/hostingField/remove", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) |
| | | public |
| | | @ResponseBody |
| | | Map<String, Object> remove(@RequestBody Map<String, Map<String, Object>> params) { |
| | | Map<String, Object> resJsonData = new HashMap<>(); |
| | | Map<String, Object> content = params.get(Constants.REQ_KEY_CONTENT); |
| | | |
| | | this.HostingFieldService.remove(HostingFieldForm.make(content)); |
| | | |
| | | return this.setSuccessMessage(resJsonData); |
| | | } |
| | | |
| | | |
| | | // 업체 엑셀 다운로드 |
| | | @RequestMapping(value = "/hostingField/downloadExcel", method = RequestMethod.POST) |
| | | public ModelAndView downloadExcel(HttpServletRequest request, Model model) { |
| | | return this.HostingFieldService.downloadExcel(request, model); |
| | | } |
| | | } |
| | | |
New file |
| | |
| | | package kr.wisestone.owl.web.controller; |
| | | |
| | | import kr.wisestone.owl.constant.Constants; |
| | | import kr.wisestone.owl.service.IspFieldService; |
| | | import kr.wisestone.owl.web.condition.IspFieldCondition; |
| | | import kr.wisestone.owl.web.form.IspFieldForm; |
| | | 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 IspFieldController extends BaseController{ |
| | | |
| | | @Autowired |
| | | private IspFieldService IspFieldService; |
| | | |
| | | // 업체 생성 |
| | | @RequestMapping(value = "/ispField/add", method = RequestMethod.POST) |
| | | public |
| | | @ResponseBody |
| | | Map<String, Object> add(@RequestBody Map<String, Map<String, Object>> params) { |
| | | Map<String, Object> resJsonData = new HashMap<>(); |
| | | Map<String, Object> content = params.get(Constants.REQ_KEY_CONTENT); |
| | | this.IspFieldService.add(IspFieldForm.make(content)); |
| | | |
| | | return this.setSuccessMessage(resJsonData); |
| | | } |
| | | |
| | | // 업체 조회 |
| | | @RequestMapping(value = "/ispField/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.IspFieldService.find(resJsonData, IspFieldCondition.make(params.get(Constants.REQ_KEY_CONTENT)), pageable); |
| | | |
| | | return this.setSuccessMessage(resJsonData); |
| | | } |
| | | |
| | | // 업체 상세 조회 |
| | | @RequestMapping(value = "/ispField/detail", produces = MediaType.APPLICATION_JSON_VALUE) |
| | | public |
| | | @ResponseBody |
| | | Map<String, Object> detail(@RequestBody Map<String, Map<String, Object>> params) { |
| | | Map<String, Object> resJsonData = new HashMap<>(); |
| | | this.IspFieldService.detail(resJsonData, IspFieldCondition.make(params.get(Constants.REQ_KEY_CONTENT))); |
| | | |
| | | return this.setSuccessMessage(resJsonData); |
| | | } |
| | | |
| | | // 업체 수정 |
| | | @RequestMapping(value = "/ispField/modify", produces = MediaType.APPLICATION_JSON_VALUE) |
| | | public |
| | | @ResponseBody |
| | | Map<String, Object> modify(@RequestBody Map<String, Map<String, Object>> params) { |
| | | Map<String, Object> resJsonData = new HashMap<>(); |
| | | |
| | | this.IspFieldService.modify(IspFieldForm.make(params.get(Constants.REQ_KEY_CONTENT))); |
| | | |
| | | return this.setSuccessMessage(resJsonData); |
| | | } |
| | | |
| | | // 업체 삭제 |
| | | @RequestMapping(value = "/ispField/remove", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE) |
| | | public |
| | | @ResponseBody |
| | | Map<String, Object> remove(@RequestBody Map<String, Map<String, Object>> params) { |
| | | Map<String, Object> resJsonData = new HashMap<>(); |
| | | Map<String, Object> content = params.get(Constants.REQ_KEY_CONTENT); |
| | | |
| | | this.IspFieldService.remove(IspFieldForm.make(content)); |
| | | |
| | | return this.setSuccessMessage(resJsonData); |
| | | } |
| | | |
| | | |
| | | // 업체 엑셀 다운로드 |
| | | @RequestMapping(value = "/ispField/downloadExcel", method = RequestMethod.POST) |
| | | public ModelAndView downloadExcel(HttpServletRequest request, Model model) { |
| | | return this.IspFieldService.downloadExcel(request, model); |
| | | } |
| | | } |
| | | |
File was renamed from src/main/java/kr/wisestone/owl/web/form/DepartmentManageForm.java |
| | |
| | | /** |
| | | * Created by jeong on 2017-12-30. |
| | | */ |
| | | public class DepartmentManageForm { |
| | | public class DepartmentForm { |
| | | private Long id; |
| | | private String departmentName; |
| | | private String departmentDescription; |
| | | private List<Long> removeIds = Lists.newArrayList(); |
| | | |
| | | public DepartmentManageForm() { |
| | | public DepartmentForm() { |
| | | } |
| | | |
| | | public static DepartmentManageForm make(Map<String, Object> params) { |
| | | DepartmentManageForm form = ConvertUtil.convertMapToClass(params, DepartmentManageForm.class); |
| | | public static DepartmentForm make(Map<String, Object> params) { |
| | | DepartmentForm form = ConvertUtil.convertMapToClass(params, DepartmentForm.class); |
| | | |
| | | if (MapUtil.getLongs(params,"removeIds") != null) { |
| | | form.setRemoveIds(MapUtil.getLongs(params, "removeIds")); |
New file |
| | |
| | | package kr.wisestone.owl.web.form; |
| | | |
| | | import com.google.common.collect.Lists; |
| | | import kr.wisestone.owl.util.ConvertUtil; |
| | | import kr.wisestone.owl.util.MapUtil; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | public class HostingFieldForm { |
| | | private Long id; |
| | | private String code; |
| | | private String name; |
| | | private String manager; |
| | | private String tel; |
| | | private String email; |
| | | private String memo; |
| | | private List<Long> removeIds = Lists.newArrayList(); |
| | | |
| | | public HostingFieldForm() { |
| | | } |
| | | public static HostingFieldForm make(Map<String, Object> params) { |
| | | HostingFieldForm form = ConvertUtil.convertMapToClass(params, HostingFieldForm.class); |
| | | |
| | | if (MapUtil.getLongs(params,"removeIds") != null) { |
| | | form.setRemoveIds(MapUtil.getLongs(params, "removeIds")); |
| | | } |
| | | return form; |
| | | } |
| | | |
| | | public Long getId() { |
| | | return id; |
| | | } |
| | | |
| | | public void setId(Long id) { |
| | | this.id = id; |
| | | } |
| | | |
| | | public String getCode() { |
| | | return code; |
| | | } |
| | | |
| | | public void setCode(String code) { |
| | | this.code = code; |
| | | } |
| | | |
| | | public String getName() { |
| | | return name; |
| | | } |
| | | |
| | | public void setName(String name) { |
| | | this.name = name; |
| | | } |
| | | |
| | | public String getManager() { |
| | | return manager; |
| | | } |
| | | |
| | | public void setManager(String manager) { |
| | | this.manager = manager; |
| | | } |
| | | |
| | | public String getTel() { |
| | | return tel; |
| | | } |
| | | |
| | | public void setTel(String tel) { |
| | | this.tel = tel; |
| | | } |
| | | |
| | | public String getEmail() { |
| | | return email; |
| | | } |
| | | |
| | | public void setEmail(String email) { |
| | | this.email = email; |
| | | } |
| | | |
| | | public String getMemo() { |
| | | return memo; |
| | | } |
| | | |
| | | public void setMemo(String memo) { |
| | | this.memo = memo; |
| | | } |
| | | |
| | | public List<Long> getRemoveIds() { |
| | | return removeIds; |
| | | } |
| | | |
| | | public void setRemoveIds(List<Long> removeIds) { |
| | | this.removeIds = removeIds; |
| | | } |
| | | } |
New file |
| | |
| | | package kr.wisestone.owl.web.form; |
| | | |
| | | import com.google.common.collect.Lists; |
| | | import kr.wisestone.owl.util.ConvertUtil; |
| | | import kr.wisestone.owl.util.MapUtil; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | public class IspFieldForm { |
| | | private Long id; |
| | | private String code; |
| | | private String name; |
| | | private String manager; |
| | | private String tel; |
| | | private String email; |
| | | private String memo; |
| | | private List<Long> removeIds = Lists.newArrayList(); |
| | | |
| | | public IspFieldForm() { |
| | | } |
| | | public static IspFieldForm make(Map<String, Object> params) { |
| | | IspFieldForm form = ConvertUtil.convertMapToClass(params, IspFieldForm.class); |
| | | |
| | | if (MapUtil.getLongs(params,"removeIds") != null) { |
| | | form.setRemoveIds(MapUtil.getLongs(params, "removeIds")); |
| | | } |
| | | return form; |
| | | } |
| | | |
| | | public Long getId() { |
| | | return id; |
| | | } |
| | | |
| | | public void setId(Long id) { |
| | | this.id = id; |
| | | } |
| | | |
| | | public String getCode() { |
| | | return code; |
| | | } |
| | | |
| | | public void setCode(String code) { |
| | | this.code = code; |
| | | } |
| | | |
| | | public String getName() { |
| | | return name; |
| | | } |
| | | |
| | | public void setName(String name) { |
| | | this.name = name; |
| | | } |
| | | |
| | | public String getManager() { |
| | | return manager; |
| | | } |
| | | |
| | | public void setManager(String manager) { |
| | | this.manager = manager; |
| | | } |
| | | |
| | | public String getTel() { |
| | | return tel; |
| | | } |
| | | |
| | | public void setTel(String tel) { |
| | | this.tel = tel; |
| | | } |
| | | |
| | | public String getEmail() { |
| | | return email; |
| | | } |
| | | |
| | | public void setEmail(String email) { |
| | | this.email = email; |
| | | } |
| | | |
| | | public String getMemo() { |
| | | return memo; |
| | | } |
| | | |
| | | public void setMemo(String memo) { |
| | | this.memo = memo; |
| | | } |
| | | |
| | | public List<Long> getRemoveIds() { |
| | | return removeIds; |
| | | } |
| | | |
| | | public void setRemoveIds(List<Long> removeIds) { |
| | | this.removeIds = removeIds; |
| | | } |
| | | } |
| | |
| | | ALTER TABLE `user` DROP COLUMN `permission`; |
| | | ALTER TABLE `user` ADD COLUMN `level_id` BIGINT(11) NULL; |
| | | ALTER TABLE `user` ADD COLUMN `department_id` BIGINT(11) NULL; |
| | | |
| | | CREATE TABLE `department_manage`( |
| | | CREATE TABLE `department`( |
| | | `id` BIGINT(11) AUTO_INCREMENT, |
| | | `department_name` VARCHAR(50) NOT NULL, |
| | | `department_description` VARCHAR(255) NOT NULL, |
| | | `department_description` VARCHAR(255) NULL, |
| | | `register_id` BIGINT(20) NOT NULL, |
| | | `register_date` TIMESTAMP NULL, |
| | | `modify_id` BIGINT(20) NOT NULL, |
| | | `modify_date` TIMESTAMP NULL, |
| | | `default_department` VARCHAR (50) NULL DEFAULT '부서 없음', |
| | | PRIMARY KEY (`id`) USING BTREE |
| | | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; |
| | | |
| | |
| | | `modify_date` TIMESTAMP NULL, |
| | | PRIMARY KEY (`id`) USING BTREE |
| | | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; |
| | | /* 이메일은 ID 값으로 받고 연락처도 user에 phone에서 받으면 되고*/ |
| | | |
| | | CREATE TABLE `isp_field`( |
| | | `id` BIGINT(11) AUTO_INCREMENT, |
| | | `code` varchar (50) NOT NULL, |
| | | `name` VARCHAR(50) NOT NULL, |
| | | `manager` VARCHAR(50) NULL, |
| | | `tel` VARCHAR (50) NULL, |
| | | `email` VARCHAR (255) NULL, |
| | | `memo` VARCHAR(255) NULL, |
| | | `register_id` BIGINT(20) NOT NULL, |
| | | `register_date` TIMESTAMP NULL, |
| | | `modify_id` BIGINT(20) NOT NULL, |
| | | `modify_date` TIMESTAMP NULL, |
| | | PRIMARY KEY (`id`) USING BTREE |
| | | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; |
| | | |
| | | |
| | | CREATE TABLE `hosting_field`( |
| | | `id` BIGINT(11) AUTO_INCREMENT, |
| | | `code` VARCHAR(50) NOT NULL, |
| | | `name` VARCHAR(50) NOT NULL, |
| | | `manager` VARCHAR(50) NULL, |
| | | `tel` VARCHAR (50) NULL, |
| | | `email` VARCHAR (255) NULL, |
| | | `memo` VARCHAR(255) NULL, |
| | | `register_id` BIGINT(20) NOT NULL, |
| | | `register_date` TIMESTAMP NULL, |
| | | `modify_id` BIGINT(20) NOT NULL, |
| | | `modify_date` TIMESTAMP NULL, |
| | | PRIMARY KEY (`id`) USING BTREE |
| | | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; |
| | | |
| | | CREATE TABLE `user_department`( |
| | | `id` BIGINT(11) AUTO_INCREMENT, |
| | | `department_id` VARCHAR(50) NULL, |
| | | `user_id` VARCHAR(50) NULL, |
| | | `register_id` BIGINT(20) NOT NULL, |
| | | `register_date` TIMESTAMP NULL, |
| | | `modify_id` BIGINT(20) NOT NULL, |
| | | `modify_date` TIMESTAMP NULL, |
| | | PRIMARY KEY (`id`) USING BTREE |
| | | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; |
New file |
| | |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" |
| | | "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | |
| | | <mapper namespace="kr.wisestone.owl.mapper.HostingFieldMapper"> |
| | | |
| | | <select id="find" resultType="java.util.HashMap" parameterType="kr.wisestone.owl.web.condition.HostingFieldCondition"> |
| | | SELECT |
| | | h.id as id, |
| | | h.code as code, |
| | | h.name as name, |
| | | h.manager as manager, |
| | | h.tel as tel, |
| | | h.email as email, |
| | | h.memo as memo |
| | | FROM |
| | | hosting_field h |
| | | WHERE 1=1 |
| | | <if test="name != '' and name != null"> |
| | | AND h.name like CONCAT('%',#{name},'%') |
| | | </if> |
| | | <if test="id != '' and id != null"> |
| | | AND h.id like CONCAT('%',#{id},'%') |
| | | </if> |
| | | <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.HostingFieldCondition"> |
| | | SELECT |
| | | count(h.id) |
| | | FROM |
| | | hosting_field h |
| | | WHERE 1=1 |
| | | <if test="name != '' and name != null"> |
| | | AND h.name like CONCAT('%',#{name},'%') |
| | | </if> |
| | | <if test="id != '' and id != null"> |
| | | AND h.id like CONCAT('%',#{id},'%') |
| | | </if> |
| | | </select> |
| | | </mapper> |
New file |
| | |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" |
| | | "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | |
| | | <mapper namespace="kr.wisestone.owl.mapper.IspFieldMapper"> |
| | | |
| | | <select id="find" resultType="java.util.HashMap" parameterType="kr.wisestone.owl.web.condition.IspFieldCondition"> |
| | | SELECT |
| | | i.id as id, |
| | | i.code as code, |
| | | i.name as name, |
| | | i.manager as manager, |
| | | i.tel as tel, |
| | | i.email as email, |
| | | i.memo as memo |
| | | FROM |
| | | isp_field i |
| | | WHERE 1=1 |
| | | <if test="name != '' and name != null"> |
| | | AND i.name like CONCAT('%',#{name},'%') |
| | | </if> |
| | | <if test="id != '' and id != null"> |
| | | AND i.id like CONCAT('%',#{id},'%') |
| | | </if> |
| | | <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.IspFieldCondition"> |
| | | SELECT |
| | | count(i.id) |
| | | FROM |
| | | isp_field i |
| | | WHERE 1=1 |
| | | <if test="name != '' and name != null"> |
| | | AND i.name like CONCAT('%',#{name},'%') |
| | | </if> |
| | | <if test="id != '' and id != null"> |
| | | AND i.id like CONCAT('%',#{id},'%') |
| | | </if> |
| | | </select> |
| | | </mapper> |
New file |
| | |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" |
| | | "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | |
| | | <mapper namespace="kr.wisestone.owl.mapper.DepartmentMapper"> |
| | | |
| | | <select id="find" resultType="java.util.HashMap" parameterType="kr.wisestone.owl.web.condition.DepartmentCondition"> |
| | | SELECT |
| | | d.id as id, |
| | | d.department_name as departmentName, |
| | | d.department_description as departmentDescription, |
| | | (SELECT COUNT(ud.department_id) FROM user_department ud WHERE d.id = ud.department_id) AS departmentCount |
| | | FROM |
| | | department d |
| | | WHERE 1=1 |
| | | <if test="departmentName != '' and departmentName != null"> |
| | | AND d.department_name like CONCAT('%',#{departmentName},'%') |
| | | </if> |
| | | <if test="id != '' and id != null"> |
| | | AND d.id like CONCAT('%',#{id},'%') |
| | | </if> |
| | | <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.DepartmentCondition"> |
| | | SELECT |
| | | count(d.id) |
| | | FROM |
| | | department d |
| | | WHERE 1=1 |
| | | <if test="departmentName != '' and departmentName != null"> |
| | | AND d.department_name like CONCAT('%',#{departmentName},'%') |
| | | </if> |
| | | <if test="id != '' and id != null"> |
| | | AND d.id like CONCAT('%',#{id},'%') |
| | | </if> |
| | | </select> |
| | | </mapper> |
| | |
| | | u.name as userName, |
| | | u.account as account, |
| | | u.level_id as levelId, |
| | | u.department_id as departmentId, |
| | | CASE WHEN uw.use_yn = 'Y' THEN 'true' ELSE 'false' END as useYn |
| | | FROM |
| | | user_workspace uw |
| | |
| | | </foreach> |
| | | </when> |
| | | </choose> |
| | | |
| | | <choose> |
| | | <when test="departmentIds.size != 0"> |
| | | AND u.department_id IN |
| | | <foreach collection="departmentIds" item="item" index="index" separator="," open="(" close=")"> |
| | | #{item} |
| | | </foreach> |
| | | </when> |
| | | </choose> |
| | | |
| | | limit #{pageSize} offset #{page}; |
| | | </select> |
| | | |
| | |
| | | manageUser.manageFAQPerm=FAQ \uAD00\uB9AC |
| | | manageUser.manageQnAPerm=QnA \uAD00\uB9AC |
| | | manageUser.manageGuidePerm=\uAC00\uC774\uB4DC \uAD00\uB9AC |
| | | departmentManage.departmentName=\uBD80\uC11C\uBA85 |
| | | departmentManage.departmentDescription=\uBD80\uC11C\uC124\uBA85 |
| | | departmentManage.departmentCount=\uBD80\uC11C\uC778\uC6D0 |
| | | department.departmentName=\uBD80\uC11C\uBA85 |
| | | department.departmentDescription=\uBD80\uC11C\uC124\uBA85 |
| | | department.departmentCount=\uBD80\uC11C\uC778\uC6D0 |
| | | companyField.companyName=\uC5C5\uCCB4\uBA85 |
| | | companyField.companyManager=\uB2F4\uB2F9\uC790 |
| | | companyField.companyTel=\uC804\uD654\uBC88\uD638 |
| | |
| | | makeTag += "</ul>"; |
| | | break; |
| | | |
| | | case "USE_DEPARTMENT_LIST" : |
| | | makeTag += "<ul class='ul-not-comma'>"; |
| | | |
| | | makeTag += "<div style='cursor: pointer' ng-click='event.modifyUserDepartments(scope.data.id)'>"; |
| | | angular.forEach(scope.data.departments, function (department) { //departmentVO로 수정 체크 필요 |
| | | makeTag += "<li>" + department.fieldValue + "</li>"; |
| | | }); |
| | | makeTag += "</div>"; |
| | | |
| | | makeTag += "</ul>"; |
| | | break; |
| | | |
| | | case "CONFIG" : |
| | | makeTag += '<a ng-click="event.modify(data.id)"><i class="fa fa-pencil fa-lg" uib-tooltip="수정"></i></a>'; |
| | | break; |
| | |
| | | } |
| | | break; |
| | | |
| | | case "ISPFIELD_MODIFY" : |
| | | if ($rootScope.checkMngPermission('USER_PERMISSION_MNG_CUSTOME_FIELD')) { |
| | | makeTag += "<span class='titlename cursor table-word-break-all' ng-click='event.modify(data.id)'>" + scope.data.name.replace(/</gi, '<') + "</span>"; |
| | | } |
| | | else { |
| | | makeTag += "<span class='titlename not-modify table-word-break-all'>" + scope.data.name + "</span>"; |
| | | } |
| | | break; |
| | | |
| | | case "HOSTINGFIELD_MODIFY" : |
| | | if ($rootScope.checkMngPermission('USER_PERMISSION_MNG_CUSTOME_FIELD')) { |
| | | makeTag += "<span class='titlename cursor table-word-break-all' ng-click='event.modify(data.id)'>" + scope.data.name.replace(/</gi, '<') + "</span>"; |
| | | } |
| | | else { |
| | | makeTag += "<span class='titlename not-modify table-word-break-all'>" + scope.data.name + "</span>"; |
| | | } |
| | | break; |
| | | |
| | | case "ISSUE_CUSTOM_FIELD_VALUE_VIEW" : |
| | | var values = []; |
| | | |
| | |
| | | "failedToSelectWorkspaceFullUserList": "업무 공간 전체 사용자 목록 조회 실패", |
| | | "failedToSelectWorkspaceFullLevelList": "사용자 등급 목록 조회 실패", |
| | | "failedToSelectWorkspaceFullDepartmentList": "부서 목록 조회 실패", |
| | | "failedToModifyUserLevel": "사용자 등급 상세 정보 조회 실패" |
| | | "failedToModifyUserLevel": "사용자 등급 상세 정보 조회 실패", |
| | | "failedToDepartmentsOfUserDetails": "사용자의 부서 상세 정보 조회 실패" |
| | | }, |
| | | "issue": { |
| | | "issueType": "이슈 유형", |
| | |
| | | }, |
| | | "companyField" : { |
| | | "add" : "업체 생성", |
| | | "name" : "업체명", |
| | | "name" : "업체 이름", |
| | | "company" : "업체 분류", |
| | | "profitYN" : "영리/비영리", |
| | | "industry" : "산업 분류", |
| | | "domain" : "도메인", |
| | | "manager" : "담당자", |
| | | "tel" : "전화번호", |
| | | "code" : "코드", |
| | | "email" : "이메일", |
| | | "desc" : "비고", |
| | | "failedToSelectCompanyFieldFullList" : "업체 관리 목록 조회 실패", |
| | |
| | | "wantToDeleteSelectCompanyField" : "선택한 업체를 삭제하겠습니까? 삭제된 업체는 복구할 수 없습니다.", |
| | | "failedCompanyFieldRegistration" : "업체 등록 실패", |
| | | "failedToDetailCompanyFieldModify" : "업체 상세 정보 조회 실패", |
| | | "pleaseEnterCompanyFieldName": "업체명을 입력하세요." |
| | | "pleaseEnterCompanyFieldName": "업체 이름을 입력하세요.", |
| | | "enterSpecialCharacters": "업체 이름에는 특수 문자를 입력 할 수 없습니다.", |
| | | "invalidTelFormat": "전화번호 형식이 맞지 않습니다. xxx-xxx-xxxx 형식으로 입력하세요." |
| | | }, |
| | | "ispField" : { |
| | | "add" : "ISP 생성", |
| | | "name" : "ISP 이름", |
| | | "manager" : "담당자", |
| | | "tel" : "전화번호", |
| | | "code" : "코드", |
| | | "email" : "이메일", |
| | | "desc" : "비고" |
| | | "desc" : "비고", |
| | | "failedToSelectIspFieldFullList" : "ISP 관리 목록 조회 실패", |
| | | "delete" : "ISP 삭제", |
| | | "wantToDeleteSelectIspField" : "선택한 ISP를 삭제하겠습니까? 삭제된 ISP는 복구할 수 없습니다.", |
| | | "failedIspFieldRegistration" : "ISP 등록 실패", |
| | | "failedToDetailIspFieldModify" : "ISP 상세 정보 조회 실패", |
| | | "pleaseEnterIspFieldName": "ISP 이름을 입력하세요.", |
| | | "enterSpecialCharacters": "ISP 이름에는 특수 문자를 입력 할 수 없습니다.", |
| | | "invalidCodeFormat": "코드명에는 특수 문자를 입력 할 수 없습니다." |
| | | }, |
| | | "hostingField" : { |
| | | "add" : "호스팅 생성", |
| | | "name" : "호스팅 이름", |
| | | "manager" : "담당자", |
| | | "tel" : "전화번호", |
| | | "code" : "코드", |
| | | "email" : "이메일", |
| | | "desc" : "비고" |
| | | "desc" : "비고", |
| | | "failedToSelectHostingFieldFullList" : "호스팅 관리 목록 조회 실패", |
| | | "delete" : "호스팅 삭제", |
| | | "wantToDeleteSelectHostingField" : "선택한 호스팅을 삭제하겠습니까? 삭제된 호스팅은 복구할 수 없습니다.", |
| | | "failedHostingFieldRegistration" : "호스팅 등록 실패", |
| | | "failedToDetailHostingFieldModify" : "호스팅 상세 정보 조회 실패", |
| | | "pleaseEnterHostingFieldName": "호스팅 이름을 입력하세요.", |
| | | "enterSpecialCharacters": "호스팅 이름에는 특수 문자를 입력 할 수 없습니다.", |
| | | "invalidCodeFormat": "코드명에는 특수 문자를 입력 할 수 없습니다." |
| | | } |
| | | } |
| | |
| | | loadController : ["$q", function ($q) { |
| | | var deferred = $q.defer(); |
| | | require(["hostingFieldListController", 'jsTable', 'tableColumnGenerator', 'hostingFieldService', 'modalFormAutoScroll' |
| | | , 'hostingFieldAddController', 'hostingFieldModifyController' |
| | | , 'formSubmit', 'jsShortCut', 'inputRegex'], function () { |
| | | deferred.resolve(); |
| | | }); |
New file |
| | |
| | | /** |
| | | * Created by wisestone on 2018-02-19. |
| | | */ |
| | | 'use strict'; |
| | | |
| | | define([ |
| | | 'app' |
| | | ], |
| | | function (app) { |
| | | app.controller('hostingFieldAddController', ['$scope', '$rootScope', '$log', '$resourceProvider', 'SweetAlert', '$uibModal', '$uibModalInstance', '$state', 'HostingField', '$filter', |
| | | function ($scope, $rootScope, $log, $resourceProvider, SweetAlert, $uibModal, $uibModalInstance, $state, HostingField, $filter) { |
| | | |
| | | $scope.fn = { |
| | | cancel : cancel, // 팝업 창 닫기 |
| | | formSubmit : formSubmit, // 폼 전송 |
| | | formCheck : formCheck, // 폼 체크 |
| | | }; |
| | | |
| | | $scope.vm = { |
| | | form : { |
| | | code : "", //코드 |
| | | name : "", //호스팅명 |
| | | manager : "", //담당자 |
| | | tel : "", //전화번호 |
| | | email : "", //이메일 |
| | | memo : "" //비고 |
| | | } |
| | | }; |
| | | |
| | | // 폼 체크 |
| | | function formCheck(formInvalid) { |
| | | if (formInvalid) { |
| | | return true; |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | // 폼 전송 |
| | | function formSubmit(condition) { |
| | | $rootScope.spinner = true; |
| | | |
| | | var content = { |
| | | 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, //이메일 |
| | | memo : $scope.vm.form.memo //비고 |
| | | }; |
| | | |
| | | HostingField.add($resourceProvider.getContent(content, |
| | | $resourceProvider.getPageContent(0, 10))).then(function (result) { |
| | | |
| | | if (result.data.message.status === "success") { |
| | | $scope.fn.cancel(); |
| | | // 목록 화면 갱신 |
| | | $rootScope.$broadcast("getPageList", {}); |
| | | } |
| | | else { |
| | | SweetAlert.error($filter("translate")("hostingField.failedHostingFieldRegistration"), result.data.message.message); |
| | | } |
| | | |
| | | $rootScope.spinner = false; |
| | | }); |
| | | |
| | | } |
| | | |
| | | // 팝업 창 닫기 |
| | | function cancel() { |
| | | $rootScope.$broadcast("closeLayer"); // 팝업이 열리고 나서 js-multi, js-single 등에서 body 이벤트가 날아가는 현상 수정 |
| | | $uibModalInstance.dismiss('cancel'); |
| | | $(document).unbind("keydown"); // 단축키 이벤트 제거 |
| | | } |
| | | |
| | | } |
| | | |
| | | ]); |
| | | } |
| | | ); |
| | |
| | | |
| | | // 함수 |
| | | $scope.fn = { |
| | | getPageList : getPageList, // 호스팅 관리 리스트 |
| | | makeTableConfigs : makeTableConfigs, // 테이블 설정 |
| | | initSearch : initSearch, //검색 조건 초기화 |
| | | add : add, //호스팅 생성 |
| | | removes : removes, //호스팅 삭제 |
| | | makeSearchConditions : makeSearchConditions //엑셀 다운로드 |
| | | }; |
| | | |
| | | // 변수 |
| | | $scope.vm = { |
| | | tableConfigs : [], |
| | | }; |
| | | |
| | | $scope.tableEvent = { |
| | | modify : modify //호스팅 정보 변경 |
| | | }; |
| | | |
| | | $scope.vm.search = { |
| | | name : "", // 호스팅 이름 |
| | | }; |
| | | |
| | | $scope.vm.page = { |
| | | selectedPage : 0, |
| | | selectedPageRowCount : String(10) |
| | | }; |
| | | |
| | | $scope.vm.responseData = { |
| | | data : [] |
| | | }; |
| | | |
| | | // 호스팅 관리 리스트 불러오기 |
| | | $scope.$on("getPageList", function () { |
| | | $scope.fn.getPageList(0); |
| | | }); |
| | | |
| | | // 검색 조건 초기화 |
| | | function initSearch() { |
| | | $scope.vm.search.name = ""; |
| | | $scope.fn.getPageList(0); |
| | | } |
| | | |
| | | // 사용자 정의 필드 목록 테이블 설정 |
| | | function makeTableConfigs() { |
| | |
| | | .setDName("name") |
| | | .setDType("renderer") |
| | | .setDAlign("text-center") |
| | | .setDRenderer("COMMON_MODIFY")); |
| | | .setDRenderer("HOSTINGFIELD_MODIFY")); |
| | | $scope.vm.tableConfigs.push($tableProvider.config() |
| | | .setHName("hostingField.code") |
| | | .setHWidth("bold") |
| | | .setDName("code") |
| | | .setDAlign("text-center")); |
| | | $scope.vm.tableConfigs.push($tableProvider.config() |
| | | .setHName("hostingField.manager") |
| | | .setHWidth("bold") |
| | | .setDName("name") |
| | | .setDType("renderer") |
| | | .setDAlign("text-center") |
| | | .setDRenderer("COMMON_MODIFY")); |
| | | .setDAlign("text-center")); |
| | | $scope.vm.tableConfigs.push($tableProvider.config() |
| | | .setHName("hostingField.tel") |
| | | .setHWidth("bold") |
| | | .setDName("name") |
| | | .setDType("renderer") |
| | | .setDAlign("text-center") |
| | | .setDRenderer("COMMON_MODIFY")); |
| | | .setDAlign("text-center")); |
| | | $scope.vm.tableConfigs.push($tableProvider.config() |
| | | .setHName("hostingField.email") |
| | | .setHWidth("bold") |
| | | .setDName("name") |
| | | .setDType("renderer") |
| | | .setDAlign("text-center") |
| | | .setDRenderer("COMMON_MODIFY")); |
| | | .setDAlign("text-center")); |
| | | $scope.vm.tableConfigs.push($tableProvider.config() |
| | | .setHName("hostingField.desc") |
| | | .setHWidth("bold") |
| | | .setDName("name") |
| | | .setDType("renderer") |
| | | .setDAlign("text-center") |
| | | .setDRenderer("COMMON_MODIFY")); |
| | | .setDAlign("text-center")); |
| | | } |
| | | |
| | | // 호스팅 관리 목록 조회 |
| | | function getPageList(selectedPage) { |
| | | if (selectedPage < 0) { |
| | | selectedPage = 0; |
| | | } |
| | | // 현재 페이지 정보 |
| | | var currentPage = 0; |
| | | |
| | | // 쿠키에 선택한 페이지 정보가 없으면 기본 페이지 정보 0 을 저장 |
| | | if (angular.isUndefined(selectedPage) || selectedPage === "") { |
| | | currentPage = $scope.vm.page.selectedPage; |
| | | } |
| | | else { |
| | | currentPage = selectedPage; |
| | | } |
| | | |
| | | var conditions = { |
| | | name : $scope.vm.search.name //호스팅 명 |
| | | }; |
| | | |
| | | //테이블 리스트 데이터 컨트롤러 요청 |
| | | HostingField.find($resourceProvider.getContent(conditions, |
| | | $resourceProvider.getPageContent(currentPage, $scope.vm.page.selectedPageRowCount))).then(function (result) { |
| | | |
| | | if (result.data.message.status === "success") { |
| | | $scope.vm.page.selectedPage = currentPage + 1; |
| | | $scope.vm.responseData = result.data; |
| | | |
| | | } |
| | | else { |
| | | SweetAlert.error($filter("translate")("hostingField.failedToSelectHostingFieldFullList"), result.data.message.message); // 호스팅 관리 목록 조회 실패 |
| | | } |
| | | }); |
| | | } |
| | | |
| | | // 호스팅 생성 |
| | | function add() { |
| | | $uibModal.open({ |
| | | templateUrl : 'views/hostingField/hostingFieldAdd.html', |
| | | size : "md", |
| | | controller : 'hostingFieldAddController', |
| | | backdrop : 'static', |
| | | resolve : { |
| | | parameter : function () { |
| | | return { |
| | | }; |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | |
| | | // 호스팅 수정 |
| | | function modify(id) { |
| | | $uibModal.open({ |
| | | templateUrl : 'views/hostingField/hostingFieldModify.html', |
| | | size : "md", |
| | | controller : 'hostingFieldModifyController', |
| | | backdrop : 'static', |
| | | resolve : { |
| | | parameter : function () { |
| | | return { |
| | | id : id |
| | | }; |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | |
| | | // 호스팅 삭제 |
| | | function removes() { |
| | | var removeIds = []; |
| | | |
| | | angular.forEach($scope.vm.responseData.data, function (data) { |
| | | if (data.checked) { |
| | | removeIds.push(data.id); |
| | | } |
| | | }); |
| | | |
| | | if (removeIds.length < 1) { |
| | | SweetAlert.swal({ |
| | | title : $filter("translate")("common.checkPurgingTargets"), // 삭제 대상 확인 |
| | | text : $filter("translate")("common.selectDestinationDeletion"), // 삭제 대상을 선택하세요. |
| | | type : "warning" |
| | | }); |
| | | return; |
| | | } |
| | | |
| | | // 삭제 알림 |
| | | SweetAlert.swal({ |
| | | title : $filter("translate")("hostingField.delete"), // "삭제" |
| | | text : $filter("translate")("hostingField.wantToDeleteSelectHostingField"), // 선택한 호스팅을 삭제하겠습니까? 삭제된 호스팅은 복구할 수 없습니다. |
| | | type : "warning", |
| | | showCancelButton : true, |
| | | confirmButtonColor : "#DD6B55", |
| | | confirmButtonText : $filter("translate")("common.delete"), // 삭제 |
| | | cancelButtonText : $filter("translate")("common.cancel"), // 취소 |
| | | closeOnConfirm : false, |
| | | closeOnCancel : true |
| | | }, |
| | | function (isConfirm) { |
| | | SweetAlert.close(); |
| | | |
| | | if (isConfirm) { |
| | | $rootScope.spinner = true; |
| | | |
| | | HostingField.removes($resourceProvider.getContent( |
| | | { removeIds : removeIds }, |
| | | $resourceProvider.getPageContent(0, 0))).then(function (result) { |
| | | |
| | | if (result.data.message.status === "success") { |
| | | $timeout(function () { |
| | | SweetAlert.success($filter("translate")("common.deleteSucceeded"), result.data.message.message); // 삭제 성공 |
| | | }, 100); |
| | | |
| | | $scope.fn.getPageList(0); |
| | | } |
| | | else { |
| | | $timeout(function () { |
| | | SweetAlert.error($filter("translate")("common.deleteFailed"), result.data.message.message); // 삭제 실패 |
| | | }, 100); |
| | | } |
| | | |
| | | $rootScope.spinner = false; |
| | | }); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | function makeSearchConditions() { |
| | | var conditions = { |
| | | name: $scope.vm.search.name |
| | | } |
| | | return conditions; |
| | | } |
| | | |
| | | $scope.fn.makeTableConfigs(); |
| | | $scope.fn.getPageList(); |
| | | } |
| | | ]); |
| | | } |
New file |
| | |
| | | /** |
| | | * Created by wisestone on 2018-05-08. |
| | | */ |
| | | 'use strict'; |
| | | |
| | | define([ |
| | | 'app', |
| | | 'angular' |
| | | ], |
| | | function (app, angular) { |
| | | app.controller('hostingFieldModifyController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$uibModalInstance', 'HostingField', 'parameter', 'SweetAlert', '$filter', '$q', |
| | | function ($scope, $rootScope, $log, $resourceProvider, $uibModalInstance, HostingField, parameter, SweetAlert, $filter, $q) { |
| | | |
| | | $scope.fn = { |
| | | detail : detail, // 상세 조회 |
| | | cancel : cancel, // 팝업 창 닫기 |
| | | formSubmit : formSubmit, // 폼 전송 |
| | | formCheck : formCheck, // 폼 체크 |
| | | }; |
| | | |
| | | $scope.vm = { |
| | | id : parameter.id, |
| | | form : { |
| | | code : "", //코드 |
| | | name : "", //호스팅명 |
| | | manager : "", //담당자 |
| | | tel : "", //전화번호 |
| | | email : "", //이메일 |
| | | memo : "" //메모(비고) |
| | | } |
| | | }; |
| | | |
| | | function formCheck(formInvalid) { |
| | | if (formInvalid) { |
| | | return true; |
| | | } |
| | | |
| | | return false; |
| | | } |
| | | |
| | | // 폼 전송 |
| | | function formSubmit() { |
| | | $rootScope.spinner = true; |
| | | |
| | | var content = { |
| | | id : parameter.id, |
| | | code : $rootScope.preventXss($scope.vm.form.name), |
| | | 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), |
| | | memo : $rootScope.preventXss($scope.vm.form.memo) |
| | | }; |
| | | |
| | | HostingField.modify($resourceProvider.getContent( |
| | | content, |
| | | $resourceProvider.getPageContent(0, 0))).then(function (result) { |
| | | |
| | | if (result.data.message.status === "success") { |
| | | $scope.fn.cancel(); |
| | | |
| | | // 목록 화면 갱신 |
| | | $rootScope.$broadcast("getPageList", {}); |
| | | } |
| | | else { |
| | | SweetAlert.error($filter("translate")("hostingField.failedHostingFieldRegistration"), result.data.message.message); //등록 실패 |
| | | } |
| | | |
| | | $rootScope.spinner = false; |
| | | }); |
| | | |
| | | } |
| | | |
| | | // 팝업 창 닫기 |
| | | function cancel() { |
| | | $rootScope.$broadcast("closeLayer"); // 팝업이 열리고 나서 js-multi, js-single 등에서 body 이벤트가 날아가는 현상 수정 |
| | | $uibModalInstance.dismiss('cancel'); |
| | | $(document).unbind("keydown"); // 단축키 이벤트 제거 |
| | | } |
| | | |
| | | // 상세 정보 |
| | | function detail() { |
| | | var deferred = $q.defer(); |
| | | |
| | | var conditions = { |
| | | id : parameter.id |
| | | } |
| | | |
| | | HostingField.detail($resourceProvider.getContent( |
| | | conditions, |
| | | $resourceProvider.getPageContent(0, 1))).then(function (result) { |
| | | |
| | | if (result.data.message.status === "success") { |
| | | if (angular.isDefined(result.data.content)) { |
| | | $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; |
| | | $scope.vm.form.memo = result.data.content.memo; |
| | | } |
| | | } |
| | | else { |
| | | SweetAlert.swal($filter("translate")("hostingField.failedToDetailHostingFieldModify"), result.data.message.message, "error"); // "상세 정보 조회 실패" |
| | | } |
| | | deferred.resolve(result.data.data); |
| | | }); |
| | | return deferred.promise; |
| | | } |
| | | |
| | | $scope.fn.detail(); |
| | | |
| | | }]); |
| | | }); |
| | |
| | | loadController : ["$q", function ($q) { |
| | | var deferred = $q.defer(); |
| | | require(["ispFieldListController", 'jsTable', 'tableColumnGenerator', 'ispFieldService', 'modalFormAutoScroll' |
| | | , 'ispFieldAddController', 'ispFieldModifyController' |
| | | , 'formSubmit', 'jsShortCut', 'inputRegex'], function () { |
| | | deferred.resolve(); |
| | | }); |
New file |
| | |
| | | /** |
| | | * Created by wisestone on 2018-02-19. |
| | | */ |
| | | 'use strict'; |
| | | |
| | | define([ |
| | | 'app' |
| | | ], |
| | | function (app) { |
| | | app.controller('ispFieldAddController', ['$scope', '$rootScope', '$log', '$resourceProvider', 'SweetAlert', '$uibModal', '$uibModalInstance', '$state', 'IspField', '$filter', |
| | | function ($scope, $rootScope, $log, $resourceProvider, SweetAlert, $uibModal, $uibModalInstance, $state, IspField, $filter) { |
| | | |
| | | $scope.fn = { |
| | | cancel : cancel, // 팝업 창 닫기 |
| | | formSubmit : formSubmit, // 폼 전송 |
| | | formCheck : formCheck, // 폼 체크 |
| | | }; |
| | | |
| | | $scope.vm = { |
| | | form : { |
| | | code : "", //코드 |
| | | name : "", //ISP명 |
| | | manager : "", //담당자 |
| | | tel : "", //전화번호 |
| | | email : "", //이메일 |
| | | memo : "" //비고 |
| | | } |
| | | }; |
| | | |
| | | // 폼 체크 |
| | | function formCheck(formInvalid) { |
| | | if (formInvalid) { |
| | | return true; |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | // 폼 전송 |
| | | function formSubmit(condition) { |
| | | $rootScope.spinner = true; |
| | | |
| | | var content = { |
| | | 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, //이메일 |
| | | memo : $scope.vm.form.memo //비고 |
| | | }; |
| | | |
| | | IspField.add($resourceProvider.getContent(content, |
| | | $resourceProvider.getPageContent(0, 10))).then(function (result) { |
| | | |
| | | if (result.data.message.status === "success") { |
| | | $scope.fn.cancel(); |
| | | // 목록 화면 갱신 |
| | | $rootScope.$broadcast("getPageList", {}); |
| | | } |
| | | else { |
| | | SweetAlert.error($filter("translate")("ispField.failedToSelectIspFieldFullList"), result.data.message.message); |
| | | } |
| | | |
| | | $rootScope.spinner = false; |
| | | }); |
| | | |
| | | } |
| | | |
| | | // 팝업 창 닫기 |
| | | function cancel() { |
| | | $rootScope.$broadcast("closeLayer"); // 팝업이 열리고 나서 js-multi, js-single 등에서 body 이벤트가 날아가는 현상 수정 |
| | | $uibModalInstance.dismiss('cancel'); |
| | | $(document).unbind("keydown"); // 단축키 이벤트 제거 |
| | | } |
| | | |
| | | } |
| | | |
| | | ]); |
| | | } |
| | | ); |
| | |
| | | |
| | | // 함수 |
| | | $scope.fn = { |
| | | getPageList : getPageList, // ISP 관리 리스트 |
| | | makeTableConfigs : makeTableConfigs, // 테이블 설정 |
| | | initSearch : initSearch, //검색 조건 초기화 |
| | | add : add, //ISP 생성 |
| | | removes : removes, //ISP 삭제 |
| | | makeSearchConditions : makeSearchConditions //엑셀 다운로드 |
| | | }; |
| | | |
| | | // 변수 |
| | | $scope.vm = { |
| | | tableConfigs : [], |
| | | }; |
| | | |
| | | $scope.tableEvent = { |
| | | modify : modify //ISP 정보 변경 |
| | | }; |
| | | |
| | | $scope.vm.search = { |
| | | name : "", // ISP 이름 |
| | | }; |
| | | |
| | | $scope.vm.page = { |
| | | selectedPage : 0, |
| | | selectedPageRowCount : String(10) |
| | | }; |
| | | |
| | | $scope.vm.responseData = { |
| | | data : [] |
| | | }; |
| | | |
| | | // iSP 관리 리스트 불러오기 |
| | | $scope.$on("getPageList", function () { |
| | | $scope.fn.getPageList(0); |
| | | }); |
| | | |
| | | // 검색 조건 초기화 |
| | | function initSearch() { |
| | | $scope.vm.search.name = ""; |
| | | $scope.fn.getPageList(0); |
| | | } |
| | | |
| | | // 사용자 정의 필드 목록 테이블 설정 |
| | | function makeTableConfigs() { |
| | |
| | | .setDName("name") |
| | | .setDType("renderer") |
| | | .setDAlign("text-center") |
| | | .setDRenderer("COMMON_MODIFY")); |
| | | .setDRenderer("ISPFIELD_MODIFY")); |
| | | $scope.vm.tableConfigs.push($tableProvider.config() |
| | | .setHName("ispField.code") |
| | | .setHWidth("bold") |
| | | .setDName("code") |
| | | .setDAlign("text-center")); |
| | | $scope.vm.tableConfigs.push($tableProvider.config() |
| | | .setHName("ispField.manager") |
| | | .setHWidth("bold") |
| | | .setDName("name") |
| | | .setDType("renderer") |
| | | .setDAlign("text-center") |
| | | .setDRenderer("COMMON_MODIFY")); |
| | | .setDName("manager") |
| | | .setDAlign("text-center")); |
| | | $scope.vm.tableConfigs.push($tableProvider.config() |
| | | .setHName("ispField.tel") |
| | | .setHWidth("bold") |
| | | .setDName("name") |
| | | .setDType("renderer") |
| | | .setDAlign("text-center") |
| | | .setDRenderer("COMMON_MODIFY")); |
| | | .setDName("tel") |
| | | .setDAlign("text-center")); |
| | | $scope.vm.tableConfigs.push($tableProvider.config() |
| | | .setHName("ispField.email") |
| | | .setHWidth("bold") |
| | | .setDName("name") |
| | | .setDType("renderer") |
| | | .setDAlign("text-center") |
| | | .setDRenderer("COMMON_MODIFY")); |
| | | .setDName("email") |
| | | .setDAlign("text-center")); |
| | | $scope.vm.tableConfigs.push($tableProvider.config() |
| | | .setHName("ispField.desc") |
| | | .setHWidth("bold") |
| | | .setDName("name") |
| | | .setDType("renderer") |
| | | .setDAlign("text-center") |
| | | .setDRenderer("COMMON_MODIFY")); |
| | | .setDName("memo") |
| | | .setDAlign("text-center")); |
| | | } |
| | | |
| | | // ISP 관리 목록 조회 |
| | | function getPageList(selectedPage) { |
| | | if (selectedPage < 0) { |
| | | selectedPage = 0; |
| | | } |
| | | // 현재 페이지 정보 |
| | | var currentPage = 0; |
| | | |
| | | // 쿠키에 선택한 페이지 정보가 없으면 기본 페이지 정보 0 을 저장 |
| | | if (angular.isUndefined(selectedPage) || selectedPage === "") { |
| | | currentPage = $scope.vm.page.selectedPage; |
| | | } |
| | | else { |
| | | currentPage = selectedPage; |
| | | } |
| | | |
| | | var conditions = { |
| | | name : $scope.vm.search.name //ISP 명 |
| | | }; |
| | | |
| | | //테이블 리스트 데이터 컨트롤러 요청 |
| | | IspField.find($resourceProvider.getContent(conditions, |
| | | $resourceProvider.getPageContent(currentPage, $scope.vm.page.selectedPageRowCount))).then(function (result) { |
| | | |
| | | if (result.data.message.status === "success") { |
| | | $scope.vm.page.selectedPage = currentPage + 1; |
| | | $scope.vm.responseData = result.data; |
| | | |
| | | } |
| | | else { |
| | | SweetAlert.error($filter("translate")("ispField.failedToSelectIspFieldFullList"), result.data.message.message); // 목록 조회 실패 |
| | | } |
| | | }); |
| | | } |
| | | |
| | | // ISP 생성 |
| | | function add() { |
| | | $uibModal.open({ |
| | | templateUrl : 'views/ispField/ispFieldAdd.html', |
| | | size : "md", |
| | | controller : 'ispFieldAddController', |
| | | backdrop : 'static', |
| | | resolve : { |
| | | parameter : function () { |
| | | return { |
| | | }; |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | |
| | | // ISP 수정 |
| | | function modify(id) { |
| | | $uibModal.open({ |
| | | templateUrl : 'views/ispField/ispFieldModify.html', |
| | | size : "md", |
| | | controller : 'ispFieldModifyController', |
| | | backdrop : 'static', |
| | | resolve : { |
| | | parameter : function () { |
| | | return { |
| | | id : id |
| | | }; |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | |
| | | // ISP 삭제 |
| | | function removes() { |
| | | var removeIds = []; |
| | | |
| | | angular.forEach($scope.vm.responseData.data, function (data) { |
| | | if (data.checked) { |
| | | removeIds.push(data.id); |
| | | } |
| | | }); |
| | | |
| | | if (removeIds.length < 1) { |
| | | SweetAlert.swal({ |
| | | title : $filter("translate")("common.checkPurgingTargets"), // 삭제 대상 확인 |
| | | text : $filter("translate")("common.selectDestinationDeletion"), // 삭제 대상을 선택하세요. |
| | | type : "warning" |
| | | }); |
| | | return; |
| | | } |
| | | |
| | | // 삭제 알림 |
| | | SweetAlert.swal({ |
| | | title : $filter("translate")("ispField.delete"), // "삭제" |
| | | text : $filter("translate")("ispField.wantToDeleteSelectIspField"), |
| | | type : "warning", |
| | | showCancelButton : true, |
| | | confirmButtonColor : "#DD6B55", |
| | | confirmButtonText : $filter("translate")("common.delete"), // 삭제 |
| | | cancelButtonText : $filter("translate")("common.cancel"), // 취소 |
| | | closeOnConfirm : false, |
| | | closeOnCancel : true |
| | | }, |
| | | function (isConfirm) { |
| | | SweetAlert.close(); |
| | | |
| | | if (isConfirm) { |
| | | $rootScope.spinner = true; |
| | | |
| | | IspField.removes($resourceProvider.getContent( |
| | | { removeIds : removeIds }, |
| | | $resourceProvider.getPageContent(0, 0))).then(function (result) { |
| | | |
| | | if (result.data.message.status === "success") { |
| | | $timeout(function () { |
| | | SweetAlert.success($filter("translate")("common.deleteSucceeded"), result.data.message.message); // 삭제 성공 |
| | | }, 100); |
| | | |
| | | $scope.fn.getPageList(0); |
| | | } |
| | | else { |
| | | $timeout(function () { |
| | | SweetAlert.error($filter("translate")("common.deleteFailed"), result.data.message.message); // 삭제 실패 |
| | | }, 100); |
| | | } |
| | | |
| | | $rootScope.spinner = false; |
| | | }); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | function makeSearchConditions() { |
| | | var conditions = { |
| | | name: $scope.vm.search.name |
| | | } |
| | | return conditions; |
| | | } |
| | | |
| | | $scope.fn.makeTableConfigs(); |
| | | $scope.fn.getPageList(); |
| | | } |
| | | ]); |
| | | } |
New file |
| | |
| | | /** |
| | | * Created by wisestone on 2018-05-08. |
| | | */ |
| | | 'use strict'; |
| | | |
| | | define([ |
| | | 'app', |
| | | 'angular' |
| | | ], |
| | | function (app, angular) { |
| | | app.controller('ispFieldModifyController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$uibModalInstance', 'IspField', 'parameter', 'SweetAlert', '$filter', '$q', |
| | | function ($scope, $rootScope, $log, $resourceProvider, $uibModalInstance, IspField, parameter, SweetAlert, $filter, $q) { |
| | | |
| | | $scope.fn = { |
| | | detail : detail, // 상세 조회 |
| | | cancel : cancel, // 팝업 창 닫기 |
| | | formSubmit : formSubmit, // 폼 전송 |
| | | formCheck : formCheck, // 폼 체크 |
| | | }; |
| | | |
| | | $scope.vm = { |
| | | id : parameter.id, |
| | | form : { |
| | | name : "", //ISP명 |
| | | manager : "", //담당자 |
| | | tel : "", //전화번호 |
| | | email : "", //이메일 |
| | | memo : "" //메모(비고) |
| | | } |
| | | }; |
| | | |
| | | function formCheck(formInvalid) { |
| | | if (formInvalid) { |
| | | return true; |
| | | } |
| | | |
| | | return false; |
| | | } |
| | | |
| | | // 폼 전송 |
| | | function formSubmit() { |
| | | $rootScope.spinner = true; |
| | | |
| | | var content = { |
| | | id : parameter.id, |
| | | code : $rootScope.preventXss($scope.vm.form.name), |
| | | 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), |
| | | memo : $rootScope.preventXss($scope.vm.form.memo) |
| | | }; |
| | | |
| | | IspField.modify($resourceProvider.getContent( |
| | | content, |
| | | $resourceProvider.getPageContent(0, 0))).then(function (result) { |
| | | |
| | | if (result.data.message.status === "success") { |
| | | $scope.fn.cancel(); |
| | | |
| | | // 목록 화면 갱신 |
| | | $rootScope.$broadcast("getPageList", {}); |
| | | } |
| | | else { |
| | | SweetAlert.error($filter("translate")("ispField.failedIspFieldRegistration"), result.data.message.message); //등록 실패 |
| | | } |
| | | |
| | | $rootScope.spinner = false; |
| | | }); |
| | | |
| | | } |
| | | |
| | | // 팝업 창 닫기 |
| | | function cancel() { |
| | | $rootScope.$broadcast("closeLayer"); // 팝업이 열리고 나서 js-multi, js-single 등에서 body 이벤트가 날아가는 현상 수정 |
| | | $uibModalInstance.dismiss('cancel'); |
| | | $(document).unbind("keydown"); // 단축키 이벤트 제거 |
| | | } |
| | | |
| | | // 상세 정보 |
| | | function detail() { |
| | | var deferred = $q.defer(); |
| | | |
| | | var conditions = { |
| | | id : parameter.id |
| | | } |
| | | |
| | | IspField.detail($resourceProvider.getContent( |
| | | conditions, |
| | | $resourceProvider.getPageContent(0, 1))).then(function (result) { |
| | | |
| | | if (result.data.message.status === "success") { |
| | | if (angular.isDefined(result.data.content)) { |
| | | $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; |
| | | $scope.vm.form.memo = result.data.content.memo; |
| | | } |
| | | } |
| | | else { |
| | | SweetAlert.swal($filter("translate")("ispField.failedToDetailIspFieldModify"), result.data.message.message, "error"); // "상세 정보 조회 실패" |
| | | } |
| | | deferred.resolve(result.data.data); |
| | | }); |
| | | return deferred.promise; |
| | | } |
| | | |
| | | $scope.fn.detail(); |
| | | |
| | | }]); |
| | | }); |
| | |
| | | var deferred = $q.defer(); |
| | | require(["modalFormAutoScroll", "workspaceController", "workspaceLevelAddController", "workspaceDepartmentAddController", "workspacePaymentExecuteController", "workspaceUserConfigController", "workspacePaymentModifyController", |
| | | "workspacePaymentAgreeTermController", "paymentService", "userWorkspaceService", "workspaceService", "numberOnly", 'jsTable', 'tableColumnGenerator', 'summerNote', 'summerNote-ko-KR', 'formSubmit', |
| | | "crypto", "reservationDisableUserService", "workspacePaymentAddController", "workspaceUserLevelController", "workspaceDepartmentConfigController", "levelModifyController","departmentModifyController"], function () { |
| | | "crypto", "reservationDisableUserService", "workspacePaymentAddController", "workspaceUserLevelController", "workspaceDepartmentConfigController", "levelModifyController","departmentModifyController","workspaceDepartmentModifyController"], function () { |
| | | deferred.resolve(); |
| | | }); |
| | | |
| | |
| | | |
| | | if (result.data.message.status === "success") { |
| | | $scope.vm.page.selectedPage = currentPage + 1; |
| | | /*if(result.data.data[0].id == 1){ |
| | | result.data.data.shift(); |
| | | }*/ |
| | | $scope.vm.responseData = result.data; |
| | | |
| | | } |
| | | else { |
| | | SweetAlert.error($filter("translate")("managementWorkspace.failedToSelectWorkspaceFullDepartmentList"), result.data.message.message); // 부서 목록 조회 실패 |
| | |
| | | // 부서 수정 |
| | | function departmentModify(id) { |
| | | $uibModal.open({ |
| | | templateUrl : 'views/workspace/workspaceDepartmentModify.html', |
| | | templateUrl : 'views/workspace/departmentModify.html', |
| | | size : "md", |
| | | controller : 'departmentModifyController', |
| | | backdrop : 'static', |
New file |
| | |
| | | /** |
| | | * Created by wisestone on 2018-05-08. |
| | | */ |
| | | 'use strict'; |
| | | |
| | | define([ |
| | | 'app', |
| | | 'angular' |
| | | ], |
| | | function (app, angular) { |
| | | app.controller('workspaceDepartmentModifyController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$uibModalInstance', 'UserWorkspace', 'parameter', 'SweetAlert', '$filter', '$injector', '$controller', |
| | | function ($scope, $rootScope, $log, $resourceProvider, $uibModalInstance, UserWorkspace, parameter, SweetAlert, $filter, $injector, $controller) { |
| | | |
| | | $scope.fn = { |
| | | cancel : cancel, // 팝업 창 닫기 |
| | | formSubmit : formSubmit, // 폼 전송 |
| | | formCheck : formCheck, // 폼 체크 |
| | | detail : detail, // 상세 정보 조회 |
| | | removeDepartments : removeDepartments, // 추가한 부서 제거 |
| | | }; |
| | | |
| | | $scope.vm = { |
| | | id : parameter.id, |
| | | form : { |
| | | id : parameter.id, |
| | | /*users : [],*/ |
| | | departments : [] // 부서 |
| | | }, |
| | | departmentName : "", //부서명 검색 |
| | | /*autoCompletePage : { |
| | | project : { |
| | | page : 0, |
| | | totalPage : 0 |
| | | } |
| | | },*/ |
| | | }; |
| | | angular.extend(this, $controller('autoCompleteController', {$scope : $scope, $injector : $injector})); |
| | | |
| | | // 선택 한 부서 제거 |
| | | function removeDepartments(index) { |
| | | $scope.vm.form.departments.splice(index, 1); |
| | | } |
| | | |
| | | function formCheck(formInvalid) { |
| | | if (formInvalid) { |
| | | return true; |
| | | } |
| | | |
| | | return false; |
| | | } |
| | | |
| | | // 폼 전송 |
| | | function formSubmit() { |
| | | $rootScope.spinner = true; |
| | | |
| | | var content = { |
| | | id : $scope.vm.form.id, |
| | | departmentName : (function () { |
| | | var departmentIds = []; |
| | | angular.forEach($scope.vm.form.departments, function (department) { |
| | | departmentIds.push(department.id); |
| | | }); |
| | | return departmentIds; |
| | | })() |
| | | }; |
| | | |
| | | //user_department INSERT 요청 |
| | | UserWorkspace.userDepartmentModify($resourceProvider.getContent( |
| | | content, |
| | | $resourceProvider.getPageContent(0, 0))).then(function (result) { |
| | | |
| | | if (result.data.message.status === "success") { |
| | | $scope.fn.cancel(); |
| | | // 목록 화면 갱신 |
| | | $rootScope.$broadcast("getUserWorkspaceList", {}); |
| | | } |
| | | else { |
| | | SweetAlert.error($filter("translate")("managementWorkspace.failedDepartmentRegistration"), result.data.message.message); |
| | | } |
| | | |
| | | $rootScope.spinner = false; |
| | | }); |
| | | |
| | | } |
| | | |
| | | // 팝업 창 닫기 |
| | | function cancel() { |
| | | $rootScope.$broadcast("closeLayer"); // 팝업이 열리고 나서 js-multi, js-single 등에서 body 이벤트가 날아가는 현상 수정 |
| | | $uibModalInstance.dismiss('cancel'); |
| | | $(document).unbind("keydown"); // 단축키 이벤트 제거 |
| | | } |
| | | |
| | | function detail() { |
| | | UserWorkspace.userDepartmentDetail($resourceProvider.getContent( |
| | | $scope.vm.search, |
| | | $resourceProvider.getPageContent(0, 1))).then(function (result) { |
| | | |
| | | if (result.data.message.status === "success") { |
| | | if (angular.isDefined(result.data.data)) { |
| | | $scope.vm.form.departments = result.data.data.userDepartmentVos; //체크 필요 |
| | | } |
| | | } |
| | | else { |
| | | SweetAlert.error($filter("translate")("managementWorkspace.failedToDepartmentsOfUserDetails"), result.data.message.message); //"사용자의 부서 상세 정보 조회 실패" |
| | | } |
| | | }); |
| | | } |
| | | |
| | | $scope.fn.detail(); |
| | | |
| | | }]); |
| | | }); |
| | |
| | | ], |
| | | function (app, angular) { |
| | | app.controller('workspaceUserConfigController', ['$scope', '$rootScope', '$log', '$resourceProvider', 'SweetAlert', '$uibModal', '$q', '$state', '$tableProvider', 'Payment', 'Workspace', |
| | | 'UserWorkspace', '$filter', |
| | | function ($scope, $rootScope, $log, $resourceProvider, SweetAlert, $uibModal, $q, $state, $tableProvider, Payment, Workspace, UserWorkspace, $filter) { |
| | | 'UserWorkspace', '$filter', '$injector', '$controller', |
| | | function ($scope, $rootScope, $log, $resourceProvider, SweetAlert, $uibModal, $q, $state, $tableProvider, Payment, Workspace, UserWorkspace, $filter, $injector, $controller) { |
| | | |
| | | |
| | | /* $scope.fn 상속 중 */ |
| | |
| | | // 테이블 이벤트 |
| | | $scope.vm.tableEvent = { |
| | | modifyUserWorkspace : modifyUserWorkspace, // 업무 공간 참여하는 사용자의 참여 상태 변경 |
| | | modifyUserDepartments : modifyUserDepartments //사용자 부서 변경 |
| | | }; |
| | | |
| | | angular.extend(this, $controller('autoCompleteController', {$scope : $scope, $injector : $injector})); |
| | | |
| | | // 상세 정보 |
| | | $scope.$on("getUserWorkspaceList", function () { |
| | |
| | | .setHWidth("width-120-p") |
| | | .setDAlign("text-center") |
| | | .setDType("renderer") |
| | | .setDName("department") |
| | | .setDRenderer("DEPARTMENT_OPTION")); |
| | | .setDRenderer("USE_DEPARTMENT_LIST")); |
| | | $scope.vm.tableConfigs.push($tableProvider.config() |
| | | .setHName("common.level") |
| | | .setHWidth("width-120-p") |
| | |
| | | } |
| | | }); |
| | | } |
| | | |
| | | // 사용자가 속해있는 부서 수정 팝업 |
| | | function modifyUserDepartments(id) { |
| | | $uibModal.open({ |
| | | templateUrl : 'views/workspace/workspaceDepartmentModify.html', |
| | | size : "xlg", |
| | | controller : 'workspaceDepartmentModifyController', |
| | | backdrop : 'static', |
| | | windowClass : 'workflow-window', |
| | | resolve : { |
| | | parameter : function () { |
| | | return { |
| | | id : id |
| | | }; |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | ]); |
| | | } |
| | |
| | | app.factory("HostingField", ['$http', '$log', function ($http, $log) { |
| | | return { |
| | | find : function (conditions) { |
| | | return $http.post("HostingField/find", conditions).then(function (response) { |
| | | return $http.post("hostingField/find", conditions).then(function (response) { |
| | | $log.debug("Hosting 필드 목록 데이터 : ", response); |
| | | return response; |
| | | }); |
| | | }, |
| | | add : function (conditions) { |
| | | return $http.post("hostingField/add", conditions).then(function (response) { |
| | | $log.debug("HostingField 생성 결과 : ", response); |
| | | return response; |
| | | }); |
| | | }, |
| | | modify : function (conditions) { |
| | | return $http.post("hostingField/modify", conditions).then(function (response) { |
| | | $log.debug("HostingField 수정 결과 : ", response); |
| | | return response; |
| | | }); |
| | | }, |
| | | detail : function (conditions) { |
| | | return $http.post("hostingField/detail", conditions).then(function (response) { |
| | | $log.debug("HostingField 상세 : ", response); |
| | | return response; |
| | | }); |
| | | }, |
| | | removes : function (conditions) { |
| | | return $http.post("hostingField/remove", conditions).then(function (response) { |
| | | $log.debug("HostingField 삭제 결과 : ", response); |
| | | return response; |
| | | }); |
| | | } |
| | | |
| | | |
| | | } |
| | | } |
| | | ]); |
| | |
| | | app.factory("IspField", ['$http', '$log', function ($http, $log) { |
| | | return { |
| | | find : function (conditions) { |
| | | return $http.post("IspField/find", conditions).then(function (response) { |
| | | return $http.post("ispField/find", conditions).then(function (response) { |
| | | $log.debug("ISP 필드 목록 데이터 : ", response); |
| | | return response; |
| | | }); |
| | | }, |
| | | add : function (conditions) { |
| | | return $http.post("ispField/add", conditions).then(function (response) { |
| | | $log.debug("IspField 생성 결과 : ", response); |
| | | return response; |
| | | }); |
| | | }, |
| | | modify : function (conditions) { |
| | | return $http.post("ispField/modify", conditions).then(function (response) { |
| | | $log.debug("IspField 수정 결과 : ", response); |
| | | return response; |
| | | }); |
| | | }, |
| | | detail : function (conditions) { |
| | | return $http.post("ispField/detail", conditions).then(function (response) { |
| | | $log.debug("IspField 상세 : ", response); |
| | | return response; |
| | | }); |
| | | }, |
| | | removes : function (conditions) { |
| | | return $http.post("ispField/remove", conditions).then(function (response) { |
| | | $log.debug("IspField 삭제 결과 : ", response); |
| | | return response; |
| | | }); |
| | | } |
| | | } |
| | | } |
| | |
| | | |
| | | //부서 관리 |
| | | departmentFind : function (conditions) { |
| | | return $http.post("departmentManage/find", conditions).then(function (response) { |
| | | return $http.post("department/find", conditions).then(function (response) { |
| | | $log.debug("부서 목록 : ", response); |
| | | return response; |
| | | }); |
| | | }, |
| | | departmentDetail : function (conditions) { |
| | | return $http.post("departmentManage/detail", conditions).then(function (response) { |
| | | return $http.post("department/detail", conditions).then(function (response) { |
| | | $log.debug("부서 상세 : ", response); |
| | | return response; |
| | | }); |
| | | }, |
| | | departmentAdd : function (conditions) { |
| | | return $http.post("departmentManage/add", conditions).then(function (response) { |
| | | return $http.post("department/add", conditions).then(function (response) { |
| | | $log.debug("부서 생성 결과 : ", response); |
| | | return response; |
| | | }); |
| | | }, |
| | | departmentModify : function (conditions) { |
| | | return $http.post("departmentManage/modify", conditions).then(function (response) { |
| | | return $http.post("department/modify", conditions).then(function (response) { |
| | | $log.debug("부서 수정 결과 : ", response); |
| | | return response; |
| | | }); |
| | | }, |
| | | departmentRemove : function (conditions) { |
| | | return $http.post("departmentManage/remove", conditions).then(function (response) { |
| | | return $http.post("department/remove", conditions).then(function (response) { |
| | | $log.debug("부서 삭제 결과 : ", response); |
| | | return response; |
| | | }); |
| | |
| | | return response; |
| | | }); |
| | | }, |
| | | userDepartmentModify : function (conditions) { |
| | | return $http.post("userWorkspace/modifyDepartment", conditions).then(function (response) { |
| | | $log.debug("사용자의 부서 수정 결과 : ", response); |
| | | return response; |
| | | }); |
| | | }, |
| | | userDepartmentDetail : function (conditions) { |
| | | return $http.post("userWorkspace/detailDepartment", conditions).then(function (response) { |
| | | $log.debug("사용자의 부서 상세보기 결과 : ", response); |
| | | return response; |
| | | }); |
| | | }, |
| | | modify : function (conditions) { |
| | | return $http.post("userWorkspace/modify", conditions).then(function (response) { |
| | | $log.debug("참여 상태 수정 결과 : ", response); |
| | |
| | | var Project = $injector.get("Project"); |
| | | var Workflow = $injector.get("Workflow"); |
| | | var Issue = $injector.get("Issue"); |
| | | var UserWorkspace = $injector.get("UserWorkspace"); |
| | | var $log = $injector.get("$log"); |
| | | var SweetAlert = $injector.get("SweetAlert"); |
| | | |
| | |
| | | $scope.fn.getProjectList = getProjectList; // 프로젝트 목록 정보를 조회한다. |
| | | $scope.fn.getIssueList = getIssueList; // 일감 목록 정보를 조회한다. |
| | | $scope.fn.getWorkflowList = getWorkflowList; // 워크플로우 목록 정보를 조회한다. |
| | | $scope.fn.getDepartmentList = getDepartmentList; // 부서 목록 정보를 조회한다. |
| | | |
| | | function getUserList(query, excludeList, page, callBack) { |
| | | var conditions = { |
| | |
| | | return deferred.promise; |
| | | } |
| | | |
| | | function getDepartmentList(query, excludeList, page, callBack) { |
| | | var conditions = { |
| | | departmentName : query, |
| | | userId : (function () { |
| | | var userId = ""; |
| | | |
| | | if ($rootScope.isDefined($scope.vm.form)) { |
| | | angular.forEach($scope.vm.form.users, function (user) { |
| | | userId = user.id; |
| | | }); |
| | | } |
| | | return userId; |
| | | })(), |
| | | excludeIds : (function () { //어떤 역할? |
| | | var excludeIds = []; |
| | | |
| | | angular.forEach(excludeList, function (exclude) { |
| | | excludeIds.push(exclude.id); |
| | | }); |
| | | |
| | | return excludeIds; |
| | | })() |
| | | }; |
| | | var deferred = $q.defer(); |
| | | |
| | | UserWorkspace.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")("managementWorkspace.failedToSelectWorkspaceFullDepartmentList"), result.data.message.message, "error"); // "부서 목록 조회 실패" |
| | | } |
| | | }); |
| | | |
| | | return deferred.promise; |
| | | } |
| | | |
| | | function getWorkflowList(query, excludeList, page, callBack) { |
| | | var conditions = { |
| | | name : query, |
| | |
| | | 'workspaceUserLevelController' : 'app/workspace/workspaceUserLevelConfig.controller', // 사용자 관리 컨트롤러 |
| | | 'workspaceLevelAddController' : 'app/workspace/workspaceLevelAdd.controller', // 사용자 등급 추가 컨트롤러 |
| | | 'levelModifyController' : 'app/workspace/levelModify.controller', // 사용자 등급 수정 컨트롤러 |
| | | 'departmentModifyController' : 'app/workspace/departmentModify.controller', // 사용자 등급 수정 컨트롤러 |
| | | 'departmentModifyController' : 'app/workspace/departmentModify.controller', // 부서 수정 컨트롤러 |
| | | 'workspaceDepartmentAddController' : 'app/workspace/workspaceDepartmentAdd.controller', // 부서 추가 컨트롤러 |
| | | 'workspaceDepartmentConfigController' : 'app/workspace/workspaceDepartmentConfig.controller', // 사용자 부서 관리 컨트롤러 |
| | | 'workspaceService' : 'components/workspace/workspace.service', // 업무 공간에 관련된 통신을 담당한다. |
| | | 'paymentService' : 'components/payment/payment.service', // 결재에 관련된 통신을 담당한다. |
| | | 'workspaceDepartmentModifyController' : 'app/workspace/workspaceDepartmentModify.controller', // 사용자 부서 수정 컨트롤러 |
| | | |
| | | /* 사용자 */ |
| | | 'userRoute' : 'app/user/user', // 사용자에 관련된 route 정보 |
| | |
| | | 'ispFieldRoute' : 'app/ispField/ispField', // ISP route 정보 |
| | | 'ispFieldService' : 'components/ispField/ispField.service', // ISP 관련된 통신 담당 |
| | | 'ispFieldListController' : 'app/ispField/ispFieldList.controller', // ISP 목록 컨트롤러 |
| | | 'ispFieldAddController' : 'app/ispField/ispFieldAdd.controller', // ISP 생성 컨트롤러 |
| | | 'ispFieldModifyController' : 'app/ispField/ispFieldModify.controller', // ISP 수정 컨트롤러 |
| | | |
| | | /* 호스팅 */ |
| | | 'hostingFieldRoute' : 'app/hostingField/hostingField', // 호스팅 route 정보 |
| | | 'hostingFieldService' : 'components/HostingField/hostingField.service', // 호스팅 관련된 통신 담당 |
| | | 'hostingFieldListController' : 'app/hostingField/hostingFieldList.controller', // 호스팅 목록 컨트롤러 |
| | | 'hostingFieldAddController' : 'app/hostingField/hostingFieldAdd.controller', // 호스팅 생성 컨트롤러 |
| | | 'hostingFieldModifyController' : 'app/hostingField/hostingFieldModify.controller', // 호스팅 수정 컨트롤러 |
| | | }, |
| | | shim : { |
| | | 'jquery-ui' : { |
| | |
| | | ng-maxlength="100" |
| | | maxlength="100" |
| | | required> |
| | | <!--<small translate="notice.enterSpecialCharacters">제목에는 특수 문자를 입력할 수 없습니다.</small>--> |
| | | <small translate="companyField.enterSpecialCharacters">업체 이름에는 특수 문자를 입력 할수 없습니다.</small> |
| | | </div> |
| | | <!--<div class="row"> |
| | | <div class="col-md-3"> |
| | |
| | | type="text" |
| | | class="form-control" |
| | | kr-input |
| | | input-regex="[^0-9]" |
| | | ng-pattern="/^\d{2,3}-\d{3,4}-\d{4}$/" |
| | | autocomplete="off" |
| | | ng-model="vm.form.tel" |
| | | maxlength="20" |
| | | > |
| | | <!--<small translate="notice.enterSpecialCharacters">제목에는 특수 문자를 입력할 수 없습니다.</small>--> |
| | | <div ng-show="companyFieldAddForm.tel.$error.pattern" class="help-block form-text text-danger" |
| | | translate="companyField.invalidTelFormat">전화번호 형식이 맞지 않습니다. xxx-xxx-xxxx 형식으로 입력하세요. |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div> |
| | |
| | | kr-input |
| | | ng-pattern="/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/" |
| | | > |
| | | <!--<small translate="notice.enterSpecialCharacters">제목에는 특수 문자를 입력할 수 없습니다.</small>--> |
| | | <div ng-show="companyFieldAddForm.email.$error.pattern" class="help-block form-text text-danger" |
| | | translate="users.invalidEmailFormat">이메일 형식이 맞지 않습니다. |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div> |
New file |
| | |
| | | <div class="formModal"> |
| | | <div class="modal-header faded smaller"> |
| | | <div class="modal-title"> |
| | | <strong>호스팅 등록</strong> |
| | | </div> |
| | | <button aria-label="Close" class="close" type="button" ng-click="fn.cancel()"> |
| | | <span aria-hidden="true"> ×</span> |
| | | </button> |
| | | </div> |
| | | |
| | | <div class="modal-body"> |
| | | <form role="form" name="hostingFieldAddForm"> |
| | | <div class="form-group"> |
| | | <label for="hostingFieldAddForm1"> |
| | | <span translate="hostingField.name">호스팅명</span> |
| | | <code class="highlighter-rouge">*</code> |
| | | </label> |
| | | <input id="hostingFieldAddForm1" |
| | | name="name" |
| | | type="text" |
| | | class="form-control" |
| | | autofocus |
| | | kr-input |
| | | input-regex="[^a-zA-Z0-9 가-힣ㄱ-ㅎㅏ-ㅣ\u318D\u119E\u11A2\u2022\u2025a\u00B7\uFE55]" |
| | | autocomplete="off" |
| | | ng-model="vm.form.name" |
| | | ng-maxlength="100" |
| | | maxlength="100" |
| | | required> |
| | | <small translate="hostingField.enterSpecialCharacters">호스팅 이름에는 특수 문자를 입력 할수 없습니다.</small> |
| | | </div> |
| | | <div class="form-group"> |
| | | <label for="hostingFieldAddForm10"> |
| | | <span translate="hostingField.code">코드</span> |
| | | <code class="highlighter-rouge">*</code> |
| | | </label> |
| | | <input id="hostingFieldAddForm10" |
| | | name="code" |
| | | 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.code" |
| | | ng-maxlength="100" |
| | | maxlength="100" |
| | | required> |
| | | <small translate="hostingField.invalidCodeFormat">코드명에는 특수 문자를 입력 할수 없습니다.</small> |
| | | </div> |
| | | <div> |
| | | <div class="form-group"> |
| | | <label for="hostingFieldAddForm9" class="issue-label"> |
| | | <span translate="hostingField.manager">담당자</span> |
| | | </label> |
| | | <input id="hostingFieldAddForm9" |
| | | 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" |
| | | > |
| | | </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 |
| | | ng-pattern="/^\d{2,3}-\d{3,4}-\d{4}$/" |
| | | autocomplete="off" |
| | | ng-model="vm.form.tel" |
| | | maxlength="20" |
| | | > |
| | | <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> |
| | | </div> |
| | | </div> |
| | | <div> |
| | | <div class="form-group"> |
| | | <label for="hostingFieldAddForm8" class="issue-label"> |
| | | <span translate="hostingField.desc">비고</span> |
| | | </label> |
| | | <input id="hostingFieldAddForm8" |
| | | name="memo" |
| | | type="text" |
| | | class="form-control" |
| | | kr-input |
| | | autocomplete="off" |
| | | ng-model="vm.form.memo" |
| | | ng-maxlength="200" |
| | | maxlength="200" |
| | | > |
| | | </div> |
| | | </div> |
| | | </form> |
| | | </div> |
| | | |
| | | <div class="modal-footer buttons-on-right"> |
| | | <button type="button" class="btn btn-md btn-grey" ng-click="fn.cancel()"><span translate="common.cancel">취소</span></button> |
| | | <button type="button" class="btn btn-md btn-primary bold" |
| | | js-short-cut |
| | | js-short-cut-action="(fn.formCheck(hostingFieldAddForm.$invalid) || $root.spinner) ? null : fn.formSubmit()" |
| | | ng-disabled="fn.formCheck(hostingFieldAddForm.$invalid)" |
| | | ng-click="fn.formSubmit()"><span translate="common.save">저장</span> |
| | | </button> |
| | | </div> |
| | | </div> |
| | |
| | | <div class="row"> |
| | | <div class="col-sm-12"> |
| | | <div class="searchdiv"> |
| | | <form name="customFieldListForm" role="form" ng-enter="fn.getPageList(0)"> |
| | | <form name="hostingFieldListForm" role="form" ng-enter="fn.getPageList(0)"> |
| | | <div class="row"> |
| | | <div class="col-lg-3"> |
| | | <div class="form-group"> |
| | | <label for="customFieldListForm1"><span translate="hostingField.name">사용자 정의 필드 명</span></label> |
| | | <label for="hostingFieldListForm1"><span translate="hostingField.name">ISP 이름</span></label> |
| | | <input type="text" |
| | | name="name" |
| | | id="customFieldListForm1" |
| | | id="hostingFieldListForm1" |
| | | autocomplete="off" |
| | | maxlength="15" |
| | | kr-input |
| | | owl-auto-focus |
| | | class="form-control" |
| | | ng-model="vm.search.name" placeholder="{{'customField.pleaseEnterUserDefinedFieldName' | translate}}"> |
| | | ng-model="vm.search.name" placeholder="{{'hostingField.pleaseEnterHostingFieldName' | translate}}"> |
| | | </div> |
| | | </div> |
| | | |
| | |
| | | </div> |
| | | <div class="col-5 text-right" ng-if="$root.checkMngPermission('USER_PERMISSION_MNG_CUSTOME_FIELD')"> |
| | | <form class="form-inline justify-content-sm-end pull-right" method="post" |
| | | action="/customField/downloadExcel" |
| | | name="customFieldListForm"> |
| | | action="/hostingField/downloadExcel" |
| | | name="hostingFieldListForm"> |
| | | <input type="hidden" name="conditions"> |
| | | <div class="btn-group"> |
| | | <button aria-expanded="false" aria-haspopup="true" |
| | |
| | | </button> |
| | | <div aria-labelledby="dropdownMenuButton2" class="dropdown-menu left-menu" |
| | | x-placement="bottom-start"> |
| | | <a class="dropdown-item cursor" form-submit="customFieldListForm" make-search-conditions="fn.makeSearchConditions()"><span translate="common.downloadExcel">엑셀 다운로드</span></a> |
| | | <a class="dropdown-item cursor" form-submit="hostingFieldListForm" make-search-conditions="fn.makeSearchConditions()"><span translate="common.downloadExcel">엑셀 다운로드</span></a> |
| | | <a class="dropdown-item cursor" ng-click="fn.removes()"> <span translate="common.delete">삭제</span></a> |
| | | </div> |
| | | </div> |
New file |
| | |
| | | <div class="formModal"> |
| | | <div class="modal-header faded smaller"> |
| | | <div class="modal-title"> |
| | | <strong>호스팅 수정</strong> |
| | | </div> |
| | | <button aria-label="Close" class="close" type="button" ng-click="fn.cancel()"> |
| | | <span aria-hidden="true"> ×</span> |
| | | </button> |
| | | </div> |
| | | |
| | | <div class="modal-body"> |
| | | <form role="form" name="hostingFieldModifyForm"> |
| | | <div class="form-group"> |
| | | <label for="hostingFieldModifyForm1"> |
| | | <span translate="hostingField.name">호스팅명</span> |
| | | <code class="highlighter-rouge">*</code> |
| | | </label> |
| | | <input id="hostingFieldModifyForm1" |
| | | name="name" |
| | | type="text" |
| | | class="form-control" |
| | | autofocus |
| | | kr-input |
| | | input-regex="[^a-zA-Z0-9 가-힣ㄱ-ㅎㅏ-ㅣ\u318D\u119E\u11A2\u2022\u2025a\u00B7\uFE55]" |
| | | autocomplete="off" |
| | | ng-model="vm.form.name" |
| | | ng-maxlength="100" |
| | | maxlength="100" |
| | | required> |
| | | <!--<small translate="notice.enterSpecialCharacters">제목에는 특수 문자를 입력할 수 없습니다.</small>--> |
| | | </div> |
| | | <div class="form-group"> |
| | | <label for="hostingFieldModifyForm10"> |
| | | <span translate="hostingField.code">코드</span> |
| | | <code class="highlighter-rouge">*</code> |
| | | </label> |
| | | <input id="hostingFieldModifyForm10" |
| | | name="code" |
| | | type="text" |
| | | class="form-control" |
| | | disabled |
| | | kr-input |
| | | input-regex="[^a-zA-Z0-9 가-힣ㄱ-ㅎㅏ-ㅣ\u318D\u119E\u11A2\u2022\u2025a\u00B7\uFE55]" |
| | | autocomplete="off" |
| | | ng-model="vm.form.code" |
| | | ng-maxlength="100" |
| | | maxlength="100" |
| | | required> |
| | | </div> |
| | | <div> |
| | | <div class="form-group"> |
| | | <label for="hostingFieldModifyForm9" class="issue-label"> |
| | | <span translate="hostingField.manager">담당자</span> |
| | | </label> |
| | | <input id="hostingFieldModifyForm9" |
| | | 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> |
| | | </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="20" |
| | | > |
| | | <!--<small translate="notice.enterSpecialCharacters">제목에는 특수 문자를 입력할 수 없습니다.</small>--> |
| | | </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}$/" |
| | | > |
| | | <!--<small translate="notice.enterSpecialCharacters">제목에는 특수 문자를 입력할 수 없습니다.</small>--> |
| | | </div> |
| | | </div> |
| | | <div> |
| | | <div class="form-group"> |
| | | <label for="hostingFieldModifyForm8" class="issue-label"> |
| | | <span translate="hostingField.desc">비고</span> |
| | | </label> |
| | | <input id="hostingFieldModifyForm8" |
| | | name="memo" |
| | | type="text" |
| | | class="form-control" |
| | | kr-input |
| | | autocomplete="off" |
| | | ng-model="vm.form.memo" |
| | | ng-maxlength="200" |
| | | maxlength="200" |
| | | > |
| | | </div> |
| | | </div> |
| | | </form> |
| | | </div> |
| | | |
| | | <div class="modal-footer buttons-on-right"> |
| | | <button type="button" class="btn btn-md btn-grey" ng-click="fn.cancel()"><span translate="common.cancel">취소</span></button> |
| | | <button type="button" class="btn btn-md btn-primary bold" |
| | | js-short-cut |
| | | js-short-cut-action="(fn.formCheck(hostingFieldModifyForm.$invalid) || $root.spinner) ? null : fn.formSubmit()" |
| | | ng-disabled="fn.formCheck(hostingFieldModifyForm.$invalid)" |
| | | ng-click="fn.formSubmit()"><span translate="common.save">저장</span> |
| | | </button> |
| | | </div> |
| | | </div> |
New file |
| | |
| | | <div class="formModal"> |
| | | <div class="modal-header faded smaller"> |
| | | <div class="modal-title"> |
| | | <strong>ISP 등록</strong> |
| | | </div> |
| | | <button aria-label="Close" class="close" type="button" ng-click="fn.cancel()"> |
| | | <span aria-hidden="true"> ×</span> |
| | | </button> |
| | | </div> |
| | | |
| | | <div class="modal-body"> |
| | | <form role="form" name="ispFieldAddForm"> |
| | | <div class="form-group"> |
| | | <label for="ispFieldAddForm1"> |
| | | <span translate="ispField.name">ISP명</span> |
| | | <code class="highlighter-rouge">*</code> |
| | | </label> |
| | | <input id="ispFieldAddForm1" |
| | | name="name" |
| | | type="text" |
| | | class="form-control" |
| | | autofocus |
| | | kr-input |
| | | input-regex="[^a-zA-Z0-9 가-힣ㄱ-ㅎㅏ-ㅣ\u318D\u119E\u11A2\u2022\u2025a\u00B7\uFE55]" |
| | | autocomplete="off" |
| | | ng-model="vm.form.name" |
| | | ng-maxlength="100" |
| | | maxlength="100" |
| | | required> |
| | | <small translate="ispField.enterSpecialCharacters">ISP 이름에는 특수 문자를 입력 할수 없습니다.</small> |
| | | </div> |
| | | <div class="form-group"> |
| | | <label for="ispFieldAddForm10"> |
| | | <span translate="ispField.code">코드</span> |
| | | <code class="highlighter-rouge">*</code> |
| | | </label> |
| | | <input id="ispFieldAddForm10" |
| | | name="code" |
| | | 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.code" |
| | | ng-maxlength="100" |
| | | maxlength="100" |
| | | required> |
| | | <small translate="hostingField.invalidCodeFormat">코드명에는 특수 문자를 입력 할수 없습니다.</small> |
| | | </div> |
| | | <div> |
| | | <div class="form-group"> |
| | | <label for="ispFieldAddForm9" class="issue-label"> |
| | | <span translate="ispField.manager">담당자</span> |
| | | </label> |
| | | <input id="ispFieldAddForm9" |
| | | 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" |
| | | > |
| | | </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 |
| | | ng-pattern="/^\d{2,3}-\d{3,4}-\d{4}$/" |
| | | autocomplete="off" |
| | | ng-model="vm.form.tel" |
| | | maxlength="20" |
| | | > |
| | | <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> |
| | | </div> |
| | | </div> |
| | | <div> |
| | | <div class="form-group"> |
| | | <label for="ispFieldAddForm8" class="issue-label"> |
| | | <span translate="ispField.desc">비고</span> |
| | | </label> |
| | | <input id="ispFieldAddForm8" |
| | | name="memo" |
| | | type="text" |
| | | class="form-control" |
| | | kr-input |
| | | autocomplete="off" |
| | | ng-model="vm.form.memo" |
| | | ng-maxlength="200" |
| | | maxlength="200" |
| | | > |
| | | </div> |
| | | </div> |
| | | </form> |
| | | </div> |
| | | |
| | | <div class="modal-footer buttons-on-right"> |
| | | <button type="button" class="btn btn-md btn-grey" ng-click="fn.cancel()"><span translate="common.cancel">취소</span></button> |
| | | <button type="button" class="btn btn-md btn-primary bold" |
| | | js-short-cut |
| | | js-short-cut-action="(fn.formCheck(ispFieldAddForm.$invalid) || $root.spinner) ? null : fn.formSubmit()" |
| | | ng-disabled="fn.formCheck(ispFieldAddForm.$invalid)" |
| | | ng-click="fn.formSubmit()"><span translate="common.save">저장</span> |
| | | </button> |
| | | </div> |
| | | </div> |
| | |
| | | <div class="row"> |
| | | <div class="col-sm-12"> |
| | | <div class="searchdiv"> |
| | | <form name="customFieldListForm" role="form" ng-enter="fn.getPageList(0)"> |
| | | <form name="ispFieldListForm" role="form" ng-enter="fn.getPageList(0)"> |
| | | <div class="row"> |
| | | <div class="col-lg-3"> |
| | | <div class="form-group"> |
| | | <label for="customFieldListForm1"><span translate="ispField.name">사용자 정의 필드 명</span></label> |
| | | <label for="ispFieldListForm1"><span translate="ispField.name">사용자 정의 필드 명</span></label> |
| | | <input type="text" |
| | | name="name" |
| | | id="customFieldListForm1" |
| | | id="ispFieldListForm1" |
| | | autocomplete="off" |
| | | maxlength="15" |
| | | kr-input |
| | | owl-auto-focus |
| | | class="form-control" |
| | | ng-model="vm.search.name" placeholder="{{'customField.pleaseEnterUserDefinedFieldName' | translate}}"> |
| | | ng-model="vm.search.name" placeholder="{{'ispField.pleaseEnterIspFieldName' | translate}}"> |
| | | </div> |
| | | </div> |
| | | |
| | |
| | | </div> |
| | | <div class="col-5 text-right" ng-if="$root.checkMngPermission('USER_PERMISSION_MNG_CUSTOME_FIELD')"> |
| | | <form class="form-inline justify-content-sm-end pull-right" method="post" |
| | | action="/customField/downloadExcel" |
| | | name="customFieldListForm"> |
| | | action="/ispField/downloadExcel" |
| | | name="ispFieldListForm"> |
| | | <input type="hidden" name="conditions"> |
| | | <div class="btn-group"> |
| | | <button aria-expanded="false" aria-haspopup="true" |
| | |
| | | </button> |
| | | <div aria-labelledby="dropdownMenuButton2" class="dropdown-menu left-menu" |
| | | x-placement="bottom-start"> |
| | | <a class="dropdown-item cursor" form-submit="customFieldListForm" make-search-conditions="fn.makeSearchConditions()"><span translate="common.downloadExcel">엑셀 다운로드</span></a> |
| | | <a class="dropdown-item cursor" form-submit="ispFieldListForm" make-search-conditions="fn.makeSearchConditions()"><span translate="common.downloadExcel">엑셀 다운로드</span></a> |
| | | <a class="dropdown-item cursor" ng-click="fn.removes()"> <span translate="common.delete">삭제</span></a> |
| | | </div> |
| | | </div> |
New file |
| | |
| | | <div class="formModal"> |
| | | <div class="modal-header faded smaller"> |
| | | <div class="modal-title"> |
| | | <strong>ISP 수정</strong> |
| | | </div> |
| | | <button aria-label="Close" class="close" type="button" ng-click="fn.cancel()"> |
| | | <span aria-hidden="true"> ×</span> |
| | | </button> |
| | | </div> |
| | | |
| | | <div class="modal-body"> |
| | | <form role="form" name="hostingFieldModifyForm"> |
| | | <div class="form-group"> |
| | | <label for="hostingFieldModifyForm1"> |
| | | <span translate="hostingField.name">ISP명</span> |
| | | <code class="highlighter-rouge">*</code> |
| | | </label> |
| | | <input id="hostingFieldModifyForm1" |
| | | name="name" |
| | | type="text" |
| | | class="form-control" |
| | | autofocus |
| | | kr-input |
| | | input-regex="[^a-zA-Z0-9 가-힣ㄱ-ㅎㅏ-ㅣ\u318D\u119E\u11A2\u2022\u2025a\u00B7\uFE55]" |
| | | autocomplete="off" |
| | | ng-model="vm.form.name" |
| | | ng-maxlength="100" |
| | | maxlength="100" |
| | | required> |
| | | <!--<small translate="notice.enterSpecialCharacters">제목에는 특수 문자를 입력할 수 없습니다.</small>--> |
| | | </div> |
| | | <div class="form-group"> |
| | | <label for="hostingFieldModifyForm10"> |
| | | <span translate="ispField.code">코드</span> |
| | | <code class="highlighter-rouge">*</code> |
| | | </label> |
| | | <input id="hostingFieldModifyForm10" |
| | | name="code" |
| | | type="text" |
| | | class="form-control" |
| | | disabled |
| | | kr-input |
| | | input-regex="[^a-zA-Z0-9 가-힣ㄱ-ㅎㅏ-ㅣ\u318D\u119E\u11A2\u2022\u2025a\u00B7\uFE55]" |
| | | autocomplete="off" |
| | | ng-model="vm.form.code" |
| | | ng-maxlength="100" |
| | | maxlength="100" |
| | | required> |
| | | <small translate="hostingField.invalidCodeFormat">코드명에는 특수 문자를 입력 할수 없습니다.</small> |
| | | </div> |
| | | <div> |
| | | <div class="form-group"> |
| | | <label for="hostingFieldModifyForm9" class="issue-label"> |
| | | <span translate="hostingField.manager">담당자</span> |
| | | </label> |
| | | <input id="hostingFieldModifyForm9" |
| | | 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> |
| | | </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="20" |
| | | > |
| | | <!--<small translate="notice.enterSpecialCharacters">제목에는 특수 문자를 입력할 수 없습니다.</small>--> |
| | | </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}$/" |
| | | > |
| | | <!--<small translate="notice.enterSpecialCharacters">제목에는 특수 문자를 입력할 수 없습니다.</small>--> |
| | | </div> |
| | | </div> |
| | | <div> |
| | | <div class="form-group"> |
| | | <label for="hostingFieldModifyForm8" class="issue-label"> |
| | | <span translate="hostingField.desc">비고</span> |
| | | </label> |
| | | <input id="hostingFieldModifyForm8" |
| | | name="memo" |
| | | type="text" |
| | | class="form-control" |
| | | kr-input |
| | | autocomplete="off" |
| | | ng-model="vm.form.memo" |
| | | ng-maxlength="200" |
| | | maxlength="200" |
| | | > |
| | | </div> |
| | | </div> |
| | | </form> |
| | | </div> |
| | | |
| | | <div class="modal-footer buttons-on-right"> |
| | | <button type="button" class="btn btn-md btn-grey" ng-click="fn.cancel()"><span translate="common.cancel">취소</span></button> |
| | | <button type="button" class="btn btn-md btn-primary bold" |
| | | js-short-cut |
| | | js-short-cut-action="(fn.formCheck(hostingFieldModifyForm.$invalid) || $root.spinner) ? null : fn.formSubmit()" |
| | | ng-disabled="fn.formCheck(hostingFieldModifyForm.$invalid)" |
| | | ng-click="fn.formSubmit()"><span translate="common.save">저장</span> |
| | | </button> |
| | | </div> |
| | | </div> |
New file |
| | |
| | | <div class="formModal"> |
| | | <div class="modal-header faded smaller"> |
| | | <div class="modal-title"> |
| | | <strong>부서명 수정</strong> |
| | | </div> |
| | | <button aria-label="Close" class="close" type="button" ng-click="fn.cancel()"> |
| | | <span aria-hidden="true"> ×</span> |
| | | </button> |
| | | </div> |
| | | |
| | | <div class="modal-body"> |
| | | <form role="form" name="departmentModifyForm"> |
| | | <div class="form-group"> |
| | | <label for="departmentModifyForm1"> |
| | | <span translate="common.departmentName">부서명</span> |
| | | <code class="highlighter-rouge">*</code> |
| | | </label> |
| | | <input id="departmentModifyForm1" |
| | | name="name" |
| | | type="text" |
| | | class="form-control" |
| | | autofocus |
| | | kr-input |
| | | input-regex="[^a-zA-Z0-9 가-힣ㄱ-ㅎㅏ-ㅣ\u318D\u119E\u11A2\u2022\u2025a\u00B7\uFE55]" |
| | | autocomplete="off" |
| | | ng-model="vm.form.departmentName" |
| | | ng-maxlength="200" |
| | | maxlength="200" |
| | | required> |
| | | <!--<small translate="notice.enterSpecialCharacters">제목에는 특수 문자를 입력할 수 없습니다.</small>--> |
| | | </div> |
| | | |
| | | <div class="form-group"> |
| | | <label> |
| | | <span translate="manageDepartment.departmentEx">부서 설명</span> |
| | | </label> |
| | | <summernote |
| | | class="summernote" |
| | | lang="ko-KR" |
| | | config="vm.options" |
| | | ng-model="vm.form.departmentDescription" |
| | | target=".note-editable"></summernote> |
| | | </div> |
| | | </form> |
| | | </div> |
| | | |
| | | <div class="modal-footer buttons-on-right"> |
| | | <button type="button" class="btn btn-md btn-grey" ng-click="fn.cancel()"><span translate="common.cancel">취소</span></button> |
| | | <button type="button" class="btn btn-md btn-primary bold" |
| | | js-short-cut |
| | | js-short-cut-action="(fn.formCheck(departmentModifyForm.$invalid) || $root.spinner) ? null : fn.formSubmit()" |
| | | ng-disabled="fn.formCheck(departmentModifyForm.$invalid)" |
| | | ng-click="fn.formSubmit()"><span translate="common.save">저장</span> |
| | | </button> |
| | | </div> |
| | | </div> |
| | |
| | | </div> |
| | | </div> |
| | | <div class="col-sm-6 text-right" ng-if="$root.checkMngPermission('USER_PERMISSION_MNG_WORKSPACE')"> |
| | | <form class="form-inline justify-content-sm-end pull-right ng-pristine ng-valid" method="post" action="/departmentManage/downloadExcel" name="departmentManageListForm"> |
| | | <form class="form-inline justify-content-sm-end pull-right ng-pristine ng-valid" method="post" action="/department/downloadExcel" name="departmentListForm"> |
| | | <input type="hidden" name="conditions" autocomplete="off"> |
| | | <div class="btn-group"> |
| | | <button aria-expanded="false" aria-haspopup="true" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown" type="button"><span translate="common.addFunction" class="ng-scope">추가기능</span> |
| | | </button> |
| | | <div aria-labelledby="dropdownMenuButton2" class="dropdown-menu left-menu" x-placement="bottom-start"> |
| | | <a class="dropdown-item cursor ng-isolate-scope" form-submit="departmentManageListForm" make-search-conditions="fn.makeSearchConditions()"><span translate="common.downloadExcel" class="ng-scope">엑셀 다운로드</span></a> |
| | | <a class="dropdown-item cursor ng-isolate-scope" form-submit="departmentListForm" make-search-conditions="fn.makeSearchConditions()"><span translate="common.downloadExcel" class="ng-scope">엑셀 다운로드</span></a> |
| | | <a class="dropdown-item cursor" ng-click="fn.removes()"> <span translate="common.delete" class="ng-scope">삭제</span></a> |
| | | </div> |
| | | </div> |
| | |
| | | <div class="formModal"> |
| | | <div class="formModal" xmlns:cursor="http://www.w3.org/1999/xhtml"> |
| | | <div class="modal-header faded smaller"> |
| | | <div class="modal-title"> |
| | | <strong>부서명 수정</strong> |
| | | <strong>부서 수정</strong> |
| | | </div> |
| | | <button aria-label="Close" class="close" type="button" ng-click="fn.cancel()"> |
| | | <span aria-hidden="true"> ×</span> |
| | |
| | | </div> |
| | | |
| | | <div class="modal-body"> |
| | | <form role="form" name="departmentModifyForm"> |
| | | <form role="form" name="departmentsModifyForm"> |
| | | <div class="form-group"> |
| | | <label for="departmentModifyForm1"> |
| | | <span translate="common.departmentName">부서명</span> |
| | | <code class="highlighter-rouge">*</code> |
| | | </label> |
| | | <input id="departmentModifyForm1" |
| | | name="name" |
| | | type="text" |
| | | class="form-control" |
| | | autofocus |
| | | kr-input |
| | | input-regex="[^a-zA-Z0-9 가-힣ㄱ-ㅎㅏ-ㅣ\u318D\u119E\u11A2\u2022\u2025a\u00B7\uFE55]" |
| | | autocomplete="off" |
| | | ng-model="vm.form.departmentName" |
| | | ng-maxlength="200" |
| | | maxlength="200" |
| | | required> |
| | | <!--<small translate="notice.enterSpecialCharacters">제목에는 특수 문자를 입력할 수 없습니다.</small>--> |
| | | </div> |
| | | <label><span translate="common.departmentName">부서명</span> </label> |
| | | <js-autocomplete-multi data-input-name="departments" |
| | | selected-model="vm.form.departments" |
| | | search="vm.departmentName" |
| | | source="fn.getDepartments(vm.departmentName, vm.form.departments)" |
| | | input-disabled="false"> <!--concat 체크 필요--> |
| | | <!--translation-texts="{ count : 'common.userNum', empty : 'common.emptyUser' }" |
| | | extra-settings="{ displayProp : 'byName' , idProp : 'id', imageable : true, imagePathProp : 'profile', type : 'user', maxlength : 100, autoResize : true }"--> |
| | | </js-autocomplete-multi> |
| | | |
| | | <div class="form-group"> |
| | | <label> |
| | | <span translate="manageDepartment.departmentEx">부서 설명</span> |
| | | </label> |
| | | <summernote |
| | | class="summernote" |
| | | lang="ko-KR" |
| | | config="vm.options" |
| | | ng-model="vm.form.departmentDescription" |
| | | target=".note-editable"></summernote> |
| | | <div class="select3-selection__choicediv mt-10"> |
| | | <span class="select3-selection__choice" ng-repeat="department in vm.form.departments"> |
| | | <span>{{department.name}}</span> <!--부서 이름 출력--> |
| | | <span class="select3-selection__choice__remove" ng-click="fn.removeDepartments($index)">×</span> |
| | | </span> |
| | | </div> |
| | | </div> |
| | | </form> |
| | | </div> |
| | |
| | | <button type="button" class="btn btn-md btn-grey" ng-click="fn.cancel()"><span translate="common.cancel">취소</span></button> |
| | | <button type="button" class="btn btn-md btn-primary bold" |
| | | js-short-cut |
| | | js-short-cut-action="(fn.formCheck(departmentModifyForm.$invalid) || $root.spinner) ? null : fn.formSubmit()" |
| | | ng-disabled="fn.formCheck(departmentModifyForm.$invalid)" |
| | | js-short-cut-action="(fn.formCheck(departmentsModifyForm.$invalid) || $root.spinner) ? null : fn.formSubmit()" |
| | | ng-disabled="fn.formCheck(departmentsModifyForm.$invalid)" |
| | | ng-click="fn.formSubmit()"><span translate="common.save">저장</span> |
| | | </button> |
| | | </div> |
| | | </div> |
| | | </div> |