mirror of
https://github.com/stashapp/stash.git
synced 2025-12-17 12:24:38 +03:00
Add Clean generated files task (#4607)
* Add clean generate task * Add to library tasks * Save and read defaults * Stop handling and logging * Make filename parsing more robust
This commit is contained in:
@@ -11,6 +11,7 @@ import {
|
||||
mutateMigrateSceneScreenshots,
|
||||
mutateMigrateBlobs,
|
||||
mutateOptimiseDatabase,
|
||||
mutateCleanGenerated,
|
||||
} from "src/core/StashService";
|
||||
import { useToast } from "src/hooks/Toast";
|
||||
import downloadFile from "src/utils/download";
|
||||
@@ -29,6 +30,7 @@ import {
|
||||
faQuestionCircle,
|
||||
faTrashAlt,
|
||||
} from "@fortawesome/free-solid-svg-icons";
|
||||
import { CleanGeneratedDialog } from "./CleanGeneratedDialog";
|
||||
|
||||
interface ICleanDialog {
|
||||
pathSelection?: boolean;
|
||||
@@ -167,6 +169,7 @@ export const DataManagementTasks: React.FC<IDataManagementTasks> = ({
|
||||
import: false,
|
||||
clean: false,
|
||||
cleanAlert: false,
|
||||
cleanGenerated: false,
|
||||
});
|
||||
|
||||
const [cleanOptions, setCleanOptions] = useState<GQL.CleanMetadataInput>({
|
||||
@@ -252,6 +255,27 @@ export const DataManagementTasks: React.FC<IDataManagementTasks> = ({
|
||||
}
|
||||
}
|
||||
|
||||
async function onCleanGenerated(options: GQL.CleanGeneratedInput) {
|
||||
try {
|
||||
await mutateCleanGenerated({
|
||||
...options,
|
||||
});
|
||||
|
||||
Toast.success(
|
||||
intl.formatMessage(
|
||||
{ id: "config.tasks.added_job_to_queue" },
|
||||
{
|
||||
operation_name: intl.formatMessage({
|
||||
id: "actions.clean_generated",
|
||||
}),
|
||||
}
|
||||
)
|
||||
);
|
||||
} catch (e) {
|
||||
Toast.error(e);
|
||||
}
|
||||
}
|
||||
|
||||
async function onMigrateHashNaming() {
|
||||
try {
|
||||
await mutateMigrateHashNaming();
|
||||
@@ -404,6 +428,17 @@ export const DataManagementTasks: React.FC<IDataManagementTasks> = ({
|
||||
) : (
|
||||
dialogOpen.clean
|
||||
)}
|
||||
{dialogOpen.cleanGenerated && (
|
||||
<CleanGeneratedDialog
|
||||
onClose={(options) => {
|
||||
if (options) {
|
||||
onCleanGenerated(options);
|
||||
}
|
||||
|
||||
setDialogOpen({ cleanGenerated: false });
|
||||
}}
|
||||
/>
|
||||
)}
|
||||
|
||||
<SettingSection headingID="config.tasks.maintenance">
|
||||
<div className="setting-group">
|
||||
@@ -439,6 +474,21 @@ export const DataManagementTasks: React.FC<IDataManagementTasks> = ({
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div className="setting-group">
|
||||
<Setting
|
||||
heading={<FormattedMessage id="actions.clean_generated" />}
|
||||
subHeadingID="config.tasks.clean_generated.description"
|
||||
>
|
||||
<Button
|
||||
variant="danger"
|
||||
type="submit"
|
||||
onClick={() => setDialogOpen({ cleanGenerated: true })}
|
||||
>
|
||||
<FormattedMessage id="actions.clean_generated" />…
|
||||
</Button>
|
||||
</Setting>
|
||||
</div>
|
||||
|
||||
<Setting
|
||||
headingID="actions.optimise_database"
|
||||
subHeading={
|
||||
|
||||
Reference in New Issue
Block a user