diff --git a/app/assets/javascripts/discourse/controllers/avatar-selector.js.es6 b/app/assets/javascripts/discourse/controllers/avatar-selector.js.es6 index d953df32dd..df3dbe1420 100644 --- a/app/assets/javascripts/discourse/controllers/avatar-selector.js.es6 +++ b/app/assets/javascripts/discourse/controllers/avatar-selector.js.es6 @@ -61,7 +61,11 @@ export default Ember.Controller.extend(ModalFunctionality, { this.set("gravatarFailed", true); } else { this.set("gravatarFailed", false); - this.get("user").setProperties(result); + + this.get("user").setProperties({ + gravatar_avatar_upload_id: result.gravatar_upload_id, + gravatar_avatar_template: result.gravatar_avatar_template + }); } }) .finally(() => this.set("gravatarRefreshDisabled", false)); diff --git a/app/assets/javascripts/discourse/templates/modal/avatar-selector.hbs b/app/assets/javascripts/discourse/templates/modal/avatar-selector.hbs index 0fb4bc59d3..62aed95204 100644 --- a/app/assets/javascripts/discourse/templates/modal/avatar-selector.hbs +++ b/app/assets/javascripts/discourse/templates/modal/avatar-selector.hbs @@ -15,7 +15,13 @@
{{radio-button id="gravatar" name="avatar" value="gravatar" selection=selected}} - {{d-button action="refreshGravatar" title="user.change_avatar.refresh_gravatar_title" disabled=gravatarRefreshDisabled icon="refresh"}} + + {{d-button action="refreshGravatar" + title="user.change_avatar.refresh_gravatar_title" + disabled=gravatarRefreshDisabled + icon="refresh" + class="avatar-selector-refresh-gravatar"}} + {{#if gravatarFailed}}

{{I18n 'user.change_avatar.gravatar_failed'}}

{{/if}} diff --git a/test/javascripts/acceptance/preferences-test.js.es6 b/test/javascripts/acceptance/preferences-test.js.es6 index f278084e29..f838c260c5 100644 --- a/test/javascripts/acceptance/preferences-test.js.es6 +++ b/test/javascripts/acceptance/preferences-test.js.es6 @@ -1,4 +1,6 @@ import { acceptance } from "helpers/qunit-helpers"; +import User from "discourse/models/user"; + acceptance("User Preferences", { loggedIn: true, pretend(server, helper) { @@ -24,6 +26,13 @@ acceptance("User Preferences", { success: true }); }); + + server.post("/user_avatar/eviltrout/refresh_gravatar.json", () => { + return helper.response({ + gravatar_upload_id: 6543, + gravatar_avatar_template: "something" + }); + }); } }); @@ -172,6 +181,14 @@ QUnit.test("default avatar selector", async assert => { await click(".pref-avatar .btn"); assert.ok(exists(".avatar-choice", "opens the avatar selection modal")); + + await click(".avatar-selector-refresh-gravatar"); + + assert.equal( + User.currentProp("gravatar_avatar_upload_id"), + 6543, + "it should set the gravatar_avatar_upload_id property" + ); }); acceptance("Avatar selector when selectable avatars is enabled", {