From a0efe5873e232bc8e5f3daa70277118a5eef010e Mon Sep 17 00:00:00 2001 From: Benjamin <benjamin@le-filament.com> Date: Thu, 26 Nov 2020 17:19:58 +0100 Subject: [PATCH] [fix] popup on folder creation --- static/src/js/form_widgets.js | 64 +++++++++++++++++++++++++++++------ 1 file changed, 53 insertions(+), 11 deletions(-) diff --git a/static/src/js/form_widgets.js b/static/src/js/form_widgets.js index 54ed6d9..180a625 100644 --- a/static/src/js/form_widgets.js +++ b/static/src/js/form_widgets.js @@ -1,6 +1,6 @@ /*--------------------------------------------------------------- - Copyright 2020 Le Filament - License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +Copyright 2020 Le Filament +License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). ------------------------------------------------------------------*/ odoo.define('cgscop_alfresco.form_widgets', function(require) { @@ -11,9 +11,10 @@ odoo.define('cgscop_alfresco.form_widgets', function(require) { var session = require('web.session'); form_widgets.CmisObjectWrapper.include({ - /* Surcharge les fonction parse_object (téléchargement) - * et get_content_url (preview) pour passer le ticket - * l'url appelée + /* + * Surcharge les fonction parse_object (téléchargement) + * et get_content_url (preview) pour passer le ticket + * l'url appelée */ parse_object: function (cmis_object) { this._super.apply(this, arguments); @@ -32,10 +33,10 @@ odoo.define('cgscop_alfresco.form_widgets', function(require) { form_widgets.FieldCmisFolder.include({ /** - * Surcharge la fonction d'initialisation de la session CMIS pour - * passer le token de l'utilisateur - */ - init_cmis_session: function () { + * Surcharge la fonction d'initialisation de la session CMIS pour + * passer le token de l'utilisateur + */ + init_cmis_session: function () { var self = this; $.when(this.cmis_config_loaded).done(function () { self.cmis_session = cmis.createSession(self.cmis_location); @@ -52,6 +53,47 @@ odoo.define('cgscop_alfresco.form_widgets', function(require) { self.cmis_session.setCharacterSet(document.characterSet); }); }, - }); -}); + load_cmis_repositories: function () { + /** + * Surcharge la fonction de chargement des repositories après initialisation + * du dossier initial pour recharger correctement la page + */ + var dfd = $.Deferred(); + var self = this; + if (this.cmis_session.repositories) { + return dfd.resolve(); + } else { + if (self.cmis_session.alf_ticket) { + self.cmis_session + .loadRepositories() + .ok(function (data) { + dfd.resolve(); + }) + .notOk(function (error) { + self.on_cmis_error(error); + dfd.reject(error); + }); + } else { + // CGSCOP : appel vers la fonction custom + self._rpc({route:'/web/alfresco/session', params:{ + 'username': session.username + }}).done(function (result) { + self.cmis_session['alf_ticket'] = result; + self.cmis_session.setCredentials('ROLE_TICKET', result); + self.cmis_session + .loadRepositories() + .ok(function (data) { + dfd.resolve(); + }) + .notOk(function (error) { + self.on_cmis_error(error); + dfd.reject(error); + }); + }); + } + } + return dfd.promise(); + }); + + }); -- GitLab