From 50a6265b93a9fc5496c9e93987e5806b3369b125 Mon Sep 17 00:00:00 2001 From: ubermanu <e.vodor@gmail.com> Date: Tue, 23 Mar 2021 11:50:43 +0100 Subject: [PATCH] minor: allow users to retract file uploads --- src/plugins/sib-retract-file-upload.js | 34 ++++++++++++++++++++++++++ src/solid-xmpp-chat.js | 2 ++ 2 files changed, 36 insertions(+) create mode 100644 src/plugins/sib-retract-file-upload.js diff --git a/src/plugins/sib-retract-file-upload.js b/src/plugins/sib-retract-file-upload.js new file mode 100644 index 0000000..f7aa683 --- /dev/null +++ b/src/plugins/sib-retract-file-upload.js @@ -0,0 +1,34 @@ +/** + * Allow the user to retract a file upload. + */ +converse.plugins.add('sib-retract-file-upload', { + initialize() { + const _converse = this._converse; + const { api, Message } = _converse; + + api.settings.extend({ + 'allow_upload_retraction': 'own', + }); + + const MessageMixin = { + /** + * The message can be retracted if the above option is correctly set. + * Overrides the 'allow_message_retraction' setting if disabled. + * + * @private + * @method _converse.Messages#mayBeRetracted + * @returns { Boolean } + */ + mayBeRetracted() { + return _mayBeRetracted.call(this) || ( + this.get('sender') === 'me' + && this.get('oob_url') + && ['all', 'own'].includes(api.settings.get('allow_upload_retraction')) + ); + }, + }; + + const _mayBeRetracted = Message.prototype.mayBeRetracted; + Object.assign(Message.prototype, MessageMixin); + }, +}); diff --git a/src/solid-xmpp-chat.js b/src/solid-xmpp-chat.js index cfb9034..af138fb 100644 --- a/src/solid-xmpp-chat.js +++ b/src/solid-xmpp-chat.js @@ -15,6 +15,7 @@ import './plugins/sib-history-improved.js'; import './plugins/sib-mention-mobile.js'; import './plugins/sib-remove-notifications.js'; import './plugins/sib-reply-to-message.js'; +import './plugins/sib-retract-file-upload.js'; import './plugins/sib-scroll-down-on-focus.js'; import './plugins/sib-subscribe-to-rai.js'; @@ -240,6 +241,7 @@ export const SolidXMPPChat = { 'sib-mention-mobile', 'sib-remove-notifications', 'sib-reply-to-message', + 'sib-retract-file-upload', 'sib-scroll-down-on-focus', 'sib-subscribe-to-rai', ], -- GitLab