diff --git a/frontend/src/app.html b/frontend/src/app.html
index 6df7497..00860b9 100644
--- a/frontend/src/app.html
+++ b/frontend/src/app.html
@@ -5,6 +5,7 @@
+
Focus.
%sveltekit.head%
diff --git a/frontend/src/components/project/groupMenu.svelte b/frontend/src/components/project/groupMenu.svelte
new file mode 100644
index 0000000..5fbbd98
--- /dev/null
+++ b/frontend/src/components/project/groupMenu.svelte
@@ -0,0 +1,56 @@
+
+
+{#if isOpen}
+
+{/if}
+
+
diff --git a/frontend/src/components/project/header.svelte b/frontend/src/components/project/header.svelte
index 3604574..634224e 100644
--- a/frontend/src/components/project/header.svelte
+++ b/frontend/src/components/project/header.svelte
@@ -1,10 +1,13 @@
@@ -45,32 +73,34 @@
}
nav {
- * {
- cursor: pointer;
- }
-
- span {
- margin-right: 10px;
- color: #aaa;
- padding: 5px 10px;
- border-radius: 7px;
-
- &:hover {
- // background-color: #fff2;
- }
- }
+ display: flex;
+ flex-direction: row;
+ align-items: center;
button {
- background: #324067;
- color: inherit;
+ cursor: pointer;
+ color: #aaa;
+ padding: 5px 10px;
+ margin-left: 10px;
+ border-radius: 7px;
border: none;
- border-radius: 10px;
- padding: 10px 20px;
+ background-color: transparent;
font-size: inherit;
- &:hover {
- // background-color: #3a4a77;
+ &.defined {
+ color: #6481cc;
}
+
+ &.disabled {
+ color: #555;
+ cursor: not-allowed;
+ }
+ }
+
+ #newButton {
+ background: #324067;
+ border-radius: 10px;
+ padding: 10px 20px;
}
}
diff --git a/frontend/src/components/project/project.svelte b/frontend/src/components/project/project.svelte
index f46813a..35b8a7f 100644
--- a/frontend/src/components/project/project.svelte
+++ b/frontend/src/components/project/project.svelte
@@ -25,8 +25,8 @@
{#if project}
-
{#if view && $projectTags[view.primary_tag_id] && $cards}
+
{#each $projectTags[view.primary_tag_id].options as option}
{
+ const { subscribe, set, update } = writable(null as View | null);
+
+ return {
+ subscribe,
+ set,
+ update: async (view: View): Promise => {
+ const response = await api.put(`/v1/views/${view.id}`, view);
+
+ if (response.status !== status.NoContent) {
+ processError(response, 'Failed to update view');
+ return false;
+ }
+
+ set(view);
+
+ return true;
+ }
+ };
+})();
export const currentModalCard = writable(-1);