$(document).on "click", "button[name=ab-smile]", -> btn = $(this) aid = btn[0].dataset.aId action = btn[0].dataset.action count = Number $("span#ab-smile-count-#{aid}").html() btn[0].dataset.loadingText = "<i class=\"fa fa-fw fa-meh-o fa-spin\"></i> <span id=\"ab-smile-count-#{aid}\">#{count}</span>" btn.button "loading" target_url = switch action when 'smile' count++ '/ajax/create_smile' when 'unsmile' count-- '/ajax/destroy_smile' success = false $.ajax url: target_url type: 'POST' data: id: aid success: (data, status, jqxhr) -> success = data.success if success $("span#ab-smile-count-#{aid}").html(count) showNotification data.message, data.success error: (jqxhr, status, error) -> console.log jqxhr, status, error showNotification translate('frontend.error.message'), false complete: (jqxhr, status) -> btn.button "reset" window.setTimeout -> if success switch action when 'smile' btn[0].dataset.action = 'unsmile' btn.html "<i class=\"fa fa-fw fa-frown-o\"></i> <span id=\"ab-smile-count-#{aid}\">#{count}</span>" when 'unsmile' btn[0].dataset.action = 'smile' btn.html "<i class=\"fa fa-fw fa-smile-o\"></i> <span id=\"ab-smile-count-#{aid}\">#{count}</span>" , 20