summaryrefslogtreecommitdiffstats
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:22:20 +0000
commit7d33e5bc3f95bdbf9ed70a62077cdfd9cb6ed7c9 (patch)
tree6c1c58a004bec7d01369c6bb70c8c6f85c94729b
parentf1b93c5b0bbc433de6cf4b66f3396f09543d5843 (diff)
downloadfreeipa-7d33e5bc3f95bdbf9ed70a62077cdfd9cb6ed7c9.tar.gz
freeipa-7d33e5bc3f95bdbf9ed70a62077cdfd9cb6ed7c9.tar.xz
freeipa-7d33e5bc3f95bdbf9ed70a62077cdfd9cb6ed7c9.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
-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 8d33550c0..1a6b03b1b 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 62af6c16d..83cb4dcb2 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();
};