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