platform icon indicating copy to clipboard operation
platform copied to clipboard

Confirmation before removing uploaded Attachments

Open ajaxray opened this issue 3 years ago • 1 comments

Is your feature request related to a problem? Please describe.

The upload field shows a preview of uploaded files. Also shows an (x) button to remove individual files! Also the similar preview thumbs are displayed for already uploaded Attachments. CleanShot 2021-12-19 at 04 21 52@2x

Now the problem is, if I click on the delete icon (x) of a thumb, it removes immediately. If we could display a confirmation before deleting an uploaded image, that would be great!

Describe the solution you'd like After clicking on the (x) icons, the system will ask for confirmation like "Are you sure to delete this file?" Also the message can be configurable, like:

Upload::make('upload')
    ->maxFileSize(1024)
    ->deleteConfirmation("Are you sure to delete this product image?")
;

Describe alternatives you've considered I'm stuck at this point 😓. Tried invoking dropzone confirmation by setting dictRemoveFileConfirmation, but it didn't work.

ajaxray avatar Dec 18 '21 22:12 ajaxray

Hi @tabuna , Just to let you know, I have come up with an old-school hack (that I am not liking at all 😔).

Using jQuery, just hiding the remove button and adding a new button in place of that. Onclick, removing the file with a confirmation.

$(document).ready(function() {

    $('.dz-preview .btn-remove').hide();
    $('.dz-preview').not('.dz-message')
        .append('<a href="javascript:;" class="btn-remove with-confirm" draggable="false">x</a>');
    $('.dz-preview .with-confirm').click(function (e) {
        e.stopPropagation();
        if (window.confirm('Are you sure to delete this file?')) {
            var fileId =  $(this).parent().data('file-id');
            var fileObj = Dropzone.instances[0].files.find(function(f){ return f.id == fileId; });
            console.log('Removing:', fileObj);
            Dropzone.instances[0].removeFile(fileObj);
        }
    });
});

ajaxray avatar Dec 19 '21 07:12 ajaxray