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.7 KiB

4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
  1. <script>
  2. import {get} from "svelte/store";
  3. import pluralize from "pluralize";
  4. import Icon from 'fa-svelte'
  5. import { faCircle } from '@fortawesome/free-solid-svg-icons/faCircle'
  6. import stufflog from "../stores/stufflog";
  7. import modal from "../stores/modal";
  8. import Boi from "../components/Boi.svelte";
  9. import AddBoi from "../components/AddBoi.svelte";
  10. import Link from "../components/Link.svelte";
  11. import Table from "../components/Table.svelte";
  12. import SubActivityTable from "../components/tables/SubActivityTable";
  13. function onActivityOption(modalName, id) {
  14. const activity = get(stufflog).activities.find(a => a.id === id);
  15. modal.open(modalName, {activity})
  16. }
  17. </script>
  18. <div class="page">
  19. <AddBoi top on:click={() => modal.open("activity.create")}>Activity</AddBoi>
  20. {#each $stufflog.activities as activity (activity.id)}
  21. <Boi header={activity.name} icon={activity.icon}>
  22. <Table headers={["ID", "Daily Bonus", "Options"]} percentages={[25, 25, 50]}>
  23. <tr>
  24. <td>{activity.id}</td>
  25. <td>{activity.dailyBonus}</td>
  26. <td>
  27. <Link on:click={() => onActivityOption("activity.edit", activity.id)}>Edit Activity</Link>,
  28. <Link on:click={() => onActivityOption("subactivity.add", activity.id)}>Add Sub-Activity</Link>,
  29. <Link on:click={() => onActivityOption("activity.delete", activity.id)}>Delete Activity</Link>
  30. </td>
  31. </tr>
  32. </Table>
  33. <SubActivityTable
  34. activity={activity}
  35. on:option={(e) => modal.open(e.detail.name, e.detail)}
  36. />
  37. </Boi>
  38. {:else}
  39. <div class="empty">No data.</div>
  40. {/each}
  41. </div>
  42. <style>
  43. div.page {
  44. width: 100ch;
  45. max-width: 90%;
  46. margin: auto;
  47. }
  48. </style>