Fixed FELIX-3695 : When bundle filter doesn't match, the tool bars are duplicated
https://issues.apache.org/jira/browse/FELIX-3695

git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@1665413 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/webconsole/src/main/resources/OSGI-INF/l10n/bundle.properties b/webconsole/src/main/resources/OSGI-INF/l10n/bundle.properties
index 3383e15..ff30e62 100644
--- a/webconsole/src/main/resources/OSGI-INF/l10n/bundle.properties
+++ b/webconsole/src/main/resources/OSGI-INF/l10n/bundle.properties
@@ -151,6 +151,7 @@
 bundles.filter.help=A string or RegExp expression which is matched againse bundle id, name, symbolic name or version. In case 'Filter All' is used, the value must be a valid LDAP string.
 bundles.filter.ldap=Filter All
 bundles.filter.ldap.tip=When clicked, a server-side matching is performed agains *all* bundle manifest headers. The expression is expected to be a valid OSGi Filter
+bundles.filter.no_match=There are no bundles matching the current filter
 # states
 bundles.state.1=Uninstalled
 bundles.state.2=Installed
diff --git a/webconsole/src/main/resources/res/ui/bundles.js b/webconsole/src/main/resources/res/ui/bundles.js
index 0ff8d5b..a04426b 100644
--- a/webconsole/src/main/resources/res/ui/bundles.js
+++ b/webconsole/src/main/resources/res/ui/bundles.js
@@ -64,6 +64,10 @@
 	    bundlesTable.trigger('sorton', [cv]);
 	}
 
+	if (bundlesBody.find('tr').size() == 0) {
+		bundlesBody.html('<tr><td colspan="6">' + i18n.filterNoMatch + '</td></tr>');

+	}
+
 	// show dialog on error
 	if (eventData.error) bundleOpError.dialog('open').find('pre').text(eventData.error)
 }
diff --git a/webconsole/src/main/resources/templates/bundles.html b/webconsole/src/main/resources/templates/bundles.html
index 1ce0656..0a2a571 100644
--- a/webconsole/src/main/resources/templates/bundles.html
+++ b/webconsole/src/main/resources/templates/bundles.html
@@ -39,6 +39,7 @@
     statlineResolved      : '${bundles.statline.resolved}',
     statlineInstalled     : '${bundles.statline.installed}',
 	install_update        : '${bundles.install_or_update}',
+	filterNoMatch         : '${bundles.filter.no_match}',
 	state                 : {
 		1  : '${bundles.state.1}', // uninstalled
 		2  : '${bundles.state.2}', // installed