chores(@chat): bring back download messages

fixes #6163
This commit is contained in:
Anthony Laibe 2022-06-22 09:43:30 +02:00 committed by Iuri Matias
parent 60ed62231e
commit 2449c8840e
14 changed files with 52 additions and 6 deletions

View File

@ -1,5 +1,6 @@
import Tables
import NimQml
import json
import io_interface
import ../../../../../app_service/service/settings/service as settings_service
@ -12,6 +13,7 @@ import ../../../../../app_service/service/wallet_account/service as wallet_accou
import ../../../../core/signals/types
import ../../../../core/eventemitter
import ../../../shared_models/message_item
type
@ -196,3 +198,13 @@ proc getTransactionDetails*(self: Controller, message: MessageDto): (string,stri
proc getWalletAccounts*(self: Controller): seq[wallet_account_service.WalletAccountDto] =
return self.messageService.getWalletAccounts()
proc downloadMessages*(self: Controller, messages: seq[message_item.Item], filePath: string) =
let data = newJArray()
for message in messages:
data.elems.add(%*{
"id": message.id(), "text": message.messageText(), "timestamp": message.timestamp(),
"sender": message.senderDisplayName()
})
writeFile(url_toLocalFile(filePath), $data)

View File

@ -108,3 +108,6 @@ method getCurrentFleet*(self: AccessInterface): string {.base.} =
method amIChatAdmin*(self: AccessInterface): bool {.base.} =
raise newException(ValueError, "No implementation available")
method downloadMessages*(self: AccessInterface, filePath: string) =
raise newException(ValueError, "No implementation available")

View File

@ -1,6 +1,7 @@
import NimQml
import ../../../../../../app_service/service/message/dto/[message, reaction, pinned_message]
import ../../../../shared_models/message_item
type
AccessInterface* {.pure inheritable.} = ref object of RootObj
@ -123,3 +124,6 @@ method leaveChat*(self: AccessInterface) {.base.} =
method didIJoinedChat*(self: AccessInterface): bool {.base.} =
raise newException(ValueError, "No implementation available")
method getMessages*(self: AccessInterface): seq[message_item.Item] =
raise newException(ValueError, "No implementation available")

View File

@ -486,3 +486,6 @@ method onChatMemberUpdated*(self: Module, publicKey: string, admin: bool, joined
return
self.view.model().refreshItemWithId(CHAT_IDENTIFIER_MESSAGE_ID)
method getMessages*(self: Module): seq[message_item.Item] =
return self.view.model().items

View File

@ -162,4 +162,4 @@ QtObject:
proc refreshAMessageUserRespondedTo(self: View, msgId: string) {.signal.}
proc emitRefreshAMessageUserRespondedToSignal*(self: View, msgId: string) =
self.refreshAMessageUserRespondedTo(msgId)
self.refreshAMessageUserRespondedTo(msgId)

View File

@ -331,3 +331,7 @@ method onChatEdited*(self: Module, chatDto: ChatDto) =
method onChatRenamed*(self: Module, newName: string) =
self.view.updateChatDetailsName(newName)
self.messagesModule.updateChatIdentifier()
method downloadMessages*(self: Module, filePath: string) =
let messages = self.messagesModule.getMessages()
self.controller.downloadMessages(messages, filePath)

View File

@ -122,3 +122,6 @@ QtObject:
proc updateChatDetailsName*(self: View, name: string) =
self.chatDetails.setName(name)
self.chatDetailsChanged()
proc downloadMessages*(self: View, filePath: string) {.slot.} =
self.delegate.downloadMessages(filePath)

View File

@ -284,3 +284,6 @@ method reorderCommunityChat*(self: AccessInterface, categoryId: string, chatId:
method onMeMentionedInEditedMessage*(self: AccessInterface, chatId: string, editedMessage : MessageDto) {.base.} =
raise newException(ValueError, "No implementation available")
method downloadMessages*(self: AccessInterface, chatId: string, filePath: string) =
raise newException(ValueError, "No implementation available")

View File

@ -807,3 +807,10 @@ method addChatIfDontExist*(self: Module,
return
self.addNewChat(chat, belongsToCommunity, events, settingsService, contactService, chatService,
communityService, messageService, gifService, mailserversService, setChatAsActive)
method downloadMessages*(self: Module, chatId: string, filePath: string) =
if(not self.chatContentModules.contains(chatId)):
error "unexisting chat key: ", chatId, methodName="downloadMessages"
return
self.chatContentModules[chatId].downloadMessages(filePath)

View File

@ -293,3 +293,6 @@ QtObject:
return
self.loadingHistoryMessagesInProgress = value
self.loadingHistoryMessagesInProgressChanged()
proc downloadMessages*(self: View, chatId: string, filePath: string) {.slot.} =
self.delegate.downloadMessages(chatId, filePath)

View File

@ -38,7 +38,7 @@ type
QtObject:
type
Model* = ref object of QAbstractListModel
items: seq[Item]
items*: seq[Item]
allKeys: seq[int]
proc delete(self: Model) =

View File

@ -256,7 +256,11 @@ ColumnLayout {
onDeleteCommunityChat: root.rootStore.removeCommunityChat(chatId)
onDownloadMessages: {
// Not Refactored Yet
if(!chatContentModule) {
console.debug("error on leave chat from context menu - chat content module is not set")
return
}
chatContentModule.downloadMessages(file)
}
onDisplayProfilePopup: {

View File

@ -327,7 +327,7 @@ Item {
onDeleteCommunityChat: root.store.removeCommunityChat(chatId)
onDownloadMessages: {
// Not Refactored Yet
root.communitySectionModule.downloadMessages(chatId, file)
}
onDisplayProfilePopup: {

View File

@ -232,7 +232,7 @@ Item {
}
onDownloadMessages: {
// Not Refactored Yet
root.chatSectionModule.downloadMessages(chatId, file)
}
onDisplayProfilePopup: {