From 798458c834c183d3373d00453222637845ce40c1 Mon Sep 17 00:00:00 2001 From: gsinghpal Date: Tue, 12 May 2026 01:05:28 -0400 Subject: [PATCH] ui(jobs): Finish & Next becomes pulsing vivid-green icon MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit User wanted Finish & Next to drop its text label like the other row buttons, but stand out visually as the primary action. Solution: icon-only with a vivid green color and a subtle pulse animation. - New SCSS: fp_finish_btn.scss with branch-on-$o-webclient-color- scheme so the dark bundle uses green-400 (pops on dark bg) and light bundle uses green-600. Pulse animation 1.8s ease-in-out infinite, scale 1.0 ↔ 1.18. Pauses on hover/focus so the click target is steady. - Registered in both web.assets_backend and web.assets_web_dark per the project's dark-mode rule (CLAUDE.md). - View: string="Finish & Next" → title="Finish & Next", class drops "text-primary", gains "o_fp_finish_btn". Co-Authored-By: Claude Opus 4.7 (1M context) --- .../fusion_plating_jobs/__manifest__.py | 4 +- .../static/src/scss/fp_finish_btn.scss | 42 +++++++++++++++++++ .../views/fp_job_form_inherit.xml | 4 +- 3 files changed, 47 insertions(+), 3 deletions(-) create mode 100644 fusion_plating/fusion_plating_jobs/static/src/scss/fp_finish_btn.scss 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'"/>