36 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
4814ef4c22 🚀RELEASE 0.4.5
All checks were successful
continuous-integration/drone/push Build is passing
2021-08-21 20:19:10 +02:00
b0d866873b Added missing text styling to button 2021-08-21 20:18:57 +02:00
06364a06bf Fixed image src for deployment 2021-08-21 20:18:11 +02:00
15 changed files with 5879 additions and 827 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

@@ -2,8 +2,16 @@
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) #### [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) - 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) #### [0.4.3](https://git.odit.services/kauft.es/linkylinky-dashboard/compare/0.4.2...0.4.3)

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

View File

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

View File

@@ -1,6 +1,6 @@
{ {
"name": "@odit/linkylinky-dashboard", "name": "@odit/linkylinky-dashboard",
"version": "0.4.4", "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

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'; 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;
@@ -47,7 +47,7 @@
<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"
@@ -62,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"
@@ -78,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"
@@ -101,7 +101,7 @@
</svg> </svg>
</SidebarEntry> </SidebarEntry>
<button <button
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" 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
@@ -122,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"

View File

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

View File

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

View File

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

View File

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

View File

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

2179
yarn.lock

File diff suppressed because it is too large Load Diff