From 9522dc72aca54429c41849187a5b548d91d5ce98 Mon Sep 17 00:00:00 2001 From: lebaudantoine Date: Wed, 10 Jun 2026 14:32:54 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=93=88(addon)=20allow=20appending=20an=20?= =?UTF-8?q?Outlook=20source=20query=20param=20to=20the=20URL?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Offer the possibility to append a query parameter at the end of the meeting URL to flag links created from the Outlook plugin, inspired by Zoom. The behavior is toggled via an environment variable. --- src/addons/outlook/src/common/index.js | 2 ++ src/addons/outlook/src/common/messageBuilder.js | 12 ++++++++++-- src/helm/env.d/dev-dinum/values.meet.yaml.gotmpl | 1 + src/helm/meet/templates/frontend_addons_cm.yml | 3 ++- src/helm/meet/values.yaml | 2 ++ 5 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/addons/outlook/src/common/index.js b/src/addons/outlook/src/common/index.js index 3927df83..e89c3850 100644 --- a/src/addons/outlook/src/common/index.js +++ b/src/addons/outlook/src/common/index.js @@ -1,7 +1,9 @@ const BASE_URL = window.__APP_CONFIG__?.BASE_URL || "https://meet.127.0.0.1.nip.io"; const APP_NAME = window.__APP_CONFIG__?.APP_NAME || "LaSuite Meet"; +const ENABLE_SOURCE_TRACKING = window.__APP_CONFIG__?.ENABLE_SOURCE_TRACKING === "true"; module.exports = { BASE_URL, APP_NAME, + ENABLE_SOURCE_TRACKING, }; diff --git a/src/addons/outlook/src/common/messageBuilder.js b/src/addons/outlook/src/common/messageBuilder.js index 8a0aab2f..0561abaa 100644 --- a/src/addons/outlook/src/common/messageBuilder.js +++ b/src/addons/outlook/src/common/messageBuilder.js @@ -1,4 +1,4 @@ -const { APP_NAME } = require("./index"); +const { APP_NAME, ENABLE_SOURCE_TRACKING } = require("./index"); const { t } = require("./i18n"); function _formatPin(pin) { @@ -21,13 +21,21 @@ function _formatPhone(phone) { return clean; } +function _appendTrackingParams(url) { + if (!ENABLE_SOURCE_TRACKING) return url; + const u = new URL(url); + u.searchParams.set("from", "outlook-addin"); + return u.toString(); +} + + // todo - escape html / link function buildMeetingMessage(data, isWeb) { if (!data?.url) { throw new Error("buildMeetingMessage: missing url in data"); } - const url = data.url; + const url = _appendTrackingParams(data.url); const phone = _formatPhone(data.telephony?.phone_number); const pin = _formatPin(data.telephony?.pin_code); diff --git a/src/helm/env.d/dev-dinum/values.meet.yaml.gotmpl b/src/helm/env.d/dev-dinum/values.meet.yaml.gotmpl index 4279668c..886be325 100644 --- a/src/helm/env.d/dev-dinum/values.meet.yaml.gotmpl +++ b/src/helm/env.d/dev-dinum/values.meet.yaml.gotmpl @@ -37,5 +37,6 @@ frontend: outlookAddon: enabled: true baseUrl: "https://meet.127.0.0.1.nip.io" + enableSourceTracking: true appName: "Visio" id: "a025f0f6-757a-4790-97f3-99c66c4a5795" diff --git a/src/helm/meet/templates/frontend_addons_cm.yml b/src/helm/meet/templates/frontend_addons_cm.yml index 51179fe6..32d11575 100644 --- a/src/helm/meet/templates/frontend_addons_cm.yml +++ b/src/helm/meet/templates/frontend_addons_cm.yml @@ -8,6 +8,7 @@ data: config.js: | window.__APP_CONFIG__ = { BASE_URL: {{ .Values.frontend.outlookAddon.baseUrl | quote }}, - APP_NAME: {{ .Values.frontend.outlookAddon.appName | quote }} + APP_NAME: {{ .Values.frontend.outlookAddon.appName | quote }}, + ENABLE_SOURCE_TRACKING: {{ .Values.frontend.outlookAddon.enableSourceTracking | quote }}, }; {{- end }} diff --git a/src/helm/meet/values.yaml b/src/helm/meet/values.yaml index a4c4592c..692b27ee 100644 --- a/src/helm/meet/values.yaml +++ b/src/helm/meet/values.yaml @@ -448,10 +448,12 @@ frontend: ## @param frontend.outlookAddon.enabled Enable the Outlook add-in ConfigMap (config.js + manifest.xml) ## @param frontend.outlookAddon.appName Display name used in the Outlook add-in (manifest + runtime config) ## @param frontend.outlookAddon.baseUrl Public base URL where the add-in is served (no trailing slash) + ## @param frontend.outlookAddon.enableSourceTracking Enable appending ?from=outlook-addon to the URL outlookAddon: enabled: false appName: "" baseUrl: "" + enableSourceTracking: false id: "" ## @section posthog