summaryrefslogtreecommitdiffstats
path: root/install/ui
diff options
context:
space:
mode:
Diffstat (limited to 'install/ui')
-rw-r--r--install/ui/aci.js40
-rw-r--r--install/ui/ipa.js8
2 files changed, 38 insertions, 10 deletions
diff --git a/install/ui/aci.js b/install/ui/aci.js
index 01f6ce297..742a52c78 100644
--- a/install/ui/aci.js
+++ b/install/ui/aci.js
@@ -222,10 +222,40 @@ IPA.rights_widget = function(spec){
};
var values = [];
+ function get_selector(){
+ return '.'+ that.entity_name +"_"+ that.name;
+ }
+
+ that.is_dirty = function(){
+
+ var checkboxes = $(get_selector());
+ var checked = {};
+
+ checkboxes.each(function (){
+ checked[this.id] = this.checked;
+ });
+
+ for (var i = 0; i < values.length; i +=1){
+ var key = values[i];
+
+ if ( !checked[key] ){
+ return true;
+ }
+ checked[key] = false;
+ }
+
+ for (key in checked){
+ if (checked[key] ){
+ return true;
+ }
+ }
+
+ return false;
+ };
+
that.reset = function(){
- var selector = '.'+ that.entity_name +"_"+ that.name;
- var checkboxes = $(selector);
+ var checkboxes = $(get_selector());
for (var i = 0; i < checkboxes.length; i +=1){
checkboxes.attr('checked','');
@@ -233,7 +263,7 @@ IPA.rights_widget = function(spec){
for (var j = 0; j < values.length; j +=1){
var value = values[j];
- var cb = $('#'+value+ selector);
+ var cb = $('#'+value+ get_selector());
cb.attr('checked', 'checked');
}
@@ -245,7 +275,7 @@ IPA.rights_widget = function(spec){
};
that.save = function(){
- var rights_input = $('.'+ that.entity_name +"_"+ that.name);
+ var rights_input = $(get_selector()+":checked");
var retval = "";
for (var i =0; i < rights_input.length; i+=1){
if (i > 0) {
@@ -592,7 +622,7 @@ IPA.entity_factories.permission = function () {
input({ name: 'description'})).
section(IPA.rights_section()).
section(IPA.target_section()));
- return that;
+
};
diff --git a/install/ui/ipa.js b/install/ui/ipa.js
index 128413b1e..a5ad6d062 100644
--- a/install/ui/ipa.js
+++ b/install/ui/ipa.js
@@ -155,9 +155,7 @@ var IPA = ( function () {
}
}
return true;
- }
-
-
+ };
that.show_page = function (entity_name, facet_name) {
if (!IPA.test_dirty()){
@@ -170,19 +168,19 @@ var IPA = ( function () {
};
that.switch_and_show_page = function (this_entity, facet_name, pkey) {
-
if (!IPA.test_dirty()){
return false;
}
if (!pkey){
that.show_page(this_entity, facet_name);
- return;
+ return false;
}
var state = {};
state[this_entity+'-pkey'] = pkey;
state[this_entity + '-facet'] = facet_name;
$.bbq.pushState(state);
+ return true;
};
return that;