Adding Gritter Message After Second Deletion

2.5k views Asked by At

I'm trying to find out why when a user is deleted by clicking on the ajax-delete class icon and performs the deletion process it shows the gritter message after deletion however if you were to immediately delete another user afterwards it removes the previous gritter message but doesn't show another for that second deletion. Any ideas on why this could be?

EDIT: I have figured out that the issue belongs to the $.gritter.removeAll(); code line. When there is another existing notification it removes it but doesn't add the next notification.

Any ideas what I should do here?

var rowToDelete = null;
var basicTable = null;
var api_url = null;

$(document).ready(function() {});

$(document).on('click', '.ajax-delete', function(e)
{
    console.log(basicTable);
    e.preventDefault();
    //defining it like this captures and optimizing the need to cycle over the DOM more than once
    //in subsequent calls to the element specifically
    $elem = $(this);
    $parentElem = $elem.closest('tr');
    rowToDelete = $parentElem.get(0);
    api_url     = $elem.attr('href');
    runConfirmation($('td:eq(1)', $parentElem).text());
});

function runConfirmation(nameSting)
{
    $mymodal = $('#myModal');
    $('.modal-body p', $mymodal).html('Are you sure you want to delete this <strong>'+nameSting+'</strong>?');
    $mymodal.modal('show');
}

$('#myModalConfirm').on('click', function(e) {
    $.ajax({
        type: 'post',
        url: api_url,
        data: { _method: 'DELETE' },
        dataType: 'json',
        success: function(response) {
            $.gritter.removeAll();
            var className = 'growl-danger';
            if (response.status == "SUCCESS") {
                className = 'growl-success';
                basicTable.fnDeleteRow(basicTable.fnGetPosition(rowToDelete));
                rowToDelete = null;
                api_url     = null;
            }
            $.gritter.add({
                position: 'top-right',
                fade_in_speed: 'medium',
                fade_out_speed: 2000,
                time: 6000,
                title: response.title,
                text: response.message,
                class_name: className,
                sticky: false
            });
        }
    });

    $('#myModal').modal('hide');
});
1

There are 1 answers

0
faisale On

Replace the following line:

$.gritter.removeAll();

With

$('.gritter-item-wrapper').remove();