FEATURE: theme selection is now global per-user
This commit is contained in:
@@ -2,7 +2,6 @@ import PreferencesTabController from "discourse/mixins/preferences-tab-controlle
|
||||
import { default as computed, observes } from "ember-addons/ember-computed-decorators";
|
||||
import { listThemes, previewTheme } from 'discourse/lib/theme-selector';
|
||||
import { popupAjaxError } from 'discourse/lib/ajax-error';
|
||||
import { selectDefaultTheme } from 'discourse/lib/theme-selector';
|
||||
|
||||
export default Ember.Controller.extend(PreferencesTabController, {
|
||||
|
||||
@@ -12,7 +11,8 @@ export default Ember.Controller.extend(PreferencesTabController, {
|
||||
'dynamic_favicon',
|
||||
'enable_quoting',
|
||||
'disable_jump_reply',
|
||||
'automatically_unpin_topics'
|
||||
'automatically_unpin_topics',
|
||||
'theme_key'
|
||||
],
|
||||
|
||||
preferencesController: Ember.inject.controller('preferences'),
|
||||
@@ -26,10 +26,9 @@ export default Ember.Controller.extend(PreferencesTabController, {
|
||||
return listThemes(this.site);
|
||||
}.property(),
|
||||
|
||||
@observes("selectedTheme")
|
||||
@observes("model.user_option.theme_key")
|
||||
themeKeyChanged() {
|
||||
let key = this.get("selectedTheme");
|
||||
this.get('preferencesController').set('selectedTheme', key);
|
||||
let key = this.get("model.user_option.theme_key");
|
||||
previewTheme(key);
|
||||
},
|
||||
|
||||
@@ -38,7 +37,6 @@ export default Ember.Controller.extend(PreferencesTabController, {
|
||||
this.set('saved', false);
|
||||
return this.get('model').save(this.get('saveAttrNames')).then(() => {
|
||||
this.set('saved', true);
|
||||
selectDefaultTheme(this.get('selectedTheme'));
|
||||
}).catch(popupAjaxError);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,14 +13,6 @@ export function currentThemeKey() {
|
||||
return themeKey;
|
||||
}
|
||||
|
||||
export function selectDefaultTheme(key) {
|
||||
if (key) {
|
||||
$.cookie('theme_key', key, {path: '/', expires: 9999});
|
||||
} else {
|
||||
$.cookie('theme_key', null, {path: '/', expires: 1});
|
||||
}
|
||||
}
|
||||
|
||||
export function refreshCSS(node, hash, newHref, options) {
|
||||
|
||||
let $orig = $(node);
|
||||
|
||||
@@ -242,7 +242,8 @@ const User = RestModel.extend({
|
||||
'auto_track_topics_after_msecs',
|
||||
'notification_level_when_replying',
|
||||
'like_notification_frequency',
|
||||
'include_tl0_in_digests'
|
||||
'include_tl0_in_digests',
|
||||
'theme_key'
|
||||
];
|
||||
|
||||
if (fields) {
|
||||
|
||||
@@ -1,11 +1,9 @@
|
||||
import RestrictedUserRoute from "discourse/routes/restricted-user";
|
||||
import { currentThemeKey } from 'discourse/lib/theme-selector';
|
||||
|
||||
export default RestrictedUserRoute.extend({
|
||||
setupController(controller, user) {
|
||||
controller.setProperties({
|
||||
model: user,
|
||||
selectedTheme: $.cookie('theme_key') || currentThemeKey()
|
||||
model: user
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<div class="control-group theme">
|
||||
<label class="control-label">{{i18n 'user.theme'}}</label>
|
||||
<div class="controls">
|
||||
{{combo-box content=userSelectableThemes value=selectedTheme}}
|
||||
{{combo-box content=userSelectableThemes value=model.user_option.theme_key}}
|
||||
</div>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
Reference in New Issue
Block a user