diff --git a/static/src/js/form_widgets.js b/static/src/js/form_widgets.js index 204a18e690ecde2cef33333c7df83cbdf2186124..6c9332884377de185d403b6ae736e27615994866 100644 --- a/static/src/js/form_widgets.js +++ b/static/src/js/form_widgets.js @@ -8,6 +8,7 @@ odoo.define('cgscop_alfresco.form_widgets', function(require) { var core = require('web.core'); var form_widgets = require('cmis_web.form_widgets'); + var lf_form_widgets = require('lefilament_alfodoo.form_widgets'); var session = require('web.session'); form_widgets.CmisObjectWrapper.include({ @@ -97,4 +98,45 @@ odoo.define('cgscop_alfresco.form_widgets', function(require) { }, }); + + lf_form_widgets.CmisMetadataDialog.include({ + /* + * Surcharge la fonction on_click_metadata + * pour la gestion des erreurs spécifique à la CG Scop + */ + on_click_metadata: function () { + var self = this; + this.metadata = {'cmis:name': Date.now().toString() + '_' + this.file.name} + _.each(this.parent_metadata, function (meta) { + if (meta.value) { + self.metadata[meta.name] = meta.value; + } else if (meta.field_value) { + self.metadata[meta.name] = self.record[meta.field_value]; + } else { + self.metadata[meta.name] = self.$el.find("#" + meta.name.replace(":", "-"))[0].value; + } + }); + this.cmis_session + .createDocument(this.parent_cmisobject.objectId, this.file, this.metadata, this.file.mimeType) + .ok(function (new_cmisobject) { + self.getParent().trigger('cmis_node_created', [new_cmisobject]); + self.$el.parents('.modal').modal('hide'); + }) + .notOk(function (error) { + console.log(error) + if (error) { + console.error(error.text); + if (error.type == 'application/json') { + var jerror = JSON.parse(error.text); + if (jerror.exception === 'objectNotFound') { + self.getParent().refresh_datatable(); + self.$el.parents('.modal').modal('hide'); + return; + } + } + } + }); + }, + + }); }); \ No newline at end of file