diff --git a/addons/hr_fleet/__manifest__.py b/addons/hr_fleet/__manifest__.py index 7fa9ce07a0a..7cfaaeddaa2 100644 --- a/addons/hr_fleet/__manifest__.py +++ b/addons/hr_fleet/__manifest__.py @@ -19,8 +19,7 @@ ], 'assets': { 'web.assets_backend': [ - 'hr_fleet/static/src/js/attachment_kanban.js', - 'hr_fleet/static/src/xml/attachment_kanban.xml', + 'hr_fleet/static/src/views/**/*', ], }, 'auto_install': True, diff --git a/addons/hr_fleet/static/src/js/attachment_kanban.js b/addons/hr_fleet/static/src/js/attachment_kanban.js deleted file mode 100644 index df182e22d1f..00000000000 --- a/addons/hr_fleet/static/src/js/attachment_kanban.js +++ /dev/null @@ -1,57 +0,0 @@ -/** @odoo-module */ - -import KanbanController from 'web.KanbanController'; -import KanbanView from 'web.KanbanView'; -import viewRegistry from 'web.view_registry'; -import { qweb } from 'web.core'; -import config from 'web.config' - -const HRFleetKanbanController = KanbanController.extend({ - buttons_template: 'HRFleetKanbanView.buttons', - events: _.extend({}, KanbanController.prototype.events, { - 'click .o_button_upload_fleet_attachment': '_onUpload', - 'change .o_fleet_documents_upload .o_form_binary_form': '_onAddAttachment', - }), - /** - * @override - */ - init: function () { - this._super.apply(this, arguments); - this.isMobile = config.device.isMobileDevice; - }, - - start: function () { - // define a unique uploadId and a callback method - this.fileUploadID = _.uniqueId('hr_fleet_document_upload'); - $(window).on(this.fileUploadID, () => this.trigger_up('reload')); - return this._super.apply(this, arguments); - }, - - _onUpload: function (event) { - // If hidden upload form doesn't exist, create it - var $formContainer = this.$('.o_content').find('.o_fleet_documents_upload'); - if (!$formContainer.length) { - $formContainer = $(qweb.render('HRFleet.DocumentsHiddenUploadForm', {widget: this})); - $formContainer.appendTo(this.$('.o_content')); - } - // Trigger the input to select a file - this.$('.o_fleet_documents_upload .o_input_file').click(); - }, - - _onAddAttachment: function(ev) { - // Auto submit form once we've selected an attachment - const $input = $(ev.currentTarget).find('input.o_input_file'); - if ($input.val() !== '') { - const $binaryForm = this.$('.o_fleet_documents_upload form.o_form_binary_form'); - $binaryForm.submit(); - } - } -}); - -const HRFleetKanbanView = KanbanView.extend({ - config: _.extend({}, KanbanView.prototype.config, { - Controller: HRFleetKanbanController, - }), -}) - -viewRegistry.add('hr_fleet_kanban_view', HRFleetKanbanView); diff --git a/addons/hr_fleet/static/src/views/hr_fleet_kanban/hr_fleet_kanban_controller.js b/addons/hr_fleet/static/src/views/hr_fleet_kanban/hr_fleet_kanban_controller.js new file mode 100644 index 00000000000..821148373da --- /dev/null +++ b/addons/hr_fleet/static/src/views/hr_fleet_kanban/hr_fleet_kanban_controller.js @@ -0,0 +1,38 @@ +/** @odoo-module **/ + +import { KanbanController } from "@web/views/kanban/kanban_controller"; +import { useBus, useService } from "@web/core/utils/hooks"; + +const { useRef } = owl; + +export class HrFleetKanbanController extends KanbanController { + setup() { + super.setup(...arguments); + this.uploadFileInput = useRef("uploadFileInput"); + this.uploadService = useService("file_upload"); + useBus( + this.uploadService.bus, + "FILE_UPLOAD_LOADED", + () => { + this.model.load(); + }, + ); + } + + async onInputChange(ev) { + if (!ev.target.files) { + return; + } + this.uploadService.upload( + "/web/binary/upload_attachment", + ev.target.files, + { + buildFormData: (formData) => { + formData.append("model", "fleet.vehicle.assignation.log"); + formData.append("id", this.props.context.active_id); + }, + }, + ); + ev.target.value = ""; + } +} diff --git a/addons/hr_fleet/static/src/views/hr_fleet_kanban/hr_fleet_kanban_controller.xml b/addons/hr_fleet/static/src/views/hr_fleet_kanban/hr_fleet_kanban_controller.xml new file mode 100644 index 00000000000..6e0872fba22 --- /dev/null +++ b/addons/hr_fleet/static/src/views/hr_fleet_kanban/hr_fleet_kanban_controller.xml @@ -0,0 +1,11 @@ + + + + + + + Upload + + + + diff --git a/addons/hr_fleet/static/src/views/hr_fleet_kanban/hr_fleet_kanban_view.js b/addons/hr_fleet/static/src/views/hr_fleet_kanban/hr_fleet_kanban_view.js new file mode 100644 index 00000000000..63e7275e776 --- /dev/null +++ b/addons/hr_fleet/static/src/views/hr_fleet_kanban/hr_fleet_kanban_view.js @@ -0,0 +1,12 @@ +/** @odoo-module **/ + +import { registry } from "@web/core/registry"; +import { kanbanView } from "@web/views/kanban/kanban_view"; +import { HrFleetKanbanController } from "@hr_fleet/views/hr_fleet_kanban/hr_fleet_kanban_controller"; + +export const hrFleetKanbanView = { + ...kanbanView, + Controller: HrFleetKanbanController, + buttonTemplate: "hr_fleet.HrFleetKanbanController.Buttons", +}; +registry.category("views").add("hr_fleet_kanban_view", hrFleetKanbanView); diff --git a/addons/hr_fleet/static/src/xml/attachment_kanban.xml b/addons/hr_fleet/static/src/xml/attachment_kanban.xml deleted file mode 100644 index cf9cf639acc..00000000000 --- a/addons/hr_fleet/static/src/xml/attachment_kanban.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - /web/binary/upload_attachment - - - - - - - - - Upload - - - -