Add removal status for filesystem

This commit is contained in:
2024-05-17 16:32:53 +02:00
parent 2335c82153
commit f76fc8dcf3
7 changed files with 37 additions and 5 deletions

View File

@@ -54,6 +54,9 @@ let block_form = {
jresp.files_blocked.forEach(file => { jresp.files_blocked.forEach(file => {
message += "<li>pixeldrain.com/u/" + file + "</li>" message += "<li>pixeldrain.com/u/" + file + "</li>"
}) })
jresp.filesystem_nodes_blocked.forEach(file => {
message += "<li>pixeldrain.com/d/" + file + "</li>"
})
message += "</ul>" message += "</ul>"
return {success: true, message: message} return {success: true, message: message}

View File

@@ -14,7 +14,9 @@ export let fs_navigator
class:button_highlight={state.base_index === i} class:button_highlight={state.base_index === i}
on:click|preventDefault={() => {fs_navigator.navigate(node.path, true)}} on:click|preventDefault={() => {fs_navigator.navigate(node.path, true)}}
> >
{#if shared} {#if node.abuse_type !== undefined}
<i class="icon small">block</i>
{:else if shared}
<i class="icon small">share</i> <i class="icon small">share</i>
{/if} {/if}
<div class="node_name" class:base={state.base_index === i}> <div class="node_name" class:base={state.base_index === i}>

View File

@@ -2,6 +2,7 @@
import { createEventDispatcher } from "svelte"; import { createEventDispatcher } from "svelte";
import { domain_url } from "../../util/Util.svelte"; import { domain_url } from "../../util/Util.svelte";
import CopyButton from "../../layout/CopyButton.svelte"; import CopyButton from "../../layout/CopyButton.svelte";
import { formatDate } from "../../util/Formatting.svelte";
let dispatch = createEventDispatcher() let dispatch = createEventDispatcher()
export let shared export let shared
@@ -41,6 +42,16 @@ const toggle_example = () => {
</script> </script>
<h2>Share this file/directory</h2> <h2>Share this file/directory</h2>
{#if file.abuse_type !== undefined}
<div class="highlight_red">
This file or directory has received an abuse report. It cannot be
shared.<br/>
Type of abuse: {file.abuse_type}<br/>
Report time: {formatDate(file.abuse_report_time, true, true, true)}
</div>
{/if}
<p> <p>
When a file or directory is shared it can be accessed through a When a file or directory is shared it can be accessed through a
unique link. You can get the URL with the 'Copy link' button on unique link. You can get the URL with the 'Copy link' button on

View File

@@ -6,6 +6,7 @@ import ListView from './ListView.svelte'
import GalleryView from './GalleryView.svelte' import GalleryView from './GalleryView.svelte'
import Button from '../../layout/Button.svelte'; import Button from '../../layout/Button.svelte';
import FileImporter from './FileImporter.svelte'; import FileImporter from './FileImporter.svelte';
import { formatDate } from '../../util/Formatting.svelte';
let dispatch = createEventDispatcher() let dispatch = createEventDispatcher()
export let fs_navigator export let fs_navigator
@@ -359,6 +360,16 @@ onMount(() => {
{/if} {/if}
</div> </div>
{#if state.base.abuse_type !== undefined}
<div class="highlight_red">
This directory has received an abuse report. It cannot be
shared.<br/>
Type of abuse: {state.base.abuse_type}<br/>
Report time: {formatDate(state.base.abuse_report_time, true, true, true)}
</div>
{/if}
<slot></slot> <slot></slot>
{#if directory_view === "list"} {#if directory_view === "list"}

View File

@@ -38,7 +38,10 @@ export let large_icons = false
{/if} {/if}
</td> </td>
<td class="node_icons"> <td class="node_icons">
{#if child.id}
{#if child.abuse_type !== undefined}
<i class="icon" title="This file / directory has received an abuse report. It cannot be shared">block</i>
{:else if child.id}
<a <a
href="/d/{child.id}" href="/d/{child.id}"
on:click|preventDefault|stopPropagation={() => {dispatch("node_share_click", index)}} on:click|preventDefault|stopPropagation={() => {dispatch("node_share_click", index)}}

View File

@@ -98,12 +98,14 @@ onMount(() => {
<td> <td>
{#if row.event === "file_instance_blocked"} {#if row.event === "file_instance_blocked"}
<a href="/u/{row.file_id}">{row.file_name}</a> <a href="/u/{row.file_id}">{row.file_name}</a>
{:else if row.event === "filesystem_node_blocked"}
<a href="/d/{row.file_id}">{row.file_name}</a>
{:else} {:else}
{row.file_name} {row.file_name}
{/if} {/if}
</td> </td>
<td> <td>
{#if row.event === "file_instance_blocked"} {#if row.event === "file_instance_blocked" || row.event === "filesystem_node_blocked"}
Blocked for abuse Blocked for abuse
{:else if row.event === "file_instance_expired"} {:else if row.event === "file_instance_expired"}
Expired Expired

View File

@@ -26,12 +26,12 @@ func (wc *WebController) serveDirectory(w http.ResponseWriter, r *http.Request,
if err != nil { if err != nil {
if err.Error() == "not_found" || err.Error() == "path_not_found" { if err.Error() == "not_found" || err.Error() == "path_not_found" {
wc.serveNotFound(w, r) wc.serveNotFound(w, r)
return
} else if err.Error() == "forbidden" { } else if err.Error() == "forbidden" {
wc.serveForbidden(w, r) wc.serveForbidden(w, r)
return
} else if err.Error() == "authentication_required" { } else if err.Error() == "authentication_required" {
http.Redirect(w, r, "/login", http.StatusSeeOther) http.Redirect(w, r, "/login", http.StatusSeeOther)
} else if err.Error() == "unavailable_for_legal_reasons" {
wc.serveUnavailableForLegalReasons(w, r)
} else { } else {
log.Error("Failed to get path: %s", err) log.Error("Failed to get path: %s", err)
wc.templates.Get().ExecuteTemplate(w, "500", td) wc.templates.Get().ExecuteTemplate(w, "500", td)