summaryrefslogtreecommitdiffstats
path: root/install/ui
diff options
context:
space:
mode:
authorPetr Vobornik <pvoborni@redhat.com>2011-08-26 18:36:54 +0200
committerEndi S. Dewata <edewata@redhat.com>2011-08-29 15:21:15 +0000
commit508217ada7330de8be576e04289c379fac45b276 (patch)
tree2f8178d43f40a2ce18b960d518f41c05cb8e4fef /install/ui
parent64c100947bd596d30716a9345743ccf376dd2a2d (diff)
downloadfreeipa-508217ada7330de8be576e04289c379fac45b276.tar.gz
freeipa-508217ada7330de8be576e04289c379fac45b276.tar.xz
freeipa-508217ada7330de8be576e04289c379fac45b276.zip
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
Diffstat (limited to 'install/ui')
-rw-r--r--install/ui/sudo.js41
-rw-r--r--install/ui/widget.js10
2 files changed, 38 insertions, 13 deletions
diff --git a/install/ui/sudo.js b/install/ui/sudo.js
index 8d33550c..1a6b03b1 100644
--- a/install/ui/sudo.js
+++ b/install/ui/sudo.js
@@ -574,12 +574,12 @@ IPA.sudo.options_section = function(spec) {
options: {
ipasudoopt: value
},
- on_success: function() {
- that.facet.refresh();
+ on_success: function(data) {
+ that.load(data.result.result);
dialog.close();
},
- on_error: function() {
- that.facet.refresh();
+ on_error: function(data) {
+ that.update();
dialog.close();
}
});
@@ -618,12 +618,24 @@ IPA.sudo.options_section = function(spec) {
dialog.execute = function() {
var batch = IPA.batch_command({
- on_success: function() {
- that.facet.refresh();
+ on_success: function(data) {
+ //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();
},
- on_error: function() {
- that.facet.refresh();
+ on_error: function(data) {
+ that.update();
dialog.close();
}
});
@@ -646,6 +658,19 @@ IPA.sudo.options_section = function(spec) {
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*/
setup_table();
diff --git a/install/ui/widget.js b/install/ui/widget.js
index 62af6c16..83cb4dcb 100644
--- a/install/ui/widget.js
+++ b/install/ui/widget.js
@@ -1471,11 +1471,11 @@ IPA.table_widget = function (spec) {
that.empty();
that.values = result[that.name];
- if (!that.values) return;
-
- for (var i=0; i<that.values.length; i++) {
- var record = that.get_record(result, i);
- that.add_record(record);
+ if (that.values) {
+ for (var i=0; i<that.values.length; i++) {
+ var record = that.get_record(result, i);
+ that.add_record(record);
+ }
}
that.unselect_all();
};