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/.
94 lines
5.4 KiB
Plaintext
94 lines
5.4 KiB
Plaintext
script#estop-template(type="text/x-template")
|
|
svg(version="1.1", xmlns:svg="http://www.w3.org/2000/svg",
|
|
xmlns="http://www.w3.org/2000/svg",
|
|
xmlns:xlink="http://www.w3.org/1999/xlink",
|
|
viewBox="0 0 130 130",
|
|
preserveAspectRatio="xMidYMid meet",
|
|
width="130", height="130")
|
|
defs
|
|
path#text-path-1(d="m 73.735,673.129 c 0,55.107 44.673,99.780 99.780,99.780 55.107,0 99.780,-44.673 99.780,-99.780 0,-55.107 -44.673,-99.780 -99.780,-99.780 -55.107,0 -99.780,44.673 -99.780,99.780 z")
|
|
|
|
path#text-path-2(d="m 258.714,673.129 c 0,47.053 -38.144,85.198 -85.198,85.198 -47.053,0 -85.198,-38.144 -85.198,-85.198 0,-47.053 38.144,-85.198 85.198,-85.198 47.053,0 85.198,38.144 85.198,85.198 z")
|
|
|
|
filter#filter5134(style="color-interpolation-filters:sRGB")
|
|
feflood(flood-opacity="0.431", flood-color="rgb(0,0,0)")
|
|
fecomposite(in2="SourceGraphic", operator="in")
|
|
fegaussianblur(stddeviation="4", result="blur")
|
|
feoffset(dx="4", dy="4", result="offset")
|
|
fecomposite(in="SourceGraphic", in2="offset", operator="over",
|
|
result="fbSourceGraphic")
|
|
fecolormatrix(result="fbSourceGraphicAlpha", in="fbSourceGraphic",
|
|
values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0")
|
|
feflood(flood-opacity="0.431", flood-color="rgb(0,0,0)",
|
|
in="fbSourceGraphic")
|
|
fecomposite(in2="fbSourceGraphic", operator="out")
|
|
fegaussianblur(stddeviation="4", result="blur")
|
|
feoffset(dx="-4", dy="-4", result="offset")
|
|
fecomposite(in2="fbSourceGraphic", in="offset", operator="atop",
|
|
result="fbSourceGraphic")
|
|
fecolormatrix(result="fbSourceGraphicAlpha", in="fbSourceGraphic",
|
|
values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0")
|
|
feflood(flood-opacity="0.431", flood-color="rgb(0,0,0)",
|
|
in="fbSourceGraphic")
|
|
fecomposite(in2="fbSourceGraphic", operator="in")
|
|
fegaussianblur(stddeviation="4", result="blur")
|
|
feoffset(dx="4", dy="4", result="offset")
|
|
fecomposite(in2="offset", in="fbSourceGraphic", operator="over")
|
|
|
|
filter#filter5158(style="color-interpolation-filters:sRGB",)
|
|
feflood(flood-opacity="0.431", flood-color="rgb(0,0,0)")
|
|
fecomposite(in2="SourceGraphic", operator="out")
|
|
fegaussianblur(stddeviation="7", result="blur")
|
|
feoffset(dx="4", dy="4")
|
|
fecomposite(in2="SourceGraphic", operator="atop")
|
|
|
|
filter#filter5266(style="color-interpolation-filters:sRGB")
|
|
feflood(flood-opacity="0.372", flood-color="rgb(0,0,0)")
|
|
fecomposite(in2="SourceGraphic", operator="in")
|
|
fegaussianblur(stddeviation="2", result="blur")
|
|
feoffset(dx="1", dy="1", result="offset")
|
|
fecomposite(in="SourceGraphic", in2="offset", operator="over")
|
|
|
|
filter#filter5278(style="color-interpolation-filters:sRGB")
|
|
feflood(flood-opacity="0.372", flood-color="rgb(0,0,0)")
|
|
fecomposite(in2="SourceGraphic", operator="out")
|
|
fegaussianblur(stddeviation="2", result="blur")
|
|
feoffset(dx="2", dy="2", result="offset")
|
|
fecomposite(in="offset", in2="SourceGraphic", operator="atop")
|
|
|
|
|
|
g(transform="scale(0.6, 0.6), translate(-65, -526)")
|
|
// Yellow ring
|
|
circle.ring(style="fill:#f5e138;filter:url(#filter5266)",
|
|
cx="173", cy="633", r="100")
|
|
|
|
// Text
|
|
g(style="font-weight:bold;font-size:20px;font-family:Sans;fill:#666")
|
|
text(transform="matrix(-0.733,-0.679,0.679,-0.733,-156.726,1250.703)")
|
|
textpath(xlink:href="#text-path-2") EMERGENCY
|
|
|
|
text(transform="matrix(0.276,-0.961,0.961,0.276,-523.818,609.026)")
|
|
textpath(xlink:href="#text-path-1") STOP
|
|
|
|
g.button
|
|
circle(style="fill:#c42626;filter:url(#filter5134)",
|
|
cx="173", cy="633", r="74")
|
|
|
|
// Inner circle
|
|
circle(style="fill:#c42626;filter:url(#filter5158)",
|
|
cx="173", cy="633", r="37")
|
|
|
|
// Arrows
|
|
g(transform="matrix(0.327,0,0,0.327,50.806,478.966)", style="stroke:#fff;stroke-width:13;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;filter:url(#filter5278);fill:none")
|
|
g
|
|
path(transform="matrix(1.946,0,0,1.946,-359.987,-383.373)", d="m 411.696,521.147 c -10.574,4.472 -22.200,6.945 -34.404,6.945 -12.203,0 -23.830,-2.473 -34.404,-6.945 -10.574,-4.472 -20.097,-10.944 -28.095,-18.942 -7.997,-7.997 -12.913,-13.504 -17.386,-24.078")
|
|
path(d="m 221.801,582.657 -2.991,-35.524 28.482,14.166 z")
|
|
|
|
g(transform="matrix(-0.5,-0.866,0.866,-0.5,149.811,1033.447)")
|
|
path(transform="matrix(1.946,0,0,1.946,-359.987,-383.373)", d="m 411.696,521.147 c -10.574,4.472 -22.200,6.945 -34.404,6.945 -12.203,0 -23.830,-2.473 -34.404,-6.945 -10.574,-4.472 -20.097,-10.944 -28.095,-18.942 -7.997,-7.997 -11.525,-14.205 -17.386,-24.078")
|
|
path(d="m 221.801,582.657 -2.991,-35.524 28.482,14.166 z")
|
|
|
|
g(transform="matrix(-0.5,0.866,-0.866,-0.5,971.430,383.185)")
|
|
path(transform="matrix(1.946,0,0,1.946,-359.987,-383.373)", d="m 411.696,521.147 c -10.574,4.472 -22.200,6.945 -34.404,6.945 -12.203,0 -23.830,-2.473 -34.404,-6.945 -10.574,-4.472 -20.097,-10.944 -28.095,-18.942 -7.997,-7.997 -9.562,-8.624 -14.034,-19.199")
|
|
path(d="m 221.801,582.657 -2.991,-35.524 28.482,14.166 z")
|