33 Commits

Author SHA1 Message Date
cd4d9cf3ea Merge branch 'renovate/sveltejs-kit-1.x' of git.odit.services:kauft.es/linkylinky-dashboard into renovate/sveltejs-kit-1.x
All checks were successful
ci/woodpecker/push/build Pipeline was successful
ci/woodpecker/pr/build Pipeline was successful
2023-11-04 16:45:37 +01:00
85d018c899 feat(ci)!: Switch to woodpecker 2023-11-04 16:45:12 +01:00
07b892517e Update dependency @sveltejs/kit to v1.27.3
Some checks failed
renovate/artifacts Artifact file update failure
continuous-integration/drone/push Build is passing
2023-11-03 16:41:29 +00:00
d0366bbd2a Merge pull request 'Update dependency eslint-plugin-svelte3 to v4' (#15) from renovate/eslint-plugin-svelte3-4.x into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #15
2022-05-06 14:14:34 +00:00
205bbd08d1 Update dependency eslint-plugin-svelte3 to v4
All checks were successful
continuous-integration/drone/push Build is passing
2022-05-05 17:20:30 +00:00
a71279b223 Merge pull request 'Update dependency @sveltejs/kit to v1.0.0-next.324' (#3) from renovate/sveltejs-kit-1.x into main
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #3
2022-04-30 15:37:27 +00:00
664e9b087f Removed trailing slash
All checks were successful
continuous-integration/drone/push Build is passing
2022-04-30 17:29:35 +02:00
e04314217b Removed dashboard preroute
All checks were successful
continuous-integration/drone/push Build is passing
2022-04-30 17:25:11 +02:00
17060fb068 Tailwind fix 2022-04-30 17:24:58 +02:00
a818b7f203 fixed dynamic links 2022-04-30 17:12:51 +02:00
d4c69f2723 Svelte confiug update 2022-04-30 16:59:00 +02:00
f92162bca9 Updated svelte config 2022-04-30 16:54:08 +02:00
3bc11ce05f Acessibilydy 2022-04-30 16:53:56 +02:00
7eab070c6a Merge pull request 'Update dependency axios to ^0.27.0' (#10) from renovate/axios-0.x into main
Some checks failed
continuous-integration/drone/push Build is failing
Reviewed-on: #10
2022-04-30 14:50:28 +00:00
d5cd5c9a97 Update dependency axios to ^0.27.0
All checks were successful
continuous-integration/drone/push Build is passing
2022-04-30 14:17:50 +00:00
68ec2e34e1 Update dependency @sveltejs/kit to v1.0.0-next.324
All checks were successful
continuous-integration/drone/push Build is passing
2022-04-30 14:17:40 +00:00
6a0a73a890 Merge pull request 'Update registry.odit.services/hub/library/node Docker tag to v18' (#11) from renovate/registry.odit.services-hub-library-node-18.x into main
Some checks failed
continuous-integration/drone/push Build is failing
Reviewed-on: #11
2022-04-30 14:12:20 +00:00
c259220e3a Merge pull request 'Update dependency release-it to v15' (#13) from renovate/release-it-15.x into main
Some checks failed
continuous-integration/drone/push Build is failing
Reviewed-on: #13
2022-04-30 14:09:39 +00:00
5bfa89f283 Merge pull request 'Update registry.odit.services/library/nginx-brotli Docker tag to v3.15' (#12) from renovate/registry.odit.services-library-nginx-brotli-3.x into main
Some checks failed
continuous-integration/drone/push Build is failing
Reviewed-on: #12
2022-04-30 14:07:11 +00:00
aa70878324 Update dependency release-it to v15
All checks were successful
continuous-integration/drone/push Build is passing
2022-04-30 12:48:33 +00:00
f7bce68f68 Update registry.odit.services/library/nginx-brotli Docker tag to v3.15
All checks were successful
continuous-integration/drone/push Build is passing
2022-04-30 12:48:10 +00:00
074f9492a9 Update registry.odit.services/hub/library/node Docker tag to v18
All checks were successful
continuous-integration/drone/push Build is passing
2022-04-30 10:16:56 +00:00
b6f57384d0 Merge pull request 'Update dependency eslint to v8' (#6) from renovate/eslint-8.x into main
Some checks failed
continuous-integration/drone/push Build is failing
Reviewed-on: #6
2022-04-13 18:29:29 +00:00
01ff1bf0df Update dependency eslint to v8
All checks were successful
continuous-integration/drone/push Build is passing
2022-04-13 18:29:19 +00:00
01a5031895 Merge pull request 'Update dependency prettier to ~2.6.0' (#5) from renovate/prettier-2.x into main
Some checks failed
continuous-integration/drone/push Build is failing
Reviewed-on: #5
2022-04-13 18:23:46 +00:00
4d287c3d1a Merge branch 'main' into renovate/prettier-2.x
All checks were successful
continuous-integration/drone/push Build is passing
2022-04-13 18:23:34 +00:00
5688f0dab6 Merge pull request 'Update dependency tailwindcss to v3' (#7) from renovate/tailwindcss-3.x into main
Some checks failed
continuous-integration/drone/push Build is failing
Reviewed-on: #7
2022-04-13 18:23:06 +00:00
357ef79e11 Update dependency tailwindcss to v3
All checks were successful
continuous-integration/drone/push Build is passing
2022-04-13 18:22:03 +00:00
397d1070c8 Merge pull request 'Update dependency axios to ^0.26.0' (#4) from renovate/axios-0.x into main
Some checks failed
continuous-integration/drone/push Build is failing
Reviewed-on: #4
2022-04-13 18:21:54 +00:00
8abd89d0d1 Update dependency prettier to ~2.6.0
All checks were successful
continuous-integration/drone/push Build is passing
2022-04-13 18:21:34 +00:00
a7df098167 Update dependency axios to ^0.26.0
All checks were successful
continuous-integration/drone/push Build is passing
2022-04-13 18:21:21 +00:00
2b721c483e Added renovate
Some checks failed
continuous-integration/drone/push Build is failing
2022-04-13 20:05:31 +02:00
ada12fd4db Dynamic unsubscribing
All checks were successful
continuous-integration/drone/push Build is passing
2021-08-21 20:34:44 +02:00
14 changed files with 5870 additions and 826 deletions

View File

@@ -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
View 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

View File

@@ -1,10 +1,10 @@
FROM registry.odit.services/hub/library/node:16-alpine
FROM registry.odit.services/hub/library/node:18-alpine
WORKDIR /app
COPY package.json ./
RUN yarn
COPY ./ ./
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 ./nginx.conf /etc/nginx/nginx.conf

View File

@@ -1,4 +1,5 @@
{
"extends": "./.svelte-kit/tsconfig.json",
"compilerOptions": {
"baseUrl": ".",
"paths": {

View File

@@ -10,25 +10,25 @@
"format": "prettier --ignore-path .gitignore --write --plugin-search-dir=. ."
},
"devDependencies": {
"@sveltejs/kit": "1.0.0-next.147",
"@sveltejs/kit": "1.27.3",
"autoprefixer": "^10.3.1",
"cssnano": "^5.0.6",
"eslint": "^7.22.0",
"eslint": "^8.0.0",
"eslint-config-prettier": "^8.1.0",
"eslint-plugin-svelte3": "^3.2.0",
"eslint-plugin-svelte3": "^4.0.0",
"postcss": "^8.3.5",
"postcss-load-config": "^3.1.0",
"prettier": "~2.2.1",
"prettier": "~2.6.0",
"prettier-plugin-svelte": "^2.2.0",
"release-it": "^14.11.5",
"release-it": "^15.0.0",
"svelte": "^3.34.0",
"svelte-preprocess": "^4.7.4",
"tailwindcss": "^2.2.4"
"tailwindcss": "^3.0.0"
},
"type": "module",
"dependencies": {
"@sveltejs/adapter-static": "^1.0.0-next.16",
"axios": "^0.21.1",
"axios": "^0.27.0",
"localforage": "^1.9.0"
},
"release-it": {

4293
pnpm-lock.yaml generated Normal file

File diff suppressed because it is too large Load Diff

16
renovate.json Normal file
View 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"
]
}

View File

@@ -6,7 +6,7 @@
import SidebarEntry from './SidebarEntry.svelte';
$: logged_in = false;
$: currentPage = $page.path;
$: currentPage = $page.url.pathname;
const unsubscribe = UserStore.subscribe((value) => {
logged_in = value.isLoggedIn;
@@ -23,7 +23,7 @@
<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"
>
<img class="h-36 w-36" src="./icon_128.png" alt="LinkyLinky Logo (White kauft.es K on red background)">
<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>
<!-- <div class="relative mt-6">
<span class="absolute inset-y-0 left-0 flex items-center pl-3">
@@ -47,7 +47,7 @@
<div class="flex flex-col justify-between flex-1 mt-6">
<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">
<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"
@@ -62,7 +62,7 @@
<hr class="my-6 dark:border-gray-600" />
{#if logged_in}
<SidebarEntry title="Manage Links" href="./links" pageUrl="/links" bind:currentPage>
<SidebarEntry title="Manage Links" href="/links" pageUrl="/links" bind:currentPage>
<svg
xmlns="http://www.w3.org/2000/svg"
class="h-5 w-5"
@@ -78,7 +78,7 @@
/>
</svg>
</SidebarEntry>
<SidebarEntry title="All visits" href="./visits" pageUrl="/visits" bind:currentPage>
<SidebarEntry title="All visits" href="/visits" pageUrl="/visits" bind:currentPage>
<svg
xmlns="http://www.w3.org/2000/svg"
class="h-5 w-5"
@@ -122,7 +122,7 @@
<span class="mx-4 font-medium">Logout</span>
</button>
{:else}
<SidebarEntry title="Login" href="./login" pageUrl="/login" bind:currentPage>
<SidebarEntry title="Login" href="/login" pageUrl="/login" bind:currentPage>
<svg
xmlns="http://www.w3.org/2000/svg"
class="h-5 w-5"

View File

@@ -1,10 +1,7 @@
<script>
import { page } from '$app/stores';
import Apiclient from '$lib/Apiclient';
import UserStore from '$lib/UserStore';
import { onDestroy } from 'svelte';
let shortcode = $page.query.get('shortcode');
import { onDestroy, onMount } from 'svelte';
$: urlDetails = {
shortcode: 'Loading...',
@@ -14,20 +11,27 @@
};
$: urlVisists = [];
let visitQuery;
let shortcode;
// 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) => {
if (value.isLoggedIn) {
Apiclient.getUrlDetails(shortcode).then((res) => {
urlDetails = res;
});
visitQuery = Apiclient.getUrlVisits(shortcode).then((res) => {
urlVisists = res;
});
}
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.
const unsubscribe = UserStore.subscribe((value) => {
if (value.isLoggedIn) {
Apiclient.getUrlDetails(shortcode).then((res) => {
urlDetails = res;
unsubscribe();
});
visitQuery = Apiclient.getUrlVisits(shortcode).then((res) => {
urlVisists = res;
});
}
});
onDestroy(unsubscribe);
});
onDestroy(unsubscribe);
</script>
<h2 class="text-3xl font-bold text-gray-800 dark:text-gray-100 pb-6">Details: {shortcode}</h2>

View File

@@ -52,7 +52,7 @@
Loading data...
</td>
<td class="px-6 py-4 whitespace-nowrap text-sm">
<a href="#">Loading data...</a>
<p href="#">Loading data...</p>
</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">

View File

@@ -11,11 +11,10 @@
if (value.isLoggedIn) {
visitQuery = Apiclient.getVisits().then((res) => {
visits = res;
unsubscribe();
});
}
});
onDestroy(unsubscribe);
</script>
<h2 class="text-3xl font-bold text-gray-800 dark:text-gray-100 pb-6">View all visits</h2>

View File

@@ -1,25 +1,29 @@
import preprocess from 'svelte-preprocess';
import staticAdapter from '@sveltejs/adapter-static';
/** @type {import('@sveltejs/kit').Config} */
import preprocess from "svelte-preprocess";
import adapterStatic from '@sveltejs/adapter-static';
const config = {
kit: {
// hydrate the <div id="svelte"> element in src/app.html
target: '#svelte',
adapter: staticAdapter(),
adapter: adapterStatic({
// default options are shown
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: {
assets: 'static'
},
paths: {
base: '/dashboard',
},
}
},
preprocess: [
preprocess({
postcss: true
})
]
],
};
export default config;

View File

@@ -1,11 +1,12 @@
const config = {
mode: 'jit',
darkMode: 'media',
purge: ['./src/**/*.{html,js,svelte,ts}'],
mode: "jit",
content: [
"./src/**/*.{html,js,svelte,ts}",
],
theme: {
extend: {}
extend: {},
},
plugins: []
plugins: [],
};
module.exports = config;

2179
yarn.lock

File diff suppressed because it is too large Load Diff