mirror of
https://github.com/apache/rocketmq-dashboard.git
synced 2026-02-23 14:45:46 +08:00
280 lines
10 KiB
JavaScript
280 lines
10 KiB
JavaScript
/*
|
|
* 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.
|
|
*/
|
|
|
|
var module = app;
|
|
|
|
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 = {};
|
|
$http({
|
|
method: "GET",
|
|
url: "topic/list.query",
|
|
params: {
|
|
skipSysProcess: true
|
|
}
|
|
}).success(function (resp) {
|
|
if (resp.status == 0) {
|
|
$scope.allTopicList = resp.data.topicList.sort();
|
|
console.log($scope.allTopicList);
|
|
} else {
|
|
Notification.error({message: resp.errMsg, delay: 2000});
|
|
}
|
|
});
|
|
$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 = "";
|
|
|
|
$scope.paginationConf = {
|
|
currentPage: 1,
|
|
totalItems: 0,
|
|
itemsPerPage: 20,
|
|
pagesLength: 15,
|
|
perPageOptions: [10],
|
|
rememberPerPage: 'perPageItems',
|
|
onChange: function () {
|
|
$scope.queryMessagePageByTopic()
|
|
}
|
|
};
|
|
|
|
$scope.queryMessagePageByTopic = function () {
|
|
$("#noMsgTip").css("display", "none");
|
|
if ($scope.timepickerEnd < $scope.timepickerBegin) {
|
|
Notification.error({message: "endTime is later than beginTime!", delay: 2000});
|
|
return
|
|
}
|
|
if ($scope.selectedTopic === [] || (typeof $scope.selectedTopic) == "object") {
|
|
return
|
|
}
|
|
$http({
|
|
method: "POST",
|
|
url: "message/queryMessagePageByTopic.query",
|
|
data: {
|
|
topic: $scope.selectedTopic,
|
|
begin: $scope.timepickerBegin.valueOf(),
|
|
end: $scope.timepickerEnd.valueOf(),
|
|
pageNum: $scope.paginationConf.currentPage,
|
|
pageSize: $scope.paginationConf.itemsPerPage,
|
|
taskId: $scope.taskId
|
|
}
|
|
}).success(function (resp) {
|
|
if (resp.status === 0) {
|
|
console.log(resp);
|
|
$scope.messageShowList = resp.data.page.content;
|
|
if ($scope.messageShowList.length == 0){
|
|
$("#noMsgTip").removeAttr("style");
|
|
}
|
|
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 {
|
|
Notification.error({message: resp.errMsg, delay: 2000});
|
|
}
|
|
});
|
|
}
|
|
|
|
$scope.queryMessageByTopic = function () {
|
|
console.log($scope.selectedTopic);
|
|
console.log($scope.timepickerBegin)
|
|
console.log($scope.timepickerEnd)
|
|
if ($scope.timepickerEnd < $scope.timepickerBegin) {
|
|
Notification.error({message: "endTime is later than beginTime!", delay: 2000});
|
|
return
|
|
}
|
|
|
|
$http({
|
|
method: "GET",
|
|
url: "message/queryMessageByTopic.query",
|
|
params: {
|
|
topic: $scope.selectedTopic,
|
|
begin: $scope.timepickerBegin.valueOf(),
|
|
end: $scope.timepickerEnd.valueOf()
|
|
|
|
}
|
|
}).success(function (resp) {
|
|
if (resp.status == 0) {
|
|
console.log(resp);
|
|
$scope.queryMessageByTopicResult = resp.data;
|
|
$scope.changeShowMessageList(1, $scope.queryMessageByTopicResult.length);
|
|
// todo
|
|
// console.log($scope.queryMessageByTopicResult);
|
|
} else {
|
|
Notification.error({message: resp.errMsg, delay: 2000});
|
|
}
|
|
});
|
|
};
|
|
|
|
$scope.queryMessageByTopicAndKey = function () {
|
|
console.log($scope.selectedTopic);
|
|
console.log($scope.key);
|
|
$http({
|
|
method: "GET",
|
|
url: "message/queryMessageByTopicAndKey.query",
|
|
params: {
|
|
topic: $scope.selectedTopic,
|
|
key: $scope.key
|
|
}
|
|
}).success(function (resp) {
|
|
if (resp.status == 0) {
|
|
console.log(resp);
|
|
$scope.queryMessageByTopicAndKeyResult = resp.data;
|
|
console.log($scope.queryMessageByTopicAndKeyResult);
|
|
} else {
|
|
Notification.error({message: resp.errMsg, delay: 2000});
|
|
}
|
|
});
|
|
};
|
|
|
|
$scope.queryMessageByBrokerAndOffset = function (storeHost, commitLogOffset) {
|
|
$http({
|
|
method: "GET",
|
|
url: "message/viewMessageByBrokerAndOffset.query",
|
|
params: {
|
|
brokerHost: storeHost.address,
|
|
port: storeHost.port,
|
|
offset: commitLogOffset
|
|
}
|
|
}).success(function (resp) {
|
|
if (resp.status == 0) {
|
|
console.log(resp);
|
|
ngDialog.open({
|
|
template: 'messageDetailViewDialog',
|
|
controller: 'messageDetailViewDialogController',
|
|
data: resp.data
|
|
});
|
|
} else {
|
|
Notification.error({message: resp.errMsg, delay: 2000});
|
|
}
|
|
});
|
|
};
|
|
|
|
$scope.queryMessageByMessageId = function (messageId, topic) {
|
|
$http({
|
|
method: "GET",
|
|
url: "message/viewMessage.query",
|
|
params: {
|
|
msgId: messageId,
|
|
topic: topic
|
|
}
|
|
}).success(function (resp) {
|
|
if (resp.status == 0) {
|
|
console.log(resp);
|
|
ngDialog.open({
|
|
template: 'messageDetailViewDialog',
|
|
controller: 'messageDetailViewDialogController',
|
|
data: resp.data
|
|
});
|
|
} else {
|
|
Notification.error({message: resp.errMsg, delay: 2000});
|
|
}
|
|
});
|
|
};
|
|
|
|
$scope.changeShowMessageList = function (currentPage, totalItem) {
|
|
var perPage = $scope.paginationConf.itemsPerPage;
|
|
var from = (currentPage - 1) * perPage;
|
|
var to = (from + perPage) > totalItem ? totalItem : from + perPage;
|
|
$scope.messageShowList = $scope.queryMessageByTopicResult.slice(from, to);
|
|
$scope.paginationConf.totalItems = totalItem;
|
|
};
|
|
|
|
$scope.onChangeQueryCondition = function () {
|
|
console.log("change")
|
|
$scope.taskId = "";
|
|
$scope.paginationConf.currentPage = 1;
|
|
$scope.paginationConf.totalItems = 0;
|
|
}
|
|
}]);
|
|
|
|
module.controller('messageDetailViewDialogController', ['$scope', 'ngDialog', '$http', 'Notification', function ($scope, ngDialog, $http, Notification) {
|
|
$scope.messageTrackList = $scope.ngDialogData.messageTrackList;
|
|
$scope.messageTrackShowList = $scope.ngDialogData.messageTrackList;
|
|
$scope.resendMessage = function (messageView, consumerGroup) {
|
|
var topic = messageView.topic;
|
|
var msgId = messageView.msgId;
|
|
console.log('===' + topic + '===' + msgId);
|
|
if (topic.startsWith('%DLQ%')) {
|
|
if (messageView.properties.hasOwnProperty("RETRY_TOPIC")) {
|
|
topic = messageView.properties.RETRY_TOPIC;
|
|
}
|
|
if (messageView.properties.hasOwnProperty("ORIGIN_MESSAGE_ID")) {
|
|
msgId = messageView.properties.ORIGIN_MESSAGE_ID;
|
|
}
|
|
|
|
}
|
|
console.log('===' + topic + '===' + msgId);
|
|
$http({
|
|
method: "POST",
|
|
url: "message/consumeMessageDirectly.do",
|
|
params: {
|
|
msgId: msgId,
|
|
consumerGroup: consumerGroup,
|
|
topic: topic
|
|
}
|
|
}).success(function (resp) {
|
|
if (resp.status == 0) {
|
|
ngDialog.open({
|
|
template: 'operationResultDialog',
|
|
data: {
|
|
result: resp.data
|
|
}
|
|
});
|
|
} else {
|
|
ngDialog.open({
|
|
template: 'operationResultDialog',
|
|
data: {
|
|
result: resp.errMsg
|
|
}
|
|
});
|
|
}
|
|
});
|
|
};
|
|
$scope.showExceptionDesc = function (errmsg) {
|
|
if (errmsg == null) {
|
|
errmsg = "Don't have Exception"
|
|
}
|
|
ngDialog.open({
|
|
template: 'operationResultDialog',
|
|
data: {
|
|
result: errmsg
|
|
}
|
|
});
|
|
};
|
|
|
|
$scope.filterConsumerGroup = "";
|
|
$scope.$watch('filterConsumerGroup', function () {
|
|
const lowExceptStr = $scope.filterConsumerGroup.toLowerCase();
|
|
const canShowList = [];
|
|
|
|
$scope.messageTrackList.forEach(function (element) {
|
|
if (element.consumerGroup.toLowerCase().indexOf(lowExceptStr) != -1) {
|
|
canShowList.push(element);
|
|
}
|
|
});
|
|
$scope.messageTrackShowList = canShowList;
|
|
});
|
|
}]
|
|
); |