<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" />
<link rel="stylesheet" href="{{ asset('bundles/app/frontend/dist/styles.css') }}?v={{ parameters.app_version }}">
<link rel="stylesheet" href="{{ asset('bundles/app/frontend/js/pdfviewer/samples/style.css') }}" />
<script src="{{ asset('bundles/app/frontend/js/pdfviewer/lib/webviewer.min.js') }}"></script>
<script src="{{ asset('bundles/app/frontend/js/pdfviewer/samples/old-browser-checker.js') }}"></script>
<script src="{{ asset('bundles/app/frontend/js/pdfviewer/samples/global.js') }}"></script>
<title>Urner Wochenblatt - E-Paper</title>
{# <script src="{{ asset('bundles/app/frontend/js/pdfviewer/samples/modernizr.custom.min.js') }}"></script>#}
</head>
<body>
<header>
<div class="title sample">
<a href="{{ path('fe.home') }}">Urner Wochenblatt</a>
</div>
<div class="links">
<a href="{{ path('fe.home') }}">Startseite</a> | <a href="{{ path('fe.abo_logout') }}">Abmelden</a><br>
</div>
</header>
<aside>
{% for ausgabe in ausgabenMitBild %}
<p>
<a class="image-select" data-target="{{ path('fe.epaper.pdf', {'filename': ausgabe.filename}) }}" href="#">
<img src="{{ path('fe.epaper.image', {'filename': ausgabe.filename|lower|replace({'.pdf':'.jpg'})}) }}" style="border:1px solid #ededed;max-width: 199px"><br>
<span>
<b>{{ ausgabe | uwAusgabeName }}</b> {{ ausgabe | uwAusgabeDate | format_datetime(pattern="d. MMMM", locale='de') }}
</span>
</a>
</p>
{% endfor%}
<select class="mb-3" id="js-select" style="width: 100%">
<option value="">Alle Ausgaben</option>
{% for ausgabe in ausgaben %}
{% if ausgabe | uwAusgabeDate < date() %}
<option value="{{ path('fe.epaper.pdf', {'filename': ausgabe.filename}) }}">
{{ ausgabe | uwAusgabeName }}
{{ ausgabe | uwAusgabeDate | format_datetime(pattern="d. MMMM", locale='de') }}
</option>
{% endif %}
{% endfor%}
</select>
</aside>
<div id="viewer"></div>
{% set showFullArticle = abonnent_authenticated() or is_granted('MODULE_ARTIKEL') %}
{% if not showFullArticle %}
{% set titelShort = "E-Paper" %}
{% set titel = "Das E-Paper steht nur unseren E-Paper-Abonnenten zur Verfügung." %}
{% include "frontend/_partials/_paywall.html.twig" %}
{% endif %}
<script src="{{ asset('bundles/app/frontend/js/pdfviewer/samples/menu-button.js') }}"></script>
<script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
<script async src="{{ asset('bundles/app/frontend/dist/scripts.js') }}?v={{ parameters.app_version }}"></script>
<!--ga-tag-->
<script>
WebViewer({
licenseKey: '{{ parameters.pdf_js_licence }}',
path: '{{ asset('bundles/app/frontend/js/pdfviewer/lib') }}', // path to the PDF.js Express'lib' folder on your server
{% if showFullArticle %}
initialDoc: '{{ path('fe.epaper.pdf', {'filename': lastIssue.pdf}) }}',
{% endif %}
}, document.getElementById('viewer'))
.then(instance => {
// now you can access APIs through the WebViewer instance
const { Core, UI } = instance;
const { Tools } = instance.Core;
var currentPageNumber = 1;
instance.UI.disableElements(['thumbnailsSizeSlider','downloadButton','themeChangeButton','languageButton','panToolButton','selectToolButton','textSelectButton','menuButton']);
instance.UI.disableFeatures([instance.UI.Feature.Annotations]);
instance.UI.setLanguage('de');
instance.UI.setHeaderItems((header) => {
header.getHeader('default').push(
{
img: "icon-header-full-screen",
index: -1,
type: "actionButton",
element: 'fullScreenButton',
hidden: [ 'small-mobile','mobile','tablet' ],
onClick: () => {
instance.UI.toggleFullScreen()
}
},
{
img: 'icon-header-print-line',
index: -1,
type: "actionButton",
element: 'printButton',
onClick: () => {
printCurrentPage()
}
});
});
//Set Hand Tool by Default
const panTool = Tools.ToolNames.PAN;
instance.UI.setToolMode(panTool);
// PDF nach dem Laden, auf die Fensterbreite aufziehen
// https://pdfjs.express/documentation/changelog/8.6.0
Core.documentViewer.addEventListener('documentLoaded', () => {
instance.setFitMode(instance.FitMode.FitWidth);
});
// C+P
Core.documentViewer.addEventListener('keyDown', (e) => {
if((e.ctrlKey || e.metaKey) && (e.key == "p" || e.charCode == 16 || e.charCode == 112 || e.keyCode == 80) ){
printCurrentPage();
e.cancelBubble = true;
e.preventDefault();
e.stopImmediatePropagation();
}
//usePrintButton(e);
});
document.getElementById('js-select').onchange = e => {
instance.UI.loadDocument(e.target.value);
//Close Aside when Burger is active
if (menuButton.offsetParent !== null) {
asideElement.style.display = 'none';
}
};
const imageSelects = document.getElementsByClassName("image-select");
const loadDocument = function() {
let attribute = this.getAttribute("data-target");
instance.UI.loadDocument(attribute);
//Close Aside when Burger is active
if (menuButton.offsetParent !== null) {
asideElement.style.display = 'none';
}
};
Array.from(imageSelects).forEach(function(element) {
element.addEventListener('click', loadDocument);
});
//https://pdfjs.community/t/listen-for-the-print-event/1492/3
// Print-----------------------
// Qualität auf Hoch setzen
instance.UI.setPrintQuality(2);
// Listener beim Seitenwechsel speichert die aktuelle Seitennummer
Core.documentViewer.addEventListener('pageNumberUpdated', (pageNumber) => {
currentPageNumber = pageNumber;
});
//https://pdfjs.community/t/customize-print-options/490
instance.updateElement('printButton', {
onClick: () => {
printCurrentPage();
}
})
function printCurrentPage(){
instance.UI.printInBackground({
pagesToPrint:[currentPageNumber],
includeComments:false,
includeAnnotations: false,
maintainPageOrientation: true,
onProgress: function(pageNumber, htmlElement) {},
});
}
//Shortcuts disablen, weil sonst das Print Modal kommt
instance.UI.hotkeys.off(instance.UI.hotkeys.Keys.CTRL_P);
instance.UI.hotkeys.off(instance.UI.hotkeys.Keys.COMMAND_P);
// End Print-----------------------
});
// Modernizr.addTest('async', function() {
// try {
// var result;
// eval('let a = () => {result = "success"}; let b = async () => {await a()}; b()');
// return result === 'success';
// } catch (e) {
// return false;
// }
// });
// test for async and fall back to code compiled to ES5 if they are not supported
{#['{{ asset('bundles/app/frontend/js/pdfviewer/samples/viewing/viewing/viewing.js') }}'].forEach(function(js) {#}
{# var script = Modernizr.async ? js : js.replace('.js', '.ES5.js');#}
{# var scriptTag = document.createElement('script');#}
{# scriptTag.src = script;#}
{# scriptTag.type = 'text/javascript';#}
{# document.getElementsByTagName('head')[0].appendChild(scriptTag);#}
{#});#}
</script>
<script>
$( document ).ready(function() {
var $jqLoginForm = $('.jqLoginForm');
var $jqPaywallInfo = $('.jqPaywallInfo');
$('.jqLoginBtn').on('click', function(){
$jqPaywallInfo.slideUp(function() {
$jqLoginForm.slideDown(function(){
$('.jqUsernameField').focus();
});
});
});
$('.jqLoginAbbrechenBtn').on('click', function (e) {
$jqLoginForm.slideUp(function() {
$jqPaywallInfo.slideDown();
});
});
$(document).on('keydown', function(e) {
if((e.ctrlKey || e.metaKey) && (e.key == "p" || e.charCode == 16 || e.charCode == 112 || e.keyCode == 80) ){
alert("Bitte benutzen Sie den Print-Button in der Menuleiste des PDF-Viewers, um die aktuelle Seite zu drucken!");
e.cancelBubble = true;
e.preventDefault();
e.stopImmediatePropagation();
}
});
});
</script>
</body>
</html>