From 6a2b486e500b62abe7ef14e4f34c945726f3256b Mon Sep 17 00:00:00 2001 From: Petr Vobornik Date: Wed, 29 Apr 2015 17:51:02 +0200 Subject: [PATCH] webui: navigation: unique names on entity facet menu items Fixes issue where it is not possible to define under the same parent: { entity: 'bar', facet: 'baz' } { entity: 'foo', facet: 'baz' } Error reporting of invalid menu item names was improved. Reviewed-By: David Kupka Reviewed-By: Thierry Bordaz --- install/ui/src/freeipa/navigation/Menu.js | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/install/ui/src/freeipa/navigation/Menu.js b/install/ui/src/freeipa/navigation/Menu.js index 17678a59f..bee92ebb4 100644 --- a/install/ui/src/freeipa/navigation/Menu.js +++ b/install/ui/src/freeipa/navigation/Menu.js @@ -84,8 +84,17 @@ return declare([Evented], // each item must have a name and a label // FIXME: consider to move entity and facet stuff outside of this object - item.name = item.name || item.facet || item.entity; - if (!name) throw 'Missing menu item property: name'; + if (!item.name) { + if (item.facet && item.entity) { + item.name = item.entity + '_' + item.facet; + } else { + item.name = item.facet || item.entity; + } + } + if (!item.name) { + window.console.error('Missing menu item property: \'name\'', item); + return false; + } if (item.label) item.label = text.get(item.label); if (item.title) item.title = text.get(item.title); @@ -101,7 +110,6 @@ return declare([Evented], if (!facet) { return false; //quit } - item.name = facet.name; if (!item.label) item.label = facet.label; if (!item.title) item.title = facet.title; } @@ -135,7 +143,12 @@ return declare([Evented], delete item.children; // finally add the item - this.items.add(item); + try { + this.items.add(item); + } catch(e) { + window.console.error("Unable to add menu item", item); + throw e; + } // add children if (children) {