From 212ad3cee056187ca5fd8fac39c8a8fc8f1d68b3 Mon Sep 17 00:00:00 2001
From: j <j@mailb.org>
Date: Fri, 24 Jan 2025 17:12:29 +0530
Subject: [PATCH] add confirm dialog while deleting annotations

---
 static/js/editor.js | 39 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)

diff --git a/static/js/editor.js b/static/js/editor.js
index 5d131c560..19a9f99e0 100644
--- a/static/js/editor.js
+++ b/static/js/editor.js
@@ -21,6 +21,7 @@ pandora.ui.editor = function(data) {
             censoredIcon: pandora.site.cantPlay.icon,
             censoredTooltip: Ox._(pandora.site.cantPlay.text),
             clickLink: pandora.clickLink,
+            confirmDeleteDialog: confirmDeleteDialog,
             cuts: data.cuts || [],
             duration: data.duration,
             enableDownload: pandora.hasCapability('canDownloadVideo') >= data.rightslevel || data.editable,
@@ -442,6 +443,44 @@ pandora.ui.editor = function(data) {
 
     pandora._dontSelectResult = false;
 
+    function confirmDeleteDialog(options, callback) {
+        const subject = options.items.length == 1 ? Ox._('annotation') : Ox._('annotations')
+        const $dialog = pandora.ui.iconDialog({
+            buttons: [
+                Ox.Button({
+                        id: 'cancel',
+                        title: Ox._('Cancel')
+                    })
+                    .bindEvent({
+                        click: function() {
+                            $dialog.close();
+                        }
+                    }),
+                Ox.Button({
+                        id: 'delete',
+                        title: Ox._('Delete')
+                    })
+                    .bindEvent({
+                        click: function() {
+                            $dialog.close();
+                            callback()
+                        }
+                    })
+            ],
+            content: Ox._(
+                'Are you sure you want delete {0} {1}',
+                [options.items.length, subject]
+            ),
+            height: 96,
+            keys: {enter: 'delete', escape: 'cancel'},
+            title: Ox._(
+                'Delete {0} {1}', [options.items.length, subject]
+            )
+        });
+        $dialog.open()
+        return $dialog
+    }
+
     function getAnnotationById(id) {
         var annotation
         data.annotations.forEach(layer => {