From e516bf5fda98682d1c3a541bbd892463635ff2bf Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 19 Feb 2026 08:12:50 +0000 Subject: [PATCH] Add batch classification assignment to training view Co-authored-by: Teagan42 <2989925+Teagan42@users.noreply.github.com> --- web/public/locales/en/views/classificationModel.json | 8 +++++++- web/src/views/classification/ModelTrainingView.tsx | 3 ++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/web/public/locales/en/views/classificationModel.json b/web/public/locales/en/views/classificationModel.json index a07114b5c..499b25d35 100644 --- a/web/public/locales/en/views/classificationModel.json +++ b/web/public/locales/en/views/classificationModel.json @@ -13,7 +13,8 @@ "trainModel": "Train Model", "addClassification": "Add Classification", "deleteModels": "Delete Models", - "editModel": "Edit Model" + "editModel": "Edit Model", + "categorizeImages": "Classify Images" }, "tooltip": { "trainingInProgress": "Model is currently training", @@ -28,6 +29,7 @@ "deletedModel_one": "Successfully deleted {{count}} model", "deletedModel_other": "Successfully deleted {{count}} models", "categorizedImage": "Successfully Classified Image", + "batchCategorized": "Successfully classified {{count}} images", "trainedModel": "Successfully trained model.", "trainingModel": "Successfully started model training.", "updatedModel": "Successfully updated model configuration", @@ -38,10 +40,14 @@ "deleteCategoryFailed": "Failed to delete class: {{errorMessage}}", "deleteModelFailed": "Failed to delete model: {{errorMessage}}", "categorizeFailed": "Failed to categorize image: {{errorMessage}}", + "batchCategorizeFailed": "Failed to classify {{count}} images", "trainingFailed": "Model training failed. Check Frigate logs for details.", "trainingFailedToStart": "Failed to start model training: {{errorMessage}}", "updateModelFailed": "Failed to update model: {{errorMessage}}", "renameCategoryFailed": "Failed to rename class: {{errorMessage}}" + }, + "warning": { + "partialBatchCategorized": "Classified {{success}} of {{total}} images successfully." } }, "deleteCategory": { diff --git a/web/src/views/classification/ModelTrainingView.tsx b/web/src/views/classification/ModelTrainingView.tsx index 87e5407dd..296bdb395 100644 --- a/web/src/views/classification/ModelTrainingView.tsx +++ b/web/src/views/classification/ModelTrainingView.tsx @@ -463,7 +463,8 @@ export default function ModelTrainingView({ model }: ModelTrainingViewProps) { classes={classes} modelName={model.name} image={selectedImages[0]} - onRefresh={(category: string) => { + onRefresh={refreshAll} + onCategorize={(category) => { // Batch categorize all selected images let successCount = 0; let failCount = 0;