Skip to content
Extraits de code Groupes Projets
cmis_file_preview.js 2,43 ko
Newer Older
  • Learn to ignore specific revisions
  • /* ---------------------------------------------------------------
        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,
        };
    });