ソースを参照

feat: add moderated service link to welcome page

j8
Bettenbuk Zoltan 4年前
コミット
7d62020787

+ 5
- 0
config.js ファイルの表示

@@ -518,6 +518,11 @@ var config = {
518 518
     */
519 519
     // brandingDataUrl: '',
520 520
 
521
+    // The URL of the moderated rooms microservice, if available. If it
522
+    // is present, a link to the service will be rendered on the welcome page,
523
+    // otherwise the app doesn't render it.
524
+    // moderatedRoomServiceUrl: 'https://moderated.jitsi-meet.example.com',
525
+
521 526
     // List of undocumented settings used in jitsi-meet
522 527
     /**
523 528
      _immediateReloadThreshold

+ 16
- 0
css/_welcome_page.scss ファイルの表示

@@ -111,6 +111,22 @@ body.welcome-page {
111 111
 
112 112
         }
113 113
 
114
+        #moderated-meetings {
115
+            max-width: calc(100% - 40px);
116
+            padding: 16px 0 39px 0;
117
+            width: $welcomePageEnterRoomWidth;
118
+
119
+            p {
120
+                color: $welcomePageDescriptionColor;
121
+                text-align: left;
122
+
123
+                a {
124
+                    color: inherit;
125
+                    font-weight: 600;
126
+                }
127
+            }
128
+        }
129
+
114 130
         .tab-container {
115 131
             font-size: 16px;
116 132
             position: relative;

+ 3
- 2
lang/main.json ファイルの表示

@@ -839,16 +839,17 @@
839 839
         "connectCalendarText": "Connect your calendar to view all your meetings in {{app}}. Plus, add {{provider}} meetings to your calendar and start them with one click.",
840 840
         "enterRoomTitle": "Start a new meeting",
841 841
         "getHelp": "Get help",
842
-        "roomNameAllowedChars": "Meeting name should not contain any of these characters: ?, &, :, ', \", %, #.",
843 842
         "go": "GO",
844 843
         "goSmall": "GO",
845
-        "join": "CREATE / JOIN",
846 844
         "info": "Info",
845
+        "join": "CREATE / JOIN",
846
+        "moderatedMessage": "Or <a href=\"{{url}}\" rel=\"noopener noreferrer\" target=\"_blank\">book a meeting URL</a> in advance where you are the only moderator.",
847 847
         "privacy": "Privacy",
848 848
         "recentList": "Recent",
849 849
         "recentListDelete": "Delete",
850 850
         "recentListEmpty": "Your recent list is currently empty. Chat with your team and you will find all your recent meetings here.",
851 851
         "reducedUIText": "Welcome to {{app}}!",
852
+        "roomNameAllowedChars": "Meeting name should not contain any of these characters: ?, &, :, ', \", %, #.",
852 853
         "roomname": "Enter room name",
853 854
         "roomnameHint": "Enter the name or URL of the room you want to join. You may make a name up, just let the people you are meeting know it so that they enter the same name.",
854 855
         "sendFeedback": "Send feedback",

+ 7
- 5
react/features/welcome/components/AbstractWelcomePage.js ファイルの表示

@@ -25,6 +25,11 @@ type Props = {
25 25
      */
26 26
     _enableInsecureRoomNameWarning: boolean,
27 27
 
28
+    /**
29
+     * URL for the moderated rooms microservice, if available.
30
+     */
31
+    _moderatedRoomServiceUrl: ?string,
32
+
28 33
     /**
29 34
      * Whether the recent list is enabled
30 35
      */
@@ -269,16 +274,13 @@ export class AbstractWelcomePage extends Component<Props, *> {
269 274
  *
270 275
  * @param {Object} state - The redux state.
271 276
  * @protected
272
- * @returns {{
273
- *     _calendarEnabled: boolean,
274
- *     _room: string,
275
- *     _settings: Object
276
- * }}
277
+ * @returns {Props}
277 278
  */
278 279
 export function _mapStateToProps(state: Object) {
279 280
     return {
280 281
         _calendarEnabled: isCalendarEnabled(state),
281 282
         _enableInsecureRoomNameWarning: state['features/base/config'].enableInsecureRoomNameWarning || false,
283
+        _moderatedRoomServiceUrl: state['features/base/config'].moderatedRoomServiceUrl,
282 284
         _recentListEnabled: isRecentListEnabled(),
283 285
         _room: state['features/base/conference'].room,
284 286
         _settings: state['features/base/settings']

+ 12
- 2
react/features/welcome/components/WelcomePage.web.js ファイルの表示

@@ -3,7 +3,7 @@
3 3
 import React from 'react';
4 4
 
5 5
 import { isMobileBrowser } from '../../base/environment/utils';
6
-import { translate } from '../../base/i18n';
6
+import { translate, translateToHTML } from '../../base/i18n';
7 7
 import { Icon, IconWarning } from '../../base/icons';
8 8
 import { Watermarks } from '../../base/react';
9 9
 import { connect } from '../../base/redux';
@@ -158,7 +158,7 @@ class WelcomePage extends AbstractWelcomePage {
158 158
      * @returns {ReactElement|null}
159 159
      */
160 160
     render() {
161
-        const { t } = this.props;
161
+        const { _moderatedRoomServiceUrl, t } = this.props;
162 162
         const { APP_NAME } = interfaceConfig;
163 163
         const showAdditionalContent = this._shouldShowAdditionalContent();
164 164
         const showAdditionalToolbarContent = this._shouldShowAdditionalToolbarContent();
@@ -224,6 +224,16 @@ class WelcomePage extends AbstractWelcomePage {
224 224
                             }
225 225
                         </div>
226 226
                     </div>
227
+                    { _moderatedRoomServiceUrl && (
228
+                        <div id = 'moderated-meetings'>
229
+                            <p>
230
+                                {
231
+                                    translateToHTML(
232
+                                        t, 'welcomepage.moderatedMessage', { url: _moderatedRoomServiceUrl })
233
+                                }
234
+                            </p>
235
+                        </div>
236
+                    ) }
227 237
                     { this._renderTabs() }
228 238
                 </div>
229 239
                 { showAdditionalContent

読み込み中…
キャンセル
保存