mirror of
https://github.com/nextcloud/server.git
synced 2024-07-24 05:14:54 +02:00
Merge pull request #28174 from nextcloud/feature/set_openfile_for_internal_links
This commit is contained in:
commit
3ced8406a0
@ -165,7 +165,7 @@ class ViewController extends Controller {
|
||||
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]));
|
||||
}
|
||||
@ -179,7 +179,7 @@ class ViewController extends Controller {
|
||||
* @param string $view
|
||||
* @param string $fileid
|
||||
* @param bool $fileNotFound
|
||||
* @param string $openfile
|
||||
* @param string $openfile - the openfile URL parameter if it was present in the initial request
|
||||
* @return TemplateResponse|RedirectResponse
|
||||
* @throws NotFoundException
|
||||
*/
|
||||
@ -391,10 +391,11 @@ class ViewController extends Controller {
|
||||
* Redirects to the file list and highlight the given file id
|
||||
*
|
||||
* @param string $fileId file id to show
|
||||
* @param bool $setOpenfile - whether 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);
|
||||
@ -416,6 +417,11 @@ class ViewController extends Controller {
|
||||
$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));
|
||||
|
Loading…
Reference in New Issue
Block a user