FEATURE: Allow overriding text size from a different device (#6955)

This brings the feature in line with the theme selection system
This commit is contained in:
David Taylor
2019-01-28 11:19:50 +00:00
committed by GitHub
parent 244628ed98
commit aca0b32fda
10 changed files with 56 additions and 20 deletions
@@ -126,13 +126,8 @@ export default Ember.Controller.extend(PreferencesTabController, {
this.get("model.user_option.theme_key_seq")
);
}
if (
makeTextSizeDefault ||
this.get("model.user_option.text_size") === $.cookie("text_size")
) {
$.removeCookie("text_size");
} else {
$.cookie("text_size", this.get("textSize"));
if (!makeTextSizeDefault) {
this.get("model").updateTextSizeCookie(this.get("textSize"));
}
this.homeChanged();
@@ -705,6 +705,25 @@ const User = RestModel.extend({
});
return _.uniq(titles).sort();
},
@computed("user_option.text_size_seq", "user_option.text_size")
currentTextSize(serverSeq, serverSize) {
if ($.cookie("text_size")) {
const [cookieSize, cookieSeq] = $.cookie("text_size").split("|");
if (cookieSeq >= serverSeq) {
return cookieSize;
}
}
return serverSize;
},
updateTextSizeCookie(newSize) {
const seq = this.get("user_option.text_size_seq");
$.cookie("text_size", `${newSize}|${seq}`, {
path: "/",
expires: 9999
});
}
});
@@ -4,10 +4,9 @@ export default RestrictedUserRoute.extend({
showFooter: true,
setupController(controller, user) {
const textSize = $.cookie("text_size") || user.get("user_option.text_size");
controller.setProperties({
model: user,
textSize
textSize: user.get("currentTextSize")
});
}
});