[Kimchi-devel] [PATCH] [Kimchi] Fix issue #1019: Hide storage volume actions menu for iSCSI/SCSI pools
Aline Manera
alinefm at linux.vnet.ibm.com
Wed Sep 28 14:34:40 UTC 2016
Signed-off-by: Aline Manera <alinefm at linux.vnet.ibm.com>
---
ui/js/src/kimchi.storage_main.js | 57 +++++++++++++++++++++++++++-------------
ui/pages/tabs/storage.html.tmpl | 4 +--
2 files changed, 41 insertions(+), 20 deletions(-)
diff --git a/ui/js/src/kimchi.storage_main.js b/ui/js/src/kimchi.storage_main.js
index 0d7a6d7..3208bd2 100644
--- a/ui/js/src/kimchi.storage_main.js
+++ b/ui/js/src/kimchi.storage_main.js
@@ -234,24 +234,37 @@ kimchi.storageBindClick = function() {
var checkbox = $(this);
var volumeBlock = $(this).closest('.wok-datagrid-row');
var volumesBlock = $(this).closest('.volumeslist');
+ var poolType = volumesBlock.data('type')
+ var selectedVolumes = $('[name="selected-volume[]"]:checked',volumesBlock)
var disabled = [];
- if($('[name="selected-volume[]"]:checked',volumesBlock).length > 1) {
- disabled = ['volume-clone','volume-wipe','volume-delete'];
- $('.volume-resize',volumesBlock).parent().addClass('disabled');
- for (i = 0; i < disabled.length; i++) {
- $('.'+disabled[i],volumesBlock).parent().removeClass('disabled');
- }
- }else if($('[name="selected-volume[]"]:checked',volumesBlock).length === 1){
- disabled = ['volume-resize','volume-clone','volume-wipe','volume-delete'];
- for (i = 0; i < disabled.length; i++) {
- $('.'+disabled[i],volumesBlock).parent().removeClass('disabled');
- }
- }else {
+ var enabled = [];
+
+ // No volume selected
+ if (selectedVolumes.length === 0) {
disabled = ['volume-resize','volume-clone','volume-wipe','volume-delete'];
- for (i = 0; i < disabled.length; i++) {
- $('.'+disabled[i],volumesBlock).parent().addClass('disabled');
+ enabled = [];
+ // One or more volumes selected
+ } else {
+ // Read-write pools
+ if (poolType !== 'scsi' && poolType !== 'iscsi') {
+ if (selectedVolumes.length > 1) {
+ disabled = ['volume-resize'];
+ enabled = ['volume-clone','volume-wipe','volume-delete'];
+ } else {
+ disabled = [];
+ enabled = ['volume-resize','volume-clone','volume-wipe', 'volume-delete'];
+ }
}
}
+
+ for (i = 0; i < disabled.length; i++) {
+ $('.'+disabled[i],volumesBlock).parent().addClass('disabled');
+ }
+
+ for (i = 0; i < enabled.length; i++) {
+ $('.'+enabled[i],volumesBlock).parent().removeClass('disabled');
+ }
+
if(checkbox.is(":checked")){
volumeBlock.addClass('selected');
}else {
@@ -293,19 +306,27 @@ kimchi.storageBindClick = function() {
}
});
- $('.pool-add-volume').each(function(index) {
+ $('.volume-add').each(function(index) {
var canAddVolume =
$(this).data('stat') === 'active' &&
$(this).data('type') !== 'iscsi' &&
$(this).data('type') !== 'scsi';
if(canAddVolume) {
- $(this).parent().show();
+ $(this).parent().removeClass('disabled');
}
else {
- $(this).parent().hide();
+ $(this).parent().addClass('disabled');
}
});
+ $('.volumeslist').each(function(index) {
+ var rwpool = $(this).data('type') !== 'iscsi' &&
+ $(this).data('type') !== 'scsi'
+
+ if (!rwpool)
+ $('.pool-action', $(this)).addClass('hidden');
+ });
+
if(wok.tabMode['storage'] === 'admin') {
$('.pool-delete').on('click', function(event) {
event.preventDefault();
@@ -382,7 +403,7 @@ kimchi.storageBindClick = function() {
}
});
- $('.pool-add-volume').on('click', function(event) {
+ $('.volume-add').on('click', function(event) {
event.preventDefault();
var poolName = $(this).data('name');
kimchi.selectedSP = poolName;
diff --git a/ui/pages/tabs/storage.html.tmpl b/ui/pages/tabs/storage.html.tmpl
index 92d9b75..65d6d19 100644
--- a/ui/pages/tabs/storage.html.tmpl
+++ b/ui/pages/tabs/storage.html.tmpl
@@ -125,13 +125,13 @@
</span>
</span>
<div class="volumes">
- <div id="volume-{name}" class="volumeslist" data-name="{name}">
+ <div id="volume-{name}" class="volumeslist" data-name="{name}" data-type="{type}">
<div class="row">
<div class="pull-left">
<div class="dropdown menu-flat pool-action">
<button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown" aria-expanded="false" aria-haspopup="true"><span class="edit-alt"></span>$_("Actions")<span class="caret"></span></button>
<ul class="dropdown-menu actionsheet">
- <li><a href="#" class="pool-add-volume" data-stat="{state}" data-name="{name}" data-type="{type}"><i class="fa fa-plus-circle"></i> $_("Add Volume")</a></li>
+ <li class="disabled"><a href="#" class="volume-add" data-stat="{state}" data-name="{name}" data-type="{type}"><i class="fa fa-plus-circle"></i> $_("Add Volume")</a></li>
<li class="disabled"><a href="#" class="volume-resize" data-name="{name}"><i class="fa fa-external-link-square"></i> $_("Resize")</a></li>
<li class="disabled"><a href="#" class="volume-clone" data-name="{name}"><i class="fa fa-copy"></i> $_("Clone")</a></li>
<li class="disabled"><a href="#" class="volume-wipe" data-name="{name}"><i class="fa fa-eraser"></i> $_("Wipe")</a></li>
--
2.5.5
More information about the Kimchi-devel
mailing list