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 }}"> |