diff --git a/public/css/styles.css b/public/css/styles.css index 0ecd5ef..1ac1117 100644 --- a/public/css/styles.css +++ b/public/css/styles.css @@ -33,3 +33,5 @@ input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; } + +.selectable {cursor: pointer} \ No newline at end of file diff --git a/public/index.html b/public/index.html index c1f2ac6..74b54f9 100644 --- a/public/index.html +++ b/public/index.html @@ -67,9 +67,13 @@
-
-
{this.date}
-
+
+ chevron_left +
+
{this.current.date}
+
+ chevron_right +
@@ -115,12 +119,12 @@
-
+
  • -
    Today's Entries{this.history.length}
    +
    Today's Entries{this.current.entries.length}
  • -
diff --git a/public/js/index.js b/public/js/index.js index 7ad88b4..1ff9618 100644 --- a/public/js/index.js +++ b/public/js/index.js @@ -8,36 +8,29 @@ Litedom({ goal: 1500, }, delay: 0, - history: [], choices: [], - selected: {}, - today: (new Date()).toLocaleDateString('en-US').replaceAll('/', '-'), + current: { + date: new Date(), + day: '', + entries: [], + entry: {} + }, used: (state) => { - return state.history.reduce((prev, curr) => { + return state.current.entries.reduce((prev, curr) => { return prev + curr.value; }, 0); }, left: (state) => { return (state.settings.goal - state.used); - }, - date: () => { - return (new Date()).toLocaleDateString(undefined, { - weekday: 'long', - month: 'long', - day: 'numeric' - }); } }, async init() { // load todays history - this.entries(); + this.today(); // set focus document.getElementById('calories').focus(); }, - async entries() { - this.data.history = await db.entries.where({ day: this.data.today }).toArray(); - }, search() { clearTimeout(this.data.delay); @@ -59,7 +52,7 @@ Litedom({ let idx = e.target.getAttribute('idx'); // set seleted history index - this.data.selected = {idx: idx, ...this.data.history[idx]}; + this.data.current.entry = {idx: idx, ...this.data.current.entries[idx]}; }, remove(e) { // get selected index @@ -145,6 +138,46 @@ Litedom({ // set focus document.getElementById('calories').focus(); }, + async setDate(date, change) { + // currently selected data + let current = new Date(Date.parse(date)); + + // date back one day + let alter = new Date(current.setDate(current.getDate() + Number(change))); + + // tokenize for db + let day = alter.toLocaleDateString('en-US').replaceAll('/', '-'); + + // nice formated date string + let label = alter.toLocaleDateString(undefined, { + weekday: 'long', + month: 'long', + day: 'numeric' + }); + + // update current view + this.data.current = { + date: label, + day: day, + entries: await db.entries.where({ day: day }).toArray(), + entry: {} + } + }, + async back() { + // currently selected data + let current = new Date(Date.parse(this.data.current.day)); + + await this.setDate(current, -1); + }, + async today() { + await this.setDate(new Date(), 0); + }, + async forward() { + // currently selected data + let current = new Date(Date.parse(this.data.current.day)); + + await this.setDate(current, +1); + }, addWeight() { console.log('add weight'); },