From 9e1224315ff031c5cfccda6ccb0d7841729d8612 Mon Sep 17 00:00:00 2001
From: 이민희 <mhlee@maprex.co.kr>
Date: 월, 15 11월 2021 17:21:52 +0900
Subject: [PATCH] Merge branch 'master' of http://192.168.0.25:9001/r/owl-kisa

---
 src/main/webapp/scripts/app/issueType/issueTypeList.controller.js            |    2 
 src/main/webapp/views/issueType/issueTypeAdd.html                            |   21 
 src/main/webapp/views/issue/issueAdd.html                                    |  383 ++++++++++++++++++++---
 src/main/webapp/scripts/app/issue/issueManager.controller.js                 |   16 +
 src/main/webapp/scripts/app/common/common.controller.js                      |   59 +++
 src/main/webapp/scripts/app/issue/issueCompanyFieldDetail.controller.js      |   85 +++++
 src/main/resources/system_dev.properties                                     |    2 
 src/main/java/kr/wisestone/owl/domain/IssueType.java                         |   13 
 src/main/webapp/views/issue/issueModifyUser.html                             |    2 
 src/main/java/kr/wisestone/owl/vo/IssueTypeVo.java                           |   11 
 src/main/webapp/scripts/app/issueType/issueTypeAdd.controller.js             |   24 +
 src/main/resources/migration/V1_11__Alter_Table.sql                          |    3 
 src/main/webapp/views/issue/issueCompanyFieldDetail.html                     |   37 ++
 src/main/webapp/views/issue/issueModify.html                                 |    2 
 src/main/java/kr/wisestone/owl/service/impl/IssueTypeServiceImpl.java        |   27 +
 src/main/webapp/views/common/sidebar.html                                    |   37 -
 src/main/webapp/views/issue/issueListTimeline.html                           |    2 
 src/main/webapp/views/issueType/issueTypeModify.html                         |   29 +
 src/main/resources/mybatis/query-template/issueType-template.xml             |    3 
 src/main/webapp/scripts/app/issueType/issueTypeModify.controller.js          |   28 +
 src/main/webapp/views/issue/issueListNormal.html                             |    2 
 src/main/webapp/views/issue/issueList.html                                   |    9 
 src/main/java/kr/wisestone/owl/web/form/IssueTypeForm.java                   |    9 
 src/main/webapp/assets/styles/main.css                                       |   32 +
 src/main/webapp/scripts/components/utils/autoComplete.controller.js          |   40 ++
 src/main/webapp/scripts/config.js                                            |    8 
 src/main/java/kr/wisestone/owl/web/condition/IssueTypeCondition.java         |    9 
 src/main/webapp/scripts/app/issue/issueList.controller.js                    |   17 
 src/main/webapp/i18n/ko/global.json                                          |   13 
 src/main/webapp/views/issue/issueDetail.html                                 |    2 
 src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js |    7 
 31 files changed, 820 insertions(+), 114 deletions(-)

diff --git a/src/main/java/kr/wisestone/owl/domain/IssueType.java b/src/main/java/kr/wisestone/owl/domain/IssueType.java
index ac7f750..7c64998 100644
--- a/src/main/java/kr/wisestone/owl/domain/IssueType.java
+++ b/src/main/java/kr/wisestone/owl/domain/IssueType.java
@@ -27,8 +27,13 @@
     @JoinColumn(name = "workflow_id")
     private Workflow workflow;
 
+    @ManyToOne(fetch = FetchType.LAZY)
+    @JoinColumn(name = "project_id")
+    private Project project;
+
     @OneToMany(mappedBy = "issueType", cascade = { CascadeType.ALL }, orphanRemoval = true)
     private Set<IssueTypeCustomField> issueTypeCustomFields = new HashSet<>();
+
 
     public IssueType(){}
 
@@ -95,4 +100,12 @@
     public void setIssueTypeCustomFields(Set<IssueTypeCustomField> issueTypeCustomFields) {
         this.issueTypeCustomFields = issueTypeCustomFields;
     }
+
+    public Project getProject() {
+        return project;
+    }
+
+    public void setProject(Project project) {
+        this.project = project;
+    }
 }
diff --git a/src/main/java/kr/wisestone/owl/service/impl/IssueTypeServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/IssueTypeServiceImpl.java
index c32c1ee..2b81ab9 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/IssueTypeServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/IssueTypeServiceImpl.java
@@ -43,6 +43,9 @@
     private WorkflowService workflowService;
 
     @Autowired
+    private ProjectService projectService;
+
+    @Autowired
     private WorkspaceService workspaceService;
 
     @Autowired
@@ -108,6 +111,8 @@
         issueType.setWorkspace(workspace);
         Workflow workflow = this.workflowService.getWorkflow(issueTypeForm.getWorkflowId());
         issueType.setWorkflow(workflow);
+        Project project = this.projectService.getProject(issueTypeForm.getProjectId());
+        issueType.setProject(project);
 
         return this.issueTypeRepository.saveAndFlush(issueType);
     }
@@ -166,6 +171,8 @@
             this.setUseIssueTypeByWorkflow(issueTypeVos);
         }
 
+        this.setUseIssueTypeByProject(issueTypeVos);
+
         resJsonData.put(Constants.REQ_KEY_PAGE_VO, new ResPage(pageable.getPageNumber(), pageable.getPageSize(),
                 totalPage, totalCount));
 
@@ -179,6 +186,18 @@
         for (IssueTypeVo issueTypeVo : issueTypeVos) {
             IssueType issueType = this.getIssueType(issueTypeVo.getId());
             issueTypeVo.setWorkflowVo(ConvertUtil.copyProperties(issueType.getWorkflow(), WorkflowVo.class));
+        }
+    }
+
+    //  �씠�뒋 �쑀�삎�뿉 �뿰寃곕맂 �봽濡쒖젥�듃 �젙蹂대�� �뀑�똿�븳�떎.
+    private void setUseIssueTypeByProject(List<IssueTypeVo> issueTypeVos) {
+        for (IssueTypeVo issueTypeVo : issueTypeVos) {
+            IssueType issueType = this.getIssueType(issueTypeVo.getId());
+
+            Project project = issueType.getProject();
+            if (project != null) {
+                issueTypeVo.setProjectVo(ConvertUtil.copyProperties(issueType.getProject(), ProjectVo.class));
+            }
         }
     }
 
@@ -196,6 +215,11 @@
                 case "01": //  �썙�겕�뵆濡쒖슦 �젙蹂대�� 媛��졇�삩�떎.
                     issueTypeVo.setWorkflowVo(ConvertUtil.copyProperties(issueType.getWorkflow(), WorkflowVo.class));
                     break;
+            }
+
+            Project project = issueType.getProject();
+            if (project != null) {
+                issueTypeVo.setProjectVo(ConvertUtil.copyProperties(issueType.getProject(), ProjectVo.class));
             }
         }
 
@@ -222,6 +246,9 @@
         ConvertUtil.copyProperties(issueTypeForm, issueType, "id", "issueTypeType");
         issueType.setWorkflow(workflow);
 
+        Project project = this.projectService.getProject(issueTypeForm.getProjectId());
+        issueType.setProject(project);
+
         this.issueTypeRepository.saveAndFlush(issueType);
 
         return issueType;
diff --git a/src/main/java/kr/wisestone/owl/vo/IssueTypeVo.java b/src/main/java/kr/wisestone/owl/vo/IssueTypeVo.java
index 58e173f..d0581b6 100644
--- a/src/main/java/kr/wisestone/owl/vo/IssueTypeVo.java
+++ b/src/main/java/kr/wisestone/owl/vo/IssueTypeVo.java
@@ -1,5 +1,7 @@
 package kr.wisestone.owl.vo;
 
+import kr.wisestone.owl.domain.Project;
+
 /**
  * Created by wisestone on 2018-05-29.
  */
@@ -9,6 +11,7 @@
     private String description;
     private String color;
     private WorkflowVo workflowVo;
+    private ProjectVo projectVo;
     private Boolean modifyPermissionCheck = Boolean.TRUE;   //  �씠�뒋 �쑀�삎�� 紐⑤뱺 �궗�엺�뱾�씠 �닔�젙, �궘�젣�븷 �닔 �엳�뼱�꽌 湲곕낯 媛믪씠 True
 
     public IssueTypeVo(){}
@@ -60,4 +63,12 @@
     public void setModifyPermissionCheck(Boolean modifyPermissionCheck) {
         this.modifyPermissionCheck = modifyPermissionCheck;
     }
+
+    public ProjectVo getProjectVo() {
+        return projectVo;
+    }
+
+    public void setProjectVo(ProjectVo projectVo) {
+        this.projectVo = projectVo;
+    }
 }
diff --git a/src/main/java/kr/wisestone/owl/web/condition/IssueTypeCondition.java b/src/main/java/kr/wisestone/owl/web/condition/IssueTypeCondition.java
index 7de6096..d5e9b9d 100644
--- a/src/main/java/kr/wisestone/owl/web/condition/IssueTypeCondition.java
+++ b/src/main/java/kr/wisestone/owl/web/condition/IssueTypeCondition.java
@@ -13,6 +13,7 @@
     private Integer page;
     private Integer pageSize;
     private Long workspaceId;
+    private Long projectId;
     private String deep;    //  �긽�꽭 議고쉶�뿉�꽌 媛��졇�삱 �뜲�씠�꽣�쓽 醫낅쪟瑜� 寃곗젙�븳�떎.
 
     public IssueTypeCondition(){}
@@ -69,4 +70,12 @@
     public void setDeep(String deep) {
         this.deep = deep;
     }
+
+    public Long getProjectId() {
+        return projectId;
+    }
+
+    public void setProjectId(Long projectId) {
+        this.projectId = projectId;
+    }
 }
diff --git a/src/main/java/kr/wisestone/owl/web/form/IssueTypeForm.java b/src/main/java/kr/wisestone/owl/web/form/IssueTypeForm.java
index 5d30cc0..f180c0f 100644
--- a/src/main/java/kr/wisestone/owl/web/form/IssueTypeForm.java
+++ b/src/main/java/kr/wisestone/owl/web/form/IssueTypeForm.java
@@ -16,6 +16,7 @@
     private String description;
     private String color;
     private Long workflowId;
+    private Long projectId;
     private List<Long> removeIds = Lists.newArrayList();
 
     public IssueTypeForm(){}
@@ -81,4 +82,12 @@
     public void addRemoveIds(Long removeId) {
         this.removeIds.add(removeId);
     }
+
+    public Long getProjectId() {
+        return projectId;
+    }
+
+    public void setProjectId(Long projectId) {
+        this.projectId = projectId;
+    }
 }
diff --git a/src/main/resources/migration/V1_11__Alter_Table.sql b/src/main/resources/migration/V1_11__Alter_Table.sql
index e8b5010..dd41b81 100644
--- a/src/main/resources/migration/V1_11__Alter_Table.sql
+++ b/src/main/resources/migration/V1_11__Alter_Table.sql
@@ -124,3 +124,6 @@
    INDEX `issueTypeIdIndex` (`issue_type_id`) USING BTREE
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
 
+-- �씠�뒋 ���엯 �봽濡쒖젥�듃
+ALTER TABLE `issue_type` ADD COLUMN  `project_id` BIGINT(11) NULL;
+
diff --git a/src/main/resources/mybatis/query-template/issueType-template.xml b/src/main/resources/mybatis/query-template/issueType-template.xml
index 8beb810..cdc7a7e 100644
--- a/src/main/resources/mybatis/query-template/issueType-template.xml
+++ b/src/main/resources/mybatis/query-template/issueType-template.xml
@@ -16,6 +16,9 @@
         <if test="name != '' and name != null">
             AND it.name like CONCAT('%',#{name},'%')
         </if>
+        <if test="projectId != '' and projectId != null">
+            AND it.project_id like CONCAT('%',#{projectId},'%')
+        </if>
         AND ws.id = #{workspaceId}
         <if test="page != null and !page.equals('')">
             limit #{pageSize} offset #{page};
diff --git a/src/main/resources/system_dev.properties b/src/main/resources/system_dev.properties
index 6cc07e1..35ad9ac 100644
--- a/src/main/resources/system_dev.properties
+++ b/src/main/resources/system_dev.properties
@@ -39,7 +39,7 @@
 mail.password=
 
 # email \uC124\uC815
-email.host=mail.g2works.kr
+email.host=mail.g2works.kra
 email.port=587
 email.userName=wyu@maprex.co.kr
 email.password=1234
diff --git a/src/main/webapp/assets/styles/main.css b/src/main/webapp/assets/styles/main.css
index 7a8dce6..198571c 100644
--- a/src/main/webapp/assets/styles/main.css
+++ b/src/main/webapp/assets/styles/main.css
@@ -3132,6 +3132,29 @@
     border-color: #292b2c;
 }
 
+.btn-indigo {
+    color: #fff;
+    background-color: #1973EB;
+    border-color: #1973EB;
+}
+
+.btn-indigo:hover {
+    color: #fff;
+    background-color: #0f0165;
+    border-color: #0f0165;
+}
+
+.btn-indigo:focus, .btn-secondary.focus {
+    -webkit-box-shadow: 0 0 0 0.2rem rgba(41, 43, 44, 0.5);
+    box-shadow: 0 0 0 0.2rem rgba(41, 43, 44, 0.5);
+}
+
+.btn-indigo.disabled, .btn-secondary:disabled {
+    color: #fff;
+    background-color: #292b2c;
+    border-color: #292b2c;
+}
+
 .btn-success {
     color: #fff;
     background-color: #5eb314;
@@ -28580,7 +28603,6 @@
 .tab .tablabel::after {
     display: inline-block;
     color: #4d8bf5;
-    background-color:;
     width: 30px;
     font-size: 0.80rem;
     line-height: 40px;
@@ -30173,4 +30195,12 @@
     width: 100%
 }
 
+.fontcolor_green {
+    color: #6C9266;
+    font-size: 15px;
+}
+.fontcolor_neon_green {
+    color: #282c34;
+    font-size: 15px;
+}
 /* 媛꾪듃李⑦듃 end */
diff --git a/src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js b/src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js
index cd59e36..960fd55 100644
--- a/src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js
+++ b/src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js
@@ -81,6 +81,13 @@
                                             }
                                             break;
 
+                                        //  �봽濡쒖젥�듃 �씠由�(�봽濡쒖젥�듃 由ъ뒪�듃�뿉�꽌 �궗�슜)
+                                        case "PROJECT_BASIC_NAME" :
+                                                if (scope.data.projectVo != null) {
+                                                    makeTag += "<span class='titlenameSelect'>" + myToken + scope.data.projectVo.name.replace(/</gi, '&lt;') + "</span>";
+                                                }
+                                            break;
+
                                         //  �봽濡쒖젥�듃 紐⑸줉�뿉�꽌 �궗�슜�옄 �젙�쓽 �븘�뱶 �꽕�젙 �몴�떆
                                         case "CUSTOM_FIELD_CONFIG" :
                                             //  愿�由ъ옄留� �닔�젙�븷 �닔 �엳�떎.
diff --git a/src/main/webapp/i18n/ko/global.json b/src/main/webapp/i18n/ko/global.json
index 05bd9b9..7f4d968 100644
--- a/src/main/webapp/i18n/ko/global.json
+++ b/src/main/webapp/i18n/ko/global.json
@@ -291,7 +291,9 @@
         "relationIssueType6" : "�떎�쓬 �씠�뒋瑜� �슦�꽑 吏꾪뻾",
         "updateIssueUser" : "�씠�뒋 �떞�떦�옄 蹂�寃�",
         "normalList" : "�씠�뒋 紐⑸줉",
-        "timeLine" : "���엫 �씪�씤"
+        "timeLine" : "���엫 �씪�씤",
+        "useProjects" : "�궗�슜 �봽濡쒖젥�듃",
+        "companyInfo" : "�뾽泥�/ISP/�샇�뒪�똿"
     },
     "project": {
         "createProject": "�봽濡쒖젥�듃 留뚮뱾湲�",
@@ -765,7 +767,10 @@
         "departmentName": "遺��꽌紐�",
         "departmentEx": "遺��꽌�꽕紐�",
         "departmentCount": "遺��꽌�씤�썝",
-        "departmentUser": "遺��꽌 ���썝"
+        "departmentUser": "遺��꽌 ���썝",
+        "detectingInfo": "�깘吏��젙蹂�",
+        "detectingData": "�깘吏��씪�떆",
+        "import": "媛��졇�삤湲�"
     },
     "tasks": {
         "agileBoardTitle": "移몃컲 蹂대뱶"
@@ -796,12 +801,14 @@
         "successToApiTokenAdd" : "API �넗�겙 �깮�꽦 �꽦怨�"
     },
     "companyField" : {
+        "info": "�뾽泥� �젙蹂�",
         "add" : "�뾽泥� �깮�꽦",
         "name" : "�뾽泥� �씠由�",
         "company" : "�뾽泥� 遺꾨쪟",
         "profitYN" : "�쁺由�/鍮꾩쁺由�",
         "industry" : "�궛�뾽 遺꾨쪟",
         "domain" : "�룄硫붿씤",
+        "ipAdress" : "ip二쇱냼",
         "manager" : "�떞�떦�옄",
         "tel" : "�쟾�솕踰덊샇",
         "code" : "肄붾뱶",
@@ -817,6 +824,7 @@
         "invalidTelFormat": "�쟾�솕踰덊샇 �삎�떇�씠 留욎� �븡�뒿�땲�떎. xxx-xxx-xxxx �삎�떇�쑝濡� �엯�젰�븯�꽭�슂."
     },
     "ispField" : {
+        "info": "ISP �젙蹂�",
         "add" : "ISP �깮�꽦",
         "name" : "ISP �씠由�",
         "manager" : "�떞�떦�옄",
@@ -834,6 +842,7 @@
         "invalidCodeFormat": "肄붾뱶紐낆뿉�뒗 �듅�닔 臾몄옄瑜� �엯�젰 �븷 �닔 �뾾�뒿�땲�떎."
     },
     "hostingField" : {
+        "info": "�샇�뒪�똿 �젙蹂�",
         "add" : "�샇�뒪�똿 �깮�꽦",
         "name" : "�샇�뒪�똿 �씠由�",
         "manager" : "�떞�떦�옄",
diff --git a/src/main/webapp/scripts/app/common/common.controller.js b/src/main/webapp/scripts/app/common/common.controller.js
index 9f28f65..ca13508 100644
--- a/src/main/webapp/scripts/app/common/common.controller.js
+++ b/src/main/webapp/scripts/app/common/common.controller.js
@@ -6,8 +6,8 @@
     function (app, angular) {
 
         app.controller('commonController', ['$scope', '$rootScope', '$log', 'Auth', '$state', 'User', '$resourceProvider', '$uibModal', 'SweetAlert', 'Workspace', '$translate', '$q',
-            '$interval', 'IssueSearch', '$filter', 'Notice', 'Project',
-            function ($scope, $rootScope, $log, Auth, $state, User, $resourceProvider, $uibModal, SweetAlert, Workspace, $translate, $q, $interval, IssueSearch, $filter, Notice, Project) {
+            '$interval', 'IssueSearch', '$filter', 'Notice', 'Project', 'IssueType',
+            function ($scope, $rootScope, $log, Auth, $state, User, $resourceProvider, $uibModal, SweetAlert, Workspace, $translate, $q, $interval, IssueSearch, $filter, Notice, Project, IssueType) {
 
                 $scope.fn = {
                     logout: logout,    //  濡쒓렇�븘�썐
@@ -20,7 +20,9 @@
                     makeIssueSearch: makeIssueSearch,  //  �씠�뒋 踰덊샇瑜� ���옣�븳 �썑 �씠�뒋 紐⑸줉�쑝濡� �씠�룞�븳�떎.
                     disconnectSocket: disconnectSocket,    //  �쎒 �냼耳� �뿰寃� �빐�젣
                     sendMessage: sendMessage,
-                    moveMenu : moveMenu
+                    moveMenu : moveMenu,
+                    findIssueList : findIssueList,   // �궗�씠�뱶諛� �씠�뒋 紐⑸줉 媛��졇�삤湲�
+                    changeIssueListMenu : changeIssueListMenu
                 };
 
                 $scope.vm = {
@@ -40,6 +42,22 @@
                     findAllWorkproject();
                 });
 
+                function changeIssueListMenu(issueTypeId) {
+                    $rootScope.issueTypeMenu = null;
+                    for (var issueType of $rootScope.workIssueTypes) {
+                        if (issueType.id === issueTypeId) {
+                            $rootScope.issueTypeMenu = issueType;
+                            break;
+                        }
+                    }
+
+                    if ($rootScope.issueTypeMenu != null) {
+                        moveMenu("issues.list");
+                    }
+
+                    $rootScope.$broadcast("changeIssueListMenu", $rootScope.issueTypeMenu);
+                }
+
                 function moveMenu(stateName) {
                     if ($state.current.name == stateName) {
                         $state.reload();
@@ -50,7 +68,6 @@
 
                 //  硫붿꽭吏� 諛쒖넚
                 function sendMessage() {
-
                     var content = {
                         description : $scope.vm.message,
                         userIds : [1]
@@ -128,6 +145,9 @@
                                     if ($rootScope.user.lastProjectId === project.id) {
                                         $rootScope.workProject = project;
                                     }
+
+                                    var id = $rootScope.workProject.id === -1 ? null : $rootScope.workProject.id;
+                                    $scope.fn.findIssueList(id);
                                 }
                                 $rootScope.projects = datas;
                             }
@@ -180,6 +200,37 @@
                     });
                 }
 
+
+                //  �쁽�옱 �봽濡쒖젥�듃 蹂�寃쎌떆
+                $scope.$on("changeLastProject", function (event, args) {
+                    findIssueList(args.id);
+                });
+
+                // �씠�뒋 �쑀�삎 紐⑸줉 媛��졇�삤湲�
+               function findIssueList(projectId) {
+                   //  �씠�뒋 ���엯 紐⑸줉 寃��깋 議곌굔�쓣 留뚮뱺�떎.
+                   var conditions = {
+                       projectId : projectId > -1 ? projectId : null,
+                       deep : "01" //  �씠�뒋 �쑀�삎�뿉 �뿰寃곕맂 �썙�겕�뵆濡쒖슦 �젙蹂대�� 李얜뒗�떎.
+                   }
+
+                   IssueType.find($resourceProvider.getContent(conditions,
+                       $resourceProvider.getPageContent(0, 100))).then(function (result) {
+
+                       if (result.data.message.status === "success") {
+                           $rootScope.workIssueTypes = result.data.data;
+                           if ($rootScope.workIssueTypes != null) {
+                               changeIssueListMenu($rootScope.workIssueTypes[0].id);
+                           }
+                       }
+                       else {
+                           SweetAlert.error($filter("translate")("managementType.failedToIssueTypeList"), result.data.message.message); // "�씠�뒋 �쑀�삎 紐⑸줉 議고쉶 �떎�뙣"
+                       }
+                   });
+               }
+
+
+
                 // �봽濡쒖젥�듃 蹂�寃�
                 function changeLastProject(projectId) {
                    $rootScope.changeLastProject(projectId);
diff --git a/src/main/webapp/scripts/app/issue/issueCompanyFieldDetail.controller.js b/src/main/webapp/scripts/app/issue/issueCompanyFieldDetail.controller.js
new file mode 100644
index 0000000..bca5967
--- /dev/null
+++ b/src/main/webapp/scripts/app/issue/issueCompanyFieldDetail.controller.js
@@ -0,0 +1,85 @@
+/**
+ * Created by wisestone on 2018-02-19.
+ */
+'use strict';
+
+define([
+        'app'
+    ],
+    function (app) {
+        app.controller('companyFieldAddController', ['$scope', '$rootScope', '$log', '$resourceProvider', 'SweetAlert', '$uibModal', '$uibModalInstance', '$state', 'CompanyField', '$filter',
+            function ($scope, $rootScope, $log, $resourceProvider, SweetAlert, $uibModal, $uibModalInstance, $state, CompanyField, $filter) {
+
+                $scope.fn = {
+                    cancel : cancel,    //  �뙘�뾽 李� �떕湲�
+                    formSubmit : formSubmit,    //  �뤌 �쟾�넚
+                    formCheck : formCheck,   //  �뤌 泥댄겕
+                };
+
+                $scope.vm = {
+                    form : {
+                        name : "",  //�뾽泥대챸
+                        //companyType : "", //�뾽泥대텇瑜�
+                        //profitYN : "",  //�쁺由�/鍮꾩쁺由�
+                        //industry : "",  //�궛�뾽遺꾨쪟
+                        //domain : "",  //�룄硫붿씤
+                        manager : "",   //�떞�떦�옄
+                        tel : "",  //�쟾�솕踰덊샇
+                        email : "",  //�씠硫붿씪
+                        memo : ""  //鍮꾧퀬
+                    }
+                };
+
+                //  �뤌 泥댄겕
+                function formCheck(formInvalid) {
+                    if (formInvalid) {
+                        return true;
+                    }
+                    return false;
+                }
+
+                //  �뤌 �쟾�넚
+                function formSubmit(condition) {
+                    $rootScope.spinner = true;
+
+                    var content = {
+                        name : $rootScope.preventXss($scope.vm.form.name),    //  �뾽泥대챸
+                        //companyType : $scope.vm.form.companyType, //�뾽泥대텇瑜�
+                        //profitYN : $scope.vm.form.profitYN,  //�쁺由�/鍮꾩쁺由�
+                        //industry : $scope.vm.form.industry,  //�궛�뾽遺꾨쪟
+                        //domain : $scope.vm.form.domain,  //�룄硫붿씤
+                        manager : $scope.vm.form.manager,   //�떞�떦�옄
+                        tel : $scope.vm.form.tel,  //�쟾�솕踰덊샇
+                        email : $scope.vm.form.email,  //�씠硫붿씪
+                        memo : $scope.vm.form.memo  //鍮꾧퀬
+                    };
+
+                    CompanyField.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")("companyField.failedCompanyFieldRegistration"), result.data.message.message);
+                        }
+
+                        $rootScope.spinner = false;
+                    });
+
+                }
+
+                //  �뙘�뾽 李� �떕湲�
+                function cancel() {
+                    $rootScope.$broadcast("closeLayer");    //  �뙘�뾽�씠 �뿴由ш퀬 �굹�꽌 js-multi, js-single �벑�뿉�꽌 body �씠踰ㅽ듃媛� �궇�븘媛��뒗 �쁽�긽 �닔�젙
+                    $uibModalInstance.dismiss('cancel');
+                    $(document).unbind("keydown");  //  �떒異뺥궎 �씠踰ㅽ듃 �젣嫄�
+                }
+
+            }
+
+        ]);
+    }
+);
\ No newline at end of file
diff --git a/src/main/webapp/scripts/app/issue/issueList.controller.js b/src/main/webapp/scripts/app/issue/issueList.controller.js
index 09e5b4e..9b7b944 100644
--- a/src/main/webapp/scripts/app/issue/issueList.controller.js
+++ b/src/main/webapp/scripts/app/issue/issueList.controller.js
@@ -120,6 +120,7 @@
 
                 //  �꽌踰꾩뿉 ���옣�븳 �씠�뒋 寃��깋 議곌굔�쓣 媛��졇�삩�떎.
                 function getVmSearchObject() {
+
                     IssueSearch.detail($resourceProvider.getContent({}, $resourceProvider.getPageContent(0, 0))).then(function (result) {
 
                         if (result.data.message.status === "success") {
@@ -239,9 +240,9 @@
                                 .setDAlign("text-center")
                                 .setDName("issueTypeName"));
                             break;
-                        case "ASSIGNEE" :   //  �떞�떦�옄
+                        case "ASSIGNEETEAM" :   //  �떞�떦遺��꽌
                             $scope.vm.tableConfigs.push($tableProvider.config()
-                                .setHName("common.assignee")
+                                .setHName("common.assigneeTeam")
                                 .setDType("renderer")
                                 .setHWidth("bold " + issueTableConfig.width)
                                 .setDAlign("text-center")
@@ -447,6 +448,14 @@
                         currentPage = selectedPage;
                     }
 
+                    // 硫붾돱�뿉�꽌 �꽑�깮�맂 �씠�뒋 �쑀�삎�쓣 湲곕낯�쑝濡� 異붽�
+                    if ($rootScope.issueTypeMenu != null) {
+                        // $scope.vm.pageTitle = $rootScope.issueTypeMenu.name;
+                        $scope.vm.search.issueTypeIds.push({
+                            fieldKey : $rootScope.issueTypeMenu.id,
+                            fieldValue : $rootScope.issueTypeMenu.name
+                        });
+                    }
 
                     //  寃��깋 議곌굔�쓣 ���옣�븳�떎.
                     //$scope.fn.makeVmSearchObject();
@@ -857,8 +866,8 @@
                                     position : 3,
                                     display : true
                                 }, {
-                                    name : $filter("translate")("common.assignee"), // �떞�떦�옄
-                                    key : "ASSIGNEE",
+                                    name : $filter("translate")("common.assigneeTeam"), // �떞�떦遺��꽌
+                                    key : "ASSIGNEETEAM",
                                     width : "width-140-p",
                                     position : 4,
                                     display : true
diff --git a/src/main/webapp/scripts/app/issue/issueManager.controller.js b/src/main/webapp/scripts/app/issue/issueManager.controller.js
index c72a718..9c45f37 100644
--- a/src/main/webapp/scripts/app/issue/issueManager.controller.js
+++ b/src/main/webapp/scripts/app/issue/issueManager.controller.js
@@ -12,9 +12,11 @@
 
                 $scope.fn = {
                     changeTab : changeTab,  //  �꺆 蹂�寃�
+                    start : start
                 };
 
                 $scope.vm = {
+                    pageTitle : "�씠�뒋愿�由�",
                     tab : "ISSUE_LIST" //  �뾽臾� 怨듦컙 �젙蹂닿� 湲곕낯 �꺆
                 };
 
@@ -28,6 +30,20 @@
                         $rootScope.$broadcast("changeListTab");
                     }
                 }
+
+                $scope.fn.start();
+
+                $scope.$on("changeIssueListMenu", function (event, args) {
+                    if (args != null) {
+                        $scope.vm.pageTitle = args.name;
+                    }
+                });
+
+                function start() {
+                    if ($rootScope.issueTypeMenu != null) {
+                        $scope.vm.pageTitle = $rootScope.issueTypeMenu.name;
+                    }
+                }
             }
         ]);
     }
diff --git a/src/main/webapp/scripts/app/issueType/issueTypeAdd.controller.js b/src/main/webapp/scripts/app/issueType/issueTypeAdd.controller.js
index 589a9ae..500bad8 100644
--- a/src/main/webapp/scripts/app/issueType/issueTypeAdd.controller.js
+++ b/src/main/webapp/scripts/app/issueType/issueTypeAdd.controller.js
@@ -13,6 +13,7 @@
 
                 $scope.fn = {
                     getWorkflowListCallBack : getWorkflowListCallBack,  //  �썙�겕�뵆濡쒖슦 auto complete callback function
+                    getProjectListCallBack : getProjectListCallBack, // �봽濡쒖젥�듃 auto complete callback function
                     cancel : cancel,    //  �뙘�뾽 李� �떕湲�
                     formSubmit : formSubmit,    //  �뤌 �쟾�넚
                     formCheck : formCheck   //  �뤌 泥댄겕
@@ -22,12 +23,18 @@
                     form : {
                         name : "",  //  �씠�뒋 ���엯 紐�
                         workflows : [],    //  �썙�겕�뵆濡쒖슦
+                        projects : [],      // �봽濡쒖젥�듃
                         description : "",  //  �꽕紐�
                         color : "#febd35" //  �깋�긽
                     },
+                    projectName : "",
                     workflowName : "",
                     autoCompletePage : {
                         workflow : {
+                            page : 0,
+                            totalPage : 0
+                        },
+                        project : {
                             page : 0,
                             totalPage : 0
                         }
@@ -104,6 +111,10 @@
                         return true;
                     }
 
+                    if ($scope.vm.form.projects.length < 1) {
+                        return true;
+                    }
+
                     return false;
                 }
 
@@ -119,6 +130,15 @@
                             }
 
                             return workflowId;
+                        })(),
+                        projectId :  (function () {
+                            var projectId = "";
+
+                            if ($scope.vm.form.projects.length > 0) {
+                                projectId = $scope.vm.form.projects[0].id;
+                            }
+
+                            return projectId;
                         })(),
                         name : $rootScope.preventXss($scope.vm.form.name),
                         description : $rootScope.preventXss($scope.vm.form.description),
@@ -147,6 +167,10 @@
                     $scope.vm.autoCompletePage.workflow.totalPage = result.data.page.totalPage;
                 }
 
+                function getProjectListCallBack(result) {
+                    $scope.vm.autoCompletePage.project.totalPage = result.data.page.totalPage;
+                }
+
                 function cancel() {
                     $rootScope.$broadcast("closeLayer");    //  �뙘�뾽�씠 �뿴由ш퀬 �굹�꽌 js-multi, js-single �벑�뿉�꽌 body �씠踰ㅽ듃媛� �궇�븘媛��뒗 �쁽�긽 �닔�젙
                     $uibModalInstance.dismiss('cancel');
diff --git a/src/main/webapp/scripts/app/issueType/issueTypeList.controller.js b/src/main/webapp/scripts/app/issueType/issueTypeList.controller.js
index f298258..e455f9a 100644
--- a/src/main/webapp/scripts/app/issueType/issueTypeList.controller.js
+++ b/src/main/webapp/scripts/app/issueType/issueTypeList.controller.js
@@ -68,7 +68,7 @@
                         .setDType("renderer")
                         .setDName("name")
                         .setDAlign("text-center")
-                        .setDRenderer("USE_PROJECT_LIST"));
+                        .setDRenderer("PROJECT_BASIC_NAME"));
                     $scope.vm.tableConfigs.push($tableProvider.config()
                         .setHName("common.color")
                         .setHWidth("width-140-p bold")
diff --git a/src/main/webapp/scripts/app/issueType/issueTypeModify.controller.js b/src/main/webapp/scripts/app/issueType/issueTypeModify.controller.js
index 24284c5..5a2d0e7 100644
--- a/src/main/webapp/scripts/app/issueType/issueTypeModify.controller.js
+++ b/src/main/webapp/scripts/app/issueType/issueTypeModify.controller.js
@@ -13,6 +13,7 @@
 
                 $scope.fn = {
                     getWorkflowListCallBack : getWorkflowListCallBack,  //  �썙�겕�뵆濡쒖슦 auto complete callback function
+                    getProjectListCallBack : getProjectListCallBack, // �봽濡쒖젥�듃 auto complete callback function
                     cancel : cancel,    //  �뙘�뾽 李� �떕湲�
                     formSubmit : formSubmit,    //  �뤌 �쟾�넚
                     formCheck : formCheck,  //  �뤌 泥댄겕
@@ -28,12 +29,18 @@
                         id : parameter.id,
                         name : "",
                         workflows : [],    //  �썙�겕�뵆濡쒖슦
+                        projects : [],      // �봽濡쒖젥�듃
                         description : "",  //  �꽕紐�
                         color : "" //  �깋�긽
                     },
                     workflowName : "",
+                    projectName : "",
                     autoCompletePage : {
                         workflow : {
+                            page : 0,
+                            totalPage : 0
+                        },
+                        project : {
                             page : 0,
                             totalPage : 0
                         }
@@ -100,6 +107,10 @@
                         return true;
                     }
 
+                    if ($scope.vm.form.projects.length < 1) {
+                        return true;
+                    }
+
                     return false;
                 }
 
@@ -116,6 +127,15 @@
                             }
 
                             return workflowId;
+                        })(),
+                        projectId :  (function () {
+                            var projectId = "";
+
+                            if ($scope.vm.form.projects.length > 0) {
+                                projectId = $scope.vm.form.projects[0].id;
+                            }
+
+                            return projectId;
                         })(),
                         name : $rootScope.preventXss($scope.vm.form.name),
                         description : $rootScope.preventXss($scope.vm.form.description),
@@ -144,6 +164,10 @@
                     $scope.vm.autoCompletePage.workflow.totalPage = result.data.page.totalPage;
                 }
 
+                function getProjectListCallBack(result) {
+                    $scope.vm.autoCompletePage.project.totalPage = result.data.page.totalPage;
+                }
+
                 function cancel() {
                     $rootScope.$broadcast("closeLayer");    //  �뙘�뾽�씠 �뿴由ш퀬 �굹�꽌 js-multi, js-single �벑�뿉�꽌 body �씠踰ㅽ듃媛� �궇�븘媛��뒗 �쁽�긽 �닔�젙
                     $uibModalInstance.dismiss('cancel');
@@ -163,6 +187,10 @@
                                 $scope.vm.form.description = result.data.data.description;
                                 $scope.vm.form.workflows.push(result.data.data.workflowVo);
                                 $scope.vm.workflowName = result.data.data.workflowVo.name;
+                                if (result.data.data.projectVo != null) {
+                                    $scope.vm.form.projects.push(result.data.data.projectVo);
+                                    $scope.vm.projectName = result.data.data.projectVo.name;
+                                }
                                 $scope.vm.form.color = result.data.data.color;
                             }
                         }
diff --git a/src/main/webapp/scripts/components/utils/autoComplete.controller.js b/src/main/webapp/scripts/components/utils/autoComplete.controller.js
index bc694ec..97563fc 100644
--- a/src/main/webapp/scripts/components/utils/autoComplete.controller.js
+++ b/src/main/webapp/scripts/components/utils/autoComplete.controller.js
@@ -17,6 +17,7 @@
                 var User = $injector.get("User");
                 var Project = $injector.get("Project");
                 var Workflow = $injector.get("Workflow");
+                var CompanyField = $injector.get("CompanyField");
                 var Issue = $injector.get("Issue");
                 var UserWorkspace = $injector.get("UserWorkspace");
                 var $log = $injector.get("$log");
@@ -28,6 +29,7 @@
                 $scope.fn.getIssueList = getIssueList;  //  �씪媛� 紐⑸줉 �젙蹂대�� 議고쉶�븳�떎.
                 $scope.fn.getWorkflowList = getWorkflowList;    //  �썙�겕�뵆濡쒖슦 紐⑸줉 �젙蹂대�� 議고쉶�븳�떎.
                 $scope.fn.getUserDepartmentList = getUserDepartmentList;    //  遺��꽌 紐⑸줉 �젙蹂대�� 議고쉶�븳�떎.
+                $scope.fn.getCompanyFieldList = getCompanyFieldList;    //  遺��꽌 紐⑸줉 �젙蹂대�� 議고쉶�븳�떎.
 
                 function getUserList(query, excludeList, page, callBack) {
                     var conditions = {
@@ -94,6 +96,8 @@
 
                     var deferred = $q.defer();
 
+
+
                     Project.findWork($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") {
@@ -111,6 +115,42 @@
                     return deferred.promise;
                 }
 
+                function getCompanyFieldList(query, excludeList, page, callBack, statuses, roleTypes) {
+                    var conditions = {
+                        companyName : query,
+                        excludeIds : (function () {
+                            var excludeIds = [];
+
+                            angular.forEach(excludeList, function (exclude) {
+                                excludeIds.push(exclude.id);
+                            });
+
+                            return excludeIds;
+                        })()
+                    };
+
+                    var deferred = $q.defer();
+
+
+
+                    CompanyField.find($resourceProvider.getContent(         //  �럹�씠吏� �뾽�뜲�씠�듃媛� �븘�슂�븳 而댄룷�꼳�듃 �씪寃쎌슦, page �뾽�뜲�씠�듃媛� �엳�쓣 寃쎌슦 湲곕낯 10媛쒖뵫 媛��졇�삤怨� �븘�땺寃쎌슦 25媛쒖뵫 媛��졇�삩�떎.
+                        conditions, $resourceProvider.getPageContent($rootScope.isDefined(page) ? page : 0, $rootScope.isDefined(page) ? 10 : 25))).then(function (result) {
+                        if (result.data.message.status === "success") {
+                            if ($rootScope.isDefined(callBack)) {
+                                callBack(result);
+                            }
+
+                            deferred.resolve(result.data.data);
+                        }
+                        else {
+                            SweetAlert.swal($filter("translate")("common.failedToProjectListLookUp"), result.data.message.message, "error"); // "�봽濡쒖젥�듃 紐⑸줉 議고쉶 �떎�뙣"
+                        }
+                    });
+
+                    return deferred.promise;
+                }
+
+
                 function getUserDepartmentList(query, excludeList, page, callBack) {
                     var conditions = {
                         departmentName : query,
diff --git a/src/main/webapp/scripts/config.js b/src/main/webapp/scripts/config.js
index 39cf630..15ad4c8 100644
--- a/src/main/webapp/scripts/config.js
+++ b/src/main/webapp/scripts/config.js
@@ -52,6 +52,10 @@
                 $rootScope.projects = [];
                 //  �쁽�옱 �궗�슜以묒씤 �봽濡쒖젥�듃
                 $rootScope.workProject = null;
+                //  �쁽�옱 �봽濡쒖젥�듃�뿉 �궗�슜以묒씤 �씠�뒋 紐⑸줉(�쑀�삎)
+                $rootScope.workIssueTypes = [];
+                //  �쁽�옱 �꽑�깮以묒씤 �씠�뒋 紐⑸줉
+                $rootScope.issueTypeMenu = null;
                 //  �씠�뒋 紐⑸줉->�긽�꽭�솕硫댁뿉�꽌 留덉�留됱쑝濡� �젒洹쇳븳 �씠�뒋 �븘�씠�뵒 - �씪�슦�듃 �깉�븣留덈떎 珥덇린�솕
                 $rootScope.currentDetailIssueId = null;
                 //  臾몄쓽�븯湲�
@@ -310,6 +314,8 @@
                                 $rootScope.projects.forEach(function (el) {
                                     if (el.id == projectId) {
                                         $rootScope.workProject = el;
+
+                                        $rootScope.$broadcast("changeLastProject", { id : el.id });
                                     }
                                 });
                                 $state.go($state.current, {}, {reload: reload});
@@ -318,6 +324,8 @@
                     }
                 };
 
+
+
                 //  �봽濡쒖젥�듃 愿�由� 沅뚰븳�씠 �엳�뒗吏� �솗�씤�븳�떎
                 $rootScope.checkMngPermissionProject = function () {
                     if (!$rootScope.isDefined($rootScope.user)) {
diff --git a/src/main/webapp/views/common/sidebar.html b/src/main/webapp/views/common/sidebar.html
index 037179e..74e00e0 100644
--- a/src/main/webapp/views/common/sidebar.html
+++ b/src/main/webapp/views/common/sidebar.html
@@ -83,6 +83,7 @@
                     <span translate="common.dashboard">���떆蹂대뱶</span>
                 </a>
             </li>
+            <!--
             <li class="">
                 <a ui-sref="tasks.agileBoard" tabindex="-1">
                     <div class="icon-w">
@@ -250,40 +251,16 @@
         <li class="sub-header">
             <span>ISSUE LIST</span>
         </li>
-        <!-- UI臾몄꽌 �젣�옉�슜 �엫�떆 肄붾뱶 �떆�옉-->
-        <li class="">
-            <a ui-sref="dashboards.dashboard" tabindex="-1">
-                <div class="icon-w">
+
+        <li ng-repeat="issueType in $root.workIssueTypes">
+            <a class="cursor" tabindex="-1" ng-click="fn.changeIssueListMenu(issueType.id)">
+                <div class="icon-w ">
                     <div class="os-icon os-icon-layout"></div>
                 </div>
-                <span>�븙�꽦 �룄硫붿씤</span>
+                <span>{{issueType.name}}</span>
             </a>
         </li>
-        <li class="">
-            <a ui-sref="dashboards.dashboard" tabindex="-1">
-                <div class="icon-w">
-                    <div class="os-icon os-icon-layout"></div>
-                </div>
-                <span>寃쎌쑀吏� ���쓳</span>
-            </a>
-        </li>
-        <li class="">
-            <a ui-sref="dashboards.dashboard" tabindex="-1">
-                <div class="icon-w">
-                    <div class="os-icon os-icon-layout"></div>
-                </div>
-                <span>�쑀�룷吏� ���쓳</span>
-            </a>
-        </li>
-        <li class="">
-            <a ui-sref="dashboards.dashboard" tabindex="-1">
-                <div class="icon-w">
-                    <div class="os-icon os-icon-layout"></div>
-                </div>
-                <span>遺꾩꽍寃곌낵 ���쓳</span>
-            </a>
-        </li>
-        <!-- UI臾몄꽌 �젣�옉�슜 �엫�떆 肄붾뱶 �걹-->
+
         <!--
         <li class="">
             <a ui-sref="tasks.agileBoard" tabindex="-1">
diff --git a/src/main/webapp/views/issue/issueAdd.html b/src/main/webapp/views/issue/issueAdd.html
index 0eccfe0..578e9c1 100644
--- a/src/main/webapp/views/issue/issueAdd.html
+++ b/src/main/webapp/views/issue/issueAdd.html
@@ -136,7 +136,7 @@
             <div class="row">
                 <div class="col-lg-4">
                     <div class="form-group mb10">
-                        <label class="issue-label"> <span translate="common.assignee">�떞�떦�옄</span> </label>
+                        <label class="issue-label"> <span translate="common.assigneeTeam">�떞�떦遺��꽌</span> </label>
                         <js-input-autocomplete data-input-name="users"
                                                selected-model="vm.form.users"
                                                search="vm.userName"
@@ -148,7 +148,6 @@
                                                extra-settings="{ displayProp : 'byName' , idProp : 'id', imageable : true, imagePathProp : 'profile',
                                                type : 'user', maxlength : 100, autoResize : true, stopRemoveBodyEvent : true }"></js-input-autocomplete>
 
-                        <small translate="issue.setUpUsersParticipatingInProject">�봽濡쒖젥�듃�뿉 李몄뿬�븯�뒗 �궗�슜�옄瑜� �꽕�젙�빀�땲�떎.</small>
                         <div class="select3-selection__choicediv">
                             <span class="select3-selection__choice" ng-repeat="user in vm.form.users">
                                 <span class="avatar-w"><img ng-src="{{user.profile}}"></span>
@@ -158,10 +157,10 @@
                             </span>
                         </div>
                     </div>
-
+                </div>
+                <div class="col-lg-4">
                     <div class="form-group mb10">
-                        <label for="issueAddForm5" class="issue-label"> <span translate="common.period">湲곌컙</span>
-                        </label>
+                        <label for="issueAddForm5" class="issue-label"> <span translate="common.period">湲곌컙</span></label>
                         <input id="issueAddForm5"
                                tabindex="-1"
                                type="text"
@@ -179,7 +178,8 @@
                             </div>
                         </div>
                     </div>
-
+                </div>
+                <div class="col-lg-4">
                     <div class="form-group mgb5">
                         <label class="issue-label"><span translate="common.attachFiles">�뙆�씪 泥⑤�</span></label>
                         <div class="filebox input-group">
@@ -196,9 +196,6 @@
                                    multiple
                                    ng-file-select="fn.onFileSelect($files)">
                         </div>
-                        <small translate="issue.attachOnlyFiles">hwp, jpg, png, txt, pptx, ppt, pdf, xlsx, xls, docx,
-                            zip, gif, jpeg, doc, tif, bmp, wmv, avi, mp4, mkv, mov �뙆�씪留� 泥⑤��븷 �닔 �엳�뒿�땲�떎.
-                        </small>
 
                         <div class="select2-selection__choicediv">
                             <div class="select2-selection__choice2" ng-repeat="file in vm.form.files">
@@ -230,59 +227,335 @@
                         </div>
                     </div>
                 </div>
+            </div>
 
-                <div class="col-lg-8 bdl1">
-                    <div class="row">
-                        <div class="col-md-12">
-                            <div class="form-group mgb5" ng-show="vm.form.issueCustomFields.length < 1">
-                                <label class="issue-label" translate="issue.notIssueTypeCustomFields">�씠�뒋 ���엯�뿉 �뿰寃곕맂 �궗�슜�옄 �젙�쓽
-                                    �븘�뱶媛� �뾾�뒿�땲�떎.</label>
+            <div class="row">
+                <div class="col-lg-4 fontcolor_green">
+                    <label class="issue-label"><span class="fontcolor_green" translate="common.detectingInfo">�깘吏��젙蹂�</span></label>
+                </div>
+            </div>
+
+            <div class="row">
+                <div class="col-lg-4">
+                    <div class="form-group mb10">
+                        <label for="detectingDateAddForm" class="issue-label"> <span translate="common.detectingData">�깘吏��씪�떆</span> </label>
+                        <input id="detectingDateAddForm"
+                               tabindex="-1"
+                               type="text"
+                               readonly
+                               class="form-control cursor"
+                               placeholder="{{'issue.clickToSelectDate' | translate}}"
+                               ng-model="vm.form.startCompleteDateRange"
+                               modal-form-auto-scroll
+                               date-format="YYYY-MM-DD"
+                               parent-el="'#createdWidget2'"
+                               date-range-picker>
+                        <div class="row">
+                            <div class="col-xs-12">
+                                <div id="createdWidget2" class="bootstrap-datepicker"></div>
                             </div>
                         </div>
+                    </div>
+                </div>
+                <div class="col-lg-4">
+                    <div class="form-group mb10">
+                        <label for="domainAddForm" class="issue-label"><span translate="companyField.domain">�룄硫붿씤</span></label>
+                        <input id="domainAddForm"
+                               name="domain"
+                               type="text"
+                               class="form-control"
+                               kr-input
+                               input-regex="[^a-zA-Z0-9 媛�-�옡�꽦-�뀕�뀖-�뀭\u318D\u119E\u11A2\u2022\u2025a\u00B7\uFE55]"
+                               autocomplete="off"
+                               ng-model="vm.form.domain"
+                               ng-maxlength="200"
+                               maxlength="200">
+                    </div>
+                </div>
+                <div class="col-lg-4">
+                    <div class="form-group mgb5">
+                        <label for="ipAdressAddForm" class="issue-label"><span translate="companyField.ipAdress">ip二쇱냼</span></label>
+                        <input id="ipAdressAddForm"
+                               name="ipAdress"
+                               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.ipAdress"
+                               ng-maxlength="200"
+                               maxlength="200">
+                    </div>
+                </div>
+            </div>
+            <div class="row">
+                <div class="col-lg-4 fontcolor_green">
+                    <label class="issue-label"><span class="fontcolor_green" translate="companyField.info">�뾽泥댁젙蹂�</span></label>
+                    <button class="btn btn-sm col-lg-6 btn-indigo" ng-click="fn.companyImport()">
+                        &nbsp; &nbsp;  <span translate="common.import">媛��졇�삤湲�</span> &nbsp; &nbsp;
+                    </button>
+                </div>
+            </div>
 
-                        <div class="col-md-6" ng-repeat="issueCustomField in vm.form.issueCustomFields">
-                            <div class="form-group mgb5">
-                                <label class="issue-label">{{issueCustomField.customFieldVo.name}}</label>
-
-                                <div ng-switch on="issueCustomField.customFieldVo.customFieldType">
-                                    <!-- 湲곕낯 �엯�젰 -->
-                                    <div ng-switch-when="INPUT">
-                                        <input type="text" class="form-control input-sm"
-                                               ng-model="issueCustomField.useValues"
-                                               maxlength="100"
-                                               autocomplete="off"
-                                               kr-input
-                                               ng-required="issueCustomField.fieldOption == '01'">
-                                    </div>
-
-                                    <!-- �떒�씪 ���젆�듃 -->
-                                    <div ng-switch-when="SINGLE_SELECT">
-                                        <select class="form-control input-sm issue-select-label"
-                                                ng-required="issueCustomField.fieldOption == '01'"
-                                                ng-model="issueCustomField.useValues">
-                                            <option value="" value="" translate="common.choose">�꽑�깮�븯�꽭�슂.</option>
-                                            <option ng-repeat="customFieldValueVo in issueCustomField.customFieldVo.customFieldValueVos"
-                                                    value="{{customFieldValueVo.value}}"
-                                                    ng-selected="$root.selectOption(issueCustomField.useValues, customFieldValueVo.value)">
-                                                {{customFieldValueVo.value}}
-                                            </option>
-                                        </select>
-                                    </div>
-
-                                    <!-- 硫��떚 ���젆�듃 -->
-                                    <div ng-switch-when="MULTI_SELECT">
-                                        <ng-dropdown-multiselect class="multiSelect cursor"
-                                                                 data-input-name=""
-                                                                 modal-form-auto-scroll
-                                                                 selected-model="issueCustomField.useValues"
-                                                                 extra-settings="{ 'idProp' : 'value', 'externalIdProp' : 'value', 'displayProp' : 'value', 'stringTypeOption' : 'true', stopRemoveBodyEvent : true }"
-                                                                 options="issueCustomField.customFieldVo.customFieldValueVos"></ng-dropdown-multiselect>
-                                    </div>
-                                </div>
-                            </div>
+            <div class="row">
+                <div class="col-lg-4">
+                    <div class="form-group mb10">
+                        <label for="companyFieldNameAddForm" class="issue-label"> <span translate="companyField.name">�뾽泥대챸</span> </label>
+                        <input id="companyFieldNameAddForm"
+                               name="companyName"
+                               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.companyName"
+                               ng-maxlength="100"
+                               maxlength="100"
+                               required>
+                    </div>
+                </div>
+                <div class="col-lg-4">
+                    <div class="form-group mb10">
+                        <label for="companyFieldManagerAddForm" class="issue-label"><span translate="companyField.manager">�떞�떦�옄</span></label>
+                        <input id="companyFieldManagerAddForm"
+                               name="companyManager"
+                               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.companyManager"
+                               ng-maxlength="100"
+                               maxlength="100"
+                               required>
+                    </div>
+                </div>
+                <div class="col-lg-4">
+                    <div class="form-group mgb5">
+                        <label for="companyFieldTelAddForm" class="issue-label"><span translate="companyField.tel">�쟾�솕踰덊샇</span></label>
+                        <input id="companyFieldTelAddForm"
+                               name="companyTel"
+                               type="text"
+                               class="form-control"
+                               kr-input
+                               ng-pattern="/^\d{2,3}-\d{3,4}-\d{4}$/"
+                               autocomplete="off"
+                               ng-model="vm.form.companyTel"
+                               maxlength="20">
+                        <div ng-show="issueAddForm.companyTel.$error.pattern" class="help-block form-text text-danger"
+                             translate="companyField.invalidTelFormat">�쟾�솕踰덊샇 �삎�떇�씠 留욎� �븡�뒿�땲�떎. xxx-xxx-xxxx �삎�떇�쑝濡� �엯�젰�븯�꽭�슂.
                         </div>
                     </div>
                 </div>
+                <div class="col-lg-4">
+                    <div class="form-group mgb5">
+                        <label for="companyFieldEmailAddForm" class="issue-label"><span translate="companyField.email">�씠硫붿씪</span></label>
+                        <input id="companyFieldEmailAddForm"
+                               name="companyEmail"
+                               type="email"
+                               class="form-control"
+                               autocomplete="off"
+                               maxLength="50"
+                               ng-model="vm.form.companyEmail"
+                               kr-input
+                               ng-pattern="/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/">
+                        <div ng-show="issueAddForm.companyEmail.$error.pattern" class="help-block form-text text-danger"
+                             translate="users.invalidEmailFormat">�씠硫붿씪 �삎�떇�씠 留욎� �븡�뒿�땲�떎.
+                        </div>
+                    </div>
+                </div>
+                <div class="col-lg-4">
+                    <div class="form-group mgb5">
+                        <label for="companyFieldDescAddForm" class="issue-label"><span translate="companyField.desc">鍮꾧퀬</span></label>
+                        <input id="companyFieldDescAddForm"
+                               name="companyDesc"
+                               type="text"
+                               class="form-control"
+                               kr-input
+                               autocomplete="off"
+                               ng-model="vm.form.companyDesc"
+                               ng-maxlength="200"
+                               maxlength="200">
+                    </div>
+                </div>
+            </div>
+            <div class="row">
+                <div class="col-lg-4 fontcolor_green">
+                    <label class="issue-label"><span class="fontcolor_green" translate="ispField.info">ISP �젙蹂�</span></label>
+                </div>
+            </div>
+
+            <div class="row">
+                <div class="col-lg-4">
+                    <div class="form-group mb10">
+                        <label for="ispFieldNameAddForm" class="issue-label"> <span translate="ispField.name">ISP �씠由�</span> </label>
+                        <input id="ispFieldNameAddForm"
+                               name=ispName"
+                               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.ispName"
+                               ng-maxlength="100"
+                               maxlength="100"
+                               required>
+                    </div>
+                </div>
+                <div class="col-lg-4">
+                    <div class="form-group mb10">
+                        <label for="ispFieldManagerAddForm" class="issue-label"><span translate="ispField.manager">�떞�떦�옄</span></label>
+                        <input id="ispFieldManagerAddForm"
+                               name="ispManager"
+                               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.ispManager"
+                               ng-maxlength="100"
+                               maxlength="100">
+                    </div>
+                </div>
+                <div class="col-lg-4">
+                    <div class="form-group mgb5">
+                        <label for="ispFieldTelAddForm" class="issue-label"><span translate="ispField.tel">�쟾�솕踰덊샇</span></label>
+                        <input id="ispFieldTelAddForm"
+                               name="ispTel"
+                               type="text"
+                               class="form-control"
+                               kr-input
+                               ng-pattern="/^\d{2,3}-\d{3,4}-\d{4}$/"
+                               autocomplete="off"
+                               ng-model="vm.form.ispTel"
+                               maxlength="20">
+                        <div ng-show="issueAddForm.ispTel.$error.pattern" class="help-block form-text text-danger"
+                             translate="companyField.invalidTelFormat">�쟾�솕踰덊샇 �삎�떇�씠 留욎� �븡�뒿�땲�떎. xxx-xxx-xxxx �삎�떇�쑝濡� �엯�젰�븯�꽭�슂.
+                        </div>
+                    </div>
+                </div>
+                <div class="col-lg-4">
+                    <div class="form-group mgb5">
+                        <label for="ispFieldEmailAddForm" class="issue-label"><span translate="ispField.email">�씠硫붿씪</span></label>
+                        <input id="ispFieldEmailAddForm"
+                               name="ispEmail"
+                               type="email"
+                               class="form-control"
+                               autocomplete="off"
+                               maxLength="50"
+                               ng-model="vm.form.ispEmail"
+                               kr-input
+                               ng-pattern="/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/">
+                        <div ng-show="issueAddForm.ispEmail.$error.pattern" class="help-block form-text text-danger"
+                             translate="users.invalidEmailFormat">�씠硫붿씪 �삎�떇�씠 留욎� �븡�뒿�땲�떎.
+                        </div>
+                    </div>
+                </div>
+                <div class="col-lg-4">
+                    <div class="form-group mgb5">
+                        <label for="ispFieldDescAddForm" class="issue-label"><span translate="ispField.desc">鍮꾧퀬</span></label>
+                        <input id="ispFieldDescAddForm"
+                               name="ispDesc"
+                               type="text"
+                               class="form-control"
+                               kr-input
+                               autocomplete="off"
+                               ng-model="vm.form.ispDesc"
+                               ng-maxlength="200"
+                               maxlength="200">
+                    </div>
+                </div>
+            </div>
+            <div class="row">
+                <div class="col-lg-4 fontcolor_green">
+                    <label class="issue-label"><span class="fontcolor_green" translate="hostingField.info">�샇�뒪�똿 �젙蹂�</span></label>
+                </div>
+            </div>
+
+            <div class="row">
+                <div class="col-lg-4">
+                    <div class="form-group mb10">
+                        <label for="hostingFieldNameAdd" class="issue-label"> <span translate="hostingField.name">�샇�뒪�똿 �씠由�</span> </label>
+                        <input id="hostingFieldNameAdd"
+                               name="hostingName"
+                               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.hostingName"
+                               ng-maxlength="100"
+                               maxlength="100"
+                               required>
+                    </div>
+                </div>
+                <div class="col-lg-4">
+                    <div class="form-group mb10">
+                        <label for="hostingFieldManagerAdd" class="issue-label"><span translate="hostingField.manager">�떞�떦�옄</span></label>
+                        <input id="hostingFieldManagerAdd"
+                               name="hostingManager"
+                               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.hostingManager"
+                               ng-maxlength="100"
+                               maxlength="100">
+                    </div>
+                </div>
+                <div class="col-lg-4">
+                    <div class="form-group mgb5">
+                        <label for="hostingFieldTelAdd" class="issue-label"><span translate="hostingField.tel">�쟾�솕踰덊샇</span></label>
+                        <input id="hostingFieldTelAdd"
+                               name="hostingTel"
+                               type="text"
+                               class="form-control"
+                               kr-input
+                               ng-pattern="/^\d{2,3}-\d{3,4}-\d{4}$/"
+                               autocomplete="off"
+                               ng-model="vm.form.hostingTel"
+                               maxlength="20">
+                        <div ng-show="issueAddForm.hostingTel.$error.pattern" class="help-block form-text text-danger"
+                             translate="companyField.invalidTelFormat">�쟾�솕踰덊샇 �삎�떇�씠 留욎� �븡�뒿�땲�떎. xxx-xxx-xxxx �삎�떇�쑝濡� �엯�젰�븯�꽭�슂.
+                        </div>
+                    </div>
+                </div>
+                <div class="col-lg-4">
+                    <div class="form-group mgb5">
+                        <label for="hostingFieldEmailAdd" class="issue-label"><span translate="hostingField.email">�씠硫붿씪</span></label>
+                        <input id="hostingFieldEmailAdd"
+                               name="hostingEmail"
+                               type="email"
+                               class="form-control"
+                               autocomplete="off"
+                               maxLength="50"
+                               ng-model="vm.form.hostingEmail"
+                               kr-input
+                               ng-pattern="/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/">
+                        <div ng-show="issueAddForm.hostingEmail.$error.pattern" class="help-block form-text text-danger"
+                             translate="users.invalidEmailFormat">�씠硫붿씪 �삎�떇�씠 留욎� �븡�뒿�땲�떎.
+                        </div>
+                    </div>
+                </div>
+                <div class="col-lg-4">
+                    <div class="form-group mgb5">
+                        <label for="hostingFieldDescAdd" class="issue-label"><span translate="hostingField.desc">鍮꾧퀬</span></label>
+                        <input id="hostingFieldDescAdd"
+                               name="hostingDesc"
+                               type="text"
+                               class="form-control"
+                               kr-input
+                               autocomplete="off"
+                               ng-model="vm.form.hostingDesc"
+                               ng-maxlength="200"
+                               maxlength="200">
+                    </div>
+                </div>
             </div>
         </form>
     </div>
diff --git a/src/main/webapp/views/issue/issueCompanyFieldDetail.html b/src/main/webapp/views/issue/issueCompanyFieldDetail.html
new file mode 100644
index 0000000..8e78ee0
--- /dev/null
+++ b/src/main/webapp/views/issue/issueCompanyFieldDetail.html
@@ -0,0 +1,37 @@
+<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"> &times;</span>
+        </button>
+    </div>
+
+    <div class="modal-body">
+        <form role="form" name="companyFieldImportForm">
+            <div class="form-group">
+                <label><span translate="companyField.name">�뾽泥� �씠由�</span>
+                       <code class="highlighter-rouge">*</code></label>
+                <js-autocomplete-single data-input-name="companyField"
+                                        selected-model="vm.form.companyFields"
+                                        search="vm.companyName"
+                                        source="fn.getCompanyFieldList(vm.companyName, vm.form.companyFields, vm.autoCompletePage.companyField.page, fn.getCompanyFieldListCallBack)"
+                                        page="vm.autoCompletePage.companyField.page"
+                                        total-page="vm.autoCompletePage.companyField.totalPage"
+                                        input-disabled="false"
+                                        extra-settings="{ displayProp : 'name' , idProp : 'id', imageable : false, imagePathProp : '',
+                                                type : '', maxlength : 200, autoResize : false, stopRemoveBodyEvent : true }"></js-autocomplete-single>
+            </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(companyFieldModifyForm.$invalid) || $root.spinner) ? null : fn.formSubmit()"
+                        ng-disabled="fn.formCheck(companyFieldImportForm.$invalid)"
+                        ng-click="fn.formSubmit()"><span translate="common.save">���옣</span>
+                </button>
+            </div>
+        </form>
+    </div>
+</div>
diff --git a/src/main/webapp/views/issue/issueDetail.html b/src/main/webapp/views/issue/issueDetail.html
index 7913e9c..89d3763 100644
--- a/src/main/webapp/views/issue/issueDetail.html
+++ b/src/main/webapp/views/issue/issueDetail.html
@@ -207,7 +207,7 @@
                 <div class="row">
                     <div class="col-xxl-12">
                         <div class="form-group">
-                            <label class="issue-detail-label"><span translate="common.assignee">�떞�떦�옄</span> </label>
+                            <label class="issue-detail-label"><span translate="common.assigneeTeam">�떞�떦遺��꽌</span> </label>
                             <div class="">
                                 <div class="select3-selection__choicediv">
                                     <span class="select3-selection__choice" ng-repeat="user in vm.viewer.userVos">
diff --git a/src/main/webapp/views/issue/issueList.html b/src/main/webapp/views/issue/issueList.html
index 50d4a57..fc91e2f 100644
--- a/src/main/webapp/views/issue/issueList.html
+++ b/src/main/webapp/views/issue/issueList.html
@@ -1,5 +1,5 @@
-<h6 class="element-header" translate="issue.managementIssue">
-    �씠�뒋 愿�由�
+<h6 class="element-header">
+    {{vm.pageTitle}}
 </h6>
 
 <div class="os-tabs-w">
@@ -8,9 +8,11 @@
             <li class="nav-item">
                 <a class="nav-link cursor" ng-class="{ 'active' : vm.tab == 'ISSUE_LIST' }" ng-click="fn.changeTab('ISSUE_LIST')" translate="issue.normalList">�씪媛� 紐⑸줉</a>
             </li>
+            <!--
             <li class="nav-item">
                 <a class="nav-link cursor" ng-class="{ 'active' : vm.tab == 'ISSUE_TIMELINE' }" ng-click="fn.changeTab('ISSUE_TIMELINE')" translate="issue.timeLine">���엫 �씪�씤</a>
             </li>
+            -->
         </ul>
     </div>
 </div>
@@ -20,10 +22,11 @@
     <div ng-show="vm.tab == 'ISSUE_LIST'">
         <div ng-include include-replace src="'views/issue/issueListNormal.html'"></div>
     </div>
-
+<!--
     <div ng-show="vm.tab == 'ISSUE_TIMELINE'">
         <div ng-include include-replace src="'views/issue/issueListTimeline.html'"></div>
     </div>
+-->
 </div>
 
 
diff --git a/src/main/webapp/views/issue/issueListNormal.html b/src/main/webapp/views/issue/issueListNormal.html
index 8ebb4a0..b52df46 100644
--- a/src/main/webapp/views/issue/issueListNormal.html
+++ b/src/main/webapp/views/issue/issueListNormal.html
@@ -185,7 +185,7 @@
 
                                             <div class="col-lg-3">
                                                 <div class="form-group">
-                                                    <label> <span translate="common.assignee">�떞�떦�옄</span></label>
+                                                    <label> <span translate="common.assigneeTeam">�떞�떦遺��꽌</span></label>
                                                     <js-autocomplete-multi data-input-name="users"
                                                                            selected-model="vm.users"
                                                                            search="vm.userName"
diff --git a/src/main/webapp/views/issue/issueListTimeline.html b/src/main/webapp/views/issue/issueListTimeline.html
index 65f51d0..86e4a75 100644
--- a/src/main/webapp/views/issue/issueListTimeline.html
+++ b/src/main/webapp/views/issue/issueListTimeline.html
@@ -184,7 +184,7 @@
 
                                             <div class="col-lg-3">
                                                 <div class="form-group">
-                                                    <label> <span translate="common.assignee">�떞�떦�옄</span></label>
+                                                    <label> <span translate="common.assigneeTeam">�떞�떦遺��꽌</span></label>
                                                     <js-autocomplete-multi data-input-name="users"
                                                                            selected-model="vm.users"
                                                                            search="vm.userName"
diff --git a/src/main/webapp/views/issue/issueModify.html b/src/main/webapp/views/issue/issueModify.html
index 01bd3db..863a4f5 100644
--- a/src/main/webapp/views/issue/issueModify.html
+++ b/src/main/webapp/views/issue/issueModify.html
@@ -138,7 +138,7 @@
             <div class="row">
                 <div class="col-lg-4">
                     <div class="form-group mgb5">
-                        <label class="issue-label"> <span translate="common.assignee">�떞�떦�옄</span> </label>
+                        <label class="issue-label"> <span translate="common.assigneeTeam">�떞�떦遺��꽌</span> </label>
                         <js-input-autocomplete data-input-name="users"
                                                selected-model="vm.form.users"
                                                search="vm.userName"
diff --git a/src/main/webapp/views/issue/issueModifyUser.html b/src/main/webapp/views/issue/issueModifyUser.html
index 80fab2f..f56e075 100644
--- a/src/main/webapp/views/issue/issueModifyUser.html
+++ b/src/main/webapp/views/issue/issueModifyUser.html
@@ -12,7 +12,7 @@
         <form role="form" name="issueUserModifyForm">
             <div class="form-group">
                 <div class="form-group mgb5">
-                    <label class="issue-label"> <span translate="common.assignee">�떞�떦�옄</span> </label>
+                    <label class="issue-label"> <span translate="common.assigneeTeam">�떞�떦遺��꽌</span> </label>
                     <js-input-autocomplete data-input-name="users"
                                            selected-model="vm.form.users"
                                            search="vm.userName"
diff --git a/src/main/webapp/views/issueType/issueTypeAdd.html b/src/main/webapp/views/issueType/issueTypeAdd.html
index d44c9b6..a9e6d52 100644
--- a/src/main/webapp/views/issueType/issueTypeAdd.html
+++ b/src/main/webapp/views/issueType/issueTypeAdd.html
@@ -43,17 +43,22 @@
             </div>
 
             <div class="form-group">
-                <label><span translate="issue.useProjects">�궗�슜 �봽濡쒖젥�듃</span></label>
-                <js-autocomplete-single data-input-name="workflow"
-                                        selected-model="vm.form.workflows"
-                                        search="vm.workflowName"
-                                        source="fn.getWorkflowList(vm.workflowName, vm.form.workflows, vm.autoCompletePage.workflow.page, fn.getWorkflowListCallBack)"
-                                        page="vm.autoCompletePage.workflow.page"
-                                        total-page="vm.autoCompletePage.workflow.totalPage"
+                <label class="issue-label"> <span translate="issue.useProjects">�궗�슜 �봽濡쒖젥�듃</span> <code
+                        class="highlighter-rouge">*</code></label>
+                <js-autocomplete-single data-input-name="project"
+                                        selected-model="vm.form.projects"
+                                        search="vm.projectName"
+                                        source="fn.getProjectList(vm.projectName, vm.form.projects, vm.autoCompletePage.project.page, fn.getProjectListCallBack)"
+                                        page="vm.autoCompletePage.project.page"
+                                        total-page="vm.autoCompletePage.project.totalPage"
                                         input-disabled="false"
-                                        extra-settings="{ displayProp : 'name' , idProp : 'id', imageable : false, imagePathProp : '', type : '', maxlength : 200, autoResize : false }"></js-autocomplete-single>
+                                        required
+                                        translation-texts="{ empty : 'common.emptyProject' }"
+                                        extra-settings="{ displayProp : 'name' , idProp : 'id', imageable : false, imagePathProp : '',
+                                        type : '', maxlength : 200, autoResize : false, stopRemoveBodyEvent : true }"></js-autocomplete-single>
             </div>
 
+
             <div class="form-group">
                 <label><span
                         translate="issue.companyInfo">�뾽泥�/ISP/�샇�뒪�똿 �젙蹂�</span></label>
diff --git a/src/main/webapp/views/issueType/issueTypeModify.html b/src/main/webapp/views/issueType/issueTypeModify.html
index cfeb4e4..a43fb0a 100644
--- a/src/main/webapp/views/issueType/issueTypeModify.html
+++ b/src/main/webapp/views/issueType/issueTypeModify.html
@@ -45,6 +45,35 @@
                 </div>
             </div>
 
+
+            <div class="form-group">
+                <label class="issue-label"> <span translate="issue.useProjects">�궗�슜 �봽濡쒖젥�듃</span> <code
+                        class="highlighter-rouge">*</code></label>
+                <js-autocomplete-single data-input-name="project"
+                                        selected-model="vm.form.projects"
+                                        search="vm.projectName"
+                                        source="fn.getProjectList(vm.projectName, vm.form.projects, vm.autoCompletePage.project.page, fn.getProjectListCallBack)"
+                                        page="vm.autoCompletePage.project.page"
+                                        total-page="vm.autoCompletePage.project.totalPage"
+                                        input-disabled="false"
+                                        required
+                                        translation-texts="{ empty : 'common.emptyProject' }"
+                                        extra-settings="{ displayProp : 'name' , idProp : 'id', imageable : false, imagePathProp : '',
+                                        type : '', maxlength : 200, autoResize : false, stopRemoveBodyEvent : true }"></js-autocomplete-single>
+            </div>
+
+
+            <div class="form-group">
+                <label><span
+                        translate="issue.companyInfo">�뾽泥�/ISP/�샇�뒪�똿 �젙蹂�</span></label>
+                <ng-dropdown-multiselect class="multiSelect cursor"
+                                         data-input-name="issueStatusTypes"
+                                         selected-model="vm.search.issueStatusTypes"
+                                         extra-settings="{ stringTypeOption : true }"
+                                         options="vm.options.emailTemplates"></ng-dropdown-multiselect>
+            </div>
+
+
             <div class="form-group">
                 <label for="issueTypeModifyForm2"><span translate="common.color">�깋�긽</span> <code class="highlighter-rouge">*</code></label>
                 <div class="input-group">

--
Gitblit v1.8.0