diff options
author | David Gay <david@davidgay.org> | 2021-06-04 09:59:32 -0400 |
---|---|---|
committer | David Gay <david@davidgay.org> | 2021-06-04 09:59:32 -0400 |
commit | e3ec74cfbdf2428acb849a16b9ee6311020630a8 (patch) | |
tree | e806380d86e53e76a3589a70212fa41ddea8438a | |
parent | ffe82551ed64fa0ffc87ab3c0420a850a06295b4 (diff) |
Finishing timer improvements
-rw-r--r-- | CHANGELOG.md | 8 | ||||
-rw-r--r-- | app/javascript/controllers/timer_controller.js | 19 | ||||
-rw-r--r-- | app/views/application/_timer.html.erb | 2 |
3 files changed, 15 insertions, 14 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index f7769a4..d793a17 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,8 +3,8 @@ All notable changes to this project will be documented in this file. ## [0.1.6] - 2021-06-04 -Note that from this point foward, I am not explicitly listing the activities required to make the items, hearth -amenities, etc that are added unless they are special in some way. +Note that from this point foward, I am not explicitly listing the addition of activities required to make the items, +hearth amenities, etc that are being added unless they warrant explicit mention for some reason. ### Added - Current activity, timer, results, and conditions (boons & banes) are now always visible. Most are located in a new box @@ -20,7 +20,7 @@ amenities, etc that are added unless they are special in some way. ### Changed - Improved accuracy and feel of timer. It now starts counting down immediately, whereas before there was an - uncomfortable delay. + uncomfortable delay. There is also no impact on the timer when changing pages; it will continue correctly. - Bazaar no longer displays your orders under "Buy Orders" or "Sell Orders". Now your own orders are only visible in the "Your Orders" section. - Remaining duration of conditions and accumulated rested time are now expressed in "human" terms instead of seconds. @@ -37,7 +37,7 @@ amenities, etc that are added unless they are special in some way. ### Fixed - No blank line was being added to combat activity results if the activity was stopped due to being too wounded. -- Beastslay activity in the Killing Fields was called "Slay in [the the](https://en.wikipedia.org/wiki/The_The) +- Beastslay activity in the Killing Fields was named "Slay in [the the](https://en.wikipedia.org/wiki/The_The) Killing Fields". ## [0.1.5] - 2021-06-03 diff --git a/app/javascript/controllers/timer_controller.js b/app/javascript/controllers/timer_controller.js index ef741bf..e85e7ca 100644 --- a/app/javascript/controllers/timer_controller.js +++ b/app/javascript/controllers/timer_controller.js @@ -5,35 +5,36 @@ export default class extends Controller { static targets = [ "timer" ]; static values = { - start: Number, + counter: Number, postUrl: String, } - initialize() { - this.counter = this.startValue; - this.timerTarget.textContent = this.counter; + connect() { + if (!this.timerInterval) this.startUpdating(); + this.timerTarget.textContent = this.counterValue; this.postFailures = 0; - this.startUpdating(); } startUpdating() { let controller = this; - this.timerInterval = setInterval(() => { + controller.timerInterval = setInterval(() => { if (controller.postFailures >= 5) { alert("An error occurred. Please submit a bug report, explaining what you were doing when it occurred."); clearInterval(controller.timerInterval); return; } - if (controller.counter > 0) controller.counter--; + if (controller.counterValue > 0) controller.counterValue--; - if (controller.counter > 0) { - controller.timerTarget.textContent = controller.counter.toString(); + if (controller.counterValue > 0) { + controller.timerTarget.textContent = controller.counterValue.toString(); } else { Rails.ajax({ type: "POST", url: controller.postUrlValue, success: () => { + clearInterval(controller.timerInterval); + controller.timerInterval = null; controller.postFailures = 0; }, error: () => { diff --git a/app/views/application/_timer.html.erb b/app/views/application/_timer.html.erb index edbc7ea..46b1134 100644 --- a/app/views/application/_timer.html.erb +++ b/app/views/application/_timer.html.erb @@ -1,7 +1,7 @@ <% if current_char.activity %> <h2 class="text-lg text-display text-center"><%= current_char.activity.name %></h2> <div data-controller="timer" - data-timer-start-value="<%= current_char.activity_time_remaining.ceil %>" + data-timer-counter-value="<%= current_char.activity_time_remaining.ceil %>" data-timer-post-url-value="<%= finish_activity_url %>" class="text-center"> <span data-timer-target="timer" class="text-3xl"></span> |