From 6889b392a47fc84f22280ec11e8f58ef280b6f0a Mon Sep 17 00:00:00 2001
From: Peter Gerwinski <peter.gerwinski@hs-bochum.de>
Date: Fri, 24 Jul 2020 12:04:47 +0200
Subject: [PATCH] Jitsi-Meet-App: URL per Environment-Variable vorgeben

---
 jitsi-meet-electron-pg-20200629.diff | 104 +++++++++++++++++++++++++++
 1 file changed, 104 insertions(+)
 create mode 100644 jitsi-meet-electron-pg-20200629.diff

diff --git a/jitsi-meet-electron-pg-20200629.diff b/jitsi-meet-electron-pg-20200629.diff
new file mode 100644
index 0000000..fd79701
--- /dev/null
+++ b/jitsi-meet-electron-pg-20200629.diff
@@ -0,0 +1,104 @@
+diff --git a/app/features/conference/components/Conference.js b/app/features/conference/components/Conference.js
+index b87fc02..9389894 100644
+--- a/app/features/conference/components/Conference.js
++++ b/app/features/conference/components/Conference.js
+@@ -295,6 +295,7 @@ class Conference extends Component<Props, State> {
+      * @private
+      */
+     _onVideoConferenceEnded(event: Event) {
++        window.jitsiNodeAPI.ipc.send('conference-ended');
+         this.props.dispatch(conferenceEnded(this._conference));
+         this._navigateToHome(event);
+     }
+diff --git a/app/features/welcome/components/Welcome.js b/app/features/welcome/components/Welcome.js
+index f0bb138..20c17aa 100644
+--- a/app/features/welcome/components/Welcome.js
++++ b/app/features/welcome/components/Welcome.js
+@@ -111,9 +111,16 @@ class Welcome extends Component<Props, State> {
+      * @returns {void}
+      */
+     componentDidMount() {
+-        this.props.dispatch(startOnboarding('welcome-page'));
+-
+-        this._updateRoomname();
++        var urlParams = new URLSearchParams(window.location.search);
++        var directUrl = urlParams.get('url');
++        if (directUrl.length > 0) {
++            this.state.url = directUrl;
++            this._onJoin();
++        }
++        else {
++            this.props.dispatch(startOnboarding('welcome-page'));
++            this._updateRoomname();
++        }
+     }
+ 
+     /**
+diff --git a/app/preload/preload.js b/app/preload/preload.js
+index 85064ea..4d214cd 100644
+--- a/app/preload/preload.js
++++ b/app/preload/preload.js
+@@ -27,7 +27,7 @@ function openExternalLink(link) {
+     }
+ }
+ 
+-const whitelistedIpcChannels = [ 'protocol-data-msg', 'renderer-ready' ];
++const whitelistedIpcChannels = [ 'protocol-data-msg', 'renderer-ready', 'conference-ended' ];
+ 
+ window.jitsiNodeAPI = {
+     createElectronStorage,
+diff --git a/main.js b/main.js
+index 0ca6cde..b4eee89 100644
+--- a/main.js
++++ b/main.js
+@@ -173,7 +173,8 @@ function createJitsiMeetWindow() {
+     const indexURL = URL.format({
+         pathname: path.resolve(basePath, './build/index.html'),
+         protocol: 'file:',
+-        slashes: true
++        slashes: true,
++        search: 'url=' + (process.env.URL ? process.env.URL : '')
+     });
+ 
+     // Options used when creating the main Jitsi Meet window.
+@@ -356,3 +357,13 @@ ipcMain.on('renderer-ready', () => {
+             .send('protocol-data-msg', protocolDataForFrontApp);
+     }
+ });
++
++/**
++ * When a URL has been specified via the URL environment variable,
++ * exit the program after the conference ended.
++ */
++ipcMain.on('conference-ended', () => {
++    if (process.env.URL) {
++        app.quit();
++    }
++});
+diff --git a/resources/icons/icon_128x128.png b/resources/icons/icon_128x128.png
+old mode 100755
+new mode 100644
+diff --git a/resources/icons/icon_16x16.png b/resources/icons/icon_16x16.png
+old mode 100755
+new mode 100644
+diff --git a/resources/icons/icon_24x24.png b/resources/icons/icon_24x24.png
+old mode 100755
+new mode 100644
+diff --git a/resources/icons/icon_256x256.png b/resources/icons/icon_256x256.png
+old mode 100755
+new mode 100644
+diff --git a/resources/icons/icon_32x32.png b/resources/icons/icon_32x32.png
+old mode 100755
+new mode 100644
+diff --git a/resources/icons/icon_48x48.png b/resources/icons/icon_48x48.png
+old mode 100755
+new mode 100644
+diff --git a/resources/icons/icon_512x512.png b/resources/icons/icon_512x512.png
+old mode 100755
+new mode 100644
+diff --git a/resources/icons/icon_64x64.png b/resources/icons/icon_64x64.png
+old mode 100755
+new mode 100644
+diff --git a/resources/icons/icon_96x96.png b/resources/icons/icon_96x96.png
+old mode 100755
+new mode 100644
-- 
GitLab