This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
import { onMounted, ref, watch } from 'vue';
|
import { onMounted, ref, watch } from 'vue';
|
||||||
import { AddContextMenu, HideContextMenu } from '@/services/ContextMenu';
|
import { AddContextMenu, HideContextMenu } from '@/services/ContextMenu';
|
||||||
const props = defineProps(['options', 'onselect', 'selected']);
|
const props = defineProps(['options', 'onselect', 'selected', 'keyFunc']);
|
||||||
const options = props.options;
|
const options = props.options;
|
||||||
const selectCallback = props.onselect;
|
const selectCallback = props.onselect;
|
||||||
const initialSelect = props.selected;
|
const initialSelect = props.selected;
|
||||||
@@ -10,19 +10,23 @@ const dropdown = ref(null);
|
|||||||
const selected = ref(initialSelect);
|
const selected = ref(initialSelect);
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
|
if(props.keyFunc == undefined) props.keyFunc = (option) => option;
|
||||||
|
else selected.value = props.keyFunc(initialSelect);
|
||||||
|
|
||||||
let context = [];
|
let context = [];
|
||||||
if(props.selected == undefined) selected.value = "undefined";
|
if(props.selected == undefined) selected.value = "undefined";
|
||||||
watch(() => props.selected, () => {
|
watch(() => props.selected, () => {
|
||||||
selected.value = props.selected;
|
selected.value = props.keyFunc(props.selected);
|
||||||
});
|
});
|
||||||
options.forEach(name => {
|
options.forEach(obj => {
|
||||||
|
const name = props.keyFunc(obj);
|
||||||
context.push({
|
context.push({
|
||||||
icon: selected.value == name ? 'icons/iconoir/regular/check.svg' : false,
|
icon: selected.value == name ? 'icons/iconoir/regular/check.svg' : false,
|
||||||
name,
|
name,
|
||||||
action: () => {
|
action: () => {
|
||||||
HideContextMenu();
|
HideContextMenu();
|
||||||
selected.value = name;
|
selected.value = name;
|
||||||
if(selectCallback) selectCallback(name);
|
if(selectCallback) selectCallback(obj);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -55,12 +55,8 @@ function EditProfile(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
function EditSettings(){
|
function EditSettings(){
|
||||||
ClearWindow({type: 'main_menu'});
|
CreateChildWindow(GetFirstWindowId('main_menu'), 'settings', {
|
||||||
CreateWindow('settings', {
|
user: GetUser()
|
||||||
id: 'settings',
|
|
||||||
type: 'settings',
|
|
||||||
title: 'settings.title',
|
|
||||||
back: () => { ClearWindow({type: 'settings'}); CreateWindow({type: 'main_menu'}); }
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ let id = data.id;
|
|||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
Top(wrapper);
|
Top(wrapper);
|
||||||
SetupHandle(id, handle);
|
SetupHandle(id, handle);
|
||||||
SetSize(id, {width: 500, height: 460});
|
SetSize(id, {width: 580, height: 760});
|
||||||
ResetPosition(id, "center");
|
ResetPosition(id, "center");
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -13,6 +13,14 @@ const wrapper = ref(null);
|
|||||||
const props = defineProps(['data']);
|
const props = defineProps(['data']);
|
||||||
const data = props.data;
|
const data = props.data;
|
||||||
|
|
||||||
|
const { locales, setLocale, locale } = useI18n();
|
||||||
|
|
||||||
|
const changeLocale = (lang) => {
|
||||||
|
console.log(lang);
|
||||||
|
setLocale(lang.code);
|
||||||
|
SetUserSetting('lang', lang.code);
|
||||||
|
}
|
||||||
|
|
||||||
const id = data.id;
|
const id = data.id;
|
||||||
|
|
||||||
const rows = ref([{id: "account-settings", value: "settings.tabs.account-settings"}]);
|
const rows = ref([{id: "account-settings", value: "settings.tabs.account-settings"}]);
|
||||||
@@ -23,17 +31,10 @@ const langSelector = ref(null);
|
|||||||
const currentLanguage = ref("");
|
const currentLanguage = ref("");
|
||||||
*/
|
*/
|
||||||
onBeforeMount(() => {
|
onBeforeMount(() => {
|
||||||
/*
|
|
||||||
let codes = {
|
|
||||||
"en-US": "English",
|
|
||||||
"es-ES": "Spanish",
|
|
||||||
"ca": "Catalan"
|
|
||||||
}
|
|
||||||
GetUserSetting('lang').then(value => {
|
GetUserSetting('lang').then(value => {
|
||||||
currentLanguage.value = codes[value ?? 'en']
|
currentLanguage.value = codes[value ?? 'en']
|
||||||
console.log(currentLanguage.value)
|
console.log(currentLanguage.value)
|
||||||
});
|
});
|
||||||
*/
|
|
||||||
if(GetUser().admin) rows.value.push({
|
if(GetUser().admin) rows.value.push({
|
||||||
id: "site-administration",
|
id: "site-administration",
|
||||||
value: "settings.tabs.site-administration"
|
value: "settings.tabs.site-administration"
|
||||||
@@ -68,22 +69,8 @@ function OpenManageAccounts(){
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
function OpenManagePlugins(){
|
const getLocaleName = (locale) => {
|
||||||
ClearWindow('settings');
|
return locale.name;
|
||||||
CreateWindow('plugin_management', {
|
|
||||||
type: 'plugin_management',
|
|
||||||
title: 'settings.site-administration.manage-plugins.title',
|
|
||||||
id: 'plugin-management',
|
|
||||||
back: () => {
|
|
||||||
ClearWindow('plugin-management')
|
|
||||||
CreateWindow('settings', {
|
|
||||||
id: 'settings',
|
|
||||||
type: 'settings',
|
|
||||||
title: 'settings.title',
|
|
||||||
back: () => { ClearWindow('settings'); CreateWindow('main_menu'); }
|
|
||||||
});
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
@@ -98,17 +85,14 @@ function OpenManagePlugins(){
|
|||||||
<template #account-settings>
|
<template #account-settings>
|
||||||
<div class="form-container">
|
<div class="form-container">
|
||||||
<div class="form-element">
|
<div class="form-element">
|
||||||
<label>{{ $t('settings.account.language') }}</label>
|
<label>{{ $t('settings.account-settings.language') }}</label>
|
||||||
|
<Dropdown :options="locales" :keyFunc="getLocaleName" :onselect="changeLocale" :selected="locale"></Dropdown>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<template #site-administration>
|
<template #site-administration>
|
||||||
<div class="form-element centered">
|
<div class="form-element centered">
|
||||||
<button v-on:click.prevent="OpenManageAccounts">{{ $t('settings.site-administration.manage-accounts-button') }}</button>
|
<button v-on:click.prevent="OpenManageAccounts">{{ $t('settings.site-administration.manage-accounts') }}</button>
|
||||||
</div>
|
|
||||||
<div class="form-element centered">
|
|
||||||
<button v-on:click.prevent="OpenManagePlugins">{{ $t('settings.site-administration.manage-plugins-button') }}</button>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</Tabs>
|
</Tabs>
|
||||||
|
|||||||
@@ -1 +1,74 @@
|
|||||||
{}
|
{
|
||||||
|
"windows": {
|
||||||
|
"login": "Inicia sessió",
|
||||||
|
"register": "Registra't",
|
||||||
|
"main-menu": "Dragonroll",
|
||||||
|
"example": "Finestra d'exemple",
|
||||||
|
"edit-profile": "Edita el perfil",
|
||||||
|
"settings": "Configuració"
|
||||||
|
},
|
||||||
|
"login": {
|
||||||
|
"username": "Usuari o correu electrònic",
|
||||||
|
"username-placeholder": "Introdueix el teu usuari o correu electrònic...",
|
||||||
|
"password": "Contrasenya",
|
||||||
|
"password-placeholder": "Introdueix la teva contrasenya...",
|
||||||
|
"log-in": "Inicia sessió",
|
||||||
|
"no-account": "No tens un compte?",
|
||||||
|
"register": "Registra't",
|
||||||
|
"errors": {
|
||||||
|
"invalid-credentials": "Usuari/correu o contrasenya incorrectes.",
|
||||||
|
"params": "Si us plau, introdueix usuari/correu i contrasenya."
|
||||||
|
},
|
||||||
|
"success": "Inici de sessió correcte!"
|
||||||
|
},
|
||||||
|
"register": {
|
||||||
|
"name": "Nom",
|
||||||
|
"name-placeholder": "Introdueix el teu nom...",
|
||||||
|
"email": "Correu electrònic",
|
||||||
|
"email-placeholder": "Introdueix el teu correu electrònic...",
|
||||||
|
"username": "Usuari",
|
||||||
|
"username-placeholder": "Introdueix el teu nom d'usuari...",
|
||||||
|
"password": "Contrasenya",
|
||||||
|
"password-placeholder": "Introdueix la teva contrasenya...",
|
||||||
|
"confirm-password": "Confirma la contrasenya",
|
||||||
|
"confirm-password-placeholder": "Torna a introduir la contrasenya...",
|
||||||
|
"register": "Registra't",
|
||||||
|
"have-account": "Ja tens un compte?",
|
||||||
|
"login": "Inicia sessió",
|
||||||
|
"password-confirm-placeholder": "Confirma la teva contrasenya...",
|
||||||
|
"welcome": "Benvingut a DragonRoll!",
|
||||||
|
"message": "Si us plau, introdueix el nom d'usuari i la contrasenya que desitges per crear un compte.",
|
||||||
|
"first-register-message": "Estàs a punt de crear el primer compte en aquesta instància de DragonRoll. Aquest compte tindrà privilegis d'administrador.",
|
||||||
|
"errors": {
|
||||||
|
"name-empty": "Si us plau, introdueix el teu nom.",
|
||||||
|
"email-empty": "Si us plau, introdueix un correu electrònic vàlid.",
|
||||||
|
"username-empty": "Si us plau, introdueix un nom d'usuari.",
|
||||||
|
"passwords-no-match": "Les contrasenyes no coincideixen.",
|
||||||
|
"email-username-exists": "Ja existeix un compte amb aquest correu electrònic o nom d'usuari."
|
||||||
|
},
|
||||||
|
"success": "Registre correcte! Ara pots iniciar sessió."
|
||||||
|
},
|
||||||
|
"errors": {
|
||||||
|
"internal": "S'ha produït un error intern."
|
||||||
|
},
|
||||||
|
"main-menu": {
|
||||||
|
"main-menu": "Menú principal",
|
||||||
|
"edit-profile": "Edita el perfil",
|
||||||
|
"campaigns": "Campanyes",
|
||||||
|
"log-out": "Tanca la sessió",
|
||||||
|
"settings": "Configuració"
|
||||||
|
},
|
||||||
|
"settings": {
|
||||||
|
"tabs": {
|
||||||
|
"account-settings": "Configuració del compte",
|
||||||
|
"site-administration": "Administració del lloc"
|
||||||
|
},
|
||||||
|
"account-settings": {
|
||||||
|
"appearance": "Aparença",
|
||||||
|
"language": "Idioma"
|
||||||
|
},
|
||||||
|
"site-administration": {
|
||||||
|
"manage-accounts": "Gestiona els comptes"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -57,5 +57,18 @@
|
|||||||
"campaigns": "Campaigns",
|
"campaigns": "Campaigns",
|
||||||
"log-out": "Log out",
|
"log-out": "Log out",
|
||||||
"settings": "Settings"
|
"settings": "Settings"
|
||||||
|
},
|
||||||
|
"settings": {
|
||||||
|
"tabs": {
|
||||||
|
"account-settings": "Account settings",
|
||||||
|
"site-administration": "Site administration"
|
||||||
|
},
|
||||||
|
"account-settings": {
|
||||||
|
"appearance": "Appearance",
|
||||||
|
"language": "Language"
|
||||||
|
},
|
||||||
|
"site-administration": {
|
||||||
|
"manage-accounts": "Manage accounts"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1 +1,74 @@
|
|||||||
{}
|
{
|
||||||
|
"windows": {
|
||||||
|
"login": "Iniciar sesión",
|
||||||
|
"register": "Registrarse",
|
||||||
|
"main-menu": "Dragonroll",
|
||||||
|
"example": "Ventana de ejemplo",
|
||||||
|
"edit-profile": "Editar perfil",
|
||||||
|
"settings": "Configuración"
|
||||||
|
},
|
||||||
|
"login": {
|
||||||
|
"username": "Usuario o correo electrónico",
|
||||||
|
"username-placeholder": "Introduce tu usuario o correo electrónico...",
|
||||||
|
"password": "Contraseña",
|
||||||
|
"password-placeholder": "Introduce tu contraseña...",
|
||||||
|
"log-in": "Iniciar sesión",
|
||||||
|
"no-account": "¿No tienes una cuenta?",
|
||||||
|
"register": "Registrarse",
|
||||||
|
"errors": {
|
||||||
|
"invalid-credentials": "Usuario/correo o contraseña incorrectos.",
|
||||||
|
"params": "Por favor, introduce usuario/correo y contraseña."
|
||||||
|
},
|
||||||
|
"success": "¡Inicio de sesión exitoso!"
|
||||||
|
},
|
||||||
|
"register": {
|
||||||
|
"name": "Nombre",
|
||||||
|
"name-placeholder": "Introduce tu nombre...",
|
||||||
|
"email": "Correo electrónico",
|
||||||
|
"email-placeholder": "Introduce tu correo electrónico...",
|
||||||
|
"username": "Usuario",
|
||||||
|
"username-placeholder": "Introduce tu nombre de usuario...",
|
||||||
|
"password": "Contraseña",
|
||||||
|
"password-placeholder": "Introduce tu contraseña...",
|
||||||
|
"confirm-password": "Confirmar contraseña",
|
||||||
|
"confirm-password-placeholder": "Vuelve a introducir tu contraseña...",
|
||||||
|
"register": "Registrarse",
|
||||||
|
"have-account": "¿Ya tienes una cuenta?",
|
||||||
|
"login": "Iniciar sesión",
|
||||||
|
"password-confirm-placeholder": "Confirma tu contraseña...",
|
||||||
|
"welcome": "¡Bienvenido a DragonRoll!",
|
||||||
|
"message": "Por favor, introduce el usuario y la contraseña que deseas para crear una cuenta.",
|
||||||
|
"first-register-message": "Estás a punto de crear la primera cuenta en esta instancia de DragonRoll. Esta cuenta tendrá privilegios de administrador.",
|
||||||
|
"errors": {
|
||||||
|
"name-empty": "Por favor, introduce tu nombre.",
|
||||||
|
"email-empty": "Por favor, introduce un correo electrónico válido.",
|
||||||
|
"username-empty": "Por favor, introduce un nombre de usuario.",
|
||||||
|
"passwords-no-match": "Las contraseñas no coinciden.",
|
||||||
|
"email-username-exists": "Ya existe una cuenta con este correo electrónico o nombre de usuario."
|
||||||
|
},
|
||||||
|
"success": "¡Registro exitoso! Ahora puedes iniciar sesión."
|
||||||
|
},
|
||||||
|
"errors": {
|
||||||
|
"internal": "Ha ocurrido un error interno."
|
||||||
|
},
|
||||||
|
"main-menu": {
|
||||||
|
"main-menu": "Menú principal",
|
||||||
|
"edit-profile": "Editar perfil",
|
||||||
|
"campaigns": "Campañas",
|
||||||
|
"log-out": "Cerrar sesión",
|
||||||
|
"settings": "Configuración"
|
||||||
|
},
|
||||||
|
"settings": {
|
||||||
|
"tabs": {
|
||||||
|
"account-settings": "Configuración de la cuenta",
|
||||||
|
"site-administration": "Administración del sitio"
|
||||||
|
},
|
||||||
|
"account-settings": {
|
||||||
|
"appearance": "Apariencia",
|
||||||
|
"language": "Idioma"
|
||||||
|
},
|
||||||
|
"site-administration": {
|
||||||
|
"manage-accounts": "Gestionar cuentas"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user