diff --git a/fusion_plating/fusion_plating_jobs/__manifest__.py b/fusion_plating/fusion_plating_jobs/__manifest__.py index 6f34b761..03a706ab 100644 --- a/fusion_plating/fusion_plating_jobs/__manifest__.py +++ b/fusion_plating/fusion_plating_jobs/__manifest__.py @@ -3,7 +3,7 @@ # License OPL-1 (Odoo Proprietary License v1.0) { 'name': 'Fusion Plating — Native Jobs', - 'version': '19.0.8.20.8', + 'version': '19.0.8.20.9', 'category': 'Manufacturing/Plating', 'summary': 'Native plating job model — replaces mrp.production / mrp.workorder bridge.', 'author': 'Nexa Systems Inc.', @@ -84,12 +84,14 @@ full design rationale and §6.2 of the implementation plan for task list. 'web.assets_backend': [ 'fusion_plating_jobs/static/src/scss/fp_step_quick_look.scss', 'fusion_plating_jobs/static/src/scss/fp_record_inputs_dialog.scss', + 'fusion_plating_jobs/static/src/scss/fp_finish_btn.scss', 'fusion_plating_jobs/static/src/js/fp_record_inputs_dialog.js', 'fusion_plating_jobs/static/src/xml/fp_record_inputs_dialog.xml', ], 'web.assets_web_dark': [ 'fusion_plating_jobs/static/src/scss/fp_step_quick_look.scss', 'fusion_plating_jobs/static/src/scss/fp_record_inputs_dialog.scss', + 'fusion_plating_jobs/static/src/scss/fp_finish_btn.scss', 'fusion_plating_jobs/static/src/js/fp_record_inputs_dialog.js', 'fusion_plating_jobs/static/src/xml/fp_record_inputs_dialog.xml', ], diff --git a/fusion_plating/fusion_plating_jobs/static/src/scss/fp_finish_btn.scss b/fusion_plating/fusion_plating_jobs/static/src/scss/fp_finish_btn.scss new file mode 100644 index 00000000..d5380398 --- /dev/null +++ b/fusion_plating/fusion_plating_jobs/static/src/scss/fp_finish_btn.scss @@ -0,0 +1,42 @@ +// Pulsing vivid-green Finish & Next icon for the embedded step list. +// Compiled into both web.assets_backend (bright) and web.assets_web_dark +// (dark) — see fusion-plating/CLAUDE.md for the SCSS branch convention. + +$o-webclient-color-scheme: bright !default; + +// Vivid finish-button colour. Branch at compile time so the dark +// variant uses a lighter green that pops against the dark backdrop. +$_fp_finish_color_hex: #16a34a; // Tailwind green-600 + +@if $o-webclient-color-scheme == dark { + $_fp_finish_color_hex: #4ade80 !global; // green-400 +} + +$fp-finish-color: var(--fp-finish-color, $_fp_finish_color_hex); + +.o_fp_finish_btn { + color: $fp-finish-color !important; + + i.fa, i.oi { + font-size: 1.25rem; + line-height: 1; + animation: fp_finish_pulse 1.8s ease-in-out infinite; + transform-origin: center center; + will-change: transform; + } + + // Pause the pulse on hover so the click target is steady. + &:hover, &:focus { + color: $fp-finish-color !important; + opacity: 0.85; + + i.fa, i.oi { + animation: none; + } + } +} + +@keyframes fp_finish_pulse { + 0%, 100% { transform: scale(1); } + 50% { transform: scale(1.18); } +} diff --git a/fusion_plating/fusion_plating_jobs/views/fp_job_form_inherit.xml b/fusion_plating/fusion_plating_jobs/views/fp_job_form_inherit.xml index 97301d34..e62891bd 100644 --- a/fusion_plating/fusion_plating_jobs/views/fp_job_form_inherit.xml +++ b/fusion_plating/fusion_plating_jobs/views/fp_job_form_inherit.xml @@ -154,8 +154,8 @@ class="btn-link text-success" invisible="state != 'paused'"/>