odoo.define('payment_proof_attachment.my_account_screen', function(require) { "use strict"; var PublicWidget = require('web.public.widget'); var ajax = require('web.ajax'); var Template = PublicWidget.Widget.extend({ selector: '.my_account_screen', events: { 'click #btnShowModal': '_onClickShowModal', 'click .close_modal': '_onClickCloseModal', 'change #payment_proof': '_onChangePaymentProof', 'click #payment_proof_update': '_onClickUpdateAttachment', 'click #btnShowReceipt': '_onClickShowReceipt', 'click #refresh_receipt': '_onClickShowReceipt', }, /** *for showing the modal dialog */ _onClickShowModal: function() { this.el.querySelector('#myModal').style.display = 'block'; }, /** *for closing the modal dialog */ _onClickCloseModal: function() { this.el.querySelector('#myModal').style.display = 'none'; }, /** *getting content from the uploaded file */ _onChangePaymentProof: function(ev) { const files = ev.target.files; var fileList = []; for (let i = 0; i < files.length; i++) { var reader = new FileReader(); var reader_content = reader.readAsDataURL(files[i]); reader.onload = function(reader_content) { var dataURL = reader_content.target.result.split(',')[1]; var fileName = files[i].name; fileList.push({ name: fileName, content: dataURL }); } } this.fileList = fileList; }, /** *transfer the content to python in my account screen */ _onClickUpdateAttachment: function(ev) { var self = this; this.el.querySelector('#myModal').style.display = 'none'; if (self.fileList) { ajax.jsonRpc('/payment_proof/submit', 'call', { 'sale_id': Number(self.$(ev.currentTarget).attr('value')), 'attachments': this.fileList }).then(function() { self.fileList = "" self.$el.find("#payment_proof").val("") }); } }, /** *getting updated attachments */ _onClickShowReceipt: function() { var self = this; this.el.querySelector('#updated_receipt').style.display = 'block'; this.el.querySelector('#btnShowReceipt').style.display = 'none'; ajax.jsonRpc('/my_account_screen/show_updated', 'call', { 'data': this.el.querySelector('#btnShowReceipt').getAttribute('value'), }).then(function(attachment_ids) { if (attachment_ids.length > 0) { self.$el.find("#showing_updated_receipt").empty(); $(attachment_ids).each(function(attachment_id) { var id = "/web/content/" + attachment_ids[attachment_id]['id'] var name = attachment_ids[attachment_id]['name'] self.$el.find('#showing_updated_receipt').append("" + name + "
"); }); } else { self.$el.find("#showing_updated_receipt").empty(); self.$el.find('#showing_updated_receipt').append("

There is no attachments for this sale order.

") } }) } }) PublicWidget.registry.my_account_screen = Template; return Template; })