From 0f59a76b263ba6cd79380a729f38bfca92a907dd Mon Sep 17 00:00:00 2001
From: 이민희 <mhlee@maprex.co.kr>
Date: 화, 28 12월 2021 17:59:17 +0900
Subject: [PATCH] Merge branch 'master' of http://192.168.0.25:9001/r/owl-kisa

---
 src/main/webapp/scripts/app/issue/issueAddRelationTableConfig.controller.js |    2 
 src/main/webapp/views/issue/issueListNormal.html                            |  117 +++++++++++++++++---------------------
 src/main/webapp/scripts/app/issue/issueList.controller.js                   |    1 
 src/main/webapp/i18n/ko/global.json                                         |    3 
 src/main/webapp/scripts/app/api/apiAuth.controller.js                       |   38 ++++++++++--
 src/main/webapp/scripts/app/issue/issueAddDownTableConfig.controller.js     |    2 
 src/main/webapp/assets/styles/main.css                                      |    2 
 src/main/webapp/custom_components/summernote/summernote.js                  |   15 ++++
 8 files changed, 100 insertions(+), 80 deletions(-)

diff --git a/src/main/webapp/assets/styles/main.css b/src/main/webapp/assets/styles/main.css
index b356377..98f700e 100644
--- a/src/main/webapp/assets/styles/main.css
+++ b/src/main/webapp/assets/styles/main.css
@@ -5225,7 +5225,7 @@
 }*/
 
 .modal-open {
-    overflow: auto;
+    overflow: hidden;
 }
 
 .modal {
diff --git a/src/main/webapp/custom_components/summernote/summernote.js b/src/main/webapp/custom_components/summernote/summernote.js
index d2b5ef9..5e5873c 100644
--- a/src/main/webapp/custom_components/summernote/summernote.js
+++ b/src/main/webapp/custom_components/summernote/summernote.js
@@ -2020,7 +2020,7 @@
 
         hideDialog: function ($dialog) {
             $dialog.modal('hide');
-            $("body").addClass("modal-open");
+            $('.modal:visible').length && $(document.body).addClass('modal-open');
         },
 
         createLayout: function ($note, options) {
@@ -7293,9 +7293,20 @@
 
 }));
 
+var count = 0; // 紐⑤떖�씠 �뿴由� �븣 留덈떎 count �빐�꽌  z-index媛믪쓣 �넂�뿬以�
+$(document).on('show.bs.modal', '.modal', function () {
+
+    var zIndex = 1040 + (10 * count);
+    $(this).css('z-index', zIndex);
+    setTimeout(function() {
+        $('.modal-backdrop').not('.modal-stack').css('z-index', zIndex - 1).addClass('modal-stack');
+    }, 0);
+    count = count + 1
+});
+
 function closeOwlModal() {
     $('.owl_close_modal').modal('hide');
-    $('body').addClass('modal-open');
+    $('.modal:visible').length && $(document.body).addClass('modal-open');
 }
 
 //  �겕濡� 釉뚮씪�슦�� �븳湲� �삤瑜� �뙣移�
diff --git a/src/main/webapp/i18n/ko/global.json b/src/main/webapp/i18n/ko/global.json
index 7064eb4..39170e0 100644
--- a/src/main/webapp/i18n/ko/global.json
+++ b/src/main/webapp/i18n/ko/global.json
@@ -852,7 +852,7 @@
         "emptyUser": "�꽑�깮�븷 �닔 �엳�뒗 �궗�슜�옄媛� �뾾�뒿�땲�떎.",
         "emptyProject": "�꽑�깮�븷 �닔 �엳�뒗 �봽濡쒖젥�듃媛� �뾾�뒿�땲�떎.",
         "emptyDepartment": "�꽑�깮�븷 �닔 �엳�뒗 遺��꽌媛� �뾾�뒿�땲�떎.",
-        "emptyProjectDepartment": "�꽑�깮�븷 �닔 �엳�뒗 遺��꽌媛� �뾾�뒿�땲�떎. <br> �썙�겕�뵆濡쒖슦�뿉�꽌 �떞�떦遺��꽌瑜� �꽕�젙�븯嫄곕굹,<br>遺��꽌 愿�由ъ뿉�꽌 遺��꽌瑜� 異붽� �빐二쇱꽭�슂",
+        "emptyProjectDepartment": "�꽑�깮�븷 �닔 �엳�뒗 遺��꽌媛� �뾾�뒿�땲�떎.",
         "noDepartment": "�떞�떦遺��꽌媛� �뾾�뒿�땲�떎.",
         "emptyCompanyPartners": "�꽑�깮�븷 �닔 �엳�뒗 �뾽泥� �젙蹂닿� �뾾�뒿�땲�떎.",
         "emptyCompany": "�꽑�깮�븷 �닔 �엳�뒗 �뾽泥닿� �뾾�뒿�땲�떎.",
@@ -917,6 +917,7 @@
         "useIssueStatus" : "�궗�슜 媛��뒫�븳 �씠�뒋 �긽�깭",
         "successToApiTokenRemove" : "API �넗�겙 �궘�젣 �꽦怨�",
         "successToApiTokenCopy" : "API �넗�겙 蹂듭궗 �꽦怨�",
+        "failedToApiTokenCopy" : "API �넗�겙 蹂듭궗 �떎�뙣",
         "ApiTokenCopy" : "�넗�겙 蹂듭궗",
         "successToApiTokenAdd" : "API �넗�겙 �깮�꽦 �꽦怨�",
         "successToApiIssueDefault" : "湲곕낯媛� �꽕�젙 �셿猷�",
diff --git a/src/main/webapp/scripts/app/api/apiAuth.controller.js b/src/main/webapp/scripts/app/api/apiAuth.controller.js
index eda67ae..e7cb211 100644
--- a/src/main/webapp/scripts/app/api/apiAuth.controller.js
+++ b/src/main/webapp/scripts/app/api/apiAuth.controller.js
@@ -75,15 +75,37 @@
                     });
                 }
 
+                // navigator.clipboard �뒗 釉뚮씪�슦�� 蹂댁븞�씠�굹 �솢�꽦�솕 �뿬遺��뿉 �뵲�씪 �궗�슜�씠 �븞�맆�븣媛� �엳�쓬
+                function copyToClipboard(textToCopy) {
+                    // navigator clipboard api needs a secure context (https)
+                    if (navigator.clipboard && window.isSecureContext) {
+                        // navigator clipboard api method'
+                        return navigator.clipboard.writeText(textToCopy);
+                    } else {
+                        // text area method
+                        let textArea = document.createElement("textarea");
+                        textArea.value = textToCopy;
+                        // make the textarea out of viewport
+                        textArea.style.position = "fixed";
+                        textArea.style.left = "-999999px";
+                        textArea.style.top = "-999999px";
+                        document.body.appendChild(textArea);
+                        textArea.focus();
+                        textArea.select();
+                        return new Promise((res, rej) => {
+                            // here the magic happens
+                            document.execCommand('copy') ? res() : rej();
+                            textArea.remove();
+                        });
+                    }
+                }
+
                 function copyToken() {
-                    var copyText = document.getElementById("apiApplicationForm2");
-
-                    copyText.select();
-                    copyText.setSelectionRange(0, 99999);
-
-                    navigator.clipboard.writeText(copyText.value);
-
-                    SweetAlert.swal($filter("translate")("api.successToApiTokenCopy")); // "api �넗�겙 �깮�꽦 �꽦怨�"
+                    copyToClipboard($scope.vm.form.token)
+                        .then(() =>
+                            SweetAlert.swal($filter("translate")("api.successToApiTokenCopy"))
+                        )
+                        .catch(() => SweetAlert.error($filter("translate")("api.failedToApiTokenCopy")))
                 }
 
                 function find() {
diff --git a/src/main/webapp/scripts/app/issue/issueAddDownTableConfig.controller.js b/src/main/webapp/scripts/app/issue/issueAddDownTableConfig.controller.js
index 39c5ff4..6bffedf 100644
--- a/src/main/webapp/scripts/app/issue/issueAddDownTableConfig.controller.js
+++ b/src/main/webapp/scripts/app/issue/issueAddDownTableConfig.controller.js
@@ -115,8 +115,6 @@
                         else {
                             SweetAlert.error($filter("translate")("issue.failedToSaveIssueTableSetting"), result.data.message.message); // �씠�뒋 �뀒�씠釉� �꽕�젙 ���옣 �떎�뙣
                         }
-
-                        $rootScope.spinner = false;
                     });
                 }
 
diff --git a/src/main/webapp/scripts/app/issue/issueAddRelationTableConfig.controller.js b/src/main/webapp/scripts/app/issue/issueAddRelationTableConfig.controller.js
index 9b232ae..a4e5e62 100644
--- a/src/main/webapp/scripts/app/issue/issueAddRelationTableConfig.controller.js
+++ b/src/main/webapp/scripts/app/issue/issueAddRelationTableConfig.controller.js
@@ -116,8 +116,6 @@
                         else {
                             SweetAlert.error($filter("translate")("issue.failedToSaveIssueTableSetting"), result.data.message.message); // �씠�뒋 �뀒�씠釉� �꽕�젙 ���옣 �떎�뙣
                         }
-
-                        $rootScope.spinner = false;
                     });
                 }
 
diff --git a/src/main/webapp/scripts/app/issue/issueList.controller.js b/src/main/webapp/scripts/app/issue/issueList.controller.js
index 256e3de..a4ffb6e 100644
--- a/src/main/webapp/scripts/app/issue/issueList.controller.js
+++ b/src/main/webapp/scripts/app/issue/issueList.controller.js
@@ -609,6 +609,7 @@
                     }
 
                     return conditions;
+
                 }
 
                 function getTreeList() {
diff --git a/src/main/webapp/views/issue/issueListNormal.html b/src/main/webapp/views/issue/issueListNormal.html
index af1d6e4..c8594be 100644
--- a/src/main/webapp/views/issue/issueListNormal.html
+++ b/src/main/webapp/views/issue/issueListNormal.html
@@ -36,12 +36,12 @@
                                                 </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"
@@ -124,42 +124,6 @@
                                                                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>
@@ -185,7 +149,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>
@@ -205,9 +203,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>
@@ -224,17 +220,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">
@@ -263,19 +264,7 @@
                                                     </div>
                                                 </div>
 
-                                                <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>
-                                                    </div>
-                                                </div>
+
 
                                                 <div class="col-lg-3" ng-repeat="customField in vm.customFields">
                                                     <label>{{::customField.name}}</label>

--
Gitblit v1.8.0