Browse Source

Merge remote-tracking branch 'Soullivaneuh/abandonned-at-end'

Jordi Boggiano 8 years ago
parent
commit
47ce75c205

+ 1 - 2
src/Packagist/WebBundle/Controller/UserController.php

@@ -169,8 +169,7 @@ class UserController extends Controller
     {
     {
         $packages = $this->getDoctrine()
         $packages = $this->getDoctrine()
             ->getRepository('PackagistWebBundle:Package')
             ->getRepository('PackagistWebBundle:Package')
-            ->getFilteredQueryBuilder(array('maintainer' => $user->getId()))
-            ->orderBy('p.name');
+            ->getFilteredQueryBuilder(array('maintainer' => $user->getId()), true);
 
 
         $paginator = new Pagerfanta(new DoctrineORMAdapter($packages, true));
         $paginator = new Pagerfanta(new DoctrineORMAdapter($packages, true));
         $paginator->setMaxPerPage(15);
         $paginator->setMaxPerPage(15);

+ 11 - 2
src/Packagist/WebBundle/Entity/PackageRepository.php

@@ -205,7 +205,7 @@ class PackageRepository extends EntityRepository
         return $qb->getQuery()->getResult();
         return $qb->getQuery()->getResult();
     }
     }
 
 
-    public function getFilteredQueryBuilder(array $filters = array())
+    public function getFilteredQueryBuilder(array $filters = array(), $orderByName = false)
     {
     {
         $qb = $this->getEntityManager()->createQueryBuilder();
         $qb = $this->getEntityManager()->createQueryBuilder();
         $qb->select('p')
         $qb->select('p')
@@ -216,7 +216,12 @@ class PackageRepository extends EntityRepository
             $qb->leftJoin('v.tags', 't');
             $qb->leftJoin('v.tags', 't');
         }
         }
 
 
-        $qb->orderBy('p.id', 'DESC');
+        $qb->orderBy('p.abandoned');
+        if (true === $orderByName) {
+            $qb->addOrderBy('p.name');
+        } else {
+            $qb->addOrderBy('p.id', 'DESC');
+        }
 
 
         $this->addFilters($qb, $filters);
         $this->addFilters($qb, $filters);
 
 
@@ -340,6 +345,10 @@ class PackageRepository extends EntityRepository
                     $qb->andWhere($qb->expr()->in('m.id', ':'.$name));
                     $qb->andWhere($qb->expr()->in('m.id', ':'.$name));
                     break;
                     break;
 
 
+                case 'vendor':
+                    $qb->andWhere('p.name LIKE :vendor');
+                    break;
+
                 default:
                 default:
                     $qb->andWhere($qb->expr()->in('p.'.$name, ':'.$name));
                     $qb->andWhere($qb->expr()->in('p.'.$name, ':'.$name));
                     break;
                     break;