diff --git a/pagure/api/fork.py b/pagure/api/fork.py index cf6a0a8..ce45853 100644 --- a/pagure/api/fork.py +++ b/pagure/api/fork.py @@ -777,6 +777,11 @@ def api_pull_request_add_flag(repo, requestid, username=None, namespace=None): raise pagure.exceptions.APIError( 400, error_code=APIERROR.EINVALIDREQ, errors=form.errors) + output['avatar_url'] = pagure.lib.avatar_url_from_email( + flask.g.fas_user.default_email, size=30) + + output['user'] = flask.g.fas_user.username + jsonout = flask.jsonify(output) return jsonout @@ -831,7 +836,9 @@ def api_subscribe_pull_request( :: { - "message": "User subscribed" + "message": "User subscribed", + "avatar_url": "https://image.png", + "user": "pingou" } """ # noqa diff --git a/pagure/api/issue.py b/pagure/api/issue.py index c699ab4..38da836 100644 --- a/pagure/api/issue.py +++ b/pagure/api/issue.py @@ -993,6 +993,11 @@ def api_comment_issue(repo, issueid, username=None, namespace=None): raise pagure.exceptions.APIError( 400, error_code=APIERROR.EINVALIDREQ, errors=form.errors) + output['avatar_url'] = pagure.lib.avatar_url_from_email( + flask.g.fas_user.default_email, size=30) + + output['user'] = flask.g.fas_user.username + jsonout = flask.jsonify(output) return jsonout @@ -1132,7 +1137,9 @@ def api_subscribe_issue(repo, issueid, username=None, namespace=None): :: { - "message": "User subscribed" + "message": "User subscribed", + "avatar_url": "https://image.png", + "user": "pingou" } """ # noqa diff --git a/pagure/templates/issue.html b/pagure/templates/issue.html index 3968813..36486d0 100644 --- a/pagure/templates/issue.html +++ b/pagure/templates/issue.html @@ -564,7 +564,7 @@ namespace=repo.namespace, repo=repo.name, issueid=issueid)
Subscribers - {{subscribers|count}} + {{subscribers|count}}
{% for subscriber in subscribers %} {{ + }}" title="{{ subscriber }}" id="sub-avatar-{{subscriber}}">{{ subscriber |avatar(size=30, css_class="pb-1") | safe }} {% endfor %} @@ -1216,14 +1216,22 @@ $( "#previewinmarkdown" ).click( } else { _data.status = true; } - console.log(_data); $.post( _url, _data ).done( function(data) { var _btn = $("#subcribe-btn"); + var _countlabel = $("#subscribers-count") + var _count = parseInt(_countlabel.text()) if (_btn.text() == 'Subscribe'){ _btn.text('Unsubscribe'); + _countlabel.text(_count+1) + var _html = '' + + ''; + $('#subscribers_list').prepend(_html); } else { _btn.text('Subscribe'); + _countlabel.text(_count-1); + $('#sub-avatar-'+data.user).remove(); } return false; } diff --git a/tests/test_pagure_flask_api_issue.py b/tests/test_pagure_flask_api_issue.py index 910ce64..ba8925e 100644 --- a/tests/test_pagure_flask_api_issue.py +++ b/tests/test_pagure_flask_api_issue.py @@ -3350,7 +3350,9 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, - {'message': 'You are no longer watching this issue'} + {'message': 'You are no longer watching this issue', + 'avatar_url': 'https://seccdn.libravatar.org/avatar/94bea27db4b720dc24905a1848dbd9d7a8d2c11594f88a62c9dd73009d7b408c?s=30&d=retro', + 'user': 'bar'} ) data = {} @@ -3360,7 +3362,9 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, - {'message': 'You are no longer watching this issue'} + {'message': 'You are no longer watching this issue', + 'avatar_url': 'https://seccdn.libravatar.org/avatar/94bea27db4b720dc24905a1848dbd9d7a8d2c11594f88a62c9dd73009d7b408c?s=30&d=retro', + 'user': 'bar'} ) # No change @@ -3378,7 +3382,9 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, - {'message': 'You are now watching this issue'} + {'message': 'You are now watching this issue', + 'avatar_url': 'https://seccdn.libravatar.org/avatar/94bea27db4b720dc24905a1848dbd9d7a8d2c11594f88a62c9dd73009d7b408c?s=30&d=retro', + 'user': 'bar'} ) # Subscribe - no changes @@ -3389,7 +3395,9 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, - {'message': 'You are now watching this issue'} + {'message': 'You are now watching this issue', + 'avatar_url': 'https://seccdn.libravatar.org/avatar/94bea27db4b720dc24905a1848dbd9d7a8d2c11594f88a62c9dd73009d7b408c?s=30&d=retro', + 'user': 'bar'} ) repo = pagure.lib.get_authorized_project(self.session, 'test') @@ -3406,7 +3414,9 @@ class PagureFlaskApiIssuetests(tests.SimplePagureTest): data = json.loads(output.get_data(as_text=True)) self.assertDictEqual( data, - {'message': 'You are no longer watching this issue'} + {'message': 'You are no longer watching this issue', + 'avatar_url': 'https://seccdn.libravatar.org/avatar/94bea27db4b720dc24905a1848dbd9d7a8d2c11594f88a62c9dd73009d7b408c?s=30&d=retro', + 'user': 'bar'} ) repo = pagure.lib.get_authorized_project(self.session, 'test')