diff --git a/Documentation/SOGoInstallationGuide.asciidoc b/Documentation/SOGoInstallationGuide.asciidoc index bc7a376eb..16705433d 100644 --- a/Documentation/SOGoInstallationGuide.asciidoc +++ b/Documentation/SOGoInstallationGuide.asciidoc @@ -490,6 +490,12 @@ the jitsi server used for creating the meeting link. Defaults to `https://meet.jit.si` when unset. +|D |SOGoCalendarJitsiRoomPrefix +|Only used if SOGoCalendarEnableJitsiLink is set to YES. The string for +the Jitsi room prefix used for creating the meeting link. + +Defaults to `SOGo_meeting/` when unset. + |S |SOGoSAML2PrivateKeyLocation |The location of the SSL private key file on the filesystem that is used by SOGo to sign and encrypt communications with the SAML2 identity diff --git a/SoObjects/SOGo/SOGoDomainDefaults.h b/SoObjects/SOGo/SOGoDomainDefaults.h index 03434873a..d8e8dff4e 100644 --- a/SoObjects/SOGo/SOGoDomainDefaults.h +++ b/SoObjects/SOGo/SOGoDomainDefaults.h @@ -79,6 +79,7 @@ - (BOOL) foldersSendEMailNotifications; - (NSArray *) calendarDefaultRoles; - (NSString *) calendarJistiBaseUrl; +- (NSString *) calendarJitsiRoomPrefix; - (NSArray *) contactsDefaultRoles; - (NSArray *) refreshViewIntervals; - (NSString *) subscriptionFolderFormat; diff --git a/SoObjects/SOGo/SOGoDomainDefaults.m b/SoObjects/SOGo/SOGoDomainDefaults.m index 1d4848d4c..233735f68 100644 --- a/SoObjects/SOGo/SOGoDomainDefaults.m +++ b/SoObjects/SOGo/SOGoDomainDefaults.m @@ -179,6 +179,16 @@ return jitsiBaseUrl; } +- (NSString *) calendarJitsiRoomPrefix +{ + NSString *jitsiRoomPrefix; + jitsiRoomPrefix = [self stringForKey: @"SOGoCalendarJitsiRoomPrefix"]; + if(!jitsiRoomPrefix) + jitsiRoomPrefix = @"SOGo_meeting/"; + + return jitsiRoomPrefix; +} + - (NSArray *) contactsDefaultRoles { return [self stringArrayForKey: @"SOGoContactsDefaultRoles"]; diff --git a/UI/PreferencesUI/UIxJSONPreferences.m b/UI/PreferencesUI/UIxJSONPreferences.m index 4655aff52..95e41a051 100644 --- a/UI/PreferencesUI/UIxJSONPreferences.m +++ b/UI/PreferencesUI/UIxJSONPreferences.m @@ -340,6 +340,8 @@ static SoProduct *preferencesProduct = nil; { if (![[defaults source] objectForKey: @"SOGoCalendarJitsiBaseUrl"]) [[defaults source] setObject: [domainDefaults calendarJistiBaseUrl] forKey: @"SOGoCalendarJitsiBaseUrl"]; + if (![[defaults source] objectForKey: @"SOGoCalendarJitsiRoomPrefix"]) + [[defaults source] setObject: [domainDefaults calendarJitsiRoomPrefix] forKey: @"SOGoCalendarJitsiRoomPrefix"]; } // diff --git a/UI/WebServerResources/js/Scheduler/ComponentController.js b/UI/WebServerResources/js/Scheduler/ComponentController.js index f33eb34f3..6ec9f84b2 100644 --- a/UI/WebServerResources/js/Scheduler/ComponentController.js +++ b/UI/WebServerResources/js/Scheduler/ComponentController.js @@ -316,9 +316,12 @@ this.addJitsiUrl = function () { var jitsiBaseUrl = "https://meet.jit.si"; + var jitsiRoomPrefix = "SOGo_meeting/"; if(this.preferences.defaults && this.preferences.defaults.SOGoCalendarJitsiBaseUrl) jitsiBaseUrl = this.preferences.defaults.SOGoCalendarJitsiBaseUrl; - var jitsiUrl = jitsiBaseUrl + "/SOGo_meeting/" + crypto.randomUUID(); + if(this.preferences.defaults && this.preferences.defaults.SOGoCalendarJitsiRoomPrefix) + jitsiRoomPrefix = this.preferences.defaults.SOGoCalendarJitsiRoomPrefix; + var jitsiUrl = jitsiBaseUrl + "/" + jitsiRoomPrefix + crypto.randomUUID(); var i = this.component.addAttachUrl(jitsiUrl); focus('attachUrl_' + i); };