From a8b48a8f42e989d4c10a84584f6c0e5281c81d5e Mon Sep 17 00:00:00 2001 From: Petr Vobornik Date: Thu, 14 Mar 2013 15:31:46 +0100 Subject: Don't expect key for singleton objects (dnsconfig, config, realmdomains) https://fedorahosted.org/freeipa/ticket/3236 --- install/ui/src/freeipa/dns.js | 3 +++ install/ui/src/freeipa/entity.js | 2 ++ install/ui/src/freeipa/facet.js | 2 +- install/ui/src/freeipa/navigation/Router.js | 2 ++ install/ui/src/freeipa/realmdomains.js | 2 ++ install/ui/src/freeipa/serverconfig.js | 2 ++ 6 files changed, 12 insertions(+), 1 deletion(-) 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