Added export buttons

master
Harald Wolff 2024-04-26 16:28:44 +02:00
parent 73609501ab
commit 6fe938798b
3 changed files with 20 additions and 4 deletions

View File

@ -33,11 +33,14 @@
<div class="sz-12 text-center"><button @click="authenticate">Anmelden...</button></div>
</div>
</div>
<div v-if="chatApp.identity.authenticated" class="flex-grow-1 fill">
<div class="row" style="align-items: stretch;">
<div class="sz-3 bg-white border-radius-2 h-100 overflow-auto">
<div class="">
<button @click="newChat();">neu...</button>
<button class="symbol" @click="exportChats();">
<img src="contrib/lnstyles/svg/triangle-down.svg"></button>
</div>
<div v-for="chat in chatApp.chats.slice().reverse()"
class="border-radius-1 border-1 row m-1 p-1"
@ -50,6 +53,8 @@
class="flex-grow-1 text-right">{{ chat.assistant.name }}</small>
</div>
<div class="sz-1">
<img src="contrib/lnstyles/svg/triangle-down.svg"
@click="exportChat(chat);">
<img src="contrib/lnstyles/svg/delete.svg"
@click="chatApp.removeChat(chat);">
</div>
@ -145,6 +150,7 @@
assistants: config.assistants,
loginUsername: "",
loginPassword: "",
$,
};
},
methods: {
@ -178,6 +184,12 @@
authenticate(){
console.log("authenticate", this.loginUsername);
this.chatApp.identity.authenticate(this.loginUsername, this.loginPassword);
},
exportChat(chat){
$.saveAs(chat.title + '.json', chat.backup());
},
exportChats(){
$.saveAs('ai.chats.json', this.chatApp.backup());
}
}
})

10
chat.js
View File

@ -26,7 +26,7 @@ export class Chat {
}
backup(){
return { created: this._created, messages: this._messages, assistant: this._assistant };
return { exported: new Date().getTime(), created: this._created, messages: this._messages, assistant: this._assistant };
}
get title(){
@ -166,11 +166,15 @@ export class ChatApp {
}
saveChats() {
let backup = {chats: [],};
localStorage.setItem("ai.chats", JSON.stringify(this.backup()));
}
backup(){
let backup = {chats: [], exported: new Date().getTime()};
this.chats.forEach((v) => {
backup.chats.push(v.backup());
});
localStorage.setItem("ai.chats", JSON.stringify(backup));
return backup;
}
chat(content) {

@ -1 +1 @@
Subproject commit e329de2b674fc536d94e639c2543f02b2c55b003
Subproject commit 3d878c5ed6fcb736aa9a931ea08e327bb94cfc59