diff --git a/frontend/src/components/settings/AceEditorTheme.vue b/frontend/src/components/settings/AceEditorTheme.vue
new file mode 100644
index 00000000..09efe48b
--- /dev/null
+++ b/frontend/src/components/settings/AceEditorTheme.vue
@@ -0,0 +1,24 @@
+
+
+
+
+
diff --git a/frontend/src/i18n/en.json b/frontend/src/i18n/en.json
index 1360bbec..4d196d00 100644
--- a/frontend/src/i18n/en.json
+++ b/frontend/src/i18n/en.json
@@ -154,6 +154,7 @@
"video": "Video"
},
"settings": {
+ "aceEditorTheme": "Ace editor theme",
"admin": "Admin",
"administrator": "Administrator",
"allowCommands": "Execute commands",
diff --git a/frontend/src/views/settings/Profile.vue b/frontend/src/views/settings/Profile.vue
index c677092f..1b079473 100644
--- a/frontend/src/views/settings/Profile.vue
+++ b/frontend/src/views/settings/Profile.vue
@@ -24,6 +24,13 @@
class="input input--block"
v-model:locale="locale"
>
+
+
{{ t("settings.aceEditorTheme") }}
+
@@ -81,6 +88,7 @@
import { useAuthStore } from "@/stores/auth";
import { useLayoutStore } from "@/stores/layout";
import { users as api } from "@/api";
+import AceEditorTheme from "@/components/settings/AceEditorTheme.vue";
import Languages from "@/components/settings/Languages.vue";
import { computed, inject, onMounted, ref } from "vue";
import { useI18n } from "vue-i18n";
@@ -98,6 +106,7 @@ const hideDotfiles = ref(false);
const singleClick = ref(false);
const dateFormat = ref(false);
const locale = ref("");
+const aceEditorTheme = ref("");
const passwordClass = computed(() => {
const baseClass = "input input--block";
@@ -113,13 +122,14 @@ const passwordClass = computed(() => {
return `${baseClass} input--red`;
});
-onMounted(() => {
+onMounted(async () => {
layoutStore.loading = true;
if (authStore.user === null) return false;
locale.value = authStore.user.locale;
hideDotfiles.value = authStore.user.hideDotfiles;
singleClick.value = authStore.user.singleClick;
dateFormat.value = authStore.user.dateFormat;
+ aceEditorTheme.value = authStore.user.aceEditorTheme;
layoutStore.loading = false;
return true;
});
@@ -163,6 +173,7 @@ const updateSettings = async (event: Event) => {
hideDotfiles: hideDotfiles.value,
singleClick: singleClick.value,
dateFormat: dateFormat.value,
+ aceEditorTheme: aceEditorTheme.value,
};
await api.update(data, [
@@ -170,6 +181,7 @@ const updateSettings = async (event: Event) => {
"hideDotfiles",
"singleClick",
"dateFormat",
+ "aceEditorTheme",
]);
authStore.updateUser(data);
$showSuccess(t("settings.settingsUpdated"));