diff --git a/static/src/js/cmis_file_preview.js b/static/src/js/cmis_file_preview.js new file mode 100644 index 0000000000000000000000000000000000000000..46239ffc7cc2403306f9b7d8418a23ec2b86e689 --- /dev/null +++ b/static/src/js/cmis_file_preview.js @@ -0,0 +1,63 @@ +/* --------------------------------------------------------------- + Copyright 2020 Le Filament + License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +------------------------------------------------------------------*/ + +odoo.define("cgscop_alfresco.cmis_file_preview", function (require) { + "use strict"; + + var core = require("web.core"); + var registry = require('web.field_registry'); + var AbstractField = require('web.AbstractField'); + var basicFields = require('web.basic_fields'); + var cmis_widgets = require("cmis_web.form_widgets"); + var DocumentViewer = require('cmis_web.DocumentViewer') + var session = require("web.session"); + + var _t = core._t; + var QWeb = core.qweb; + + var FieldCmisFilePreview = AbstractField.extend({ + template: "CmisFilePreview", + events: { + "click": "on_click_preview" + }, + on_click_preview: function (event) { + event.stopPropagation(); + var self = this + + // CGSCOP : appel vers la fonction custom + self._rpc({ + route: "/web/alfresco/session-backend", + params: { + username: session.username, + }, + }).then(function (result) { + self.cmis_session = cmis.createSession(result.backend_location); + self.cmis_session.alf_ticket = result.ticket; + self.cmis_session.setCredentials("ROLE_TICKET", result.ticket); + self.cmis_session.loadRepositories() + .ok(function (data) { + self.cmis_session.getObject(self.value) + .ok(function (object) { + var cmisObjectWrapped = new cmis_widgets.CmisObjectWrapper(self, object, self.cmis_session); + var documentViewer = new DocumentViewer(self, cmisObjectWrapped, [cmisObjectWrapped]); + documentViewer.appendTo($('body')); + }) + .notOk(function (error) { + console.log(error); + }); + }) + .notOk(function (error) { + console.log(error); + }); + }); + }, + }); + + registry.add('cmis_file_preview', FieldCmisFilePreview); + + return { + FieldCmisFilePreview: FieldCmisFilePreview, + }; +}); diff --git a/static/src/xml/cmis_file_preview.xml b/static/src/xml/cmis_file_preview.xml new file mode 100644 index 0000000000000000000000000000000000000000..15c596cf350c7fda2d3c8a5f0f598da544ada783 --- /dev/null +++ b/static/src/xml/cmis_file_preview.xml @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<templates id="template" xml:space="preserve"> + + <t t-name="CmisFilePreview"> + <div class="cmis_file_preview"> + <button + type="button" + t-att-class="'btn ' + widget.attrs.color" + aria-label="Preview" + data-toggle="tooltip" + title="Preview" + > + <t t-if="widget.attrs.icon"> + <span + t-att-class="'fa ' + widget.attrs.icon" + /> + </t> + <span> + <t t-esc="widget.attrs.string" /> + </span> + </button> + </div> + </t> +</templates> diff --git a/views/assets.xml b/views/assets.xml index 8c46ab50459173ba5bdbc0352e861be85094a02a..484a147c58051f56101cf128dd89f7699774c5ab 100644 --- a/views/assets.xml +++ b/views/assets.xml @@ -8,6 +8,10 @@ inherit_id="cmis_web.assets_backend" > <xpath expr="." position="inside"> + <script + type="text/javascript" + src="/cgscop_alfresco/static/src/js/cmis_file_preview.js" + /> <script type="text/javascript" src="/cgscop_alfresco/static/src/js/form_widgets.js"