Browse Source

feat: add moderated service link to welcome page

master
Bettenbuk Zoltan 5 years ago
parent
commit
7d62020787

+ 5
- 0
config.js View File

518
     */
518
     */
519
     // brandingDataUrl: '',
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
     // List of undocumented settings used in jitsi-meet
526
     // List of undocumented settings used in jitsi-meet
522
     /**
527
     /**
523
      _immediateReloadThreshold
528
      _immediateReloadThreshold

+ 16
- 0
css/_welcome_page.scss View File

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
         .tab-container {
130
         .tab-container {
115
             font-size: 16px;
131
             font-size: 16px;
116
             position: relative;
132
             position: relative;

+ 3
- 2
lang/main.json View File

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.",
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
         "enterRoomTitle": "Start a new meeting",
840
         "enterRoomTitle": "Start a new meeting",
841
         "getHelp": "Get help",
841
         "getHelp": "Get help",
842
-        "roomNameAllowedChars": "Meeting name should not contain any of these characters: ?, &, :, ', \", %, #.",
843
         "go": "GO",
842
         "go": "GO",
844
         "goSmall": "GO",
843
         "goSmall": "GO",
845
-        "join": "CREATE / JOIN",
846
         "info": "Info",
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
         "privacy": "Privacy",
847
         "privacy": "Privacy",
848
         "recentList": "Recent",
848
         "recentList": "Recent",
849
         "recentListDelete": "Delete",
849
         "recentListDelete": "Delete",
850
         "recentListEmpty": "Your recent list is currently empty. Chat with your team and you will find all your recent meetings here.",
850
         "recentListEmpty": "Your recent list is currently empty. Chat with your team and you will find all your recent meetings here.",
851
         "reducedUIText": "Welcome to {{app}}!",
851
         "reducedUIText": "Welcome to {{app}}!",
852
+        "roomNameAllowedChars": "Meeting name should not contain any of these characters: ?, &, :, ', \", %, #.",
852
         "roomname": "Enter room name",
853
         "roomname": "Enter room name",
853
         "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
         "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
         "sendFeedback": "Send feedback",
855
         "sendFeedback": "Send feedback",

+ 7
- 5
react/features/welcome/components/AbstractWelcomePage.js View File

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

+ 12
- 2
react/features/welcome/components/WelcomePage.web.js View File

3
 import React from 'react';
3
 import React from 'react';
4
 
4
 
5
 import { isMobileBrowser } from '../../base/environment/utils';
5
 import { isMobileBrowser } from '../../base/environment/utils';
6
-import { translate } from '../../base/i18n';
6
+import { translate, translateToHTML } from '../../base/i18n';
7
 import { Icon, IconWarning } from '../../base/icons';
7
 import { Icon, IconWarning } from '../../base/icons';
8
 import { Watermarks } from '../../base/react';
8
 import { Watermarks } from '../../base/react';
9
 import { connect } from '../../base/redux';
9
 import { connect } from '../../base/redux';
158
      * @returns {ReactElement|null}
158
      * @returns {ReactElement|null}
159
      */
159
      */
160
     render() {
160
     render() {
161
-        const { t } = this.props;
161
+        const { _moderatedRoomServiceUrl, t } = this.props;
162
         const { APP_NAME } = interfaceConfig;
162
         const { APP_NAME } = interfaceConfig;
163
         const showAdditionalContent = this._shouldShowAdditionalContent();
163
         const showAdditionalContent = this._shouldShowAdditionalContent();
164
         const showAdditionalToolbarContent = this._shouldShowAdditionalToolbarContent();
164
         const showAdditionalToolbarContent = this._shouldShowAdditionalToolbarContent();
224
                             }
224
                             }
225
                         </div>
225
                         </div>
226
                     </div>
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
                     { this._renderTabs() }
237
                     { this._renderTabs() }
228
                 </div>
238
                 </div>
229
                 { showAdditionalContent
239
                 { showAdditionalContent

Loading…
Cancel
Save