Plan stuff. Log stuff.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

50 lines
1.4 KiB

4 years ago
  1. <script>
  2. import ModalFrame from "../components/ModalFrame";
  3. import ActivityIconSelect from "../components/ActivityIconSelect";
  4. import modal from "../stores/modal";
  5. import stufflog from "../stores/stufflog";
  6. import dateStr from "../utils/dateStr";
  7. export let period = {};
  8. let error = null;
  9. let name = period.name;
  10. let fromStr = dateStr(period.from)
  11. let toStr = dateStr(period.to)
  12. function editPeriod() {
  13. const from = new Date(`${fromStr} 00:00:00.000`);
  14. const to = new Date(`${toStr} 23:59:59.999`);
  15. error = null;
  16. if (Number.isNaN(from.getTime())) {
  17. error = "You must enter a from date.";
  18. return;
  19. }
  20. if (Number.isNaN(from.getTime())) {
  21. error = "You must enter a to date.";
  22. return;
  23. }
  24. stufflog.updatePeriod(period.id, {setName: name, setFrom: from, setTo: to}).then(() => {
  25. modal.close();
  26. }).catch(err => {
  27. error = err.message || err;
  28. console.warn(err);
  29. });
  30. }
  31. </script>
  32. <ModalFrame title="Edit Period" error={error} closable on:close={() => modal.close()}>
  33. <form on:submit|preventDefault={() => editPeriod()}>
  34. <label>Name</label>
  35. <input type="text" bind:value={name} />
  36. <label>From</label>
  37. <input type="date" bind:value={fromStr} />
  38. <label>To</label>
  39. <input type="date" bind:value={toStr} />
  40. <button type="submit">Save</button>
  41. </form>
  42. </ModalFrame>