Skip to content

Commit

Permalink
Merge pull request #8026 from rabbitmq/mergify/bp/v3.11.x/pr-8023
Browse files Browse the repository at this point in the history
Management UI: handle invalid regular expressions in filters when switching tabs (backport #8010) (backport #8023)
  • Loading branch information
michaelklishin authored Apr 27, 2023
2 parents 2c5c6f6 + 7a46b30 commit 55969f9
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 5 deletions.
5 changes: 2 additions & 3 deletions deps/rabbitmq_management/priv/www/js/global.js
Original file line number Diff line number Diff line change
Expand Up @@ -490,8 +490,7 @@ var HELP = {

'filter-regex' :
'Whether to enable regular expression matching. Both string literals \
and regular expressions are matched in a case-insensitive manner.<br/><br/> \
(<a href="https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions" target="_blank">Regular expression reference</a>)',
and regular expressions are matched in a case-insensitive manner.<br/><br/>',

'consumer-active' :
'Whether the consumer is active or not, i.e. whether the consumer can get messages from the queue. \
Expand All @@ -501,7 +500,7 @@ var HELP = {
(<a href="https://www.rabbitmq.com/consumers.html#active-consumer" target="_blank">Documentation</a>)',

'consumer-owner' :
'<a href="https://www.rabbitmq.com/consumers.html">AMQP consumers</a> belong to an AMQP channel, \
'<a href="https://www.rabbitmq.com/consumers.html">AMQP 0-9-1 consumers</a> belong to a channel, \
and <a href="https://www.rabbitmq.com/stream.html">stream consumers</a> belong to a stream connection.',

'plugins' :
Expand Down
24 changes: 22 additions & 2 deletions deps/rabbitmq_management/priv/www/js/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -253,7 +253,9 @@ function set_timer_interval(interval) {
}

function reset_timer() {
clearInterval(timer);
if (timer != null) {
clearInterval(timer);
}
if (timer_interval != null) {
timer = setInterval(partial_update, timer_interval);
}
Expand Down Expand Up @@ -733,13 +735,31 @@ function postprocess() {
update_multifields();
}

function is_valid_regexp(value) {
try {
var _ = new RegExp(value, 'i');
return true;
} catch (e) {
return false;
}
}

function url_pagination_template_context(template, context, defaultPage, defaultPageSize){
var page_number_request = fmt_page_number_request(context, defaultPage);
var page_size = fmt_page_size_request(context, defaultPageSize);
var name_request = fmt_filter_name_request(context, "");
var use_regex = fmt_regex_request(context, "") == "checked";
if (use_regex) {
name_request = esc(name_request);
// rabbitmq/rabbitmq-server#8008: if the expression cannot be compiled to a reg exp,
// assume a regular text filter
var valid_regexp = is_valid_regexp(name_request);
if (!valid_regexp) {
show_popup('warn', fmt_escape_html(`Filter expression '${name_request}' is not a valid regular expression, will perform a regular text query`));
use_regex = false;
}
if (use_regex && valid_regexp) {
name_request = esc(name_request);
}
}
return '/' + template +
'?page=' + page_number_request +
Expand Down

0 comments on commit 55969f9

Please sign in to comment.