Compare commits
	
		
			44 Commits
		
	
	
		
			0.4.0
			...
			renovate/s
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						
						
							
						
						cd4d9cf3ea
	
				 | 
					
					
						|||
| 
						
						
							
						
						85d018c899
	
				 | 
					
					
						|||
| 
						
						
							
						
						07b892517e
	
				 | 
					
					
						|||
| d0366bbd2a | |||
| 
						
						
							
						
						205bbd08d1
	
				 | 
					
					
						|||
| a71279b223 | |||
| 
						
						
							
						
						664e9b087f
	
				 | 
					
					
						|||
| 
						
						
							
						
						e04314217b
	
				 | 
					
					
						|||
| 
						
						
							
						
						17060fb068
	
				 | 
					
					
						|||
| 
						
						
							
						
						a818b7f203
	
				 | 
					
					
						|||
| 
						
						
							
						
						d4c69f2723
	
				 | 
					
					
						|||
| 
						
						
							
						
						f92162bca9
	
				 | 
					
					
						|||
| 
						
						
							
						
						3bc11ce05f
	
				 | 
					
					
						|||
| 7eab070c6a | |||
| d5cd5c9a97 | |||
| 68ec2e34e1 | |||
| 6a0a73a890 | |||
| c259220e3a | |||
| 5bfa89f283 | |||
| aa70878324 | |||
| f7bce68f68 | |||
| 074f9492a9 | |||
| b6f57384d0 | |||
| 01ff1bf0df | |||
| 01a5031895 | |||
| 4d287c3d1a | |||
| 5688f0dab6 | |||
| 357ef79e11 | |||
| 397d1070c8 | |||
| 8abd89d0d1 | |||
| a7df098167 | |||
| 
						
						
							
						
						2b721c483e
	
				 | 
					
					
						|||
| 
						
						
							
						
						ada12fd4db
	
				 | 
					
					
						|||
| 4814ef4c22 | |||
| 
						
						
							
						
						b0d866873b
	
				 | 
					
					
						|||
| 
						
						
							
						
						06364a06bf
	
				 | 
					
					
						|||
| 795b166d7f | |||
| 
						
						
							
						
						adb4bb7f75
	
				 | 
					
					
						|||
| 958902631f | |||
| 
						
						
							
						
						b0347a9d06
	
				 | 
					
					
						|||
| 384354fbac | |||
| 
						
						
							
						
						ed2e8ef446
	
				 | 
					
					
						|||
| fa16814f91 | |||
| 
						
						
							
						
						735279bc47
	
				 | 
					
					
						
							
								
								
									
										59
									
								
								.drone.yml
									
									
									
									
									
								
							
							
						
						
									
										59
									
								
								.drone.yml
									
									
									
									
									
								
							@@ -1,59 +0,0 @@
 | 
				
			|||||||
---
 | 
					 | 
				
			||||||
kind: secret
 | 
					 | 
				
			||||||
name: docker_username
 | 
					 | 
				
			||||||
get:
 | 
					 | 
				
			||||||
  path: odit-registry-builder
 | 
					 | 
				
			||||||
  name: username
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
---
 | 
					 | 
				
			||||||
kind: secret
 | 
					 | 
				
			||||||
name: docker_password
 | 
					 | 
				
			||||||
get:
 | 
					 | 
				
			||||||
  path: odit-registry-builder
 | 
					 | 
				
			||||||
  name: password
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
---
 | 
					 | 
				
			||||||
kind: pipeline
 | 
					 | 
				
			||||||
type: kubernetes
 | 
					 | 
				
			||||||
name: build:latest
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
steps:
 | 
					 | 
				
			||||||
  - name: docker release
 | 
					 | 
				
			||||||
    image: plugins/docker
 | 
					 | 
				
			||||||
    depends_on: [clone]
 | 
					 | 
				
			||||||
    settings:
 | 
					 | 
				
			||||||
      username:
 | 
					 | 
				
			||||||
        from_secret: docker_username
 | 
					 | 
				
			||||||
      password:
 | 
					 | 
				
			||||||
        from_secret: docker_password
 | 
					 | 
				
			||||||
      repo: registry.odit.services/kauft.es/linkylinky-dashboard
 | 
					 | 
				
			||||||
      tags:
 | 
					 | 
				
			||||||
        - latest
 | 
					 | 
				
			||||||
      registry: registry.odit.services
 | 
					 | 
				
			||||||
      mtu: 1000
 | 
					 | 
				
			||||||
    when:
 | 
					 | 
				
			||||||
      branch:
 | 
					 | 
				
			||||||
        - main
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
---
 | 
					 | 
				
			||||||
kind: pipeline
 | 
					 | 
				
			||||||
type: kubernetes
 | 
					 | 
				
			||||||
name: build:tags
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
steps:
 | 
					 | 
				
			||||||
  - name: build $DRONE_TAG
 | 
					 | 
				
			||||||
    image: plugins/docker
 | 
					 | 
				
			||||||
    depends_on: [clone]
 | 
					 | 
				
			||||||
    settings:
 | 
					 | 
				
			||||||
      username:
 | 
					 | 
				
			||||||
        from_secret: docker_username
 | 
					 | 
				
			||||||
      password:
 | 
					 | 
				
			||||||
        from_secret: docker_password
 | 
					 | 
				
			||||||
      repo: registry.odit.services/kauft.es/linkylinky-dashboard
 | 
					 | 
				
			||||||
      tags:
 | 
					 | 
				
			||||||
        - '${DRONE_TAG}'
 | 
					 | 
				
			||||||
      registry: registry.odit.services
 | 
					 | 
				
			||||||
      mtu: 1000
 | 
					 | 
				
			||||||
trigger:
 | 
					 | 
				
			||||||
  event:
 | 
					 | 
				
			||||||
  - tag
 | 
					 | 
				
			||||||
							
								
								
									
										38
									
								
								.woodpecker/build.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								.woodpecker/build.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,38 @@
 | 
				
			|||||||
 | 
					steps:
 | 
				
			||||||
 | 
					  - name: build latest
 | 
				
			||||||
 | 
					    image: woodpeckerci/plugin-docker-buildx
 | 
				
			||||||
 | 
					    settings:
 | 
				
			||||||
 | 
					      repo: registry.odit.services/kauft.es/linkylinky-dashboard
 | 
				
			||||||
 | 
					      tags:
 | 
				
			||||||
 | 
					        - latest
 | 
				
			||||||
 | 
					      registry: registry.odit.services
 | 
				
			||||||
 | 
					      platforms: linux/amd64,linux/arm64
 | 
				
			||||||
 | 
					      cache_from: registry.odit.services/kauft.es/linkylinky-dashboard:latest
 | 
				
			||||||
 | 
					      username:
 | 
				
			||||||
 | 
					        from_secret: odit-registry-builder-username
 | 
				
			||||||
 | 
					      password:
 | 
				
			||||||
 | 
					        from_secret: odit-registry-builder-password
 | 
				
			||||||
 | 
					    secrets:
 | 
				
			||||||
 | 
					      - source: odit-npm-cache-url
 | 
				
			||||||
 | 
					        target: NPM_REGISTRY_URL
 | 
				
			||||||
 | 
					    when:
 | 
				
			||||||
 | 
					      branch: main
 | 
				
			||||||
 | 
					      event: push
 | 
				
			||||||
 | 
					  - name: build tag
 | 
				
			||||||
 | 
					    image: woodpeckerci/plugin-docker-buildx
 | 
				
			||||||
 | 
					    settings:
 | 
				
			||||||
 | 
					      repo: registry.odit.services/kauft.es/linkylinky-dashboard
 | 
				
			||||||
 | 
					      tags:
 | 
				
			||||||
 | 
					        - "${CI_COMMIT_TAG}"
 | 
				
			||||||
 | 
					      registry: registry.odit.services
 | 
				
			||||||
 | 
					      platforms: linux/amd64,linux/arm64
 | 
				
			||||||
 | 
					      cache_from: registry.odit.services/kauft.es/linkylinky-dashboard:latest
 | 
				
			||||||
 | 
					      username:
 | 
				
			||||||
 | 
					        from_secret: odit-registry-builder-username
 | 
				
			||||||
 | 
					      password:
 | 
				
			||||||
 | 
					        from_secret: odit-registry-builder-password
 | 
				
			||||||
 | 
					    secrets:
 | 
				
			||||||
 | 
					      - source: odit-npm-cache-url
 | 
				
			||||||
 | 
					        target: NPM_REGISTRY_URL
 | 
				
			||||||
 | 
					    when:
 | 
				
			||||||
 | 
					      event: tag
 | 
				
			||||||
							
								
								
									
										36
									
								
								CHANGELOG.md
									
									
									
									
									
								
							
							
						
						
									
										36
									
								
								CHANGELOG.md
									
									
									
									
									
								
							@@ -2,13 +2,49 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
All notable changes to this project will be documented in this file. Dates are displayed in UTC.
 | 
					All notable changes to this project will be documented in this file. Dates are displayed in UTC.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### [0.4.5](https://git.odit.services/kauft.es/linkylinky-dashboard/compare/0.4.4...0.4.5)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- Added missing text styling to button [`b0d8668`](https://git.odit.services/kauft.es/linkylinky-dashboard/commit/b0d866873b7871118f664d5955212913aabbb414)
 | 
				
			||||||
 | 
					- Fixed image src for deployment [`06364a0`](https://git.odit.services/kauft.es/linkylinky-dashboard/commit/06364a06bfd625e8f255569404892104a3192014)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### [0.4.4](https://git.odit.services/kauft.es/linkylinky-dashboard/compare/0.4.3...0.4.4)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					> 21 August 2021
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- 🚀RELEASE 0.4.4 [`795b166`](https://git.odit.services/kauft.es/linkylinky-dashboard/commit/795b166d7f733907662047f1f6eb01bf5ce2eab4)
 | 
				
			||||||
 | 
					- Added logo to sidebar [`adb4bb7`](https://git.odit.services/kauft.es/linkylinky-dashboard/commit/adb4bb7f7523e7fd739e93a74837c32eb9b266fa)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### [0.4.3](https://git.odit.services/kauft.es/linkylinky-dashboard/compare/0.4.2...0.4.3)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					> 21 August 2021
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- 🚀RELEASE 0.4.3 [`9589026`](https://git.odit.services/kauft.es/linkylinky-dashboard/commit/958902631fe282b378048be8728cb9ec10c97cc4)
 | 
				
			||||||
 | 
					- Added provider to detail vist table [`b0347a9`](https://git.odit.services/kauft.es/linkylinky-dashboard/commit/b0347a9d06a21578b4e5263daabf11e5de45ef5c)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### [0.4.2](https://git.odit.services/kauft.es/linkylinky-dashboard/compare/0.4.1...0.4.2)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					> 21 August 2021
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- 🚀RELEASE 0.4.2 [`384354f`](https://git.odit.services/kauft.es/linkylinky-dashboard/commit/384354fbac3b58a7e4480a0788d9b079827938b7)
 | 
				
			||||||
 | 
					- Commented search away from sidebar [`ed2e8ef`](https://git.odit.services/kauft.es/linkylinky-dashboard/commit/ed2e8ef44650f1c63d38258d7bef84c9e9222364)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### [0.4.1](https://git.odit.services/kauft.es/linkylinky-dashboard/compare/0.4.0...0.4.1)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					> 21 August 2021
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- 🚀RELEASE 0.4.1 [`fa16814`](https://git.odit.services/kauft.es/linkylinky-dashboard/commit/fa16814f9165c89caaacfa9d6e042aa9aa77aebb)
 | 
				
			||||||
 | 
					- Applied new sidebar styles to logout button [`735279b`](https://git.odit.services/kauft.es/linkylinky-dashboard/commit/735279bc47ef547549e57f6d137c95541e8bdd16)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#### [0.4.0](https://git.odit.services/kauft.es/linkylinky-dashboard/compare/0.3.2...0.4.0)
 | 
					#### [0.4.0](https://git.odit.services/kauft.es/linkylinky-dashboard/compare/0.3.2...0.4.0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					> 21 August 2021
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- Migrated all sidebar items to the new component [`7365749`](https://git.odit.services/kauft.es/linkylinky-dashboard/commit/7365749113afc8f51e6b4aff78babcf361992f0a)
 | 
					- Migrated all sidebar items to the new component [`7365749`](https://git.odit.services/kauft.es/linkylinky-dashboard/commit/7365749113afc8f51e6b4aff78babcf361992f0a)
 | 
				
			||||||
- Removed unused commented template stuff [`5b375f8`](https://git.odit.services/kauft.es/linkylinky-dashboard/commit/5b375f888e729bea0a82938d9af7bc016c6bd74e)
 | 
					- Removed unused commented template stuff [`5b375f8`](https://git.odit.services/kauft.es/linkylinky-dashboard/commit/5b375f888e729bea0a82938d9af7bc016c6bd74e)
 | 
				
			||||||
- Extracted a bunch of duplicate stylechecks into own component [`4377fc5`](https://git.odit.services/kauft.es/linkylinky-dashboard/commit/4377fc56c8f8d0f63a7579d21bcef95c0db45be8)
 | 
					- Extracted a bunch of duplicate stylechecks into own component [`4377fc5`](https://git.odit.services/kauft.es/linkylinky-dashboard/commit/4377fc56c8f8d0f63a7579d21bcef95c0db45be8)
 | 
				
			||||||
- Refactoring: Rename [`cb0e86a`](https://git.odit.services/kauft.es/linkylinky-dashboard/commit/cb0e86a66af04c6f88b989ee8e1490aad689d1db)
 | 
					- Refactoring: Rename [`cb0e86a`](https://git.odit.services/kauft.es/linkylinky-dashboard/commit/cb0e86a66af04c6f88b989ee8e1490aad689d1db)
 | 
				
			||||||
- Sidebar activestates [`a3c379a`](https://git.odit.services/kauft.es/linkylinky-dashboard/commit/a3c379a813be4349879e90ad07d9977a4e334e0d)
 | 
					- Sidebar activestates [`a3c379a`](https://git.odit.services/kauft.es/linkylinky-dashboard/commit/a3c379a813be4349879e90ad07d9977a4e334e0d)
 | 
				
			||||||
 | 
					- 🚀RELEASE 0.4.0 [`204bf5b`](https://git.odit.services/kauft.es/linkylinky-dashboard/commit/204bf5b01d61f4ab96aaa891225377fe5f7792cf)
 | 
				
			||||||
- Added hoverstates [`2cf66ab`](https://git.odit.services/kauft.es/linkylinky-dashboard/commit/2cf66ab6cbf661330a7767896157c62d958a651e)
 | 
					- Added hoverstates [`2cf66ab`](https://git.odit.services/kauft.es/linkylinky-dashboard/commit/2cf66ab6cbf661330a7767896157c62d958a651e)
 | 
				
			||||||
- Removed console log [`6584b3c`](https://git.odit.services/kauft.es/linkylinky-dashboard/commit/6584b3c7c7c0d5496d52522e8130f615145d1b03)
 | 
					- Removed console log [`6584b3c`](https://git.odit.services/kauft.es/linkylinky-dashboard/commit/6584b3c7c7c0d5496d52522e8130f615145d1b03)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,10 +1,10 @@
 | 
				
			|||||||
FROM registry.odit.services/hub/library/node:16-alpine
 | 
					FROM registry.odit.services/hub/library/node:18-alpine
 | 
				
			||||||
WORKDIR /app
 | 
					WORKDIR /app
 | 
				
			||||||
COPY package.json ./
 | 
					COPY package.json ./
 | 
				
			||||||
RUN yarn
 | 
					RUN yarn
 | 
				
			||||||
COPY ./ ./
 | 
					COPY ./ ./
 | 
				
			||||||
RUN yarn build
 | 
					RUN yarn build
 | 
				
			||||||
 | 
					
 | 
				
			||||||
FROM registry.odit.services/library/nginx-brotli:3.13
 | 
					FROM registry.odit.services/library/nginx-brotli:3.15
 | 
				
			||||||
COPY --from=0 /app/build /usr/share/nginx/html
 | 
					COPY --from=0 /app/build /usr/share/nginx/html
 | 
				
			||||||
COPY ./nginx.conf /etc/nginx/nginx.conf
 | 
					COPY ./nginx.conf /etc/nginx/nginx.conf
 | 
				
			||||||
@@ -1,4 +1,5 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
 | 
						"extends": "./.svelte-kit/tsconfig.json",
 | 
				
			||||||
	"compilerOptions": {
 | 
						"compilerOptions": {
 | 
				
			||||||
		"baseUrl": ".",
 | 
							"baseUrl": ".",
 | 
				
			||||||
		"paths": {
 | 
							"paths": {
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										16
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								package.json
									
									
									
									
									
								
							@@ -1,6 +1,6 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
	"name": "@odit/linkylinky-dashboard",
 | 
						"name": "@odit/linkylinky-dashboard",
 | 
				
			||||||
	"version": "0.4.0",
 | 
						"version": "0.4.5",
 | 
				
			||||||
	"scripts": {
 | 
						"scripts": {
 | 
				
			||||||
		"dev": "svelte-kit dev",
 | 
							"dev": "svelte-kit dev",
 | 
				
			||||||
		"build": "svelte-kit build",
 | 
							"build": "svelte-kit build",
 | 
				
			||||||
@@ -10,25 +10,25 @@
 | 
				
			|||||||
		"format": "prettier --ignore-path .gitignore --write --plugin-search-dir=. ."
 | 
							"format": "prettier --ignore-path .gitignore --write --plugin-search-dir=. ."
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	"devDependencies": {
 | 
						"devDependencies": {
 | 
				
			||||||
		"@sveltejs/kit": "1.0.0-next.147",
 | 
							"@sveltejs/kit": "1.27.3",
 | 
				
			||||||
		"autoprefixer": "^10.3.1",
 | 
							"autoprefixer": "^10.3.1",
 | 
				
			||||||
		"cssnano": "^5.0.6",
 | 
							"cssnano": "^5.0.6",
 | 
				
			||||||
		"eslint": "^7.22.0",
 | 
							"eslint": "^8.0.0",
 | 
				
			||||||
		"eslint-config-prettier": "^8.1.0",
 | 
							"eslint-config-prettier": "^8.1.0",
 | 
				
			||||||
		"eslint-plugin-svelte3": "^3.2.0",
 | 
							"eslint-plugin-svelte3": "^4.0.0",
 | 
				
			||||||
		"postcss": "^8.3.5",
 | 
							"postcss": "^8.3.5",
 | 
				
			||||||
		"postcss-load-config": "^3.1.0",
 | 
							"postcss-load-config": "^3.1.0",
 | 
				
			||||||
		"prettier": "~2.2.1",
 | 
							"prettier": "~2.6.0",
 | 
				
			||||||
		"prettier-plugin-svelte": "^2.2.0",
 | 
							"prettier-plugin-svelte": "^2.2.0",
 | 
				
			||||||
		"release-it": "^14.11.5",
 | 
							"release-it": "^15.0.0",
 | 
				
			||||||
		"svelte": "^3.34.0",
 | 
							"svelte": "^3.34.0",
 | 
				
			||||||
		"svelte-preprocess": "^4.7.4",
 | 
							"svelte-preprocess": "^4.7.4",
 | 
				
			||||||
		"tailwindcss": "^2.2.4"
 | 
							"tailwindcss": "^3.0.0"
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	"type": "module",
 | 
						"type": "module",
 | 
				
			||||||
	"dependencies": {
 | 
						"dependencies": {
 | 
				
			||||||
		"@sveltejs/adapter-static": "^1.0.0-next.16",
 | 
							"@sveltejs/adapter-static": "^1.0.0-next.16",
 | 
				
			||||||
		"axios": "^0.21.1",
 | 
							"axios": "^0.27.0",
 | 
				
			||||||
		"localforage": "^1.9.0"
 | 
							"localforage": "^1.9.0"
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	"release-it": {
 | 
						"release-it": {
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										4293
									
								
								pnpm-lock.yaml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										4293
									
								
								pnpm-lock.yaml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										16
									
								
								renovate.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								renovate.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,16 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "$schema": "https://docs.renovatebot.com/renovate-schema.json",
 | 
				
			||||||
 | 
					  "dependencyDashboard": true,
 | 
				
			||||||
 | 
					  "baseBranches": [
 | 
				
			||||||
 | 
					    "main"
 | 
				
			||||||
 | 
					  ],
 | 
				
			||||||
 | 
					  "addLabels": [
 | 
				
			||||||
 | 
					    "status:review_needed",
 | 
				
			||||||
 | 
					    "enhancement",
 | 
				
			||||||
 | 
					    "priority:medium"
 | 
				
			||||||
 | 
					  ],
 | 
				
			||||||
 | 
					  "reviewers": [
 | 
				
			||||||
 | 
					    "niggl",
 | 
				
			||||||
 | 
					    "philipp"
 | 
				
			||||||
 | 
					  ]
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -6,7 +6,7 @@
 | 
				
			|||||||
	import SidebarEntry from './SidebarEntry.svelte';
 | 
						import SidebarEntry from './SidebarEntry.svelte';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	$: logged_in = false;
 | 
						$: logged_in = false;
 | 
				
			||||||
	$: currentPage = $page.path;
 | 
						$: currentPage = $page.url.pathname;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	const unsubscribe = UserStore.subscribe((value) => {
 | 
						const unsubscribe = UserStore.subscribe((value) => {
 | 
				
			||||||
		logged_in = value.isLoggedIn;
 | 
							logged_in = value.isLoggedIn;
 | 
				
			||||||
@@ -23,8 +23,9 @@
 | 
				
			|||||||
<div
 | 
					<div
 | 
				
			||||||
	class="flex flex-col w-64 h-screen px-4 py-8 bg-white border-r dark:bg-gray-800 dark:border-gray-600"
 | 
						class="flex flex-col w-64 h-screen px-4 py-8 bg-white border-r dark:bg-gray-800 dark:border-gray-600"
 | 
				
			||||||
>
 | 
					>
 | 
				
			||||||
 | 
						<img class="h-36 w-36" src="/icon_128.png" alt="LinkyLinky Logo (White kauft.es K on red background)">
 | 
				
			||||||
	<h2 class="text-3xl font-semibold text-gray-800 dark:text-white">LinkyLinky</h2>
 | 
						<h2 class="text-3xl font-semibold text-gray-800 dark:text-white">LinkyLinky</h2>
 | 
				
			||||||
	<div class="relative mt-6">
 | 
						<!-- <div class="relative mt-6">
 | 
				
			||||||
		<span class="absolute inset-y-0 left-0 flex items-center pl-3">
 | 
							<span class="absolute inset-y-0 left-0 flex items-center pl-3">
 | 
				
			||||||
			<svg class="w-5 h-5 text-gray-400" viewBox="0 0 24 24" fill="none">
 | 
								<svg class="w-5 h-5 text-gray-400" viewBox="0 0 24 24" fill="none">
 | 
				
			||||||
				<path
 | 
									<path
 | 
				
			||||||
@@ -42,11 +43,11 @@
 | 
				
			|||||||
			class="w-full py-3 pl-10 pr-4 text-gray-700 bg-white border border-gray-300 rounded-md dark:bg-gray-800 dark:text-gray-300 dark:border-gray-600 focus:border-blue-500 dark:focus:border-blue-500 focus:outline-none focus:ring"
 | 
								class="w-full py-3 pl-10 pr-4 text-gray-700 bg-white border border-gray-300 rounded-md dark:bg-gray-800 dark:text-gray-300 dark:border-gray-600 focus:border-blue-500 dark:focus:border-blue-500 focus:outline-none focus:ring"
 | 
				
			||||||
			placeholder="Search"
 | 
								placeholder="Search"
 | 
				
			||||||
		/>
 | 
							/>
 | 
				
			||||||
	</div>
 | 
						</div> -->
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	<div class="flex flex-col justify-between flex-1 mt-6">
 | 
						<div class="flex flex-col justify-between flex-1 mt-6">
 | 
				
			||||||
		<nav>
 | 
							<nav>
 | 
				
			||||||
			<SidebarEntry title="Dashboard" href="./" pageUrl="/" bind:currentPage>
 | 
								<SidebarEntry title="Dashboard" href="" pageUrl="/" bind:currentPage>
 | 
				
			||||||
				<svg class="w-5 h-5" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
 | 
									<svg class="w-5 h-5" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
 | 
				
			||||||
					<path
 | 
										<path
 | 
				
			||||||
						d="M19 11H5M19 11C20.1046 11 21 11.8954 21 13V19C21 20.1046 20.1046 21 19 21H5C3.89543 21 3 20.1046 3 19V13C3 11.8954 3.89543 11 5 11M19 11V9C19 7.89543 18.1046 7 17 7M5 11V9C5 7.89543 5.89543 7 7 7M7 7V5C7 3.89543 7.89543 3 9 3H15C16.1046 3 17 3.89543 17 5V7M7 7H17"
 | 
											d="M19 11H5M19 11C20.1046 11 21 11.8954 21 13V19C21 20.1046 20.1046 21 19 21H5C3.89543 21 3 20.1046 3 19V13C3 11.8954 3.89543 11 5 11M19 11V9C19 7.89543 18.1046 7 17 7M5 11V9C5 7.89543 5.89543 7 7 7M7 7V5C7 3.89543 7.89543 3 9 3H15C16.1046 3 17 3.89543 17 5V7M7 7H17"
 | 
				
			||||||
@@ -61,7 +62,7 @@
 | 
				
			|||||||
			<hr class="my-6 dark:border-gray-600" />
 | 
								<hr class="my-6 dark:border-gray-600" />
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			{#if logged_in}
 | 
								{#if logged_in}
 | 
				
			||||||
				<SidebarEntry title="Manage Links" href="./links" pageUrl="/links" bind:currentPage>
 | 
									<SidebarEntry title="Manage Links" href="/links" pageUrl="/links" bind:currentPage>
 | 
				
			||||||
					<svg
 | 
										<svg
 | 
				
			||||||
						xmlns="http://www.w3.org/2000/svg"
 | 
											xmlns="http://www.w3.org/2000/svg"
 | 
				
			||||||
						class="h-5 w-5"
 | 
											class="h-5 w-5"
 | 
				
			||||||
@@ -77,7 +78,7 @@
 | 
				
			|||||||
						/>
 | 
											/>
 | 
				
			||||||
					</svg>
 | 
										</svg>
 | 
				
			||||||
				</SidebarEntry>
 | 
									</SidebarEntry>
 | 
				
			||||||
				<SidebarEntry title="All visits" href="./visits" pageUrl="/visits" bind:currentPage>
 | 
									<SidebarEntry title="All visits" href="/visits" pageUrl="/visits" bind:currentPage>
 | 
				
			||||||
					<svg
 | 
										<svg
 | 
				
			||||||
						xmlns="http://www.w3.org/2000/svg"
 | 
											xmlns="http://www.w3.org/2000/svg"
 | 
				
			||||||
						class="h-5 w-5"
 | 
											class="h-5 w-5"
 | 
				
			||||||
@@ -100,7 +101,7 @@
 | 
				
			|||||||
					</svg>
 | 
										</svg>
 | 
				
			||||||
				</SidebarEntry>
 | 
									</SidebarEntry>
 | 
				
			||||||
				<button
 | 
									<button
 | 
				
			||||||
					class="flex items-center px-4 py-2 mt-5 text-gray-600 transition-colors duration-200 transform rounded-md dark:text-gray-400 hover:bg-gray-200 dark:hover:bg-gray-700 dark:hover:text-gray-200 hover:text-gray-700"
 | 
										class="flex items-center px-4 py-2 mt-5 transition-colors duration-200 transform rounded-md hover:bg-gray-200 dark:hover:bg-gray-700 dark:hover:text-gray-200 hover:text-gray-700 text-gray-600 dark:text-gray-400"
 | 
				
			||||||
					on:click={logout}
 | 
										on:click={logout}
 | 
				
			||||||
				>
 | 
									>
 | 
				
			||||||
					<svg
 | 
										<svg
 | 
				
			||||||
@@ -121,7 +122,7 @@
 | 
				
			|||||||
					<span class="mx-4 font-medium">Logout</span>
 | 
										<span class="mx-4 font-medium">Logout</span>
 | 
				
			||||||
				</button>
 | 
									</button>
 | 
				
			||||||
			{:else}
 | 
								{:else}
 | 
				
			||||||
				<SidebarEntry title="Login" href="./login" pageUrl="/login" bind:currentPage>
 | 
									<SidebarEntry title="Login" href="/login" pageUrl="/login" bind:currentPage>
 | 
				
			||||||
					<svg
 | 
										<svg
 | 
				
			||||||
						xmlns="http://www.w3.org/2000/svg"
 | 
											xmlns="http://www.w3.org/2000/svg"
 | 
				
			||||||
						class="h-5 w-5"
 | 
											class="h-5 w-5"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,10 +1,7 @@
 | 
				
			|||||||
<script>
 | 
					<script>
 | 
				
			||||||
	import { page } from '$app/stores';
 | 
					 | 
				
			||||||
	import Apiclient from '$lib/Apiclient';
 | 
						import Apiclient from '$lib/Apiclient';
 | 
				
			||||||
	import UserStore from '$lib/UserStore';
 | 
						import UserStore from '$lib/UserStore';
 | 
				
			||||||
	import { onDestroy } from 'svelte';
 | 
						import { onDestroy, onMount } from 'svelte';
 | 
				
			||||||
 | 
					 | 
				
			||||||
	let shortcode = $page.query.get('shortcode');
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	$: urlDetails = {
 | 
						$: urlDetails = {
 | 
				
			||||||
		shortcode: 'Loading...',
 | 
							shortcode: 'Loading...',
 | 
				
			||||||
@@ -14,12 +11,18 @@
 | 
				
			|||||||
	};
 | 
						};
 | 
				
			||||||
	$: urlVisists = [];
 | 
						$: urlVisists = [];
 | 
				
			||||||
	let visitQuery;
 | 
						let visitQuery;
 | 
				
			||||||
 | 
						let shortcode;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						onMount(async () => {
 | 
				
			||||||
 | 
							const params = new URLSearchParams(window.location.search);
 | 
				
			||||||
 | 
							let shortcode = params.get('shortcode');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		// Yes i know this isn't the best way to implement this, but linkylinky dashboard is just a oneshot sideproject r/n.
 | 
							// Yes i know this isn't the best way to implement this, but linkylinky dashboard is just a oneshot sideproject r/n.
 | 
				
			||||||
		const unsubscribe = UserStore.subscribe((value) => {
 | 
							const unsubscribe = UserStore.subscribe((value) => {
 | 
				
			||||||
			if (value.isLoggedIn) {
 | 
								if (value.isLoggedIn) {
 | 
				
			||||||
				Apiclient.getUrlDetails(shortcode).then((res) => {
 | 
									Apiclient.getUrlDetails(shortcode).then((res) => {
 | 
				
			||||||
					urlDetails = res;
 | 
										urlDetails = res;
 | 
				
			||||||
 | 
										unsubscribe();
 | 
				
			||||||
				});
 | 
									});
 | 
				
			||||||
				visitQuery = Apiclient.getUrlVisits(shortcode).then((res) => {
 | 
									visitQuery = Apiclient.getUrlVisits(shortcode).then((res) => {
 | 
				
			||||||
					urlVisists = res;
 | 
										urlVisists = res;
 | 
				
			||||||
@@ -28,6 +31,7 @@
 | 
				
			|||||||
		});
 | 
							});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		onDestroy(unsubscribe);
 | 
							onDestroy(unsubscribe);
 | 
				
			||||||
 | 
						});
 | 
				
			||||||
</script>
 | 
					</script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<h2 class="text-3xl font-bold text-gray-800 dark:text-gray-100 pb-6">Details: {shortcode}</h2>
 | 
					<h2 class="text-3xl font-bold text-gray-800 dark:text-gray-100 pb-6">Details: {shortcode}</h2>
 | 
				
			||||||
@@ -50,6 +54,9 @@
 | 
				
			|||||||
				<th scope="col" class="px-6 py-3 text-left text-xs font-medium  uppercase tracking-wider">
 | 
									<th scope="col" class="px-6 py-3 text-left text-xs font-medium  uppercase tracking-wider">
 | 
				
			||||||
					Timestamp
 | 
										Timestamp
 | 
				
			||||||
				</th>
 | 
									</th>
 | 
				
			||||||
 | 
									<th scope="col" class="px-6 py-3 text-left text-xs font-medium uppercase tracking-wider">
 | 
				
			||||||
 | 
										Provider
 | 
				
			||||||
 | 
									</th>
 | 
				
			||||||
			</tr>
 | 
								</tr>
 | 
				
			||||||
		</thead>
 | 
							</thead>
 | 
				
			||||||
		<tbody class="bg-white dark:bg-gray-700 divide-y divide-gray-200 dark:text-gray-100" x-max="1">
 | 
							<tbody class="bg-white dark:bg-gray-700 divide-y divide-gray-200 dark:text-gray-100" x-max="1">
 | 
				
			||||||
@@ -60,6 +67,7 @@
 | 
				
			|||||||
					>
 | 
										>
 | 
				
			||||||
						Loading data...
 | 
											Loading data...
 | 
				
			||||||
					</td>
 | 
										</td>
 | 
				
			||||||
 | 
										<td class="px-6 py-4 whitespace-nowrap text-sm"> Loading data... </td>
 | 
				
			||||||
				</tr>
 | 
									</tr>
 | 
				
			||||||
			{:then}
 | 
								{:then}
 | 
				
			||||||
				{#each urlVisists as visit}
 | 
									{#each urlVisists as visit}
 | 
				
			||||||
@@ -69,6 +77,7 @@
 | 
				
			|||||||
						>
 | 
											>
 | 
				
			||||||
							{visit.timestamp}
 | 
												{visit.timestamp}
 | 
				
			||||||
						</td>
 | 
											</td>
 | 
				
			||||||
 | 
											<td class="px-6 py-4 whitespace-nowrap text-sm"> {visit.provider} </td>
 | 
				
			||||||
					</tr>
 | 
										</tr>
 | 
				
			||||||
				{/each}
 | 
									{/each}
 | 
				
			||||||
			{/await}
 | 
								{/await}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -52,7 +52,7 @@
 | 
				
			|||||||
						Loading data...
 | 
											Loading data...
 | 
				
			||||||
					</td>
 | 
										</td>
 | 
				
			||||||
					<td class="px-6 py-4 whitespace-nowrap text-sm">
 | 
										<td class="px-6 py-4 whitespace-nowrap text-sm">
 | 
				
			||||||
						<a href="#">Loading data...</a>
 | 
											<p href="#">Loading data...</p>
 | 
				
			||||||
					</td>
 | 
										</td>
 | 
				
			||||||
					<td class="px-6 py-4 whitespace-nowrap text-sm"> Loading data... </td>
 | 
										<td class="px-6 py-4 whitespace-nowrap text-sm"> Loading data... </td>
 | 
				
			||||||
					<td class="px-6 py-4 whitespace-nowrap text-right text-sm font-medium">
 | 
										<td class="px-6 py-4 whitespace-nowrap text-right text-sm font-medium">
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -16,6 +16,12 @@ import Apiclient from '$lib/Apiclient';
 | 
				
			|||||||
			
 | 
								
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						function handleKeydown(e) {
 | 
				
			||||||
 | 
							if (e.keyCode === 13) {
 | 
				
			||||||
 | 
								login();
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
</script>
 | 
					</script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<div class="w-full max-w-sm mx-auto overflow-hidden bg-white rounded-lg shadow-md dark:bg-gray-800">
 | 
					<div class="w-full max-w-sm mx-auto overflow-hidden bg-white rounded-lg shadow-md dark:bg-gray-800">
 | 
				
			||||||
@@ -30,21 +36,23 @@ import Apiclient from '$lib/Apiclient';
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
			<div class="w-full mt-4">
 | 
								<div class="w-full mt-4">
 | 
				
			||||||
				<input
 | 
									<input
 | 
				
			||||||
					class="block w-full px-4 py-2 mt-2 text-gray-700 dark:text-gray-400 placeholder-gray-500 bg-white border border-gray-300 rounded-md dark:bg-gray-800 dark:border-gray-600 dark:placeholder-gray-400 focus:border-blue-500 dark:focus:border-blue-500 focus:outline-none focus:ring"
 | 
										class="block w-full px-4 py-2 mt-2 text-gray-700 dark:text-gray-200 placeholder-gray-500 bg-white border border-gray-300 rounded-md dark:bg-gray-800 dark:border-gray-600 dark:placeholder-gray-400 focus:border-blue-500 dark:focus:border-blue-500 focus:outline-none focus:ring"
 | 
				
			||||||
					type="text"
 | 
										type="text"
 | 
				
			||||||
					placeholder="Username"
 | 
										placeholder="Username"
 | 
				
			||||||
					aria-label="Username"
 | 
										aria-label="Username"
 | 
				
			||||||
					bind:value={username}
 | 
										bind:value={username}
 | 
				
			||||||
 | 
										on:keydown={handleKeydown}
 | 
				
			||||||
				/>
 | 
									/>
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			<div class="w-full mt-4">
 | 
								<div class="w-full mt-4">
 | 
				
			||||||
				<input
 | 
									<input
 | 
				
			||||||
					class="block w-full px-4 py-2 mt-2 text-gray-700 dark:text-gray-400 placeholder-gray-500 bg-white border border-gray-300 rounded-md dark:bg-gray-800 dark:border-gray-600 dark:placeholder-gray-400 focus:border-blue-500 dark:focus:border-blue-500 focus:outline-none focus:ring"
 | 
										class="block w-full px-4 py-2 mt-2 text-gray-700 dark:text-gray-200 placeholder-gray-500 bg-white border border-gray-300 rounded-md dark:bg-gray-800 dark:border-gray-600 dark:placeholder-gray-400 focus:border-blue-500 dark:focus:border-blue-500 focus:outline-none focus:ring"
 | 
				
			||||||
					type="password"
 | 
										type="password"
 | 
				
			||||||
					placeholder="Password"
 | 
										placeholder="Password"
 | 
				
			||||||
					aria-label="Password"
 | 
										aria-label="Password"
 | 
				
			||||||
					bind:value={password}
 | 
										bind:value={password}
 | 
				
			||||||
 | 
										on:keydown={handleKeydown}
 | 
				
			||||||
				/>
 | 
									/>
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -11,11 +11,10 @@
 | 
				
			|||||||
		if (value.isLoggedIn) {
 | 
							if (value.isLoggedIn) {
 | 
				
			||||||
			visitQuery = Apiclient.getVisits().then((res) => {
 | 
								visitQuery = Apiclient.getVisits().then((res) => {
 | 
				
			||||||
				visits = res;
 | 
									visits = res;
 | 
				
			||||||
 | 
									unsubscribe();
 | 
				
			||||||
			});
 | 
								});
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	});
 | 
						});
 | 
				
			||||||
 | 
					 | 
				
			||||||
	onDestroy(unsubscribe);
 | 
					 | 
				
			||||||
</script>
 | 
					</script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<h2 class="text-3xl font-bold text-gray-800 dark:text-gray-100 pb-6">View all visits</h2>
 | 
					<h2 class="text-3xl font-bold text-gray-800 dark:text-gray-100 pb-6">View all visits</h2>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,25 +1,29 @@
 | 
				
			|||||||
import preprocess from 'svelte-preprocess';
 | 
					 | 
				
			||||||
import staticAdapter from '@sveltejs/adapter-static';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/** @type {import('@sveltejs/kit').Config} */
 | 
					/** @type {import('@sveltejs/kit').Config} */
 | 
				
			||||||
 | 
					import preprocess from "svelte-preprocess";
 | 
				
			||||||
 | 
					import adapterStatic from '@sveltejs/adapter-static';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const config = {
 | 
					const config = {
 | 
				
			||||||
	kit: {
 | 
						kit: {
 | 
				
			||||||
		// hydrate the <div id="svelte"> element in src/app.html
 | 
							adapter: adapterStatic({
 | 
				
			||||||
		target: '#svelte',
 | 
								// default options are shown
 | 
				
			||||||
		adapter: staticAdapter(),
 | 
								pages: 'build',
 | 
				
			||||||
 | 
								assets: 'build',
 | 
				
			||||||
 | 
								fallback: null,
 | 
				
			||||||
 | 
								precompress: false
 | 
				
			||||||
 | 
							}),
 | 
				
			||||||
 | 
							prerender: {
 | 
				
			||||||
 | 
								// This can be false if you're using a fallback (i.e. SPA mode)
 | 
				
			||||||
 | 
								default: true
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
		files: {
 | 
							files: {
 | 
				
			||||||
			assets: 'static'
 | 
								assets: 'static'
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
		paths: {
 | 
					 | 
				
			||||||
			base: '/dashboard',
 | 
					 | 
				
			||||||
		},
 | 
					 | 
				
			||||||
	},
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	preprocess: [
 | 
						preprocess: [
 | 
				
			||||||
		preprocess({
 | 
							preprocess({
 | 
				
			||||||
			postcss: true
 | 
								postcss: true
 | 
				
			||||||
		})
 | 
							})
 | 
				
			||||||
	]
 | 
						],
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default config;
 | 
					export default config;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,11 +1,12 @@
 | 
				
			|||||||
const config = {
 | 
					const config = {
 | 
				
			||||||
	mode: 'jit',
 | 
						mode: "jit",
 | 
				
			||||||
	darkMode: 'media',
 | 
						content: [
 | 
				
			||||||
	purge: ['./src/**/*.{html,js,svelte,ts}'],
 | 
							"./src/**/*.{html,js,svelte,ts}",
 | 
				
			||||||
 | 
						],
 | 
				
			||||||
	theme: {
 | 
						theme: {
 | 
				
			||||||
		extend: {}
 | 
							extend: {},
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	plugins: []
 | 
						plugins: [],
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
module.exports = config;
 | 
					module.exports = config;
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user