Some comments:
1) When VM is running, the edit dialog blinks when it is open to fill
the input boxes. (ie, in a first moment the input boxes are displayed
empty and after some seconds it is filled)
From my understanding it should not happen as the data will be
always displayed, the difference is if it is enabled or disabled for
edition.
Could you check it and maybe do some improvements?
2) There is a different behavior in Storage tab to Network tab.
In the Storage tab the disks (that can not be edited) are listed
without any icon BUT in the Network tab, there is an edit icon disabled.
I suggest to remove the icon when edition is not allowed.
On 08/21/2014 08:38 AM, Wen Wang wrote:
Functions changed:
1) Enable "Edit" whether VM is running or off
2) Disable edit function of "General", "Storage",
"Interface" except
"replace" of the cdrom under "Storage".
Signed-off-by: Wen Wang <wenwang(a)linux.vnet.ibm.com>
---
ui/js/src/kimchi.guest_edit_main.js | 54 ++++++++++++++++++++++++-----------
ui/js/src/kimchi.guest_main.js | 1 -
ui/pages/guest-edit.html.tmpl | 2 +-
3 files changed, 38 insertions(+), 19 deletions(-)
diff --git a/ui/js/src/kimchi.guest_edit_main.js b/ui/js/src/kimchi.guest_edit_main.js
index 01d8045..ab63bb2 100644
--- a/ui/js/src/kimchi.guest_edit_main.js
+++ b/ui/js/src/kimchi.guest_edit_main.js
@@ -19,7 +19,12 @@ kimchi.guest_edit_main = function() {
var buttonContainer = $('#action-button-container');
$('#guest-edit-tabs').tabs({
beforeActivate: function(event, ui) {
- var display_list = ['form-guest-edit-general',
'form-guest-edit-permission']
+ var display_list = null;
+ if(kimchi.thisVMState === "running") {
+ display_list = ['form-guest-edit-permission'];
+ } else {
+ display_list = ['form-guest-edit-general',
'form-guest-edit-permission'];
+ }
$(buttonContainer).addClass('hidden');
var deactivated = ui['newPanel'];
if(display_list.indexOf($(deactivated).attr('id')) >= 0) {
@@ -52,12 +57,17 @@ kimchi.guest_edit_main = function() {
text: false
});
- $('.detach', container).button({
- icons: {
- primary: 'ui-icon-trash'
- },
- text: false
- });
+ if(kimchi.thisVMState != "running") {
+ $('.detach', container).button({
+ icons: {
+ primary: 'ui-icon-trash'
+ },
+ text: false
+ });
+
+ } else {
+ $('.detach', container).remove();
+ }
$('.save', container).button({
icons: {
@@ -170,6 +180,9 @@ kimchi.guest_edit_main = function() {
var itemNode =
$.parseHTML(kimchi.substitute($('#interface-tmpl').html(),data));
$(".body",
"#form-guest-edit-interface").append(itemNode);
$("select", itemNode).append(networkOptions);
+ if(kimchi.thisVMState === "running") {
+ $("#form-guest-edit-interface .delete").remove();
+ }
if(data.network!==""){
$("select", itemNode).val(data.network);
}
@@ -340,18 +353,25 @@ kimchi.guest_edit_main = function() {
var initContent = function(guest) {
guest['icon'] = guest['icon'] || 'images/icon-vm.png';
$('#form-guest-edit-general').fillWithObject(guest);
+ kimchi.thisVMState = guest['state'];
refreshCDROMs();
-
- $('#guest-edit-attach-cdrom-button').button({
- icons: {
- primary: "ui-icon-plusthick"
- },
- text: false
- }).click(function(event) {
- event.preventDefault();
- kimchi.window.open("guest-storage-add.html");
- });
+ if(kimchi.thisVMState === "running") {
+ $("#form-guest-edit-general input").prop("disabled",
"disabled");
+ $("#guest-edit-attach-cdrom-button").remove();
+ $("#form-guest-edit-interface .header button").remove();
+ } else {
+ $('#guest-edit-attach-cdrom-button').button({
+ icons: {
+ primary: "ui-icon-plusthick"
+ },
+ text: false
+ }).click(function(event) {
+ event.preventDefault();
+ kimchi.window.open("guest-storage-add.html");
+ });
+ $("#action-button-container").removeClass("hidden");
+ }
var onAttached = function(params) {
refreshCDROMs();
diff --git a/ui/js/src/kimchi.guest_main.js b/ui/js/src/kimchi.guest_main.js
index 320847e..5cbdb40 100644
--- a/ui/js/src/kimchi.guest_main.js
+++ b/ui/js/src/kimchi.guest_main.js
@@ -253,7 +253,6 @@ kimchi.createGuestLi = function(vmObject, prevScreenImage, openMenu)
{
//Setup the VM Actions
var guestActions=result.find("div[name=guest-actions]");
guestActions.find(".shutoff-disabled").prop('disabled',
!vmRunningBool );
- guestActions.find(".running-disabled").prop('disabled',
vmRunningBool );
if (vmRunningBool) {
guestActions.find(".running-hidden").hide();
diff --git a/ui/pages/guest-edit.html.tmpl b/ui/pages/guest-edit.html.tmpl
index ed7ddeb..47615be 100644
--- a/ui/pages/guest-edit.html.tmpl
+++ b/ui/pages/guest-edit.html.tmpl
@@ -145,7 +145,7 @@
</div>
</div>
<footer>
- <div id="action-button-container" class="btn-group">
+ <div id="action-button-container" class="btn-group
hidden">
<button id="guest-edit-button-save"
class="btn-normal">
<span class="text">$_("Save")</span>
</button>