mirror of
https://github.com/discourse/discourse.git
synced 2024-11-29 05:33:44 +08:00
7a3c541077
It was a dropdown to provide choices of color schemes, and only one scheme could be shown. With this commit, multiple color scheme previews can be displayed on one page at the same time, making admins choose color schemes more easily. Theme preview windows are shrinked. Imported default color schemes. Co-Authored-By: Misaka 0x4e21 <misaka4e21@gmail.com>
68 lines
1.6 KiB
JavaScript
68 lines
1.6 KiB
JavaScript
import Step from "wizard/models/step";
|
|
import WizardField from "wizard/models/wizard-field";
|
|
import { ajax } from "wizard/lib/ajax";
|
|
import computed from "ember-addons/ember-computed-decorators";
|
|
|
|
const Wizard = Ember.Object.extend({
|
|
@computed("steps.length") totalSteps: length => length,
|
|
|
|
getTitle() {
|
|
const titleStep = this.get("steps").findBy("id", "forum-title");
|
|
if (!titleStep) {
|
|
return;
|
|
}
|
|
return titleStep.get("fieldsById.title.value");
|
|
},
|
|
|
|
getLogoUrl() {
|
|
const logoStep = this.get("steps").findBy("id", "logos");
|
|
if (!logoStep) {
|
|
return;
|
|
}
|
|
return logoStep.get("fieldsById.logo_url.value");
|
|
},
|
|
|
|
// A bit clunky, but get the current colors from the appropriate step
|
|
getCurrentColors(schemeId) {
|
|
const colorStep = this.get("steps").findBy("id", "colors");
|
|
if (!colorStep) {
|
|
return;
|
|
}
|
|
|
|
const themeChoice = colorStep.get("fieldsById.theme_previews");
|
|
if (!themeChoice) {
|
|
return;
|
|
}
|
|
|
|
const themeId = schemeId ? schemeId : themeChoice.get("value");
|
|
if (!themeId) {
|
|
return;
|
|
}
|
|
|
|
const choices = themeChoice.get("choices");
|
|
if (!choices) {
|
|
return;
|
|
}
|
|
|
|
const option = choices.findBy("id", themeId);
|
|
if (!option) {
|
|
return;
|
|
}
|
|
|
|
return option.data.colors;
|
|
}
|
|
});
|
|
|
|
export function findWizard() {
|
|
return ajax({ url: "/wizard.json" }).then(response => {
|
|
const wizard = response.wizard;
|
|
wizard.steps = wizard.steps.map(step => {
|
|
const stepObj = Step.create(step);
|
|
stepObj.fields = stepObj.fields.map(f => WizardField.create(f));
|
|
return stepObj;
|
|
});
|
|
|
|
return Wizard.create(wizard);
|
|
});
|
|
}
|