diff --git a/config.sample.json b/config.sample.json index 73a5b9a9..2aab3ea5 100644 --- a/config.sample.json +++ b/config.sample.json @@ -30,8 +30,7 @@ "feature_pinning": "labs", "feature_custom_status": "labs", "feature_custom_tags": "labs", - "feature_state_counters": "labs", - "feature_irc_ui": "labs" + "feature_state_counters": "labs" }, "default_federate": true, "default_theme": "light", diff --git a/docs/labs.md b/docs/labs.md index e47afa56..4a7ba2c4 100644 --- a/docs/labs.md +++ b/docs/labs.md @@ -95,13 +95,19 @@ theme definition. For some sample themes, check out [aaronraimist/riot-web-themes](https://github.com/aaronraimist/riot-web-themes). -## New room list (`feature_new_room_list`) +## New room list A complete rewrite of the room list is underway to increase performance, stability, -and general usability. This is still rapidly changing, but feel free to give it a test. +and general usability. -## IRC message layout (`feature_irc_ui`) +In the event the new room list needs to be disabled, add this to your config.json: +```json +{ + "settingDefaults": { + "feature_new_room_list": false + } +} +``` -Adds an option to change the message layout to an IRC style ` timestamp | avatar -| name | message ` +**Note**: In a future release the new room list will not be optional. diff --git a/riot.im/develop/config.json b/riot.im/develop/config.json index 87056544..c5db6b9d 100644 --- a/riot.im/develop/config.json +++ b/riot.im/develop/config.json @@ -23,9 +23,7 @@ "feature_dm_verification": "labs", "feature_bridge_state": "labs", "feature_presence_in_room_list": "labs", - "feature_custom_themes": "labs", - "feature_new_room_list": "labs", - "feature_irc_ui": "labs" + "feature_custom_themes": "labs" }, "piwik": { "url": "https://piwik.riot.im/", diff --git a/src/components/views/auth/VectorAuthPage.js b/src/components/views/auth/VectorAuthPage.js index 13b43ca1..3e1b059b 100644 --- a/src/components/views/auth/VectorAuthPage.js +++ b/src/components/views/auth/VectorAuthPage.js @@ -1,5 +1,5 @@ /* -Copyright 2019 New Vector Ltd +Copyright 2019, 2020 New Vector Ltd Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -14,8 +14,6 @@ See the License for the specific language governing permissions and limitations under the License. */ -'use strict'; - import React from 'react'; import * as sdk from 'matrix-react-sdk/src/index'; import SdkConfig from 'matrix-react-sdk/src/SdkConfig'; @@ -23,21 +21,31 @@ import SdkConfig from 'matrix-react-sdk/src/SdkConfig'; export default class VectorAuthPage extends React.PureComponent { static replaces = 'AuthPage' - render() { - const AuthFooter = sdk.getComponent('auth.AuthFooter'); + static welcomeBackgroundUrl; + + // cache the url as a static to prevent it changing without refreshing + static getWelcomeBackgroundUrl() { + if (VectorAuthPage.welcomeBackgroundUrl) return VectorAuthPage.welcomeBackgroundUrl; const brandingConfig = SdkConfig.get().branding; - let backgroundUrl = "themes/riot/img/backgrounds/valley.jpg"; + VectorAuthPage.welcomeBackgroundUrl = "themes/riot/img/backgrounds/valley.jpg"; if (brandingConfig && brandingConfig.welcomeBackgroundUrl) { if (Array.isArray(brandingConfig.welcomeBackgroundUrl)) { - backgroundUrl = brandingConfig.welcomeBackgroundUrl[Math.floor(Math.random() * brandingConfig.welcomeBackgroundUrl.length)]; + const index = Math.floor(Math.random() * brandingConfig.welcomeBackgroundUrl.length); + VectorAuthPage.welcomeBackgroundUrl = brandingConfig.welcomeBackgroundUrl[index]; } else { - backgroundUrl = brandingConfig.welcomeBackgroundUrl; + VectorAuthPage.welcomeBackgroundUrl = brandingConfig.welcomeBackgroundUrl; } } + return VectorAuthPage.welcomeBackgroundUrl; + } + + render() { + const AuthFooter = sdk.getComponent('auth.AuthFooter'); + const pageStyle = { - background: `center/cover fixed url(${backgroundUrl})`, + background: `center/cover fixed url(${VectorAuthPage.getWelcomeBackgroundUrl()})`, }; const modalStyle = { @@ -65,7 +73,7 @@ export default class VectorAuthPage extends React.PureComponent { return (
-
+
{ this.props.children }
diff --git a/src/i18n/strings/eo.json b/src/i18n/strings/eo.json index c5e75cdb..98c8edda 100644 --- a/src/i18n/strings/eo.json +++ b/src/i18n/strings/eo.json @@ -36,5 +36,7 @@ "You can continue using your current browser, but some or all features may not work and the look and feel of the application may be incorrect.": "Vi povas daŭre uzadi vian nunan foliumilon, sed iuj (eĉ ĉiuj) funkcioj eble ne funkcios, kaj la aspekto de la aplikaĵo eble ne estos ĝusta.", "I understand the risks and wish to continue": "Mi komprenas la riskon kaj volas pluiĝi", "Go to Riot.im": "Iri al Riot.im", - "Failed to start": "Malsukcesis starti" + "Failed to start": "Malsukcesis starti", + "Download Completed": "Elŝuto finiĝis", + "Open": "Malfermi" } diff --git a/src/i18n/strings/et.json b/src/i18n/strings/et.json index 70574faa..ff98ac5b 100644 --- a/src/i18n/strings/et.json +++ b/src/i18n/strings/et.json @@ -36,5 +36,7 @@ "You can continue using your current browser, but some or all features may not work and the look and feel of the application may be incorrect.": "Sa võid jätkata praeguse brauseri kasutamist, kuid mõned või kõik funktsionaalsused ei pruugi toimida ning rakenduse välimus võib vigane olla.", "I understand the risks and wish to continue": "Ma mõistan riske ja soovin jätkata", "Go to Riot.im": "Mine Riot.im lehele", - "Failed to start": "Käivitamine ei õnnestunud" + "Failed to start": "Käivitamine ei õnnestunud", + "Download Completed": "Allalaadimine on lõpetatud", + "Open": "Ava" } diff --git a/src/i18n/strings/fi.json b/src/i18n/strings/fi.json index 07ee9454..1195c664 100644 --- a/src/i18n/strings/fi.json +++ b/src/i18n/strings/fi.json @@ -26,7 +26,7 @@ "Unable to load config file: please refresh the page to try again.": "Asetustiedostoa ei voi ladata. Yritä uudelleen lataamalla sivu uudelleen.", "Open user settings": "Avaa käyttäjäasetukset", "Previous/next recently visited room or community": "Edellinen/seuraava hiljattain vierailtu huone tai yhteisö", - "Riot Desktop (%(platformName)s)": "Riot Desktop (%(platformName)s)", + "Riot Desktop (%(platformName)s)": "Riotin työpöytäversio (%(platformName)s)", "Go to your browser to complete Sign In": "Tee kirjautuminen loppuun selaimessasi", "%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s (%(browserName)s, %(osName)s)", "Unsupported browser": "Selainta ei tueta", @@ -35,5 +35,8 @@ "Please install Chrome, Firefox, or Safari for the best experience.": "Asenna Chrome, Firefox tai Safari, jotta kaikki toimii parhaiten.", "You can continue using your current browser, but some or all features may not work and the look and feel of the application may be incorrect.": "Voit käyttää edelleen nykyistä selaintasi, mutta jotkut tai kaikki ominaisuudet eivät ehkä toimi ja sovelluksen ulkoasu voi olla virheellinen.", "I understand the risks and wish to continue": "Ymmärrän riskit ja haluan jatkaa", - "Failed to start": "Käynnistys ei onnistunut" + "Failed to start": "Käynnistys ei onnistunut", + "Download Completed": "Lataus valmis", + "Open": "Avaa", + "Go to Riot.im": "Mene osoitteeseen riot.im" } diff --git a/src/i18n/strings/it.json b/src/i18n/strings/it.json index 5c844d16..6464e4ca 100644 --- a/src/i18n/strings/it.json +++ b/src/i18n/strings/it.json @@ -36,5 +36,7 @@ "You can continue using your current browser, but some or all features may not work and the look and feel of the application may be incorrect.": "Puoi comunque usare il browser attuale, ma alcune o tutte le caratteristiche potrebbero non funzionare e l'aspetto dell'applicazione potrebbe essere sbagliato.", "I understand the risks and wish to continue": "Capisco i rischi e desidero continuare", "Go to Riot.im": "Vai su Riot.im", - "Failed to start": "Avvio fallito" + "Failed to start": "Avvio fallito", + "Download Completed": "Scaricamento completato", + "Open": "Apri" } diff --git a/src/i18n/strings/ja.json b/src/i18n/strings/ja.json index 739dd7cd..3dc4d1c2 100644 --- a/src/i18n/strings/ja.json +++ b/src/i18n/strings/ja.json @@ -13,7 +13,7 @@ "Your Riot is misconfigured": "あなたのRiotは設定が間違っています", "Invalid configuration: no default server specified.": "不正な設定です:デフォルトのサーバーが設定されていません。", "Sign In": "サインイン", - "Create Account": "アカウントを作成する", + "Create Account": "アカウント作成", "Need help?": "助けが必要ですか?", "Explore rooms": "部屋を探索する", "Room Directory": "部屋のディレクトリー", @@ -26,5 +26,16 @@ "Riot uses advanced browser features which aren't supported by your current browser.": "Riot ではこのブラウザでサポートされていない高度な機能を利用しています。", "Please install Chrome, Firefox, or Safari for the best experience.": "最高のユーザー体験を得るためには、ChromeFirefox、もしくはSafariをインストールしてください。", "You can continue using your current browser, but some or all features may not work and the look and feel of the application may be incorrect.": "現在のブラウザを使い続けることもできますが、いくつか (もしくは全ての) 機能が動作しない可能性や、外観が崩れる可能性があります。", - "I understand the risks and wish to continue": "リスクを理解したうえで続行する" + "I understand the risks and wish to continue": "リスクを理解したうえで続行する", + "Missing indexeddb worker script!": "IndexedDBのワーカースクリプトがありません!", + "Unable to load config file: please refresh the page to try again.": "設定ファイルの読み込みに失敗しました: ページを再読み込みしてもう一度お試しください。", + "Download Completed": "ダウンロード完了", + "Open": "開く", + "Open user settings": "ユーザー設定を開く", + "Riot Desktop (%(platformName)s)": "Riotデスクトップ版(%(platformName)s)", + "Go to your browser to complete Sign In": "サインインを完了させるためにブラウザへ移動してください", + "%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s(%(browserName)s, %(osName)s)", + "Unsupported browser": "サポートされていないブラウザ", + "Go to Riot.im": "Riot.imへ移動", + "Failed to start": "起動に失敗しました" } diff --git a/src/i18n/strings/pt_BR.json b/src/i18n/strings/pt_BR.json index 19eedb2f..d00e30f0 100644 --- a/src/i18n/strings/pt_BR.json +++ b/src/i18n/strings/pt_BR.json @@ -21,5 +21,22 @@ "Your Riot is misconfigured": "Riot possui um erro de configuração", "Unexpected error preparing the app. See console for details.": "Erro inesperado preparando o aplicativo. Veja o console para mais detalhes.", "Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Configuração inválida: somente se pode especificar um valor entre default_server_config, default_server_name, ou default_hs_url.", - "Invalid configuration: no default server specified.": "Configuração inválida: servidor padrão não especificado." + "Invalid configuration: no default server specified.": "Configuração inválida: servidor padrão não especificado.", + "Unable to load config file: please refresh the page to try again.": "Não foi possível carregar o arquivo de configuração: por favor atualize a página e tente novamente.", + "Download Completed": "Download Concluído", + "Open user settings": "Abrir configurações do usuário", + "%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s (%(browserName)s, %(osName)s)", + "Unsupported browser": "Navegador não suportado", + "Your browser can't run Riot": "Riot não funciona em seu navegador", + "Riot uses advanced browser features which aren't supported by your current browser.": "Riot usa recursos avançados do navegador que não são suportados pelo seu navegador atual.", + "Please install Chrome, Firefox, or Safari for the best experience.": "Instale o Chrome , o Firefox ou o Safari para obter uma melhor experiência.", + "You can continue using your current browser, but some or all features may not work and the look and feel of the application may be incorrect.": "Você pode continuar usando o navegador atual, mas alguns dos recursos podem não funcionar e a aparência do aplicativo pode estar incorreta.", + "I understand the risks and wish to continue": "Entendo os riscos e desejo continuar", + "Go to Riot.im": "Vá para Riot.im", + "Failed to start": "Falha ao iniciar", + "Missing indexeddb worker script!": "Script de trabalho indexeddb não encontrado!", + "Open": "Abrir", + "Previous/next recently visited room or community": "Próxima/Anterior sala ou comunidade visitada recentemente", + "Riot Desktop (%(platformName)s)": "Riot Desktop (%(platformName)s)", + "Go to your browser to complete Sign In": "Vá para o seu navegador para concluir o login" } diff --git a/src/i18n/strings/sk.json b/src/i18n/strings/sk.json index 6162010d..6ffd7f0d 100644 --- a/src/i18n/strings/sk.json +++ b/src/i18n/strings/sk.json @@ -30,11 +30,13 @@ "Riot Desktop (%(platformName)s)": "Riot Desktop (%(platformName)s)", "%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s (%(browserName)s, %(osName)s)", "Unsupported browser": "Nepodporovaný prehliadač", - "Your browser can't run Riot": "Váš prehliadač nerozbehne Riot", + "Your browser can't run Riot": "Váš prehliadač nedokáže spustiť Riot", "Riot uses advanced browser features which aren't supported by your current browser.": "Riot používa komplexnejšie funkcie prehliadača, ktoré nie sú podporované vo vašom prehliadači.", "Please install Chrome, Firefox, or Safari for the best experience.": "Prosím, nainštalujte si Chrome, Firefox alebo Safari pre najlepší zážitok.", "You can continue using your current browser, but some or all features may not work and the look and feel of the application may be incorrect.": "Môžete naďalej používať váš súčasný prehliadač, ale niektoré alebo všetky funkcie nemusia fungovať a zážitok z aplikácie nemusí byť optimálny.", "I understand the risks and wish to continue": "Rozumiem riziku a chcem pokračovať", "Go to Riot.im": "Prejsť na Riot.im", - "Failed to start": "Zapnutie zlyhalo" + "Failed to start": "Zapnutie zlyhalo", + "Download Completed": "Preberanie dokončené", + "Open": "Otvoriť" } diff --git a/src/vector/app.tsx b/src/vector/app.tsx index b665feda..5dcee9a7 100644 --- a/src/vector/app.tsx +++ b/src/vector/app.tsx @@ -23,6 +23,7 @@ import React from 'react'; // this incidentally means we can forget our React imports in JSX files without penalty. window.React = React; +import url from 'url'; import * as sdk from 'matrix-react-sdk'; import PlatformPeg from 'matrix-react-sdk/src/PlatformPeg'; import * as VectorConferenceHandler from 'matrix-react-sdk/src/VectorConferenceHandler'; @@ -31,16 +32,13 @@ import AutoDiscoveryUtils from 'matrix-react-sdk/src/utils/AutoDiscoveryUtils'; import {AutoDiscovery} from "matrix-js-sdk/src/autodiscovery"; import * as Lifecycle from "matrix-react-sdk/src/Lifecycle"; import type MatrixChatType from "matrix-react-sdk/src/components/structures/MatrixChat"; - -import url from 'url'; - -import {parseQs, parseQsFromFragment} from './url_utils'; - import {MatrixClientPeg} from 'matrix-react-sdk/src/MatrixClientPeg'; import SdkConfig from "matrix-react-sdk/src/SdkConfig"; - import CallHandler from 'matrix-react-sdk/src/CallHandler'; +import {parseQs, parseQsFromFragment} from './url_utils'; +import VectorBasePlatform from "./platform/VectorBasePlatform"; + let lastLocationHashSet: string = null; // Parse the given window.location and return parameters that can be used when calling @@ -149,7 +147,7 @@ export async function loadApp(fragParams: {}) { const urlWithoutQuery = window.location.protocol + '//' + window.location.host + window.location.pathname; console.log("Vector starting at " + urlWithoutQuery); - platform.startUpdater(); + (platform as VectorBasePlatform).startUpdater(); // Don't bother loading the app until the config is verified const config = await verifyServerConfig();