diff --git a/css/_mixins.scss b/css/_mixins.scss index acf7c9679..d28e4504b 100644 --- a/css/_mixins.scss +++ b/css/_mixins.scss @@ -150,4 +150,12 @@ overflow: hidden; text-overflow: ellipsis; white-space: nowrap; +} + +/** + * Creates a semi-transparent background with the given color and alpha + * (opacity) value. + */ +@mixin transparentBg($color, $alpha) { + background-color: rgba(red($color), green($color), blue($color), $alpha); } \ No newline at end of file diff --git a/css/components/_button-control.scss b/css/components/_button-control.scss index 3a2392c99..5fa000292 100644 --- a/css/components/_button-control.scss +++ b/css/components/_button-control.scss @@ -82,4 +82,8 @@ color: $linkHoverFontColor; } } + + &_center { + float: none !important; + } } \ No newline at end of file diff --git a/css/overlay/_overlay.scss b/css/overlay/_overlay.scss index 9727bd7be..0e40f293d 100644 --- a/css/overlay/_overlay.scss +++ b/css/overlay/_overlay.scss @@ -1,5 +1,6 @@ .overlay { - &__container { + &__container, + &__container-light { top: 0; left: 0; width: 100%; @@ -9,6 +10,10 @@ background: $defaultBackground; } + &__container-light { + @include transparentBg($defaultBackground, 0.7); + } + &__content { position: absolute; margin: 0 auto; diff --git a/lang/main.json b/lang/main.json index c43795a84..2dc1487fd 100644 --- a/lang/main.json +++ b/lang/main.json @@ -215,6 +215,9 @@ "failedpermissions": "Failed to obtain permissions to use the local microphone and/or camera.", "conferenceReloadTitle": "Unfortunately, something went wrong", "conferenceReloadMsg": "We're trying to fix this", + "conferenceDisconnectTitle": "You have been disconnected. You may want to check your network connection.", + "conferenceDisconnectMsg": "Reconnecting in...", + "reconnectNow": "Reconnect now", "conferenceReloadTimeLeft": "__seconds__ sec.", "maxUsersLimitReached": "The limit for maximum number of participants in the conference has been reached. The conference is full. Please try again later!", "lockTitle": "Lock failed", diff --git a/modules/UI/UI.js b/modules/UI/UI.js index fdac5ffd1..30fbcf58e 100644 --- a/modules/UI/UI.js +++ b/modules/UI/UI.js @@ -17,7 +17,7 @@ import Recording from "./recording/Recording"; import GumPermissionsOverlay from './gum_overlay/UserMediaPermissionsGuidanceOverlay'; -import PageReloadOverlay from './reload_overlay/PageReloadOverlay'; +import * as PageReloadOverlay from './reload_overlay/PageReloadOverlay'; import SuspendedOverlay from './suspended_overlay/SuspendedOverlay'; import VideoLayout from "./videolayout/VideoLayout"; import FilmStrip from "./videolayout/FilmStrip"; diff --git a/modules/UI/overlay/Overlay.js b/modules/UI/overlay/Overlay.js index 361ce890a..f850c2a5f 100644 --- a/modules/UI/overlay/Overlay.js +++ b/modules/UI/overlay/Overlay.js @@ -15,26 +15,38 @@ export default class Overlay{ * @type {jQuery} */ this.$overlay = null; + + /** + * Indicates if this overlay should use the light look & feel or the + * standard one. + * @type {boolean} + */ + this.isLightOverlay = false; } /** * Template method which should be used by subclasses to provide the overlay * content. The contents provided by this method are later subject to * the translation using {@link APP.translation.translateElement}. * @return {string} HTML representation of the overlay dialog contents. - * @private + * @protected */ _buildOverlayContent() { return ''; } /** * Constructs the HTML body of the overlay dialog. + * + * @private */ - buildOverlayHtml() { + _buildOverlayHtml() { let overlayContent = this._buildOverlayContent(); + let containerClass = this.isLightOverlay ? "overlay__container-light" + : "overlay__container"; + this.$overlay = $(` -