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.

56 lines
1.6 KiB

4 years ago
  1. <script>
  2. import pluralize from "pluralize";
  3. import ModalFrame from "../components/ModalFrame";
  4. import modal from "../stores/modal";
  5. import stufflog from "../stores/stufflog";
  6. export let activity = {};
  7. export let subActivity = {};
  8. let error = null;
  9. let id = subActivity.id;
  10. let name = subActivity.name;
  11. let unitName = subActivity.unitName;
  12. let value = subActivity.value;
  13. function editSubActivity() {
  14. value = parseFloat(value)
  15. if (Number.isNaN(value)) {
  16. error = "Value should be a number."
  17. value = subActivity.value;
  18. return
  19. }
  20. stufflog.updateActivity(activity.id, {editSub: {id, name, unitName, value}}).then(() => {
  21. modal.close();
  22. }).catch(err => {
  23. error = err.message || err;
  24. console.warn(err);
  25. });
  26. }
  27. </script>
  28. <ModalFrame title={`Edit ${activity.name} Sub-Activity`} error={error} closable on:close={() => modal.close()}>
  29. <form on:submit|preventDefault={() => editSubActivity()}>
  30. <label>Name</label>
  31. <input type="text" bind:value={name} />
  32. <label>Unit</label>
  33. <select bind:value={unitName}>
  34. <option value="minute">minute</option>
  35. <option value="word">word</option>
  36. <option value="hour">hour</option>
  37. <option value="item">item</option>
  38. </select>
  39. <label>Value per {pluralize(unitName, 1)}</label>
  40. <input type="string" bind:value={value} />
  41. <p>
  42. 1000 points should be equivalent to about an hour of baseline activity. Beyond that, it's
  43. about incentivitzing the right thing.
  44. </p>
  45. <hr />
  46. <button type="submit">Edit Sub-Activity</button>
  47. </form>
  48. </ModalFrame>