From 1a751091b399f9d2ee0a3fa40eb07453c72a59fe Mon Sep 17 00:00:00 2001 From: zhangjidi2016 <1017543663@qq.com> Date: Thu, 19 Aug 2021 12:29:16 +0800 Subject: [PATCH] [ISSUE #5]Different pages are displayed based on the user role. (#7) * [ISSUE #5]Different pages are displayed based on the user role. * Put the role judgment logic into js Co-authored-by: zhangjidi --- .../dashboard/controller/LoginController.java | 12 +- .../rocketmq/dashboard/model/LoginResult.java | 36 +++ src/main/resources/static/src/consumer.js | 190 +++++++------- src/main/resources/static/src/i18n/en.js | 3 + src/main/resources/static/src/i18n/zh.js | 3 + src/main/resources/static/src/login.js | 27 +- src/main/resources/static/src/message.js | 87 ++++--- src/main/resources/static/src/ops.js | 18 +- src/main/resources/static/src/topic.js | 241 +++++++++--------- .../resources/static/view/pages/consumer.html | 72 +++--- .../resources/static/view/pages/message.html | 13 +- src/main/resources/static/view/pages/ops.html | 21 +- .../resources/static/view/pages/topic.html | 21 +- .../controller/LoginControllerTest.java | 2 +- 14 files changed, 413 insertions(+), 333 deletions(-) create mode 100644 src/main/java/org/apache/rocketmq/dashboard/model/LoginResult.java diff --git a/src/main/java/org/apache/rocketmq/dashboard/controller/LoginController.java b/src/main/java/org/apache/rocketmq/dashboard/controller/LoginController.java index be92456..916d68e 100644 --- a/src/main/java/org/apache/rocketmq/dashboard/controller/LoginController.java +++ b/src/main/java/org/apache/rocketmq/dashboard/controller/LoginController.java @@ -19,6 +19,7 @@ package org.apache.rocketmq.dashboard.controller; import org.apache.rocketmq.dashboard.config.RMQConfigure; import org.apache.rocketmq.dashboard.model.LoginInfo; +import org.apache.rocketmq.dashboard.model.LoginResult; import org.apache.rocketmq.dashboard.model.User; import org.apache.rocketmq.dashboard.model.UserInfo; import org.apache.rocketmq.dashboard.service.UserService; @@ -65,10 +66,10 @@ public class LoginController { @RequestMapping(value = "/login.do", method = RequestMethod.POST) @ResponseBody - public JsonResult login(@RequestParam("username") String username, - @RequestParam(value = "password") String password, - HttpServletRequest request, - HttpServletResponse response) throws Exception { + public Object login(@RequestParam("username") String username, + @RequestParam(value = "password") String password, + HttpServletRequest request, + HttpServletResponse response) throws Exception { logger.info("user:{} login", username); User user = userService.queryByUsernameAndPassword(username, password); @@ -80,7 +81,8 @@ public class LoginController { WebUtil.setSessionValue(request, WebUtil.USER_INFO, userInfo); WebUtil.setSessionValue(request, WebUtil.USER_NAME, username); userInfo.setSessionId(WebUtil.getSessionId(request)); - return new JsonResult<>(contextPath); + LoginResult result = new LoginResult(username, user.getType(), contextPath); + return result; } } diff --git a/src/main/java/org/apache/rocketmq/dashboard/model/LoginResult.java b/src/main/java/org/apache/rocketmq/dashboard/model/LoginResult.java new file mode 100644 index 0000000..96769de --- /dev/null +++ b/src/main/java/org/apache/rocketmq/dashboard/model/LoginResult.java @@ -0,0 +1,36 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.rocketmq.dashboard.model; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class LoginResult { + + private String loginUserName; + + /** + * 0: normal 1: admin + */ + private int loginUserRole; + + private String contextPath; +} \ No newline at end of file diff --git a/src/main/resources/static/src/consumer.js b/src/main/resources/static/src/consumer.js index fef1f43..0059192 100644 --- a/src/main/resources/static/src/consumer.js +++ b/src/main/resources/static/src/consumer.js @@ -17,7 +17,7 @@ var module = app; -module.controller('consumerController', ['$scope', 'ngDialog', '$http','Notification',function ($scope, ngDialog, $http,Notification) { +module.controller('consumerController', ['$scope', 'ngDialog', '$http', 'Notification', '$window', function ($scope, ngDialog, $http, Notification, $window) { $scope.paginationConf = { currentPage: 1, totalItems: 0, @@ -26,34 +26,44 @@ module.controller('consumerController', ['$scope', 'ngDialog', '$http','Notifica perPageOptions: [10], rememberPerPage: 'perPageItems', onChange: function () { - $scope.showConsumerGroupList(this.currentPage,this.totalItems); + $scope.showConsumerGroupList(this.currentPage, this.totalItems); } }; $scope.sortKey = null; - $scope.sortOrder=1; + $scope.sortOrder = 1; $scope.intervalProcessSwitch = false; $scope.intervalProcess = null; $scope.allConsumerGrouopList = []; $scope.consumerGroupShowList = []; $scope.sortByKey = function (key) { - $scope.paginationConf.currentPage=1; + $scope.paginationConf.currentPage = 1; $scope.sortOrder = -$scope.sortOrder; $scope.sortKey = key; $scope.doSort(); }; + $scope.userRole = $window.sessionStorage.getItem("userrole"); + $scope.writeOperationEnabled = $scope.userRole == null ? true : ($scope.userRole == 1 ? true : false); - $scope.doSort = function (){// todo how to change this fe's code ? (it's dirty) - if($scope.sortKey == 'diffTotal'){ - $scope.allConsumerGrouopList.sort(function(a,b) {return (a.diffTotal > b.diffTotal) ? $scope.sortOrder : ((b.diffTotal > a.diffTotal) ? -$scope.sortOrder : 0);} ); + $scope.doSort = function () {// todo how to change this fe's code ? (it's dirty) + if ($scope.sortKey == 'diffTotal') { + $scope.allConsumerGrouopList.sort(function (a, b) { + return (a.diffTotal > b.diffTotal) ? $scope.sortOrder : ((b.diffTotal > a.diffTotal) ? -$scope.sortOrder : 0); + }); } - if($scope.sortKey == 'group'){ - $scope.allConsumerGrouopList.sort(function(a,b) {return (a.group > b.group) ? $scope.sortOrder : ((b.group > a.group) ? -$scope.sortOrder : 0);} ); + if ($scope.sortKey == 'group') { + $scope.allConsumerGrouopList.sort(function (a, b) { + return (a.group > b.group) ? $scope.sortOrder : ((b.group > a.group) ? -$scope.sortOrder : 0); + }); } - if($scope.sortKey == 'count'){ - $scope.allConsumerGrouopList.sort(function(a,b) {return (a.count > b.count) ? $scope.sortOrder : ((b.count > a.count) ? -$scope.sortOrder : 0);} ); + if ($scope.sortKey == 'count') { + $scope.allConsumerGrouopList.sort(function (a, b) { + return (a.count > b.count) ? $scope.sortOrder : ((b.count > a.count) ? -$scope.sortOrder : 0); + }); } - if($scope.sortKey == 'consumeTps'){ - $scope.allConsumerGrouopList.sort(function(a,b) {return (a.consumeTps > b.consumeTps) ? $scope.sortOrder : ((b.consumeTps > a.consumeTps) ? -$scope.sortOrder : 0);} ); + if ($scope.sortKey == 'consumeTps') { + $scope.allConsumerGrouopList.sort(function (a, b) { + return (a.consumeTps > b.consumeTps) ? $scope.sortOrder : ((b.consumeTps > a.consumeTps) ? -$scope.sortOrder : 0); + }); } $scope.filterList($scope.paginationConf.currentPage) }; @@ -65,31 +75,31 @@ module.controller('consumerController', ['$scope', 'ngDialog', '$http','Notifica method: "GET", url: "consumer/groupList.query" }).success(function (resp) { - if(resp.status ==0){ + if (resp.status == 0) { $scope.allConsumerGrouopList = resp.data; console.log($scope.allConsumerGrouopList); console.log(JSON.stringify(resp)); - $scope.showConsumerGroupList($scope.paginationConf.currentPage,$scope.allConsumerGrouopList.length); + $scope.showConsumerGroupList($scope.paginationConf.currentPage, $scope.allConsumerGrouopList.length); //Hide loader $('#loaderConsumer').addClass("hide-myloader"); - }else { + } else { Notification.error({message: resp.errMsg, delay: 2000}); } }); }; - $scope.monitor = function(consumerGroupName){ + $scope.monitor = function (consumerGroupName) { $http({ method: "GET", url: "monitor/consumerMonitorConfigByGroupName.query", - params:{consumeGroupName:consumerGroupName} + params: {consumeGroupName: consumerGroupName} }).success(function (resp) { // if(resp.status ==0){ - ngDialog.open({ - template: 'consumerMonitorDialog', - controller: 'consumerMonitorDialogController', - data:{consumerGroupName:consumerGroupName,data:resp.data} - }); + ngDialog.open({ + template: 'consumerMonitorDialog', + controller: 'consumerMonitorDialogController', + data: {consumerGroupName: consumerGroupName, data: resp.data} + }); // }else { // Notification.error({message: resp.errMsg, delay: 2000}); // } @@ -109,35 +119,35 @@ module.controller('consumerController', ['$scope', 'ngDialog', '$http','Notifica $scope.refreshConsumerData(); - $scope.filterStr=""; - $scope.$watch('filterStr', function() { - $scope.paginationConf.currentPage=1; + $scope.filterStr = ""; + $scope.$watch('filterStr', function () { + $scope.paginationConf.currentPage = 1; $scope.filterList(1) }); $scope.filterList = function (currentPage) { - var lowExceptStr = $scope.filterStr.toLowerCase(); + var lowExceptStr = $scope.filterStr.toLowerCase(); var canShowList = []; - $scope.allConsumerGrouopList.forEach(function(element) { + $scope.allConsumerGrouopList.forEach(function (element) { console.log(element) - if (element.group.toLowerCase().indexOf(lowExceptStr) != -1){ + if (element.group.toLowerCase().indexOf(lowExceptStr) != -1) { canShowList.push(element); } }); - $scope.paginationConf.totalItems =canShowList.length; + $scope.paginationConf.totalItems = canShowList.length; var perPage = $scope.paginationConf.itemsPerPage; var from = (currentPage - 1) * perPage; - var to = (from + perPage)>canShowList.length?canShowList.length:from + perPage; + var to = (from + perPage) > canShowList.length ? canShowList.length : from + perPage; $scope.consumerGroupShowList = canShowList.slice(from, to); }; - $scope.showConsumerGroupList = function (currentPage,totalItem) { + $scope.showConsumerGroupList = function (currentPage, totalItem) { var perPage = $scope.paginationConf.itemsPerPage; var from = (currentPage - 1) * perPage; - var to = (from + perPage)>totalItem?totalItem:from + perPage; + var to = (from + perPage) > totalItem ? totalItem : from + perPage; $scope.consumerGroupShowList = $scope.allConsumerGrouopList.slice(from, to); - $scope.paginationConf.totalItems = totalItem ; + $scope.paginationConf.totalItems = totalItem; console.log($scope.consumerGroupShowList) console.log($scope.paginationConf.totalItems) $scope.doSort() @@ -145,9 +155,9 @@ module.controller('consumerController', ['$scope', 'ngDialog', '$http','Notifica $scope.openAddDialog = function () { $scope.openCreateOrUpdateDialog(null); }; - $scope.openCreateOrUpdateDialog = function(request){ + $scope.openCreateOrUpdateDialog = function (request) { var bIsUpdate = true; - if(request == null){ + if (request == null) { request = [{ brokerNameList: [], subscriptionGroupConfig: { @@ -168,123 +178,126 @@ module.controller('consumerController', ['$scope', 'ngDialog', '$http','Notifica method: "GET", url: "cluster/list.query" }).success(function (resp) { - if(resp.status ==0){ + if (resp.status == 0) { console.log(resp); ngDialog.open({ - preCloseCallback: function(value) { + preCloseCallback: function (value) { // Refresh topic list $scope.refreshConsumerData(); }, template: 'consumerModifyDialog', controller: 'consumerModifyDialogController', - data:{ - consumerRequestList:request, - allClusterNameList:Object.keys(resp.data.clusterInfo.clusterAddrTable), - allBrokerNameList:Object.keys(resp.data.brokerServer), - bIsUpdate:bIsUpdate + data: { + consumerRequestList: request, + allClusterNameList: Object.keys(resp.data.clusterInfo.clusterAddrTable), + allBrokerNameList: Object.keys(resp.data.brokerServer), + bIsUpdate: bIsUpdate, + writeOperationEnabled: $scope.writeOperationEnabled } }); - }else { + } else { Notification.error({message: resp.errMsg, delay: 2000}); } }); }; - $scope.detail = function(consumerGroupName){ + $scope.detail = function (consumerGroupName) { $http({ method: "GET", url: "consumer/queryTopicByConsumer.query", - params:{consumerGroup:consumerGroupName} + params: {consumerGroup: consumerGroupName} }).success(function (resp) { - if(resp.status ==0){ + if (resp.status == 0) { console.log(resp); ngDialog.open({ template: 'consumerTopicViewDialog', controller: 'consumerTopicViewDialogController', - data:{consumerGroupName:consumerGroupName,data:resp.data} + data: {consumerGroupName: consumerGroupName, data: resp.data} }); - }else { + } else { Notification.error({message: resp.errMsg, delay: 2000}); } }); }; - $scope.client = function(consumerGroupName){ + $scope.client = function (consumerGroupName) { $http({ method: "GET", url: "consumer/consumerConnection.query", - params:{consumerGroup:consumerGroupName} + params: {consumerGroup: consumerGroupName} }).success(function (resp) { - if(resp.status ==0){ + if (resp.status == 0) { console.log(resp); ngDialog.open({ template: 'clientInfoDialog', // controller: 'addTopicDialogController', - data:{data:resp.data,consumerGroupName:consumerGroupName} + data: {data: resp.data, consumerGroupName: consumerGroupName} }); - }else { + } else { Notification.error({message: resp.errMsg, delay: 2000}); } }); }; - $scope.updateConfigDialog = function(consumerGroupName){ + $scope.updateConfigDialog = function (consumerGroupName) { $http({ method: "GET", url: "consumer/examineSubscriptionGroupConfig.query", - params:{consumerGroup:consumerGroupName} + params: {consumerGroup: consumerGroupName} }).success(function (resp) { - if(resp.status ==0){ + if (resp.status == 0) { console.log(resp); $scope.openCreateOrUpdateDialog(resp.data); - }else { + } else { Notification.error({message: resp.errMsg, delay: 2000}); } }); }; - $scope.delete = function(consumerGroupName){ + $scope.delete = function (consumerGroupName) { $http({ method: "GET", url: "consumer/fetchBrokerNameList.query", - params:{ - consumerGroup:consumerGroupName + params: { + consumerGroup: consumerGroupName } }).success(function (resp) { - if(resp.status ==0){ + if (resp.status == 0) { console.log(resp); ngDialog.open({ - preCloseCallback: function(value) { + preCloseCallback: function (value) { // Refresh topic list $scope.refreshConsumerData(); }, template: 'deleteConsumerDialog', controller: 'deleteConsumerDialogController', - data:{ + data: { // allClusterList:Object.keys(resp.data.clusterInfo.clusterAddrTable), - allBrokerNameList:resp.data, - consumerGroupName:consumerGroupName + allBrokerNameList: resp.data, + consumerGroupName: consumerGroupName } }); - }else { + } else { Notification.error({message: resp.errMsg, delay: 2000}); } }); } }]) -module.controller('consumerMonitorDialogController', function ($scope, ngDialog, $http,Notification) { +module.controller('consumerMonitorDialogController', function ($scope, ngDialog, $http, Notification) { $scope.createOrUpdateConsumerMonitor = function () { $http({ method: "POST", url: "monitor/createOrUpdateConsumerMonitor.do", - params:{consumeGroupName:$scope.ngDialogData.consumerGroupName, - minCount:$scope.ngDialogData.data.minCount, - maxDiffTotal:$scope.ngDialogData.data.maxDiffTotal} + params: { + consumeGroupName: $scope.ngDialogData.consumerGroupName, + minCount: $scope.ngDialogData.data.minCount, + maxDiffTotal: $scope.ngDialogData.data.maxDiffTotal + } }).success(function (resp) { - if(resp.status ==0){ + if (resp.status == 0) { Notification.info({message: "update success!", delay: 2000}); - }else { + } else { Notification.error({message: resp.errMsg, delay: 2000}); } }); @@ -293,7 +306,7 @@ module.controller('consumerMonitorDialogController', function ($scope, ngDialog, ); -module.controller('deleteConsumerDialogController', ['$scope', 'ngDialog', '$http','Notification',function ($scope, ngDialog, $http,Notification) { +module.controller('deleteConsumerDialogController', ['$scope', 'ngDialog', '$http', 'Notification', function ($scope, ngDialog, $http, Notification) { $scope.selectedClusterList = []; $scope.selectedBrokerNameList = []; $scope.delete = function () { @@ -303,13 +316,15 @@ module.controller('deleteConsumerDialogController', ['$scope', 'ngDialog', '$htt $http({ method: "POST", url: "consumer/deleteSubGroup.do", - data:{groupName:$scope.ngDialogData.consumerGroupName, - brokerNameList:$scope.selectedBrokerNameList} + data: { + groupName: $scope.ngDialogData.consumerGroupName, + brokerNameList: $scope.selectedBrokerNameList + } }).success(function (resp) { - if(resp.status ==0){ + if (resp.status == 0) { Notification.info({message: "delete success!", delay: 2000}); ngDialog.close(this); - }else { + } else { Notification.error({message: resp.errMsg, delay: 2000}); } }); @@ -317,19 +332,19 @@ module.controller('deleteConsumerDialogController', ['$scope', 'ngDialog', '$htt }] ); -module.controller('consumerModifyDialogController', ['$scope', 'ngDialog', '$http','Notification',function ($scope, ngDialog, $http,Notification) { +module.controller('consumerModifyDialogController', ['$scope', 'ngDialog', '$http', 'Notification', function ($scope, ngDialog, $http, Notification) { $scope.postConsumerRequest = function (consumerRequest) { var request = JSON.parse(JSON.stringify(consumerRequest)); console.log(request); $http({ method: "POST", url: "consumer/createOrUpdate.do", - data:request + data: request }).success(function (resp) { - if(resp.status ==0){ + if (resp.status == 0) { Notification.info({message: "update success!", delay: 2000}); ngDialog.close(this); - }else { + } else { Notification.error({message: resp.errMsg, delay: 2000}); } }); @@ -351,8 +366,10 @@ module.controller('consumerTopicViewDialogController', ['$scope', 'ngDialog', '$ if (resp.status == 0) { ngDialog.open({ template: 'consumerClientDialog', - data:{consumerClientInfo:resp.data, - clientId:clientId} + data: { + consumerClientInfo: resp.data, + clientId: clientId + } }); } else { Notification.error({message: resp.errMsg, delay: 2000}); @@ -360,7 +377,4 @@ module.controller('consumerTopicViewDialogController', ['$scope', 'ngDialog', '$ }); }; }] -); - - - +); \ No newline at end of file diff --git a/src/main/resources/static/src/i18n/en.js b/src/main/resources/static/src/i18n/en.js index ea98267..52a10b5 100644 --- a/src/main/resources/static/src/i18n/en.js +++ b/src/main/resources/static/src/i18n/en.js @@ -20,6 +20,9 @@ var en = { "CONSUMER":"Consumer", "PRODUCER":"Producer", "MESSAGE":"Message", + "MESSAGE_DETAIL":"Message Detail", + "RESEND_MESSAGE":"Resend Message", + "VIEW_EXCEPTION":"View Exception", "MESSAGETRACE":"MessageTrace", "COMMIT": "Commit", "OPERATION": "Operation", diff --git a/src/main/resources/static/src/i18n/zh.js b/src/main/resources/static/src/i18n/zh.js index 8286054..5aa9c46 100644 --- a/src/main/resources/static/src/i18n/zh.js +++ b/src/main/resources/static/src/i18n/zh.js @@ -21,6 +21,9 @@ var zh = { "CONSUMER":"消费者", "PRODUCER":"生产者", "MESSAGE":"消息", + "MESSAGE_DETAIL":"消息详情", + "RESEND_MESSAGE":"重新消费", + "VIEW_EXCEPTION":"查看异常", "MESSAGETRACE":"消息轨迹", "OPERATION": "操作", "ADD": "新增", diff --git a/src/main/resources/static/src/login.js b/src/main/resources/static/src/login.js index cd7e56c..5a5cbe3 100644 --- a/src/main/resources/static/src/login.js +++ b/src/main/resources/static/src/login.js @@ -15,28 +15,29 @@ * limitations under the License. */ -app.controller('loginController', ['$scope','$location','$http','Notification','$cookies','$window', function ($scope,$location,$http,Notification,$cookies, $window) { +app.controller('loginController', ['$scope', '$location', '$http', 'Notification', '$cookies', '$window', function ($scope, $location, $http, Notification, $cookies, $window) { $scope.login = function () { - if(!$("#username").val()) { - alert("用户名不能为空"); - return; - } - if(!$("#password").val()) { - alert("密码不能为空"); - return; - } + if (!$("#username").val()) { + alert("用户名不能为空"); + return; + } + if (!$("#password").val()) { + alert("密码不能为空"); + return; + } $http({ method: "POST", url: "login/login.do", - params:{username:$("#username").val(), password:$("#password").val()} + params: {username: $("#username").val(), password: $("#password").val()} }).success(function (resp) { if (resp.status == 0) { Notification.info({message: 'Login successful, redirect now', delay: 2000}); - $window.sessionStorage.setItem("username", $("#username").val()); - window.location = resp.data; + $window.sessionStorage.setItem("username", resp.data.loginUserName); + $window.sessionStorage.setItem("userrole", resp.data.loginUserRole); + window.location = resp.data.contextPath; initFlag = false; - } else{ + } else { Notification.error({message: resp.errMsg, delay: 2000}); } }); diff --git a/src/main/resources/static/src/message.js b/src/main/resources/static/src/message.js index d2de6d9..18f88c2 100644 --- a/src/main/resources/static/src/message.js +++ b/src/main/resources/static/src/message.js @@ -17,14 +17,14 @@ var module = app; -module.controller('messageController', ['$scope', 'ngDialog', '$http','Notification',function ($scope, ngDialog, $http,Notification) { +module.controller('messageController', ['$scope', 'ngDialog', '$http', 'Notification', function ($scope, ngDialog, $http, Notification) { $scope.allTopicList = []; - $scope.selectedTopic =[]; - $scope.key =""; - $scope.messageId =""; - $scope.queryMessageByTopicResult=[]; - $scope.queryMessageByTopicAndKeyResult=[]; - $scope.queryMessageByMessageIdResult={}; + $scope.selectedTopic = []; + $scope.key = ""; + $scope.messageId = ""; + $scope.queryMessageByTopicResult = []; + $scope.queryMessageByTopicAndKeyResult = []; + $scope.queryMessageByMessageIdResult = {}; $http({ method: "GET", url: "topic/list.query", @@ -32,16 +32,16 @@ module.controller('messageController', ['$scope', 'ngDialog', '$http','Notificat skipSysProcess: 'true' } }).success(function (resp) { - if(resp.status ==0){ + if (resp.status == 0) { $scope.allTopicList = resp.data.topicList.sort(); console.log($scope.allTopicList); - }else { + } else { Notification.error({message: resp.errMsg, delay: 2000}); } }); - $scope.timepickerBegin = moment().subtract(1, 'hour').format('YYYY-MM-DD HH:mm'); - $scope.timepickerEnd = moment().add(1,'hour').format('YYYY-MM-DD HH:mm'); - $scope.timepickerOptions ={format: 'YYYY-MM-DD HH:mm', showClear: true}; + $scope.timepickerBegin = moment().subtract(3, 'hour').format('YYYY-MM-DD HH:mm'); + $scope.timepickerEnd = moment().format('YYYY-MM-DD HH:mm'); + $scope.timepickerOptions = {format: 'YYYY-MM-DD HH:mm', showClear: true}; $scope.taskId = ""; @@ -62,7 +62,7 @@ module.controller('messageController', ['$scope', 'ngDialog', '$http','Notificat Notification.error({message: "endTime is later than beginTime!", delay: 2000}); return } - if( $scope.selectedTopic === [] || (typeof $scope.selectedTopic) == "object"){ + if ($scope.selectedTopic === [] || (typeof $scope.selectedTopic) == "object") { return } $http({ @@ -80,13 +80,13 @@ module.controller('messageController', ['$scope', 'ngDialog', '$http','Notificat if (resp.status === 0) { console.log(resp); $scope.messageShowList = resp.data.page.content; - if(resp.data.page.first){ + if (resp.data.page.first) { $scope.paginationConf.currentPage = 1; } $scope.paginationConf.currentPage = resp.data.page.number + 1; $scope.paginationConf.totalItems = resp.data.page.totalElements; $scope.taskId = resp.data.taskId - }else { + } else { Notification.error({message: resp.errMsg, delay: 2000}); } }); @@ -114,10 +114,10 @@ module.controller('messageController', ['$scope', 'ngDialog', '$http','Notificat if (resp.status == 0) { console.log(resp); $scope.queryMessageByTopicResult = resp.data; - $scope.changeShowMessageList(1,$scope.queryMessageByTopicResult.length); + $scope.changeShowMessageList(1, $scope.queryMessageByTopicResult.length); // todo // console.log($scope.queryMessageByTopicResult); - }else { + } else { Notification.error({message: resp.errMsg, delay: 2000}); } }); @@ -131,26 +131,26 @@ module.controller('messageController', ['$scope', 'ngDialog', '$http','Notificat url: "message/queryMessageByTopicAndKey.query", params: { topic: $scope.selectedTopic, - key:$scope.key + key: $scope.key } }).success(function (resp) { if (resp.status == 0) { console.log(resp); $scope.queryMessageByTopicAndKeyResult = resp.data; console.log($scope.queryMessageByTopicAndKeyResult); - }else { + } else { Notification.error({message: resp.errMsg, delay: 2000}); } }); }; - $scope.queryMessageByBrokerAndOffset = function (storeHost,commitLogOffset) { + $scope.queryMessageByBrokerAndOffset = function (storeHost, commitLogOffset) { $http({ method: "GET", url: "message/viewMessageByBrokerAndOffset.query", params: { brokerHost: storeHost.address, - port:storeHost.port, + port: storeHost.port, offset: commitLogOffset } }).success(function (resp) { @@ -167,13 +167,13 @@ module.controller('messageController', ['$scope', 'ngDialog', '$http','Notificat }); }; - $scope.queryMessageByMessageId = function (messageId,topic) { + $scope.queryMessageByMessageId = function (messageId, topic) { $http({ method: "GET", url: "message/viewMessage.query", params: { msgId: messageId, - topic:topic + topic: topic } }).success(function (resp) { if (resp.status == 0) { @@ -181,23 +181,23 @@ module.controller('messageController', ['$scope', 'ngDialog', '$http','Notificat ngDialog.open({ template: 'messageDetailViewDialog', controller: 'messageDetailViewDialogController', - data:resp.data + data: resp.data }); - }else { + } else { Notification.error({message: resp.errMsg, delay: 2000}); } }); }; - $scope.changeShowMessageList = function (currentPage,totalItem) { + $scope.changeShowMessageList = function (currentPage, totalItem) { var perPage = $scope.paginationConf.itemsPerPage; var from = (currentPage - 1) * perPage; - var to = (from + perPage)>totalItem?totalItem:from + perPage; + var to = (from + perPage) > totalItem ? totalItem : from + perPage; $scope.messageShowList = $scope.queryMessageByTopicResult.slice(from, to); - $scope.paginationConf.totalItems = totalItem ; + $scope.paginationConf.totalItems = totalItem; }; - $scope.onChangeQueryCondition = function (){ + $scope.onChangeQueryCondition = function () { console.log("change") $scope.taskId = ""; $scope.paginationConf.currentPage = 1; @@ -205,12 +205,12 @@ module.controller('messageController', ['$scope', 'ngDialog', '$http','Notificat } }]); -module.controller('messageDetailViewDialogController',['$scope', 'ngDialog', '$http','Notification', function ($scope, ngDialog, $http,Notification) { +module.controller('messageDetailViewDialogController', ['$scope', 'ngDialog', '$http', 'Notification', function ($scope, ngDialog, $http, Notification) { - $scope.resendMessage = function (messageView,consumerGroup) { + $scope.resendMessage = function (messageView, consumerGroup) { var topic = messageView.topic; var msgId = messageView.msgId; - console.log('==='+topic+'==='+msgId); + console.log('===' + topic + '===' + msgId); if (topic.startsWith('%DLQ%')) { if (messageView.properties.hasOwnProperty("RETRY_TOPIC")) { topic = messageView.properties.RETRY_TOPIC; @@ -220,42 +220,41 @@ module.controller('messageDetailViewDialogController',['$scope', 'ngDialog', '$h } } - console.log('==='+topic+'==='+msgId); + console.log('===' + topic + '===' + msgId); $http({ method: "POST", url: "message/consumeMessageDirectly.do", params: { msgId: msgId, - consumerGroup:consumerGroup, - topic:topic + consumerGroup: consumerGroup, + topic: topic } }).success(function (resp) { if (resp.status == 0) { ngDialog.open({ template: 'operationResultDialog', - data:{ - result:resp.data + data: { + result: resp.data } }); - } - else { + } else { ngDialog.open({ template: 'operationResultDialog', - data:{ - result:resp.errMsg + data: { + result: resp.errMsg } }); } }); }; $scope.showExceptionDesc = function (errmsg) { - if(errmsg == null){ + if (errmsg == null) { errmsg = "Don't have Exception" } ngDialog.open({ template: 'operationResultDialog', - data:{ - result:errmsg + data: { + result: errmsg } }); }; diff --git a/src/main/resources/static/src/ops.js b/src/main/resources/static/src/ops.js index e4fb60c..8338b06 100644 --- a/src/main/resources/static/src/ops.js +++ b/src/main/resources/static/src/ops.js @@ -15,10 +15,12 @@ * limitations under the License. */ -app.controller('opsController', ['$scope','$location','$http','Notification','remoteApi','tools', function ($scope,$location,$http,Notification,remoteApi,tools) { +app.controller('opsController', ['$scope', '$location', '$http', 'Notification', 'remoteApi', 'tools', '$window', function ($scope, $location, $http, Notification, remoteApi, tools, $window) { $scope.namesvrAddrList = ""; $scope.useVIPChannel = true; $scope.useTLS = false; + $scope.userRole = $window.sessionStorage.getItem("userrole"); + $scope.writeOperationEnabled = $scope.userRole == null ? true : ($scope.userRole == 1 ? true : false); $http({ method: "GET", url: "ops/homePage.query" @@ -27,7 +29,7 @@ app.controller('opsController', ['$scope','$location','$http','Notification','re $scope.namesvrAddrList = resp.data.namesvrAddrList.join(";"); $scope.useVIPChannel = resp.data.useVIPChannel; $scope.useTLS = resp.data.useTLS; - }else{ + } else { Notification.error({message: resp.errMsg, delay: 2000}); } }); @@ -36,11 +38,11 @@ app.controller('opsController', ['$scope','$location','$http','Notification','re $http({ method: "POST", url: "ops/updateNameSvrAddr.do", - params:{nameSvrAddrList:$scope.namesvrAddrList} + params: {nameSvrAddrList: $scope.namesvrAddrList} }).success(function (resp) { if (resp.status == 0) { Notification.info({message: "SUCCESS", delay: 2000}); - }else{ + } else { Notification.error({message: resp.errMsg, delay: 2000}); } }); @@ -49,11 +51,11 @@ app.controller('opsController', ['$scope','$location','$http','Notification','re $http({ method: "POST", url: "ops/updateIsVIPChannel.do", - params:{useVIPChannel:$scope.useVIPChannel} + params: {useVIPChannel: $scope.useVIPChannel} }).success(function (resp) { if (resp.status == 0) { Notification.info({message: "SUCCESS", delay: 2000}); - }else{ + } else { Notification.error({message: resp.errMsg, delay: 2000}); } }); @@ -62,11 +64,11 @@ app.controller('opsController', ['$scope','$location','$http','Notification','re $http({ method: "POST", url: "ops/updateUseTLS.do", - params:{useTLS:$scope.useTLS} + params: {useTLS: $scope.useTLS} }).success(function (resp) { if (resp.status == 0) { Notification.info({message: "SUCCESS", delay: 2000}); - }else{ + } else { Notification.error({message: resp.errMsg, delay: 2000}); } }); diff --git a/src/main/resources/static/src/topic.js b/src/main/resources/static/src/topic.js index 7450f1a..28c3555 100644 --- a/src/main/resources/static/src/topic.js +++ b/src/main/resources/static/src/topic.js @@ -4,20 +4,20 @@ var module = app; module.directive('ngConfirmClick', [ - function(){ + function () { return { link: function (scope, element, attr) { var msg = attr.ngConfirmClick || "Are you sure?"; var clickAction = attr.confirmedClick; - element.bind('click',function (event) { - if ( window.confirm(msg) ) { + element.bind('click', function (event) { + if (window.confirm(msg)) { scope.$eval(clickAction) } }); } }; }]); -module.controller('topicController', ['$scope', 'ngDialog', '$http','Notification',function ($scope, ngDialog, $http,Notification) { +module.controller('topicController', ['$scope', 'ngDialog', '$http', 'Notification', '$window', function ($scope, ngDialog, $http, Notification, $window) { $scope.paginationConf = { currentPage: 1, totalItems: 0, @@ -26,7 +26,7 @@ module.controller('topicController', ['$scope', 'ngDialog', '$http','Notificatio perPageOptions: [10], rememberPerPage: 'perPageItems', onChange: function () { - $scope.showTopicList(this.currentPage,this.totalItems); + $scope.showTopicList(this.currentPage, this.totalItems); } }; @@ -36,19 +36,21 @@ module.controller('topicController', ['$scope', 'ngDialog', '$http','Notificatio $scope.filterSystem = false $scope.allTopicList = []; $scope.topicShowList = []; + $scope.userRole = $window.sessionStorage.getItem("userrole"); + $scope.writeOperationEnabled = $scope.userRole == null ? true : ($scope.userRole == 1 ? true : false); $scope.refreshTopicList = function () { $http({ method: "GET", url: "topic/list.query" }).success(function (resp) { - if(resp.status ==0){ + if (resp.status == 0) { $scope.allTopicList = resp.data.topicList.sort(); console.log($scope.allTopicList); console.log(JSON.stringify(resp)); - $scope.showTopicList(1,$scope.allTopicList.length); + $scope.showTopicList(1, $scope.allTopicList.length); - }else { + } else { Notification.error({message: resp.errMsg, delay: 5000}); } }); @@ -56,93 +58,93 @@ module.controller('topicController', ['$scope', 'ngDialog', '$http','Notificatio $scope.refreshTopicList(); - $scope.filterStr=""; - $scope.$watch('filterStr', function() { + $scope.filterStr = ""; + $scope.$watch('filterStr', function () { $scope.filterList(1); }); - $scope.$watch('filterNormal', function() { + $scope.$watch('filterNormal', function () { $scope.filterList(1); }); - $scope.$watch('filterRetry', function() { + $scope.$watch('filterRetry', function () { $scope.filterList(1); }); - $scope.$watch('filterDLQ', function() { + $scope.$watch('filterDLQ', function () { $scope.filterList(1); }); - $scope.$watch('filterSystem', function() { + $scope.$watch('filterSystem', function () { $scope.filterList(1); }); $scope.filterList = function (currentPage) { - var lowExceptStr = $scope.filterStr.toLowerCase(); + var lowExceptStr = $scope.filterStr.toLowerCase(); var canShowList = []; - $scope.allTopicList.forEach(function(element) { - if($scope.filterByType(element)){ - if (element.toLowerCase().indexOf(lowExceptStr) != -1){ + $scope.allTopicList.forEach(function (element) { + if ($scope.filterByType(element)) { + if (element.toLowerCase().indexOf(lowExceptStr) != -1) { canShowList.push(element); } } }); - $scope.paginationConf.totalItems =canShowList.length; + $scope.paginationConf.totalItems = canShowList.length; var perPage = $scope.paginationConf.itemsPerPage; var from = (currentPage - 1) * perPage; - var to = (from + perPage)>canShowList.length?canShowList.length:from + perPage; + var to = (from + perPage) > canShowList.length ? canShowList.length : from + perPage; $scope.topicShowList = canShowList.slice(from, to); }; - $scope.filterByType = function(str){ - if($scope.filterRetry){ - if(str.startsWith("%R")){ + $scope.filterByType = function (str) { + if ($scope.filterRetry) { + if (str.startsWith("%R")) { return true } } - if($scope.filterDLQ){ - if(str.startsWith("%D")){ + if ($scope.filterDLQ) { + if (str.startsWith("%D")) { return true } } - if($scope.filterSystem){ - if(str.startsWith("%S")){ + if ($scope.filterSystem) { + if (str.startsWith("%S")) { return true } } - if($scope.filterNormal){ - if(str.startsWith("%") == false){ + if ($scope.filterNormal) { + if (str.startsWith("%") == false) { return true } } return false; }; - $scope.showTopicList = function (currentPage,totalItem) { - if($scope.filterStr != ""){ + $scope.showTopicList = function (currentPage, totalItem) { + if ($scope.filterStr != "") { $scope.filterList(currentPage); return; } var perPage = $scope.paginationConf.itemsPerPage; var from = (currentPage - 1) * perPage; - var to = (from + perPage)>totalItem?totalItem:from + perPage; + var to = (from + perPage) > totalItem ? totalItem : from + perPage; console.log($scope.allTopicList); console.log(from) console.log(to) $scope.topicShowList = $scope.allTopicList.slice(from, to); - $scope.paginationConf.totalItems = totalItem ; + $scope.paginationConf.totalItems = totalItem; console.log($scope.topicShowList) console.log($scope.paginationConf.totalItems) $scope.filterList(currentPage); }; - $scope.deleteTopic= function (topic) { + $scope.deleteTopic = function (topic) { $http({ method: "POST", url: "topic/deleteTopic.do", - params:{ - topic:topic + params: { + topic: topic } }).success(function (resp) { - if(resp.status ==0){ + if (resp.status == 0) { Notification.info({message: "delete success!", delay: 2000}); $scope.refreshTopicList(); - }else { + } else { Notification.error({message: resp.errMsg, delay: 2000}); } }); @@ -157,13 +159,13 @@ module.controller('topicController', ['$scope', 'ngDialog', '$http','Notificatio console.log(JSON.stringify(resp)); ngDialog.open({ template: 'statsViewDialog', - trapFocus:false, - data:{ - topic:topic, - statsData:resp.data + trapFocus: false, + data: { + topic: topic, + statsData: resp.data } }); - }else { + } else { Notification.error({message: resp.errMsg, delay: 2000}); } }) @@ -179,13 +181,13 @@ module.controller('topicController', ['$scope', 'ngDialog', '$http','Notificatio ngDialog.open({ template: 'routerViewDialog', controller: 'routerViewDialogController', - trapFocus:false, - data:{ - topic:topic, - routeData:resp.data + trapFocus: false, + data: { + topic: topic, + routeData: resp.data } }); - }else { + } else { Notification.error({message: resp.errMsg, delay: 2000}); } }) @@ -202,13 +204,13 @@ module.controller('topicController', ['$scope', 'ngDialog', '$http','Notificatio console.log(JSON.stringify(resp)); ngDialog.open({ template: 'consumerViewDialog', - data:{ - topic:topic, - consumerData:resp.data, - consumerGroupCount:Object.keys(resp.data).length + data: { + topic: topic, + consumerData: resp.data, + consumerGroupCount: Object.keys(resp.data).length } }); - }else { + } else { Notification.error({message: resp.errMsg, delay: 2000}); } }) @@ -217,9 +219,9 @@ module.controller('topicController', ['$scope', 'ngDialog', '$http','Notificatio ngDialog.open({ template: 'deleteTopicDialog', controller: 'deleteTopicDialogController', - data:{ - topic:topic, - consumerData:"asd" + data: { + topic: topic, + consumerData: "asd" } }); }; @@ -229,25 +231,25 @@ module.controller('topicController', ['$scope', 'ngDialog', '$http','Notificatio $http({ method: "GET", url: "topic/queryTopicConsumerInfo.query", - params:{ - topic:topic + params: { + topic: topic } }).success(function (resp) { - if(resp.status ==0){ - if(resp.data.groupList == null){ + if (resp.status == 0) { + if (resp.data.groupList == null) { Notification.error({message: "don't have consume group!", delay: 2000}); return } ngDialog.open({ template: 'consumerResetOffsetDialog', controller: 'consumerResetOffsetDialogController', - data:{ + data: { topic: topic, - selectedConsumerGroup:[], - allConsumerGroupList:resp.data.groupList + selectedConsumerGroup: [], + allConsumerGroupList: resp.data.groupList } }); - }else { + } else { Notification.error({message: resp.errMsg, delay: 2000}); } }); @@ -258,25 +260,25 @@ module.controller('topicController', ['$scope', 'ngDialog', '$http','Notificatio $http({ method: "GET", url: "topic/queryTopicConsumerInfo.query", - params:{ - topic:topic + params: { + topic: topic } }).success(function (resp) { - if(resp.status ==0){ - if(resp.data.groupList == null){ + if (resp.status == 0) { + if (resp.data.groupList == null) { Notification.error({message: "don't have consume group!", delay: 2000}); return } ngDialog.open({ template: 'skipMessageAccumulateDialog', controller: 'skipMessageAccumulateDialogController', - data:{ + data: { topic: topic, - selectedConsumerGroup:[], - allConsumerGroupList:resp.data.groupList + selectedConsumerGroup: [], + allConsumerGroupList: resp.data.groupList } }); - }else { + } else { Notification.error({message: resp.errMsg, delay: 2000}); } }); @@ -296,13 +298,13 @@ module.controller('topicController', ['$scope', 'ngDialog', '$http','Notificatio $http({ method: "GET", url: "topic/examineTopicConfig.query", - params:{ - topic:topic + params: { + topic: topic } }).success(function (resp) { - if(resp.status ==0){ + if (resp.status == 0) { $scope.openCreateOrUpdateDialog(resp.data, sysFlag); - }else { + } else { Notification.error({message: resp.errMsg, delay: 2000}); } }); @@ -310,14 +312,14 @@ module.controller('topicController', ['$scope', 'ngDialog', '$http','Notificatio $scope.openCreateOrUpdateDialog = function (request, sysFlag) { var bIsUpdate = true; - if(request == null){ + if (request == null) { request = [{ - writeQueueNums:16, - readQueueNums:16, - perm:6, - order:false, - topicName:"", - brokerNameList:[] + writeQueueNums: 16, + readQueueNums: 16, + perm: 6, + order: false, + topicName: "", + brokerNameList: [] }]; bIsUpdate = false; } @@ -325,21 +327,22 @@ module.controller('topicController', ['$scope', 'ngDialog', '$http','Notificatio method: "GET", url: "cluster/list.query" }).success(function (resp) { - if(resp.status ==0){ + if (resp.status == 0) { console.log(resp); ngDialog.open({ - preCloseCallback: function(value) { + preCloseCallback: function (value) { // Refresh topic list $scope.refreshTopicList(); }, template: 'topicModifyDialog', controller: 'topicModifyDialogController', - data:{ - sysFlag:sysFlag, - topicRequestList:request, - allClusterNameList:Object.keys(resp.data.clusterInfo.clusterAddrTable), - allBrokerNameList:Object.keys(resp.data.brokerServer), - bIsUpdate:bIsUpdate + data: { + sysFlag: sysFlag, + topicRequestList: request, + allClusterNameList: Object.keys(resp.data.clusterInfo.clusterAddrTable), + allBrokerNameList: Object.keys(resp.data.brokerServer), + bIsUpdate: bIsUpdate, + writeOperationEnabled: $scope.writeOperationEnabled } }); } @@ -352,7 +355,7 @@ module.controller('topicController', ['$scope', 'ngDialog', '$http','Notificatio }]); -module.controller('topicModifyDialogController', ['$scope', 'ngDialog', '$http','Notification',function ($scope, ngDialog, $http,Notification) { +module.controller('topicModifyDialogController', ['$scope', 'ngDialog', '$http', 'Notification', function ($scope, ngDialog, $http, Notification) { $scope.postTopicRequest = function (topicRequestItem) { console.log(topicRequestItem); var request = JSON.parse(JSON.stringify(topicRequestItem)); @@ -360,19 +363,19 @@ module.controller('topicModifyDialogController', ['$scope', 'ngDialog', '$http', $http({ method: "POST", url: "topic/createOrUpdate.do", - data:request + data: request }).success(function (resp) { - if(resp.status ==0){ + if (resp.status == 0) { Notification.info({message: "success!", delay: 2000}); ngDialog.close(this); - }else { + } else { Notification.error({message: resp.errMsg, delay: 2000}); } }); } }] ); -module.controller('consumerResetOffsetDialogController',['$scope', 'ngDialog', '$http','Notification', function ($scope, ngDialog, $http,Notification) { +module.controller('consumerResetOffsetDialogController', ['$scope', 'ngDialog', '$http', 'Notification', function ($scope, ngDialog, $http, Notification) { $scope.timepicker = {}; $scope.timepicker.date = moment().format('YYYY-MM-DD HH:mm'); $scope.timepicker.options = {format: 'YYYY-MM-DD HH:mm', showClear: true}; @@ -386,19 +389,19 @@ module.controller('consumerResetOffsetDialogController',['$scope', 'ngDialog', ' data: { resetTime: $scope.timepicker.date.valueOf(), consumerGroupList: $scope.ngDialogData.selectedConsumerGroup, - topic:$scope.ngDialogData.topic, - force:true + topic: $scope.ngDialogData.topic, + force: true } }).success(function (resp) { - if(resp.status ==0){ + if (resp.status == 0) { ngDialog.open({ template: 'resetOffsetResultDialog', - data:{ - result:resp.data + data: { + result: resp.data } }); ngDialog.close(this); - }else { + } else { Notification.error({message: resp.errMsg, delay: 2000}); } }) @@ -406,7 +409,7 @@ module.controller('consumerResetOffsetDialogController',['$scope', 'ngDialog', ' }] ); -module.controller('skipMessageAccumulateDialogController',['$scope', 'ngDialog', '$http','Notification', function ($scope, ngDialog, $http,Notification) { +module.controller('skipMessageAccumulateDialogController', ['$scope', 'ngDialog', '$http', 'Notification', function ($scope, ngDialog, $http, Notification) { $scope.skipAccumulate = function () { console.log($scope.ngDialogData.selectedConsumerGroup); $http({ @@ -415,19 +418,19 @@ module.controller('skipMessageAccumulateDialogController',['$scope', 'ngDialog', data: { resetTime: -1, consumerGroupList: $scope.ngDialogData.selectedConsumerGroup, - topic:$scope.ngDialogData.topic, - force:true + topic: $scope.ngDialogData.topic, + force: true } }).success(function (resp) { - if(resp.status ==0){ + if (resp.status == 0) { ngDialog.open({ template: 'resetOffsetResultDialog', - data:{ - result:resp.data + data: { + result: resp.data } }); ngDialog.close(this); - }else { + } else { Notification.error({message: resp.errMsg, delay: 2000}); } }) @@ -435,7 +438,7 @@ module.controller('skipMessageAccumulateDialogController',['$scope', 'ngDialog', }] ); -module.controller('sendTopicMessageDialogController', ['$scope', 'ngDialog', '$http','Notification',function ($scope, ngDialog, $http,Notification) { +module.controller('sendTopicMessageDialogController', ['$scope', 'ngDialog', '$http', 'Notification', function ($scope, ngDialog, $http, Notification) { $scope.sendTopicMessage = { topic: $scope.ngDialogData.topic, key: "key", @@ -449,37 +452,35 @@ module.controller('sendTopicMessageDialogController', ['$scope', 'ngDialog', '$h url: "topic/sendTopicMessage.do", data: $scope.sendTopicMessage }).success(function (resp) { - if(resp.status ==0){ + if (resp.status == 0) { ngDialog.open({ template: 'sendResultDialog', - data:{ - result:resp.data + data: { + result: resp.data } }); ngDialog.close(this); - }else { + } else { Notification.error({message: resp.errMsg, delay: 2000}); } }) } }] - ); -module.controller('routerViewDialogController', ['$scope', 'ngDialog', '$http','Notification',function ($scope, ngDialog, $http,Notification) { +module.controller('routerViewDialogController', ['$scope', 'ngDialog', '$http', 'Notification', function ($scope, ngDialog, $http, Notification) { $scope.deleteTopicByBroker = function (broker) { $http({ method: "POST", url: "topic/deleteTopicByBroker.do", - params: {brokerName:broker.brokerName,topic:$scope.ngDialogData.topic} + params: {brokerName: broker.brokerName, topic: $scope.ngDialogData.topic} }).success(function (resp) { - if(resp.status ==0){ + if (resp.status == 0) { Notification.info({message: "delete success", delay: 2000}); - }else { + } else { Notification.error({message: resp.errMsg, delay: 2000}); } }) }; }] - ); \ No newline at end of file diff --git a/src/main/resources/static/view/pages/consumer.html b/src/main/resources/static/view/pages/consumer.html index cc2fc39..b973ad8 100644 --- a/src/main/resources/static/view/pages/consumer.html +++ b/src/main/resources/static/view/pages/consumer.html @@ -25,13 +25,11 @@
- -
- @@ -48,8 +46,7 @@
- + @@ -83,6 +80,7 @@ @@ -242,25 +240,28 @@
- + - - + +
- - - - - + + + + +
- +
@@ -268,25 +269,25 @@
编号不能为空.
- - - - - - - + + + + + + +
+ ng-disabled="{{!ngDialogData.writeOperationEnabled}}" required/> 编号不能为空.
@@ -295,18 +296,26 @@
+ ng-disabled="{{!ngDialogData.writeOperationEnabled}}" required/> 编号不能为空.
+ @@ -396,7 +405,9 @@ - +
{{ 'SUBSCRIPTION_GROUP' | - translate}}{{ 'SUBSCRIPTION_GROUP' | translate}} {{ 'QUANTITY' | translate}} {{ 'VERSION' | translate}} {{ 'TYPE' | translate}} {{consumeDetail.diffTotal}} {{(consumeDetail.lastTimestamp == 0)?"N/A":consumeDetail.lastTimestamp | date:'yyyy-MM-dd HH:mm:ss'}}{{(consumeDetail.lastTimestamp == 0)?"N/A":consumeDetail.lastTimestamp | + date:'yyyy-MM-dd HH:mm:ss'}} +
@@ -422,7 +433,8 @@ {{item.brokerOffset}} {{item.consumerOffset}} {{item.brokerOffset-item.consumerOffset}} - {{(item.lastTimestamp == 0)?"N/A":item.lastTimestamp | date:'yyyy-MM-dd HH:mm:ss'}} + {{(item.lastTimestamp == 0)?"N/A":item.lastTimestamp | date:'yyyy-MM-dd HH:mm:ss'}} + diff --git a/src/main/resources/static/view/pages/message.html b/src/main/resources/static/view/pages/message.html index 54d9b95..2c200b6 100644 --- a/src/main/resources/static/view/pages/message.html +++ b/src/main/resources/static/view/pages/message.html @@ -41,7 +41,8 @@
- @@ -50,7 +51,8 @@
- @@ -79,8 +81,7 @@ @@ -237,11 +238,11 @@ diff --git a/src/main/resources/static/view/pages/ops.html b/src/main/resources/static/view/pages/ops.html index ba8c098..97c7b56 100644 --- a/src/main/resources/static/view/pages/ops.html +++ b/src/main/resources/static/view/pages/ops.html @@ -18,21 +18,24 @@

NameServerAddressList

- +
-


IsUseVIPChannel

-
- +
+
-
@@ -40,12 +43,14 @@

useTLS

-
- +
+
-
diff --git a/src/main/resources/static/view/pages/topic.html b/src/main/resources/static/view/pages/topic.html index f74c3e8..d28f676 100644 --- a/src/main/resources/static/view/pages/topic.html +++ b/src/main/resources/static/view/pages/topic.html @@ -30,8 +30,8 @@ {{'SYSTEM' | translate}} - @@ -192,7 +193,7 @@
+ ng-disabled="{{!ngDialogData.writeOperationEnabled}}" required/> {{'WRITE_QUEUE_NUMS'|translate}}不能为空.
@@ -200,7 +201,7 @@
+ ng-disabled="{{!ngDialogData.writeOperationEnabled}}" required/> {{'READ_QUEUE_NUMS'|translate}}不能为空.
@@ -208,7 +209,7 @@
+ ng-disabled="{{!ngDialogData.writeOperationEnabled}}" required/> {{'PERM'|translate}}不能为空.
@@ -216,7 +217,7 @@