GithubHelp home page GithubHelp logo

Re-Start an (existing) Timer? about app HOT 4 CLOSED

dwyl avatar dwyl commented on September 28, 2024
Re-Start an (existing) Timer?

from app.

Comments (4)

NataliaLKB avatar NataliaLKB commented on September 28, 2024

T does not allow you to continue a timer you have stopped. For me, I would definitely like this to be a feature.

from app.

nelsonic avatar nelsonic commented on September 28, 2024

I like the idea of being able to re-start a timer. @iteles were you able to discover if "existing" timing apps have this feature (and a simple UI for it)?

The simplest possible timer record would contain:

{
  "person":"string",
  "desc":"string",
  "st":"timestamp",
  "et": "timestamp"
}

This is simple both for our team building the initial UI and for other developers using the API.
if we want to be able to _re-start_ (using the same record) we would need to either:

a) store the elapsed time and increment it (in which case we would update the et (end time) when ever the person taps stop. (which means we lose the data for the previous et)

{
  "person":"string",
  "desc":"string",
  "st":"timestamp",
  "et": "timestamp",
  "total":"integer"      // running total of seconds spent on this timer/task/activity
}

_OR_
b) If the timer has multiple starts and ends we could store them in a series (array)

{
  "person":"string",
  "desc":"string",
  "st": [ "timestamp1", "timestamp2", "timestamp3" ],
  "et": [ "timestamp1", "timestamp2", "timestamp3" ],
  "total":"integer"      // running total of seconds spent on this timer/task/activity
}

But this requires our UI people to write _logic-in-the-views_ e.g: check if st is an "array"

if(record.st instanceof Array) {
  // show the timer as a series of starts and stops
} else {
  // display a "simple" timer
}

_OR_
(And I don't like this, but I'm just illustrating how it can get complex/ugly fast...!)
c) store a series of rst (restart time) and pt (pause time) entries in the original record...
this could be done numerically (e.g: rst1 and pt1)
e.g:

{
  "person":"string",
  "desc":"string",
  "st":"timestamp",
  "rst1":"timestamp", // re-started time
  "pt1":"timestamp",  // paused time
  "et": "timestamp",
}

I don't find any of these to be an elegant solution... anyone else got ideas?

from app.

iteles avatar iteles commented on September 28, 2024

From a UI perspective, I would suggest this should be as simple as allowing people to press 'play' play-icon-blue-small on an existing timer from wherever you are in the app (as long as you're looking at a timer record, you can decide to pick up that activity again and restart the timer).

The simplest "options" (the only ones worth considering) allow for a 'restarting' of timers from the homepage - the today view - and deal with this in one of two ways:

  • (T) Hitting restart copies your timer information and starts a new timer with all the same details but new timestamps (and creates a new log in your today view)
  • (H) Hitting restart keeps the existing timer going and discards start and end time information

What we have to determine is how important is it to our people to record the timestamp of every entry vs just the total amount of time allocated to an activity (irrespective of when it was started and stopped).
I have some thoughts on this but would love to hear some other opinions first ;) @NataliaLKB @FilWisher @nelsonic

from app.

nelsonic avatar nelsonic commented on September 28, 2024

We will not be allowing people to "re-start" a timer.
But given that we can link as many timers to a given item,
the person can easily accumulate multiple work sessions against the same item
and the UI will display the cumulative time.
See: #265

from app.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.