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": { 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 @@ diff --git a/src/lib/common/stores.js b/src/lib/common/stores.js index c477471..0873d52 100644 --- a/src/lib/common/stores.js +++ b/src/lib/common/stores.js @@ -6,17 +6,22 @@ export const alertStore = writable(''); // used to determine if the API is functioning export const apiTestStore = writable(''); // stores the theme -export const headscaleThemeStore = writable(''); +export const themeStore = writable(''); // stores URL and API Key -export const headscaleURLStore = writable(''); -export const headscaleAPIKeyStore = writable(''); +export const URLStore = writable(''); +export const APIKeyStore = writable(''); // stores preauth key preference export const preAuthHideStore = writable(false); // stores user and device data -export const headscaleUserStore = writable([new User()]); -export const headscaleDeviceStore = writable([new Device()]); +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 headscaleDeviceSortStore = writable('id'); -export const headscaleDeviceSortDirectionStore = writable('ascending'); -export const headscaleUserSortStore = writable('id'); -export const headscaleUserSortDirectionStore = writable('ascending'); \ No newline at end of file +export const deviceSortStore = writable('id'); +export const deviceSortDirectionStore = writable('ascending'); +export const userSortStore = writable('id'); +export const sortDirectionStore = writable('ascending'); \ No newline at end of file diff --git a/src/lib/devices/CreateDevice.svelte b/src/lib/devices/CreateDevice.svelte index 86718e8..008bb79 100644 --- a/src/lib/devices/CreateDevice.svelte +++ b/src/lib/devices/CreateDevice.svelte @@ -1,6 +1,6 @@ + + +
+ + + +
diff --git a/src/lib/devices/SortDevices.svelte b/src/lib/devices/SortDevices.svelte index 1315413..e97dcec 100644 --- a/src/lib/devices/SortDevices.svelte +++ b/src/lib/devices/SortDevices.svelte @@ -1,12 +1,12 @@ @@ -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..3134fe6 --- /dev/null +++ b/src/lib/users/SearchUsers.svelte @@ -0,0 +1,23 @@ + + + +
+ + + +
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..ea9325b 100644 --- a/src/routes/devices.html.svelte +++ b/src/routes/devices.html.svelte @@ -1,13 +1,14 @@