feat(fusion_plating_shopfloor): FpSignatureConfirm dialog + asset registration
Confirm-with-preview dialog (saved-signature preview + Sign & Finish + Use a different signature). Registered after the signature_pad assets; version bump. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -5,7 +5,7 @@
|
||||
|
||||
{
|
||||
'name': 'Fusion Plating — Shop Floor',
|
||||
'version': '19.0.37.1.0',
|
||||
'version': '19.0.37.2.0',
|
||||
'category': 'Manufacturing/Plating',
|
||||
'summary': 'Shop-floor tablet stations, QR scanning, bake window enforcer.',
|
||||
'description': """
|
||||
@@ -79,6 +79,10 @@ Copyright (c) 2026 Nexa Systems Inc. All rights reserved.
|
||||
'fusion_plating_shopfloor/static/src/scss/components/_signature_pad.scss',
|
||||
'fusion_plating_shopfloor/static/src/xml/components/signature_pad.xml',
|
||||
'fusion_plating_shopfloor/static/src/js/components/signature_pad.js',
|
||||
# Confirm-with-preview dialog (reuse saved Plating Signature on sign-off)
|
||||
'fusion_plating_shopfloor/static/src/scss/components/_signature_confirm.scss',
|
||||
'fusion_plating_shopfloor/static/src/xml/components/signature_confirm.xml',
|
||||
'fusion_plating_shopfloor/static/src/js/components/signature_confirm.js',
|
||||
'fusion_plating_shopfloor/static/src/scss/components/_hold_composer.scss',
|
||||
'fusion_plating_shopfloor/static/src/xml/components/hold_composer.xml',
|
||||
'fusion_plating_shopfloor/static/src/js/components/hold_composer.js',
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
/** @odoo-module **/
|
||||
// =============================================================================
|
||||
// Fusion Plating — SignatureConfirm
|
||||
//
|
||||
// Confirm dialog shown when the operator already has a saved Plating
|
||||
// Signature: previews it + "Sign & Finish" (props.onConfirm) or "Use a
|
||||
// different signature" (props.onRedraw, opens the draw-pad). No drawing here.
|
||||
// =============================================================================
|
||||
import { Component } from "@odoo/owl";
|
||||
import { Dialog } from "@web/core/dialog/dialog";
|
||||
|
||||
export class FpSignatureConfirm extends Component {
|
||||
static template = "fusion_plating_shopfloor.SignatureConfirm";
|
||||
static components = { Dialog };
|
||||
static props = {
|
||||
close: Function, // dialog service injects
|
||||
title: { type: String, optional: true },
|
||||
contextLabel: { type: String, optional: true },
|
||||
signatureUrl: { type: String }, // data: URI of saved sig
|
||||
onConfirm: { type: Function }, // () => commit (no drawing)
|
||||
onRedraw: { type: Function }, // () => open draw-pad
|
||||
};
|
||||
|
||||
onConfirm() {
|
||||
this.props.onConfirm();
|
||||
this.props.close();
|
||||
}
|
||||
onRedraw() {
|
||||
this.props.onRedraw();
|
||||
this.props.close();
|
||||
}
|
||||
onCancel() {
|
||||
this.props.close();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
// Confirm-with-preview dialog for shop-floor sign-off. Explicit hex per the
|
||||
// project card-styling rule (don't rely on var(--bs-border-color)).
|
||||
.o_fp_sig_confirm {
|
||||
.o_fp_sig_ctx {
|
||||
font-size: 0.85rem;
|
||||
color: #555;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
.o_fp_sig_preview {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
min-height: 120px;
|
||||
padding: 8px;
|
||||
background-color: #ffffff;
|
||||
border: 1px solid #d8dadd;
|
||||
border-radius: 4px;
|
||||
img {
|
||||
max-width: 100%;
|
||||
max-height: 160px;
|
||||
}
|
||||
}
|
||||
.o_fp_sig_hint {
|
||||
text-align: center;
|
||||
margin-top: 6px;
|
||||
font-size: 0.85rem;
|
||||
color: #555;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<templates xml:space="preserve">
|
||||
|
||||
<t t-name="fusion_plating_shopfloor.SignatureConfirm">
|
||||
<Dialog title="props.title or 'Confirm signature'" size="'md'">
|
||||
<div class="o_fp_sig_confirm">
|
||||
<div class="o_fp_sig_ctx" t-if="props.contextLabel">
|
||||
<t t-esc="props.contextLabel"/>
|
||||
</div>
|
||||
<div class="o_fp_sig_preview">
|
||||
<img t-att-src="props.signatureUrl" alt="Your saved signature"/>
|
||||
</div>
|
||||
<div class="o_fp_sig_hint">Your saved Plating Signature will be applied.</div>
|
||||
</div>
|
||||
<t t-set-slot="footer">
|
||||
<button class="btn btn-link" t-on-click="onRedraw">Use a different signature</button>
|
||||
<button class="btn btn-link" t-on-click="onCancel">Cancel</button>
|
||||
<button class="btn btn-primary" t-on-click="onConfirm">Sign & Finish</button>
|
||||
</t>
|
||||
</Dialog>
|
||||
</t>
|
||||
|
||||
</templates>
|
||||
Reference in New Issue
Block a user