🧹 simplified UsersOverview table

ref #12
This commit is contained in:
Philipp Dormann 2021-01-10 13:30:04 +01:00
parent e97c5c3b7e
commit e1d5d54cfb

View File

@ -1,25 +1,19 @@
<script> <script>
import { _, json } from "svelte-i18n"; import { _ } from "svelte-i18n";
import Toastify from "toastify-js"; import Toastify from "toastify-js";
import TracksEmptyState from "./TracksEmptyState.svelte"; import { UserService } from "@odit/lfk-client-js";
import { TrackService, UserService } from "@odit/lfk-client-js";
const users_promise = UserService.userControllerGetAll(); const users_promise = UserService.userControllerGetAll();
import { getlang } from "./datatable_i18n";
import { Grid, html } from "gridjs";
import "gridjs/dist/theme/mermaid.css"; import "gridjs/dist/theme/mermaid.css";
import { tracks as tracksstore } from "../store.js"; import { users as usersstore } from "../store.js";
import UsersEmptyState from "./UsersEmptyState.svelte"; import UsersEmptyState from "./UsersEmptyState.svelte";
$: searchvalue = "";
$: userscache = []; $: userscache = [];
$: blocked = []; usersstore.subscribe((val) => {
let table;
let datatable;
let datatable_inited = false;
tracksstore.subscribe((val) => {
userscache = val; userscache = val;
}); });
users_promise.then((data) => { users_promise.then((data) => {
console.log(data); console.log(data);
tracksstore.set(data); usersstore.set(data);
}); });
</script> </script>
@ -44,11 +38,6 @@
class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider"> class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
Name Name
</th> </th>
<th
scope="col"
class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
Title
</th>
<th <th
scope="col" scope="col"
class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider"> class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
@ -66,145 +55,60 @@
</thead> </thead>
<tbody class="divide-y divide-gray-200"> <tbody class="divide-y divide-gray-200">
{#each users as u} {#each users as u}
<tr> <tr>
<td class="px-6 py-4 whitespace-nowrap"> <td class="px-6 py-4 whitespace-nowrap">
<div class="flex items-center"> <div class="flex items-center">
{#if u.profilePic} {#if u.profilePic}
<div class="flex-shrink-0 h-10 w-10"> <div class="flex-shrink-0 h-10 w-10">
<img <img
class="h-10 w-10 rounded-full" class="h-10 w-10 rounded-full"
src={u.profilePic} src={u.profilePic}
alt="" /> alt="" />
</div> </div>
{/if} {/if}
<div class="ml-4"> <div class="ml-4">
<div <div
class="text-sm font-medium text-gray-900 dark:text-gray-100"> class="text-sm font-medium text-gray-900 dark:text-gray-100">
{u.firstname} {u.firstname}
{u.middlename || ''} {u.middlename || ''}
{u.lastname} {u.lastname}
</div> </div>
<div class="text-sm text-gray-500"> <div class="text-sm text-gray-500">
{u.email || u.username} {u.email || u.username}
</div>
</div> </div>
</div> </div>
</div> </td>
</td> <td class="px-6 py-4 whitespace-nowrap">
<td class="px-6 py-4 whitespace-nowrap"> {#if u.enabled}
<div class="text-sm text-gray-900 dark:text-gray-100"> <span
Regional Paradigm Technician class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-green-100 text-green-800">Active</span>
</div> {:else}
<div class="text-sm text-gray-500">Optimization</div> <span
</td> class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-red-100 text-red-800">Inactive</span>
<td class="px-6 py-4 whitespace-nowrap"> {/if}
{#if u.enabled} </td>
<span <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">
class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-green-100 text-green-800">Active</span> {#each u.groups as g}
{:else} <a
<span href="../groups/{g.id}"
class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-red-100 text-red-800">Inactive</span> class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-gray-100 text-gray-800">{g.name}</a>
{/if} {/each}
</td> </td>
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500"> <td
{#each u.groups as g} class="px-6 py-4 whitespace-nowrap text-right text-sm font-medium">
<a <a
href="../groups/{g.id}" href="./{u.id}"
class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-gray-100 text-gray-800">{g.name}</a> class="text-indigo-600 hover:text-indigo-900">Edit</a>
{/each} <span
</td> tabindex="0"
<td href="#"
class="px-6 py-4 whitespace-nowrap text-right text-sm font-medium"> class="ml-4 text-red-600 hover:text-red-900 cursor-pointer">Delete</span>
<a </td>
href="./{u.id}" </tr>
class="text-indigo-600 hover:text-indigo-900">Edit</a>
<span
tabindex="0"
href="#"
class="ml-4 text-red-600 hover:text-red-900 cursor-pointer">Delete</span>
</td>
</tr>
{/each} {/each}
</tbody> </tbody>
</table> </table>
<div
class="grid px-4 py-3 text-xs font-semibold tracking-wide text-gray-500 uppercase border-t dark:border-gray-700 bg-gray-50 sm:grid-cols-9 dark:text-gray-400 dark:bg-gray-900">
<span class="flex items-center col-span-3"> Showing 21-30 of 100 </span>
<span class="col-span-2" />
<!-- Pagination -->
<span class="flex col-span-4 mt-2 sm:mt-auto sm:justify-end">
<nav aria-label="Table navigation">
<ul class="inline-flex items-center">
<li>
<button
class="px-3 py-1 rounded-md rounded-l-lg focus:outline-none focus:shadow-outline-purple"
aria-label="Previous">
<svg
aria-hidden="true"
class="w-4 h-4 fill-current"
viewBox="0 0 20 20">
<path
d="M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z"
clip-rule="evenodd"
fill-rule="evenodd" />
</svg>
</button>
</li>
<li>
<button
class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple">
1
</button>
</li>
<li>
<button
class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple">
2
</button>
</li>
<li>
<button
class="px-3 py-1 text-white transition-colors duration-150 bg-purple-600 border border-r-0 border-purple-600 rounded-md focus:outline-none focus:shadow-outline-purple">
3
</button>
</li>
<li>
<button
class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple">
4
</button>
</li>
<li><span class="px-3 py-1">...</span></li>
<li>
<button
class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple">
8
</button>
</li>
<li>
<button
class="px-3 py-1 rounded-md focus:outline-none focus:shadow-outline-purple">
9
</button>
</li>
<li>
<button
class="px-3 py-1 rounded-md rounded-r-lg focus:outline-none focus:shadow-outline-purple"
aria-label="Next">
<svg
class="w-4 h-4 fill-current"
aria-hidden="true"
viewBox="0 0 20 20">
<path
d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z"
clip-rule="evenodd"
fill-rule="evenodd" />
</svg>
</button>
</li>
</ul>
</nav>
</span>
</div>
</div> </div>
{/if} {/if}
{:catch error} {:catch error}