add button to share chat, add VDMDI tag, fixes

This commit is contained in:
vd
2026-10-09 16:14:32 +02:00
parent 73344644e7
commit 651c9bd29d
13 changed files with 1012 additions and 914 deletions
+59 -15
View File
@@ -348,7 +348,7 @@
greeting: (name) => `Hi ${name}`,
///
serverAddress: "Server address",
serverAddressPlaceholder: "wss://udn-s1.onrender.com",
serverAddressPlaceholder: "wss://udn.vdpr.org",
connectAudioLabel: "connect to server",
disconnectAudioLabel: "disconnect from server",
manageConnectionsAudioLabel: "manage connections",
@@ -385,7 +385,9 @@
},
about: {
version: "Version",
checkUpdatesButton: "Check for updates"
checkUpdatesButton: "Check for updates",
brand: "Developed by VDMDI",
brandDescription: "Code available on Viridian Public Resources (VDPR)"
}
},
onboarding: {
@@ -472,6 +474,7 @@
settingsHeadline: "Settings",
nameLabel: "Chat name",
setNameButtonAudioLabel: "set name",
transferLabel: "Share chat",
newSecondaryChannelPlaceholder: "Add secondary channel",
newSecondaryChannelAudioLabel: "name of new secondary channel",
addSecondaryChannelButtonAudioLabel: "add secondary channel",
@@ -623,7 +626,7 @@
appName: "Coordination Tool",
greeting: (name) => `Hallo ${name}`,
serverAddress: "Serveradresse",
serverAddressPlaceholder: "wss://udn-s1.onrender.com",
serverAddressPlaceholder: "wss://udn.vdpr.org",
connectAudioLabel: "mit Server verbinden",
disconnectAudioLabel: "vom Server trennen",
manageConnectionsAudioLabel: "Verbindungen verwalten",
@@ -659,7 +662,9 @@
},
about: {
version: "Version",
checkUpdatesButton: "Nach Updates suchen"
checkUpdatesButton: "Nach Updates suchen",
brand: "Software von VDMDI",
brandDescription: "Code verf\xFCgbar auf Viridian Public Resources (VDPR)"
}
},
onboarding: {
@@ -740,13 +745,14 @@
settingsHeadline: "Einstellungen",
nameLabel: "Name",
setNameButtonAudioLabel: "namen festlegen",
transferLabel: "Chat teilen",
newSecondaryChannelPlaceholder: "Sekund\xE4ren Kanal hinzuf\xFCgen",
newSecondaryChannelAudioLabel: "Name des neuen sekund\xE4ren Kanals",
addSecondaryChannelButtonAudioLabel: "Sekund\xE4ren Kanal hinzuf\xFCgen",
encryptionKeyLabel: "Schl\xFCssel",
setEncryptionKeyButtonAudioLabel: "Schl\xFCssel festlegen",
showEncryptionKey: "Schl\xFCssel anzeigen",
randomizeKey: "Zuf\xE4llig generieren",
randomizeKey: "Generieren",
setColorButtonAudioLabel: "Farbe festlegen",
deleteChatButton: "Gesamten Chat l\xF6schen",
deleteChatHeadline: "Gesamten Chat l\xF6schen?",
@@ -795,7 +801,7 @@
filterTasksButtonAudioLabel: "Aufgaben filtern",
createTaskButtonAudioLabel: "Neue Aufgabe erstellen",
boardSettingsHeadline: "Board-Einstellungen",
boardNameInputLabel: "Boardname",
boardNameInputLabel: "Name",
deleteBoardButton: "Board und alle Aufgaben l\xF6schen",
taskSettingsHeadline: "Aufgabe bearbeiten",
taskNameLabel: "Titel",
@@ -878,7 +884,7 @@
appName: "Coordination Tool",
greeting: (name) => `Hola ${name}`,
serverAddress: "Direcci\xF3n del servidor",
serverAddressPlaceholder: "wss://udn-s1.onrender.com",
serverAddressPlaceholder: "wss://udn.vdpr.org",
connectAudioLabel: "conectar al servidor",
disconnectAudioLabel: "desconectar del servidor",
manageConnectionsAudioLabel: "gestionar conexiones",
@@ -914,7 +920,9 @@
},
about: {
version: "Versi\xF3n",
checkUpdatesButton: "Buscar actualisaciones"
checkUpdatesButton: "Buscar actualisaciones",
brand: "Software de VDMDI",
brandDescription: "Code desponible en Viridian Public Resources (VDPR)"
}
},
onboarding: {
@@ -995,6 +1003,7 @@
settingsHeadline: "Configuraci\xF3n",
nameLabel: "Nombre del chat",
setNameButtonAudioLabel: "establecer nombre",
transferLabel: "Compartir chat",
newSecondaryChannelPlaceholder: "A\xF1adir canal secundario",
newSecondaryChannelAudioLabel: "nombre del nuevo canal secundario",
addSecondaryChannelButtonAudioLabel: "a\xF1adir canal secundario",
@@ -1530,6 +1539,10 @@
window.location.reload();
}, 500);
};
// VDPR
this.openVDPR = () => {
window.open("https://vdpr.org/VDMDI/CT");
};
this.translations = allTranslations[settingsModel2.language] || allTranslations.en;
this.latestVersion.subscribe((latestVersion) => {
this.updateText.value = this.translations.homePage.updateButton(latestVersion);
@@ -5150,7 +5163,7 @@
// src/ViewModel/Chat/chatViewModel.ts
var ChatViewModel6 = class extends ContextHost {
// init
constructor(coreViewModel2, chatModel, settingsViewModel2, notificationViewModel, connectionViewModel2, chatListViewModel2, contactListViewModel2) {
constructor(coreViewModel2, chatModel, settingsViewModel2, notificationViewModel, connectionViewModel2, chatListViewModel2, contactListViewModel2, fileTransferViewModel2) {
super("chat", coreViewModel2);
this.coreViewModel = coreViewModel2;
this.chatModel = chatModel;
@@ -5159,6 +5172,7 @@
this.connectionViewModel = connectionViewModel2;
this.chatListViewModel = chatListViewModel2;
this.contactListViewModel = contactListViewModel2;
this.fileTransferViewModel = fileTransferViewModel2;
// state
this.displayedColor = new State("standard" /* Standard */);
this.selectedPage = new State(
@@ -5191,6 +5205,9 @@
const index = this.chatListViewModel.chatIndexManager.getIndex(this);
this.index.value = index;
};
this.share = () => {
this.fileTransferViewModel.showDirectionSelectionModal();
};
// load
this.loadPageSelection = () => {
const path = StorageModel.getPath(
@@ -5390,11 +5407,12 @@
// src/ViewModel/Chat/chatListViewModel.ts
var ChatListViewModel = class {
// init
constructor(coreViewModel2, settingsViewModel2, connectionViewModel2, contactListViewModel2) {
constructor(coreViewModel2, settingsViewModel2, connectionViewModel2, contactListViewModel2, fileTransferViewModel2) {
this.coreViewModel = coreViewModel2;
this.settingsViewModel = settingsViewModel2;
this.connectionViewModel = connectionViewModel2;
this.contactListViewModel = contactListViewModel2;
this.fileTransferViewModel = fileTransferViewModel2;
// data
this.chatIndexManager = new IndexManager(
(chatViewModel) => chatViewModel.settingsPageViewModel.name.value
@@ -5434,7 +5452,8 @@
this.notificationViewModel,
this.connectionViewModel,
this,
this.contactListViewModel
this.contactListViewModel,
this.fileTransferViewModel
);
};
this.updateIndices = () => {
@@ -6731,7 +6750,15 @@
}
);
};
return /* @__PURE__ */ createElement("div", { id: "settings-page" }, /* @__PURE__ */ createElement("div", { class: "pane-wrapper" }, /* @__PURE__ */ createElement("div", { class: "pane" }, /* @__PURE__ */ createElement("div", { class: "toolbar" }, /* @__PURE__ */ createElement("span", { class: "title" }, coreViewModel2.translations.chatPage.settings.settingsHeadline)), /* @__PURE__ */ createElement("div", { class: "content" }, /* @__PURE__ */ createElement("label", { class: "tile flex-no" }, /* @__PURE__ */ createElement("span", { class: "icon" }, "forum"), /* @__PURE__ */ createElement("div", null, /* @__PURE__ */ createElement("span", null, coreViewModel2.translations.chatPage.settings.nameLabel), /* @__PURE__ */ createElement(
return /* @__PURE__ */ createElement("div", { id: "settings-page" }, /* @__PURE__ */ createElement("div", { class: "pane-wrapper" }, /* @__PURE__ */ createElement("div", { class: "pane" }, /* @__PURE__ */ createElement("div", { class: "toolbar" }, /* @__PURE__ */ createElement("span", { class: "title" }, coreViewModel2.translations.chatPage.settings.settingsHeadline)), /* @__PURE__ */ createElement("div", { class: "content" }, /* @__PURE__ */ createElement(
"button",
{
class: "standard width-input",
"on:click": settingsPageViewModel.chatViewModel.share
},
/* @__PURE__ */ createElement("span", null, coreViewModel2.translations.chatPage.settings.transferLabel),
/* @__PURE__ */ createElement("span", { class: "icon" }, "share")
), /* @__PURE__ */ createElement("hr", null), /* @__PURE__ */ createElement("label", { class: "tile flex-no" }, /* @__PURE__ */ createElement("span", { class: "icon" }, "forum"), /* @__PURE__ */ createElement("div", null, /* @__PURE__ */ createElement("span", null, coreViewModel2.translations.chatPage.settings.nameLabel), /* @__PURE__ */ createElement(
"input",
{
"bind:value": settingsPageViewModel.nameInput,
@@ -7978,7 +8005,23 @@
},
/* @__PURE__ */ createElement("span", { "subscribe:innerText": coreViewModel2.updateText }),
/* @__PURE__ */ createElement("span", { class: "icon" }, "update")
), /* @__PURE__ */ createElement("button", { class: "standard", "on:click": coreViewModel2.checkUpdates }, coreViewModel2.translations.settings.about.checkUpdatesButton)));
), /* @__PURE__ */ createElement("button", { class: "standard", "on:click": coreViewModel2.checkUpdates }, coreViewModel2.translations.settings.about.checkUpdatesButton), /* @__PURE__ */ createElement("hr", null), /* @__PURE__ */ createElement(
"img",
{
class: "width-100",
style: "max-width: 256px",
src: "/vdmdi-logo.png"
}
), /* @__PURE__ */ createElement(
"button",
{
class: "tile flex-row",
"on:click": coreViewModel2.openVDPR
},
/* @__PURE__ */ createElement("span", { class: "icon" }, "code"),
/* @__PURE__ */ createElement("div", null, /* @__PURE__ */ createElement("b", null, coreViewModel2.translations.settings.about.brand), /* @__PURE__ */ createElement("span", { class: "secondary" }, coreViewModel2.translations.settings.about.brandDescription)),
/* @__PURE__ */ createElement("span", { class: "icon" }, "open_in_new")
)));
}
function SettingsRegionalPane(coreViewModel2, settingsViewModel2) {
return /* @__PURE__ */ createElement("div", { class: "slide-up" }, /* @__PURE__ */ createElement("h2", null, coreViewModel2.translations.settings.pages.regional), /* @__PURE__ */ createElement("hr", null), /* @__PURE__ */ createElement("h3", null, coreViewModel2.translations.settings.regional.language), OptionButtonList(
@@ -9317,13 +9360,14 @@
settingsViewModel
);
var connectionViewModel = new ConnectionViewModel(coreViewModel);
var fileTransferViewModel = new FileTransferViewModel(coreViewModel);
var chatListViewModel = new ChatListViewModel(
coreViewModel,
settingsViewModel,
connectionViewModel,
contactListViewModel
contactListViewModel,
fileTransferViewModel
);
var fileTransferViewModel = new FileTransferViewModel(coreViewModel);
var onboardingViewModel = new OnboardingViewModel(
connectionViewModel,
fileTransferViewModel,