moment/src/gui/Popups/RedactPopup.qml

61 lines
1.5 KiB
QML
Raw Normal View History

2020-03-27 07:31:57 +11:00
// SPDX-License-Identifier: LGPL-3.0-or-later
import QtQuick 2.12
import QtQuick.Layouts 1.12
import "../Base"
BoxPopup {
summary.text:
2020-04-03 01:19:43 +11:00
isLast ?
qsTr("Remove your last message?") :
eventSenderAndIds.length > 1 ?
qsTr("Remove %1 messages?").arg(eventSenderAndIds.length) :
2020-04-03 01:19:43 +11:00
qsTr("Remove this message?")
2020-03-27 07:31:57 +11:00
details.color: theme.colors.warningText
details.text:
onlyOwnMessageWarning ?
2020-04-03 01:19:43 +11:00
qsTr("Only your messages can be removed") :
""
2020-03-27 07:31:57 +11:00
okText: qsTr("Remove")
// box.focusButton: "ok"
2020-03-27 07:31:57 +11:00
onOpened: reasonField.field.forceActiveFocus()
onOk: {
const idsForSender = {} // {senderId: [event.id, ...]}
2020-03-27 07:31:57 +11:00
for (const [senderId, eventClientId] of eventSenderAndIds) {
if (! idsForSender[senderId])
idsForSender[senderId] = []
2020-04-03 01:19:43 +11:00
idsForSender[senderId].push(eventClientId)
}
for (const [senderId, eventClientIds] of Object.entries(idsForSender))
py.callClientCoro(
mainUI.accountIds.includes(senderId) ? senderId : preferUserId,
"room_mass_redact",
[roomId, reasonField.field.text, ...eventClientIds]
)
}
property string preferUserId: ""
2020-03-27 07:31:57 +11:00
property string roomId: ""
property var eventSenderAndIds: [] // [[senderId, event.id], ...]
property bool onlyOwnMessageWarning: false
2020-04-03 01:19:43 +11:00
property bool isLast: false
HLabeledTextField {
id: reasonField
label.text: qsTr("Optional reason:")
2020-04-03 01:19:43 +11:00
Layout.fillWidth: true
}
2020-03-27 07:31:57 +11:00
}