From 3b93bbc43f021143537452aeb783b29805373554 Mon Sep 17 00:00:00 2001 From: Hubert Van De Walle Date: Fri, 5 Jun 2026 16:57:09 +0200 Subject: [PATCH] Initial commit --- .gitignore | 1 + mobile_debug/__init__.py | 0 mobile_debug/__manifest__.py | 20 +++++ mobile_debug/static/src/index.js | 99 +++++++++++++++++++++++ mobile_debug/views/mobile_debug_views.xml | 21 +++++ 5 files changed, 141 insertions(+) create mode 100644 .gitignore create mode 100644 mobile_debug/__init__.py create mode 100644 mobile_debug/__manifest__.py create mode 100644 mobile_debug/static/src/index.js create mode 100644 mobile_debug/views/mobile_debug_views.xml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0d20b64 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*.pyc diff --git a/mobile_debug/__init__.py b/mobile_debug/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/mobile_debug/__manifest__.py b/mobile_debug/__manifest__.py new file mode 100644 index 0000000..e5cd7ad --- /dev/null +++ b/mobile_debug/__manifest__.py @@ -0,0 +1,20 @@ +{ + "name": "Mobile Debug", + "version": "1.0.0", + "summary": "Mobile Debug", + "description": "Stuff", + "author": "huvw@odoo.com", + 'category': 'Category', + "license": "LGPL-3", + "depends": ["base", "web"], + "data": [ + "views/mobile_debug_views.xml", + ], + "assets": { + 'web.assets_backend': [ + "mobile_debug/static/src/index.js" + ] + }, + "installable": True, + "application": True, +} \ No newline at end of file diff --git a/mobile_debug/static/src/index.js b/mobile_debug/static/src/index.js new file mode 100644 index 0000000..f5811bb --- /dev/null +++ b/mobile_debug/static/src/index.js @@ -0,0 +1,99 @@ +import { registry } from "@web/core/registry"; +import mobile from "@web_mobile/js/services/core"; +import { Component, useState, useRef } from "@odoo/owl"; + +class MobileDebug extends Component { + static template = owl.xml`
+
+ Mobile methods +
    +
  • +
+
+ +
+ + +

+ + + + + +

Files:

+
    +
  • +
+ +
+ +
`; + + setup() { + this.fileInputRef = useRef("fileInput"); + this.state = useState({ + "mode": "all", + "files": [], + }); + + this.modes = { + "all": { + accept: "*", + multiple: false, + }, + "image": { + accept: "image/*", + multiple: false, + }, + "multiple images": { + accept: "image/*", + multiple: true, + }, + "pdf": { + accept: "application/pdf", + multiple: false, + } + }; + + } + + onNext() { + this.fileInputRef.el.value = ""; + this.state.files = []; + const keys = Object.keys(this.modes); + const idx = keys.indexOf(this.state.mode); + const nextIdx = (idx + 1) % keys.length; + this.state.mode = keys[nextIdx]; + } + + onFileChange() { + /** @type{HTMLInputElement} **/ + const el = this.fileInputRef.el; + + if (!el) { + this.state.files = []; + return; + } + const files = el.files; + + this.state.files = Array.from(files).map(e => ({ + name: e.name, + type: e.type, + })); + } + + get methods() { + return [...Object.keys(mobile.methods)]; + } + +} + + +registry.category("actions").add("mobile_debug.action_mobile_debug", MobileDebug); diff --git a/mobile_debug/views/mobile_debug_views.xml b/mobile_debug/views/mobile_debug_views.xml new file mode 100644 index 0000000..bccb177 --- /dev/null +++ b/mobile_debug/views/mobile_debug_views.xml @@ -0,0 +1,21 @@ + + + + + + Mobile Debug + mobile_debug.action_mobile_debug + mobile-debug + + + + + +