PSFPortal/app/components/LoginList.svelte

47 lines
1,002 B
Svelte
Raw Normal View History

2019-12-30 14:27:49 +00:00
<script>
import { onMount } from 'svelte'
import PaginatedList from './PaginatedList'
import axios from 'axios'
import moment from 'moment'
export let account_id;
async function fetch(page) {
try {
const resp = await axios.get("/api/user/" + account_id + "/logins?page="+page);
return [resp.data.logins, resp.data.page];
} catch (e) {
console.log(e)
return undefined;
}
}
onMount(async () => {
});
</script>
<PaginatedList {fetch} let:data={logins} let:pagination={pagination}>
2019-12-30 18:20:50 +00:00
<p slot="header">
{#if !pagination.item_count}
No logins yet.
2019-12-30 18:20:50 +00:00
{/if}
</p>
2019-12-30 14:27:49 +00:00
<table slot="body" class="table table-dark table-responsive">
<thead>
2019-12-30 18:20:50 +00:00
<td>From</td>
<td>Login Date</td>
2019-12-30 14:27:49 +00:00
</thead>
<tbody>
{#each logins as login, i}
<tr>
2019-12-30 18:20:50 +00:00
<td>
<code>{login.hostname} - {login.ip_address}</code>
</td>
<td>{moment(login.login_time).format('MMMM Do YYYY, h:mm:ss a')} ({moment(login.login_time).fromNow()})</td>
2019-12-30 14:27:49 +00:00
</tr>
{/each}
</tbody>
</table>
</PaginatedList>