@@ -457,19 +457,20 @@ public function getFilesAssociatedFilesWithMe(
457457 ];
458458 }
459459
460- public function getFilesToSearchProvider (IUser $ user , string $ term , int $ limit , int $ offset ): array {
460+ public function getFilesToSearchProvider (IUser $ user , string $ fileName , int $ limit , int $ offset ): array {
461461 $ filter = [
462462 'page ' => ($ offset / $ limit ) + 1 ,
463463 'length ' => $ limit ,
464+ 'fileName ' => $ fileName ,
464465 ];
465466
466- $ qb = $ this ->getFilesAssociatedFilesWithMeQueryBuilder ($ user ->getUID (), $ filter );
467+ $ sort = [
468+ 'sortBy ' => 'created_at ' ,
469+ 'sortDirection ' => 'desc ' ,
470+ ];
471+
472+ $ qb = $ this ->getFilesAssociatedFilesWithMeQueryBuilder ($ user ->getUID (), $ filter , false , $ sort );
467473
468- if (!empty ($ term )) {
469- $ qb ->andWhere (
470- $ qb ->expr ()->like ('f.name ' , $ qb ->createNamedParameter ('% ' . $ this ->db ->escapeLikeParameter ($ term ) . '% ' ))
471- );
472- }
473474
474475 $ qb ->orderBy ('f.created_at ' , 'DESC ' );
475476
@@ -478,16 +479,7 @@ public function getFilesToSearchProvider(IUser $user, string $term, int $limit,
478479
479480 while ($ row = $ result ->fetch ()) {
480481 try {
481- $ file = new File ();
482- $ file ->setId ((int )$ row ['id ' ]);
483- $ file ->setUserId ($ row ['user_id ' ]);
484- $ file ->setNodeId ((int )($ row ['node_id ' ] ?? 0 ));
485- $ file ->setSignedNodeId ($ row ['signed_node_id ' ] ? (int )$ row ['signed_node_id ' ] : null );
486- $ file ->setName ($ row ['name ' ] ?? '' );
487- $ file ->setStatus ((int )($ row ['status ' ] ?? 0 ));
488- $ file ->setUuid ($ row ['uuid ' ] ?? '' );
489- $ file ->setCreatedAt ($ row ['created_at ' ] ?? '' );
490-
482+ $ file = File::fromRow ($ row );
491483
492484 $ files [] = $ file ;
493485 } catch (\Exception $ e ) {
@@ -573,7 +565,7 @@ public function getMyLibresignFile(string $userId, ?array $filter = []): File {
573565 return $ file ->fromRow ($ row );
574566 }
575567
576- private function getFilesAssociatedFilesWithMeQueryBuilder (string $ userId , array $ filter = [], bool $ count = false ): IQueryBuilder {
568+ private function getFilesAssociatedFilesWithMeQueryBuilder (string $ userId , array $ filter = [], bool $ count = false , array $ sort = [] ): IQueryBuilder {
577569 $ qb = $ this ->db ->getQueryBuilder ();
578570 $ qb ->from ('libresign_file ' , 'f ' )
579571 ->leftJoin ('f ' , 'libresign_sign_request ' , 'sr ' , 'sr.file_id = f.id ' )
@@ -676,26 +668,21 @@ private function getFilesAssociatedFilesWithMeQueryBuilder(string $userId, array
676668 $ qb ->expr ()->lte ('f.created_at ' , $ qb ->createNamedParameter ($ end , IQueryBuilder::PARAM_STR ))
677669 );
678670 }
671+ if (!empty ($ filter ['fileName ' ])) {
672+ $ qb ->andWhere (
673+ $ qb ->expr ()->like ('f.name ' , $ qb ->createNamedParameter ('% ' . $ this ->db ->escapeLikeParameter ($ filter ['fileName ' ]) . '% ' ))
674+ );
675+ }
679676 if (!empty ($ filter ['parentFileId ' ])) {
680677 $ qb ->andWhere (
681678 $ qb ->expr ()->eq ('f.parent_file_id ' , $ qb ->createNamedParameter ($ filter ['parentFileId ' ], IQueryBuilder::PARAM_INT ))
682679 );
683680 } else {
684681 $ qb ->andWhere ($ qb ->expr ()->isNull ('f.parent_file_id ' ));
685682 }
686- } else {
687- $ qb ->andWhere ($ qb ->expr ()->isNull ('f.parent_file_id ' ));
688683 }
689- return $ qb ;
690- }
691684
692- private function getFilesAssociatedFilesWithMeStmt (
693- string $ userId ,
694- ?array $ filter = [],
695- ?array $ sort = [],
696- ): Pagination {
697- $ qb = $ this ->getFilesAssociatedFilesWithMeQueryBuilder ($ userId , $ filter );
698- if (!empty ($ sort ['sortBy ' ])) {
685+ if (!empty ($ sort ['sortBy ' ]) && !empty ($ sort ['sortDirection ' ])) {
699686 switch ($ sort ['sortBy ' ]) {
700687 case 'name ' :
701688 case 'status ' :
@@ -712,6 +699,16 @@ private function getFilesAssociatedFilesWithMeStmt(
712699 }
713700 }
714701
702+ return $ qb ;
703+ }
704+
705+ private function getFilesAssociatedFilesWithMeStmt (
706+ string $ userId ,
707+ ?array $ filter = [],
708+ ?array $ sort = [],
709+ ): Pagination {
710+ $ qb = $ this ->getFilesAssociatedFilesWithMeQueryBuilder ($ userId , $ filter , false , $ sort );
711+
715712 $ countQb = $ this ->getFilesAssociatedFilesWithMeQueryBuilder (
716713 userId: $ userId ,
717714 filter: $ filter ,
0 commit comments