248 lines
17 KiB
XML
248 lines
17 KiB
XML
<?xml version="1.0" ?>
|
|
<openerp>
|
|
<data>
|
|
|
|
<!-- Bundle (minimal) for embedded slide iframe -->
|
|
<template id="website_slides.slide_embed_assets" name="Website slides embed assets">
|
|
<link rel='stylesheet' href='/web/static/lib/fontawesome/css/font-awesome.css'/>
|
|
<link rel='stylesheet' href='/web/static/lib/bootstrap/css/bootstrap.css'/>
|
|
<link type="text/less" href="/website_slides/static/src/less/website_slides.less" rel="stylesheet" t-ignore="true"/>
|
|
|
|
<script type="text/javascript" src="/web/static/lib/jquery/jquery.js"></script>
|
|
<script type="text/javascript" src="/web/static/lib/bootstrap/js/bootstrap.js"></script>
|
|
<t t-call="website_slides.pdf_js_lib"></t>
|
|
<script type="text/javascript" src="/website_slides/static/src/js/slides_embed.js"></script>
|
|
</template>
|
|
|
|
<!--
|
|
Bundle for PDFJS lib
|
|
Since PDFJS is quite huge (40000 lines), please only load it when it is necessary.
|
|
For now, it is only use to display the PDF slide Viewer during an embed.
|
|
Bundlized, the size is reduced to 3000 lines.
|
|
-->
|
|
<template id="pdf_js_lib" name="PDF Js library">
|
|
<script type="text/javascript" src="/website_slides/static/lib/pdfjs/shared/util.js"></script>
|
|
<!-- files required to handle PDF file. Found in https://github.com/mozilla/pdf.js/blob/master/examples/helloworld/index.html -->
|
|
<script type="text/javascript" src="/website_slides/static/lib/pdfjs/display/api.js"></script>
|
|
<script type="text/javascript" src="/website_slides/static/lib/pdfjs/display/metadata.js"></script>
|
|
<script type="text/javascript" src="/website_slides/static/lib/pdfjs/display/canvas.js"></script>
|
|
<script type="text/javascript" src="/website_slides/static/lib/pdfjs/display/webgl.js"></script>
|
|
<script type="text/javascript" src="/website_slides/static/lib/pdfjs/display/pattern_helper.js"></script>
|
|
<script type="text/javascript" src="/website_slides/static/lib/pdfjs/display/font_loader.js"></script>
|
|
<script type="text/javascript" src="/website_slides/static/lib/pdfjs/display/annotation_helper.js"></script>
|
|
<!-- files normally dynamically loaded in worker_loader.js -->
|
|
<script type="text/javascript" src="/website_slides/static/lib/pdfjs/core/network.js"></script>
|
|
<script type="text/javascript" src="/website_slides/static/lib/pdfjs/core/chunked_stream.js"></script>
|
|
<script type="text/javascript" src="/website_slides/static/lib/pdfjs/core/pdf_manager.js"></script>
|
|
<script type="text/javascript" src="/website_slides/static/lib/pdfjs/core/core.js"></script>
|
|
<script type="text/javascript" src="/website_slides/static/lib/pdfjs/core/obj.js"></script>
|
|
<script type="text/javascript" src="/website_slides/static/lib/pdfjs/core/charsets.js"></script>
|
|
<script type="text/javascript" src="/website_slides/static/lib/pdfjs/core/annotation.js"></script>
|
|
<script type="text/javascript" src="/website_slides/static/lib/pdfjs/core/function.js"></script>
|
|
<script type="text/javascript" src="/website_slides/static/lib/pdfjs/core/colorspace.js"></script>
|
|
<script type="text/javascript" src="/website_slides/static/lib/pdfjs/core/crypto.js"></script>
|
|
<script type="text/javascript" src="/website_slides/static/lib/pdfjs/core/pattern.js"></script>
|
|
<script type="text/javascript" src="/website_slides/static/lib/pdfjs/core/evaluator.js"></script>
|
|
<script type="text/javascript" src="/website_slides/static/lib/pdfjs/core/cmap.js"></script>
|
|
<script type="text/javascript" src="/website_slides/static/lib/pdfjs/core/fonts.js"></script>
|
|
<script type="text/javascript" src="/website_slides/static/lib/pdfjs/core/font_renderer.js"></script>
|
|
<script type="text/javascript" src="/website_slides/static/lib/pdfjs/core/glyphlist.js"></script>
|
|
<script type="text/javascript" src="/website_slides/static/lib/pdfjs/core/image.js"></script>
|
|
<script type="text/javascript" src="/website_slides/static/lib/pdfjs/core/metrics.js"></script>
|
|
<script type="text/javascript" src="/website_slides/static/lib/pdfjs/core/parser.js"></script>
|
|
<script type="text/javascript" src="/website_slides/static/lib/pdfjs/core/ps_parser.js"></script>
|
|
<script type="text/javascript" src="/website_slides/static/lib/pdfjs/core/stream.js"></script>
|
|
<script type="text/javascript" src="/website_slides/static/lib/pdfjs/core/worker.js"></script>
|
|
<script type="text/javascript" src="/website_slides/static/lib/pdfjs/core/arithmetic_decoder.js"></script>
|
|
<script type="text/javascript" src="/website_slides/static/lib/pdfjs/core/jpg.js"></script>
|
|
<script type="text/javascript" src="/website_slides/static/lib/pdfjs/core/jpx.js"></script>
|
|
<script type="text/javascript" src="/website_slides/static/lib/pdfjs/core/jbig2.js"></script>
|
|
<script type="text/javascript" src="/website_slides/static/lib/pdfjs/core/bidi.js"></script>
|
|
<script type="text/javascript" src="/website_slides/static/lib/pdfjs/core/murmurhash3.js"></script>
|
|
<!--
|
|
NOTE JEM : PDFJS not-minified load its assets dynamically. Not minify, this lib is huge (4000 lines).
|
|
To load PDFJS using odoo bundle, we create a custom worker_loader, to avoid reloading all the assets (core/*.js) dynamically.
|
|
Loading all this assets in a bundle can be problematic in debug mode, since we don't wait all assets to be loaded to start using PDFJS. That's why, in debug mode, we use the native loader,
|
|
otherwise our custom loader is used.
|
|
-->
|
|
<t t-if="not debug">
|
|
<script>
|
|
// Use Odoo PDFJS Loader, to avoid dynamic assets loading
|
|
PDFJS.workerSrc = '/website_slides/static/lib/pdfjs/worker_loader_by_odoo.js';
|
|
PDFJS.disableWorker = true;
|
|
</script>
|
|
</t>
|
|
<t t-if="debug">
|
|
<script>
|
|
// Specify the main script used to create a new PDF.JS web worker.
|
|
// In production, leave this undefined or change it to point to the
|
|
// combined `pdf.worker.js` file.
|
|
PDFJS.workerSrc = '/website_slides/static/lib/pdfjs/worker_loader.js';
|
|
</script>
|
|
</t>
|
|
<!--
|
|
If no loader defined, this file will try to load pdf.worker.js (in build/).
|
|
It will crash since we don't use the minified version of PDFJS
|
|
-->
|
|
<script type="text/javascript" src="/website_slides/static/lib/pdfjs/pdf.js"></script>
|
|
|
|
<script type="text/javascript" src="/website_slides/static/lib/pdfslidesviewer/PDFSlidesViewer.js"></script>
|
|
</template>
|
|
|
|
<!--
|
|
This template is the PDF Viewer. It will mostly rendered throught an iFrame.
|
|
The js file to bind event is slides_embed.js
|
|
-->
|
|
<template id="embed_slide" name="Embedded Slide Page">
|
|
<html>
|
|
<head t-if="not private">
|
|
<title><t t-esc="slide.name"/></title>
|
|
<script type="text/javascript" src="/website_slides/static/lib/pdfslidesviewer/PDFSlidesViewer.js"></script>
|
|
<t t-call-assets="website_slides.slide_embed_assets"/>
|
|
</head>
|
|
<body t-if="private" style="position: inherit;">
|
|
<title><t t-esc="slide.name"/></title>
|
|
<div class="slide-private-view">
|
|
<h3 style="border-bottom: 1px solid !important;padding-bottom: 10px;"><i class="fa fa-exclamation-triangle"></i> This <t t-esc="slide.slide_type"/> is private.</h3>
|
|
<div t-field="slide.channel_id.access_error_msg" />
|
|
</div>
|
|
</body>
|
|
<body>
|
|
<div id="PDFViewer" t-if="not private" class="panel panel-default oe_slides_panel">
|
|
<!-- PDF Viewer Header : contains the name, and the share links -->
|
|
<div t-if="is_embedded" class="navbar-default oe_slides_share_bar">
|
|
<div class="container-fluid">
|
|
<div class="row">
|
|
<div class="col-lg-8 col-md-8 col-sm-4 col-xs-4 text-left">
|
|
<div class="oe_slides_ellipsis">
|
|
<a target="_new" t-att-href="slide.share_url">
|
|
<span t-esc="slide.name" t-attf-title="#{slide.name}"/>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
<div class="col-lg-1 col-md-1 col-sm-2 col-xs-2 text-right">
|
|
<b class="oe_slide_js_embed_option_link" data-slide-option-id="#slide_share"><i class="fa fa-share-alt"></i> Share</b>
|
|
</div>
|
|
<div class="col-lg-1 col-md-1 col-sm-2 col-xs-2 text-right">
|
|
<b class="oe_slide_js_embed_option_link" data-slide-option-id="#slide_email"><i class="fa fa-envelope"></i> Email</b>
|
|
</div>
|
|
<div class="col-lg-1 col-md-1 col-sm-2 col-xs-2 text-right">
|
|
<b class="oe_slide_js_embed_option_link" data-slide-option-id="#slide_embed"><i class="fa fa-code"></i> Embed</b>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- PDF Viewer Body : contains the canvas, the loader, or the image-->
|
|
<div id="PDFSlideViewer" style="position:relative;"
|
|
t-attf-data-slideid="#{slide.id}"
|
|
t-attf-data-slideurl="/slides/slide/#{slide.id}/pdf_content"
|
|
t-attf-data-downloadable="#{slide.download_security}"
|
|
t-att-data-defaultpage="page">
|
|
<t t-if="is_embedded">
|
|
<div id="slide_share" class="oe_slide_embed_option">
|
|
<t t-call="website_slides.slide_social_media"/>
|
|
</div>
|
|
<div id="slide_email" class="oe_slide_embed_option">
|
|
<t t-call="website_slides.slide_social_email"/>
|
|
</div>
|
|
<div id="slide_embed" class="oe_slide_embed_option">
|
|
<t t-call="website_slides.slide_social_embed"/>
|
|
</div>
|
|
</t>
|
|
<div id="slide_suggest" class="oe_slide_embed_option">
|
|
<t t-foreach="related_slides" t-as="suggest_slide">
|
|
<div class="col-md-4 col-sm-4 col-xs-4 oe_slides_suggestion_media">
|
|
<a t-att-href="suggest_slide.share_url" target="_new">
|
|
<div class="oe_slides_suggestion_caption">
|
|
<h4><t t-esc="suggest_slide.name"/></h4>
|
|
</div>
|
|
<span class="oe-image-thumbnail">
|
|
<img class="img-responsive" t-attf-src="/website/image/slide.slide/#{suggest_slide.id}/image_thumb" alt="suggest_slide.name"/>
|
|
</span>
|
|
</a>
|
|
|
|
</div>
|
|
</t>
|
|
</div>
|
|
<t t-if="slide.slide_type in ('presentation', 'document')">
|
|
<div id="PDFViewerLoader" class="oe_slides_loader">
|
|
<img class="img-responsive" t-attf-src="/website/image/slide.slide/#{slide.id}/image_medium" style="margin:auto;height:100%"/>
|
|
<h4 class="text-center">
|
|
<i class="fa fa-spinner fa-spin"></i> Loading ...
|
|
</h4>
|
|
</div>
|
|
<canvas id="PDFViewerCanvas" class="img-responsive" style="margin:auto;height:100%;display:none;"></canvas>
|
|
</t>
|
|
<t t-if="slide.slide_type in ('infographic')">
|
|
<img t-attf-src="/website/image/slide.slide/#{slide.id}/datas" class="img-responsive" style="width:100%"/>
|
|
</t>
|
|
</div>
|
|
<!-- Fixed bottom navbar -->
|
|
<div class="navbar navbar-default navbar-fixed-bottom" role="navigation" t-if="slide.slide_type in ('presentation', 'document')">
|
|
<div class="container-fluid oe_slides_panel_footer">
|
|
<div class="row" style="padding-top:15px;">
|
|
<div class="col-lg-2 col-md-2 col-sm-2 col-xs-2 text-left">
|
|
<input type="number" class="text-center slide-img-border" style="width: 45px;" id="page_number"></input> / <span id="page_count"></span>
|
|
</div>
|
|
<div class="col-lg-8 col-md-8 col-sm-8 col-xs-8">
|
|
<div class="col-lg-4 col-md-4 col-sm-4 col-xs-4 text-center"></div>
|
|
<div class="col-lg-1 col-md-1 col-sm-1 col-xs-1 text-center">
|
|
<span id="first" title="First slide">
|
|
<i class="fa fa-step-backward fa-2x"></i>
|
|
</span>
|
|
</div>
|
|
<div class="col-lg-1 col-md-1 col-sm-1 col-xs-1 text-center">
|
|
<span id="previous" title="Previous slide" role="button">
|
|
<i class="fa fa-arrow-circle-left fa-2x"></i>
|
|
</span>
|
|
</div>
|
|
<div class="col-lg-1 col-md-1 col-sm-1 col-xs-1 text-center">
|
|
<span id="next" title="Next slide" role="button">
|
|
<i class="fa fa-arrow-circle-right fa-2x"></i>
|
|
</span>
|
|
</div>
|
|
<div class="col-lg-1 col-md-1 col-sm-1 col-xs-1 text-center">
|
|
<span id="last" title="Last slide" role="button">
|
|
<i class="fa fa-step-forward fa-2x"></i>
|
|
</span>
|
|
</div>
|
|
<div class="col-lg-4 col-md-4 col-sm-4 col-xs-4 text-center"></div>
|
|
</div>
|
|
<div class="col-lg-2 col-md-2 col-sm-2 col-xs-2 text-right">
|
|
<a t-if="slide.download_security and not is_embedded" t-attf-href="/slides/slide/#{slide.id}/download" title="Download" id="download">
|
|
<i class="fa fa-download fa-2x"></i>
|
|
</a>
|
|
<span id="fullscreen" title="View fullscreen">
|
|
<i class="fa fa-arrows-alt fa-2x"></i>
|
|
</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|
|
</template>
|
|
|
|
<!--
|
|
Template render isntead of Embedded Slide, it this one is forbidden.
|
|
So, it will mostly be rendered throught an iFrame
|
|
-->
|
|
<template id="embed_slide_forbidden" name="Forbidden Embedded Slide">
|
|
<html>
|
|
<head t-if="not private">
|
|
<title><t t-esc="slide.name"/></title>
|
|
<t t-call-assets="website_slides.slide_embed_assets" t-js="false"/>
|
|
</head>
|
|
<body>
|
|
<title><t t-esc="slide.name"/></title>
|
|
<div class="slide-private-view">
|
|
<h3 style="border-bottom: 1px solid !important;padding-bottom: 10px;"><i class="fa fa-exclamation-triangle"></i> This <t t-esc="slide.slide_type"/> is private.</h3>
|
|
<div t-field="slide.channel_id.access_error_msg" />
|
|
</div>
|
|
</body>
|
|
</html>
|
|
</template>
|
|
</data>
|
|
</openerp>
|