124 lines
4.1 KiB
HTML
124 lines
4.1 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<script defer src="event_log.build.js"></script>
|
|
<link rel="stylesheet" href="options.build.css">
|
|
<title>Event Log</title>
|
|
|
|
<style>
|
|
label {
|
|
display: block;
|
|
}
|
|
</style>
|
|
</head>
|
|
|
|
<body class="text-fuchsia-900 p-3.5 lg:p-32" x-data="eventLog">
|
|
<p>
|
|
<a href="options.html" class="border-none hover:underline">← Back</a>
|
|
</p>
|
|
|
|
<h1 class="section-header">Event Log</h1>
|
|
|
|
<div class="section">
|
|
<div class="section-header">Filters</div>
|
|
|
|
<div class="grid grid-cols-2 xl:grid-cols-4 gap-4">
|
|
<div>
|
|
<label for="view">View</label>
|
|
<select id="view" class="input" x-model="view" @change="reload">
|
|
<option value="created_at">created_at</option>
|
|
<option value="kind">kind</option>
|
|
<option value="host">host</option>
|
|
<option value="pubkey">pubkey</option>
|
|
</select>
|
|
</div>
|
|
|
|
<div>
|
|
<label for="sort">Order</label>
|
|
<select id="sort" x-model="sort" class="input" @change="reload">
|
|
<option value="asc">Ascending</option>
|
|
<option value="desc">Descending</option>
|
|
</select>
|
|
</div>
|
|
|
|
<div></div>
|
|
<div></div>
|
|
|
|
<div x-show="view === 'created_at'">
|
|
<label for="fromCreatedAt">From</label>
|
|
<input type="date" id="fromCreatedAt" x-model="fromCreatedAt" class="input" @change="reload">
|
|
</div>
|
|
|
|
<div x-show="view === 'created_at'">
|
|
<label for="toCreatedAt">To</label>
|
|
<input type="date" id="toCreatedAt" x-model="toCreatedAt" class="input" @change="reload">
|
|
</div>
|
|
|
|
<div x-show="view === 'kind'">
|
|
<label for="kindShortcut">Quick Select</label>
|
|
<select id="kindShortcut" class="input" @change="quickKindSelect" x-model="quickKind">
|
|
<option></option>
|
|
<template x-for="k in kinds">
|
|
<option :value="k[0]" x-text="k[1]"></option>
|
|
</template>
|
|
</select>
|
|
</div>
|
|
|
|
<div x-show="view === 'kind'">
|
|
<label for="fromKind">From</label>
|
|
<input type="number" id="fromKind" x-model.number="fromKind" class="input" @change="reload">
|
|
</div>
|
|
|
|
<div x-show="view === 'kind'">
|
|
<label for="toKind">To</label>
|
|
<input type="number" id="toKind" x-model.number="toKind" class="input" @change="reload">
|
|
</div>
|
|
|
|
<div x-show="view === 'host'">
|
|
<label for="host">Host</label>
|
|
<select id="host" class="input" x-model="host" @change="reload">
|
|
<option value=""></option>
|
|
<template x-for="h in allHosts">
|
|
<option :value="h" x-text="h"></option>
|
|
</template>
|
|
</select>
|
|
</div>
|
|
|
|
<div x-show="view === 'pubkey'">
|
|
<label for="profiles">Profiles</label>
|
|
<select id="profiles" class="input" x-model="profile" @change="pkFromProfile">
|
|
<option value=""></option>
|
|
<template x-for="p in profileNames">
|
|
<option :value="p" x-text="p"></option>
|
|
</template>
|
|
</select>
|
|
</div>
|
|
|
|
<div x-show="view === 'pubkey'">
|
|
<label for="pubkey">Pubkey</label>
|
|
<input type="text" class="input" x-model="pubkey" @input.debounce="reload">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<template x-for="(event, index) in events">
|
|
<div class="mt-3 border-solid border border-fuchsia-700 rounded-lg">
|
|
<div class="select-none flex cursor-pointer text-xl" @click="selected = selected === index ? null : index">
|
|
<div class="flex-none w-14 p-4 font-extrabold" x-text="selected === index ? '-' : '+'"></div>
|
|
<div class="flex-initial w-64 p-4" x-text="event.metadata.signed_at"></div>
|
|
<div class="flex-initial w-64 p-4" x-text="event.metadata.host"></div>
|
|
</div>
|
|
|
|
<pre class="rounded-b-lg bg-slate-200" x-html="highlight(event)" x-show="selected === index"
|
|
x-transition:enter.opacity.delay.75ms x-transition:leave.opacity>
|
|
</pre>
|
|
</div>
|
|
</template>
|
|
</body>
|
|
|
|
</html> |