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-l10n/bg/src/main/resources/OSGI-INF/l10n/bundle_bg.properties b/webconsole-l10n/bg/src/main/resources/OSGI-INF/l10n/bundle_bg.properties
index 10e864c..efbd562 100644
--- a/webconsole-l10n/bg/src/main/resources/OSGI-INF/l10n/bundle_bg.properties
+++ b/webconsole-l10n/bg/src/main/resources/OSGI-INF/l10n/bundle_bg.properties
@@ -150,6 +150,7 @@
 bundles.filter.help=Низ или регулярен израз, който се съдържа в ID-то, името, символното име или версията на бъндъла.
 bundles.filter.ldap=Филтриране всичко
 bundles.filter.ldap.tip=Когато натиснете този бутон се прилага допълнително филтриране, спрямо *всички* хедъри на бундълите. Очаква се изразът в полето да бъде валиден OSGi LDAP филтър.
+bundles.filter.no_match=Няма бъндъли, които да отговарят на зададените критерии
 # states
 bundles.state.1=Деинсталиран
 bundles.state.2=Инсталиран
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