From 2b52bc5d29e53d1bb278fb18ea33e8c3fbad628c Mon Sep 17 00:00:00 2001 From: Neale Pickett Date: Sun, 22 Jan 2023 16:34:29 -0700 Subject: [PATCH] Make the little icon orange when rx is happening. I am a fan of subtle notifications, so the color doesn't flash like an rx light. Closes #49 --- static/assets/vail-rx.png | Bin 0 -> 5030 bytes static/assets/vail-rx.svg | 156 ++++++++++++++++++++++++++++++++++++++ static/scripts/vail.mjs | 12 +++ 3 files changed, 168 insertions(+) create mode 100644 static/assets/vail-rx.png create mode 100644 static/assets/vail-rx.svg diff --git a/static/assets/vail-rx.png b/static/assets/vail-rx.png new file mode 100644 index 0000000000000000000000000000000000000000..50f792b3677f1ad914caebd9470f8b1d0971e5c5 GIT binary patch literal 5030 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 XG;E4OUC00Zf1@+hHGyF6Iz{|HTZz!I literal 0 HcmV?d00001 diff --git a/static/assets/vail-rx.svg b/static/assets/vail-rx.svg new file mode 100644 index 0000000..d3ef5f1 --- /dev/null +++ b/static/assets/vail-rx.svg @@ -0,0 +1,156 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/static/scripts/vail.mjs b/static/scripts/vail.mjs index 13105f1..504faea 100644 --- a/static/scripts/vail.mjs +++ b/static/scripts/vail.mjs @@ -165,8 +165,20 @@ class VailClient { document.querySelector("#keyer-rate").dispatchEvent(new Event("input")) } + setIconBase(base) { + for (let e of document.querySelectorAll("link[rel=icon]")) { + let ext = e.href.split(".")[1] + e.href = `${base}.${ext}` + } + } + Buzz() { this.outputs.Buzz(false) + + clearTimeout(this.activityTimeout) + this.activityTimeout = setTimeout(() => this.setIconBase("assets/vail"), 2*time.Second) + this.setIconBase("assets/vail-rx") + if (this.rxChart) this.rxChart.Set(1) }