diff --git a/res/template/admin_ip_bans.html b/res/template/admin_ip_bans.html new file mode 100644 index 0000000..3602ea3 --- /dev/null +++ b/res/template/admin_ip_bans.html @@ -0,0 +1,19 @@ +{{define "admin_ip_bans"}} + + + {{template "meta_tags" "IP bans"}} + {{template "user_style" .}} + + + + + + {{template "page_top" .}} +

IP bans

+
+ + {{template "page_bottom" .}} + {{template "analytics"}} + + +{{end}} diff --git a/svelte/rollup.config.js b/svelte/rollup.config.js index d8087e2..2528caf 100644 --- a/svelte/rollup.config.js +++ b/svelte/rollup.config.js @@ -36,6 +36,7 @@ export default [ "user_file_manager", "admin_abuse_reporters", "admin_abuse_reports", + "admin_ip_bans", ].map((name, index) => ({ input: `src/${name}.js`, output: { diff --git a/svelte/src/admin_abuse_reports/AbuseReport.svelte b/svelte/src/admin_abuse_reports/AbuseReport.svelte index 3d5a927..65706d6 100644 --- a/svelte/src/admin_abuse_reports/AbuseReport.svelte +++ b/svelte/src/admin_abuse_reports/AbuseReport.svelte @@ -6,6 +6,7 @@ let dispatch = createEventDispatcher() export let report let expandable +let preview = false let set_status = async (action, report_type) => { const form = new FormData() @@ -30,7 +31,7 @@ let set_status = async (action, report_type) => { } - 2}> + 1}>
File thumbnail @@ -53,6 +54,9 @@ let set_status = async (action, report_type) => { open_in_new Open file + @@ -67,6 +71,16 @@ let set_status = async (action, report_type) => {
+
+ {#if preview} +
+ + {/if} +
diff --git a/svelte/src/admin_ip_bans.js b/svelte/src/admin_ip_bans.js new file mode 100644 index 0000000..c46e82d --- /dev/null +++ b/svelte/src/admin_ip_bans.js @@ -0,0 +1,8 @@ +import App from './admin_ip_bans/IPBans.svelte'; + +const app = new App({ + target: document.getElementById("page_content"), + props: {} +}); + +export default app; diff --git a/svelte/src/admin_ip_bans/IPBans.svelte b/svelte/src/admin_ip_bans/IPBans.svelte new file mode 100644 index 0000000..8333ba5 --- /dev/null +++ b/svelte/src/admin_ip_bans/IPBans.svelte @@ -0,0 +1,181 @@ + + +
+ {#if loading} +
+ +
+ {/if} + +
+
+ + arrow_back Return to admin panel + +
+ +
+ {#if creating} +
+
+
Time
+ + + + + + + + + + + +
IP address
Reason + + +
+ + +
+ + +
+ + +
+ + +
+ + +
+ +
+ + + {/if} + + +
+ + + + + + + + + + {#each rows as row} + + + + + + + + {/each} +
AddressReasonBan timeExpire time
{row.address}{rows.reason}{formatDate(row.ban_time, true, true, false)}{formatDate(row.expire_time, true, true, false)} + +
+ + + diff --git a/webcontroller/web_controller.go b/webcontroller/web_controller.go index c64c556..1d84d2a 100644 --- a/webcontroller/web_controller.go +++ b/webcontroller/web_controller.go @@ -188,6 +188,7 @@ func New( {PST, "admin/abuse" /* */, wc.serveForm(wc.adminAbuseForm, handlerOpts{Auth: true})}, {GET, "admin/abuse_reporters" /**/, wc.serveTemplate("admin_abuse_reporters", handlerOpts{Auth: true})}, {GET, "admin/abuse_reports" /* */, wc.serveTemplate("admin_abuse_reports", handlerOpts{Auth: true})}, + {GET, "admin/ip_bans" /* */, wc.serveTemplate("admin_ip_bans", handlerOpts{Auth: true})}, // Advertising related {GET, "click/:id" /* */, wc.serveAdClick},