add json editor to theme editor

This commit is contained in:
hay-kot 2021-05-05 09:49:27 -08:00
commit 1018ed28fd

View file

@ -92,26 +92,36 @@
:label="$t('settings.theme.theme-name')" :label="$t('settings.theme.theme-name')"
v-model="defaultData.name" v-model="defaultData.name"
:rules="[rules.required]" :rules="[rules.required]"
:append-outer-icon="jsonEditor ? 'mdi-form-select' : 'mdi-code-braces'"
@click:append-outer="jsonEditor = !jsonEditor"
></v-text-field> ></v-text-field>
<v-row dense dflex wrap justify-content-center v-if="defaultData.colors"> <v-row dense dflex wrap justify-content-center v-if="defaultData.colors && !jsonEditor">
<v-col cols="12" sm="6" v-for="(_, key) in defaultData.colors" :key="key"> <v-col cols="12" sm="6" v-for="(_, key) in defaultData.colors" :key="key">
<ColorPickerDialog :button-text="labels[key]" v-model="defaultData.colors[key]" /> <ColorPickerDialog :button-text="labels[key]" v-model="defaultData.colors[key]" />
</v-col> </v-col>
</v-row> </v-row>
<VJsoneditor @error="logError()" v-else v-model="defaultData" height="250px" :options="jsonEditorOptions" />
</v-card-text> </v-card-text>
</BaseDialog> </BaseDialog>
</div> </div>
</template> </template>
<script> <script>
import VJsoneditor from "v-jsoneditor";
import { api } from "@/api"; import { api } from "@/api";
import ColorPickerDialog from "@/components/FormHelpers/ColorPickerDialog"; import ColorPickerDialog from "@/components/FormHelpers/ColorPickerDialog";
import BaseDialog from "@/components/UI/Dialogs/BaseDialog"; import BaseDialog from "@/components/UI/Dialogs/BaseDialog";
import StatCard from "@/components/UI/StatCard"; import StatCard from "@/components/UI/StatCard";
export default { export default {
components: { StatCard, BaseDialog, ColorPickerDialog }, components: { StatCard, BaseDialog, ColorPickerDialog, VJsoneditor },
data() { data() {
return { return {
jsonEditor: true,
jsonEditorOptions: {
mode: "code",
search: false,
mainMenuBar: false,
},
availableThemes: [], availableThemes: [],
color: "accent", color: "accent",
newTheme: false, newTheme: false,