mirror of
https://github.com/stashapp/stash.git
synced 2025-12-18 12:54:38 +03:00
Add delete file and generated files by default config options (#1852)
* add delete file and generated files by default config options * add alert message with files to be deleted Co-authored-by: WithoutPants <53250216+WithoutPants@users.noreply.github.com>
This commit is contained in:
@@ -4,7 +4,8 @@ import { useScenesDestroy } from "src/core/StashService";
|
||||
import * as GQL from "src/core/generated-graphql";
|
||||
import { Modal } from "src/components/Shared";
|
||||
import { useToast } from "src/hooks";
|
||||
import { useIntl } from "react-intl";
|
||||
import { ConfigurationContext } from "src/hooks/Config";
|
||||
import { FormattedMessage, useIntl } from "react-intl";
|
||||
|
||||
interface IDeleteSceneDialogProps {
|
||||
selected: GQL.SlimSceneDataFragment[];
|
||||
@@ -31,8 +32,14 @@ export const DeleteScenesDialog: React.FC<IDeleteSceneDialogProps> = (
|
||||
{ count: props.selected.length, singularEntity, pluralEntity }
|
||||
);
|
||||
|
||||
const [deleteFile, setDeleteFile] = useState<boolean>(false);
|
||||
const [deleteGenerated, setDeleteGenerated] = useState<boolean>(true);
|
||||
const { configuration: config } = React.useContext(ConfigurationContext);
|
||||
|
||||
const [deleteFile, setDeleteFile] = useState<boolean>(
|
||||
config?.defaults.deleteFile ?? false
|
||||
);
|
||||
const [deleteGenerated, setDeleteGenerated] = useState<boolean>(
|
||||
config?.defaults.deleteGenerated ?? true
|
||||
);
|
||||
|
||||
const Toast = useToast();
|
||||
const [deleteScene] = useScenesDestroy(getScenesDeleteInput());
|
||||
@@ -60,6 +67,42 @@ export const DeleteScenesDialog: React.FC<IDeleteSceneDialogProps> = (
|
||||
props.onClose(true);
|
||||
}
|
||||
|
||||
function maybeRenderDeleteFileAlert() {
|
||||
if (!deleteFile) {
|
||||
return;
|
||||
}
|
||||
|
||||
return (
|
||||
<div className="delete-dialog alert alert-danger text-break">
|
||||
<p className="font-weight-bold">
|
||||
<FormattedMessage
|
||||
values={{
|
||||
count: props.selected.length,
|
||||
singularEntity: intl.formatMessage({ id: "file" }),
|
||||
pluralEntity: intl.formatMessage({ id: "files" }),
|
||||
}}
|
||||
id="dialogs.delete_alert"
|
||||
/>
|
||||
</p>
|
||||
<ul>
|
||||
{props.selected.slice(0, 5).map((s) => (
|
||||
<li key={s.path}>{s.path}</li>
|
||||
))}
|
||||
{props.selected.length > 5 && (
|
||||
<FormattedMessage
|
||||
values={{
|
||||
count: props.selected.length - 5,
|
||||
singularEntity: intl.formatMessage({ id: "file" }),
|
||||
pluralEntity: intl.formatMessage({ id: "files" }),
|
||||
}}
|
||||
id="dialogs.delete_object_overflow"
|
||||
/>
|
||||
)}
|
||||
</ul>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
return (
|
||||
<Modal
|
||||
show
|
||||
@@ -78,6 +121,7 @@ export const DeleteScenesDialog: React.FC<IDeleteSceneDialogProps> = (
|
||||
isRunning={isDeleting}
|
||||
>
|
||||
<p>{message}</p>
|
||||
{maybeRenderDeleteFileAlert()}
|
||||
<Form>
|
||||
<Form.Check
|
||||
id="delete-file"
|
||||
|
||||
Reference in New Issue
Block a user