X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/73ce961f14509aabfa26536f847afd28111029c6..462d84ea8718cd3ca1112fe11c2120a0f20f475f:/wolnelektury/static/js/dialogs.js?ds=inline diff --git a/wolnelektury/static/js/dialogs.js b/wolnelektury/static/js/dialogs.js index bf9d94b54..0df6508eb 100755 --- a/wolnelektury/static/js/dialogs.js +++ b/wolnelektury/static/js/dialogs.js @@ -7,15 +7,11 @@ $window.attr("id", this.id + "-window"); $('body').append($window); + var $trigger = $(this) var trigger = '#' + this.id; - var href = $(this).attr('href'); - if (href.search('\\?') != -1) - href += '&ajax=1'; - else href += '?ajax=1'; - $window.jqm({ - ajax: href, + ajax: '@href', ajaxText: '
' + gettext("Loading") + '
' + gettext("Loading") + '
');
+ },
+ error: function(response) {
+ if (response.status == 403)
+ login_and_retry($form);
+ },
+ success: function(response) {
+ if (response.success) {
+ callback = ajax_form_callbacks[$form.attr('data-callback')];
+ callback && callback($form, response);
+
+ } else {
+ $('span.error', $form).remove();
+ $.each(response.errors, function(id, errors) {
+ $('#id_' + id, $form).before('' + errors[0] + '');
+ });
+ $('input[type=submit]', $form).removeAttr('disabled');
+ $('img', $form).remove();
+ }
+ }
+ });
+ });
+
+
+ var update_star = function($elem, response) {
+ /* updates the star after successful ajax */
+ var $star = $elem.closest('.star');
+ if (response.like) {
+ $star.addClass('like');
+ $star.removeClass('unlike');
+ }
+ else {
+ $star.addClass('unlike');
+ $star.removeClass('like');
+ }
+ };
+
+ var ajax_form_callbacks = {
+ 'social-like-book': update_star
+ };
+
+ var ajaxable_callbacks = {
+ 'social-book-sets': update_star
+ };
+
+
});
})(jQuery)