From fd8fdf9441329845ff78d3ae4274f107e3e6ba4d Mon Sep 17 00:00:00 2001
From: 이민희 <mhlee@maprex.co.kr>
Date: 월, 29 11월 2021 17:59:00 +0900
Subject: [PATCH] 이슈 목록 - '이슈 제목' 검색 조건 추가

---
 src/main/java/kr/wisestone/owl/web/condition/IssueCondition.java |    9 ++++
 src/main/webapp/views/issue/issueListNormal.html                 |   23 ++++++++++-
 src/main/resources/mybatis/query-template/issue-template.xml     |   32 +++++++++-------
 src/main/webapp/scripts/app/issue/issueList.controller.js        |    2 +
 src/main/webapp/i18n/ko/global.json                              |    1 
 5 files changed, 51 insertions(+), 16 deletions(-)

diff --git a/src/main/java/kr/wisestone/owl/web/condition/IssueCondition.java b/src/main/java/kr/wisestone/owl/web/condition/IssueCondition.java
index a0a8824..6b0c747 100644
--- a/src/main/java/kr/wisestone/owl/web/condition/IssueCondition.java
+++ b/src/main/java/kr/wisestone/owl/web/condition/IssueCondition.java
@@ -16,6 +16,7 @@
  */
 public class IssueCondition {
     private Long id;
+    private String keyWord;
     private String title;
     private String description;
     private String combinationIssueNumber;
@@ -175,6 +176,14 @@
         return condition;
     }
 
+    public String getKeyWord() {
+        return keyWord;
+    }
+
+    public void setKeyWord(String keyWord) {
+        this.keyWord = keyWord;
+    }
+
     public Long getId() {
         return id;
     }
diff --git a/src/main/resources/mybatis/query-template/issue-template.xml b/src/main/resources/mybatis/query-template/issue-template.xml
index ab13365..c11a20c 100644
--- a/src/main/resources/mybatis/query-template/issue-template.xml
+++ b/src/main/resources/mybatis/query-template/issue-template.xml
@@ -50,21 +50,25 @@
         temp_issue_comment on (temp_issue_comment.issue_id = issue.id)
         LEFT OUTER JOIN user user ON issue_user.user_id = user.id
         WHERE 1=1
-        <if test="title != null and !title.equals('') ">
+        <if test="keyWord != null and !keyWord.equals('') ">
+            AND issue.title like CONCAT('%',#{keyWord},'%')
+            OR issue.description like CONCAT('%',#{keyWord},'%')
+            OR issue.start_date like CONCAT('%',#{keyWord},'%')
+            OR issue.complete_date like CONCAT('%',#{keyWord},'%')
+            OR issue.issue_number like CONCAT('%',#{keyWord},'%')
+            OR issue.register_date like CONCAT('%',#{keyWord},'%')
+            OR project.name like CONCAT('%',#{keyWord},'%')
+            OR project.project_key like CONCAT('%',#{keyWord},'%')
+            OR issue_type.name like CONCAT('%',#{keyWord},'%')
+            OR issue_status.issue_status_type like CONCAT('%',#{keyWord},'%')
+            OR issue_status.name like CONCAT('%',#{keyWord},'%')
+            OR priority.name like CONCAT('%',#{keyWord},'%')
+            OR severity.name like CONCAT('%',#{keyWord},'%')
+            OR issue_custom.use_value like CONCAT('%',#{keyWord},'%')
+        </if>
+
+        <if test="title != null and !title.equals('')">
             AND issue.title like CONCAT('%',#{title},'%')
-            OR issue.description like CONCAT('%',#{title},'%')
-            OR issue.start_date like CONCAT('%',#{title},'%')
-            OR issue.complete_date like CONCAT('%',#{title},'%')
-            OR issue.issue_number like CONCAT('%',#{title},'%')
-            OR issue.register_date like CONCAT('%',#{title},'%')
-            OR project.name like CONCAT('%',#{title},'%')
-            OR project.project_key like CONCAT('%',#{title},'%')
-            OR issue_type.name like CONCAT('%',#{title},'%')
-            OR issue_status.issue_status_type like CONCAT('%',#{title},'%')
-            OR issue_status.name like CONCAT('%',#{title},'%')
-            OR priority.name like CONCAT('%',#{title},'%')
-            OR severity.name like CONCAT('%',#{title},'%')
-            OR issue_custom.use_value like CONCAT('%',#{title},'%')
         </if>
 
         <if test="description != null and !description.equals('')">
diff --git a/src/main/webapp/i18n/ko/global.json b/src/main/webapp/i18n/ko/global.json
index 97ef54f..6b4bf7a 100644
--- a/src/main/webapp/i18n/ko/global.json
+++ b/src/main/webapp/i18n/ko/global.json
@@ -210,6 +210,7 @@
         "videoExample": "�룞�쁺�긽 �삁�젣",
         "writeWaring": "�옉�꽦 �슂�졊",
         "pleaseEnterIssueName": "寃��깋�븷 �씠�뒋 �씠由꾩쓣 �엯�젰�븯�꽭�슂.",
+        "pleaseEnterIssueKeyWord": "寃��깋�븷 �씠�뒋�쓽 �궎�썙�뱶瑜� �엯�젰�븯�꽭�슂.",
         "selectProjectAndIssueTypeDownloadExcel": "�봽濡쒖젥�듃, �씠�뒋 �쑀�삎�쓣 �꽑�깮�븯硫� �빐�떦 �븯�뒗 �뼇�떇�쓽 �뿊���쓣 �떎�슫濡쒕뱶 �븷 �닔 �엳�뒿�땲�떎.",
         "settingTableDisplay": "�뀒�씠釉� �몴�떆 �꽕�젙",
         "deleteIssue": "�씠�뒋 �궘�젣",
diff --git a/src/main/webapp/scripts/app/issue/issueList.controller.js b/src/main/webapp/scripts/app/issue/issueList.controller.js
index 05d69f9..9a5fbf3 100644
--- a/src/main/webapp/scripts/app/issue/issueList.controller.js
+++ b/src/main/webapp/scripts/app/issue/issueList.controller.js
@@ -45,6 +45,7 @@
                     issueTypeId : "",
                     partnerVos : "",
                     search : {
+                        keyWord : "", //  �쟾泥� 寃��깋
                         title : "", //  �젣紐�
                         description : "",   //  �궡�슜
                         combinationIssueNumber : "",   //  �씠�뒋 踰덊샇
@@ -320,6 +321,7 @@
                 //  �씠�뒋 寃��깋 議곌굔�쓣 留뚮뱺�떎.
                 function makeSearchConditions() {
                     var conditions = {
+                        keyWord : $scope.vm.search.keyWord,
                         title : $scope.vm.search.title,
                         description : $scope.vm.search.description,
                         projectType : $scope.vm.search.projectType,
diff --git a/src/main/webapp/views/issue/issueListNormal.html b/src/main/webapp/views/issue/issueListNormal.html
index 1c7da54..d051599 100644
--- a/src/main/webapp/views/issue/issueListNormal.html
+++ b/src/main/webapp/views/issue/issueListNormal.html
@@ -16,8 +16,8 @@
                                                    maxlength="300"
                                                    kr-input
                                                    owl-auto-focus
-                                                   ng-model="vm.search.title"
-                                                   placeholder="{{'issue.pleaseEnterIssueName' | translate}}">
+                                                   ng-model="vm.search.keyWord"
+                                                   placeholder="{{'issue.pleaseEnterIssueKeyWord' | translate}}">
                                             <div class="input-group-prepend ml-10">
                                                 <button class="btn btn-navy" ng-click="fn.getPageList(0)"> <span translate="common.search">寃��깋</span></button>
                                             </div>
@@ -29,6 +29,12 @@
                                     <div class="col-sm-12">
                                         <div class="tabfilter">
                                             <div translate="common.selectedSearchCriteria">�꽑�깮�븳 寃��깋 議곌굔</div>
+                                            <!--    �씠�뒋 �젣紐�   -->
+                                            <p ng-if="$root.isDefined(vm.search.title)">
+                                                {{vm.search.title}}
+                                                <span ng-click="vm.search.title = ''">횞</span>
+                                            </p>
+
                                             <!--    �봽濡쒖젥�듃    -->
                                             <issue-search-array-view-element lists="vm.projects"
                                                                              type="'project'"></issue-search-array-view-element>
@@ -104,6 +110,19 @@
                                         <div class="row">
                                             <div class="col-lg-3">
                                                 <div class="form-group">
+                                                    <label> <span translate="issue.issueTitle">�씠�뒋 �젣紐�</span></label>
+                                                    <input type="text"
+                                                           name="title"
+                                                           class="form-control input-sm"
+                                                           kr-input
+                                                           maxlength="20"
+                                                           autocomplete="off"
+                                                           ng-model="vm.search.title">
+                                                </div>
+                                            </div>
+
+                                            <div class="col-lg-3">
+                                                <div class="form-group">
                                                     <label> <span translate="common.project">�봽濡쒖젥�듃</span></label>
                                                     <js-autocomplete-multi data-input-name="projects"
                                                                            selected-model="vm.projects"

--
Gitblit v1.8.0