|
23 | 23 | </nav> |
24 | 24 | </header> |
25 | 25 | <form> |
| 26 | + <input id=nowinp type="datetime-local"> |
26 | 27 | <section id="inputs"> |
27 | 28 | </section> |
28 | 29 | <button id="newInput" type="button">+</button> |
|
32 | 33 | <script> |
33 | 34 | 'use strict' |
34 | 35 |
|
| 36 | + const url = new URL(location.href) |
| 37 | + nowinp.value = new Date().toLocaleString("sv-SE").replace(" ", "T").slice(0,16); |
35 | 38 | const oneDay = 24*60*60*1000 |
36 | | - const now = Date.now() |
37 | | - const year = Number(new Date().setFullYear(new Date().getFullYear() - 1)) |
38 | 39 |
|
39 | 40 | const update = () => { |
| 41 | + const now = Date.parse(nowinp.value) |
| 42 | + const year = Number(new Date(now).setFullYear(new Date(now).getFullYear() - 1)) |
| 43 | + |
40 | 44 | try { |
41 | 45 | const dates = [...document.querySelectorAll('input[type=date]')] |
42 | 46 | const ccs = [...document.querySelectorAll('input[type=text]')] |
|
72 | 76 |
|
73 | 77 | localStorage.ds = ds.join() |
74 | 78 | localStorage.cs = cs.join() |
| 79 | + updateUrl() |
75 | 80 | } catch (err) { |
76 | 81 | const { message, stack, name } = err |
77 | 82 | outputs.textContent = [name, message, stack].join('\n') |
|
102 | 107 | inputs.append(div) |
103 | 108 | } |
104 | 109 |
|
105 | | - const ds = localStorage.ds?.split(',') |
106 | | - const cs = localStorage.cs?.split(',') |
| 110 | + const updateUrl = () => { |
| 111 | + url.searchParams.set('ds', localStorage.ds) |
| 112 | + url.searchParams.set('cs', localStorage.cs) |
| 113 | + history.replaceState(null, '', url.href) |
| 114 | + } |
| 115 | + |
| 116 | + const ds = (localStorage.ds || url.searchParams.get(ds))?.split(',') |
| 117 | + const cs = (localStorage.cs || url.searchParams.get(cs))?.split(',') |
107 | 118 | if (ds && cs) { |
108 | 119 | ds.map((dd, i) => addInput(dd, cs[i])) |
109 | 120 | update() |
| 121 | + updateUrl() |
110 | 122 | } |
111 | 123 |
|
| 124 | + nowinp.addEventListener('change', update) |
112 | 125 | newInput.addEventListener('click', addInput) |
113 | 126 | </script> |
114 | 127 | </body> |
|
0 commit comments