Fixes primera revisión #86
|
@ -84,5 +84,34 @@ export default {
|
||||||
delete: 'Esborrar',
|
delete: 'Esborrar',
|
||||||
emptyList: 'Llista buida',
|
emptyList: 'Llista buida',
|
||||||
modify: 'Modificar',
|
modify: 'Modificar',
|
||||||
confirmDelete: 'Estàs segur que vols esborrar la línia?'
|
confirmDelete: 'Estàs segur que vols esborrar la línia?',
|
||||||
|
// Image related translations
|
||||||
|
'Cant lock cache': 'No es pot bloquejar la memòria cau',
|
||||||
|
'Bad file format': 'Format de fitxer no reconegut',
|
||||||
|
'File not choosed': 'No has seleccionat cap fitxer',
|
||||||
|
'Permission denied': 'No tens permís per pujar el fitxer',
|
||||||
|
'File upload error':
|
||||||
|
"No s'ha pogut pujar el fitxer, comprova que la mida no sigui massa gran",
|
||||||
|
'File save error': "No s'ha pogut desar el fitxer: %s",
|
||||||
|
'File size error': 'El fitxer no ha de superar %.2f MB',
|
||||||
|
'Bad file name':
|
||||||
|
"El nom del fitxer només ha de contenir lletres minúscules, dígits o el caràcter '_'",
|
||||||
|
'Bad collection name': 'Nom de col·lecció no vàlid',
|
||||||
|
'Collection not exists': 'La col·lecció no existeix',
|
||||||
|
'Unreferenced file': 'El fitxer no està referenciat per la base de dades',
|
||||||
|
'Cannot update matching id': "No es pot actualitzar l'id coincident",
|
||||||
|
'Com error': 'Error de comunicació amb el servidor',
|
||||||
|
'Image open error': "Error en obrir el fitxer d'imatge",
|
||||||
|
'Operation disabled': 'Operació deshabilitada per seguretat',
|
||||||
|
'Image added': 'Imatge afegida correctament',
|
||||||
|
ErrIniSize: 'El fitxer supera la directiva upload_max_filesize a php.ini',
|
||||||
|
ErrFormSize:
|
||||||
|
'El fitxer supera el MAX_FILE_SIZE especificat al formulari HTML',
|
||||||
|
ErrPartial: "El fitxer s'ha pujat parcialment",
|
||||||
|
ErrNoFile: "No s'ha pujat cap fitxer",
|
||||||
|
ErrNoTmpDir: 'Falta una carpeta temporal',
|
||||||
|
ErrCantWrite: "No s'ha pogut escriure el fitxer al disc",
|
||||||
|
ErrExtension: "La pujada del fitxer s'ha aturat per una extensió",
|
||||||
|
ErrDefault: 'Error de pujada desconegut',
|
||||||
|
'Sync complete': 'Sincronització completa'
|
||||||
};
|
};
|
||||||
|
|
|
@ -118,5 +118,33 @@ export default {
|
||||||
save: 'Save',
|
save: 'Save',
|
||||||
cancel: 'Cancel',
|
cancel: 'Cancel',
|
||||||
of: 'of',
|
of: 'of',
|
||||||
modify: 'Modify'
|
modify: 'Modify',
|
||||||
|
// Image related translations
|
||||||
|
'Cant lock cache': 'The cache could not be blocked',
|
||||||
|
'Bad file format': 'Unrecognized file format',
|
||||||
|
'File not choosed': 'You have not selected any file',
|
||||||
|
'Permission denied': 'You are not allowed to upload the file',
|
||||||
|
'File upload error':
|
||||||
|
'Failed to upload the file, check that size is not too large',
|
||||||
|
'File save error': 'Failed to save the file: %s',
|
||||||
|
'File size error': 'The file must be no longer than %.2f MB',
|
||||||
|
'Bad file name':
|
||||||
|
"The file name must contain only lowercase letters, digits or the '_' character",
|
||||||
|
'Bad collection name': 'Invalid collection name',
|
||||||
|
'Collection not exists': 'Collection does not exist',
|
||||||
|
'Unreferenced file': 'The file is not referenced by the database',
|
||||||
|
'Cannot update matching id': 'Cannot update matching id',
|
||||||
|
'Com error': 'Error communicating with the server',
|
||||||
|
'Image open error': 'Error opening the image file',
|
||||||
|
'Operation disabled': 'Operation disabled for security',
|
||||||
|
'Image added': 'Image added correctly',
|
||||||
|
ErrIniSize: 'File exceeds the upload_max_filesize directive in php.ini',
|
||||||
|
ErrFormSize: 'File exceeds the MAX_FILE_SIZE specified in the HTML form',
|
||||||
|
ErrPartial: 'File was partially uploaded',
|
||||||
|
ErrNoFile: 'No file was uploaded',
|
||||||
|
ErrNoTmpDir: 'Missing a temporary folder',
|
||||||
|
ErrCantWrite: 'Failed to write file to disk',
|
||||||
|
ErrExtension: 'File upload stopped by extension',
|
||||||
|
ErrDefault: 'Unknown upload error',
|
||||||
|
'Sync complete': 'Synchronization complete'
|
||||||
};
|
};
|
||||||
|
|
|
@ -134,5 +134,34 @@ export default {
|
||||||
save: 'Guardar',
|
save: 'Guardar',
|
||||||
cancel: 'Cancelar',
|
cancel: 'Cancelar',
|
||||||
of: 'de',
|
of: 'de',
|
||||||
modify: 'Modificar'
|
modify: 'Modificar',
|
||||||
|
// Image related translations
|
||||||
|
'Cant lock cache': 'La caché no pudo ser bloqueada',
|
||||||
|
'Bad file format': 'Formato de archivo no reconocido',
|
||||||
|
'File not choosed': 'No has seleccionado ningún archivo',
|
||||||
|
'Permission denied': 'No tienes permiso para subir el fichero',
|
||||||
|
'File upload error':
|
||||||
|
'Error al subir el fichero, comprueba que su tamaño no sea demasiado grande',
|
||||||
|
'File save error': 'Error al guardar el fichero: %s',
|
||||||
|
'File size error': 'El fichero no debe ocupar más de %.2f MB',
|
||||||
|
'Bad file name':
|
||||||
|
"El nombre del archivo solo debe contener letras minúsculas, dígitos o el carácter '_'",
|
||||||
|
'Bad collection name': 'Nombre de colección no válido',
|
||||||
|
'Collection not exists': 'La colección no existe',
|
||||||
|
'Unreferenced file': 'El archivo no está referenciado por la base de datos',
|
||||||
|
'Cannot update matching id':
|
||||||
|
'No es posible actualizar los ítems con id coincidente',
|
||||||
|
'Com error': 'Error en la comunicación con el servidor',
|
||||||
|
'Image open error': 'Error al abrir el archivo de imagen',
|
||||||
|
'Operation disabled': 'Operación deshabilitada por seguridad',
|
||||||
|
'Image added': 'Imagen añadida correctamente',
|
||||||
|
ErrIniSize: 'File exceeds the upload_max_filesize directive in php.ini',
|
||||||
|
ErrFormSize: 'File exceeds the MAX_FILE_SIZE specified in the HTML form',
|
||||||
|
ErrPartial: 'File was partially uploaded',
|
||||||
|
ErrNoFile: 'No file was uploaded',
|
||||||
|
ErrNoTmpDir: 'Missing a temporary folder',
|
||||||
|
ErrCantWrite: 'Failed to write file to disk',
|
||||||
|
ErrExtension: 'File upload stopped by extension',
|
||||||
|
ErrDefault: 'Unknown upload error',
|
||||||
|
'Sync complete': 'Sincronización completada'
|
||||||
};
|
};
|
||||||
|
|
|
@ -84,5 +84,37 @@ export default {
|
||||||
delete: 'Effacer',
|
delete: 'Effacer',
|
||||||
emptyList: 'Vider la liste',
|
emptyList: 'Vider la liste',
|
||||||
modify: 'Modifier',
|
modify: 'Modifier',
|
||||||
confirmDelete: 'Voulez-vous vraiment supprimer la ligne?'
|
confirmDelete: 'Voulez-vous vraiment supprimer la ligne?',
|
||||||
|
// Image related translations
|
||||||
|
'Cant lock cache': "Le cache n'a pas pu être verrouillé",
|
||||||
|
'Bad file format': 'Format de fichier non reconnu',
|
||||||
|
'File not choosed': "Vous n'avez sélectionné aucun fichier",
|
||||||
|
'Permission denied': "Vous n'êtes pas autorisé à télécharger le fichier",
|
||||||
|
'File upload error':
|
||||||
|
"Échec du téléchargement du fichier, vérifiez que la taille n'est pas trop grande",
|
||||||
|
'File save error': "Échec de l'enregistrement du fichier : %s",
|
||||||
|
'File size error': 'Le fichier ne doit pas dépasser %.2f MB',
|
||||||
|
'Bad file name':
|
||||||
|
"Le nom du fichier ne doit contenir que des lettres minuscules, des chiffres ou le caractère '_'",
|
||||||
|
'Bad collection name': 'Nom de collection invalide',
|
||||||
|
'Collection not exists': "La collection n'existe pas",
|
||||||
|
'Unreferenced file':
|
||||||
|
"Le fichier n'est pas référencé par la base de données",
|
||||||
|
'Cannot update matching id':
|
||||||
|
"Impossible de mettre à jour l'ID correspondant",
|
||||||
|
'Com error': 'Erreur de communication avec le serveur',
|
||||||
|
'Image open error': "Erreur lors de l'ouverture du fichier image",
|
||||||
|
'Operation disabled': 'Opération désactivée pour des raisons de sécurité',
|
||||||
|
'Image added': 'Image ajoutée correctement',
|
||||||
|
ErrIniSize:
|
||||||
|
'Le fichier dépasse la directive upload_max_filesize dans php.ini',
|
||||||
|
ErrFormSize:
|
||||||
|
'Le fichier dépasse la taille maximale spécifiée dans le formulaire HTML',
|
||||||
|
ErrPartial: 'Le fichier a été partiellement téléchargé',
|
||||||
|
ErrNoFile: "Aucun fichier n'a été téléchargé",
|
||||||
|
ErrNoTmpDir: 'Il manque un dossier temporaire',
|
||||||
|
ErrCantWrite: "Échec de l'écriture du fichier sur le disque",
|
||||||
|
ErrExtension: 'Téléchargement du fichier arrêté par extension',
|
||||||
|
ErrDefault: 'Erreur de téléchargement inconnue',
|
||||||
|
'Sync complete': 'Synchronisation terminée'
|
||||||
};
|
};
|
||||||
|
|
|
@ -82,5 +82,33 @@ export default {
|
||||||
delete: 'Eliminar',
|
delete: 'Eliminar',
|
||||||
emptyList: 'Lista vazia',
|
emptyList: 'Lista vazia',
|
||||||
modify: 'Modificar',
|
modify: 'Modificar',
|
||||||
confirmDelete: 'Tens certeza que queres eliminar esta linha?'
|
confirmDelete: 'Tens certeza que queres eliminar esta linha?',
|
||||||
|
// Image related translations
|
||||||
|
'Cant lock cache': 'O cache não pôde ser bloqueado',
|
||||||
|
'Bad file format': 'Formato de arquivo inválido',
|
||||||
|
'File not choosed': 'Não selecionastes nenhum arquivo',
|
||||||
|
'Permission denied': 'Não estas autorizado a subir o arquivo',
|
||||||
|
'File upload error': 'Erro ao subir o arquivo, verifique o tamanho',
|
||||||
|
'File save error': 'Erro ao salvar o arquivo: %s',
|
||||||
|
'File size error': 'O arquivo não deve ser maior que %.2f MB',
|
||||||
|
'Bad file name':
|
||||||
|
"O nome do arquivo deve conter somente letras minusculas, numeros ou '_'",
|
||||||
|
'Bad collection name': 'Nome de coleção inválido',
|
||||||
|
'Collection not exists': 'Coleção não existe',
|
||||||
|
'Unreferenced file': 'O arquivo não é referenciado pelo banco de dados',
|
||||||
|
'Cannot update matching id':
|
||||||
|
'Não é possível atualizar os itens com id coincidente',
|
||||||
|
'Com error': 'Erro de comunicação com o servidor',
|
||||||
|
'Image open error': 'Erro ao abrir a imagem',
|
||||||
|
'Operation disabled': 'Operação desativada por segurança',
|
||||||
|
'Image added': 'Imagem adicionada corretamente',
|
||||||
|
ErrIniSize: 'Arquivo supera o tamanho maximo de protocolo em php.ini',
|
||||||
|
ErrFormSize: 'Arquivo supera o tamanho maximo de protocolo em HTML form',
|
||||||
|
ErrPartial: 'Arquivo subido parcialmente',
|
||||||
|
ErrNoFile: 'Nenhum arquivo subido',
|
||||||
|
ErrNoTmpDir: 'Falta a pasta de arquivo temporal',
|
||||||
|
ErrCantWrite: 'Erro ao gravar arquivo no disco',
|
||||||
|
ErrExtension: 'Erro de extensão do arquivo',
|
||||||
|
ErrDefault: 'Erro desconhecido ao subir arquivo',
|
||||||
|
'Sync complete': 'Sincronização completa'
|
||||||
};
|
};
|
||||||
|
|
|
@ -13,11 +13,24 @@ const { t } = useI18n();
|
||||||
const { notify } = useNotify();
|
const { notify } = useNotify();
|
||||||
|
|
||||||
const fileUploaderRef = ref(null);
|
const fileUploaderRef = ref(null);
|
||||||
|
|
||||||
const statusIcons = {
|
const statusIcons = {
|
||||||
uploading: 'cloud_upload',
|
uploading: {
|
||||||
fulfilled: 'cloud_done',
|
icon: 'cloud_upload',
|
||||||
rejected: 'error',
|
tooltip: 'Uploading'
|
||||||
pending: 'add'
|
},
|
||||||
|
fulfilled: {
|
||||||
|
icon: 'cloud_done',
|
||||||
|
tooltip: 'imageUploaded'
|
||||||
|
},
|
||||||
|
rejected: {
|
||||||
|
icon: 'error',
|
||||||
|
tooltip: 'Error'
|
||||||
|
},
|
||||||
|
pending: {
|
||||||
|
icon: 'add',
|
||||||
|
tooltip: 'pendingUpload'
|
||||||
|
}
|
||||||
};
|
};
|
||||||
const formInitialData = reactive({
|
const formInitialData = reactive({
|
||||||
schema: 'catalog',
|
schema: 'catalog',
|
||||||
|
@ -72,6 +85,12 @@ const onSubmit = async data => {
|
||||||
results.forEach((result, index) => {
|
results.forEach((result, index) => {
|
||||||
const fileIndex = filteredFiles[index].index;
|
const fileIndex = filteredFiles[index].index;
|
||||||
addedFiles.value[fileIndex].uploadStatus = result.status;
|
addedFiles.value[fileIndex].uploadStatus = result.status;
|
||||||
|
|
||||||
|
if (result.status === 'rejected') {
|
||||||
|
addedFiles.value[fileIndex].errorMessage = t(
|
||||||
|
result.reason?.response?.data?.data?.message
|
||||||
|
);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
const allSuccessful = results.every(
|
const allSuccessful = results.every(
|
||||||
|
@ -122,10 +141,10 @@ onMounted(async () => getImageCollections());
|
||||||
<QPage class="vn-w-sm">
|
<QPage class="vn-w-sm">
|
||||||
<VnForm
|
<VnForm
|
||||||
ref="vnFormRef"
|
ref="vnFormRef"
|
||||||
:defaultActions="false"
|
:default-actions="false"
|
||||||
:formInitialData="formInitialData"
|
:form-initial-data="formInitialData"
|
||||||
separationBetweenInputs="md"
|
separation-between-inputs="md"
|
||||||
showBottomActions
|
show-bottom-actions
|
||||||
>
|
>
|
||||||
<template #form="{ data }">
|
<template #form="{ data }">
|
||||||
<VnSelect
|
<VnSelect
|
||||||
|
@ -146,7 +165,7 @@ onMounted(async () => getImageCollections());
|
||||||
hide-upload-btn
|
hide-upload-btn
|
||||||
@added="onFilesAdded"
|
@added="onFilesAdded"
|
||||||
>
|
>
|
||||||
<template v-slot:list="scope">
|
<template #list="scope">
|
||||||
<QList v-if="addedFiles.length" separator>
|
<QList v-if="addedFiles.length" separator>
|
||||||
<QItem
|
<QItem
|
||||||
v-for="(file, index) in scope.files"
|
v-for="(file, index) in scope.files"
|
||||||
|
@ -182,10 +201,22 @@ onMounted(async () => getImageCollections());
|
||||||
:name="
|
:name="
|
||||||
statusIcons[
|
statusIcons[
|
||||||
addedFiles[index].uploadStatus
|
addedFiles[index].uploadStatus
|
||||||
]
|
].icon
|
||||||
"
|
"
|
||||||
size="sm"
|
size="sm"
|
||||||
/>
|
>
|
||||||
|
<QTooltip>
|
||||||
|
{{
|
||||||
|
addedFiles[index].errorMessage ||
|
||||||
|
t(
|
||||||
|
statusIcons[
|
||||||
|
addedFiles[index]
|
||||||
|
.uploadStatus
|
||||||
|
].tooltip
|
||||||
|
)
|
||||||
|
}}
|
||||||
|
</QTooltip>
|
||||||
|
</QIcon>
|
||||||
<QBtn
|
<QBtn
|
||||||
v-if="
|
v-if="
|
||||||
addedFiles[index].uploadStatus !==
|
addedFiles[index].uploadStatus !==
|
||||||
|
@ -198,7 +229,9 @@ onMounted(async () => getImageCollections());
|
||||||
round
|
round
|
||||||
icon="delete"
|
icon="delete"
|
||||||
@click="removeFile(file, index)"
|
@click="removeFile(file, index)"
|
||||||
/>
|
>
|
||||||
|
<QTooltip>{{ t('remove') }}</QTooltip>
|
||||||
|
</QBtn>
|
||||||
</QItem>
|
</QItem>
|
||||||
</QList>
|
</QList>
|
||||||
</template>
|
</template>
|
||||||
|
@ -239,6 +272,8 @@ en-US:
|
||||||
uploadSuccess: Upload finished successfully
|
uploadSuccess: Upload finished successfully
|
||||||
uploadError: Some errors happened on upload
|
uploadError: Some errors happened on upload
|
||||||
noFilesToUpload: There are no files to upload
|
noFilesToUpload: There are no files to upload
|
||||||
|
pendingUpload: Pending upload
|
||||||
|
imageUploaded: Image uploaded
|
||||||
es-ES:
|
es-ES:
|
||||||
collection: Colección
|
collection: Colección
|
||||||
updateMatching: Actualizar artículos con id coincidente
|
updateMatching: Actualizar artículos con id coincidente
|
||||||
|
@ -248,6 +283,8 @@ es-ES:
|
||||||
uploadSuccess: Imágenes subidas correctamente
|
uploadSuccess: Imágenes subidas correctamente
|
||||||
uploadError: Ocurrieron errores al subir alguna de las imágenes
|
uploadError: Ocurrieron errores al subir alguna de las imágenes
|
||||||
noFilesToUpload: No se han seleccionado archivos para subir
|
noFilesToUpload: No se han seleccionado archivos para subir
|
||||||
|
pendingUpload: Subida pendiente
|
||||||
|
imageUploaded: Imagen subida
|
||||||
ca-ES:
|
ca-ES:
|
||||||
collection: Col·lecció
|
collection: Col·lecció
|
||||||
updateMatching: Actualitzar els elements amb id coincident
|
updateMatching: Actualitzar els elements amb id coincident
|
||||||
|
@ -257,6 +294,8 @@ ca-ES:
|
||||||
uploadSuccess: Imatges pujades correctament
|
uploadSuccess: Imatges pujades correctament
|
||||||
uploadError: Van ocórrer errors en pujar alguna de les imatges
|
uploadError: Van ocórrer errors en pujar alguna de les imatges
|
||||||
noFilesToUpload: No s'ha seleccionat arxius per pujar
|
noFilesToUpload: No s'ha seleccionat arxius per pujar
|
||||||
|
pendingUpload: Pujada pendent
|
||||||
|
imageUploaded: Imatge pujada
|
||||||
fr-FR:
|
fr-FR:
|
||||||
collection: Collection
|
collection: Collection
|
||||||
updateMatching: Mettre à jour les éléments avec l'identifiant correspondant
|
updateMatching: Mettre à jour les éléments avec l'identifiant correspondant
|
||||||
|
@ -266,6 +305,8 @@ fr-FR:
|
||||||
uploadSuccess: Les images téléchargées correctement
|
uploadSuccess: Les images téléchargées correctement
|
||||||
uploadError: Des erreurs sont survenues lors du téléchargement des images
|
uploadError: Des erreurs sont survenues lors du téléchargement des images
|
||||||
noFilesToUpload: Aucun fichier sélectionné pour télécharger
|
noFilesToUpload: Aucun fichier sélectionné pour télécharger
|
||||||
|
pendingUpload: Téléchargement en attente
|
||||||
|
imageUploaded: Image téléchargée
|
||||||
pt-PT:
|
pt-PT:
|
||||||
collection: Coleção
|
collection: Coleção
|
||||||
updateMatching: Atualizar itens com id correspondente
|
updateMatching: Atualizar itens com id correspondente
|
||||||
|
@ -275,4 +316,6 @@ pt-PT:
|
||||||
uploadSuccess: Upload concluído com sucesso
|
uploadSuccess: Upload concluído com sucesso
|
||||||
uploadError: Ocorreram erros ao subir alguma das imagens
|
uploadError: Ocorreram erros ao subir alguma das imagens
|
||||||
noFilesToUpload: Não há arquivos selecionados para upload
|
noFilesToUpload: Não há arquivos selecionados para upload
|
||||||
|
pendingUpload: Upload pendente
|
||||||
|
imageUploaded: Imagem carregada
|
||||||
</i18n>
|
</i18n>
|
||||||
|
|
Loading…
Reference in New Issue