1
0
mirror of https://github.com/OpenNebula/one.git synced 2025-03-16 22:50:10 +03:00

Feature #3748: Service roles panel saves the state on refresh

This commit is contained in:
Carlos Martín 2015-07-14 11:16:08 +02:00
parent a819cb31a8
commit 7020a0e5fb

View File

@ -58,6 +58,8 @@ define(function(require) {
Panel.PANEL_ID = PANEL_ID;
Panel.prototype.html = _html;
Panel.prototype.setup = _setup;
Panel.prototype.getState = _getState;
Panel.prototype.setState = _setState;
Panel.prototype.roleHTML = _roleHTML;
Panel.prototype.roleSetup = _roleSetup;
@ -92,6 +94,46 @@ define(function(require) {
});
}
function _getState(context) {
var state = {};
if (this.servicerolesDataTable){
var selectedCheck = $(".check_item:checked", this.servicerolesDataTable.dataTable);
if (selectedCheck.length > 0){
state["selectedRole"] = selectedCheck.attr("id");
if(this.serviceroleVMsDataTable){
var selectedVMs = [];
$.each($(".check_item:checked", this.serviceroleVMsDataTable.dataTable), function(){
selectedVMs.push($(this).attr("id"));
});
if (selectedVMs.length > 0){
state["selectedVMs"] = selectedVMs;
}
}
}
}
return state;
}
function _setState(state, context) {
var that = this;
if (this.servicerolesDataTable && state["selectedRole"]){
$('.check_item[id="'+state["selectedRole"]+'"]', this.servicerolesDataTable.dataTable).closest('tr').click();
}
if (this.serviceroleVMsDataTable && state["selectedVMs"]){
$.each(state["selectedVMs"], function(){
$('.check_item[id="'+this+'"]', that.serviceroleVMsDataTable.dataTable).closest('tr').click();
});
}
}
function _setup(context) {
var that = this;
@ -130,29 +172,6 @@ define(function(require) {
this.servicerolesDataTable.initialize();
Sunstone.insertButtonsInTab("oneflow-services", "service_roles_tab", roles_buttons, $('#role_actions', context));
// TODO: global var, see Service.refresh
/*
if(selected_row_role_id) {
$.each($(this.servicerolesDataTable.dataTable.fnGetNodes()),function(){
if($($('td',this)[1]).html()==selected_row_role_id) {
$('td',this)[2].click();
}
});
}
if(checked_row_rolevm_ids.length!=0) {
$.each($(serviceroleVMsDataTable.fnGetNodes()),function(){
var current_id = $($('td',this)[1]).html();
if (current_id) {
if(jQuery.inArray(current_id, checked_row_rolevm_ids)!=-1) {
$('input.check_item',this).first().click();
$('td',this).addClass('markrowchecked');
}
}
});
}
//*/
}
}
@ -262,20 +281,6 @@ define(function(require) {
}
});
// TODO: global vars, see Service.refresh
/*
if(last_selected_row_rolevm) {
last_selected_row_rolevm.children().each(function(){
$(this).removeClass('markrowchecked');
});
}
last_selected_row_rolevm = $(this);
$(this).children().each(function(){
$(this).addClass('markrowchecked');
});
*/
this.serviceroleVMsDataTable.initialize();
Sunstone.insertButtonsInTab(
"oneflow-services",