From ab7e04765622b7ef31bb891a91e89abcf203c31d Mon Sep 17 00:00:00 2001 From: jhjang <jhjang@maprex.co.kr> Date: 목, 09 12월 2021 14:35:15 +0900 Subject: [PATCH] Merge branch 'master' of http://192.168.0.25:9001/r/owl-kisa --- src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java | 83 +++++++++++++ src/main/java/kr/wisestone/owl/vo/IssueVo.java | 9 + src/main/webapp/bower_components/bootstrap-daterangepicker/daterangepicker.js | 2 src/main/java/kr/wisestone/owl/web/condition/IssueCondition.java | 9 + src/main/webapp/scripts/components/issue/issue.service.js | 12 ++ src/main/webapp/scripts/components/utils/dateRangePicker.directive.js | 5 src/main/resources/mybatis/query-template/issue-template.xml | 1 src/main/webapp/scripts/app/issue/issueDetail.controller.js | 14 +- src/main/webapp/views/login/login.html | 33 ++-- src/main/java/kr/wisestone/owl/service/IssueService.java | 4 src/main/webapp/scripts/app/issue/issueList.controller.js | 110 ++++++++++++++++-- src/main/webapp/i18n/ko/global.json | 3 src/main/java/kr/wisestone/owl/web/controller/IssueController.java | 24 ++++ src/main/webapp/views/issue/issueDetail.html | 4 src/main/webapp/scripts/app/project/projectList.controller.js | 22 --- src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js | 13 - 16 files changed, 277 insertions(+), 71 deletions(-) diff --git a/src/main/java/kr/wisestone/owl/service/IssueService.java b/src/main/java/kr/wisestone/owl/service/IssueService.java index fff9510..302a9e4 100644 --- a/src/main/java/kr/wisestone/owl/service/IssueService.java +++ b/src/main/java/kr/wisestone/owl/service/IssueService.java @@ -54,6 +54,10 @@ void removeIssues(IssueForm issueForm); + void removeAllIssues(IssueForm issueForm); + + void removeDownIssues(IssueForm issueForm); + void modifyIssueStatus(IssueForm issueForm, User user); Issue getIssue(Long taskId); diff --git a/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java index f0022e5..9301402 100644 --- a/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java +++ b/src/main/java/kr/wisestone/owl/service/impl/IssueServiceImpl.java @@ -2068,20 +2068,95 @@ List<Issue> removeIssues = Lists.newArrayList(); for (Long issueId : issueForm.getRemoveIds()) { + //�븯�쐞�씠�뒋 泥댄겕 + List<Issue> downIssues = this.issueRepository.findByParentIssueId(issueId); + if(downIssues != null && downIssues.size() > 0){ + for(Issue downIssue : downIssues){ + if(downIssue.getParentIssue() != null){ + downIssue.setParentIssue(null); + } + } + } + Issue issue = this.issueRemoves(issueId, user); removeIssues.add(issue); } - if (removeIssues.size() > 0) { - //this.issueRepository.deleteAll(removeIssues); - } + /*if (removeIssues.size() > 0) { + this.issueRepository.deleteAll(removeIssues); + }*/ // �궗�슜�옄 �떆�뒪�뀥 湲곕뒫 �궗�슜 �젙蹂� �닔吏� log.info(ElasticSearchUtil.makeUserActiveHistoryMessage(this.webAppUtil.getLoginUser(), ElasticSearchConstants.ISSUE_REMOVE)); } + // �씠�뒋瑜� �궘�젣�븳�떎. + @Override + @Transactional + public void removeAllIssues(IssueForm issueForm) { + // �궗�슜�븯怨� �엳�뒗 �뾽臾� 怨듦컙�씠 �솢�꽦 �긽�깭�씤吏� �솗�씤�븳�떎. �궗�슜 怨듦컙�뿉�꽌 濡쒓렇�씤�븳 �궗�슜�옄媛� 鍮꾪솢�꽦�씤吏� �솗�씤�븳�떎. + User user = this.webAppUtil.getLoginUserObject(); + this.workspaceService.checkUseWorkspace(); + + if (issueForm.getRemoveIds().size() < 1) { + throw new OwlRuntimeException( + this.messageAccessor.getMessage(MsgConstants.ISSUE_REMOVE_NOT_SELECT)); + } + + List<Issue> removeIssues = Lists.newArrayList(); + + for (Long issueId : issueForm.getRemoveIds()) { + //�븯�쐞�씠�뒋 泥댄겕 + List<Issue> downIssues = this.issueRepository.findByParentIssueId(issueId); + if(downIssues != null && downIssues.size() > 0){ + for(Issue downIssue : downIssues){ + Long downIssueId = downIssue.getId(); + downIssue = this.issueRemoves(downIssueId, user); + removeIssues.add(downIssue); + } + } + Issue issue = this.issueRemoves(issueId, user); + removeIssues.add(issue); + } + // �궗�슜�옄 �떆�뒪�뀥 湲곕뒫 �궗�슜 �젙蹂� �닔吏� + log.info(ElasticSearchUtil.makeUserActiveHistoryMessage(this.webAppUtil.getLoginUser(), ElasticSearchConstants.ISSUE_REMOVE)); + } + + // �븯�쐞�씠�뒋瑜� �궘�젣�븳�떎. + @Override + @Transactional + public void removeDownIssues(IssueForm issueForm) { + // �궗�슜�븯怨� �엳�뒗 �뾽臾� 怨듦컙�씠 �솢�꽦 �긽�깭�씤吏� �솗�씤�븳�떎. �궗�슜 怨듦컙�뿉�꽌 濡쒓렇�씤�븳 �궗�슜�옄媛� 鍮꾪솢�꽦�씤吏� �솗�씤�븳�떎. + User user = this.webAppUtil.getLoginUserObject(); + this.workspaceService.checkUseWorkspace(); + + if (issueForm.getRemoveIds().size() < 1) { + throw new OwlRuntimeException( + this.messageAccessor.getMessage(MsgConstants.ISSUE_REMOVE_NOT_SELECT)); + } + + List<Issue> removeIssues = Lists.newArrayList(); + Long downIssueId = 0L; + for (Long issueId : issueForm.getRemoveIds()) { + //�궘�젣 �븷 �씠�뒋�쓽 �븯�쐞�씠�뒋 泥댄겕 + List<Issue> downIssues = this.issueRepository.findByParentIssueId(issueId); + if(downIssues != null && downIssues.size() > 0){ + for(Issue downIssue : downIssues){ + downIssueId = downIssue.getId(); + } + } + Issue issue = this.issueRemoves(downIssueId, user); + removeIssues.add(issue); + } + // �궗�슜�옄 �떆�뒪�뀥 湲곕뒫 �궗�슜 �젙蹂� �닔吏� + log.info(ElasticSearchUtil.makeUserActiveHistoryMessage(this.webAppUtil.getLoginUser(), ElasticSearchConstants.ISSUE_REMOVE)); + } + private Issue issueRemoves(Long issueId, User user) { - Issue issue = this.getIssue(issueId); + Issue issue = null; + if(issueId != null){ + issue = this.getIssue(issueId); + } // �씠�뒋 �닔�젙 沅뚰븳�쓣 媛뽮퀬 �엳�뒗吏� �솗�씤 this.verifyIssueModifyPermission(issue, user); diff --git a/src/main/java/kr/wisestone/owl/vo/IssueVo.java b/src/main/java/kr/wisestone/owl/vo/IssueVo.java index 5ac8406..69600a2 100644 --- a/src/main/java/kr/wisestone/owl/vo/IssueVo.java +++ b/src/main/java/kr/wisestone/owl/vo/IssueVo.java @@ -31,6 +31,7 @@ private Long severityId; private String severityName; private String severityColor; + private String isApi; private ProjectVo projectVo; // �씠�뒋 �긽�꽭�뿉�꽌 �궗�슜 private IssueStatusVo issueStatusVo; // �씠�뒋 �긽�꽭�뿉�꽌 �궗�슜 private IssueTypeVo issueTypeVo; // �씠�뒋 �긽�꽭�뿉�꽌 �궗�슜 @@ -231,6 +232,14 @@ this.severityColor = severityColor; } + public String getIsApi() { + return isApi; + } + + public void setIsApi(String isApi) { + this.isApi = isApi; + } + public Boolean getModifyPermissionCheck() { return modifyPermissionCheck; } 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 4437f90..c531292 100644 --- a/src/main/java/kr/wisestone/owl/web/condition/IssueCondition.java +++ b/src/main/java/kr/wisestone/owl/web/condition/IssueCondition.java @@ -34,6 +34,7 @@ private Long workspaceId; private String projectType; private String deep; + private String isApi; private Long parentIssueId; // �긽�쐞 �씪媛� private String useValue; private List<Long> projectIds = Lists.newArrayList(); @@ -301,6 +302,14 @@ this.deep = deep; } + public String getIsApi() { + return isApi; + } + + public void setIsApi(String isApi) { + this.isApi = isApi; + } + public List<Long> getProjectIds() { return projectIds; } diff --git a/src/main/java/kr/wisestone/owl/web/controller/IssueController.java b/src/main/java/kr/wisestone/owl/web/controller/IssueController.java index f752960..460c4b5 100644 --- a/src/main/java/kr/wisestone/owl/web/controller/IssueController.java +++ b/src/main/java/kr/wisestone/owl/web/controller/IssueController.java @@ -137,6 +137,30 @@ return this.setSuccessMessage(resJsonData); } + // �븯�쐞�씠�뒋 �궘�젣 + @RequestMapping(value = "/issue/removeAll", produces = MediaType.APPLICATION_JSON_VALUE) + public + @ResponseBody + Map<String, Object> removesAll(@RequestBody Map<String, Map<String, Object>> params) { + Map<String, Object> resJsonData = new HashMap<>(); + + this.issueService.removeAllIssues(IssueForm.make(params.get(Constants.REQ_KEY_CONTENT))); + + return this.setSuccessMessage(resJsonData); + } + + // �븯�쐞�씠�뒋 �궘�젣 + /*@RequestMapping(value = "/issue/removeDown", produces = MediaType.APPLICATION_JSON_VALUE) + public + @ResponseBody + Map<String, Object> removesDown(@RequestBody Map<String, Map<String, Object>> params) { + Map<String, Object> resJsonData = new HashMap<>(); + + this.issueService.removeDownIssues(IssueForm.make(params.get(Constants.REQ_KEY_CONTENT))); + + return this.setSuccessMessage(resJsonData); + }*/ + // �씠�뒋 �떎以� �긽�깭 蹂�寃� @RequestMapping(value = "/issue/modifyMultiIssueStatus", produces = MediaType.APPLICATION_JSON_VALUE) public diff --git a/src/main/resources/mybatis/query-template/issue-template.xml b/src/main/resources/mybatis/query-template/issue-template.xml index 1ac0cbb..599bf68 100644 --- a/src/main/resources/mybatis/query-template/issue-template.xml +++ b/src/main/resources/mybatis/query-template/issue-template.xml @@ -15,6 +15,7 @@ issue.complete_date as completeDate, issue.issue_number as issueNumber, issue.register_date as registerDate, + issue.is_api as isApi, SUBSTRING(issue.modify_date, 1, 19) as modifyDate, project.id as projectId, project.name as projectName, diff --git a/src/main/webapp/bower_components/bootstrap-daterangepicker/daterangepicker.js b/src/main/webapp/bower_components/bootstrap-daterangepicker/daterangepicker.js index 764f07e..7d0f7cd 100644 --- a/src/main/webapp/bower_components/bootstrap-daterangepicker/daterangepicker.js +++ b/src/main/webapp/bower_components/bootstrap-daterangepicker/daterangepicker.js @@ -108,7 +108,7 @@ '<i class="fa fa-calendar glyphicon glyphicon-calendar"></i>' + '<div class="calendar-time">' + '<div></div>' + - '<i class="fa fa-clock-o glyphicon glyphicon-time"></i>' + + '<i class="fa fa-clock-o glyphicon glyphicon-time" style="position: relative; left:12.3rem; bottom: 1.23rem "></i>' + '</div>' + '</div>' + '<div class="calendar-table"></div>' + 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 136f3c5..beb4f8c 100644 --- a/src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js +++ b/src/main/webapp/custom_components/js-table/tableColumnGenerator.directive.js @@ -75,13 +75,9 @@ // �봽濡쒖젥�듃 �씠由�(�봽濡쒖젥�듃 由ъ뒪�듃�뿉�꽌 �궗�슜) case "PROJECT_NAME" : if ($rootScope.workProject != null && $rootScope.workProject.id == scope.data.id) { - // makeTag += "<span class='titlenameSelect cursor table-word-break-all sub-line' ng-click='event.changeLastProject(data.id)'>" + myToken + scope.data.name.replace(/</gi, '<') + "</span>"; - makeTag += "<span class='titlenameSelect cursor table-word-break-all sub-line' ng-click='event.moveIssue(data.id)'>" + myToken + scope.data.name.replace(/</gi, '<') + "</span>"; - // makeTag += "<span class='titlenameSelect cursor table-word-break-all sub-line' ng-click='event.changeDetailView(data.id)'>" + myToken + scope.data.name.replace(/</gi, '<') + "</span>"; + makeTag += "<span class='titlenameSelect cursor table-word-break-all sub-line' ng-click='event.changeLastProject(data.id)'>" + myToken + scope.data.name.replace(/</gi, '<') + "</span>"; } else { - // makeTag += "<span class='titlename cursor table-word-break-all sub-line' ng-click='event.changeLastProject(data.id)'>" + myToken + scope.data.name.replace(/</gi, '<') + "</span>"; - makeTag += "<span class='titlename cursor table-word-break-all sub-line' ng-click='event.moveIssue(data.id)'>" + myToken + scope.data.name.replace(/</gi, '<') + "</span>"; - // makeTag += "<span class='titlename cursor table-word-break-all sub-line' ng-click='event.changeDetailView(data.id)'>" + myToken + scope.data.name.replace(/</gi, '<') + "</span>"; + makeTag += "<span class='titlename cursor table-word-break-all sub-line' ng-click='event.changeLastProject(data.id)'>" + myToken + scope.data.name.replace(/</gi, '<') + "</span>"; } break; @@ -306,7 +302,6 @@ // �븯�쐞 �씠�뒋 �씠�룞(�젣紐�) case "ISSUE_DOWN_MOVE" : - makeTag += "<span class=\"titlename cursor\" ng-click=\"event.changeDetailView(data)\">" + scope.data.title + "</span></a>"; break; @@ -429,8 +424,8 @@ makeTag += '<span class="number-tag">' + scope.data.projectKey + ' - ' + scope.data.issueNumber + '</span>'; makeTag += ' <span class="tag"> / </span> '; makeTag += "<span class='badge' ng-style='{ \"background-color\" : \"" + scope.data.issueStatusColor + "\"," + "\"border-color\"" + " : \"" + scope.data.issueStatusColor + "\", \"color\": \"#FFFFFF\" }'>" + scope.data.issueStatusName + "</span>"; - // makeTag += ' <span class="tag"> / </span> '; - // makeTag += '<span class="tag">' + scope.data.projectName + '</span>'; + makeTag += '<span class="tag"> / </span> '; + makeTag += '<span class="tag">' +'<span>API: </span>' + scope.data.isApi + '</span>'; makeTag += '</div>'; makeTag += '<div class="titlename cursor text-left" ng-click="event.changeDetailView(data.id)">' + scope.data.title.replace(/</gi, '<') + '</div>'; makeTag += '<div class="extra-infodiv text-left">'; diff --git a/src/main/webapp/i18n/ko/global.json b/src/main/webapp/i18n/ko/global.json index ca941f2..af1d697 100644 --- a/src/main/webapp/i18n/ko/global.json +++ b/src/main/webapp/i18n/ko/global.json @@ -218,6 +218,8 @@ "settingTableDisplay": "�뀒�씠釉� �몴�떆 �꽕�젙", "deleteIssue": "�씠�뒋 �궘�젣", "wantToDeleteSelectIssue": "�꽑�깮�븳 �씠�뒋瑜� �궘�젣�븯寃좎뒿�땲源�? \n �궗�슜�옄媛� 吏곸젒 �궘�젣�븳 �씠�뒋�뒗 �뼱�뼚�븳 寃쎌슦�뿉�룄 蹂듦뎄媛� 遺덇��뒫�빀�땲�떎.", + "wantToDeleteOnlySelectIssue": "�꽑�깮�븳 �씠�뒋留� �궘�젣�븯寃좎뒿�땲源�? \n �궗�슜�옄媛� 吏곸젒 �궘�젣�븳 �씠�뒋�뒗 �뼱�뼚�븳 寃쎌슦�뿉�룄 蹂듦뎄媛� 遺덇��뒫�빀�땲�떎.", + "wantToDeleteSelectDownIssue": "�꽑�깮�븳 �씠�뒋�쓽 �븯�쐞 �씠�뒋媛� 議댁옱 �빀�땲�떎. \n �꽑�깮�븳 �씠�뒋�� �븯�쐞 �씠�뒋 紐⑤몢 �궘�젣�븯寃좎뒿�땲源�? \n �궗�슜�옄媛� 吏곸젒 �궘�젣�븳 �씠�뒋�뒗 �뼱�뼚�븳 寃쎌슦�뿉�룄 蹂듦뎄媛� 遺덇��뒫�빀�땲�떎.", "wantToDeleteSelectRelationIssue": "�꽑�깮�븳 �뿰愿� �씠�뒋瑜� �궘�젣�븯寃좎뒿�땲源�? \n �궗�슜�옄媛� 吏곸젒 �궘�젣�븳 �뿰愿� �씠�뒋�뒗 蹂듦뎄媛� 遺덇��뒫�빀�땲�떎.", "failedToSaveFieldConditions": "寃��깋 �븘�뱶 議곌굔 ���옣 �떎�뙣", "failedToGetSearchFieldCondition": "寃��깋 �븘�뱶 議곌굔 媛��졇�삤湲� �떎�뙣", @@ -783,6 +785,7 @@ "createIssue": "�씠�뒋 �깮�꽦", "updateIssue": "�씠�뒋 蹂�寃�", "deleteIssue": "�씠�뒋 �궘�젣", + "deleteDownIssue": "�븯�쐞 �씠�뒋 �궘�젣", "sendMailIssue": "�씠�뒋 硫붿씪 �쟾�넚", "updateTitle": "�젣紐⑹씠 蹂�寃쎈릺�뿀�뒿�땲�떎.", "updateContent": "�궡�슜�씠 蹂�寃쎈릺�뿀�뒿�땲�떎.", diff --git a/src/main/webapp/scripts/app/issue/issueDetail.controller.js b/src/main/webapp/scripts/app/issue/issueDetail.controller.js index 4c97ae7..0d1140c 100644 --- a/src/main/webapp/scripts/app/issue/issueDetail.controller.js +++ b/src/main/webapp/scripts/app/issue/issueDetail.controller.js @@ -50,6 +50,7 @@ $scope.fn.setDownTableConfigs = setDownTableConfigs; $scope.fn.containsPartner = containsPartner; $scope.fn.onActivate = onActivate; + $scope.fn.issueBack = issueBack; // �씠�뒋 紐⑸줉 而⑦듃濡ㅻ윭 vm, fn �긽�냽 以� $scope.vm.viewer = {}; @@ -125,6 +126,12 @@ //$rootScope.$broadcast("makeIssueSearch",issue); $scope.$parent.tableEvent.changeDetailView(issue.id); $scope.fn.onActivate(); + } + + // �긽�쐞 �씠�뒋 �겢由��떆 �긽�쐞 �씠�뒋濡� �씠�룞 + function issueBack() { + $rootScope.currentDetailIssueId = $scope.vm.viewer.parentIssueVo.id + $rootScope.$broadcast("getIssueDetail", {id: $rootScope.currentDetailIssueId}); } function onActivate() { @@ -656,7 +663,6 @@ // $scope.fn.getIssueDetail(); // }); - // todo �씠嫄� �삉 萸먯� $scope.$watch(function() { return $rootScope.currentDetailIssueId; }, function() { @@ -889,11 +895,7 @@ angular.forEach(result.data.data.issueDownVos, function (issueDownVo){ //$scope.vm.form.issuesDown.push(issueDownVo.issueDown); $scope.vm.form.issuesDown.push(issueDownVo); - // 媛꾪뿉�쟻�씤 �븯�쐞 �씠�뒋 媛깆떊 �삤瑜� 諛⑹� - // $scope.$on("getIssueDetail", function (event, args) { - // $scope.fn.getIssueDetail(); - // }); - + }); } $scope.vm.viewer.issueRelationVos = result.data.data.issueRelationVos; diff --git a/src/main/webapp/scripts/app/issue/issueList.controller.js b/src/main/webapp/scripts/app/issue/issueList.controller.js index 006dc38..c596f5d 100644 --- a/src/main/webapp/scripts/app/issue/issueList.controller.js +++ b/src/main/webapp/scripts/app/issue/issueList.controller.js @@ -689,6 +689,7 @@ function removes() { var removeIds = []; var removePermission = true; + var downIssueIds = false; angular.forEach($scope.vm.responseData.data, function (data) { if (data.checked && data.modifyPermissionCheck) { @@ -697,6 +698,10 @@ if (data.checked && !data.modifyPermissionCheck) { removePermission = false; + } + + if (data.downIssueAllCount > 0){ + downIssueIds = true; } }); @@ -719,25 +724,23 @@ return; } - // �궘�젣 �븣由� - SweetAlert.swal({ - title : $filter("translate")("issue.deleteIssue"), // �씠�뒋 �궘�젣 - text : $filter("translate")("issue.wantToDeleteSelectIssue"), // �꽑�깮�븳 �씠�뒋�쓣 �궘�젣�븯寃좎뒿�땲源�? �궘�젣�맂 �씠�뒋�� 蹂듦뎄�븷 �닔 �뾾�뒿�땲�떎. + if (downIssueIds) { + SweetAlert.swal({ + title : $filter("translate")("common.deleteIssue"), // �씠�뒋 �궘�젣 + text : $filter("translate")("issue.wantToDeleteSelectDownIssue"), // �븯�쐞 �씠�뒋媛� 議댁옱 �빀�땲�떎. �꽑�깮�븳 �씠�뒋�� �븯�쐞 �씠�뒋 紐⑤몢 �궘�젣�븯寃좎뒿�땲源�? �궘�젣�맂 �씠�뒋�뒗 蹂듦뎄�븷 �닔 �뾾�뒿�땲�떎. type : "warning", showCancelButton : true, confirmButtonColor : "#DD6B55", confirmButtonText : $filter("translate")("common.delete"), // �궘�젣 cancelButtonText : $filter("translate")("common.cancel"), // 痍⑥냼 closeOnConfirm : false, - closeOnCancel : true + closeOnCancel : false }, function (isConfirm) { - SweetAlert.close(); - - if (isConfirm) { + if (isConfirm) { //�씠�뒋 + �븯�쐞 �궘�젣 $rootScope.spinner = true; - Issue.remove($resourceProvider.getContent( + Issue.removeAllIssues($resourceProvider.getContent( { removeIds : removeIds }, $resourceProvider.getPageContent(0, 0))).then(function (result) { @@ -745,9 +748,7 @@ $timeout(function () { SweetAlert.success($filter("translate")("common.deleteSucceeded"), result.data.message.message); // �궘�젣 �꽦怨� }, 100); - $scope.fn.listView(); - $scope.fn.getPageList(0); } else { @@ -755,11 +756,96 @@ SweetAlert.error($filter("translate")("common.deleteFailed"), result.data.message.message); // �궘�젣 �떎�뙣 }, 100); } - $rootScope.spinner = false; }); + + } else {// �꽑�깮 �븳 �씠�뒋留� �궘�젣 + // �궘�젣 �븣由� + SweetAlert.swal({ + title : $filter("translate")("issue.deleteIssue"), // �씠�뒋 �궘�젣 + text : $filter("translate")("issue.wantToDeleteOnlySelectIssue"), // �꽑�깮�븳 �씠�뒋留� �궘�젣�븯寃좎뒿�땲源�? �궘�젣�맂 �씠�뒋�� 蹂듦뎄�븷 �닔 �뾾�뒿�땲�떎. + type : "warning", + showCancelButton : true, + confirmButtonColor : "#DD6B55", + confirmButtonText : $filter("translate")("common.delete"), // �궘�젣 + cancelButtonText : $filter("translate")("common.cancel"), // 痍⑥냼 + closeOnConfirm : false, + closeOnCancel : true + }, + function (isConfirm) { + SweetAlert.close(); + + if (isConfirm) { + $rootScope.spinner = true; + + Issue.remove($resourceProvider.getContent( + { removeIds : removeIds }, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + + if (result.data.message.status === "success") { + $timeout(function () { + SweetAlert.success($filter("translate")("common.deleteSucceeded"), result.data.message.message); // �궘�젣 �꽦怨� + }, 100); + + $scope.fn.listView(); + + $scope.fn.getPageList(0); + } + else { + $timeout(function () { + SweetAlert.error($filter("translate")("common.deleteFailed"), result.data.message.message); // �궘�젣 �떎�뙣 + }, 100); + } + + $rootScope.spinner = false; + }); + } + }); } }); + } else { + // �궘�젣 �븣由� + SweetAlert.swal({ + title : $filter("translate")("issue.deleteIssue"), // �씠�뒋 �궘�젣 + text : $filter("translate")("issue.wantToDeleteSelectIssue"), // �꽑�깮�븳 �씠�뒋�쓣 �궘�젣�븯寃좎뒿�땲源�? �궘�젣�맂 �씠�뒋�� 蹂듦뎄�븷 �닔 �뾾�뒿�땲�떎. + type : "warning", + showCancelButton : true, + confirmButtonColor : "#DD6B55", + confirmButtonText : $filter("translate")("common.delete"), // �궘�젣 + cancelButtonText : $filter("translate")("common.cancel"), // 痍⑥냼 + closeOnConfirm : false, + closeOnCancel : true + }, + function (isConfirm) { + SweetAlert.close(); + + if (isConfirm) { + $rootScope.spinner = true; + + Issue.remove($resourceProvider.getContent( + { removeIds : removeIds }, + $resourceProvider.getPageContent(0, 0))).then(function (result) { + + if (result.data.message.status === "success") { + $timeout(function () { + SweetAlert.success($filter("translate")("common.deleteSucceeded"), result.data.message.message); // �궘�젣 �꽦怨� + }, 100); + + $scope.fn.listView(); + + $scope.fn.getPageList(0); + } + else { + $timeout(function () { + SweetAlert.error($filter("translate")("common.deleteFailed"), result.data.message.message); // �궘�젣 �떎�뙣 + }, 100); + } + + $rootScope.spinner = false; + }); + } + }); + } } // �씠�뒋 紐⑸줉 �뀒�씠釉� �꽕�젙 diff --git a/src/main/webapp/scripts/app/project/projectList.controller.js b/src/main/webapp/scripts/app/project/projectList.controller.js index 9fb34d2..93e08bc 100644 --- a/src/main/webapp/scripts/app/project/projectList.controller.js +++ b/src/main/webapp/scripts/app/project/projectList.controller.js @@ -69,9 +69,7 @@ $scope.tableEvent = { modify : modify, projectCustomFieldConfig : projectCustomFieldConfig, - changeLastProject : changeLastProject, - moveIssue : moveIssue, - changeDetailView : changeDetailView + changeLastProject : changeLastProject }; angular.extend(this, $controller('autoCompleteController', {$scope : $scope, $injector : $injector})); @@ -363,22 +361,8 @@ } function changeLastProject(projectId) { - $rootScope.changeLastProject(projectId); - } - - function moveIssue(projectId) { - // $rootScope.currentDetailIssueId = null; - // �씠�뒋 踰덊샇瑜� ���옣�븳 �썑 �씠�뒋 紐⑸줉�쑝濡� �씠�룞�븳�떎. - // $rootScope.$broadcast("makeIssueSearch", {id :$rootScope.currentDetailIssueId}); - //$rootScope.$broadcast("makeIssueSearch", {id :$rootScope.issueTypeMenu.id}); - $rootScope.$broadcast("makeIssueSearch",projectId); - } - - function changeDetailView() { - // $rootScope.$broadcast("getIssueDetail", {id: $rootScope.currentDetailIssueId}); - //$scope.$broadcast("getIssueDetail", {id: $rootScope.currentDetailIssueId}); - // $rootScope.$broadcast("getIssueDetail", {id :$rootScope.currentDetailIssueId}); - //$rootScope.$broadcast("getIssueList", {id :$rootScope.issueTypeMenu.id}); + //$rootScope.changeLastProject(projectId); + $state.go("issues.list") } $scope.fn.makeTableConfigs(); diff --git a/src/main/webapp/scripts/components/issue/issue.service.js b/src/main/webapp/scripts/components/issue/issue.service.js index d606b2b..e4c3f90 100644 --- a/src/main/webapp/scripts/components/issue/issue.service.js +++ b/src/main/webapp/scripts/components/issue/issue.service.js @@ -92,6 +92,18 @@ return response; }); }, + removeAllIssues : function (conditions) { + return $http.post("issue/removeAll", conditions).then(function (response) { + $log.debug("�븯�쐞�씠�뒋 �궘�젣 寃곌낵 : ", response); + return response; + }); + }, + /*removeDownIssues : function (conditions) { + return $http.post("issue/removeDown", conditions).then(function (response) { + $log.debug("�븯�쐞�씠�뒋 �궘�젣 寃곌낵 : ", response); + return response; + }); + },*/ importExcel : function (conditions) { conditions.url = "issue/importExcel"; return $upload.upload(conditions).then(function (response) { diff --git a/src/main/webapp/scripts/components/utils/dateRangePicker.directive.js b/src/main/webapp/scripts/components/utils/dateRangePicker.directive.js index 7be0571..d6ea913 100644 --- a/src/main/webapp/scripts/components/utils/dateRangePicker.directive.js +++ b/src/main/webapp/scripts/components/utils/dateRangePicker.directive.js @@ -77,7 +77,8 @@ }); } else if ($attrs["rangeType"] === "singleDate") { $($element).daterangepicker({ - timePicker: false, + timePicker: true, + timePickerSeconds : true, autoUpdateInput: true, autoApply : true, singleDatePicker : true, @@ -85,7 +86,7 @@ //parentEl : $scope.parentEl !== undefined ? $scope.parentEl : "", locale: { - format: 'YYYY-MM-DD', + format: 'YYYY-MM-DD/hh-mm-ss A', applyLabel: options.applyLabel, cancelLabel: options.cancelLabel, daysOfWeek: options.daysOfWeek, diff --git a/src/main/webapp/views/issue/issueDetail.html b/src/main/webapp/views/issue/issueDetail.html index 538bf7a..27e2501 100644 --- a/src/main/webapp/views/issue/issueDetail.html +++ b/src/main/webapp/views/issue/issueDetail.html @@ -87,7 +87,7 @@ <div class="support-ticket-content-w" ng-controller="issueDetailController"> <div class="support-ticket-content"> <span ng-if="vm.viewer.parentIssueVo != null" class="badge" ng-style="{'background-color' : '#353535', 'border-color' : vm.viewer.issueStatusVo.color, 'color' : '#FFFFFF' }"> - <span>�긽�쐞 �씠�뒋:{{vm.viewer.parentIssueVo.title}}</span> + <span class="cursor" ng-click="fn.issueBack()">�긽�쐞 �씠�뒋:{{vm.viewer.parentIssueVo.title}}</span> </span> <div class=""> @@ -97,7 +97,7 @@ <span class="ticket-header"> <div class="tasks-header-w"> <span class="tags"> - <span class="tag">{{vm.viewer.projectVo.projectKey}}-{{vm.viewer.issueNumber}} / {{vm.viewer.projectVo.name}}</span> + <span class="tag">{{vm.viewer.projectVo.projectKey}}-{{vm.viewer.issueNumber}} / {{vm.viewer.projectVo.name}} / <span>API : {{vm.viewer.isApi}}</span></span> </span> </div> </span> diff --git a/src/main/webapp/views/login/login.html b/src/main/webapp/views/login/login.html index 14b673e..aadedea 100644 --- a/src/main/webapp/views/login/login.html +++ b/src/main/webapp/views/login/login.html @@ -1,23 +1,24 @@ <div class="content-i"> <div class="content-box"> - <div class="row mt-30"> + <div class="row mt-30" style="margin-right: 32rem"> <div class="m-0"> <div class="flex"> <div class="loginbackdiv"> - <div class="loginback"> - <img src="/assets/images/logo-kisa-vertical.png"/> - <div class="stardiv"> - <!-- <div class="stars"></div> - <div class="twinkling"></div> - </div> - <div class="bgdiv"> - </div> - <div class="login-circle"> - <div class="circle1"></div> - <div class="circle2"></div> - <div class="circle3"></div>--> - </div> - </div> +<!-- <div class="loginback">--> +<!-- <img src="/assets/images/logo-kisa-vertical.png"/>--> +<!-- <div class="stardiv">--> +<!-- <div class="stars"></div>--> +<!-- <div class="twinkling"></div>--> +<!-- </div>--> +<!-- <div class="bgdiv">--> +<!-- </div>--> +<!-- <div class="login-circle">--> +<!-- <div class="circle1"></div>--> +<!-- <div class="circle2"></div>--> +<!-- <div class="circle3"></div>--> +<!-- </div>--> +<!-- </div>--> +<!-- </div>--> </div> <div class="logincont"> <div class="auth-box-w"> @@ -131,7 +132,7 @@ </div> --> <div class="footer-s" > - <small>CopyRight WISESTONE All rights reserved.</small> + <small style="margin-left: 8.8rem">CopyRight WISESTONE All rights reserved.</small> </div> </div> </div> -- Gitblit v1.8.0