Compare commits

..

No commits in common. "725edfbb19470cf1d9b8ae65fab47b7ac91e37dc" and "51c18e03a78a7d7dfc3631295395b200a69bf75e" have entirely different histories.

5 changed files with 8 additions and 40 deletions

View File

@ -6,10 +6,9 @@
"build": "snowpack build" "build": "snowpack build"
}, },
"dependencies": { "dependencies": {
"@odit/lfk-client-js": "0.0.6", "@odit/lfk-client-js": "^0.0.5",
"filepond": "^4.25.1", "filepond": "^4.25.1",
"gridjs": "^3.2.0", "gridjs": "^3.2.0",
"localforage": "^1.9.0",
"svelte-filepond": "^0.0.1", "svelte-filepond": "^0.0.1",
"svelte-i18n": "^3.3.0", "svelte-i18n": "^3.3.0",
"svelte-spa-router": "^3.1.0", "svelte-spa-router": "^3.1.0",

View File

@ -3,7 +3,6 @@
import Router from "svelte-spa-router"; import Router from "svelte-spa-router";
import { replace } from "svelte-spa-router"; import { replace } from "svelte-spa-router";
import { wrap } from "svelte-spa-router/wrap"; import { wrap } from "svelte-spa-router/wrap";
import localForage from "localforage";
import { addMessages, init, getLocaleFromNavigator } from "svelte-i18n"; import { addMessages, init, getLocaleFromNavigator } from "svelte-i18n";
import en from "./locales/en.json"; import en from "./locales/en.json";
import de from "./locales/de.json"; import de from "./locales/de.json";
@ -13,12 +12,6 @@
fallbackLocale: "en", fallbackLocale: "en",
initialLocale: getLocaleFromNavigator(), initialLocale: getLocaleFromNavigator(),
}); });
localForage.config({
name: "lfk_admin",
version: 1.0,
storeName: "lfk_admin",
description: "LfK! admin dashbaord",
});
// //
import Login from "./components/Login.svelte"; import Login from "./components/Login.svelte";
import Dashboard from "./components/Dashboard.svelte"; import Dashboard from "./components/Dashboard.svelte";

View File

@ -14,7 +14,6 @@
import Tags from "./Tags.svelte"; import Tags from "./Tags.svelte";
import Badges from "./Badges.svelte"; import Badges from "./Badges.svelte";
import Avatars from "./Avatars.svelte"; import Avatars from "./Avatars.svelte";
import store from "../store";
let activePage = "dashboard"; let activePage = "dashboard";
let dropdown1 = false; let dropdown1 = false;
@ -268,7 +267,7 @@ import store from "../store";
<!-- Add content here, remove div below --> <!-- Add content here, remove div below -->
<!-- <div class="border-4 border-dashed rounded h-96" /> --> <!-- <div class="border-4 border-dashed rounded h-96" /> -->
<h1 class="text-3xl leading-tight"> <h1 class="text-3xl leading-tight">
<span class="font-bold">Dashboard</span><span> - hello there, <span class="text-blue-500">{store.state.jwtinfo.userdetails.firstname}</span> 👋</span> <span class="font-bold">Dashboard</span><span> - hello there 👋</span>
</h1> </h1>
<div class="shadow px-6 pt-4 pb-1"> <div class="shadow px-6 pt-4 pb-1">
<BreadcrumbNav /> <BreadcrumbNav />

View File

@ -1,6 +1,5 @@
<script> <script>
import store from "../store.js"; import store from "../store.js";
import localForage from "localforage";
import { _ } from "svelte-i18n"; import { _ } from "svelte-i18n";
store.init(); store.init();
import { push, pop, replace } from "svelte-spa-router"; import { push, pop, replace } from "svelte-spa-router";
@ -8,32 +7,14 @@
OpenAPI.BASE = config.baseurl; OpenAPI.BASE = config.baseurl;
import Toastify from "toastify-js"; import Toastify from "toastify-js";
import "toastify-js/src/toastify.css"; import "toastify-js/src/toastify.css";
// ------ import { init } from "svelte/internal";
let usersUsername; let usersUsername;
let usersPassword = ""; let usersPassword = "";
let is_blocked_by_autologin = false;
let last_loginclick_processed = true; let last_loginclick_processed = true;
localForage.getItem("logindata", (err, value) => {
if (value) {
if (value.access_token && value.refresh_token) {
is_blocked_by_autologin = true;
OpenAPI.TOKEN = value.access_token;
const jwtinfo = JSON.parse(atob(OpenAPI.TOKEN.split(".")[1]));
store.login(value.access_token, jwtinfo);
replace("/dashboard/");
Toastify({
text: $_("welcome_wavinghand"),
duration: 500,
backgroundColor: "linear-gradient(to right, #00b09b, #96c93d)",
}).showToast();
}
}
});
const login = async () => { const login = async () => {
// prevent login button spamming // prevent login button spamming
if (last_loginclick_processed && is_blocked_by_autologin === false) { if (last_loginclick_processed) {
last_loginclick_processed = false; last_loginclick_processed = false;
Toastify({ Toastify({
text: $_("login_is_checked"), text: $_("login_is_checked"),
@ -51,11 +32,9 @@
username, username,
password, password,
}) })
.then(async (result) => { .then((result) => {
await localForage.setItem("logindata", result);
OpenAPI.TOKEN = result.access_token; OpenAPI.TOKEN = result.access_token;
const jwtinfo = JSON.parse(atob(OpenAPI.TOKEN.split(".")[1])); store.login(result.access_token);
store.login(result.access_token, jwtinfo);
replace("/dashboard/"); replace("/dashboard/");
Toastify({ Toastify({
text: $_("welcome_wavinghand"), text: $_("welcome_wavinghand"),

View File

@ -3,7 +3,6 @@ import { writable } from 'svelte/store';
const store = () => { const store = () => {
const state = { const state = {
access_token: undefined, access_token: undefined,
jwtinfo: undefined,
isLoggedIn: false isLoggedIn: false
}; };
@ -17,10 +16,10 @@ const store = () => {
return state; return state;
}); });
}, },
login(access_token, jwtinfo) {
login(access_token) {
update((state) => { update((state) => {
state.access_token = access_token; state.access_token = access_token;
state.jwtinfo = jwtinfo;
state.isLoggedIn = true; state.isLoggedIn = true;
console.log('login performed'); console.log('login performed');
return state; return state;
@ -38,7 +37,6 @@ const store = () => {
subscribe, subscribe,
set, set,
update, update,
state,
...methods ...methods
}; };
}; };