Commit 1ff9302f4d55a60ca26350b06ffc33aee70ae0fd

Authored by Sergio Oliveira
1 parent e96555e7

Not collapsing message if clicking in a btn or a

src/accounts/templatetags/gravatar.py
... ... @@ -17,4 +17,4 @@ def gravatar(email, size=80):
17 17  
18 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 31  
32 32 if (jqXHR.status === 403) {
33 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 43 var $ajax;
58 44 var $btn = $(this);
59 45 var $msg = $(this).parents('.email-message');
60 46  
  47 + var method;
  48 + var csrftoken = $.cookie('csrftoken');
61 49 var msg_id = $msg.attr('id').split('-')[1];
62 50  
63   - $btn.button('loading');
64 51 if($btn.hasClass('btn-default')) {
65   - $ajax = $.ajax(get_vote_ajax_dict(msg_id, 'PUT', $btn[0]));
  52 + method = 'PUT';
66 53 } else {
67   - $ajax = $.ajax(get_vote_ajax_dict(msg_id, 'DELETE', $btn[0]));
  54 + method = 'DELETE';
68 55 }
  56 +
69 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 67 $ajax.done(vote_done_callback);
71 68 $ajax.fail(vote_fail_callback);
72 69 }
73 70  
74 71 // Binding functions
75 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 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 87 </script>
... ... @@ -100,7 +104,7 @@
100 104 {% spaceless %}
101 105 <div class="email-message" id="msg-{{ email.id }}">
102 106 <div class="panel panel-default">
103   - <div class="panel-heading clearfix" data-toggle="collapse">
  107 + <div class="panel-heading clearfix">
104 108 <div class="col-lg-6 col-md-6 col-sm-6">
105 109 {% if profile_link %}
106 110 <a href="{{ profile_link }}">
... ...