Inline PDF viewer in shared EPUB/CBZ files
All checks were successful
epubreader / nextcloud-22 (push) Successful in 43s
epubreader / nextcloud-27 (push) Successful in 44s

This commit is contained in:
Michel Roux 2023-08-02 22:14:24 +02:00
parent 7da83b2595
commit 4a30c02521
2 changed files with 33 additions and 12 deletions

View File

@ -144,15 +144,37 @@ OC.Plugins.register('OCA.Files.FileList', OCA.Epubreader.Plugin);
// FIXME: Hack for single public file view since it is not attached to the fileslist
window.addEventListener('DOMContentLoaded', function () {
if ($('#isPublic').val()
&& ($('#mimetype').val() === 'application/epub+zip'
|| $('#mimetype').val() === 'application/pdf'
|| $('#mimetype').val() === 'application/x-cbr')
var supported_mimetypes = ['application/epub+zip', 'application/pdf', 'application/x-cbr'];
if (!$('#isPublic').val() || !supported_mimetypes.includes($('#mimetype').val())
) {
return;
}
var sharingToken = $('#sharingToken').val();
var downloadUrl = OC.generateUrl('/s/{token}/download', {token: sharingToken});
var viewer = OCA.Epubreader.Plugin;
var content = $('#files-public-content');
var footerElmt = document.querySelector('body > footer') || document.querySelector('#app-content > footer')
var mainContent = document.querySelector('#content')
var mime = $('#mimetype').val();
viewer.show(downloadUrl, mime, false);
}
var viewerUrl = OC.generateUrl('/apps/epubreader/?file={file}&type={type}', {file: downloadUrl, type: mime});
// Create viewer frame
const viewerNode = document.createElement('iframe')
viewerNode.style.height = '100%'
viewerNode.style.width = '100%'
viewerNode.style.position = 'absolute'
// Inject viewer
content.empty()
content.append(viewerNode)
viewerNode.src = viewerUrl
footerElmt.style.display = 'none'
mainContent.style.minHeight = 'calc(100% - var(--header-height))' // Make the viewer take the whole height as the footer is now hidden.
// overwrite style in order to fix the viewer on public pages
mainContent.style.marginLeft = '0'
mainContent.style.marginRight = '0'
mainContent.style.width = '100%'
mainContent.style.borderRadius = 'unset'
});

View File

@ -17,7 +17,6 @@ use OCP\AppFramework\Http\ContentSecurityPolicy;
use OCP\AppFramework\Http\TemplateResponse;
use OCP\Files\FileInfo;
use OCP\Files\Folder;
use OCP\Files\InvalidPathException;
use OCP\Files\IRootFolder;
use OCP\Files\NotFoundException;
use OCP\IRequest;
@ -109,7 +108,7 @@ class PageController extends Controller
*
* @param string $path path-fragment from url
*
* @throws InvalidPathException|NotFoundException
* @throws NotFoundException
*/
private function getFileInfo(string $path): array
{