From 41a7263c45839a21a09ac5c67a213b38d12cc1d2 Mon Sep 17 00:00:00 2001 From: Christopher Bisset Date: Mon, 1 Aug 2022 09:53:38 +1000 Subject: [PATCH 1/6] added fuse.js --- package-lock.json | 29 +++++++++++++++++++++++------ package.json | 6 +++--- 2 files changed, 26 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index 960fc93..1b6c638 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,6 +15,7 @@ "@vitejs/plugin-basic-ssl": "^0.1.1", "autoprefixer": "^10.4.4", "daisyui": "^2.19.0", + "fuse.js": "^6.6.2", "postcss": "^8.4.12", "postcss-load-config": "^3.1.4", "prettier": "^2.6.2", @@ -185,10 +186,11 @@ } }, "node_modules/@sveltejs/kit": { - "version": "1.0.0-next.398", - "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-1.0.0-next.398.tgz", - "integrity": "sha512-ONjHoRurnFUe+0lv0P9rZQpDuuJy4Cr/lDneoG+lkOR5/7gcvd03TlVdxLz1ZQAWPbgovm/PpshOvIUeC4n62A==", + "version": "1.0.0-next.401", + "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-1.0.0-next.401.tgz", + "integrity": "sha512-VrpFtSSu1ADRVWWDxLl218GKf9l+TA7tNCCAmVFAuJdj5zVxPgJflu4Dh1p5C4efKP+x1v6W5nvxmNkbZLPoag==", "dev": true, + "hasInstallScript": true, "dependencies": { "@sveltejs/vite-plugin-svelte": "^1.0.1", "chokidar": "^3.5.3", @@ -1275,6 +1277,15 @@ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "dev": true }, + "node_modules/fuse.js": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-6.6.2.tgz", + "integrity": "sha512-cJaJkxCCxC8qIIcPBF9yGxY0W/tVZS3uEISDxhYIdtk8OL93pe+6Zj7LjCqVV4dzbqcriOZ+kQ/NE4RXZHsIGA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, "node_modules/gauge": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", @@ -2900,9 +2911,9 @@ } }, "@sveltejs/kit": { - "version": "1.0.0-next.398", - "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-1.0.0-next.398.tgz", - "integrity": "sha512-ONjHoRurnFUe+0lv0P9rZQpDuuJy4Cr/lDneoG+lkOR5/7gcvd03TlVdxLz1ZQAWPbgovm/PpshOvIUeC4n62A==", + "version": "1.0.0-next.401", + "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-1.0.0-next.401.tgz", + "integrity": "sha512-VrpFtSSu1ADRVWWDxLl218GKf9l+TA7tNCCAmVFAuJdj5zVxPgJflu4Dh1p5C4efKP+x1v6W5nvxmNkbZLPoag==", "dev": true, "requires": { "@sveltejs/vite-plugin-svelte": "^1.0.1", @@ -3601,6 +3612,12 @@ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "dev": true }, + "fuse.js": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-6.6.2.tgz", + "integrity": "sha512-cJaJkxCCxC8qIIcPBF9yGxY0W/tVZS3uEISDxhYIdtk8OL93pe+6Zj7LjCqVV4dzbqcriOZ+kQ/NE4RXZHsIGA==", + "dev": true + }, "gauge": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", diff --git a/package.json b/package.json index 7e48d2e..3048581 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,6 @@ "package": "vite package", "preview": "vite preview --https --port 443 --host 0.0.0.0", "stage": "/usr/bin/caddy run --adapter caddyfile --config ./Caddyfile", - "prepare": "svelte-kit sync", "check": "svelte-check --tsconfig ./jsconfig.json", "check:watch": "svelte-check --tsconfig ./jsconfig.json --watch", "lint": "prettier --check --plugin-search-dir=. .", @@ -18,8 +17,10 @@ "@sveltejs/adapter-static": "^1.0.0-next.34", "@sveltejs/kit": "next", "@tailwindcss/typography": "github:tailwindcss/typography", + "@vitejs/plugin-basic-ssl": "^0.1.1", "autoprefixer": "^10.4.4", "daisyui": "^2.19.0", + "fuse.js": "^6.6.2", "postcss": "^8.4.12", "postcss-load-config": "^3.1.4", "prettier": "^2.6.2", @@ -28,8 +29,7 @@ "svelte-check": "^2.7.1", "svelte-preprocess": "^4.10.7", "tailwindcss": "^3.0.23", - "typescript": "^4.7.2", - "@vitejs/plugin-basic-ssl": "^0.1.1" + "typescript": "^4.7.2" }, "type": "module", "dependencies": { From 7e0153ceda4b68c63e5c3c0236be69572cf43982 Mon Sep 17 00:00:00 2001 From: Christopher Bisset Date: Tue, 2 Aug 2022 12:54:42 +1000 Subject: [PATCH 2/6] renamed store variables to be consistent, added search bar --- src/lib/common/Stores.svelte | 34 +++++----- src/lib/common/apiFunctions.svelte | 6 +- src/lib/common/stores.js | 20 +++--- src/lib/devices/CreateDevice.svelte | 4 +- src/lib/devices/DeviceCard/MoveDevice.svelte | 4 +- .../devices/DeviceCard/RemoveDevice.svelte | 2 +- src/lib/devices/SortDevices.svelte | 16 ++--- src/lib/settings/ServerSettings.svelte | 18 ++--- src/lib/settings/ThemeSettings.svelte | 4 +- src/lib/users/SearchUsers.svelte | 20 ++++++ src/lib/users/SortUsers.svelte | 16 ++--- src/routes/__layout.svelte | 4 +- src/routes/devices.html.svelte | 4 +- src/routes/users.html.svelte | 65 ++++++++++--------- 14 files changed, 121 insertions(+), 96 deletions(-) create mode 100644 src/lib/users/SearchUsers.svelte diff --git a/src/lib/common/Stores.svelte b/src/lib/common/Stores.svelte index acbb264..95d08ec 100644 --- a/src/lib/common/Stores.svelte +++ b/src/lib/common/Stores.svelte @@ -1,32 +1,32 @@ @@ -45,7 +45,7 @@

Generate an API key for your headscale instance and place it here.

- +
diff --git a/src/lib/settings/ThemeSettings.svelte b/src/lib/settings/ThemeSettings.svelte index 6b5cbe0..ac22f8b 100644 --- a/src/lib/settings/ThemeSettings.svelte +++ b/src/lib/settings/ThemeSettings.svelte @@ -1,10 +1,10 @@

Theme Settings

- {#each themes as localTheme} {/each} diff --git a/src/lib/users/SearchUsers.svelte b/src/lib/users/SearchUsers.svelte new file mode 100644 index 0000000..bd89d30 --- /dev/null +++ b/src/lib/users/SearchUsers.svelte @@ -0,0 +1,20 @@ + + + +
+ + + +
diff --git a/src/lib/users/SortUsers.svelte b/src/lib/users/SortUsers.svelte index 705eca0..3846095 100644 --- a/src/lib/users/SortUsers.svelte +++ b/src/lib/users/SortUsers.svelte @@ -1,12 +1,12 @@ -
+
diff --git a/src/routes/devices.html.svelte b/src/routes/devices.html.svelte index 52e9b4b..2d7440f 100644 --- a/src/routes/devices.html.svelte +++ b/src/routes/devices.html.svelte @@ -5,7 +5,7 @@ import SortDevices from '$lib/devices/SortDevices.svelte'; import { onMount } from 'svelte'; import { fade } from 'svelte/transition'; - import { apiTestStore, headscaleDeviceStore } from '$lib/common/stores.js'; + import { apiTestStore, deviceStore } from '$lib/common/stores.js'; import { getUsers, getDevices } from '$lib/common/apiFunctions.svelte'; import { base } from '$app/paths'; @@ -54,7 +54,7 @@ - {#each $headscaleDeviceStore as device} + {#each $deviceStore as device} {/each} {/if} diff --git a/src/routes/users.html.svelte b/src/routes/users.html.svelte index d99ca33..702a3e4 100644 --- a/src/routes/users.html.svelte +++ b/src/routes/users.html.svelte @@ -1,13 +1,14 @@ diff --git a/src/lib/common/stores.js b/src/lib/common/stores.js index f5bee65..ca9340a 100644 --- a/src/lib/common/stores.js +++ b/src/lib/common/stores.js @@ -14,6 +14,7 @@ export const APIKeyStore = writable(''); export const preAuthHideStore = writable(false); // stores user and device data export const userStore = writable([new User()]); +export const userFilterStore = writable([new User()]); export const deviceStore = writable([new Device()]); // stores search state export const userSearchStore = writable(''); diff --git a/src/lib/users/SearchUsers.svelte b/src/lib/users/SearchUsers.svelte index bd89d30..ebc88f5 100644 --- a/src/lib/users/SearchUsers.svelte +++ b/src/lib/users/SearchUsers.svelte @@ -1,14 +1,17 @@ diff --git a/src/routes/users.html.svelte b/src/routes/users.html.svelte index 702a3e4..2af1498 100644 --- a/src/routes/users.html.svelte +++ b/src/routes/users.html.svelte @@ -2,7 +2,7 @@ diff --git a/src/lib/common/searching.svelte b/src/lib/common/searching.svelte new file mode 100644 index 0000000..344a2f5 --- /dev/null +++ b/src/lib/common/searching.svelte @@ -0,0 +1,38 @@ + diff --git a/src/lib/common/stores.js b/src/lib/common/stores.js index ca9340a..0873d52 100644 --- a/src/lib/common/stores.js +++ b/src/lib/common/stores.js @@ -16,8 +16,10 @@ export const preAuthHideStore = writable(false); export const userStore = writable([new User()]); export const userFilterStore = writable([new User()]); export const deviceStore = writable([new Device()]); +export const deviceFilterStore = writable([new Device()]); // stores search state export const userSearchStore = writable(''); +export const deviceSearchStore = writable(''); // stores sorting preferences export const deviceSortStore = writable('id'); export const deviceSortDirectionStore = writable('ascending'); diff --git a/src/lib/devices/SearchDevices.svelte b/src/lib/devices/SearchDevices.svelte new file mode 100644 index 0000000..a345c88 --- /dev/null +++ b/src/lib/devices/SearchDevices.svelte @@ -0,0 +1,23 @@ + + + +
+ + + +
diff --git a/src/lib/users/SearchUsers.svelte b/src/lib/users/SearchUsers.svelte index ebc88f5..3134fe6 100644 --- a/src/lib/users/SearchUsers.svelte +++ b/src/lib/users/SearchUsers.svelte @@ -1,5 +1,5 @@