Modifying sudo options refreshes the whole page

https://fedorahosted.org/freeipa/ticket/1689

Currently adding or deleting sudo options will refresh the entire page. It's not a problem but the code could be optimized to refresh only the sudo options table
This commit is contained in:
Petr Vobornik 2011-08-26 18:36:54 +02:00 committed by Endi S. Dewata
parent f1b93c5b0b
commit 7d33e5bc3f
2 changed files with 38 additions and 13 deletions

View File

@ -574,12 +574,12 @@ IPA.sudo.options_section = function(spec) {
options: { options: {
ipasudoopt: value ipasudoopt: value
}, },
on_success: function() { on_success: function(data) {
that.facet.refresh(); that.load(data.result.result);
dialog.close(); dialog.close();
}, },
on_error: function() { on_error: function(data) {
that.facet.refresh(); that.update();
dialog.close(); dialog.close();
} }
}); });
@ -618,12 +618,24 @@ IPA.sudo.options_section = function(spec) {
dialog.execute = function() { dialog.execute = function() {
var batch = IPA.batch_command({ var batch = IPA.batch_command({
on_success: function() { on_success: function(data) {
that.facet.refresh(); //last successful result of batch results contains valid data
var result;
for(var i = data.result.results.length - 1; i > -1; i--) {
result = data.result.results[i].result;
if(result) break;
}
if(result) {
that.load(result);
} else {
that.update();
}
dialog.close(); dialog.close();
}, },
on_error: function() { on_error: function(data) {
that.facet.refresh(); that.update();
dialog.close(); dialog.close();
} }
}); });
@ -646,6 +658,19 @@ IPA.sudo.options_section = function(spec) {
dialog.open(that.container); dialog.open(that.container);
}; };
that.update = function() {
var command = IPA.command({
entity: that.facet.entity.name,
method: 'show',
args: that.facet.get_primary_key(true),
on_success: function(data) {
that.load(data.result.result);
}
});
command.execute();
};
/*initialization*/ /*initialization*/
setup_table(); setup_table();

View File

@ -1471,12 +1471,12 @@ IPA.table_widget = function (spec) {
that.empty(); that.empty();
that.values = result[that.name]; that.values = result[that.name];
if (!that.values) return; if (that.values) {
for (var i=0; i<that.values.length; i++) { for (var i=0; i<that.values.length; i++) {
var record = that.get_record(result, i); var record = that.get_record(result, i);
that.add_record(record); that.add_record(record);
} }
}
that.unselect_all(); that.unselect_all();
}; };