diff --git a/install/ui/src/freeipa/dns.js b/install/ui/src/freeipa/dns.js index 8131e14f5..5845bbfaa 100644 --- a/install/ui/src/freeipa/dns.js +++ b/install/ui/src/freeipa/dns.js @@ -29,6 +29,9 @@ IPA.dns = { IPA.dns.config_entity = function(spec) { + spec = spec || {}; + spec.defines_key = false; + var that = IPA.entity(spec); that.init = function() { diff --git a/install/ui/src/freeipa/entity.js b/install/ui/src/freeipa/entity.js index 36fadf1ce..598a194f2 100644 --- a/install/ui/src/freeipa/entity.js +++ b/install/ui/src/freeipa/entity.js @@ -37,6 +37,8 @@ IPA.entity = function(spec) { that.name = spec.name; that.label = spec.label; + that.defines_key = spec.defines_key !== undefined ? spec.defines_key : true; + that.metadata = spec.metadata; that.builder = spec.builder; diff --git a/install/ui/src/freeipa/facet.js b/install/ui/src/freeipa/facet.js index 555dfe33d..cb31f24b3 100644 --- a/install/ui/src/freeipa/facet.js +++ b/install/ui/src/freeipa/facet.js @@ -198,8 +198,8 @@ IPA.facet = function(spec, no_init) { var cur_l = cur_keys.length; var tot_c = 0; while (current_entity) { + if (current_entity.defines_key) tot_c++; current_entity = current_entity.get_containing_entity(); - tot_c++; } if (tot_c < arg_l || tot_c < cur_l) throw { diff --git a/install/ui/src/freeipa/navigation/Router.js b/install/ui/src/freeipa/navigation/Router.js index ca1417649..d51505ed8 100644 --- a/install/ui/src/freeipa/navigation/Router.js +++ b/install/ui/src/freeipa/navigation/Router.js @@ -312,6 +312,8 @@ define(['dojo/_base/declare', */ _decode_pkeys: function(str) { + if (!str) return []; + var keys = str.split('&'); for (var i=0; i