Compare commits
33 Commits
0.4.5
...
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
|
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
|
||||
@@ -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
|
||||
@@ -1,4 +1,5 @@
|
||||
{
|
||||
"extends": "./.svelte-kit/tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"baseUrl": ".",
|
||||
"paths": {
|
||||
|
||||
14
package.json
14
package.json
@@ -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
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';
|
||||
|
||||
$: 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"
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user