From 5143cd2ed66ebf47b0f14a31a9a22e9e2c7dca53 Mon Sep 17 00:00:00 2001 From: igneum-labs <337424239+igneum-labs@users.noreply.github.com> Date: Tue, 6 Oct 2026 18:09:55 +0000 Subject: [PATCH] miner-ui-3: variant C is the default (the fleet rate big, the button a bar under it; Earnings the same shape); every strip on the brand tokens MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit the project lead picked C. The Mine hero is the fleet rate at 84 px on a graphite-to-obsidian fade with W, £ a day and blocks beside it, Start/Stop as a full-width bar under it; Earnings carries the same shape with the £ figure big. The ?variant switch is gone. Every strip, ask and clock card is one component: the row surface, a 1 px ember hairline on top, ash text, ember only on the dot and the chevron; no filled brown or mustard field anywhere in the app (the rail's active item, the pill, the ghost-on button, the option, the ring, the log hit and mark lost their tints). The update strip and the job strip share .notice. 36 UI tests pass. Co-Authored-By: Claude Fable 5.1 --- app/igneum-app/ui/app.css | 138 ++++++++---------- app/igneum-app/ui/app.js | 9 +- app/igneum-app/ui/index.html | 3 +- docs/plans/miner-ui-3.md | 16 ++ docs/plans/miner-ui-3/q01-mine-strip-dark.png | Bin 0 -> 283248 bytes .../plans/miner-ui-3/q02-mine-strip-light.png | Bin 0 -> 287407 bytes .../miner-ui-3/q03-mine-strip-open-dark.png | Bin 0 -> 271106 bytes .../miner-ui-3/q04-mine-update-strip-dark.png | Bin 0 -> 219651 bytes docs/plans/miner-ui-3/q05-earnings-dark.png | Bin 0 -> 210349 bytes docs/plans/miner-ui-3/q06-earnings-light.png | Bin 0 -> 212820 bytes .../miner-ui-3/q07-mine-mac-paused-dark.png | Bin 0 -> 218657 bytes docs/plans/miner-ui-3/q08-phone-mine.png | Bin 0 -> 131860 bytes docs/plans/miner-ui-3/q09-phone-earnings.png | Bin 0 -> 156598 bytes docs/plans/miner-ui-3/q10-quit-ask.png | Bin 0 -> 242081 bytes docs/plans/miner-ui-3/q11-mine-clock.png | Bin 0 -> 226276 bytes 15 files changed, 81 insertions(+), 85 deletions(-) create mode 100644 docs/plans/miner-ui-3/q01-mine-strip-dark.png create mode 100644 docs/plans/miner-ui-3/q02-mine-strip-light.png create mode 100644 docs/plans/miner-ui-3/q03-mine-strip-open-dark.png create mode 100644 docs/plans/miner-ui-3/q04-mine-update-strip-dark.png create mode 100644 docs/plans/miner-ui-3/q05-earnings-dark.png create mode 100644 docs/plans/miner-ui-3/q06-earnings-light.png create mode 100644 docs/plans/miner-ui-3/q07-mine-mac-paused-dark.png create mode 100644 docs/plans/miner-ui-3/q08-phone-mine.png create mode 100644 docs/plans/miner-ui-3/q09-phone-earnings.png create mode 100644 docs/plans/miner-ui-3/q10-quit-ask.png create mode 100644 docs/plans/miner-ui-3/q11-mine-clock.png diff --git a/app/igneum-app/ui/app.css b/app/igneum-app/ui/app.css index 1474113f1..f24537394 100644 --- a/app/igneum-app/ui/app.css +++ b/app/igneum-app/ui/app.css @@ -61,7 +61,7 @@ input,textarea{font-variant-numeric:tabular-nums} .btn.tiny{min-height:26px;padding:2px 10px;font-size:var(--t-sm);border-radius:7px;font-family:var(--mono);font-weight:500} .btn.ghost{border-color:transparent;color:var(--ink-2)} .btn.ghost:hover{border-color:var(--line-2);color:var(--bone)} -.btn.ghost.on{color:var(--molten);border-color:var(--molten-40);background:var(--molten-10)} +.btn.ghost.on{color:var(--molten);border-color:var(--molten-40)} .btn.danger:hover{color:var(--ember);border-color:var(--ember)} :focus-visible{outline:2px solid var(--ember);outline-offset:3px;border-radius:6px} @media (prefers-reduced-motion:reduce){.btn{transition:none}} @@ -77,7 +77,7 @@ body.mac .rail-brand{padding-top:30px} .nav svg{width:19px;height:19px;flex:0 0 19px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;color:var(--ash);transition:color .15s ease} .nav:hover{background:var(--hover);color:var(--bone)} .nav:hover svg{color:var(--ink-2)} -.nav.on{background:var(--ember-12);border-color:var(--ember-40);color:var(--bone);font-weight:600} +.nav.on{background:var(--hover);border-color:var(--line);color:var(--bone);font-weight:600} .nav.on svg{color:var(--ember)} .nav.on::before{content:"";position:absolute;left:-13px;top:10px;bottom:10px;width:3px;border-radius:0 3px 3px 0;background:var(--ember)} .nav.small{min-height:36px;font-size:var(--t-base);color:var(--ash)} @@ -106,8 +106,8 @@ body.has-rail .top{align-items:baseline;padding-top:19px} .top-right{display:flex;align-items:center;gap:var(--s-3);flex:0 0 auto;min-width:0} .pill{display:inline-flex;align-items:baseline;gap:var(--s-2);font-family:var(--sans);font-size:var(--t-base);font-weight:600;color:var(--ash);border:1px solid var(--line);border-radius:999px;padding:5px 12px 5px 10px;background:var(--graphite);white-space:nowrap;font-variant-numeric:tabular-nums;justify-content:center;line-height:1.3} .pill .dot{position:relative;top:-1px} -.pill.on{color:var(--molten);border-color:var(--molten-40);background:var(--molten-10)} -.pill.warn{color:var(--ember);border-color:var(--ember-40);background:var(--ember-12)} +.pill.on{color:var(--molten);border-color:var(--molten-40)} +.pill.warn{color:var(--ember);border-color:var(--ember-40)} .dot{width:8px;height:8px;border-radius:50%;background:var(--ash);display:inline-block;flex:0 0 8px} .on .dot,.dot.live{background:var(--molten);animation:pulse 2s ease-in-out infinite} .warn .dot,.dot.bad{background:var(--ember);animation:none} @@ -118,30 +118,31 @@ body.has-rail .top{align-items:baseline;padding-top:19px} top moves once per change with a 150 ms transition (layoutStrip), never per poll. */ .notices{position:fixed;top:var(--top);left:0;right:0;z-index:19} body.has-rail .notices{left:var(--rail)} -.notice{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2) var(--s-4);padding:8px calc(var(--gutter) - 6px) 8px var(--gutter);background:var(--molten-10);border-bottom:1px solid var(--molten-40);font-size:var(--t-base);line-height:1.4;color:var(--bone)} -.notice.bad{background:var(--ember-12);border-bottom-color:var(--ember-40)} -.notice.warn{background:var(--molten-10);border-bottom-color:var(--molten-40)} -.notice.update-urgent{background:rgba(242,84,27,.55);border-bottom-color:var(--ember);color:#fff;font-weight:600} +.notice{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2) var(--s-3);padding:9px calc(var(--gutter) - 6px) 9px var(--gutter);background:var(--row);border-bottom:1px solid var(--line);box-shadow:inset 0 1px 0 var(--ember);font-size:var(--t-base);line-height:1.4;color:var(--ash)} +.notice-dot{width:7px;height:7px;border-radius:50%;background:var(--ember);flex:0 0 7px;display:inline-block} +.notice.bad .notice-text,.notice.update-urgent .notice-text{color:var(--bone)} +.notice.update-urgent .notice-text{font-weight:600} +.notice .notice-text b{color:var(--bone);font-weight:600} .notice-text{flex:1 1 320px;min-width:0} .notice-actions{display:flex;align-items:center;gap:var(--s-2);flex:0 0 auto} .notice-actions:empty{display:none} .notice-close{flex:0 0 auto;width:30px;height:30px;border-radius:8px;border:1px solid transparent;background:transparent;color:var(--ash);font-size:20px;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0} .notice-close:hover{color:var(--bone);border-color:var(--line-2)} -.notice.update-urgent .notice-close{color:#fff} + .notice-more{flex:0 0 auto;width:30px;height:30px;border-radius:8px;border:1px solid transparent;background:transparent;color:var(--ash);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0} .notice-more:hover{color:var(--bone);border-color:var(--line-2)} .notice-more .chev{width:8px;height:8px;transform:rotate(45deg) translateY(-2px)} .notice-more.open .chev{transform:rotate(225deg) translateY(-2px)} .notice-detail{flex-basis:100%;font-family:var(--mono);font-size:var(--t-sm);color:var(--ink-2);white-space:normal;word-break:break-word;margin-top:-2px;user-select:text;-webkit-user-select:text} -.notice .prog{flex-basis:100%;height:3px;background:rgba(127,127,127,.2);border-radius:2px;overflow:hidden;margin-top:-3px} +.notice .prog{flex-basis:100%;height:2px;background:var(--line);border-radius:2px;overflow:hidden;margin-top:-3px} .notice .prog i{display:block;height:100%;width:0;background:var(--ember);transition:width .5s linear} /* a question in place of a dialog: the quit strip over the page, the inline asks inside a card */ .ask-wrap{position:fixed;left:0;right:0;bottom:0;z-index:36;display:flex;justify-content:center;padding:0 var(--s-4) var(--s-4);pointer-events:none} body.has-rail .ask-wrap{left:var(--rail)} -.ask{display:flex;align-items:center;gap:var(--s-3);flex-wrap:wrap;background:var(--graphite);border:1px solid var(--ember-40);border-radius:14px;padding:12px 16px;box-shadow:0 14px 40px var(--shadow);pointer-events:auto;max-width:720px;animation:rise .2s ease} +.ask{display:flex;align-items:center;gap:var(--s-3);flex-wrap:wrap;background:var(--row);border:1px solid var(--line);border-radius:14px;padding:12px 16px;box-shadow:inset 0 1px 0 var(--ember),0 14px 40px var(--shadow);pointer-events:auto;max-width:720px;animation:rise .2s ease} .ask-text{flex:1 1 260px;font-size:var(--t-md);min-width:0} -.ask.inline{box-shadow:none;background:var(--ember-12);margin-top:var(--s-3);animation:none} +.ask.inline{box-shadow:inset 0 1px 0 var(--ember);background:var(--row);margin-top:var(--s-3);animation:none} /* screens and pages */ main{position:absolute;top:var(--top);bottom:var(--bottom);left:0;right:0;overflow:auto;padding:0 var(--gutter);overscroll-behavior:contain;transition:top .15s ease} @@ -220,7 +221,7 @@ body[data-phase="welcome"] #screen-welcome,body[data-phase="cards"] #screen-card .toggle-big .ts{font-family:var(--mono);font-size:var(--t-xs);letter-spacing:.06em;opacity:.8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%} .toggle-big.stop{background:var(--graphite);border-color:var(--line-2);color:var(--bone)} .toggle-big.stop:hover{border-color:var(--ash);background:var(--row)} -.toggle-big.stop .ring{background:var(--ember-12);color:var(--ember)} +.toggle-big.stop .ring{background:var(--obsidian);border:1px solid var(--line-2);color:var(--ember)} .toggle-big.stop .ts{color:var(--molten);opacity:1} .totals{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s-3);background:var(--graphite);border:1px solid var(--line);border-radius:14px;padding:18px 20px;min-width:0} .tot{display:flex;flex-direction:column;min-width:0;padding-left:var(--s-4);border-left:1px solid var(--line)} @@ -356,18 +357,14 @@ table{border-collapse:collapse;width:100%;font-size:var(--t-base)} #s-jobs-history td{padding:6px 6px 6px 0;border-top:1px solid var(--line);vertical-align:top} #s-jobs-history tr.failed td,#s-jobs-history tr.timeout td,#s-jobs-history tr.aborted td{color:var(--ember)} #s-jobs-history tr.running td{color:var(--molten)} -.clock-card{border:1px solid var(--ember-40);background:var(--ember-12);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:var(--s-2)} -.clock-card.warn{border-color:var(--molten-40);background:var(--molten-10)} +.clock-card{border:1px solid var(--line);background:var(--row);box-shadow:inset 0 1px 0 var(--ember);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:var(--s-2)} +.clock-card.warn{box-shadow:inset 0 1px 0 var(--molten)} .clock-msg{font-size:var(--t-md);color:var(--bone);line-height:1.45} .clock-card .note{margin-top:0} /* earnings: money first */ -.money{display:flex;flex-direction:column;margin-bottom:var(--s-2)} -.money-row{display:flex;align-items:baseline;gap:var(--s-3);padding:8px 0;border-bottom:1px solid var(--line);flex-wrap:wrap} -.money-row:last-child{border-bottom:0} -.money-row .v{font-family:var(--head);font-weight:700;font-size:var(--t-hero);line-height:1.1;white-space:nowrap;letter-spacing:-.01em;min-width:200px} -.money-row .v.small{font-size:var(--t-num)} -.money-row .s{font-size:var(--t-base);color:var(--ash);min-width:0} +.money-row .v{font-family:var(--head);font-weight:700;letter-spacing:-.01em} +.money-row .s{color:var(--ash);min-width:0} /* prove */ .tier-list{list-style:none;margin:var(--s-3) 0 0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:var(--t-md);color:var(--ink-2)} @@ -379,7 +376,7 @@ table{border-collapse:collapse;width:100%;font-size:var(--t-base)} .options{display:flex;flex-direction:column;gap:var(--s-3);margin-top:6px} .option{display:flex;gap:var(--s-4);align-items:flex-start;background:var(--graphite);border:1px solid var(--line);border-radius:var(--card-r);padding:20px 22px;cursor:pointer;transition:border-color .15s ease,background .15s ease} .option:hover{border-color:var(--line-2)} -.option.on{border-color:var(--ember);background:var(--ember-12)} +.option.on{border-color:var(--ember);background:var(--row)} .option input[type=radio]{position:absolute;opacity:0;width:0;height:0} .option .radio{width:20px;height:20px;border-radius:50%;border:2px solid var(--line-2);flex:0 0 20px;margin-top:2px;position:relative} .option.on .radio{border-color:var(--ember)} @@ -513,8 +510,8 @@ body.drawer-drag main{pointer-events:none} .log .src.app{color:var(--ember)} .log .src.watch{color:var(--ash)} .log .e,.log .e .src{color:var(--ember)} -.log .ln.hit{background:rgba(255,179,92,.18);box-shadow:inset 3px 0 0 var(--molten);margin:0 calc(-1 * var(--gutter));padding:0 var(--gutter)} -.log mark{background:rgba(255,179,92,.3);color:var(--bone);border-radius:2px;padding:0 1px} +.log .ln.hit{background:var(--hover);box-shadow:inset 3px 0 0 var(--molten);margin:0 calc(-1 * var(--gutter));padding:0 var(--gutter)} +.log mark{background:transparent;color:var(--bone);text-decoration:underline;text-decoration-color:var(--ember);text-underline-offset:2px} .log-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--ash);font-size:var(--t-sm);padding:0 var(--gutter);text-align:center} .log-jump{position:absolute;right:calc(var(--gutter) + 14px);bottom:14px;background:var(--graphite);border-color:var(--molten-40);color:var(--molten);box-shadow:0 8px 24px var(--shadow);z-index:2;gap:6px;padding:6px 12px} .log-jump:hover{border-color:var(--molten)} @@ -615,58 +612,41 @@ body.drawer-open .toast{bottom:calc(var(--drawer-h) + 16px)} .toggle-big{min-height:96px} } -/* variant A, quieter: fewer borders, type carries the hierarchy */ -body[data-variant="a"] .card{border-color:transparent;padding:28px} -body[data-variant="a"] .card h3{font-size:20px} -body[data-variant="a"] .gpu-list{gap:0} -body[data-variant="a"] .gpu-line{border:0;border-radius:0;background:transparent;border-bottom:1px solid var(--line)} -body[data-variant="a"] .gpu-line:last-child{border-bottom:0} -body[data-variant="a"] .gl-main{padding:16px 0} -body[data-variant="a"] .gl-tune,body[data-variant="a"] .gl-details{border-top:0;padding-left:60px;padding-right:0;padding-top:0} -body[data-variant="a"] .gl-details{padding-bottom:16px} -body[data-variant="a"] .totals{border-color:transparent} -body[data-variant="a"] .toggle-big.stop{border-color:transparent} -body[data-variant="a"] .tot{border-left:0} -body[data-variant="a"] .num .v{font-size:22px} -body[data-variant="a"] .seg{border-color:transparent} -body[data-variant="a"] #dag{border:0} -/* variant B, denser: one line per card, numbers right-aligned in fixed tabular columns, a slim total bar */ -body[data-variant="b"] .hero-row{grid-template-columns:auto 1fr;gap:var(--s-3)} -body[data-variant="b"] .toggle-big{min-height:64px;flex-direction:row;align-items:center;gap:14px;padding:12px 18px} -body[data-variant="b"] .toggle-big .ring{margin:0} -body[data-variant="b"] .toggle-big .ts{display:none} -body[data-variant="b"] .totals{padding:10px 20px;align-items:center} -body[data-variant="b"] .tot .v{font-size:22px} -body[data-variant="b"] .tot .k{display:inline;margin:0 0 0 6px} -body[data-variant="b"] .tot .s{margin-top:0} -body[data-variant="b"] .card{padding:16px 20px} -body[data-variant="b"] .card-head{margin-bottom:8px} -body[data-variant="b"] .gpu-list{gap:0;border:1px solid var(--line);border-radius:var(--row-r);overflow:hidden} -body[data-variant="b"] .gpu-line{border:0;border-radius:0;border-top:1px solid var(--line)} -body[data-variant="b"] .gpu-line:first-child{border-top:0} -body[data-variant="b"] .gl-main{padding:8px 12px;gap:var(--s-3);grid-template-columns:32px minmax(140px,1fr) auto auto} -body[data-variant="b"] .badge{width:32px;height:32px;flex-basis:32px;border-radius:8px;font-size:9px} -body[data-variant="b"] .gpu-line .name{font-size:var(--t-base)} -body[data-variant="b"] .gpu-line .msg{display:none} -body[data-variant="b"] .nums{gap:0;flex-wrap:nowrap} -body[data-variant="b"] .num{min-width:92px;padding-left:8px} -body[data-variant="b"] .num .v{font-size:16px;font-family:var(--mono);font-weight:500} -body[data-variant="b"] .num .k{font-size:9px} -body[data-variant="b"] .gl-tune{padding:0 12px 6px 56px;border-top:0;font-size:var(--t-xs)} -body[data-variant="b"] .gl-tune .bar{height:2px} -body[data-variant="b"] .gl-details{padding-left:56px} -body[data-variant="b"] #dag{height:72px} -body[data-variant="b"] .feed>div{padding:4px 0} -/* variant C, the hero number: the fleet total big, the button a bar under it, the cards below */ -body[data-variant="c"] .hero-row{grid-template-columns:1fr} -body[data-variant="c"] .totals{order:1;grid-template-columns:2fr 1fr 1fr 1fr;align-items:end;padding:28px 28px 24px;border-color:transparent;background:linear-gradient(180deg,var(--graphite),var(--obsidian))} -body[data-variant="c"] .tot:first-child .v{font-size:84px;line-height:.95;letter-spacing:-.03em} -body[data-variant="c"] .tot:first-child .k{font-size:var(--t-sm);margin-top:10px} -body[data-variant="c"] .tot:first-child .s{font-size:var(--t-md)} -body[data-variant="c"] .tot .v{font-size:30px} -body[data-variant="c"] .tot{border-left:0} -body[data-variant="c"] .toggle-big{order:2;min-height:64px;flex-direction:row;align-items:center;gap:14px;padding:12px 20px} -body[data-variant="c"] .toggle-big .ring{margin:0} -body[data-variant="c"] .toggle-big .ts{margin-left:auto} -body[data-variant="c"] .gl-main{padding:10px 14px} -body[data-variant="c"] .num .v{font-size:18px} +/* the Mine hero (the project lead, 6 October 2026: "I love C"): the fleet rate big, the button a bar under it, the cards below */ +.hero-row{grid-template-columns:1fr} +.totals{order:1;grid-template-columns:2fr 1fr 1fr 1fr;align-items:end;padding:28px 28px 24px;border-color:transparent;background:linear-gradient(180deg,var(--graphite),var(--obsidian))} +.tot{border-left:0;padding-left:0} +.tot:first-child .v{font-size:84px;line-height:.95;letter-spacing:-.03em} +.tot:first-child .k{font-size:var(--t-sm);margin-top:10px} +.tot:first-child .s{font-size:var(--t-md)} +.tot .v{font-size:30px} +.toggle-big{order:2;min-height:64px;flex-direction:row;align-items:center;gap:14px;padding:12px 20px} +.toggle-big .ring{margin:0} +.toggle-big .ts{margin-left:auto} +.gl-main{padding:10px 14px} +.num .v{font-size:18px} +/* Earnings in the same direction: the money figure big on the same fade, the other three beside it */ +.money-hero{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;align-items:end;gap:var(--s-4);margin:calc(-1 * var(--card-pad)) calc(-1 * var(--card-pad)) var(--s-3);padding:28px var(--card-pad) 24px;background:linear-gradient(180deg,var(--graphite),var(--obsidian));border-radius:var(--card-r) var(--card-r) 0 0} +.money-row{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:0;border:0;min-width:0} +.money-row .v{font-size:28px;min-width:0;max-width:100%;line-height:1.1} +.money-row .v.small{font-size:28px} +.money-row:first-child .v{font-size:84px;line-height:.95;letter-spacing:-.03em} +.money-row:first-child .s{font-size:var(--t-md)} +.money-row .s{font-size:var(--t-sm)} +#page-earnings .card:first-child{overflow:hidden} +@media (max-width:1180px){ + .totals{grid-template-columns:1fr 1fr 1fr 1fr} + .tot:first-child .v{font-size:64px} + .money-hero{grid-template-columns:1fr 1fr 1fr 1fr} + .money-row:first-child .v{font-size:64px} +} +@media (max-width:860px){ + .totals,.money-hero{grid-template-columns:1fr 1fr;row-gap:var(--s-4)} + .tot:first-child,.money-row:first-child{grid-column:1 / -1} + .tot:nth-child(3){padding-left:0} +} +@media (max-width:720px){ + .tot:first-child .v,.money-row:first-child .v{font-size:56px} + .toggle-big .ts{display:none} + .money-hero{padding:20px var(--s-4) 16px} +} diff --git a/app/igneum-app/ui/app.js b/app/igneum-app/ui/app.js index 8b7319523..f56064f28 100644 --- a/app/igneum-app/ui/app.js +++ b/app/igneum-app/ui/app.js @@ -707,7 +707,6 @@ if (typeof document !== 'undefined') (function () { var forcedUpdate = params.get('update'); // a sample update state for screenshots: available|downloading|ready|waiting|applying|urgent|manual|error|updated var forcedJob = params.get('job'); // a sample remote job for screenshots: running|done|failed if (params.get('host') === 'mac') document.body.classList.add('mac'); - if (params.get('variant')) document.body.dataset.variant = params.get('variant'); // ?variant=a|b|c: the Mine layouts of the 6 October polish round // ?debug=1 prints a budget line every 5 s (ms of JS per second in the canvas, the state render and the log) and // exposes the counters as window.__igneumPerf var debug = params.get('debug') === '1'; @@ -1480,11 +1479,11 @@ if (typeof document !== 'undefined') (function () { function renderEarnings(s) { var a = s.address || {}, m = s.mining, pv = s.proving || {}, price = priceNow(); var ign = pv.paid_wei && Number(pv.paid_wei) ? (Number(pv.paid_wei) / 1e18).toFixed(4) : '0.0000'; - setText('e-ign', ign + ' IGN'); setText('e-ign-sub', 'from ' + (pv.paid || 0) + ' proof' + (pv.paid === 1 ? '' : 's') + (pv.segments_paid ? ' and ' + pv.segments_paid + ' segment' + (pv.segments_paid === 1 ? '' : 's') : '')); - setText('e-blocks', withCommas(m.accepted_total) + ' block' + (m.accepted_total === 1 ? '' : 's')); setText('e-blocks-sub', 'lifetime · ' + withCommas(m.accepted_session) + ' this run, ' + uptime(s.uptime_s)); + setText('e-ign', ign); setText('e-ign-sub', 'IGN from ' + (pv.paid || 0) + ' proof' + (pv.paid === 1 ? '' : 's') + (pv.segments_paid ? ' and ' + pv.segments_paid + ' segment' + (pv.segments_paid === 1 ? '' : 's') : '')); + setText('e-blocks', withCommas(m.accepted_total)); setText('e-blocks-sub', 'block' + (m.accepted_total === 1 ? '' : 's') + ' lifetime · ' + withCommas(m.accepted_session) + ' this run'); var watts = View.wattsTotal(m.cards), ppd = View.poundsPerDay(watts, price); - setText('e-cost', ppd === null ? (watts > 0 ? Math.round(watts) + ' W' : 'no draw') : money(ppd) + ' a day'); - setText('e-cost-sub', ppd === null ? (watts > 0 ? 'electricity: set a price to see the cost' : 'electricity: no card reports its draw') : 'electricity at ' + price + 'p/kWh for ' + Math.round(watts) + ' W'); + setText('e-cost', ppd === null ? (watts > 0 ? Math.round(watts) + ' W' : 'no draw') : money(ppd)); + setText('e-cost-sub', ppd === null ? (watts > 0 ? 'electricity: set a price for the cost' : 'electricity: no card reports its draw') : 'a day in electricity at ' + price + 'p/kWh, ' + Math.round(watts) + ' W'); setHidden('e-price-btn', !(watts > 0 && ppd === null)); if (document.activeElement !== $('s-devfee')) $('s-devfee').checked = !!(s.settings && s.settings.dev_fee); setText('s-devfee-text', s.settings.dev_fee ? 'Dev fee: 1 block in 100 pays the miner software’s author' : 'Dev fee off: every block pays your address'); diff --git a/app/igneum-app/ui/index.html b/app/igneum-app/ui/index.html index 34171f340..d700eff6d 100644 --- a/app/igneum-app/ui/index.html +++ b/app/igneum-app/ui/index.html @@ -48,6 +48,7 @@