When an error occurs while starting/stopping the network, the loading
icon is shown forever.
On 02/27/2014 05:28 PM, Rodrigo Trujillo wrote:
When the user tries to Start/Stop (up/down) a network, there is a lag
in
the backend, and it was possible to click on start/stop/delete again,
and again, generating errors. This patch disables the buttons and shows
loading gif to user, avoind this kind of error.
Signed-off-by: Rodrigo Trujillo <rodrigo.trujillo(a)linux.vnet.ibm.com>
---
ui/css/theme-default/network.css | 5 +++++
ui/js/src/kimchi.network.js | 14 ++++++++++----
2 files changed, 15 insertions(+), 4 deletions(-)
diff --git a/ui/css/theme-default/network.css b/ui/css/theme-default/network.css
index 80640a3..67f2aa2 100644
--- a/ui/css/theme-default/network.css
+++ b/ui/css/theme-default/network.css
@@ -132,6 +132,11 @@
margin-left: 29px;
}
+.network .list .nw-loading {
+ background: #c0c0c0 url(../../images/theme-default/loading.gif)
+ center no-repeat;
+}
+
.network .list .up {
background: linear-gradient(to bottom, #BFD255 0%, #8EB92A 50%,
#72AA00 51%, #9ECB2D 100%) repeat scroll 0 0 transparent;
diff --git a/ui/js/src/kimchi.network.js b/ui/js/src/kimchi.network.js
index 91324ee..7cedc01 100644
--- a/ui/js/src/kimchi.network.js
+++ b/ui/js/src/kimchi.network.js
@@ -84,20 +84,26 @@ kimchi.addNetworkActions = function(network) {
$(".menu-container", "#" +
network.name).toggle(false);
var menu = $(evt.currentTarget).parent();
if ($(evt.currentTarget).attr("nwAct") === "start") {
+ $(".network-state", $("#" +
network.name)).switchClass("down", "nw-loading");
+ $("[nwAct='start']",
menu).addClass("ui-state-disabled");
+ $("[nwAct='delete']",
menu).addClass("ui-state-disabled");
+ $(":first-child", $("[nwAct='delete']",
menu)).attr("disabled", true);
kimchi.toggleNetwork(network.name, true, function() {
$("[nwAct='start']",
menu).addClass("hide-action-item");
+ $("[nwAct='start']",
menu).removeClass("ui-state-disabled");
$("[nwAct='stop']",
menu).removeClass("hide-action-item");
- $("[nwAct='delete']",
menu).addClass("ui-state-disabled");
- $(":first-child", $("[nwAct='delete']",
menu)).attr("disabled", true);
- $(".network-state", $("#" +
network.name)).switchClass("down", "up");
+ $(".network-state", $("#" +
network.name)).switchClass("nw-loading", "up");
});
} else if ($(evt.currentTarget).attr("nwAct") ===
"stop") {
+ $(".network-state", $("#" +
network.name)).switchClass("up", "nw-loading");
+ $("[nwAct='stop']",
menu).addClass("ui-state-disabled");
kimchi.toggleNetwork(network.name, false, function() {
$("[nwAct='start']",
menu).removeClass("hide-action-item");
$("[nwAct='stop']",
menu).addClass("hide-action-item");
+ $("[nwAct='stop']",
menu).removeClass("ui-state-disabled");
$("[nwAct='delete']",
menu).removeClass("ui-state-disabled");
$(":first-child", $("[nwAct='delete']",
menu)).removeAttr("disabled");
- $(".network-state", $("#" +
network.name)).switchClass("up", "down");
+ $(".network-state", $("#" +
network.name)).switchClass("nw-loading", "down");
});
} else if ($(evt.currentTarget).attr("nwAct") ===
"delete") {
kimchi.confirm({