Further clarify e-mail policy
This commit is contained in:
@@ -15,7 +15,6 @@ let block_form = {
|
||||
label: "Type",
|
||||
type: "radio",
|
||||
radio_values: [
|
||||
"unknown",
|
||||
"copyright",
|
||||
"porn",
|
||||
"child_abuse",
|
||||
|
@@ -157,37 +157,33 @@ onMount(get_reporters);
|
||||
{/if}
|
||||
</section>
|
||||
|
||||
<br/>
|
||||
|
||||
<div class="table_scroll">
|
||||
<h2>Pending reporters</h2>
|
||||
<EmailReportersTable
|
||||
reporters={reporters_pending}
|
||||
on:edit={e => edit_reporter(e.detail)}
|
||||
on:approve={e => approve_reporter(e.detail)}
|
||||
on:spam={e => spam_reporter(e.detail)}
|
||||
on:delete={e => delete_reporter(e.detail)}>
|
||||
</EmailReportersTable>
|
||||
<h2>Pending reporters</h2>
|
||||
<EmailReportersTable
|
||||
reporters={reporters_pending}
|
||||
on:edit={e => edit_reporter(e.detail)}
|
||||
on:approve={e => approve_reporter(e.detail)}
|
||||
on:spam={e => spam_reporter(e.detail)}
|
||||
on:delete={e => delete_reporter(e.detail)}>
|
||||
</EmailReportersTable>
|
||||
|
||||
|
||||
<h2>Trusted reporters</h2>
|
||||
<EmailReportersTable
|
||||
reporters={reporters_trusted}
|
||||
on:edit={e => edit_reporter(e.detail)}
|
||||
on:approve={e => approve_reporter(e.detail)}
|
||||
on:spam={e => spam_reporter(e.detail)}
|
||||
on:delete={e => delete_reporter(e.detail)}>
|
||||
</EmailReportersTable>
|
||||
<h2>Trusted reporters</h2>
|
||||
<EmailReportersTable
|
||||
reporters={reporters_trusted}
|
||||
on:edit={e => edit_reporter(e.detail)}
|
||||
on:approve={e => approve_reporter(e.detail)}
|
||||
on:spam={e => spam_reporter(e.detail)}
|
||||
on:delete={e => delete_reporter(e.detail)}>
|
||||
</EmailReportersTable>
|
||||
|
||||
<h2>Rejected reporters</h2>
|
||||
<EmailReportersTable
|
||||
reporters={reporters_rejected}
|
||||
on:edit={e => edit_reporter(e.detail)}
|
||||
on:approve={e => approve_reporter(e.detail)}
|
||||
on:spam={e => spam_reporter(e.detail)}
|
||||
on:delete={e => delete_reporter(e.detail)}>
|
||||
</EmailReportersTable>
|
||||
</div>
|
||||
<h2>Rejected reporters</h2>
|
||||
<EmailReportersTable
|
||||
reporters={reporters_rejected}
|
||||
on:edit={e => edit_reporter(e.detail)}
|
||||
on:approve={e => approve_reporter(e.detail)}
|
||||
on:spam={e => spam_reporter(e.detail)}
|
||||
on:delete={e => delete_reporter(e.detail)}>
|
||||
</EmailReportersTable>
|
||||
<br/>
|
||||
|
||||
<style>
|
||||
@@ -198,7 +194,4 @@ onMount(get_reporters);
|
||||
}
|
||||
.toolbar > * { flex: 0 0 auto; }
|
||||
.toolbar_spacer { flex: 1 1 auto; }
|
||||
.table_scroll {
|
||||
text-align: left;
|
||||
}
|
||||
</style>
|
||||
|
@@ -52,48 +52,50 @@ const toggle_preview = (rep) => {
|
||||
}
|
||||
</script>
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<td><SortButton field="from_address" active_field={sort_field} asc={asc} sort_func={sort}>Address</SortButton></td>
|
||||
<td><SortButton field="name" active_field={sort_field} asc={asc} sort_func={sort}>Name</SortButton></td>
|
||||
<td><SortButton field="reports_sent" active_field={sort_field} asc={asc} sort_func={sort}>Reports</SortButton></td>
|
||||
<td><SortButton field="files_blocked" active_field={sort_field} asc={asc} sort_func={sort}>Blocked</SortButton></td>
|
||||
<td><SortButton field="last_used" active_field={sort_field} asc={asc} sort_func={sort}>Last used</SortButton></td>
|
||||
<td><SortButton field="created" active_field={sort_field} asc={asc} sort_func={sort}>Created</SortButton></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
{#each reporters as rep (rep.from_address)}
|
||||
<tr animate:flip={{duration: 500}}>
|
||||
<td>{rep.from_address}</td>
|
||||
<td>{rep.name}</td>
|
||||
<td>{rep.reports_sent}</td>
|
||||
<td>{rep.files_blocked}</td>
|
||||
<td>{formatDate(rep.last_used, true, true, false)}</td>
|
||||
<td>{formatDate(rep.created, false, false, false)}</td>
|
||||
<td>
|
||||
<button on:click|preventDefault={() => toggle_preview(rep)} class="button round">
|
||||
<i class="icon">visibility</i>
|
||||
</button>
|
||||
<button on:click|preventDefault={() => {dispatch("edit", rep)}} class="button round">
|
||||
<i class="icon">edit</i>
|
||||
</button>
|
||||
{#if rep.status !== "trusted"}
|
||||
<button on:click|preventDefault={() => {dispatch("approve", rep)}} class="button button_highlight round">
|
||||
<i class="icon">check</i>
|
||||
</button>
|
||||
{/if}
|
||||
{#if rep.status !== "rejected"}
|
||||
<button on:click|preventDefault={() => {dispatch("spam", rep)}} class="button button_red round">
|
||||
<i class="icon">block</i>
|
||||
</button>
|
||||
{/if}
|
||||
<button on:click|preventDefault={() => {dispatch("delete", rep)}} class="button button_red round">
|
||||
<i class="icon">delete</i>
|
||||
</button>
|
||||
</td>
|
||||
<div class="table_scroll">
|
||||
<table>
|
||||
<tr>
|
||||
<td><SortButton field="from_address" active_field={sort_field} asc={asc} sort_func={sort}>Address</SortButton></td>
|
||||
<td><SortButton field="name" active_field={sort_field} asc={asc} sort_func={sort}>Name</SortButton></td>
|
||||
<td><SortButton field="reports_sent" active_field={sort_field} asc={asc} sort_func={sort}>Reports</SortButton></td>
|
||||
<td><SortButton field="files_blocked" active_field={sort_field} asc={asc} sort_func={sort}>Blocked</SortButton></td>
|
||||
<td><SortButton field="last_used" active_field={sort_field} asc={asc} sort_func={sort}>Last used</SortButton></td>
|
||||
<td><SortButton field="created" active_field={sort_field} asc={asc} sort_func={sort}>Created</SortButton></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
{/each}
|
||||
</table>
|
||||
{#each reporters as rep (rep.from_address)}
|
||||
<tr animate:flip={{duration: 500}}>
|
||||
<td>{rep.from_address}</td>
|
||||
<td>{rep.name}</td>
|
||||
<td>{rep.reports_sent}</td>
|
||||
<td>{rep.files_blocked}</td>
|
||||
<td>{formatDate(rep.last_used, true, true, false)}</td>
|
||||
<td>{formatDate(rep.created, false, false, false)}</td>
|
||||
<td>
|
||||
<button on:click|preventDefault={() => toggle_preview(rep)} class="button round">
|
||||
<i class="icon">email</i>
|
||||
</button>
|
||||
<button on:click|preventDefault={() => {dispatch("edit", rep)}} class="button round">
|
||||
<i class="icon">edit</i>
|
||||
</button>
|
||||
{#if rep.status !== "trusted"}
|
||||
<button on:click|preventDefault={() => {dispatch("approve", rep)}} class="button button_highlight round">
|
||||
<i class="icon">check</i>
|
||||
</button>
|
||||
{/if}
|
||||
{#if rep.status !== "rejected"}
|
||||
<button on:click|preventDefault={() => {dispatch("spam", rep)}} class="button button_red round">
|
||||
<i class="icon">block</i>
|
||||
</button>
|
||||
{/if}
|
||||
<button on:click|preventDefault={() => {dispatch("delete", rep)}} class="button button_red round">
|
||||
<i class="icon">delete</i>
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
{/each}
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<Modal bind:this={modal} title={preview_subject} width="1000px">
|
||||
{#if preview_html !== ""}
|
||||
@@ -104,6 +106,9 @@ const toggle_preview = (rep) => {
|
||||
</Modal>
|
||||
|
||||
<style>
|
||||
.table_scroll {
|
||||
text-align: initial;
|
||||
}
|
||||
.message_html {
|
||||
padding: 8px;
|
||||
text-align: initial;
|
||||
|
@@ -4,6 +4,18 @@ import { formatDate } from "../util/Formatting.svelte";
|
||||
import Expandable from "../util/Expandable.svelte";
|
||||
import LoadingIndicator from "../util/LoadingIndicator.svelte";
|
||||
|
||||
const abuse_types = [
|
||||
"copyright",
|
||||
"child_abuse",
|
||||
"terrorism",
|
||||
"gore",
|
||||
"zoophilia",
|
||||
"malware",
|
||||
"doxing",
|
||||
"revenge_porn",
|
||||
"porn",
|
||||
]
|
||||
|
||||
let loading = true
|
||||
let rows = []
|
||||
let total_offences = 0
|
||||
@@ -11,7 +23,7 @@ let total_offences = 0
|
||||
let expanded = false
|
||||
let creating = false
|
||||
let new_ban_address
|
||||
let new_ban_reason = "unknown"
|
||||
let new_ban_reason = abuse_types[0]
|
||||
|
||||
const get_bans = async () => {
|
||||
loading = true;
|
||||
@@ -114,23 +126,11 @@ onMount(get_bans);
|
||||
<input id="field_address" type="text" bind:this={new_ban_address}/>
|
||||
<label for="field_reason">Reason</label>
|
||||
<div id="field_reason">
|
||||
<input id="reason_unknown" name="reporter_type" type="radio" bind:group={new_ban_reason} value="unknown" />
|
||||
<label for="reason_unknown">unknown</label>
|
||||
<br/>
|
||||
<input id="reason_copyright" name="reporter_type" type="radio" bind:group={new_ban_reason} value="copyright" />
|
||||
<label for="reason_copyright">copyright</label>
|
||||
<br/>
|
||||
<input id="reason_child_abuse" name="reporter_type" type="radio" bind:group={new_ban_reason} value="child_abuse" />
|
||||
<label for="reason_child_abuse">child_abuse</label>
|
||||
<br/>
|
||||
<input id="reason_terrorism" name="reporter_type" type="radio" bind:group={new_ban_reason} value="terorrism" />
|
||||
<label for="reason_terrorism">terrorism</label>
|
||||
<br/>
|
||||
<input id="reason_gore" name="reporter_type" type="radio" bind:group={new_ban_reason} value="gore" />
|
||||
<label for="reason_gore">gore</label>
|
||||
<br/>
|
||||
<input id="reason_malware" name="reporter_type" type="radio" bind:group={new_ban_reason} value="malware" />
|
||||
<label for="reason_malware">malware</label>
|
||||
{#each abuse_types as t (t)}
|
||||
<input id="reason_{t}" name="reporter_type" type="radio" bind:group={new_ban_reason} value="{t}" />
|
||||
<label for="reason_{t}">{t}</label>
|
||||
<br/>
|
||||
{/each}
|
||||
</div>
|
||||
<button class="button_highlight" type="submit" style="float: right;">
|
||||
<i class="icon">save</i> Save
|
||||
|
Reference in New Issue
Block a user