diff --git a/deps/rabbitmq_management/Makefile b/deps/rabbitmq_management/Makefile index 7bfbee7a6882..e0d2254dac32 100644 --- a/deps/rabbitmq_management/Makefile +++ b/deps/rabbitmq_management/Makefile @@ -45,3 +45,5 @@ list-dist-deps:: prepare-dist:: $(verbose) sed 's/%%VSN%%/$(PROJECT_VERSION)/' bin/rabbitmqadmin \ > $(EZ_DIR)/priv/www/cli/rabbitmqadmin + $(verbose) sed "s/%%VSN%%/$(PROJECT_VERSION)/" priv/www/index.html \ + > $(EZ_DIR)/priv/www/index.html diff --git a/deps/rabbitmq_management/app.bzl b/deps/rabbitmq_management/app.bzl index 9db0335b5f5b..6271095ecadb 100644 --- a/deps/rabbitmq_management/app.bzl +++ b/deps/rabbitmq_management/app.bzl @@ -285,7 +285,6 @@ def all_srcs(name = "all_srcs"): "priv/www/api/index.html", "priv/www/cli/index.html", "priv/www/cli/rabbitmqadmin", - "priv/www/css/evil.css", "priv/www/css/main.css", "priv/www/favicon.ico", "priv/www/img/bg-binary.png", diff --git a/deps/rabbitmq_management/priv/www/css/evil.css b/deps/rabbitmq_management/priv/www/css/evil.css deleted file mode 100644 index 016ceb2eeaf6..000000000000 --- a/deps/rabbitmq_management/priv/www/css/evil.css +++ /dev/null @@ -1 +0,0 @@ -#login { text-align: center; } diff --git a/deps/rabbitmq_management/priv/www/index.html b/deps/rabbitmq_management/priv/www/index.html index b72e0cda9c80..72fb96bb95b7 100644 --- a/deps/rabbitmq_management/priv/www/index.html +++ b/deps/rabbitmq_management/priv/www/index.html @@ -11,26 +11,30 @@ - - - - - + + + - - - - + + + - - - diff --git a/deps/rabbitmq_management/priv/www/js/global.js b/deps/rabbitmq_management/priv/www/js/global.js index a35821ebd71f..b58805e59021 100644 --- a/deps/rabbitmq_management/priv/www/js/global.js +++ b/deps/rabbitmq_management/priv/www/js/global.js @@ -872,6 +872,9 @@ var timer_interval; // When did we last connect successfully (for the "could not connect" error) var last_successful_connect; +// we want a full page refresh after we were disconnected or if the RabbitMQ version changed +var needs_full_refresh = false; + // Every 200 updates without user interaction we do a full refresh, to // work around memory leaks in browser DOM implementations. // TODO: maybe we don't need this any more? diff --git a/deps/rabbitmq_management/priv/www/js/main.js b/deps/rabbitmq_management/priv/www/js/main.js index 3955f4a6dac1..9a60b03f9797 100644 --- a/deps/rabbitmq_management/priv/www/js/main.js +++ b/deps/rabbitmq_management/priv/www/js/main.js @@ -1306,7 +1306,11 @@ function maybe_format_extra_queue_content(queue, extraContent) { function update_status(status) { var text; - if (status == 'ok') + if (status == 'ok' && needs_full_refresh) { + // connection was restored, get the latest CSS/JS + needs_full_refresh = false; + full_refresh(); + } else if (status == 'ok') text = "Refreshed " + fmt_date(new Date()); else if (status == 'error') { var next_try = new Date(new Date().getTime() + timer_interval); @@ -1496,6 +1500,7 @@ function check_bad_response(req, full_page_404) { clearInterval(timer); } + needs_full_refresh = true; return false; } diff --git a/deps/rabbitmq_management/priv/www/js/tmpl/overview.ejs b/deps/rabbitmq_management/priv/www/js/tmpl/overview.ejs index 6276f10d8771..0990aca55ca4 100644 --- a/deps/rabbitmq_management/priv/www/js/tmpl/overview.ejs +++ b/deps/rabbitmq_management/priv/www/js/tmpl/overview.ejs @@ -1,3 +1,10 @@ +<% + if(management_version != undefined && management_version != '%%VSN%%' && management_version != overview.management_version) { + // RabbitMQ was upgraded + // full reload to get the latest CSS and JavaScript files + needs_full_refresh = true; + } +%> <% if(disable_stats) { %>

Overview: Management only mode

<% } else { %>