From 71a5ce92795fb1a4fbff5fceab8135ec98a691e5 Mon Sep 17 00:00:00 2001
From: 박지현 <jhpark@maprex.co.kr>
Date: 월, 07 3월 2022 18:07:52 +0900
Subject: [PATCH] 이슈 목록 조회 방식 - 전체이슈 보기 / 상위 이슈만 보기 / 하위 이슈만 보기로 수정

---
 src/main/webapp/views/issue/issueListNormal.html |  206 ++++++++++++++++++++++++++++++---------------------
 1 files changed, 121 insertions(+), 85 deletions(-)

diff --git a/src/main/webapp/views/issue/issueListNormal.html b/src/main/webapp/views/issue/issueListNormal.html
index 5c2e06a..964d140 100644
--- a/src/main/webapp/views/issue/issueListNormal.html
+++ b/src/main/webapp/views/issue/issueListNormal.html
@@ -36,16 +36,22 @@
                                                 </p>
 
                                                 <!--    �봽濡쒖젥�듃    -->
-                                                <issue-search-array-view-element lists="vm.projects"
-                                                                                 type="'project'"></issue-search-array-view-element>
+<!--                                                <issue-search-array-view-element lists="vm.projects"-->
+<!--                                                                                 type="'project'"></issue-search-array-view-element>-->
 
                                                 <!--    �씠�뒋 ���엯   -->
-                                                <issue-search-field-key-view-element lists="vm.issueTypes"
-                                                                                     keys="vm.search.issueTypeIds"></issue-search-field-key-view-element>
+<!--                                                <issue-search-field-key-view-element lists="vm.issueTypes"-->
+<!--                                                                                     keys="vm.search.issueTypeIds"></issue-search-field-key-view-element>-->
 
                                                 <!--    �씠�뒋 �긽�깭   -->
                                                 <issue-search-field-key-view-element lists="vm.issueStatuses"
                                                                                      keys="vm.search.issueStatusIds"></issue-search-field-key-view-element>
+
+                                                <!-- �씠�뒋 踰덊샇 -->
+                                                <p ng-if="$root.isDefined(vm.search.issueNumber)">
+                                                    {{vm.search.issueNumber}}
+                                                    <span ng-click="vm.search.issueNumber = ''">횞</span>
+                                                </p>
 
                                                 <!--    �씠�뒋 �궡�슜   -->
                                                 <p ng-if="$root.isDefined(vm.search.description)">
@@ -81,11 +87,21 @@
                                                     <span ng-click="vm.search.completeDateRange = ''">횞</span>
                                                 </p>
 
+                                                <!-- 湲곌컙 -->
+                                                <p ng-if="$root.isDefined(vm.search.dateRange)">
+                                                    {{vm.search.dateRange}}
+                                                    <span ng-click="vm.search.dateRange = ''">횞</span>
+                                                </p>
+
                                                 <!--    �벑濡앹씪   -->
                                                 <p ng-if="$root.isDefined(vm.search.registerDateRange)">
                                                     {{vm.search.registerDateRange}}
                                                     <span ng-click="vm.search.registerDateRange = ''">횞</span>
                                                 </p>
+
+                                                <!-- �떞�떦遺��꽌 -->
+                                                <issue-search-array-view-element lists="vm.departments"
+                                                                                 type="'department'"></issue-search-array-view-element>
 
                                                 <!--    �뀓�뒪�듃 �엯�젰 �븘�뱶   -->
                                                 <issue-search-custom-field-view-element
@@ -114,52 +130,16 @@
                                                                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"
-                                                                               search="vm.projectName"
-                                                                               input-disabled="false"
-                                                                               translation-texts="{ empty : 'common.emptyProject', selectList : 'common.' }"
-                                                                               source="fn.getProjectList(vm.projectName, vm.projects, null, null, ['01', '02', '03'])"
-                                                                               extra-settings="{ displayProp : 'name' , idProp : 'id', imageable : false, imagePathProp : '', type : '', maxlength : 100}"></js-autocomplete-multi>
-                                                    </div>
-                                                </div>
-
-                                                <div class="col-lg-3">
-                                                    <div class="form-group">
-                                                        <label> <span translate="issue.issueType">�씠�뒋 ���엯</span></label>
-                                                        <ng-dropdown-multiselect class="multiSelect cursor"
-                                                                                 data-input-name="issueStatuses"
-                                                                                 selected-model="vm.search.issueTypeIds"
-                                                                                 options="::vm.issueTypes"></ng-dropdown-multiselect>
-                                                    </div>
-                                                </div>
-
-                                                <div class="col-lg-3">
-                                                    <div class="form-group">
-                                                        <label> <span translate="issue.issueStatus">�씠�뒋 �긽�깭</span></label>
-                                                        <ng-dropdown-multiselect class="multiSelect cursor"
-                                                                                 data-input-name="issueStatuses"
-                                                                                 selected-model="vm.search.issueStatusIds"
-                                                                                 options="::vm.issueStatuses"></ng-dropdown-multiselect>
-                                                    </div>
-                                                </div>
-                                            </div>
-
-                                            <div class="row">
                                                 <div class="col-lg-3">
                                                     <div class="form-group">
                                                         <label> <span translate="issue.issueNumber">�씠�뒋 踰덊샇</span></label>
                                                         <input type="text"
-                                                               name="name"
+                                                               name="issueNumber"
                                                                class="form-control input-sm"
                                                                autocomplete="off"
                                                                kr-input
                                                                maxlength="20"
-                                                               ng-model="vm.search.combinationIssueNumber">
+                                                               ng-model="vm.search.issueNumber">
                                                     </div>
                                                 </div>
 
@@ -175,7 +155,41 @@
                                                                ng-model="vm.search.description">
                                                     </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"-->
+<!--                                                                               search="vm.projectName"-->
+<!--                                                                               input-disabled="false"-->
+<!--                                                                               translation-texts="{ empty : 'common.emptyProject', selectList : 'common.' }"-->
+<!--                                                                               source="fn.getProjectList(vm.projectName, vm.projects, null, null, ['01', '02', '03'])"-->
+<!--                                                                               extra-settings="{ displayProp : 'name' , idProp : 'id', imageable : false, imagePathProp : '', type : '', maxlength : 100}"></js-autocomplete-multi>-->
+<!--                                                    </div>-->
+<!--                                                </div>-->
 
+<!--                                                <div class="col-lg-3">-->
+<!--                                                    <div class="form-group">-->
+<!--                                                        <label> <span translate="issue.issueType">�씠�뒋 ���엯</span></label>-->
+<!--                                                        <ng-dropdown-multiselect class="multiSelect cursor"-->
+<!--                                                                                 data-input-name="issueStatuses"-->
+<!--                                                                                 selected-model="vm.search.issueTypeIds"-->
+<!--                                                                                 options="::vm.issueTypes"></ng-dropdown-multiselect>-->
+<!--                                                    </div>-->
+<!--                                                </div>-->
+
+                                                <div class="col-lg-3">
+                                                    <div class="form-group">
+                                                        <label> <span translate="issue.issueStatus">�씠�뒋 �긽�깭</span></label>
+                                                        <ng-dropdown-multiselect class="multiSelect cursor"
+                                                                                 data-input-name="issueStatuses"
+                                                                                 selected-model="vm.search.issueStatusIds"
+                                                                                 options="::vm.issueStatuses"></ng-dropdown-multiselect>
+                                                    </div>
+                                                </div>
+                                            </div>
+
+                                            <div class="row">
                                                 <div class="col-lg-3">
                                                     <div class="form-group">
                                                         <label> <span translate="common.priority">�슦�꽑 �닚�쐞</span></label>
@@ -195,9 +209,7 @@
                                                                                  options="::vm.severities"></ng-dropdown-multiselect>
                                                     </div>
                                                 </div>
-                                            </div>
 
-                                            <div class="row">
                                                 <div class="col-lg-3">
                                                     <div class="form-group">
                                                         <label> <span translate="common.register">�벑濡앹옄</span></label>
@@ -214,17 +226,22 @@
 
                                                 <div class="col-lg-3">
                                                     <div class="form-group">
-                                                        <label> <span translate="common.registrationDate">�벑濡앹씪</span></label>
-                                                        <input type="text"
-                                                               readonly
-                                                               class="form-control input-sm input-readonly"
-                                                               ng-model="vm.search.registerDateRange"
-                                                               modal-form-auto-scroll
-                                                               date-format="YY-MM-DD"
-                                                               parent-el="'#createdWidget'"
-                                                               date-range-picker>
+                                                        <label> <span translate="common.assigneeTeam">�떞�떦遺��꽌</span></label>
+                                                        <js-autocomplete-multi data-input-name="departments"
+                                                                               selected-model="vm.departments"
+                                                                               search="vm.departmentName"
+                                                                               input-disabled="false"
+                                                                               source="fn.getUserDepartmentList(vm.departmentName, vm.departments)"
+                                                                               translation-texts="{ count : 'common.userNum', empty : 'common.emptyProjectDepartment' }"
+                                                                               extra-settings="{ displayProp : 'byName' , idProp : 'id', widthable : false, width : '', imageable : true, imagePathProp : 'profile', type : 'department', maxlength : 100 }">
+                                                        </js-autocomplete-multi>
                                                     </div>
                                                 </div>
+
+                                            </div>
+
+
+                                            <div class="row">
 
                                                 <div class="col-lg-3">
                                                     <div class="form-group">
@@ -255,17 +272,32 @@
 
                                                 <div class="col-lg-3">
                                                     <div class="form-group">
-                                                        <label> <span translate="common.assigneeTeam">�떞�떦遺��꽌</span></label>
-                                                        <js-autocomplete-multi data-input-name="departments"
-                                                                               selected-model="vm.departments"
-                                                                               search="vm.departmentName"
-                                                                               input-disabled="false"
-                                                                               source="fn.getUserDepartmentList(vm.departmentName, vm.departments)"
-                                                                               translation-texts="{ count : 'common.userNum', empty : 'common.emptyProjectDepartment' }"
-                                                                               extra-settings="{ displayProp : 'byName' , idProp : 'id', widthable : false, width : '', imageable : true, imagePathProp : 'profile', type : 'department', maxlength : 100 }">
-                                                        </js-autocomplete-multi>
+                                                        <label> <span translate="common.dateRange">湲곌컙</span></label>
+                                                        <input type="text"
+                                                               readonly
+                                                               class="form-control input-sm input-readonly"
+                                                               ng-model="vm.search.dateRange"
+                                                               modal-form-auto-scroll
+                                                               date-format="YY-MM-DD"
+                                                               parent-el="'#createdWidget'"
+                                                               date-range-picker>
                                                     </div>
                                                 </div>
+
+                                                <div class="col-lg-3">
+                                                    <div class="form-group">
+                                                        <label> <span translate="common.registrationDate">�벑濡앹씪</span></label>
+                                                        <input type="text"
+                                                               readonly
+                                                               class="form-control input-sm input-readonly"
+                                                               ng-model="vm.search.registerDateRange"
+                                                               modal-form-auto-scroll
+                                                               date-format="YY-MM-DD"
+                                                               parent-el="'#createdWidget'"
+                                                               date-range-picker>
+                                                    </div>
+                                                </div>
+
 
                                                 <div class="col-lg-3" ng-repeat="customField in vm.customFields">
                                                     <label>{{::customField.name}}</label>
@@ -275,30 +307,31 @@
                                                             <input type="text"
                                                                    class="form-control input-sm"
                                                                    ng-model="customField.useValues"
-                                                                   maxlength="100">
+                                                                   >
                                                         </div>
                                                         <div ng-switch-when="NUMBER">
                                                             <input type="text"
                                                                    class="form-control input-sm"
-                                                                   name="numberType"
+                                                                   name="item_{{$index}}"
                                                                    ng-model="customField.useValues"
                                                                    kr-input
                                                                    placeholder="�닽�옄留� �엯�젰 媛��뒫�빀�땲�떎."
                                                                    ng-pattern="/^[0-9]*$/"
                                                                    autocomplete="off">
-                                                            <div ng-show="issueSearchForm.numberType.$error.pattern" class="help-block form-text text-danger"
+                                                            <div ng-if="issueSearchForm['item_'+ $index].$error.pattern" class="help-block form-text text-danger"
                                                                  translate="common.invalidNumberFormat">�닽�옄留� �엯�젰 媛��뒫�빀�땲�떎.
                                                             </div>
                                                         </div>
 
-                                                        <!-- todo : �궇吏� 寃��깋 臾몄젣 -->
                                                         <div ng-switch-when="DATETIME">
-                                                            <input type="text" class="form-control input-sm"
-                                                                   name="dateTime"
+                                                            <input class="form-control input-sm input-readonly"
+                                                                   name="item_{{$index}}"
                                                                    ng-model="customField.useValues"
-                                                                   maxlength="100"
-                                                                   range-type="singleDate"
-                                                                   date-range-picker>
+                                                                   placeholder="{{'issue.clickToSelectDate' | translate}}"
+                                                                   modal-form-auto-scroll
+                                                                   range-type="multiDate"
+                                                                   date-range-picker
+                                                                   autocomplete="off">
                                                             <div class="row">
                                                                 <div class="col-xs-12">
                                                                     <div id="createdWidget" class="bootstrap-datepicker "></div>
@@ -309,13 +342,13 @@
                                                         <div ng-switch-when="IP_ADDRESS">
                                                             <input type="text"
                                                                    class="form-control input-sm"
-                                                                   name="ipAdress"
+                                                                   name="item_{{$index}}"
                                                                    ng-model="customField.useValues"
                                                                    kr-input
                                                                    ng-pattern="/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/"
                                                                    placeholder="IP 二쇱냼 �삎�떇留� �엯�젰 媛��뒫�빀�땲�떎."
                                                                    autocomplete="off">
-                                                            <div ng-show="issueSearchForm.ipAdress.$error.pattern" class="help-block form-text text-danger"
+                                                            <div ng-if="issueSearchForm['item_'+ $index].$error.pattern" class="help-block form-text text-danger"
                                                                  translate="common.invalidipAdressFormat">IP二쇱냼 �삎�떇�씠 留욎� �븡�뒿�땲�떎.
                                                             </div>
                                                         </div>
@@ -323,13 +356,13 @@
                                                         <div ng-switch-when="EMAIL">
                                                             <input type="email"
                                                                    class="form-control input-sm"
-                                                                   name="email"
+                                                                   name="item_{{$index}}"
                                                                    ng-model="customField.useValues"
                                                                    kr-input
                                                                    ng-pattern="/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/"
                                                                    placeholder="�씠硫붿씪 �삎�떇留� �엯�젰 媛��뒫�빀�땲�떎."
                                                                    autocomplete="off">
-                                                            <div ng-show="issueSearchForm.email.$error.pattern" class="help-block form-text text-danger"
+                                                            <div ng-if="issueSearchForm['item_'+ $index].$error.pattern" class="help-block form-text text-danger"
                                                                  translate="common.invalidEmailFormat">�씠硫붿씪 �삎�떇�씠 留욎� �븡�뒿�땲�떎.
                                                             </div>
                                                         </div>
@@ -337,26 +370,26 @@
                                                         <div ng-switch-when="SITE">
                                                             <input type="text"
                                                                    class="form-control input-sm"
-                                                                   name="site"
+                                                                   name="item_{{$index}}"
                                                                    ng-model="customField.useValues"
                                                                    kr-input
-                                                                   ng-pattern="/((http|https):\/\/)?(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/"
+                                                                   ng-pattern="/(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/"
                                                                    placeholder="�솃�럹�씠吏� 二쇱냼 �삎�떇留� �엯�젰 媛��뒫�빀�땲�떎."
                                                                    autocomplete="off">
-                                                            <div ng-show="issueSearchForm.site.$error.pattern" class="help-block form-text text-danger"
+                                                            <div ng-if="issueSearchForm['item_'+ $index].$error.pattern" class="help-block form-text text-danger"
                                                                  translate="common.invalidSiteFormat">�솃�럹�씠吏� 二쇱냼 �삎�떇�씠 留욎� �븡�뒿�땲�떎.(http://濡� �떆�옉�븯�뀛�빞�빀�땲�떎)
                                                             </div>
                                                         </div>
                                                         <div ng-switch-when="TEL">
                                                             <input type="text"
                                                                    class="form-control input-sm"
-                                                                   name="tel"
+                                                                   name="item_{{$index}}"
                                                                    ng-model="customField.useValues"
                                                                    kr-input
                                                                    ng-pattern="/^\d{2,3}-\d{3,4}-\d{4}$/"
                                                                    placeholder="�뿰�씫泥� �삎�떇留� �엯�젰 媛��뒫�빀�땲�떎."
                                                                    autocomplete="off">
-                                                            <div ng-show="issueSearchForm.tel.$error.pattern" class="help-block form-text text-danger"
+                                                            <div ng-if="issueSearchForm['item_'+ $index].$error.pattern" class="help-block form-text text-danger"
                                                                  translate="common.invalidTelFormat">�쟾�솕踰덊샇 �삎�떇�씠 留욎� �븡�뒿�땲�떎.
                                                             </div>
                                                         </div>
@@ -420,14 +453,17 @@
 
                             <!--    �슦痢�  -->
                             <div class="col-5" >
-                                <span class="issue-detail-label" style="position: relative; left: 2.8rem; bottom: 5px"><span style="color: #0a7cf8">�뾾</span> �븯�쐞 �씠�뒋 �닲湲곌린</span>
-                                <label class='switch' style="left: 3.3rem"><input type='checkbox' ng-model='vm.hideDownIssue' ng-click='fn.getPageList(0)'>
-                                    <span class='slider round'></span>
-                                </label>
-                                <span class="issue-detail-label" style="position: relative; left: 5.8rem; bottom: 5px"><span style="color: #0a7cf8">�뾾</span> �셿猷� �씠�뒋 �닲湲곌린</span>
+                                <span class="issue-detail-label" style="position: relative; left: 5.8rem; bottom: 7px"><span style="color: #0a7cf8">�뾾</span> �셿猷� �씠�뒋 �닲湲곌린</span>
                                 <label class='switch' style="left: 6.3rem"><input type='checkbox' ng-model='vm.hideCompleteIssue' ng-click='fn.getPageList(0)'>
                                     <span class='slider round'></span>
                                 </label>
+                                <label style="position: relative; left: 8rem; bottom: 9px">
+                                    <select class="form-control form-control-sm" ng-if="vm.listMode === 0" ng-model="vm.hideDownIssue" ng-change="fn.getPageList(0)" ng-init="0" style="width:160px">
+                                        <option value="0">�쟾泥� �씠�뒋 蹂닿린</option>
+                                        <option value="1">�긽�쐞 �씠�뒋留� 蹂닿린</option>
+                                        <option value="2">�븯�쐞 �씠�뒋留� 蹂닿린</option>
+                                    </select>
+                                </label>
                                 <form class="form-inline justify-content-sm-end  pull-right" method="post" action="/issue/downloadExcel" name="issueListForm" >
                                     <!--span class="badge-tip" function-tool-tip  data-placement="top" data-toggle="tooltip" data-original-title="�뿊�� �떎�슫濡쒕뱶, �씪愿� 蹂�寃� �벑 �떎�뼇�븳 湲곕뒫�쓣 �젣怨듯빀�땲�떎.">?</span-->
                                     <input type="hidden" name="conditions">

--
Gitblit v1.8.0