Compare commits

...

5 Commits

2 changed files with 37 additions and 27 deletions

View File

@@ -3,11 +3,10 @@
import { clickOutside } from "./outsideclick"; import { clickOutside } from "./outsideclick";
import { focusTrap } from "svelte-focus-trap"; import { focusTrap } from "svelte-focus-trap";
import { tracks as tracksstore } from "../store.js"; import { tracks as tracksstore } from "../store.js";
import { TrackService, UserService } from "@odit/lfk-client-js"; import { UserService } from "@odit/lfk-client-js";
import isEmail from "validator/es/lib/isEmail"; import isEmail from "validator/es/lib/isEmail";
import Toastify from "toastify-js"; import Toastify from "toastify-js";
import "toastify-js/src/toastify.css"; import "toastify-js/src/toastify.css";
import About from "./About.svelte";
export let modal_open; export let modal_open;
let firstname_input; let firstname_input;
let lastname_input; let lastname_input;
@@ -22,14 +21,13 @@
$: email_input_value = ""; $: email_input_value = "";
$: lastname_input_value = ""; $: lastname_input_value = "";
$: firstname_input_value = ""; $: firstname_input_value = "";
$: track_min_duration = 0;
$: tracklength = 0;
$: processed_last_submit = true; $: processed_last_submit = true;
$: isPasswordValid = password_input_value.trim().length === 0; $: isPasswordValid = password_input_value.trim().length !== 0;
$: isEmailValid = isEmail(email_input_value); $: isEmailValid = isEmail(email_input_value);
$: isLastnameValid = lastname_input_value.trim().length === 0; $: isLastnameValid = lastname_input_value.trim().length !== 0;
$: isFirstnameValid = firstname_input_value.trim().length === 0; $: isFirstnameValid = firstname_input_value.trim().length !== 0;
$: createbtnenabled = !isFirstnameValid && !isLastnameValid; $: createbtnenabled =
isFirstnameValid && isLastnameValid && isEmailValid && isPasswordValid;
(function () { (function () {
document.onkeydown = function (e) { document.onkeydown = function (e) {
e = e || window.event; e = e || window.event;
@@ -55,7 +53,8 @@
firstname: firstname_input_value, firstname: firstname_input_value,
lastname: lastname_input_value, lastname: lastname_input_value,
middlename: middlename_input_value, middlename: middlename_input_value,
email:email_input_value,password:password_input_value email: email_input_value,
password: password_input_value,
}) })
.then((result) => { .then((result) => {
firstname_input_value = ""; firstname_input_value = "";
@@ -142,15 +141,15 @@
use:focus use:focus
autocomplete="off" autocomplete="off"
placeholder="First Name" placeholder="First Name"
class:border-red-500={isFirstnameValid} class:border-red-500={!isFirstnameValid}
class:focus:border-red-500={isFirstnameValid} class:focus:border-red-500={!isFirstnameValid}
class:focus:ring-red-500={isFirstnameValid} class:focus:ring-red-500={!isFirstnameValid}
bind:value={firstname_input_value} bind:value={firstname_input_value}
bind:this={firstname_input} bind:this={firstname_input}
type="text" type="text"
name="firstname" name="firstname"
class="mt-1 focus:ring-indigo-500 focus:border-indigo-500 block w-full shadow-sm rounded-l-md sm:text-sm border-gray-300 border bg-gray-50 text-gray-500 rounded-md p-2" /> class="mt-1 focus:ring-indigo-500 focus:border-indigo-500 block w-full shadow-sm rounded-l-md sm:text-sm border-gray-300 border bg-gray-50 text-gray-500 rounded-md p-2" />
{#if isFirstnameValid} {#if !isFirstnameValid}
<span <span
class="flex items-center font-medium tracking-wide text-red-500 text-xs mt-1 ml-1"> class="flex items-center font-medium tracking-wide text-red-500 text-xs mt-1 ml-1">
First Name is required First Name is required
@@ -177,15 +176,15 @@
<input <input
autocomplete="off" autocomplete="off"
placeholder="Last Name" placeholder="Last Name"
class:border-red-500={isLastnameValid} class:border-red-500={!isLastnameValid}
class:focus:border-red-500={isLastnameValid} class:focus:border-red-500={!isLastnameValid}
class:focus:ring-red-500={isLastnameValid} class:focus:ring-red-500={!isLastnameValid}
bind:value={lastname_input_value} bind:value={lastname_input_value}
bind:this={lastname_input} bind:this={lastname_input}
type="text" type="text"
name="lastname" name="lastname"
class="mt-1 focus:ring-indigo-500 focus:border-indigo-500 block w-full shadow-sm rounded-l-md sm:text-sm border-gray-300 border bg-gray-50 text-gray-500 rounded-md p-2" /> class="mt-1 focus:ring-indigo-500 focus:border-indigo-500 block w-full shadow-sm rounded-l-md sm:text-sm border-gray-300 border bg-gray-50 text-gray-500 rounded-md p-2" />
{#if isLastnameValid} {#if !isLastnameValid}
<span <span
class="flex items-center font-medium tracking-wide text-red-500 text-xs mt-1 ml-1"> class="flex items-center font-medium tracking-wide text-red-500 text-xs mt-1 ml-1">
Last Name is required Last Name is required
@@ -199,15 +198,15 @@
<input <input
autocomplete="off" autocomplete="off"
placeholder="Password" placeholder="Password"
class:border-red-500={isPasswordValid} class:border-red-500={!isPasswordValid}
class:focus:border-red-500={isPasswordValid} class:focus:border-red-500={!isPasswordValid}
class:focus:ring-red-500={isPasswordValid} class:focus:ring-red-500={!isPasswordValid}
bind:value={password_input_value} bind:value={password_input_value}
bind:this={password_input} bind:this={password_input}
type="password" type="password"
name="password" name="password"
class="mt-1 focus:ring-indigo-500 focus:border-indigo-500 block w-full shadow-sm rounded-l-md sm:text-sm border-gray-300 border bg-gray-50 text-gray-500 rounded-md p-2" /> class="mt-1 focus:ring-indigo-500 focus:border-indigo-500 block w-full shadow-sm rounded-l-md sm:text-sm border-gray-300 border bg-gray-50 text-gray-500 rounded-md p-2" />
{#if isPasswordValid} {#if !isPasswordValid}
<span <span
class="flex items-center font-medium tracking-wide text-red-500 text-xs mt-1 ml-1"> class="flex items-center font-medium tracking-wide text-red-500 text-xs mt-1 ml-1">
Password is required Password is required

View File

@@ -58,14 +58,25 @@
</nav> </nav>
</div> </div>
</div> </div>
<span <span class="mb-4 text-3xl font-extrabold leading-tight">{user.firstname}
class="mb-4 text-3xl font-extrabold leading-tight">{user.firstname}
{user.middlename || ''} {user.middlename || ''}
{user.lastname} {user.lastname}
<button <div data-id="user_actions_${user.id}">
type="button" <button
class="w-full inline-flex justify-center rounded-md border border-transparent shadow-sm px-4 py-2 bg-red-600 text-base font-medium text-white hover:bg-red-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-red-500 sm:ml-3 sm:w-auto sm:text-sm">Delete class="hidden w-full justify-center rounded-md border border-transparent shadow-sm px-4 py-2 bg-green-400 text-base font-medium text-white sm:w-auto sm:text-sm"
User</button></span> data-userid="${user.id}"
onclick="user__delete_cancel()">Cancel</button>
<button
class="hidden w-full justify-center rounded-md border border-transparent shadow-sm px-4 py-2 bg-red-500 text-base font-medium text-white sm:w-auto sm:text-sm"
data-userid="${user.id}"
onclick="user__delete_confirm()">Confirm Delete</button>
<button
type="button"
class="w-full justify-center rounded-md border border-transparent shadow-sm px-4 py-2 bg-red-600 text-base font-medium text-white hover:bg-red-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-red-500 sm:ml-3 sm:w-auto sm:text-sm">Delete
User</button>
</div>
</span>
<!-- --> <!-- -->
<div class="mt-2 flex items-center"> <div class="mt-2 flex items-center">
<img <img