mirror of
https://github.com/DJ2LS/FreeDATA
synced 2024-05-14 08:04:33 +00:00
first deleting of messages
This commit is contained in:
parent
6924c31b04
commit
8fa79c2bf8
|
@ -10,15 +10,28 @@
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<p class="card-text">{{ message.msg }}</p>
|
<p class="card-text">{{ message.msg }}</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="card-footer p-0 bg-light border-top-0">
|
<div class="card-footer p-0 bg-light border-top-0">
|
||||||
<p class="text-muted p-0 m-0 me-1 text-end">{{ getDateTime }}</p> <!-- Display formatted timestamp in card-footer -->
|
<p class="text-muted p-0 m-0 me-1 text-end">{{ getDateTime }}</p> <!-- Display formatted timestamp in card-footer -->
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!-- Delete button outside of the card -->
|
||||||
|
<div class="col-2">
|
||||||
|
<button class="btn btn-outline-secondary" @click="deleteMessage"><i class="bi bi-trash"></i></button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
|
import {deleteMessageFromDB} from '../js/chatHandler'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
props: {
|
props: {
|
||||||
message: Object,
|
message: Object,
|
||||||
|
@ -48,6 +61,10 @@ export default {
|
||||||
return 'col-9';
|
return 'col-9';
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
deleteMessage(){
|
||||||
|
deleteMessageFromDB(this.message._id)
|
||||||
|
|
||||||
|
},
|
||||||
getDateTime() {
|
getDateTime() {
|
||||||
var datetime = new Date(this.message.timestamp * 1000).toLocaleString(
|
var datetime = new Date(this.message.timestamp * 1000).toLocaleString(
|
||||||
navigator.language,
|
navigator.language,
|
||||||
|
|
|
@ -1,5 +1,13 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="row justify-content-end mb-2">
|
<div class="row justify-content-end mb-2">
|
||||||
|
<!-- control area -->
|
||||||
|
<div class="col-2 p-0 m-0">
|
||||||
|
<button class="btn btn-outline-secondary me-1" @click="repeatMessage"><i class="bi bi-arrow-repeat"></i></button>
|
||||||
|
<button class="btn btn-outline-secondary" @click="deleteMessage"><i class="bi bi-trash"></i></button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- message area -->
|
||||||
<div :class="messageWidthClass">
|
<div :class="messageWidthClass">
|
||||||
<div class="card bg-primary text-white">
|
<div class="card bg-primary text-white">
|
||||||
|
|
||||||
|
@ -7,7 +15,6 @@
|
||||||
<p class="card-text">{{ getFileContent["filename"] }} | {{ getFileContent["filesize"] }} Bytes | {{ getFileContent["filetype"] }}</p>
|
<p class="card-text">{{ getFileContent["filename"] }} | {{ getFileContent["filesize"] }} Bytes | {{ getFileContent["filetype"] }}</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<p class="card-text">{{ message.msg }}</p>
|
<p class="card-text">{{ message.msg }}</p>
|
||||||
</div>
|
</div>
|
||||||
|
@ -16,15 +23,12 @@
|
||||||
<p class="text p-0 m-0 me-1 text-end">{{ getDateTime }}</p> <!-- Display formatted timestamp in card-footer -->
|
<p class="text p-0 m-0 me-1 text-end">{{ getDateTime }}</p> <!-- Display formatted timestamp in card-footer -->
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="card-footer p-0 border-top-0" v-if="message.percent < 100">
|
<div class="card-footer p-0 border-top-0" v-if="message.percent < 100">
|
||||||
<div class="progress bg-secondary " :style="{height: 10 + 'px'}">
|
<div class="progress bg-secondary" :style="{ height: '10px' }">
|
||||||
<div
|
<div
|
||||||
class="progress-bar progress-bar-striped overflow-visible"
|
class="progress-bar progress-bar-striped overflow-visible"
|
||||||
role="progressbar"
|
role="progressbar"
|
||||||
:style="{ width: message.percent + '%', height: 10 + 'px'}"
|
:style="{ width: message.percent + '%', height: '10px' }"
|
||||||
:aria-valuenow="message.percent"
|
:aria-valuenow="message.percent"
|
||||||
aria-valuemin="0"
|
aria-valuemin="0"
|
||||||
aria-valuemax="100"
|
aria-valuemax="100"
|
||||||
|
@ -38,17 +42,31 @@
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
|
import {repeatMessageTransmission, deleteMessageFromDB} from '../js/chatHandler'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
props: {
|
props: {
|
||||||
message: Object,
|
message: Object,
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
getFileContent(){
|
getFileContent(){
|
||||||
|
|
||||||
var filename = Object.keys(this.message._attachments)[0]
|
var filename = Object.keys(this.message._attachments)[0]
|
||||||
var filesize = this.message._attachments[filename]["length"]
|
var filesize = this.message._attachments[filename]["length"]
|
||||||
var filetype = filename.split(".")[1]
|
var filetype = filename.split(".")[1]
|
||||||
|
|
||||||
|
// ensure filesize is 0 for hiding message header if no data is available
|
||||||
|
if (typeof filename === 'undefined' || filename === '' || filename === '-'){
|
||||||
|
filesize = 0
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
return {filename: filename, filesize: filesize, filetype: filetype}
|
return {filename: filename, filesize: filesize, filetype: filetype}
|
||||||
},
|
},
|
||||||
messageWidthClass() {
|
messageWidthClass() {
|
||||||
|
@ -62,6 +80,17 @@ export default {
|
||||||
return 'col-9';
|
return 'col-9';
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
repeatMessage(){
|
||||||
|
repeatMessageTransmission(this.message._id)
|
||||||
|
|
||||||
|
},
|
||||||
|
deleteMessage(){
|
||||||
|
deleteMessageFromDB(this.message._id)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
getDateTime() {
|
getDateTime() {
|
||||||
var datetime = new Date(this.message.timestamp * 1000).toLocaleString(
|
var datetime = new Date(this.message.timestamp * 1000).toLocaleString(
|
||||||
navigator.language,
|
navigator.language,
|
||||||
|
|
|
@ -67,17 +67,24 @@ export function newMessage(dxcallsign, chatmessage, chatFile, chatFileName, chat
|
||||||
var mode = ''
|
var mode = ''
|
||||||
var frames = ''
|
var frames = ''
|
||||||
var data = ''
|
var data = ''
|
||||||
|
if (typeof chatFile !== "undefined"){
|
||||||
var file = chatFile;
|
var file = chatFile;
|
||||||
|
var filetype = chatFileType
|
||||||
|
var filename = chatFileName
|
||||||
|
} else {
|
||||||
|
var file = '';
|
||||||
|
var filetype = 'text'
|
||||||
|
var filename = ''
|
||||||
|
}
|
||||||
var file_checksum = ''//crc32(file).toString(16).toUpperCase();
|
var file_checksum = ''//crc32(file).toString(16).toUpperCase();
|
||||||
var checksum = ''
|
var checksum = ''
|
||||||
var message_type = 'transmit'
|
var message_type = 'transmit'
|
||||||
var command = ''
|
var command = ''
|
||||||
var filetype = chatFileType
|
|
||||||
var filename = chatFileName
|
|
||||||
var timestamp = Math.floor(Date.now() / 1000)
|
var timestamp = Math.floor(Date.now() / 1000)
|
||||||
var uuid = uuidv4();
|
var uuid = uuidv4();
|
||||||
|
// TODO: Not sure what this uuid part is needed for ...
|
||||||
let uuidlast = uuid.lastIndexOf("-");
|
let uuidlast = uuid.lastIndexOf("-");
|
||||||
console.log(uuidlast)
|
|
||||||
uuidlast += 1;
|
uuidlast += 1;
|
||||||
if (uuidlast > 0) {
|
if (uuidlast > 0) {
|
||||||
uuid = uuid.substring(uuidlast);
|
uuid = uuid.substring(uuidlast);
|
||||||
|
@ -86,6 +93,8 @@ export function newMessage(dxcallsign, chatmessage, chatFile, chatFileName, chat
|
||||||
uuid = uuid.slice(-8);
|
uuid = uuid.slice(-8);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
var data_with_attachment =
|
var data_with_attachment =
|
||||||
timestamp +
|
timestamp +
|
||||||
split_char +
|
split_char +
|
||||||
|
@ -157,6 +166,27 @@ function sortChatList(){
|
||||||
return reorderedData
|
return reorderedData
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//repeat a message
|
||||||
|
export function repeatMessageTransmission(id){
|
||||||
|
console.log(id)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// delete a message from databse and gui
|
||||||
|
export function deleteMessageFromDB(id){
|
||||||
|
console.log("deleting: " + id)
|
||||||
|
db.get(id).then(function (doc) {
|
||||||
|
db.remove(doc)
|
||||||
|
})
|
||||||
|
|
||||||
|
// overwrote unsorted chat list by filtering if not ID
|
||||||
|
chat.unsorted_chat_list = chat.unsorted_chat_list.filter(entry => entry.uuid !== id);
|
||||||
|
|
||||||
|
// and finally generate our sorted chat list, which is the key store for chat gui rendering
|
||||||
|
// the removed entry should be removed now from gui
|
||||||
|
chat.sorted_chat_list = sortChatList()
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
// function for fetching all messages from chat / updating chat
|
// function for fetching all messages from chat / updating chat
|
||||||
export async function updateAllChat() {
|
export async function updateAllChat() {
|
||||||
|
|
Loading…
Reference in a new issue