Browse Source

Fix providers clashing with real packages in search results

Jordi Boggiano 7 years ago
parent
commit
4a33f20e5b

+ 1 - 1
src/Packagist/WebBundle/Command/IndexPackagesCommand.php

@@ -210,7 +210,7 @@ class IndexPackagesCommand extends ContainerAwareCommand
     {
         $record = [
             'id' => $provided,
-            'objectID' => $provided,
+            'objectID' => 'virtual:'.$provided,
             'name' => $provided,
             'package_organisation' => preg_replace('{/.*$}', '', $provided),
             'package_name' => preg_replace('{^[^/]*/}', '', $provided),

+ 4 - 2
src/Packagist/WebBundle/Resources/public/js/search.js

@@ -67,8 +67,10 @@ search.addWidget(
     instantsearch.widgets.hits({
         container: '.search-list',
         transformData: function (hit) {
+            hit.url = '/packages/' + hit.name;
             if (hit.type === 'virtual-package') {
                 hit.virtual = true;
+                hit.url = '/providers/' + hit.name;
             }
 
             return hit;
@@ -76,12 +78,12 @@ search.addWidget(
         templates: {
             empty: 'No packages found.',
             item: `
-<div data-url="/packages/{{ name }}" class="col-xs-12 package-item">
+<div data-url="{{ url }}" class="col-xs-12 package-item">
     <div class="row">
         <div class="col-sm-9 col-lg-10">
             <p class="pull-right language">{{ language }}</p>
             <h4 class="font-bold">
-                <a href="/packages/{{ name }}" tabindex="2">{{{ _highlightResult.name.value }}}</a>
+                <a href="{{ url }}" tabindex="2">{{{ _highlightResult.name.value }}}</a>
                 {{#virtual}}
                     <small>(Virtual Package)</small>
                 {{/virtual}}