Commit 1ff9302f4d55a60ca26350b06ffc33aee70ae0fd
1 parent
e96555e7
Exists in
master
and in
39 other branches
Not collapsing message if clicking in a btn or a
Showing
2 changed files
with
30 additions
and
26 deletions
Show diff stats
src/accounts/templatetags/gravatar.py
| @@ -17,4 +17,4 @@ def gravatar(email, size=80): | @@ -17,4 +17,4 @@ def gravatar(email, size=80): | ||
| 17 | 17 | ||
| 18 | email_md5 = getattr(email, 'md5', 'anonymous') | 18 | email_md5 = getattr(email, 'md5', 'anonymous') |
| 19 | 19 | ||
| 20 | - return u'<img src="http://www.gravatar.com/avatar/{}?s={}&d=mm" height="{}px" width="{}px">'.format(email_md5, size, size, size) | 20 | + return u'<img src="http://www.gravatar.com/avatar/{}?s={}&d=mm" height="{}px" width="{}px" />'.format(email_md5, size, size, size) |
src/super_archives/templates/message-thread.html
| @@ -31,53 +31,57 @@ | @@ -31,53 +31,57 @@ | ||
| 31 | 31 | ||
| 32 | if (jqXHR.status === 403) { | 32 | if (jqXHR.status === 403) { |
| 33 | msg = " {% trans 'You must login before voting.' %}" | 33 | msg = " {% trans 'You must login before voting.' %}" |
| 34 | - } else { | ||
| 35 | - return; | ||
| 36 | - } | ||
| 37 | - | ||
| 38 | - $('#alert-js #alert-message').html(msg); | ||
| 39 | - $('#alert-js').show(); | ||
| 40 | - scroll(0, 0); | ||
| 41 | - } | ||
| 42 | - | ||
| 43 | - function get_vote_ajax_dict(msg_id, method, context) { | ||
| 44 | - var csrftoken = $.cookie('csrftoken'); | ||
| 45 | 34 | ||
| 46 | - return { | ||
| 47 | - url: "/api/message/" + msg_id + "/vote", | ||
| 48 | - type: method, | ||
| 49 | - context: context, | ||
| 50 | - beforeSend: function(xhr, settings) { | ||
| 51 | - xhr.setRequestHeader("X-CSRFToken", csrftoken); | ||
| 52 | - } | 35 | + $('#alert-js #alert-message').html(msg); |
| 36 | + $('#alert-js').show(); | ||
| 37 | + scroll(0, 0); | ||
| 53 | } | 38 | } |
| 39 | + | ||
| 54 | } | 40 | } |
| 55 | 41 | ||
| 56 | - function vote() { | 42 | + function vote(event) { |
| 57 | var $ajax; | 43 | var $ajax; |
| 58 | var $btn = $(this); | 44 | var $btn = $(this); |
| 59 | var $msg = $(this).parents('.email-message'); | 45 | var $msg = $(this).parents('.email-message'); |
| 60 | 46 | ||
| 47 | + var method; | ||
| 48 | + var csrftoken = $.cookie('csrftoken'); | ||
| 61 | var msg_id = $msg.attr('id').split('-')[1]; | 49 | var msg_id = $msg.attr('id').split('-')[1]; |
| 62 | 50 | ||
| 63 | - $btn.button('loading'); | ||
| 64 | if($btn.hasClass('btn-default')) { | 51 | if($btn.hasClass('btn-default')) { |
| 65 | - $ajax = $.ajax(get_vote_ajax_dict(msg_id, 'PUT', $btn[0])); | 52 | + method = 'PUT'; |
| 66 | } else { | 53 | } else { |
| 67 | - $ajax = $.ajax(get_vote_ajax_dict(msg_id, 'DELETE', $btn[0])); | 54 | + method = 'DELETE'; |
| 68 | } | 55 | } |
| 56 | + | ||
| 69 | console.debug('trying to vote'); | 57 | console.debug('trying to vote'); |
| 58 | + $btn.button('loading'); | ||
| 59 | + $ajax = $.ajax({ | ||
| 60 | + url: "/api/message/" + msg_id + "/vote", | ||
| 61 | + type: method, | ||
| 62 | + context: $btn.get(0), | ||
| 63 | + beforeSend: function(xhr, settings) { | ||
| 64 | + xhr.setRequestHeader("X-CSRFToken", csrftoken); | ||
| 65 | + } | ||
| 66 | + }); | ||
| 70 | $ajax.done(vote_done_callback); | 67 | $ajax.done(vote_done_callback); |
| 71 | $ajax.fail(vote_fail_callback); | 68 | $ajax.fail(vote_fail_callback); |
| 72 | } | 69 | } |
| 73 | 70 | ||
| 74 | // Binding functions | 71 | // Binding functions |
| 75 | $(function() { | 72 | $(function() { |
| 76 | - $(".panel-heading").bind('click', function() { | 73 | + $(".panel-heading").on('click', function(event) { |
| 74 | + var $target = $(event.target); | ||
| 75 | + // Do not collapse the the message if the clicked element (target) | ||
| 76 | + // is a button or a link | ||
| 77 | + if($target.hasClass('btn') || $target.is('a') || $target.parent().is('a')) { | ||
| 78 | + return; | ||
| 79 | + } | ||
| 80 | + | ||
| 77 | $(this).next('.panel-collapse').collapse('toggle'); | 81 | $(this).next('.panel-collapse').collapse('toggle'); |
| 78 | }); | 82 | }); |
| 79 | 83 | ||
| 80 | - $('.vote.btn', this).bind('click', vote); | 84 | + $('.vote.btn', this).on('click', vote); |
| 81 | }); | 85 | }); |
| 82 | 86 | ||
| 83 | </script> | 87 | </script> |
| @@ -100,7 +104,7 @@ | @@ -100,7 +104,7 @@ | ||
| 100 | {% spaceless %} | 104 | {% spaceless %} |
| 101 | <div class="email-message" id="msg-{{ email.id }}"> | 105 | <div class="email-message" id="msg-{{ email.id }}"> |
| 102 | <div class="panel panel-default"> | 106 | <div class="panel panel-default"> |
| 103 | - <div class="panel-heading clearfix" data-toggle="collapse"> | 107 | + <div class="panel-heading clearfix"> |
| 104 | <div class="col-lg-6 col-md-6 col-sm-6"> | 108 | <div class="col-lg-6 col-md-6 col-sm-6"> |
| 105 | {% if profile_link %} | 109 | {% if profile_link %} |
| 106 | <a href="{{ profile_link }}"> | 110 | <a href="{{ profile_link }}"> |