Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/tasks.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRaimund Schlüßler <raimund.schluessler@mailbox.org>2022-05-12 22:58:23 +0300
committerGitHub <noreply@github.com>2022-05-12 22:58:23 +0300
commit9f3df6ef962495d7406f266b48ae8fb3302802f3 (patch)
treebdaac2680f690e12759e32de3db4c25a4cd0a4f0 /src
parent6bb83ec7c31ccf7cdc08f87b2f802e9b7ac3a78c (diff)
Fix talk integration (#1999)
Signed-off-by: Raimund Schlüßler <raimund.schluessler@mailbox.org>
Diffstat (limited to 'src')
-rw-r--r--src/talk.js27
1 files changed, 23 insertions, 4 deletions
diff --git a/src/talk.js b/src/talk.js
index cc3e4dc8..16b7daad 100644
--- a/src/talk.js
+++ b/src/talk.js
@@ -57,13 +57,32 @@ window.addEventListener('DOMContentLoaded', () => {
window.OCA.Talk.registerMessageAction({
label: t('tasks', 'Create a task'),
icon: 'icon-tasks',
- async callback({ message: { message, actorDisplayName }, metadata: { name: conversationName, token: conversationToken } }) {
- const shortenedMessageCandidate = message.replace(/^(.{255}[^\s]*).*/, '$1')
- const shortenedMessage = shortenedMessageCandidate === '' ? message.slice(0, 255) : shortenedMessageCandidate
+ async callback({ message: { message, messageParameters, actorDisplayName }, metadata: { name: conversationName, token: conversationToken } }) {
+ const parsedMessage = message.replace(/{[a-z0-9-_]+}/gi, function(parameter) {
+ const parameterName = parameter.substr(1, parameter.length - 2)
+
+ if (messageParameters[parameterName]) {
+ if (messageParameters[parameterName].type === 'file' && messageParameters[parameterName].path) {
+ return messageParameters[parameterName].path
+ }
+ if (messageParameters[parameterName].type === 'user' || messageParameters[parameterName].type === 'call') {
+ return '@' + messageParameters[parameterName].name
+ }
+ if (messageParameters[parameterName].name) {
+ return messageParameters[parameterName].name
+ }
+ }
+
+ // Do not replace so insert with curly braces again
+ return parameter
+ })
+
+ const shortenedMessageCandidate = parsedMessage.replace(/^(.{255}[^\s]*).*/, '$1')
+ const shortenedMessage = shortenedMessageCandidate === '' ? parsedMessage.substr(0, 255) : shortenedMessageCandidate
try {
await buildSelector(TaskCreateDialog, {
title: shortenedMessage,
- description: message + '\n\n' + '['
+ description: parsedMessage + '\n\n' + '['
+ t('tasks', 'Message from {author} in {conversationName}', { author: actorDisplayName, conversationName })
+ '](' + generateUrl('/call/' + conversationToken) + ')',
})