From: Rajat Gupta <
rajat....@gmail.com>
Introducing Volume group action buttons
ui/js/host-storage.js | 89 +++++++++++++++++++++++++++++++++++++++++++++++++--
1 file changed, 86 insertions(+), 3 deletions(-)
diff --git a/ui/js/host-storage.js b/ui/js/host-storage.js
index 228037c..abcdcf6 100644
--- a/ui/js/host-storage.js
+++ b/ui/js/host-storage.js
@@ -293,13 +293,14 @@ ginger.initVolumeGroupGridData = function() {
orderable: false,
targets: 2
}],
- "dom": '<"#vg-buttons.row pull-left"<"vg-buttons pull-right"><"add pull-right">><"row"<"col-sm-12 filter"<"pull-right"l><"pull-right"f>>><"row"<"col-sm-12"t>><"row"<"col-sm-6 pages"p><"col-sm-6 info"i>>',
+ "dom": '<"#vg-buttons.row pull-left"<"#vg-actions.col-sm-2"><"vg-buttons pull-right"><"add pull-right">><"row"<"col-sm-12 filter"<"pull-right"l><"pull-right"f>>><"row"<"col-sm-12"t>><"row"<"col-sm-6 pages"p><"col-sm-6 info"i>>',
"initComplete": function(settings, json) {
wok.initCompleteDataTableCallback(settings);
var refreshButton = '<button class="btn btn-primary pull-left" id="volume-groups-refresh-btn" aria-expanded="false"><i class="fa fa-refresh"> </i> ' + i18n['GINTITLE0021M'] + '</button>';
var addButton = '<button class="btn btn-primary" id="volume-groups-add-btn" aria-expanded="false"><i class="fa fa-plus-circle"> </i>' + i18n['GINBG00004M'] + '</button>';
$(".vg-buttons").html(refreshButton);
$(".add").append(addButton);
+ ginger.createVgActionButtons();
},
"oLanguage": {
"sEmptyTable": i18n['GINNET0063M']
@@ -320,6 +321,47 @@ ginger.initVolumeGroupGridData = function() {
wok.window.open('plugins/ginger/host-storage-vg-add.html');
});
+ //Volume group deletion handler
+ $('#volume-group-delete-btn').on('click',function(event){
+ if(volumeGroupTable.rows('.selected').data().length==0){
+ var settings = {
+ content: i18n['GINVG00037M'],
+ confirm: i18n["GINNET0015M"]
+ };
+ wok.confirm(settings,function(){},function(){});
+ }else{
+ var selectedRowsData = volumeGroupTable.rows('.selected').data();
+ var selectedRows = [];
+ $.each(selectedRowsData,function(index,row){
+ selectedRows.push(row[0]);
+ });
+ var settings = {
+ content: i18n['GINVG0003M'].replace('%1',selectedRows),
+ confirm: i18n["GINNET0015M"]
+ };
+ wok.confirm(settings, function(){
+ $.each(selectedRows,function(index,row){
+ ginger.deleteVolumeGroup(row,function(result){
+ wok.message.success(i18n['GINVG0002M'].replace("%1",row), '#alert-vg-container');
+ if(index == (selectedRows.length - 1)){
+ $('#volume-groups-refresh-btn').trigger('click');
+ }
+ },function(error){
+ wok.message.error(error.responseJSON.reason, '#alert-vg-container', true);
+ if(index == (selectedRows.length - 1)){
+ $('#volume-groups-refresh-btn').trigger('click');
+ }
+ });
+ });
+ });
+ }
+ });
+
+ //Volume Group resize handler
+ $('#volume-group-edit-btn').on('click',function(){
+ ginger.vgResizeHandler(volumeGroupTable.rows('.selected').data());
+ });
+
// Add event listener for opening and closing details
$('#volume-group-table tbody').off();
$('#volume-group-table tbody').on('click', 'td.details-control', function () {
@@ -347,8 +389,15 @@ ginger.initVolumeGroupGridData = function() {
$(this).toggleClass("selected");
}
- if(volumeGroupTable.rows('.selected').data().length<=1){
- ginger.vgResizeHandler(volumeGroupTable.rows('.selected').data());
+ if(volumeGroupTable.rows('.selected').data().length>1){
+ $('#volume-group-edit-btn').off();
+ $('#volume-group-edit-btn').addClass("disablelink");
+ }else{
+ $('#volume-group-edit-btn').off();
+ $('#volume-group-edit-btn').removeClass("disablelink");
+ $('#volume-group-edit-btn').on('click',function(){
+ ginger.vgResizeHandler(volumeGroupTable.rows('.selected').data());
+ });
}
});
@@ -359,6 +408,40 @@ ginger.initVolumeGroupGridData = function() {
});
};
+//Volume group buttons list
+ginger.createVgActionButtons = function(){
+ var actionButton = [{
+ id: 'volume-group-edit-btn',
+ class: 'fa fa-arrows-h',
+ label: i18n['GINVG00031M']
+ },
+ {
+ id: 'volume-group-delete-btn',
+ class: 'fa fa-minus-circle',
+ label: i18n['GINNET0013M'],
+ critical:true,
+ }];
+
+ var actionListSettings = {
+ panelID: 'vg-actions',
+ buttons: actionButton,
+ type: 'action'
+ };
+ ginger.createActionButtons(actionListSettings);
+};
+
+ginger.volumeGroupDetailsPopulation = function(volumeGroupName,row){
+ var vgDetails = '';
+ ginger.getVolumeGroupDetails(volumeGroupName,function(data){
+ vgDetails = ginger.populateVolumeGroupDetails(data);
+ row.child('<div class="volumeGroup-details" style="display: block;"><div class="details-list">'+vgDetails+'</div></div>').show();
+ },function(e){
+ vgDetails = '';
+ });
+
+ return vgDetails;
+};
+
ginger.populateVolumeGroupDetails = function(data){
var text='';
var value;
--
2.1.0