/* ---------------------------------------------------------------
    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,
    };
});