From 26408c53c1bebaf6dd4fc23713c2e51a30a309f9 Mon Sep 17 00:00:00 2001 From: Louis Chemineau Date: Mon, 26 Jul 2021 16:13:49 +0200 Subject: [PATCH 1/2] Set openfile params when following internal links Signed-off-by: Louis Chemineau --- apps/files/lib/Controller/ViewController.php | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/apps/files/lib/Controller/ViewController.php b/apps/files/lib/Controller/ViewController.php index da828cc60746a..14bf2144818e2 100644 --- a/apps/files/lib/Controller/ViewController.php +++ b/apps/files/lib/Controller/ViewController.php @@ -159,7 +159,7 @@ protected function getStorageInfo() { public function showFile(string $fileid = null): Response { // This is the entry point from the `/f/{fileid}` URL which is hardcoded in the server. try { - return $this->redirectToFile($fileid); + return $this->redirectToFile($fileid, true); } catch (NotFoundException $e) { return new RedirectResponse($this->urlGenerator->linkToRoute('files.view.index', ['fileNotFound' => true])); } @@ -332,10 +332,11 @@ public function index($dir = '', $view = '', $fileid = null, $fileNotFound = fal * Redirects to the file list and highlight the given file id * * @param string $fileId file id to show + * @param bool $setOpenfile - wether or not to set the openfile URL parameter * @return RedirectResponse redirect response or not found response * @throws \OCP\Files\NotFoundException */ - private function redirectToFile($fileId) { + private function redirectToFile($fileId, bool $setOpenfile = false) { $uid = $this->userSession->getUser()->getUID(); $baseFolder = $this->rootFolder->getUserFolder($uid); $files = $baseFolder->getById($fileId); @@ -357,6 +358,11 @@ private function redirectToFile($fileId) { $params['dir'] = $baseFolder->getRelativePath($file->getParent()->getPath()); // and scroll to the entry $params['scrollto'] = $file->getName(); + + if ($setOpenfile) { + // forward the openfile URL parameter. + $params['openfile'] = $fileId; + } } return new RedirectResponse($this->urlGenerator->linkToRoute('files.view.index', $params)); From 1dd9bcc514c96a7afe9308b41f75b73627485def Mon Sep 17 00:00:00 2001 From: Louis <6653109+artonge@users.noreply.github.com> Date: Wed, 28 Jul 2021 11:15:03 +0200 Subject: [PATCH 2/2] Fix typo Co-authored-by: Pytal <24800714+Pytal@users.noreply.github.com> --- apps/files/lib/Controller/ViewController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/files/lib/Controller/ViewController.php b/apps/files/lib/Controller/ViewController.php index 14bf2144818e2..10ff6ee8bd588 100644 --- a/apps/files/lib/Controller/ViewController.php +++ b/apps/files/lib/Controller/ViewController.php @@ -332,7 +332,7 @@ public function index($dir = '', $view = '', $fileid = null, $fileNotFound = fal * Redirects to the file list and highlight the given file id * * @param string $fileId file id to show - * @param bool $setOpenfile - wether or not to set the openfile URL parameter + * @param bool $setOpenfile - whether or not to set the openfile URL parameter * @return RedirectResponse redirect response or not found response * @throws \OCP\Files\NotFoundException */