Commit Graph

120 Commits

Author SHA1 Message Date
5926316a25 Fix: real-hardware bring-up issues found at 1920x1080 on the Pi
After testing the V09 redesign live on the Pi at onefinity.local
(1920x1080, Chrome fullscreen) several real bugs surfaced. This
commit fixes all of them.

Layout fits at 1920x1080
- Cap .app-shell at 100vh height with overflow:hidden so child
  flex containers actually constrain to one screen.
- Make .control-page / .program-page / .console-page use
  flex 1 1 auto + min-height 0 + overflow hidden so the page total
  no longer grows to ~36 000 px when the gcode-viewer is mounted.
- Override clusterize.css default max-height: 200px on the
  .clusterize-scroll element with max-height: none + flex 1 1 0 +
  height 100% so the gcode listing fills the available column.

E-Stop in the header
- The legacy estop.pug SVG had width=130 height=130 but no
  viewBox, so CSS-only sizing did nothing and the SVG content
  spilled ~26 px off the right edge of the screen and ~70 px
  below the header. Add viewBox="0 0 130 130" plus
  preserveAspectRatio so CSS sizing actually shrinks the inner
  geometry. Drop the octagonal clip-path (the SVG already
  carries its own yellow safety ring + EMERGENCY/STOP text).

3D toolpath preview (path-viewer)
- The legacy .path-viewer.small CSS clamped the canvas to
  340 x 150 floated into the corner. In the new program-body
  grid we want it to fill the 600 px right column. Override
  with width 100%, height auto, float none, !important.
- Make orbit.js wheel/touchstart/touchmove listeners
  {passive: false} so OrbitControls.preventDefault() actually
  works and the page no longer scrolls while panning the 3D
  view on a touch screen.

Vue 1 template + reactivity bugs exposed by the live data
- Replace v-else-if (Vue 1 has no v-else-if) in
  control-view.pug with three sibling v-if templates that
  mutually exclude on w.enabled and state['2an'] == 3.
- axis-vars._get_motor_id: guard motor.axis.toLowerCase()
  against undefined motors (initial config is [{}, {}, ...]).
- axis-vars._check_is_enabled: prefer config.motors[i].axis
  when present, fall back to state[N + 'an'] only for
  recognised axes (x/y/z/a) so undefined == undefined
  doesn't mistakenly enable b/c rows.
- program-mixin: tolerate state.files / state.gcode_list
  being undefined right after connect.

App-shell race conditions
- Skip the early parse_hash() in app.js ready() when the
  initial hash is in the settings family. Those Svelte
  components read settings.units / settings.probing-prompts /
  motion.* etc. and crash on first paint with the empty
  placeholder config. Stay on loading-view until update()
  completes and routes us in itself.

Misc
- src/static/js/ui.js: null-guard the legacy burger menu code
  (#menuLink no longer exists). Was throwing 'Cannot set
  properties of null (setting onclick)'.
- src/static/css/Audiowide.css: switch the gstatic font URL
  from http:// to https:// so it isn't blocked as mixed
  content under the home.muehe.org HTTPS proxy.
- Macro buttons: drop the default 6 px yellow border-left.
  The stripe now only appears via .has-color when
  state.macros[i].color is actually configured. Removes the
  asymmetric/lopsided look from the screenshot.

Tested live on http://10.1.10.55/ and via the HTTPS proxy at
https://onefinity.home.muehe.org/.
2026-04-30 22:24:55 +02:00
32f3aca368 UX redesign V09: replace shell, split Program/Console/Settings
Implements the V09 mock end-to-end (per plans/2026-04-30_ux_redesign.md):

Top shell
- index.pug rebuilt around .app-shell with a slim 96px header.
- Underline-ribbon tab bar (Control / Program / Console / Settings)
  replaces the old side menu and the inline #tab1..#tab4 system.
- Single 'All systems' pill collapses the legacy WiFi/Camera/Rotary/
  IP/Version chip-soup into one popover (sys-popover) anchored to the
  header; rotary toggle, camera feed and shutdown live there.
- Octagonal 88x88px STOP button wraps the existing <estop> SVG; STATE
  pill with pulse-dot honors prefers-reduced-motion.

Routing
- app.js parse_hash maps every existing hash:
    #control                       -> Control
    #program / #program:auto       -> Program
    #console / #console:mdi|messages|indicators -> Console
    #settings, #admin-general,
    #admin-network, #motor:N, #tool, #io, #macros, #help,
    #cheat-sheet                  -> Settings (rail picks inner)
- All deep links are preserved.

Control panel (control-view.pug + .js)
- 720px jog grid + 4-axis DRO + 4 KPI cards + 8-macro row.
- Jog tiles use V09 flat slate (#3f4b63) with diagonal helpers and
  a ghost row for XY/Z origin shortcuts.
- Per-axis Settings/Set-zero/Home buttons grow to 72x72px.
- Status strip cards: State / Velocity-Feed / Spindle / Job. Tapping
  the Spindle card opens the new override-drawer with feed + spindle
  range inputs (resolved decision in plans/...).
- Macro row binds to state.macros.slice(0, 8); >8 lives in Settings.
- Drops the old <table> control-buttons, .info, .override and .tabs
  blocks entirely.

Program panel (program-view.pug + .js)
- Extracts the Auto bar, file selectors, gcode-viewer and path-viewer
  out of control-view.
- Action buttons (RUN/STOP/UPLOAD-FOLDER/UPLOAD-FILE/DOWNLOAD-FILE/
  DELETE) at 84px with explicit color affordances.
- Reuses control-view's existing methods via the new program-mixin.

Console panel (console-view.pug + .js)
- Three sub-tabs: MDI / Messages / Indicators. Sub-tab persists in the
  URL fragment (#console:messages etc.).
- MDI: terminal-style prompt + SEND, plus an 8-wide on-screen keypad
  (G0/G1/G2/G3/G28/G92/M3/M5 + axis letters + CLEAR/SEND).
- Messages: pulls from .messages_log (mirrored from
  state.messages); badge in the header tab counts unread.
- Indicators: mounts the existing <indicators> component.

Settings shell (settings-shell.pug + .js)
- New left rail navigator listing Display, Network, General/Firmware,
  Spindle&Tool, IO, Motors 0..3, Macros, Cheat Sheet, Help.
- Inner area mounts the existing settings family templates via an
  explicit v-if cascade (avoiding a Vue 1 :is reactivity quirk).
- Shutdown / Save buttons relocated from the dropped side menu.

JS plumbing
- main.js: Vue.config.async = false to keep dependent watchers in
  sync when reactive data is mutated outside Vue's normal event loop
  (e.g. from a hashchange listener).
- program-mixin.js extracted so control-view.js no longer carries the
  file/macro/gcode methods that are now Program-only.
- control-view.js trimmed to jog/DRO/probe/home logic.
- console-view.js / settings-shell-view.js use a hashchange listener
  + local data props because Vue 1 cannot reliably observe
  .sub_tab from a child component.

Stylus rewrite
- Removes the old .header (140px), .nav-header, .brand subtree, #menu,
  #main, .control-view block, .info, .override, .toolbar, .macros-div,
  .macros-button, the .tabs > input radio-tab system and the .control-
  view #control media-query overrides. None of these are referenced
  any more.
- Adds V09 tokens (jog/macro palette + accent + line/card colors) at
  the top, the new shell rules, .ktab / .sys-btn / .state-badge /
  .estop chrome, the .control-page grid, status strip + override
  drawer, .program-page action / file bars and program body,
  .console-page MDI keypad / messages / indicators panes, and the
  .settings-shell rail.
- Adds a 1820px breakpoint that stacks the right column under the jog
  on smaller portable monitors.

Hard cut: no config.ui.layout flag, the old shell is removed in this
single commit. side-menu.css is no longer included from index.pug.

Tested locally with agent-browser (1920x1080) on every top tab and
every settings sub-route; routing, active tab highlighting and inner
view selection all work without a controller connection.
2026-04-30 21:27:00 +02:00
bsaravanan783
4fe84412d4 easy- adapter style chagne 2025-09-21 01:26:28 +05:30
bsaravanan783
104cbbf5da styles 2025-09-21 01:05:41 +05:30
sanjayk03-dev
6889828e7a easy adapter UI 2025-09-20 23:47:42 +05:30
sanjayk03-dev
11d129c4f8 Lebel Rotary Button 2024-12-01 18:45:33 +05:30
sanjayk03-dev
040d547953 fixed sectioned headlined 2024-11-25 12:12:43 +05:30
sanjayk03-dev
cb92d21961 Sectioning unsupported Toollist 2024-11-25 12:02:26 +05:30
sanjayk03-dev
9f3a11976b stylus fixed for diabled 2024-10-14 12:55:42 +05:30
sanjayk03-dev
7c7faf3d92 disabling button 2024-10-14 12:49:41 +05:30
sanjayk03-dev
57c2159b20 ui fix 2024-10-14 12:34:42 +05:30
sanjayk03-dev
f4269da790 stylus change 2024-10-14 12:25:21 +05:30
sanjayk03-dev
d9186358f6 rotary-button style 2024-10-14 12:21:30 +05:30
sanjayk03-dev
eb08613530 rotary button style 2024-10-14 11:50:25 +05:30
sanjayk03-dev
0b735be96a switch between 12 and 24 formats 2024-09-01 19:11:45 +05:30
sanjayk03-dev
38fe198a96 set time to 12 hrs format 2024-09-01 18:51:11 +05:30
sanjayk03-dev
40f6314124 fixing a disabling 2024-06-04 02:58:57 +05:30
sanjayk03-dev
6dc640f863 fixing disabled 2024-06-04 02:49:18 +05:30
sanjayk03-dev
e1ad67b25f disable macros button 2024-06-04 02:40:51 +05:30
sanjayk03-dev
7304937f1c macros button io 2024-06-04 02:24:29 +05:30
sanjayk03-dev
ce82047afe macros download button ui 2024-06-03 20:17:28 +05:30
sanjayk03-dev
edabc1b1af bug fix 2024-05-31 19:05:31 +05:30
sanjayk03-dev
e0aa4539dc ui fix 2024-05-31 18:41:27 +05:30
sanjayk03-dev
d8b932e4a2 height changed 2024-05-31 18:27:42 +05:30
sanjayk03-dev
237e7f9a0d stylus modified foe delete folder tab 2024-05-31 18:09:50 +05:30
sanjayk03-dev
c63a8cdb36 poping out selected item 2024-05-31 17:57:36 +05:30
sanjayk03-dev
f50ccd3192 ui fix 2024-05-31 16:58:17 +05:30
sanjayk03-dev
99c833a106 ui fix 2024-05-31 14:55:28 +05:30
sanjayk03-dev
b3692d2239 delete prompt ui change 2024-05-31 14:41:35 +05:30
sanjayk03-dev
9547189fe2 delete multiple ui and code fix 2024-05-31 01:43:31 +05:30
sanjayk03-dev
81fd955a22 UI glitch fix 2024-05-17 22:20:06 +05:30
sanjayk03-dev
b39d093654 Merge branch 'v1.4.0-alpha' into file-management 2024-05-12 23:20:46 +05:30
sanjayk03-dev
32b6a8a9e1 files list fix 2024-04-09 02:33:34 +05:30
sanjayk03-dev
c55e32310d changed style for drop-down-container 2024-04-08 19:01:45 +05:30
sanjayk03-dev
b59fffa50a macros bug fix 2024-04-08 10:35:34 +05:30
sanjayk03-dev
b33f1e9e16 fix 2024-03-29 04:43:44 +05:30
sanjayk03-dev
f5e464e450 rearranged buttons 2024-03-29 01:22:21 +05:30
sanjayk03-dev
f470278840 bug fix 2024-03-27 17:32:16 +05:30
sanjayk03-dev
7ef84f1d76 fixing textarea 2024-03-26 22:04:27 +05:30
sanjayk03-dev
ccf3e89fbd macros to macro, minor fixes 2024-03-26 21:15:00 +05:30
sanjayk03-dev
28153f5b55 button text wrap fix 2024-02-22 01:37:56 +05:30
sanjayk03-dev
452ee7775c capturing inputname and color 2024-01-30 21:57:59 +05:30
sanjayk03-dev
bbf492e2fc button ui fix 2024-01-30 18:38:07 +05:30
sanjayk03-dev
e9843cc355 promise for svelteDialog 2024-01-29 19:02:08 +05:30
sanjayk03-dev
342b54d17f logging 2024-01-29 17:29:10 +05:30
sanjayk03-dev
270383bf90 set all to dynamic 2024-01-29 14:40:15 +05:30
sanjayk03-dev
61b24e0559 ui fix 2024-01-29 04:08:26 +05:30
sanjayk03-dev
0e1360297e set max count to 20 2024-01-29 04:03:27 +05:30
sanjayk03-dev
2a1182db56 added max limit for macros 2024-01-29 03:50:48 +05:30
sanjayk03-dev
a11def9c54 css 2024-01-29 03:21:52 +05:30