improve ui and translations, separate export form sending
This commit is contained in:
@@ -82,18 +82,24 @@ export default class FileTransferModel {
|
||||
this.handleDecryptedFile(decrypted);
|
||||
};
|
||||
|
||||
readonly handleBackupFile = async (encryptedBackup: string, passphrase: string): Promise<void> => {
|
||||
const decrypted: string = await decryptString(encryptedBackup, passphrase);
|
||||
const parsed = parse(decrypted);
|
||||
if (!Array.isArray(parsed)) {
|
||||
console.error("Canceling backup - not an array", decrypted);
|
||||
return;
|
||||
}
|
||||
readonly handleBackupFile = async (
|
||||
encryptedBackup: string,
|
||||
passphrase: string,
|
||||
): Promise<void> => {
|
||||
const decrypted: string = await decryptString(
|
||||
encryptedBackup,
|
||||
passphrase,
|
||||
);
|
||||
const parsed = parse(decrypted);
|
||||
if (!Array.isArray(parsed)) {
|
||||
console.error("Canceling backup - not an array", decrypted);
|
||||
return;
|
||||
}
|
||||
|
||||
for (const file of parsed) {
|
||||
this.handleDecryptedFile(file);
|
||||
}
|
||||
}
|
||||
for (const file of parsed) {
|
||||
this.handleDecryptedFile(file);
|
||||
}
|
||||
};
|
||||
|
||||
readonly handleDecryptedFile = (data: string): void => {
|
||||
const parsed: any = parse(data);
|
||||
@@ -130,7 +136,10 @@ export default class FileTransferModel {
|
||||
}
|
||||
};
|
||||
|
||||
readonly generateBackup = async (directoryPaths: IteratorObject<string[]>, passphrase: string): Promise<string> => {
|
||||
readonly generateBackup = async (
|
||||
directoryPaths: IteratorObject<string[]>,
|
||||
passphrase: string,
|
||||
): Promise<string> => {
|
||||
const files: string[] = [];
|
||||
for (const directoryPath of directoryPaths) {
|
||||
this.storageModel.recurse(directoryPath, (filePath: string[]) => {
|
||||
@@ -139,8 +148,8 @@ export default class FileTransferModel {
|
||||
files.push(stringifiedFileData);
|
||||
});
|
||||
}
|
||||
const rawBackup = stringify(files);
|
||||
return await encryptString(rawBackup, passphrase);
|
||||
const rawBackup = stringify(files);
|
||||
return await encryptString(rawBackup, passphrase);
|
||||
};
|
||||
|
||||
readonly prepareFileForSending = (filePath: string[]): string => {
|
||||
|
||||
@@ -26,6 +26,7 @@ export function DataTransferModalWrapper(
|
||||
{TransferDisplayModal(coreViewModel, fileTransferViewModel)}
|
||||
{TransferDataInputModal(coreViewModel, fileTransferViewModel)}
|
||||
{DataReceptionModal(coreViewModel, fileTransferViewModel)}
|
||||
{ImportModal(coreViewModel, fileTransferViewModel)}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@@ -107,20 +108,35 @@ function DirectionSelectionModal(
|
||||
</b>
|
||||
</div>
|
||||
<span class="icon">arrow_forward</span>
|
||||
</button>
|
||||
</button>
|
||||
|
||||
<hr></hr>
|
||||
|
||||
<button
|
||||
class="tile"
|
||||
on:click={
|
||||
fileTransferViewModel.showTransferDataInputModal
|
||||
}
|
||||
on:click={fileTransferViewModel.showImportModal}
|
||||
>
|
||||
<span class="icon">file_open</span>
|
||||
<span class="icon">file_save</span>
|
||||
<div>
|
||||
<b>
|
||||
{
|
||||
coreViewModel.translations
|
||||
.dataTransferModal
|
||||
.importButton
|
||||
.dataTransferModal.exportButton
|
||||
}
|
||||
</b>
|
||||
</div>
|
||||
<span class="icon">arrow_forward</span>
|
||||
</button>
|
||||
<button
|
||||
class="tile"
|
||||
on:click={fileTransferViewModel.showImportModal}
|
||||
>
|
||||
<span class="icon">upload_file</span>
|
||||
<div>
|
||||
<b>
|
||||
{
|
||||
coreViewModel.translations
|
||||
.dataTransferModal.importButton
|
||||
}
|
||||
</b>
|
||||
</div>
|
||||
@@ -196,7 +212,7 @@ function FileSelectionModal(
|
||||
<h2>
|
||||
{
|
||||
coreViewModel.translations.dataTransferModal
|
||||
.transferDataHeadline
|
||||
.sendHeadline
|
||||
}
|
||||
</h2>
|
||||
<span class="secondary">
|
||||
@@ -279,7 +295,7 @@ function TransferDataDisplayModal(
|
||||
<h2>
|
||||
{
|
||||
coreViewModel.translations.dataTransferModal
|
||||
.transferDataHeadline
|
||||
.sendHeadline
|
||||
}
|
||||
</h2>
|
||||
|
||||
@@ -327,7 +343,7 @@ function TransferDataDisplayModal(
|
||||
></b>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
<div class="flex-row width-100">
|
||||
<button
|
||||
@@ -337,7 +353,7 @@ function TransferDataDisplayModal(
|
||||
{coreViewModel.translations.general.backButton}
|
||||
</button>
|
||||
<button disabled class="flex">
|
||||
{coreViewModel.translations.general.waitingLabel}
|
||||
{coreViewModel.translations.general.waitingLabel}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
@@ -441,7 +457,7 @@ function TransferDataInputModal(
|
||||
<h2>
|
||||
{
|
||||
coreViewModel.translations.dataTransferModal
|
||||
.transferDataHeadline
|
||||
.receiveHeadline
|
||||
}
|
||||
</h2>
|
||||
|
||||
@@ -540,7 +556,55 @@ function DataReceptionModal(
|
||||
<h2>
|
||||
{
|
||||
coreViewModel.translations.dataTransferModal
|
||||
.transferDataHeadline
|
||||
.receiveHeadline
|
||||
}
|
||||
</h2>
|
||||
|
||||
<p
|
||||
class="secondary"
|
||||
subscribe:innerText={
|
||||
fileTransferViewModel.filesReceivedText
|
||||
}
|
||||
></p>
|
||||
|
||||
<hr></hr>
|
||||
|
||||
<div
|
||||
class="tile flex-column align-start"
|
||||
children:append={[
|
||||
fileTransferViewModel.filePathsReceived,
|
||||
StringToTextSpan,
|
||||
]}
|
||||
></div>
|
||||
</main>
|
||||
<button on:click={ViewController.reload}>
|
||||
{coreViewModel.translations.general.reloadAppButton}
|
||||
<span class="icon">refresh</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
function ImportModal(
|
||||
coreViewModel: CoreViewModel,
|
||||
fileTransferViewModel: FileTransferViewModel,
|
||||
) {
|
||||
const isPresented = React.createProxyState(
|
||||
[fileTransferViewModel.presentedModal],
|
||||
() =>
|
||||
fileTransferViewModel.presentedModal.value ==
|
||||
FileTransferModals.ImportModal,
|
||||
);
|
||||
|
||||
return (
|
||||
<div class="modal" toggle:open={isPresented}>
|
||||
<div>
|
||||
<main>
|
||||
<h2>
|
||||
{
|
||||
coreViewModel.translations.dataTransferModal
|
||||
.importHeadline
|
||||
}
|
||||
</h2>
|
||||
|
||||
|
||||
+394
-379
@@ -104,6 +104,10 @@ const englishTranslations = {
|
||||
|
||||
dataTransferModal: {
|
||||
transferDataHeadline: "Data Transfer",
|
||||
sendHeadline: "Transfer to other device",
|
||||
receiveHeadline: "Transfer to This Device",
|
||||
exportHeadline: "Export Data",
|
||||
importHeadline: "Import Data",
|
||||
selectionDescription: "Select the data that you want to transfer.",
|
||||
dataEntryDescription: "Enter this data on the other device.",
|
||||
dataEntryInputDescription:
|
||||
@@ -113,8 +117,9 @@ const englishTranslations = {
|
||||
|
||||
///
|
||||
|
||||
fromThisDeviceButton: "Export or send from this device",
|
||||
toThisDeviceButton: "Receive from other device",
|
||||
fromThisDeviceButton: "Send to other device",
|
||||
toThisDeviceButton: "Send to this device",
|
||||
exportButton: "Export to file",
|
||||
importButton: "Import from file",
|
||||
|
||||
///
|
||||
@@ -416,472 +421,482 @@ export const allTranslations: {
|
||||
|
||||
dataTransferModal: {
|
||||
transferDataHeadline: "Datenübertragung",
|
||||
selectionDescription:
|
||||
"Wähle die Daten aus, die du übertragen möchtest.",
|
||||
dataEntryDescription:
|
||||
"Gib diese Informationen auf dem anderen Gerät ein.",
|
||||
dataEntryInputDescription:
|
||||
"Gib die auf dem anderen Gerät angezeigten Informationen ein.",
|
||||
sendHeadline: "An anderes Gerät senden",
|
||||
receiveHeadline: "An dieses Gerät senden",
|
||||
exportHeadline: "Daten exportieren",
|
||||
importHeadline: "Daten importieren",
|
||||
selectionDescription:
|
||||
"Wähle die Daten aus, die du übertragen möchtest.",
|
||||
dataEntryDescription:
|
||||
"Gib diese Informationen auf dem anderen Gerät ein.",
|
||||
dataEntryInputDescription:
|
||||
"Gib die auf dem anderen Gerät angezeigten Informationen ein.",
|
||||
|
||||
notConnectedError: "Du bist mit keinem Server verbunden.",
|
||||
notConnectedError: "Du bist mit keinem Server verbunden.",
|
||||
|
||||
fromThisDeviceButton: "Exportieren oder an anderes Gerät senden",
|
||||
toThisDeviceButton: "An dieses Gerät senden",
|
||||
importButton: "Aus Datei importieren",
|
||||
fromThisDeviceButton: "An anderes Gerät senden",
|
||||
toThisDeviceButton: "An dieses Gerät senden",
|
||||
exportButton: "Als Datei exportieren",
|
||||
importButton: "Aus Datei importieren",
|
||||
|
||||
generalHeadline: "Allgemein",
|
||||
generalHeadline: "Allgemein",
|
||||
|
||||
connectionData: "Verbindungsdaten",
|
||||
settingsData: "Einstellungen",
|
||||
connectionData: "Verbindungsdaten",
|
||||
settingsData: "Einstellungen",
|
||||
|
||||
chatsHeadline: "Chats",
|
||||
chatsHeadline: "Chats",
|
||||
|
||||
transferChannelHeadline: "Übertragungskanal",
|
||||
transferKeyHeadline: "Schlüssel",
|
||||
transferChannelHeadline: "Übertragungskanal",
|
||||
transferKeyHeadline: "Schlüssel",
|
||||
|
||||
sendButton: "Senden",
|
||||
sendAgainButton: "Erneut senden",
|
||||
sendButton: "Senden",
|
||||
sendAgainButton: "Erneut senden",
|
||||
|
||||
filesSentCount: (count) => `Dateien gesendet: ${count}.`,
|
||||
allFilesSent: "Fertig.",
|
||||
filesSentCount: (count) => `Dateien gesendet: ${count}.`,
|
||||
allFilesSent: "Fertig.",
|
||||
|
||||
filesReceivedCount: (count) => `Dateien empfangen: ${count}.`,
|
||||
},
|
||||
filesReceivedCount: (count) => `Dateien empfangen: ${count}.`,
|
||||
},
|
||||
|
||||
storage: {
|
||||
noItemSelected: "Kein Element ausgewählt",
|
||||
notAFile: "(keine Datei)",
|
||||
contentEmpty: "(leer)",
|
||||
storage: {
|
||||
noItemSelected: "Kein Element ausgewählt",
|
||||
notAFile: "(keine Datei)",
|
||||
contentEmpty: "(leer)",
|
||||
|
||||
path: "Pfad",
|
||||
content: "Inhalt",
|
||||
path: "Pfad",
|
||||
content: "Inhalt",
|
||||
|
||||
deleteItem: "Element löschen",
|
||||
deleteItem: "Element löschen",
|
||||
|
||||
removeJunkButton: "Datenmüll löschen",
|
||||
},
|
||||
removeJunkButton: "Datenmüll löschen",
|
||||
},
|
||||
|
||||
chatPage: {
|
||||
closeChatAudioLabe: "Chat schließen",
|
||||
chatSettingsAudioLabel: "Chateinstellungen",
|
||||
chatPage: {
|
||||
closeChatAudioLabe: "Chat schließen",
|
||||
chatSettingsAudioLabel: "Chateinstellungen",
|
||||
|
||||
pages: {
|
||||
settings: "Einstellungen",
|
||||
messages: "Nachrichten",
|
||||
tasks: "Aufgaben",
|
||||
calendar: "Kalender",
|
||||
},
|
||||
pages: {
|
||||
settings: "Einstellungen",
|
||||
messages: "Nachrichten",
|
||||
tasks: "Aufgaben",
|
||||
calendar: "Kalender",
|
||||
},
|
||||
|
||||
settings: {
|
||||
settingsHeadline: "Einstellungen",
|
||||
settings: {
|
||||
settingsHeadline: "Einstellungen",
|
||||
|
||||
primaryChannelLabel: "Hauptkanal",
|
||||
setPrimaryChannelButtonAudioLabel: "Hauptkanal festlegen",
|
||||
primaryChannelLabel: "Hauptkanal",
|
||||
setPrimaryChannelButtonAudioLabel: "Hauptkanal festlegen",
|
||||
|
||||
namespaceLabel: "Namensraum",
|
||||
namespacePlaceholder: "Ohne Namensraum",
|
||||
setNamespaceButtonAudioLabel: "Namensraum festlegen",
|
||||
namespaceLabel: "Namensraum",
|
||||
namespacePlaceholder: "Ohne Namensraum",
|
||||
setNamespaceButtonAudioLabel: "Namensraum festlegen",
|
||||
|
||||
newSecondaryChannelPlaceholder: "Sekundären Kanal hinzufügen",
|
||||
newSecondaryChannelAudioLabel:
|
||||
"Name des neuen sekundären Kanals",
|
||||
addSecondaryChannelButtonAudioLabel:
|
||||
"Sekundären Kanal hinzufügen",
|
||||
newSecondaryChannelPlaceholder: "Sekundären Kanal hinzufügen",
|
||||
newSecondaryChannelAudioLabel:
|
||||
"Name des neuen sekundären Kanals",
|
||||
addSecondaryChannelButtonAudioLabel:
|
||||
"Sekundären Kanal hinzufügen",
|
||||
|
||||
encryptionKeyLabel: "Schlüssel",
|
||||
setEncryptionKeyButtonAudioLabel: "Schlüssel festlegen",
|
||||
showEncryptionKey: "Schlüssel anzeigen",
|
||||
encryptionKeyLabel: "Schlüssel",
|
||||
setEncryptionKeyButtonAudioLabel: "Schlüssel festlegen",
|
||||
showEncryptionKey: "Schlüssel anzeigen",
|
||||
|
||||
deleteChatButton: "Gesamten Chat löschen",
|
||||
},
|
||||
deleteChatButton: "Gesamten Chat löschen",
|
||||
},
|
||||
|
||||
message: {
|
||||
messagesHeadline: "Nachrichten",
|
||||
message: {
|
||||
messagesHeadline: "Nachrichten",
|
||||
|
||||
messageFilterHeadline: "Nachrichten filtern",
|
||||
messageFilterReactionsHadline: "Reaktionen",
|
||||
messageFilterAllReactionsButton: "Alle anzeigen",
|
||||
messageFilterHeadline: "Nachrichten filtern",
|
||||
messageFilterReactionsHadline: "Reaktionen",
|
||||
messageFilterAllReactionsButton: "Alle anzeigen",
|
||||
|
||||
composerInputPlaceholder: "Schreib eine Nachricht...",
|
||||
sendMessageButtonAudioLabel: "nachricht senden",
|
||||
filterMessagesButtonAudioLabel: "nachrichten filtern",
|
||||
composerInputPlaceholder: "Schreib eine Nachricht...",
|
||||
sendMessageButtonAudioLabel: "nachricht senden",
|
||||
filterMessagesButtonAudioLabel: "nachrichten filtern",
|
||||
|
||||
showMessageInfoButtonAudioLabel: "nachrichteninfo anzeigen",
|
||||
messageInfoHeadline: "Nachrichteninfo",
|
||||
cancelReplyAudioLabel: "antwort abbrechen",
|
||||
showMessageInfoButtonAudioLabel: "nachrichteninfo anzeigen",
|
||||
messageInfoHeadline: "Nachrichteninfo",
|
||||
cancelReplyAudioLabel: "antwort abbrechen",
|
||||
|
||||
sentBy: "Gesendet von",
|
||||
timeSent: "Sendezeit",
|
||||
channel: "Kanal",
|
||||
messageContent: "Nachrichteninhalt",
|
||||
sentBy: "Gesendet von",
|
||||
timeSent: "Sendezeit",
|
||||
channel: "Kanal",
|
||||
messageContent: "Nachrichteninhalt",
|
||||
|
||||
copyMessageButton: "Nachricht kopieren",
|
||||
resendMessageButton: "Nachricht erneut senden",
|
||||
decryptMessageButton: "Nachricht entschlüsseln",
|
||||
replyToMessageButton: "Auf Nachricht antworten",
|
||||
deleteMessageButton: "Nachricht löschen",
|
||||
copyMessageButton: "Nachricht kopieren",
|
||||
resendMessageButton: "Nachricht erneut senden",
|
||||
decryptMessageButton: "Nachricht entschlüsseln",
|
||||
replyToMessageButton: "Auf Nachricht antworten",
|
||||
deleteMessageButton: "Nachricht löschen",
|
||||
|
||||
//
|
||||
//
|
||||
|
||||
thumbsUpReaction: "Reaktion: Daumen hoch",
|
||||
checkReaction: "Reaktion: Haken",
|
||||
stopReaction: "Reaktion: Stopp",
|
||||
attentionReaction: "Reaktion: Ausrufezeichen",
|
||||
doubleAttentionReaction: "Reaktion: doppeltes Ausrufezeichen",
|
||||
questionReaction: "Reaktion: Fragezeichen",
|
||||
},
|
||||
thumbsUpReaction: "Reaktion: Daumen hoch",
|
||||
checkReaction: "Reaktion: Haken",
|
||||
stopReaction: "Reaktion: Stopp",
|
||||
attentionReaction: "Reaktion: Ausrufezeichen",
|
||||
doubleAttentionReaction: "Reaktion: doppeltes Ausrufezeichen",
|
||||
questionReaction: "Reaktion: Fragezeichen",
|
||||
},
|
||||
|
||||
task: {
|
||||
newBoardNamePlaceholder: "Board erstellen",
|
||||
createBoardButtonAudioLabel: "board erstellen",
|
||||
task: {
|
||||
newBoardNamePlaceholder: "Board erstellen",
|
||||
createBoardButtonAudioLabel: "board erstellen",
|
||||
|
||||
noBoardSelected: "Kein Board ausgewählt",
|
||||
boardNotFound: "Board nicht gefunden",
|
||||
noBoardSelected: "Kein Board ausgewählt",
|
||||
boardNotFound: "Board nicht gefunden",
|
||||
|
||||
closeBoardButtonAudioLabel: "board schließen",
|
||||
toggleBoardButtonAudioLabel: "board-liste ein/ausblenden",
|
||||
showBoardSettingsButtonAudioLabel:
|
||||
"Board-Einstellungen anzeigen",
|
||||
closeBoardButtonAudioLabel: "board schließen",
|
||||
toggleBoardButtonAudioLabel: "board-liste ein/ausblenden",
|
||||
showBoardSettingsButtonAudioLabel:
|
||||
"Board-Einstellungen anzeigen",
|
||||
|
||||
listViewButtonAudioLabel: "Listenansicht",
|
||||
kanbanViewButtonAudioLabel: "Kanban-Ansicht",
|
||||
statusViewButtonAudioLabel: "Statusrasteransicht",
|
||||
listViewButtonAudioLabel: "Listenansicht",
|
||||
kanbanViewButtonAudioLabel: "Kanban-Ansicht",
|
||||
statusViewButtonAudioLabel: "Statusrasteransicht",
|
||||
|
||||
filterTasksButtonAudioLabel: "Aufgaben filtern",
|
||||
createTaskButtonAudioLabel: "Neue Aufgabe erstellen",
|
||||
filterTasksButtonAudioLabel: "Aufgaben filtern",
|
||||
createTaskButtonAudioLabel: "Neue Aufgabe erstellen",
|
||||
|
||||
boardSettingsHeadline: "Board-Einstellungen",
|
||||
boardNameInputLabel: "Boardname",
|
||||
deleteBoardButton: "Board und alle Aufgaben löschen",
|
||||
boardSettingsHeadline: "Board-Einstellungen",
|
||||
boardNameInputLabel: "Boardname",
|
||||
deleteBoardButton: "Board und alle Aufgaben löschen",
|
||||
|
||||
taskSettingsHeadline: "Aufgabe bearbeiten",
|
||||
taskSettingsHeadline: "Aufgabe bearbeiten",
|
||||
|
||||
taskNameLabel: "Titel",
|
||||
taskBoardLabel: "Board",
|
||||
taskNameLabel: "Titel",
|
||||
taskBoardLabel: "Board",
|
||||
|
||||
taskCategoryLabel: "Kategorie",
|
||||
taskStatusLabel: "Status",
|
||||
taskPriorityLabel: "Priorität",
|
||||
taskCategoryLabel: "Kategorie",
|
||||
taskStatusLabel: "Status",
|
||||
taskPriorityLabel: "Priorität",
|
||||
|
||||
taskDescriptionLabel: "Beschreibung",
|
||||
taskDescriptionLabel: "Beschreibung",
|
||||
|
||||
taskDateLabel: "Datum",
|
||||
taskTimeLabel: "Uhrzeit",
|
||||
taskDateLabel: "Datum",
|
||||
taskTimeLabel: "Uhrzeit",
|
||||
|
||||
deleteTaskButton: "Aufgabe löschen",
|
||||
deleteTaskButton: "Aufgabe löschen",
|
||||
|
||||
filterTasksHeadline: "Aufgaben filtern",
|
||||
filterTasksHeadline: "Aufgaben filtern",
|
||||
|
||||
renameCategoryInputPlaceholder: "Kategorie umbenennen",
|
||||
renameStatusInputPlaceholder: "Status umbenennen",
|
||||
},
|
||||
renameCategoryInputPlaceholder: "Kategorie umbenennen",
|
||||
renameStatusInputPlaceholder: "Status umbenennen",
|
||||
},
|
||||
|
||||
calendar: {
|
||||
eventsBoard: "Ereignisse",
|
||||
calendar: {
|
||||
eventsBoard: "Ereignisse",
|
||||
|
||||
///
|
||||
///
|
||||
|
||||
todayButtonAudioLabel: "gehe zu heute",
|
||||
todayButtonAudioLabel: "gehe zu heute",
|
||||
|
||||
previousMonthButtonAudioLabel: "vorheriger monat",
|
||||
nextMonthButtonAudioLabel: "nächster monat",
|
||||
previousMonthButtonAudioLabel: "vorheriger monat",
|
||||
nextMonthButtonAudioLabel: "nächster monat",
|
||||
|
||||
yearInputAudioLabel: "Jahr",
|
||||
monthInputAudioLabel: "Monat",
|
||||
yearInputAudioLabel: "Jahr",
|
||||
monthInputAudioLabel: "Monat",
|
||||
|
||||
yearInputPlaceholder: "2000",
|
||||
monthInputPlaceholder: "01",
|
||||
yearInputPlaceholder: "2000",
|
||||
monthInputPlaceholder: "01",
|
||||
|
||||
searchEventsHeadline: "Ereignisse suchen",
|
||||
searchEventsHeadline: "Ereignisse suchen",
|
||||
|
||||
events: "Ereignisse",
|
||||
noEvents: "Keine Ereignisse",
|
||||
},
|
||||
},
|
||||
events: "Ereignisse",
|
||||
noEvents: "Keine Ereignisse",
|
||||
},
|
||||
},
|
||||
},
|
||||
es: {
|
||||
updater: {
|
||||
migrated: "Migrado",
|
||||
},
|
||||
|
||||
general: {
|
||||
deleteItemButtonAudioLabel: "eliminar elemento",
|
||||
searchButtonAudioLabel: "buscar",
|
||||
|
||||
abortButton: "Abortar",
|
||||
cancelButton: "Cancelar",
|
||||
closeButton: "Cerrar",
|
||||
backButton: "Atrás",
|
||||
|
||||
continueButton: "Continuar",
|
||||
confirmButton: "Confirmar",
|
||||
saveButton: "Guardar",
|
||||
setButton: "OK",
|
||||
|
||||
reloadAppButton: "Recargar app",
|
||||
|
||||
fileVersionLabel: "Versión",
|
||||
searchLabel: "Buscar",
|
||||
waitingLabel: "Esperando...",
|
||||
|
||||
restoreConnection: "Conectar de nuevo",
|
||||
|
||||
noPageSelected: "No página seleccionada",
|
||||
},
|
||||
|
||||
regional: {
|
||||
weekdays: {
|
||||
full: [
|
||||
"Domingo",
|
||||
"Lunes",
|
||||
"Martes",
|
||||
"Miércoles",
|
||||
"Jueves",
|
||||
"Viernes",
|
||||
"Sábado",
|
||||
],
|
||||
abbreviated: ["Dom", "Lun", "Mar", "Mié", "Jue", "Vie", "Sáb"],
|
||||
},
|
||||
},
|
||||
|
||||
homePage: {
|
||||
appName: "Comms",
|
||||
updater: {
|
||||
migrated: "Migrado",
|
||||
},
|
||||
|
||||
general: {
|
||||
deleteItemButtonAudioLabel: "eliminar elemento",
|
||||
searchButtonAudioLabel: "buscar",
|
||||
|
||||
abortButton: "Abortar",
|
||||
cancelButton: "Cancelar",
|
||||
closeButton: "Cerrar",
|
||||
backButton: "Atrás",
|
||||
|
||||
continueButton: "Continuar",
|
||||
confirmButton: "Confirmar",
|
||||
saveButton: "Guardar",
|
||||
setButton: "OK",
|
||||
|
||||
reloadAppButton: "Recargar app",
|
||||
|
||||
fileVersionLabel: "Versión",
|
||||
searchLabel: "Buscar",
|
||||
waitingLabel: "Esperando...",
|
||||
|
||||
restoreConnection: "Conectar de nuevo",
|
||||
|
||||
noPageSelected: "No página seleccionada",
|
||||
},
|
||||
|
||||
regional: {
|
||||
weekdays: {
|
||||
full: [
|
||||
"Domingo",
|
||||
"Lunes",
|
||||
"Martes",
|
||||
"Miércoles",
|
||||
"Jueves",
|
||||
"Viernes",
|
||||
"Sábado",
|
||||
],
|
||||
abbreviated: ["Dom", "Lun", "Mar", "Mié", "Jue", "Vie", "Sáb"],
|
||||
},
|
||||
},
|
||||
|
||||
homePage: {
|
||||
appName: "Comms",
|
||||
|
||||
overviewHeadline: "Resumen",
|
||||
|
||||
serverAddress: "Dirección del servidor",
|
||||
serverAddressPlaceholder: "wss://192.168.0.69:3000",
|
||||
connectAudioLabel: "conectar al servidor",
|
||||
disconnectAudioLabel: "desconectar del servidor",
|
||||
manageConnectionsAudioLabel: "gestionar conexiones",
|
||||
|
||||
yourNameLabel: "Tu nombre",
|
||||
yourNamePlaceholder: "Juan Pérez",
|
||||
setNameButtonAudioLabel: "establecer nombre",
|
||||
|
||||
settingsButton: "Ajustes",
|
||||
manageStorageButton: "Gestionar almacenamiento",
|
||||
transferDataButton: "Enviar o exportar archivos",
|
||||
|
||||
scrollToChatButton: "Chats",
|
||||
|
||||
backToOverviewAudioLabel: "volver al resumen",
|
||||
chatsHeadline: "Chats",
|
||||
|
||||
addChatAudioLabel: "nombre del nuevo chat",
|
||||
addChatPlaceholder: "Añadir chat",
|
||||
addChatButton: "Añadir chat",
|
||||
},
|
||||
|
||||
settings: {
|
||||
pages: {
|
||||
appearance: "Aspecto",
|
||||
regional: "Idioma y Región",
|
||||
info: "Sobre Comms",
|
||||
},
|
||||
themes: {
|
||||
dark: "Oscuro",
|
||||
light: "Claro",
|
||||
system: "Según dispositivo",
|
||||
},
|
||||
|
||||
version: "Versión",
|
||||
language: "Idioma",
|
||||
|
||||
firstDayOfWeekLabel: "Primer día de la semana",
|
||||
},
|
||||
connectionModal: {
|
||||
connectionModalHeadline: "Gestionar Conexiones",
|
||||
|
||||
connectButtonAudioLabel: "conectar",
|
||||
},
|
||||
|
||||
dataTransferModal: {
|
||||
transferDataHeadline: "Transferencia de datos",
|
||||
sendHeadline: "Enviar a otro dispositivo",
|
||||
receiveHeadline: "Enviar a este dispositivo",
|
||||
exportHeadline: "Exportar archivo",
|
||||
importHeadline: "Importar archivo",
|
||||
selectionDescription:
|
||||
"Selecciona los datos que quieres transferir.",
|
||||
dataEntryDescription:
|
||||
"Introduce estos datos en el otro dispositivo.",
|
||||
dataEntryInputDescription:
|
||||
"Introduce los datos mostrados en el otro dispositivo.",
|
||||
|
||||
notConnectedError: "No estás conectado a ningún servidor.",
|
||||
|
||||
fromThisDeviceButton: "Enviar a otro dispositivo",
|
||||
toThisDeviceButton: "Enviar a este dispositivo",
|
||||
exportButton: "Exportar archivo",
|
||||
importButton: "Importar archivo",
|
||||
|
||||
generalHeadline: "General",
|
||||
|
||||
connectionData: "Datos de Conexión",
|
||||
settingsData: "Datos de Configuración",
|
||||
|
||||
chatsHeadline: "Chats",
|
||||
|
||||
transferChannelHeadline: "Canal de Transferencia",
|
||||
transferKeyHeadline: "Clave de Encriptación de Transferencia",
|
||||
|
||||
sendButton: "Enviar",
|
||||
sendAgainButton: "Enviar otra vez",
|
||||
|
||||
filesSentCount: (count) => `Archivos enviados: ${count}.`,
|
||||
allFilesSent: "Hecho.",
|
||||
|
||||
filesReceivedCount: (count) => `Archivos recibidos: ${count}.`,
|
||||
},
|
||||
|
||||
storage: {
|
||||
noItemSelected: "Ningún elemento seleccionado",
|
||||
notAFile: "(no es un archivo)",
|
||||
contentEmpty: "(vacío)",
|
||||
|
||||
path: "Ruta",
|
||||
content: "Contenido",
|
||||
|
||||
deleteItem: "Eliminar elemento",
|
||||
|
||||
removeJunkButton: "Eliminar archivos basura",
|
||||
},
|
||||
|
||||
chatPage: {
|
||||
closeChatAudioLabe: "cerrar chat",
|
||||
chatSettingsAudioLabel: "configuración del chat",
|
||||
|
||||
pages: {
|
||||
settings: "Configuración",
|
||||
messages: "Mensajes",
|
||||
tasks: "Tareas",
|
||||
calendar: "Calendario",
|
||||
},
|
||||
|
||||
overviewHeadline: "Resumen",
|
||||
|
||||
serverAddress: "Dirección del servidor",
|
||||
serverAddressPlaceholder: "wss://192.168.0.69:3000",
|
||||
connectAudioLabel: "conectar al servidor",
|
||||
disconnectAudioLabel: "desconectar del servidor",
|
||||
manageConnectionsAudioLabel: "gestionar conexiones",
|
||||
|
||||
yourNameLabel: "Tu nombre",
|
||||
yourNamePlaceholder: "Juan Pérez",
|
||||
setNameButtonAudioLabel: "establecer nombre",
|
||||
|
||||
settingsButton: "Ajustes",
|
||||
manageStorageButton: "Gestionar almacenamiento",
|
||||
transferDataButton: "Enviar o exportar archivos",
|
||||
|
||||
scrollToChatButton: "Chats",
|
||||
|
||||
backToOverviewAudioLabel: "volver al resumen",
|
||||
chatsHeadline: "Chats",
|
||||
|
||||
addChatAudioLabel: "nombre del nuevo chat",
|
||||
addChatPlaceholder: "Añadir chat",
|
||||
addChatButton: "Añadir chat",
|
||||
},
|
||||
|
||||
settings: {
|
||||
pages: {
|
||||
appearance: "Aspecto",
|
||||
regional: "Idioma y Región",
|
||||
info: "Sobre Comms",
|
||||
},
|
||||
themes: {
|
||||
dark: "Oscuro",
|
||||
light: "Claro",
|
||||
system: "Según dispositivo",
|
||||
},
|
||||
|
||||
version: "Versión",
|
||||
language: "Idioma",
|
||||
|
||||
firstDayOfWeekLabel: "Primer día de la semana",
|
||||
},
|
||||
connectionModal: {
|
||||
connectionModalHeadline: "Gestionar Conexiones",
|
||||
|
||||
connectButtonAudioLabel: "conectar",
|
||||
},
|
||||
|
||||
dataTransferModal: {
|
||||
transferDataHeadline: "Transferencia de Datos",
|
||||
selectionDescription:
|
||||
"Selecciona los datos que quieres transferir.",
|
||||
dataEntryDescription:
|
||||
"Introduce estos datos en el otro dispositivo.",
|
||||
dataEntryInputDescription:
|
||||
"Introduce los datos mostrados en el otro dispositivo.",
|
||||
|
||||
notConnectedError: "No estás conectado a ningún servidor.",
|
||||
|
||||
fromThisDeviceButton: "Exportar o enviar a otro dispositivo",
|
||||
toThisDeviceButton: "Enviar a este dispositivo",
|
||||
importButton: "Importar desde archivo",
|
||||
|
||||
generalHeadline: "General",
|
||||
|
||||
connectionData: "Datos de Conexión",
|
||||
settingsData: "Datos de Configuración",
|
||||
|
||||
chatsHeadline: "Chats",
|
||||
|
||||
transferChannelHeadline: "Canal de Transferencia",
|
||||
transferKeyHeadline: "Clave de Encriptación de Transferencia",
|
||||
|
||||
sendButton: "Enviar",
|
||||
sendAgainButton: "Enviar otra vez",
|
||||
|
||||
filesSentCount: (count) => `Archivos enviados: ${count}.`,
|
||||
allFilesSent: "Hecho.",
|
||||
|
||||
filesReceivedCount: (count) => `Archivos recibidos: ${count}.`,
|
||||
},
|
||||
|
||||
storage: {
|
||||
noItemSelected: "Ningún elemento seleccionado",
|
||||
notAFile: "(no es un archivo)",
|
||||
contentEmpty: "(vacío)",
|
||||
|
||||
path: "Ruta",
|
||||
content: "Contenido",
|
||||
|
||||
deleteItem: "Eliminar elemento",
|
||||
settings: {
|
||||
settingsHeadline: "Configuración",
|
||||
|
||||
removeJunkButton: "Eliminar archivos basura",
|
||||
},
|
||||
primaryChannelLabel: "Canal principal",
|
||||
setPrimaryChannelButtonAudioLabel: "establecer canal principal",
|
||||
|
||||
chatPage: {
|
||||
closeChatAudioLabe: "cerrar chat",
|
||||
chatSettingsAudioLabel: "configuración del chat",
|
||||
namespaceLabel: "Espacio de nombres",
|
||||
namespacePlaceholder: "Sin espacio de nombres",
|
||||
setNamespaceButtonAudioLabel: "establecer espacio de nombres",
|
||||
|
||||
pages: {
|
||||
settings: "Configuración",
|
||||
messages: "Mensajes",
|
||||
tasks: "Tareas",
|
||||
calendar: "Calendario",
|
||||
},
|
||||
newSecondaryChannelPlaceholder: "Añadir canal secundario",
|
||||
newSecondaryChannelAudioLabel:
|
||||
"nombre del nuevo canal secundario",
|
||||
addSecondaryChannelButtonAudioLabel: "añadir canal secundario",
|
||||
|
||||
settings: {
|
||||
settingsHeadline: "Configuración",
|
||||
encryptionKeyLabel: "Clave de encriptación",
|
||||
setEncryptionKeyButtonAudioLabel:
|
||||
"establecer clave de encriptación",
|
||||
showEncryptionKey: "Mostrar clave de encriptación",
|
||||
|
||||
primaryChannelLabel: "Canal principal",
|
||||
setPrimaryChannelButtonAudioLabel: "establecer canal principal",
|
||||
deleteChatButton: "Eliminar todo el chat",
|
||||
},
|
||||
|
||||
namespaceLabel: "Espacio de nombres",
|
||||
namespacePlaceholder: "Sin espacio de nombres",
|
||||
setNamespaceButtonAudioLabel: "establecer espacio de nombres",
|
||||
message: {
|
||||
messagesHeadline: "Mensajes",
|
||||
|
||||
newSecondaryChannelPlaceholder: "Añadir canal secundario",
|
||||
newSecondaryChannelAudioLabel:
|
||||
"nombre del nuevo canal secundario",
|
||||
addSecondaryChannelButtonAudioLabel: "añadir canal secundario",
|
||||
messageFilterHeadline: "Filtrar mensajes",
|
||||
messageFilterReactionsHadline: "Reacciones",
|
||||
messageFilterAllReactionsButton: "Mostrar todas",
|
||||
|
||||
encryptionKeyLabel: "Clave de encriptación",
|
||||
setEncryptionKeyButtonAudioLabel:
|
||||
"establecer clave de encriptación",
|
||||
showEncryptionKey: "Mostrar clave de encriptación",
|
||||
composerInputPlaceholder: "Escribe un mensaje...",
|
||||
sendMessageButtonAudioLabel: "enviar mensaje",
|
||||
filterMessagesButtonAudioLabel: "filtrar mensajes",
|
||||
|
||||
deleteChatButton: "Eliminar todo el chat",
|
||||
},
|
||||
showMessageInfoButtonAudioLabel:
|
||||
"mostrar información del mensaje",
|
||||
messageInfoHeadline: "Información del Mensaje",
|
||||
cancelReplyAudioLabel: "abortar la respuesta",
|
||||
|
||||
message: {
|
||||
messagesHeadline: "Mensajes",
|
||||
sentBy: "Enviado por",
|
||||
timeSent: "Hora de envío",
|
||||
channel: "Canal",
|
||||
messageContent: "Contenido del mensaje",
|
||||
|
||||
messageFilterHeadline: "Filtrar mensajes",
|
||||
messageFilterReactionsHadline: "Reacciones",
|
||||
messageFilterAllReactionsButton: "Mostrar todas",
|
||||
copyMessageButton: "Copiar mensaje",
|
||||
resendMessageButton: "Reenviar mensaje",
|
||||
decryptMessageButton: "Desencriptar mensaje",
|
||||
replyToMessageButton: "Responder al mensaje",
|
||||
deleteMessageButton: "Eliminar mensaje",
|
||||
|
||||
composerInputPlaceholder: "Escribe un mensaje...",
|
||||
sendMessageButtonAudioLabel: "enviar mensaje",
|
||||
filterMessagesButtonAudioLabel: "filtrar mensajes",
|
||||
//
|
||||
|
||||
showMessageInfoButtonAudioLabel:
|
||||
"mostrar información del mensaje",
|
||||
messageInfoHeadline: "Información del Mensaje",
|
||||
cancelReplyAudioLabel: "abortar la respuesta",
|
||||
thumbsUpReaction: "Reacción: pulgar hacia arriba",
|
||||
checkReaction: "Reacción: marca de verificación",
|
||||
stopReaction: "Reacción: signo de parada",
|
||||
attentionReaction: "Reaccion: signo de atención",
|
||||
doubleAttentionReaction: "Reaccion: signo de atención doble",
|
||||
questionReaction: "Reaccion: signo de interrogación",
|
||||
},
|
||||
|
||||
sentBy: "Enviado por",
|
||||
timeSent: "Hora de envío",
|
||||
channel: "Canal",
|
||||
messageContent: "Contenido del mensaje",
|
||||
task: {
|
||||
newBoardNamePlaceholder: "Crear un tablero",
|
||||
createBoardButtonAudioLabel: "crear tablero",
|
||||
|
||||
copyMessageButton: "Copiar mensaje",
|
||||
resendMessageButton: "Reenviar mensaje",
|
||||
decryptMessageButton: "Desencriptar mensaje",
|
||||
replyToMessageButton: "Responder al mensaje",
|
||||
deleteMessageButton: "Eliminar mensaje",
|
||||
noBoardSelected: "Ningún tablero seleccionado",
|
||||
boardNotFound: "Tablero no encontrado",
|
||||
|
||||
//
|
||||
closeBoardButtonAudioLabel: "cerrar tablero",
|
||||
toggleBoardButtonAudioLabel:
|
||||
"mostrar o ocultar lista de tableros",
|
||||
showBoardSettingsButtonAudioLabel:
|
||||
"mostrar configuración del tablero",
|
||||
|
||||
thumbsUpReaction: "Reacción: pulgar hacia arriba",
|
||||
checkReaction: "Reacción: marca de verificación",
|
||||
stopReaction: "Reacción: signo de parada",
|
||||
attentionReaction: "Reaccion: signo de atención",
|
||||
doubleAttentionReaction: "Reaccion: signo de atención doble",
|
||||
questionReaction: "Reaccion: signo de interrogación",
|
||||
},
|
||||
listViewButtonAudioLabel: "vista de lista",
|
||||
kanbanViewButtonAudioLabel: "vista kanban",
|
||||
statusViewButtonAudioLabel: "vista de cuadrícula de estado",
|
||||
|
||||
task: {
|
||||
newBoardNamePlaceholder: "Crear un tablero",
|
||||
createBoardButtonAudioLabel: "crear tablero",
|
||||
filterTasksButtonAudioLabel: "filtrar tareas",
|
||||
createTaskButtonAudioLabel: "crear nueva tarea",
|
||||
|
||||
noBoardSelected: "Ningún tablero seleccionado",
|
||||
boardNotFound: "Tablero no encontrado",
|
||||
boardSettingsHeadline: "Configuración del Tablero",
|
||||
boardNameInputLabel: "Nombre del tablero",
|
||||
deleteBoardButton: "Eliminar tablero y todas las tareas",
|
||||
|
||||
closeBoardButtonAudioLabel: "cerrar tablero",
|
||||
toggleBoardButtonAudioLabel:
|
||||
"mostrar o ocultar lista de tableros",
|
||||
showBoardSettingsButtonAudioLabel:
|
||||
"mostrar configuración del tablero",
|
||||
taskSettingsHeadline: "Editar Tarea",
|
||||
|
||||
listViewButtonAudioLabel: "vista de lista",
|
||||
kanbanViewButtonAudioLabel: "vista kanban",
|
||||
statusViewButtonAudioLabel: "vista de cuadrícula de estado",
|
||||
taskNameLabel: "Título",
|
||||
taskBoardLabel: "Tablero",
|
||||
|
||||
filterTasksButtonAudioLabel: "filtrar tareas",
|
||||
createTaskButtonAudioLabel: "crear nueva tarea",
|
||||
taskCategoryLabel: "Categoría",
|
||||
taskStatusLabel: "Estado",
|
||||
taskPriorityLabel: "Prioridad",
|
||||
|
||||
boardSettingsHeadline: "Configuración del Tablero",
|
||||
boardNameInputLabel: "Nombre del tablero",
|
||||
deleteBoardButton: "Eliminar tablero y todas las tareas",
|
||||
taskDescriptionLabel: "Descripción",
|
||||
|
||||
taskSettingsHeadline: "Editar Tarea",
|
||||
taskDateLabel: "Fecha",
|
||||
taskTimeLabel: "Hora",
|
||||
|
||||
taskNameLabel: "Título",
|
||||
taskBoardLabel: "Tablero",
|
||||
deleteTaskButton: "Eliminar tarea",
|
||||
|
||||
taskCategoryLabel: "Categoría",
|
||||
taskStatusLabel: "Estado",
|
||||
taskPriorityLabel: "Prioridad",
|
||||
filterTasksHeadline: "Filtrar Tareas",
|
||||
|
||||
taskDescriptionLabel: "Descripción",
|
||||
renameCategoryInputPlaceholder: "Renombrar categoría",
|
||||
renameStatusInputPlaceholder: "Renombrar estado",
|
||||
},
|
||||
|
||||
taskDateLabel: "Fecha",
|
||||
taskTimeLabel: "Hora",
|
||||
calendar: {
|
||||
eventsBoard: "Eventos",
|
||||
|
||||
deleteTaskButton: "Eliminar tarea",
|
||||
///
|
||||
|
||||
filterTasksHeadline: "Filtrar Tareas",
|
||||
todayButtonAudioLabel: "ir a hoy",
|
||||
|
||||
renameCategoryInputPlaceholder: "Renombrar categoría",
|
||||
renameStatusInputPlaceholder: "Renombrar estado",
|
||||
},
|
||||
previousMonthButtonAudioLabel: "mes anterior",
|
||||
nextMonthButtonAudioLabel: "mes siguiente",
|
||||
|
||||
calendar: {
|
||||
eventsBoard: "Eventos",
|
||||
yearInputAudioLabel: "año",
|
||||
monthInputAudioLabel: "mes",
|
||||
|
||||
///
|
||||
yearInputPlaceholder: "2000",
|
||||
monthInputPlaceholder: "01",
|
||||
|
||||
todayButtonAudioLabel: "ir a hoy",
|
||||
searchEventsHeadline: "Buscar Eventos",
|
||||
|
||||
previousMonthButtonAudioLabel: "mes anterior",
|
||||
nextMonthButtonAudioLabel: "mes siguiente",
|
||||
|
||||
yearInputAudioLabel: "año",
|
||||
monthInputAudioLabel: "mes",
|
||||
|
||||
yearInputPlaceholder: "2000",
|
||||
monthInputPlaceholder: "01",
|
||||
|
||||
searchEventsHeadline: "Buscar Eventos",
|
||||
|
||||
events: "Eventos",
|
||||
noEvents: "No hay eventos",
|
||||
},
|
||||
},
|
||||
events: "Eventos",
|
||||
noEvents: "No hay eventos",
|
||||
},
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
@@ -148,6 +148,10 @@ export default class FileTransferViewModel extends Context {
|
||||
this.presentedModal.value = FileTransferModals.TransferDataInput;
|
||||
};
|
||||
|
||||
showImportModal = (): void => {
|
||||
this.presentedModal.value = FileTransferModals.ImportModal;
|
||||
};
|
||||
|
||||
prepareReceivingData = (): void => {
|
||||
if (this.cannotPrepareToReceive.value == true) return;
|
||||
this.presentedModal.value = FileTransferModals.ReceptionDisplay;
|
||||
@@ -204,4 +208,7 @@ export enum FileTransferModals {
|
||||
// receiving
|
||||
TransferDataInput,
|
||||
ReceptionDisplay,
|
||||
|
||||
// import
|
||||
ImportModal,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user