Преглед на файлове

Restore backward compat with ?tags=value Urls

Julien Bourdeau преди 7 години
родител
ревизия
7472085981

+ 4 - 1
src/Packagist/WebBundle/Controller/WebController.php

@@ -78,7 +78,10 @@ class WebController extends Controller
         $tagsFilter = $req->query->get('tags');
 
         if ($req->getRequestFormat() !== 'json') {
-            return $this->render('PackagistWebBundle:Web:search.html.twig', ['packages' => []]);
+            return $this->render('PackagistWebBundle:Web:search.html.twig', [
+                'packages' => [],
+                'tags' => $tagsFilter
+            ]);
         }
 
         if (!$req->query->has('search_query') && !$typeFilter && !$tagsFilter) {

+ 16 - 3
src/Packagist/WebBundle/Resources/public/js/search.js

@@ -3,6 +3,12 @@ document.getElementById('search_query_query').addEventListener('keydown', functi
         e.preventDefault();
     }
 });
+var searchParameters = algoliaConfig.tags ? {
+    facets: ['tags'],
+    facetsRefinements: {
+        tags: [algoliaConfig.tags]
+    }
+} : {};
 
 var search = instantsearch({
     appId: algoliaConfig.app_id,
@@ -13,13 +19,20 @@ var search = instantsearch({
     },
     searchFunction: function(helper) {
         var searchResults = $('#search-container');
-        if (helper.state.query === '' && helper.state.hierarchicalFacetsRefinements.type === undefined && helper.state.hierarchicalFacetsRefinements.tags === undefined) {
+
+        if (helper.state.query === ''
+            && helper.state.hierarchicalFacetsRefinements.type === undefined
+            && helper.state.hierarchicalFacetsRefinements.tags === undefined
+            && algoliaConfig.tags.length == 0
+        ) {
             searchResults.addClass('hidden');
         } else {
-            helper.search();
             searchResults.removeClass('hidden');
         }
-    }
+
+        helper.search();
+    },
+    searchParameters: searchParameters
 });
 
 search.addWidget(

+ 1 - 0
src/Packagist/WebBundle/Resources/views/layout.html.twig

@@ -204,6 +204,7 @@
 
         <script>
             var algoliaConfig = {{ algolia|json_encode|raw }};
+            algoliaConfig['tags'] = '{{ tags|default(false) }}';
         </script>
 
         <script src="{{ asset('libs/jquery-2.1.4.min.js') }}"></script>