also update viewer info when updating counters

This commit is contained in:
codl 2017-08-12 12:26:35 +02:00
parent 578ffb750e
commit ed574c530f
No known key found for this signature in database
GPG Key ID: 6CD7C8891ED1233A
3 changed files with 22 additions and 15 deletions

View File

@ -57,7 +57,7 @@
backoff_level += 1;
backoff_level = Math.min(backoff_level, 5);
});
promise.then(fetch_counters).then(update_counters);
promise.then(fetch_viewer).then(update_viewer);
// remove server-rendered banner
let banner = settings_section.querySelector('.banner');
@ -109,7 +109,7 @@
// silently send_settings in case the user changed settings while the page was loading
send_settings(get_all_inputs());
function fetch_counters(){
function fetch_viewer(){
return fetch('/api/viewer', {
credentials: 'same-origin',
})
@ -117,10 +117,12 @@
.then(resp => resp.json());
}
function update_counters(counters){
document.querySelector('#post-count').textContent = counters.post_count;
document.querySelector('#eligible-estimate').textContent = counters.eligible_for_delete_estimate;
function update_viewer(viewer){
document.querySelector('#post-count').textContent = viewer.post_count;
document.querySelector('#eligible-estimate').textContent = viewer.eligible_for_delete_estimate;
document.querySelector('#display-name').textContent = viewer.display_name;
document.querySelector('#avatar').src = viewer.avatar_url;
}
setInterval(() => fetch_counters().then(update_counters), 1000 * 20)
setInterval(() => fetch_viewer().then(update_viewer), 1000 * 20)
})();

View File

@ -112,14 +112,15 @@ def upload_tweet_archive():
@app.route('/settings', methods=('POST',))
@require_auth
def settings():
for attr in lib.settings.attrs:
try:
viewer = get_viewer()
try:
for attr in lib.settings.attrs:
if attr in request.form:
setattr(g.viewer.account, attr, request.form[attr])
except ValueError:
return redirect(url_for('index', settings_error=''))
setattr(viewer, attr, request.form[attr])
db.session.commit()
except ValueError:
return 400
db.session.commit()
return redirect(url_for('index', settings_saved=''))
@ -184,5 +185,9 @@ def api_viewer_post_counts():
return jsonify(
post_count=viewer.post_count(),
eligible_for_delete_estimate=viewer.estimate_eligible_for_delete(),
# more? maybe later
display_name=viewer.display_name,
screen_name=viewer.screen_name,
avatar_url=viewer.avatar_url,
id=viewer.id,
service=viewer.service,
)

View File

@ -7,8 +7,8 @@
<section class=viewer>
<p>Hello,
<img class=avatar src="{{g.viewer.account.avatar_url}}"/>
{{g.viewer.account.display_name}}!
<img class=avatar id=avatar src="{{g.viewer.account.avatar_url}}"/>
<span id='display-name'>{{g.viewer.account.display_name}}</span>!
<a href="{{url_for('logout')}}">Log out</a>
</p>
{% set enabled_disabled = "enabled" if g.viewer.account.policy_enabled else "disabled" %}