浏览代码

fix: allow requeue to overwrite existing output files and revert datasets editor changes

Timothy Pomeroy 4 周之前
父节点
当前提交
51c00971a5

+ 1 - 0
apps/service/src/app.controller.ts

@@ -243,6 +243,7 @@ export class AppController {
       preset: processingPreset,
       priority: 1, // Higher priority for manual requeues
       status: 'pending', // Mark as pending for processing
+      isRequeue: true, // This is a requeue operation, allow overwriting existing output
     });
 
     // Check if file already exists

+ 6 - 1
apps/service/src/task-queue.service.ts

@@ -453,9 +453,14 @@ export class TaskQueueService implements OnModuleInit {
     preset: string;
     priority?: number;
     status?: string;
+    isRequeue?: boolean;
   }) {
     // Check if output file already exists (case-insensitive matching)
-    if (this.handbrake.outputFileExists(taskData.output)) {
+    // Skip this check if this is a requeue operation (output file is expected to exist)
+    if (
+      !taskData.isRequeue &&
+      this.handbrake.outputFileExists(taskData.output)
+    ) {
       this.logger.warn(
         `Output file already exists: ${taskData.output}, skipping task creation`,
       );

+ 6 - 6
apps/web/src/app/components/SettingsCrud.tsx

@@ -24,13 +24,13 @@ interface SettingsFormState {
 const initialSettingsState: SettingsFormState = {
   key: "",
   value: "",
-  isOpen: false
+  isOpen: false,
 };
 
 export default function SettingsCrud({
   editKey,
   editValue,
-  onEditClose
+  onEditClose,
 }: SettingsCrudProps) {
   const { updateSetting } = useAppContext();
   const { addNotification } = useNotifications();
@@ -45,7 +45,7 @@ export default function SettingsCrud({
       setFormState({
         key: editKey,
         value: editValue || "",
-        isOpen: true
+        isOpen: true,
       });
     }
   }, [editKey, editValue, isEditing]);
@@ -63,7 +63,7 @@ export default function SettingsCrud({
       addNotification({
         type: "success",
         title: "Setting Saved",
-        message: `${formState.key} has been ${isEditing ? "updated" : "added"} successfully.`
+        message: `${formState.key} has been ${isEditing ? "updated" : "added"} successfully.`,
       });
     } catch (error) {
       console.error("Failed to save setting:", error);
@@ -71,7 +71,7 @@ export default function SettingsCrud({
       addNotification({
         type: "error",
         title: "Save Failed",
-        message: "Failed to save the setting. Please try again."
+        message: "Failed to save the setting. Please try again.",
       });
     } finally {
       setIsSaving(false);
@@ -101,7 +101,7 @@ export default function SettingsCrud({
           />
         );
       case "datasets":
-        // For datasets, just use JsonInput since DatasetsSettingsEditor uses context
+        // Use JsonInput with JSON mode toggle for datasets configuration
         return (
           <JsonInput
             value={formState.value}