diff --git a/CHANGELOG.md b/CHANGELOG.md index fe3fb26cd0..ae8209ad12 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,17 @@ +Changes in [0.10.2](https://github.com/vector-im/riot-web/releases/tag/v0.10.2) (2017-06-06) +============================================================================================ +[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.10.1...v0.10.2) + + * Hotfix for bugs where navigating straight to a URL like /#/login and + and /#/forgot_password + + +Changes in [0.10.1](https://github.com/vector-im/riot-web/releases/tag/v0.10.1) (2017-06-02) +============================================================================================ +[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.10.0...v0.10.1) + + * Update to matrix-react-sdk 0.9.1 to fix i18n error which broke start chat in some circumstances + Changes in [0.10.0](https://github.com/vector-im/riot-web/releases/tag/v0.10.0) (2017-06-02) ============================================================================================ [Full Changelog](https://github.com/vector-im/riot-web/compare/v0.10.0-rc.2...v0.10.0) diff --git a/README.md b/README.md index 388d2d9bab..89f2148f5e 100644 --- a/README.md +++ b/README.md @@ -134,7 +134,7 @@ Running as a Desktop app Riot can also be run as a desktop app, wrapped in electron. You can download a pre-built version from https://riot.im/desktop.html or, if you prefer, -built it yourself. +build it yourself. Requires Electron >=1.6.0 To run as a desktop app: @@ -285,7 +285,7 @@ You'll need to do this in each new terminal you open before building Riot. How to add a new translation? ============================= -[translationsstatus](https://translate.nordgedanken.de/engage/riot-web/?utm_source=widget) +[translationsstatus](https://translate.riot.im/engage/riot-web/?utm_source=widget) Head to the [translating doc](docs/translating.md) diff --git a/config.sample.json b/config.sample.json index c9b3d65b0f..7f2c97f92c 100644 --- a/config.sample.json +++ b/config.sample.json @@ -11,6 +11,7 @@ "matrix.org" ] }, + "welcomeUserId": "@riot-bot:matrix.org", "piwik": { "url": "https://piwik.riot.im/", "siteId": 1 diff --git a/docs/translating-dev.md b/docs/translating-dev.md index 80d4b64a3a..55ba34be10 100644 --- a/docs/translating-dev.md +++ b/docs/translating-dev.md @@ -8,9 +8,9 @@ ## Adding new strings -1. Check if the import ``import _t from 'counterpart-riot'`` is present. If not add it to the other import statements. +1. Check if the import ``import { _t } from 'matrix-react-sdk/lib/languageHandler';`` is present. If not add it to the other import statements. 2. Add ``_t()`` to your string. (Don't forget curly braces when you assign an expression to JSX attributes in the render method) -3. Add the String to the ``en_EN.json`` file in ``src/i18n`` or if you are working in matrix-react-sdk you can find the json file in ``src/i18n/strings`` +3. Add the String to the ``en_EN.json`` file in ``src/i18n/strings`` (respect which repository you are on). ## Adding variables inside a string. diff --git a/docs/translating.md b/docs/translating.md index ca9920d323..3fd0731d6c 100644 --- a/docs/translating.md +++ b/docs/translating.md @@ -8,25 +8,25 @@ ## Step 0: Join #riotweb-translations:matrix.org -1. Come and join https://riot.im/develop/#/room/#riotweb-translations:matrix.org +1. Come and join https://matrix.to/#/#riotweb-translations:matrix.org 2. Read scrollback and/or ask if anyone else is working on your language, and co-ordinate if needed. In general little-or-no coordination is needed though :) ## Step 1: Preparing your Weblate Profile -1. Head to https://translate.nordgedanken.de and register either via Github or email +1. Head to https://translate.riot.im and register either via Github or email 2. After registering check if you got an email to verify your account and click the link (if there is none head to step 1.4) 3. Log into weblate -4. Head to https://translate.nordgedanken.de/accounts/profile/ and select the languages you know and maybe another language you know too. -6. Head to https://translate.nordgedanken.de/accounts/profile/#subscriptions and select Riot Web as Project +4. Head to https://translate.riot.im/accounts/profile/ and select the languages you know and maybe another language you know too. +6. Head to https://translate.riot.im/accounts/profile/#subscriptions and select Riot Web as Project ## How to check if your language already is being translated -Go to https://translate.nordgedanken.de/projects/riot-web/ and visit the 2 sub-projects. +Go to https://translate.riot.im/projects/riot-web/ and visit the 2 sub-projects. If your language is listed go to Step 2a and if not go to Step 2b ## Step 2a: Helping on existing languages. -1. Head to one of the projects listed https://translate.nordgedanken.de/projects/riot-web/ +1. Head to one of the projects listed https://translate.riot.im/projects/riot-web/ 2. Click on the ``translate`` button on the right side of your language 3. Fill in the translations in the writeable field. You will see the original English string and the string of your second language above. @@ -34,7 +34,7 @@ Head to the explanations under Steb 2b ## Step 2b: Adding a new language -1. Go to one of the projects listed https://translate.nordgedanken.de/projects/riot-web/ +1. Go to one of the projects listed https://translate.riot.im/projects/riot-web/ 2. Click the ``Start new language`` button at the bottom 3. Select a language 4. Start translating like in 2a.3 diff --git a/electron_app/package.json b/electron_app/package.json index 096c1e96ef..a21fd522c5 100644 --- a/electron_app/package.json +++ b/electron_app/package.json @@ -2,12 +2,13 @@ "name": "riot-web", "productName": "Riot", "main": "src/electron-main.js", - "version": "0.10.0", + "version": "0.10.2", "description": "A feature-rich client for Matrix.org", "author": "Vector Creations Ltd.", "dependencies": { - "electron-window-state": "^4.1.0", "auto-launch": "^5.0.1", - "minimist": "^1.2.0" + "electron-window-state": "^4.1.0", + "minimist": "^1.2.0", + "png-to-ico": "^1.0.2" } } diff --git a/electron_app/src/electron-main.js b/electron_app/src/electron-main.js index d793ab9be9..b0d4de4c21 100644 --- a/electron_app/src/electron-main.js +++ b/electron_app/src/electron-main.js @@ -1,6 +1,7 @@ /* Copyright 2016 Aviral Dasgupta Copyright 2016 OpenMarket Ltd +Copyright 2017 Michael Telatynski <7t3chguy@gmail.com> Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -155,6 +156,20 @@ electron.ipcMain.on('settings_set', function(ev, key, value) { }); electron.app.on('ready', () => { + + if (argv.devtools) { + try { + const { default: installExtension, REACT_DEVELOPER_TOOLS, REACT_PERF } = require('electron-devtools-installer'); + installExtension(REACT_DEVELOPER_TOOLS) + .then((name) => console.log(`Added Extension: ${name}`)) + .catch((err) => console.log('An error occurred: ', err)); + installExtension(REACT_PERF) + .then((name) => console.log(`Added Extension: ${name}`)) + .catch((err) => console.log('An error occurred: ', err)); + } catch(e) {console.log(e);} + } + + if (vectorConfig.update_base_url) { console.log(`Starting auto update with base URL: ${vectorConfig.update_base_url}`); updater.start(vectorConfig.update_base_url) diff --git a/electron_app/src/tray.js b/electron_app/src/tray.js index 9df1a0fb60..039e7133fa 100644 --- a/electron_app/src/tray.js +++ b/electron_app/src/tray.js @@ -16,6 +16,9 @@ limitations under the License. */ const {app, Tray, Menu, nativeImage} = require('electron'); +const pngToIco = require('png-to-ico'); +const path = require('path'); +const fs = require('fs'); let trayIcon = null; @@ -57,7 +60,7 @@ exports.create = function(win, config) { trayIcon.on('click', toggleWin); let lastFavicon = null; - win.webContents.on('page-favicon-updated', function(ev, favicons) { + win.webContents.on('page-favicon-updated', async function(ev, favicons) { let newFavicon = config.icon_path; if (favicons && favicons.length > 0 && favicons[0].startsWith('data:')) { newFavicon = favicons[0]; @@ -70,6 +73,15 @@ exports.create = function(win, config) { // if its not default we have to construct into nativeImage if (newFavicon !== config.icon_path) { newFavicon = nativeImage.createFromDataURL(favicons[0]); + + if (process.platform === 'win32') { + try { + const icoPath = path.join(app.getPath('temp'), 'win32_riot_icon.ico') + const icoBuf = await pngToIco(newFavicon.toPNG()); + fs.writeFileSync(icoPath, icoBuf); + newFavicon = icoPath; + } catch (e) {console.error(e);} + } } trayIcon.setImage(newFavicon); diff --git a/package.json b/package.json index 73ebc00950..ffed4f17a1 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "riot-web", "productName": "Riot", "main": "electron_app/src/electron-main.js", - "version": "0.10.0", + "version": "0.10.2", "description": "A feature-rich client for Matrix.org", "author": "Vector Creations Ltd.", "repository": { @@ -46,7 +46,7 @@ "start:prod": "parallelshell \"npm run reskindex:watch\" \"npm run start:res\" \"npm run start:js:prod\"", "lint": "eslint src/", "lintall": "eslint src/ test/", - "clean": "rimraf lib webapp electron/dist", + "clean": "rimraf lib webapp electron_app/dist", "prepublish": "npm run build:compile", "test": "karma start --single-run=true --autoWatch=false --browsers PhantomJS --colors=false", "test-multi": "karma start" @@ -66,7 +66,7 @@ "highlight.js": "^9.0.0", "linkifyjs": "^2.1.3", "matrix-js-sdk": "0.7.10", - "matrix-react-sdk": "0.9.0", + "matrix-react-sdk": "0.9.2", "modernizr": "^3.1.0", "pako": "^1.0.5", "q": "^1.4.1", @@ -76,8 +76,10 @@ "react-dom": "^15.4.0", "react-gemini-scrollbar": "matrix-org/react-gemini-scrollbar#5e97aef", "sanitize-html": "^1.11.1", + "text-encoding-utf-8": "^1.0.1", "ua-parser-js": "^0.7.10", - "url": "^0.11.0" + "url": "^0.11.0", + "velocity-vector": "vector-im/velocity#059e3b2" }, "devDependencies": { "autoprefixer": "^6.6.0", @@ -101,6 +103,7 @@ "css-raw-loader": "^0.1.1", "electron-builder": "^11.2.4", "electron-builder-squirrel-windows": "^11.2.1", + "electron-devtools-installer": "^2.2.0", "emojione": "^2.2.7", "eslint": "^3.14.0", "eslint-config-google": "^0.7.1", @@ -162,7 +165,7 @@ "category": "Network;InstantMessaging;Chat", "maintainer": "support@riot.im", "desktop": { - "StartupWMClass": "riot-web" + "StartupWMClass": "riot" } }, "win": { diff --git a/res/flags/AD.png b/res/flags/AD.png index 8e777b9822..d5d59645fe 100644 Binary files a/res/flags/AD.png and b/res/flags/AD.png differ diff --git a/res/flags/AE.png b/res/flags/AE.png index 1c4a2bb790..05c7418aa4 100644 Binary files a/res/flags/AE.png and b/res/flags/AE.png differ diff --git a/res/flags/AF.png b/res/flags/AF.png index 7d369371f5..bc7cef0916 100644 Binary files a/res/flags/AF.png and b/res/flags/AF.png differ diff --git a/res/flags/AG.png b/res/flags/AG.png index 78c03626ba..d48facad47 100644 Binary files a/res/flags/AG.png and b/res/flags/AG.png differ diff --git a/res/flags/AI.png b/res/flags/AI.png index 8a70782310..8fd27cd39e 100644 Binary files a/res/flags/AI.png and b/res/flags/AI.png differ diff --git a/res/flags/AL.png b/res/flags/AL.png index b19c7bc52d..883835ffb3 100644 Binary files a/res/flags/AL.png and b/res/flags/AL.png differ diff --git a/res/flags/AM.png b/res/flags/AM.png index b39695fd49..b1bb36b987 100644 Binary files a/res/flags/AM.png and b/res/flags/AM.png differ diff --git a/res/flags/AO.png b/res/flags/AO.png index 5aee75af1b..ae68b12c44 100644 Binary files a/res/flags/AO.png and b/res/flags/AO.png differ diff --git a/res/flags/AQ.png b/res/flags/AQ.png index fa76fbb278..146e9c0a04 100644 Binary files a/res/flags/AQ.png and b/res/flags/AQ.png differ diff --git a/res/flags/AR.png b/res/flags/AR.png index 28750f42a8..8142adfc83 100644 Binary files a/res/flags/AR.png and b/res/flags/AR.png differ diff --git a/res/flags/AS.png b/res/flags/AS.png index 36ba9b34df..cc5bf30daf 100644 Binary files a/res/flags/AS.png and b/res/flags/AS.png differ diff --git a/res/flags/AT.png b/res/flags/AT.png index 487fee823c..e32414bd6a 100644 Binary files a/res/flags/AT.png and b/res/flags/AT.png differ diff --git a/res/flags/AU.png b/res/flags/AU.png index 7004861f7f..8d1e143791 100644 Binary files a/res/flags/AU.png and b/res/flags/AU.png differ diff --git a/res/flags/AW.png b/res/flags/AW.png index 238084e4a8..6ec178847e 100644 Binary files a/res/flags/AW.png and b/res/flags/AW.png differ diff --git a/res/flags/AX.png b/res/flags/AX.png index 07ac7742ab..ba269c0453 100644 Binary files a/res/flags/AX.png and b/res/flags/AX.png differ diff --git a/res/flags/AZ.png b/res/flags/AZ.png index 686dbed76c..2bf3c746e7 100644 Binary files a/res/flags/AZ.png and b/res/flags/AZ.png differ diff --git a/res/flags/BA.png b/res/flags/BA.png index 5cfbb6d657..3e3ec3fc76 100644 Binary files a/res/flags/BA.png and b/res/flags/BA.png differ diff --git a/res/flags/BB.png b/res/flags/BB.png index dcdbae7a9a..694050ca46 100644 Binary files a/res/flags/BB.png and b/res/flags/BB.png differ diff --git a/res/flags/BD.png b/res/flags/BD.png index 3bd977a442..6de2cde85b 100644 Binary files a/res/flags/BD.png and b/res/flags/BD.png differ diff --git a/res/flags/BE.png b/res/flags/BE.png index 555ac8bb74..742ba9231f 100644 Binary files a/res/flags/BE.png and b/res/flags/BE.png differ diff --git a/res/flags/BF.png b/res/flags/BF.png index 5a80be2aaa..17f9f67d26 100644 Binary files a/res/flags/BF.png and b/res/flags/BF.png differ diff --git a/res/flags/BG.png b/res/flags/BG.png index 6d8be358f9..b01d3ff57b 100644 Binary files a/res/flags/BG.png and b/res/flags/BG.png differ diff --git a/res/flags/BH.png b/res/flags/BH.png index 0d98e0e051..d0f82e8285 100644 Binary files a/res/flags/BH.png and b/res/flags/BH.png differ diff --git a/res/flags/BI.png b/res/flags/BI.png index e2659e3bc1..21865ac720 100644 Binary files a/res/flags/BI.png and b/res/flags/BI.png differ diff --git a/res/flags/BJ.png b/res/flags/BJ.png index 13fa3c91e7..a7c6091434 100644 Binary files a/res/flags/BJ.png and b/res/flags/BJ.png differ diff --git a/res/flags/BL.png b/res/flags/BL.png index 8e50a79605..6d50a0f544 100644 Binary files a/res/flags/BL.png and b/res/flags/BL.png differ diff --git a/res/flags/BM.png b/res/flags/BM.png index 53de7c39b2..310a25ea23 100644 Binary files a/res/flags/BM.png and b/res/flags/BM.png differ diff --git a/res/flags/BN.png b/res/flags/BN.png index 3ed976ebff..bc4da8d9a6 100644 Binary files a/res/flags/BN.png and b/res/flags/BN.png differ diff --git a/res/flags/BO.png b/res/flags/BO.png index 8e20ea8cee..144b8d32db 100644 Binary files a/res/flags/BO.png and b/res/flags/BO.png differ diff --git a/res/flags/BQ.png b/res/flags/BQ.png index 1547226606..0897943760 100644 Binary files a/res/flags/BQ.png and b/res/flags/BQ.png differ diff --git a/res/flags/BR.png b/res/flags/BR.png index 7a2bc17adc..0278492592 100644 Binary files a/res/flags/BR.png and b/res/flags/BR.png differ diff --git a/res/flags/BS.png b/res/flags/BS.png index 2a152575c6..2b05a8fc7c 100644 Binary files a/res/flags/BS.png and b/res/flags/BS.png differ diff --git a/res/flags/BT.png b/res/flags/BT.png index 4782cf34a6..1f031df071 100644 Binary files a/res/flags/BT.png and b/res/flags/BT.png differ diff --git a/res/flags/BV.png b/res/flags/BV.png index 991a6cd76c..aafb0f1776 100644 Binary files a/res/flags/BV.png and b/res/flags/BV.png differ diff --git a/res/flags/BW.png b/res/flags/BW.png index cd78895521..3084016718 100644 Binary files a/res/flags/BW.png and b/res/flags/BW.png differ diff --git a/res/flags/BY.png b/res/flags/BY.png index 40cdd8a7dd..ce9de9c9c7 100644 Binary files a/res/flags/BY.png and b/res/flags/BY.png differ diff --git a/res/flags/BZ.png b/res/flags/BZ.png index 5de79b7630..33620c3f31 100644 Binary files a/res/flags/BZ.png and b/res/flags/BZ.png differ diff --git a/res/flags/CA.png b/res/flags/CA.png index 68bcac9997..4bbf8b1169 100644 Binary files a/res/flags/CA.png and b/res/flags/CA.png differ diff --git a/res/flags/CC.png b/res/flags/CC.png index 13fe2b7f4d..fd40fc8a78 100644 Binary files a/res/flags/CC.png and b/res/flags/CC.png differ diff --git a/res/flags/CD.png b/res/flags/CD.png index c19304093e..230aacd454 100644 Binary files a/res/flags/CD.png and b/res/flags/CD.png differ diff --git a/res/flags/CF.png b/res/flags/CF.png index 6df7750774..c58ed4f7b2 100644 Binary files a/res/flags/CF.png and b/res/flags/CF.png differ diff --git a/res/flags/CG.png b/res/flags/CG.png index 2d37cd50a8..6c2441e3e0 100644 Binary files a/res/flags/CG.png and b/res/flags/CG.png differ diff --git a/res/flags/CH.png b/res/flags/CH.png index 00d3871728..9fd87167df 100644 Binary files a/res/flags/CH.png and b/res/flags/CH.png differ diff --git a/res/flags/CI.png b/res/flags/CI.png index 82c7606ee9..9741b9b11f 100644 Binary files a/res/flags/CI.png and b/res/flags/CI.png differ diff --git a/res/flags/CK.png b/res/flags/CK.png index 26bca5f9c9..6cca35967c 100644 Binary files a/res/flags/CK.png and b/res/flags/CK.png differ diff --git a/res/flags/CL.png b/res/flags/CL.png index 317ec573fc..13b993d15d 100644 Binary files a/res/flags/CL.png and b/res/flags/CL.png differ diff --git a/res/flags/CM.png b/res/flags/CM.png index c5605d6391..bca5730fb5 100644 Binary files a/res/flags/CM.png and b/res/flags/CM.png differ diff --git a/res/flags/CN.png b/res/flags/CN.png index 1c25ab8662..e086855c73 100644 Binary files a/res/flags/CN.png and b/res/flags/CN.png differ diff --git a/res/flags/CO.png b/res/flags/CO.png index b328c1ea82..65c0aba447 100644 Binary files a/res/flags/CO.png and b/res/flags/CO.png differ diff --git a/res/flags/CR.png b/res/flags/CR.png index df959197fe..b351c67a53 100644 Binary files a/res/flags/CR.png and b/res/flags/CR.png differ diff --git a/res/flags/CU.png b/res/flags/CU.png index 60f6a8c8f2..e7a25c60b3 100644 Binary files a/res/flags/CU.png and b/res/flags/CU.png differ diff --git a/res/flags/CV.png b/res/flags/CV.png index 2dfe516d29..f249bbaa46 100644 Binary files a/res/flags/CV.png and b/res/flags/CV.png differ diff --git a/res/flags/CW.png b/res/flags/CW.png index 2380de1568..e02cacd3dd 100644 Binary files a/res/flags/CW.png and b/res/flags/CW.png differ diff --git a/res/flags/CX.png b/res/flags/CX.png index 49a51c164b..3ea21422f0 100644 Binary files a/res/flags/CX.png and b/res/flags/CX.png differ diff --git a/res/flags/CY.png b/res/flags/CY.png index 08a0e372e2..3182f48bd2 100644 Binary files a/res/flags/CY.png and b/res/flags/CY.png differ diff --git a/res/flags/CZ.png b/res/flags/CZ.png index 90ceaa242a..5462334638 100644 Binary files a/res/flags/CZ.png and b/res/flags/CZ.png differ diff --git a/res/flags/DE.png b/res/flags/DE.png index 90cab7e9a4..93e269166b 100644 Binary files a/res/flags/DE.png and b/res/flags/DE.png differ diff --git a/res/flags/DJ.png b/res/flags/DJ.png index c424a807a8..243bb7390d 100644 Binary files a/res/flags/DJ.png and b/res/flags/DJ.png differ diff --git a/res/flags/DK.png b/res/flags/DK.png index 5a3845ad10..fc74cc396c 100644 Binary files a/res/flags/DK.png and b/res/flags/DK.png differ diff --git a/res/flags/DM.png b/res/flags/DM.png index e7fb60c04a..c3a0e9d102 100644 Binary files a/res/flags/DM.png and b/res/flags/DM.png differ diff --git a/res/flags/DO.png b/res/flags/DO.png index 03c2f1b9d4..5c4a004fef 100644 Binary files a/res/flags/DO.png and b/res/flags/DO.png differ diff --git a/res/flags/DZ.png b/res/flags/DZ.png index 9d63939e7f..1589d0cc40 100644 Binary files a/res/flags/DZ.png and b/res/flags/DZ.png differ diff --git a/res/flags/EC.png b/res/flags/EC.png index 92e2a9e929..4c53dead1c 100644 Binary files a/res/flags/EC.png and b/res/flags/EC.png differ diff --git a/res/flags/EE.png b/res/flags/EE.png index 081568695f..3668de7919 100644 Binary files a/res/flags/EE.png and b/res/flags/EE.png differ diff --git a/res/flags/EG.png b/res/flags/EG.png index 7e9d6c5cc1..66ec709df7 100644 Binary files a/res/flags/EG.png and b/res/flags/EG.png differ diff --git a/res/flags/EH.png b/res/flags/EH.png index f8e59b21fc..148be93c08 100644 Binary files a/res/flags/EH.png and b/res/flags/EH.png differ diff --git a/res/flags/ER.png b/res/flags/ER.png index ffeb28dac8..7cb8441514 100644 Binary files a/res/flags/ER.png and b/res/flags/ER.png differ diff --git a/res/flags/ES.png b/res/flags/ES.png index 3ce59fe891..aae73b6fcb 100644 Binary files a/res/flags/ES.png and b/res/flags/ES.png differ diff --git a/res/flags/ET.png b/res/flags/ET.png index f9d92859c4..7b420f02f4 100644 Binary files a/res/flags/ET.png and b/res/flags/ET.png differ diff --git a/res/flags/FI.png b/res/flags/FI.png index 0930988c29..42f64bf360 100644 Binary files a/res/flags/FI.png and b/res/flags/FI.png differ diff --git a/res/flags/FJ.png b/res/flags/FJ.png index 2a78075da4..cecc683c9c 100644 Binary files a/res/flags/FJ.png and b/res/flags/FJ.png differ diff --git a/res/flags/FK.png b/res/flags/FK.png index 52543390c7..6074fea09c 100644 Binary files a/res/flags/FK.png and b/res/flags/FK.png differ diff --git a/res/flags/FM.png b/res/flags/FM.png index 0ba546ed38..45fdb66426 100644 Binary files a/res/flags/FM.png and b/res/flags/FM.png differ diff --git a/res/flags/FO.png b/res/flags/FO.png index 2a0cd64579..d8fd75c638 100644 Binary files a/res/flags/FO.png and b/res/flags/FO.png differ diff --git a/res/flags/FR.png b/res/flags/FR.png index ef05d74bc7..6d50a0f544 100644 Binary files a/res/flags/FR.png and b/res/flags/FR.png differ diff --git a/res/flags/GA.png b/res/flags/GA.png index 6539d6dd21..3808a61f1d 100644 Binary files a/res/flags/GA.png and b/res/flags/GA.png differ diff --git a/res/flags/GB.png b/res/flags/GB.png index 2938e61b8b..589be70063 100644 Binary files a/res/flags/GB.png and b/res/flags/GB.png differ diff --git a/res/flags/GD.png b/res/flags/GD.png index a55638e7ed..babe1e4cc6 100644 Binary files a/res/flags/GD.png and b/res/flags/GD.png differ diff --git a/res/flags/GE.png b/res/flags/GE.png index c6cfd2b069..d34cddeca9 100644 Binary files a/res/flags/GE.png and b/res/flags/GE.png differ diff --git a/res/flags/GF.png b/res/flags/GF.png index dfc1badffc..98828a5906 100644 Binary files a/res/flags/GF.png and b/res/flags/GF.png differ diff --git a/res/flags/GG.png b/res/flags/GG.png index a79f8c1f30..aec8969b28 100644 Binary files a/res/flags/GG.png and b/res/flags/GG.png differ diff --git a/res/flags/GH.png b/res/flags/GH.png index bda5d6f661..70b1a623de 100644 Binary files a/res/flags/GH.png and b/res/flags/GH.png differ diff --git a/res/flags/GI.png b/res/flags/GI.png index 620b50b3df..9aa58327e3 100644 Binary files a/res/flags/GI.png and b/res/flags/GI.png differ diff --git a/res/flags/GL.png b/res/flags/GL.png index c3d6bcf36b..cf1645c2b5 100644 Binary files a/res/flags/GL.png and b/res/flags/GL.png differ diff --git a/res/flags/GM.png b/res/flags/GM.png index fa2d771ee2..ec374fb3c3 100644 Binary files a/res/flags/GM.png and b/res/flags/GM.png differ diff --git a/res/flags/GN.png b/res/flags/GN.png index dabe7ce494..46874b4d98 100644 Binary files a/res/flags/GN.png and b/res/flags/GN.png differ diff --git a/res/flags/GP.png b/res/flags/GP.png index 7bf7695635..81b7abdf0e 100644 Binary files a/res/flags/GP.png and b/res/flags/GP.png differ diff --git a/res/flags/GQ.png b/res/flags/GQ.png index edae61e9e8..7fd1015e8b 100644 Binary files a/res/flags/GQ.png and b/res/flags/GQ.png differ diff --git a/res/flags/GR.png b/res/flags/GR.png index 5abc59d393..101de51eab 100644 Binary files a/res/flags/GR.png and b/res/flags/GR.png differ diff --git a/res/flags/GS.png b/res/flags/GS.png index baa930d0a3..772c2cbe6d 100644 Binary files a/res/flags/GS.png and b/res/flags/GS.png differ diff --git a/res/flags/GT.png b/res/flags/GT.png index 10ef0cdd16..d5bd8c1e46 100644 Binary files a/res/flags/GT.png and b/res/flags/GT.png differ diff --git a/res/flags/GU.png b/res/flags/GU.png index 166c121e1a..8923085d5a 100644 Binary files a/res/flags/GU.png and b/res/flags/GU.png differ diff --git a/res/flags/GW.png b/res/flags/GW.png index fb59de837c..20c268ce06 100644 Binary files a/res/flags/GW.png and b/res/flags/GW.png differ diff --git a/res/flags/GY.png b/res/flags/GY.png index 65499a7ca3..86f56635ef 100644 Binary files a/res/flags/GY.png and b/res/flags/GY.png differ diff --git a/res/flags/HK.png b/res/flags/HK.png index 3958838402..907dc59624 100644 Binary files a/res/flags/HK.png and b/res/flags/HK.png differ diff --git a/res/flags/HM.png b/res/flags/HM.png index 26a61cbff4..8d1e143791 100644 Binary files a/res/flags/HM.png and b/res/flags/HM.png differ diff --git a/res/flags/HN.png b/res/flags/HN.png index bf923cb81b..4cf8c3112c 100644 Binary files a/res/flags/HN.png and b/res/flags/HN.png differ diff --git a/res/flags/HR.png b/res/flags/HR.png index 139e143b8f..413ceb1586 100644 Binary files a/res/flags/HR.png and b/res/flags/HR.png differ diff --git a/res/flags/HT.png b/res/flags/HT.png index 2583da392f..097abeb434 100644 Binary files a/res/flags/HT.png and b/res/flags/HT.png differ diff --git a/res/flags/HU.png b/res/flags/HU.png index 625846af53..23499bf63c 100644 Binary files a/res/flags/HU.png and b/res/flags/HU.png differ diff --git a/res/flags/ID.png b/res/flags/ID.png index f88d48af94..80200657c6 100644 Binary files a/res/flags/ID.png and b/res/flags/ID.png differ diff --git a/res/flags/IE.png b/res/flags/IE.png index 17f255fc26..63f2220118 100644 Binary files a/res/flags/IE.png and b/res/flags/IE.png differ diff --git a/res/flags/IL.png b/res/flags/IL.png index 6c9a6b57d8..0268826321 100644 Binary files a/res/flags/IL.png and b/res/flags/IL.png differ diff --git a/res/flags/IM.png b/res/flags/IM.png index 936e801d72..c777acc490 100644 Binary files a/res/flags/IM.png and b/res/flags/IM.png differ diff --git a/res/flags/IN.png b/res/flags/IN.png index ecba2f9c48..85fa9bfe72 100644 Binary files a/res/flags/IN.png and b/res/flags/IN.png differ diff --git a/res/flags/IO.png b/res/flags/IO.png index b0edb1610f..1675d8e7db 100644 Binary files a/res/flags/IO.png and b/res/flags/IO.png differ diff --git a/res/flags/IQ.png b/res/flags/IQ.png index 19055f14f7..f2c21f7260 100644 Binary files a/res/flags/IQ.png and b/res/flags/IQ.png differ diff --git a/res/flags/IR.png b/res/flags/IR.png index 9056d21ec2..0b8e67506c 100644 Binary files a/res/flags/IR.png and b/res/flags/IR.png differ diff --git a/res/flags/IS.png b/res/flags/IS.png index 06be01a879..5ee3e63c5c 100644 Binary files a/res/flags/IS.png and b/res/flags/IS.png differ diff --git a/res/flags/IT.png b/res/flags/IT.png index 50e17b22a9..53b967be99 100644 Binary files a/res/flags/IT.png and b/res/flags/IT.png differ diff --git a/res/flags/JE.png b/res/flags/JE.png index 456a1a837e..a1437aba78 100644 Binary files a/res/flags/JE.png and b/res/flags/JE.png differ diff --git a/res/flags/JM.png b/res/flags/JM.png index 5e4e73d325..0d462fa3ae 100644 Binary files a/res/flags/JM.png and b/res/flags/JM.png differ diff --git a/res/flags/JO.png b/res/flags/JO.png index 5982705bbe..8934db7eca 100644 Binary files a/res/flags/JO.png and b/res/flags/JO.png differ diff --git a/res/flags/JP.png b/res/flags/JP.png index 009a990a49..6f92d52365 100644 Binary files a/res/flags/JP.png and b/res/flags/JP.png differ diff --git a/res/flags/KE.png b/res/flags/KE.png index b5a9f733e4..866b3f15dc 100644 Binary files a/res/flags/KE.png and b/res/flags/KE.png differ diff --git a/res/flags/KG.png b/res/flags/KG.png index acf6646b8a..56b433c756 100644 Binary files a/res/flags/KG.png and b/res/flags/KG.png differ diff --git a/res/flags/KH.png b/res/flags/KH.png index 58ad9c6175..e1ddd5f84c 100644 Binary files a/res/flags/KH.png and b/res/flags/KH.png differ diff --git a/res/flags/KI.png b/res/flags/KI.png index 49902d25aa..8b7c54bc0f 100644 Binary files a/res/flags/KI.png and b/res/flags/KI.png differ diff --git a/res/flags/KM.png b/res/flags/KM.png index 9fa9a454e1..227a3b3396 100644 Binary files a/res/flags/KM.png and b/res/flags/KM.png differ diff --git a/res/flags/KN.png b/res/flags/KN.png index 3b39f8f7ae..bc6189bed1 100644 Binary files a/res/flags/KN.png and b/res/flags/KN.png differ diff --git a/res/flags/KP.png b/res/flags/KP.png index eacc3ad0fd..c92248b910 100644 Binary files a/res/flags/KP.png and b/res/flags/KP.png differ diff --git a/res/flags/KR.png b/res/flags/KR.png index a0df8da033..ab1cb94943 100644 Binary files a/res/flags/KR.png and b/res/flags/KR.png differ diff --git a/res/flags/KW.png b/res/flags/KW.png index c6839950d8..0b41c7a532 100644 Binary files a/res/flags/KW.png and b/res/flags/KW.png differ diff --git a/res/flags/KY.png b/res/flags/KY.png index 3f82fa749e..7af5290d31 100644 Binary files a/res/flags/KY.png and b/res/flags/KY.png differ diff --git a/res/flags/KZ.png b/res/flags/KZ.png index 4b43621212..e10a1255a0 100644 Binary files a/res/flags/KZ.png and b/res/flags/KZ.png differ diff --git a/res/flags/LA.png b/res/flags/LA.png index ee9c41ea18..6ad67d4255 100644 Binary files a/res/flags/LA.png and b/res/flags/LA.png differ diff --git a/res/flags/LB.png b/res/flags/LB.png index 7b4d66537f..865df57a42 100644 Binary files a/res/flags/LB.png and b/res/flags/LB.png differ diff --git a/res/flags/LC.png b/res/flags/LC.png index d97f8d8dc7..e83a2d08bc 100644 Binary files a/res/flags/LC.png and b/res/flags/LC.png differ diff --git a/res/flags/LI.png b/res/flags/LI.png index c75a229fa8..57034d367c 100644 Binary files a/res/flags/LI.png and b/res/flags/LI.png differ diff --git a/res/flags/LK.png b/res/flags/LK.png index 2ca1a0c167..6e7ad58254 100644 Binary files a/res/flags/LK.png and b/res/flags/LK.png differ diff --git a/res/flags/LR.png b/res/flags/LR.png index 41bf4a96ce..46c3b84a92 100644 Binary files a/res/flags/LR.png and b/res/flags/LR.png differ diff --git a/res/flags/LS.png b/res/flags/LS.png index 10cf81b054..79b505d490 100644 Binary files a/res/flags/LS.png and b/res/flags/LS.png differ diff --git a/res/flags/LT.png b/res/flags/LT.png index 17a36c71ce..7740cdc0a0 100644 Binary files a/res/flags/LT.png and b/res/flags/LT.png differ diff --git a/res/flags/LU.png b/res/flags/LU.png index 675a891dd6..8f383e674e 100644 Binary files a/res/flags/LU.png and b/res/flags/LU.png differ diff --git a/res/flags/LV.png b/res/flags/LV.png index 763a612026..a0f36d89c4 100644 Binary files a/res/flags/LV.png and b/res/flags/LV.png differ diff --git a/res/flags/LY.png b/res/flags/LY.png index 5211a9024f..2884c4c0a9 100644 Binary files a/res/flags/LY.png and b/res/flags/LY.png differ diff --git a/res/flags/MA.png b/res/flags/MA.png index 098db5009b..1f76cfc9bd 100644 Binary files a/res/flags/MA.png and b/res/flags/MA.png differ diff --git a/res/flags/MC.png b/res/flags/MC.png index 8d1a98132c..06fc2ad166 100644 Binary files a/res/flags/MC.png and b/res/flags/MC.png differ diff --git a/res/flags/MD.png b/res/flags/MD.png index 6ca6f734c9..8e54c2b815 100644 Binary files a/res/flags/MD.png and b/res/flags/MD.png differ diff --git a/res/flags/ME.png b/res/flags/ME.png index c7fccac3b9..97424d4ec2 100644 Binary files a/res/flags/ME.png and b/res/flags/ME.png differ diff --git a/res/flags/MF.png b/res/flags/MF.png index 7f6824e0ab..6d50a0f544 100644 Binary files a/res/flags/MF.png and b/res/flags/MF.png differ diff --git a/res/flags/MG.png b/res/flags/MG.png index 55bc89850a..28bfccc9e8 100644 Binary files a/res/flags/MG.png and b/res/flags/MG.png differ diff --git a/res/flags/MH.png b/res/flags/MH.png index 4484977945..e482a65924 100644 Binary files a/res/flags/MH.png and b/res/flags/MH.png differ diff --git a/res/flags/MK.png b/res/flags/MK.png index ef8d2e55ee..84e2e65e76 100644 Binary files a/res/flags/MK.png and b/res/flags/MK.png differ diff --git a/res/flags/ML.png b/res/flags/ML.png index b8c5737f3d..38fec34796 100644 Binary files a/res/flags/ML.png and b/res/flags/ML.png differ diff --git a/res/flags/MM.png b/res/flags/MM.png index afac494059..70a03c6b14 100644 Binary files a/res/flags/MM.png and b/res/flags/MM.png differ diff --git a/res/flags/MN.png b/res/flags/MN.png index 6e3de3381b..1e1bbe6089 100644 Binary files a/res/flags/MN.png and b/res/flags/MN.png differ diff --git a/res/flags/MO.png b/res/flags/MO.png index 02118edf4b..3833d683e7 100644 Binary files a/res/flags/MO.png and b/res/flags/MO.png differ diff --git a/res/flags/MP.png b/res/flags/MP.png index a85be51b1b..63119096b0 100644 Binary files a/res/flags/MP.png and b/res/flags/MP.png differ diff --git a/res/flags/MQ.png b/res/flags/MQ.png index 92eb07275d..9cab441aec 100644 Binary files a/res/flags/MQ.png and b/res/flags/MQ.png differ diff --git a/res/flags/MR.png b/res/flags/MR.png index 95a5272652..c144de17f7 100644 Binary files a/res/flags/MR.png and b/res/flags/MR.png differ diff --git a/res/flags/MS.png b/res/flags/MS.png index a811c5bd0f..1221707042 100644 Binary files a/res/flags/MS.png and b/res/flags/MS.png differ diff --git a/res/flags/MT.png b/res/flags/MT.png index 857672bf3a..7963aa618a 100644 Binary files a/res/flags/MT.png and b/res/flags/MT.png differ diff --git a/res/flags/MU.png b/res/flags/MU.png index 8f6abb7331..d5d4d4008d 100644 Binary files a/res/flags/MU.png and b/res/flags/MU.png differ diff --git a/res/flags/MV.png b/res/flags/MV.png index bdb8119f5f..0f2ecb4389 100644 Binary files a/res/flags/MV.png and b/res/flags/MV.png differ diff --git a/res/flags/MW.png b/res/flags/MW.png index c684776a33..d0a5d24f55 100644 Binary files a/res/flags/MW.png and b/res/flags/MW.png differ diff --git a/res/flags/MX.png b/res/flags/MX.png index aee282de37..096cb1111f 100644 Binary files a/res/flags/MX.png and b/res/flags/MX.png differ diff --git a/res/flags/MY.png b/res/flags/MY.png index 3941aa8cb1..17f18ac519 100644 Binary files a/res/flags/MY.png and b/res/flags/MY.png differ diff --git a/res/flags/MZ.png b/res/flags/MZ.png index dd497c23c1..66be6563c6 100644 Binary files a/res/flags/MZ.png and b/res/flags/MZ.png differ diff --git a/res/flags/NA.png b/res/flags/NA.png index 68e4aeabe6..7ecfd317c7 100644 Binary files a/res/flags/NA.png and b/res/flags/NA.png differ diff --git a/res/flags/NC.png b/res/flags/NC.png index ffcc21662b..11126ade77 100644 Binary files a/res/flags/NC.png and b/res/flags/NC.png differ diff --git a/res/flags/NE.png b/res/flags/NE.png index 08950d2f37..d584fa8429 100644 Binary files a/res/flags/NE.png and b/res/flags/NE.png differ diff --git a/res/flags/NF.png b/res/flags/NF.png index 2728ed548b..c054042591 100644 Binary files a/res/flags/NF.png and b/res/flags/NF.png differ diff --git a/res/flags/NG.png b/res/flags/NG.png index 5812b2d29c..73aee15b3f 100644 Binary files a/res/flags/NG.png and b/res/flags/NG.png differ diff --git a/res/flags/NI.png b/res/flags/NI.png index d09e132955..fd044933e4 100644 Binary files a/res/flags/NI.png and b/res/flags/NI.png differ diff --git a/res/flags/NL.png b/res/flags/NL.png index f920328273..0897943760 100644 Binary files a/res/flags/NL.png and b/res/flags/NL.png differ diff --git a/res/flags/NO.png b/res/flags/NO.png index 0bedee3f18..aafb0f1776 100644 Binary files a/res/flags/NO.png and b/res/flags/NO.png differ diff --git a/res/flags/NP.png b/res/flags/NP.png index e7775c2516..744458e17e 100644 Binary files a/res/flags/NP.png and b/res/flags/NP.png differ diff --git a/res/flags/NR.png b/res/flags/NR.png index 4760404ba6..58c2afb228 100644 Binary files a/res/flags/NR.png and b/res/flags/NR.png differ diff --git a/res/flags/NU.png b/res/flags/NU.png index 7c130d5b88..007c99eca5 100644 Binary files a/res/flags/NU.png and b/res/flags/NU.png differ diff --git a/res/flags/NZ.png b/res/flags/NZ.png index 67c98728fc..839368dd7b 100644 Binary files a/res/flags/NZ.png and b/res/flags/NZ.png differ diff --git a/res/flags/OM.png b/res/flags/OM.png index a6762503fa..63a893367f 100644 Binary files a/res/flags/OM.png and b/res/flags/OM.png differ diff --git a/res/flags/PA.png b/res/flags/PA.png index ed18bddaf6..3515d95d37 100644 Binary files a/res/flags/PA.png and b/res/flags/PA.png differ diff --git a/res/flags/PE.png b/res/flags/PE.png index 7485279cb6..58f70b8d18 100644 Binary files a/res/flags/PE.png and b/res/flags/PE.png differ diff --git a/res/flags/PF.png b/res/flags/PF.png index 6623f41346..2f33f2574f 100644 Binary files a/res/flags/PF.png and b/res/flags/PF.png differ diff --git a/res/flags/PG.png b/res/flags/PG.png index 92504c5147..c796f587c6 100644 Binary files a/res/flags/PG.png and b/res/flags/PG.png differ diff --git a/res/flags/PH.png b/res/flags/PH.png index d6d676210d..0d98de0386 100644 Binary files a/res/flags/PH.png and b/res/flags/PH.png differ diff --git a/res/flags/PK.png b/res/flags/PK.png index f7c8bb94e8..87f4e2f492 100644 Binary files a/res/flags/PK.png and b/res/flags/PK.png differ diff --git a/res/flags/PL.png b/res/flags/PL.png index 8303b1ea89..273869dfc6 100644 Binary files a/res/flags/PL.png and b/res/flags/PL.png differ diff --git a/res/flags/PM.png b/res/flags/PM.png index 2507c86eae..b74c396d92 100644 Binary files a/res/flags/PM.png and b/res/flags/PM.png differ diff --git a/res/flags/PN.png b/res/flags/PN.png index c5e1d88463..e34c62d598 100644 Binary files a/res/flags/PN.png and b/res/flags/PN.png differ diff --git a/res/flags/PR.png b/res/flags/PR.png index 938c83502f..8efdb91252 100644 Binary files a/res/flags/PR.png and b/res/flags/PR.png differ diff --git a/res/flags/PS.png b/res/flags/PS.png index d106ba89fa..7a0cceec00 100644 Binary files a/res/flags/PS.png and b/res/flags/PS.png differ diff --git a/res/flags/PT.png b/res/flags/PT.png index 168f060570..49e290827c 100644 Binary files a/res/flags/PT.png and b/res/flags/PT.png differ diff --git a/res/flags/PW.png b/res/flags/PW.png index 2d6e5d5b51..6cb2e1e70d 100644 Binary files a/res/flags/PW.png and b/res/flags/PW.png differ diff --git a/res/flags/PY.png b/res/flags/PY.png index 9cae9a780c..a61c42c423 100644 Binary files a/res/flags/PY.png and b/res/flags/PY.png differ diff --git a/res/flags/QA.png b/res/flags/QA.png index ce9d31edaf..bb091cc88c 100644 Binary files a/res/flags/QA.png and b/res/flags/QA.png differ diff --git a/res/flags/RE.png b/res/flags/RE.png index 85c2571022..6d50a0f544 100644 Binary files a/res/flags/RE.png and b/res/flags/RE.png differ diff --git a/res/flags/RO.png b/res/flags/RO.png index e77996d5ad..4495d29eb0 100644 Binary files a/res/flags/RO.png and b/res/flags/RO.png differ diff --git a/res/flags/RS.png b/res/flags/RS.png index fc7a2ab717..ebb0f28a7b 100644 Binary files a/res/flags/RS.png and b/res/flags/RS.png differ diff --git a/res/flags/RU.png b/res/flags/RU.png index 8b3df77988..64532ffa58 100644 Binary files a/res/flags/RU.png and b/res/flags/RU.png differ diff --git a/res/flags/RW.png b/res/flags/RW.png index 87f718674e..64b3cfff04 100644 Binary files a/res/flags/RW.png and b/res/flags/RW.png differ diff --git a/res/flags/SA.png b/res/flags/SA.png index d93b91c7c4..250de6f6f5 100644 Binary files a/res/flags/SA.png and b/res/flags/SA.png differ diff --git a/res/flags/SB.png b/res/flags/SB.png index e9a2a8f3f0..5833c130eb 100644 Binary files a/res/flags/SB.png and b/res/flags/SB.png differ diff --git a/res/flags/SC.png b/res/flags/SC.png index 488ac3bef3..ce5248f434 100644 Binary files a/res/flags/SC.png and b/res/flags/SC.png differ diff --git a/res/flags/SD.png b/res/flags/SD.png index 6ba8c5cac3..d8711a83d6 100644 Binary files a/res/flags/SD.png and b/res/flags/SD.png differ diff --git a/res/flags/SE.png b/res/flags/SE.png index e7bd806f4f..81880931f3 100644 Binary files a/res/flags/SE.png and b/res/flags/SE.png differ diff --git a/res/flags/SG.png b/res/flags/SG.png index 797069fc9e..6f00e57923 100644 Binary files a/res/flags/SG.png and b/res/flags/SG.png differ diff --git a/res/flags/SH.png b/res/flags/SH.png index b2c589d0c5..055dde68bc 100644 Binary files a/res/flags/SH.png and b/res/flags/SH.png differ diff --git a/res/flags/SI.png b/res/flags/SI.png index be8e7a8973..9635983406 100644 Binary files a/res/flags/SI.png and b/res/flags/SI.png differ diff --git a/res/flags/SJ.png b/res/flags/SJ.png index 1dd7e78627..aafb0f1776 100644 Binary files a/res/flags/SJ.png and b/res/flags/SJ.png differ diff --git a/res/flags/SK.png b/res/flags/SK.png index be3d10f221..84c7021f0a 100644 Binary files a/res/flags/SK.png and b/res/flags/SK.png differ diff --git a/res/flags/SL.png b/res/flags/SL.png index b3f997b163..c5ed199141 100644 Binary files a/res/flags/SL.png and b/res/flags/SL.png differ diff --git a/res/flags/SM.png b/res/flags/SM.png index b30f77ad69..1af1ca284f 100644 Binary files a/res/flags/SM.png and b/res/flags/SM.png differ diff --git a/res/flags/SN.png b/res/flags/SN.png index b5cdb2101d..d0b1843561 100644 Binary files a/res/flags/SN.png and b/res/flags/SN.png differ diff --git a/res/flags/SO.png b/res/flags/SO.png index 5f80850834..64e2970b9d 100644 Binary files a/res/flags/SO.png and b/res/flags/SO.png differ diff --git a/res/flags/SR.png b/res/flags/SR.png index a2d124e92b..b072dda835 100644 Binary files a/res/flags/SR.png and b/res/flags/SR.png differ diff --git a/res/flags/SS.png b/res/flags/SS.png index 19c65899c2..83933d4521 100644 Binary files a/res/flags/SS.png and b/res/flags/SS.png differ diff --git a/res/flags/ST.png b/res/flags/ST.png index 1d2befe46d..c102721a86 100644 Binary files a/res/flags/ST.png and b/res/flags/ST.png differ diff --git a/res/flags/SV.png b/res/flags/SV.png index fc3a9ca40d..80de92e556 100644 Binary files a/res/flags/SV.png and b/res/flags/SV.png differ diff --git a/res/flags/SX.png b/res/flags/SX.png index 6051aaa624..dd52215c5d 100644 Binary files a/res/flags/SX.png and b/res/flags/SX.png differ diff --git a/res/flags/SY.png b/res/flags/SY.png index 0d51d071fb..78f45b7c0b 100644 Binary files a/res/flags/SY.png and b/res/flags/SY.png differ diff --git a/res/flags/SZ.png b/res/flags/SZ.png index a7366cb638..2182f4ff93 100644 Binary files a/res/flags/SZ.png and b/res/flags/SZ.png differ diff --git a/res/flags/TC.png b/res/flags/TC.png index 39971bb9b2..3e3e19d4b3 100644 Binary files a/res/flags/TC.png and b/res/flags/TC.png differ diff --git a/res/flags/TD.png b/res/flags/TD.png index 1fb647d488..753bec22b0 100644 Binary files a/res/flags/TD.png and b/res/flags/TD.png differ diff --git a/res/flags/TF.png b/res/flags/TF.png index 41bd93343a..6d50a0f544 100644 Binary files a/res/flags/TF.png and b/res/flags/TF.png differ diff --git a/res/flags/TG.png b/res/flags/TG.png index 560fc0988b..8501ada655 100644 Binary files a/res/flags/TG.png and b/res/flags/TG.png differ diff --git a/res/flags/TH.png b/res/flags/TH.png index 9ee5ce8997..0c884c329e 100644 Binary files a/res/flags/TH.png and b/res/flags/TH.png differ diff --git a/res/flags/TJ.png b/res/flags/TJ.png index ca4be07739..3c9026fa0f 100644 Binary files a/res/flags/TJ.png and b/res/flags/TJ.png differ diff --git a/res/flags/TK.png b/res/flags/TK.png index 88a7eb1a24..fd605749ea 100644 Binary files a/res/flags/TK.png and b/res/flags/TK.png differ diff --git a/res/flags/TL.png b/res/flags/TL.png index fa6c365b9b..b4c834b1d6 100644 Binary files a/res/flags/TL.png and b/res/flags/TL.png differ diff --git a/res/flags/TM.png b/res/flags/TM.png index 6cc0539da6..d18cb939a9 100644 Binary files a/res/flags/TM.png and b/res/flags/TM.png differ diff --git a/res/flags/TN.png b/res/flags/TN.png index 1cc09ec6f0..21c4b98be7 100644 Binary files a/res/flags/TN.png and b/res/flags/TN.png differ diff --git a/res/flags/TO.png b/res/flags/TO.png index 44c42ce0d1..c828206e35 100644 Binary files a/res/flags/TO.png and b/res/flags/TO.png differ diff --git a/res/flags/TR.png b/res/flags/TR.png index 4e63d61b9c..f2a5bd22c8 100644 Binary files a/res/flags/TR.png and b/res/flags/TR.png differ diff --git a/res/flags/TT.png b/res/flags/TT.png index 3831347f56..66d698334b 100644 Binary files a/res/flags/TT.png and b/res/flags/TT.png differ diff --git a/res/flags/TV.png b/res/flags/TV.png index 2f24fbf728..7a127f51ae 100644 Binary files a/res/flags/TV.png and b/res/flags/TV.png differ diff --git a/res/flags/TW.png b/res/flags/TW.png index cda05c9b4c..2353ba1b0a 100644 Binary files a/res/flags/TW.png and b/res/flags/TW.png differ diff --git a/res/flags/TZ.png b/res/flags/TZ.png index a60d5b3fa6..7949f65d8a 100644 Binary files a/res/flags/TZ.png and b/res/flags/TZ.png differ diff --git a/res/flags/UA.png b/res/flags/UA.png index f62089b695..687e305294 100644 Binary files a/res/flags/UA.png and b/res/flags/UA.png differ diff --git a/res/flags/UG.png b/res/flags/UG.png index 8fb590e864..0a21ad15c3 100644 Binary files a/res/flags/UG.png and b/res/flags/UG.png differ diff --git a/res/flags/US.png b/res/flags/US.png index f6b7ab982d..c3a245b767 100644 Binary files a/res/flags/US.png and b/res/flags/US.png differ diff --git a/res/flags/UY.png b/res/flags/UY.png index 11abe8c100..21a347c6fc 100644 Binary files a/res/flags/UY.png and b/res/flags/UY.png differ diff --git a/res/flags/UZ.png b/res/flags/UZ.png index 5d9168a3ea..643b6ae0cf 100644 Binary files a/res/flags/UZ.png and b/res/flags/UZ.png differ diff --git a/res/flags/VA.png b/res/flags/VA.png index 4e5a92bdd7..63a13c0e81 100644 Binary files a/res/flags/VA.png and b/res/flags/VA.png differ diff --git a/res/flags/VC.png b/res/flags/VC.png index 4a8dfa41ea..da991a9344 100644 Binary files a/res/flags/VC.png and b/res/flags/VC.png differ diff --git a/res/flags/VE.png b/res/flags/VE.png index 3632def0ca..e75e17c9f0 100644 Binary files a/res/flags/VE.png and b/res/flags/VE.png differ diff --git a/res/flags/VG.png b/res/flags/VG.png index 15a5e5fadb..46f93cad1e 100644 Binary files a/res/flags/VG.png and b/res/flags/VG.png differ diff --git a/res/flags/VI.png b/res/flags/VI.png index 986a53d2fe..8c849a733e 100644 Binary files a/res/flags/VI.png and b/res/flags/VI.png differ diff --git a/res/flags/VN.png b/res/flags/VN.png index f19db790e3..6ea2122f9d 100644 Binary files a/res/flags/VN.png and b/res/flags/VN.png differ diff --git a/res/flags/VU.png b/res/flags/VU.png index a322030a28..bad3ba4d46 100644 Binary files a/res/flags/VU.png and b/res/flags/VU.png differ diff --git a/res/flags/WF.png b/res/flags/WF.png index 5f6e2bedaa..d94359dcc4 100644 Binary files a/res/flags/WF.png and b/res/flags/WF.png differ diff --git a/res/flags/WS.png b/res/flags/WS.png index de43a37312..f8b80e5ba9 100644 Binary files a/res/flags/WS.png and b/res/flags/WS.png differ diff --git a/res/flags/YE.png b/res/flags/YE.png index b132bc13c4..8b9bbd8942 100644 Binary files a/res/flags/YE.png and b/res/flags/YE.png differ diff --git a/res/flags/YT.png b/res/flags/YT.png index 5c450dfb91..328879361e 100644 Binary files a/res/flags/YT.png and b/res/flags/YT.png differ diff --git a/res/flags/ZA.png b/res/flags/ZA.png index adec062d1d..7f0a52d3b2 100644 Binary files a/res/flags/ZA.png and b/res/flags/ZA.png differ diff --git a/res/flags/ZM.png b/res/flags/ZM.png index 56287f589b..87adc3afaa 100644 Binary files a/res/flags/ZM.png and b/res/flags/ZM.png differ diff --git a/res/flags/ZW.png b/res/flags/ZW.png index e58dff382b..742c9f7e71 100644 Binary files a/res/flags/ZW.png and b/res/flags/ZW.png differ diff --git a/res/home.html b/res/home.html new file mode 100644 index 0000000000..3ba2e96419 --- /dev/null +++ b/res/home.html @@ -0,0 +1,292 @@ + + +
+
+ +
+

_t("Welcome to Riot.im")

+

_t("Decentralised, encrypted chat & collaboration powered by [matrix]")

+
+
+
+
+
+

_t("Search the room directory")

+ + + + + _t("Lots of rooms already exist in Matrix, linked to existing networks (Slack, IRC, Gitter etc) or independent. Check out the directory!") + +
+
+
+
+

_t("Chat with Riot Bot")

+ + + + + _t("Get started with some tips from Riot Bot!") + +
+
+
+ +

_t("General discussion about Matrix and Riot")

+ +
+
+ + + Matrix HQ + + _t("Discussion of all things Matrix!") +
+
+ + + Riot + + _t("Riot/Web & Desktop chat") +
+
+ + + #riot-ios + + _t("Riot/iOS & matrix-ios-sdk chat") +
+
+ + + #riot-android + + _t("Riot/Android & matrix-android-sdk chat") +
+
+ +

_t("Matrix technical discussions")

+

_t("Running Matrix services")

+ +
+
+ + + Synapse Support Community + + _t("Community-run support for Synapse") +
+
+ + + #dendrite:matrix.org + + _t("Admin support for Dendrite") +
+
+ + + Synapse Homeowners + + _t("Announcements about Synapse releases") +
+
+ + + IRC Matrix Bridges + + _t("Support for those using and running matrix-appservice-irc") +
+
+ +

_t("Building services on Matrix")

+ +
+
+ + + #matrix-dev:matrix.org + + _t("Support for those using the Matrix spec") +
+
+ + + End-to-end crypto in Matrix + + _t("Design and implementation of E2E in Matrix") +
+
+ + + #vr:matrix.org + + _t("Implementing VR services with Matrix") +
+
+ + + #webrtc:matrix.org + + _t("Implementing VoIP services with Matrix") +
+
+ + + Matrix Identity + + _t("Discussion of the Identity Service API") +
+
+ + + Matrix Bridging + + _t("Support for those using, running and writing other bridges") +
+
+ +

_t("Contributing code to Matrix and Riot")

+ +
+
+ + + #riot-dev + + _t("Dev chat for the Riot/Web dev team") +
+
+ + + #dendrite-dev + + _t("Dev chat for the Dendrite dev team") +
+
+ + + Riot-Web Translations + + _t("Co-ordination for Riot/Web translators") +
+
+
diff --git a/res/home/images/logo.svg b/res/home/images/logo.svg new file mode 100644 index 0000000000..a5f70e5e4c --- /dev/null +++ b/res/home/images/logo.svg @@ -0,0 +1,76 @@ + + + + +New_logo + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/res/home/images/matrix.svg b/res/home/images/matrix.svg new file mode 100644 index 0000000000..5c7dfbb5e3 --- /dev/null +++ b/res/home/images/matrix.svg @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/res/home/rooms/bridging.png b/res/home/rooms/bridging.png new file mode 100644 index 0000000000..6b3a55e7bb Binary files /dev/null and b/res/home/rooms/bridging.png differ diff --git a/res/home/rooms/dendrite-dev.png b/res/home/rooms/dendrite-dev.png new file mode 100644 index 0000000000..1d96bd84a7 Binary files /dev/null and b/res/home/rooms/dendrite-dev.png differ diff --git a/res/home/rooms/dendrite.png b/res/home/rooms/dendrite.png new file mode 100644 index 0000000000..1d96bd84a7 Binary files /dev/null and b/res/home/rooms/dendrite.png differ diff --git a/res/home/rooms/e2e.png b/res/home/rooms/e2e.png new file mode 100644 index 0000000000..a2bda4bc68 Binary files /dev/null and b/res/home/rooms/e2e.png differ diff --git a/res/home/rooms/homeowners.png b/res/home/rooms/homeowners.png new file mode 100644 index 0000000000..ed45f11ceb Binary files /dev/null and b/res/home/rooms/homeowners.png differ diff --git a/res/home/rooms/identity.jpg b/res/home/rooms/identity.jpg new file mode 100644 index 0000000000..f2e1505634 Binary files /dev/null and b/res/home/rooms/identity.jpg differ diff --git a/res/home/rooms/identity.png b/res/home/rooms/identity.png new file mode 100644 index 0000000000..de1ea60d54 Binary files /dev/null and b/res/home/rooms/identity.png differ diff --git a/res/home/rooms/irc.png b/res/home/rooms/irc.png new file mode 100644 index 0000000000..5f611d12a4 Binary files /dev/null and b/res/home/rooms/irc.png differ diff --git a/res/home/rooms/matrix-dev.png b/res/home/rooms/matrix-dev.png new file mode 100644 index 0000000000..fa54f00cb2 Binary files /dev/null and b/res/home/rooms/matrix-dev.png differ diff --git a/res/home/rooms/matrix.png b/res/home/rooms/matrix.png new file mode 100644 index 0000000000..fa54f00cb2 Binary files /dev/null and b/res/home/rooms/matrix.png differ diff --git a/res/home/rooms/riot-android.png b/res/home/rooms/riot-android.png new file mode 100644 index 0000000000..fa2bec8e3e Binary files /dev/null and b/res/home/rooms/riot-android.png differ diff --git a/res/home/rooms/riot-bot.png b/res/home/rooms/riot-bot.png new file mode 100644 index 0000000000..9efd4a3c21 Binary files /dev/null and b/res/home/rooms/riot-bot.png differ diff --git a/res/home/rooms/riot-dev.png b/res/home/rooms/riot-dev.png new file mode 100644 index 0000000000..ff8b21ad1a Binary files /dev/null and b/res/home/rooms/riot-dev.png differ diff --git a/res/home/rooms/riot-ios.png b/res/home/rooms/riot-ios.png new file mode 100644 index 0000000000..83306f7cb8 Binary files /dev/null and b/res/home/rooms/riot-ios.png differ diff --git a/res/home/rooms/riot-translations.png b/res/home/rooms/riot-translations.png new file mode 100644 index 0000000000..ee0f855895 Binary files /dev/null and b/res/home/rooms/riot-translations.png differ diff --git a/res/home/rooms/riot.png b/res/home/rooms/riot.png new file mode 100644 index 0000000000..4daa2e4ef7 Binary files /dev/null and b/res/home/rooms/riot.png differ diff --git a/res/home/rooms/synapse.png b/res/home/rooms/synapse.png new file mode 100644 index 0000000000..ee0f855895 Binary files /dev/null and b/res/home/rooms/synapse.png differ diff --git a/res/home/rooms/vr.png b/res/home/rooms/vr.png new file mode 100644 index 0000000000..98b77802df Binary files /dev/null and b/res/home/rooms/vr.png differ diff --git a/res/home/rooms/webrtc.png b/res/home/rooms/webrtc.png new file mode 100644 index 0000000000..98b790f9ae Binary files /dev/null and b/res/home/rooms/webrtc.png differ diff --git a/scripts/check-i18n.pl b/scripts/check-i18n.pl new file mode 120000 index 0000000000..7d74c7a463 --- /dev/null +++ b/scripts/check-i18n.pl @@ -0,0 +1 @@ +../../matrix-react-sdk/scripts/check-i18n.pl \ No newline at end of file diff --git a/scripts/copy-res.js b/scripts/copy-res.js index 460b2b5189..b02946ae92 100755 --- a/scripts/copy-res.js +++ b/scripts/copy-res.js @@ -10,15 +10,20 @@ // control when we languages are available. const INCLUDE_LANGS = [ {'value': 'en_EN', 'label': 'English'}, + {'value': 'en_US', 'label': 'English (US)'}, {'value': 'da', 'label': 'Dansk'}, + {'value': 'el', 'label': 'Ελληνικά'}, {'value': 'nl', 'label': 'Nederlands'}, {'value': 'de_DE', 'label': 'Deutsch'}, {'value': 'fr', 'label': 'Français'}, {'value': 'pt', 'label': 'Português'}, {'value': 'pt_BR', 'label': 'Português do Brasil'}, {'value': 'ru', 'label': 'Русский'}, + {'value': 'sv', 'label': 'Svenska'}, {'value': 'es', 'label': 'Español'}, - {'value': 'zh_Hans', 'label': '中文'} + {'value': 'th', 'label': 'ไทย'}, + {'value': 'zh_Hans', 'label': '简体中文'}, // simplified chinese + {'value': 'zh_Hant', 'label': '繁體中文'}, // traditional chinese ]; // cpx includes globbed parts of the filename in the destination, but excludes @@ -26,6 +31,8 @@ const INCLUDE_LANGS = [ // "dest/b/...". const COPY_LIST = [ ["res/manifest.json", "webapp"], + ["res/home.html", "webapp"], + ["res/home/**", "webapp/home"], ["res/{media,vector-icons}/**", "webapp"], ["res/flags/*", "webapp/flags/"], ["src/skins/vector/{fonts,img}/**", "webapp"], @@ -166,9 +173,14 @@ function genLangList() { languages[normalizedLanguage] = {'fileName': lang.value + '.json', 'label': lang.label}; } }); - fs.writeFile('webapp/i18n/languages.json', JSON.stringify(languages, null, 4)); + fs.writeFile('webapp/i18n/languages.json', JSON.stringify(languages, null, 4), function(err) { + if (err) { + console.error("Copy Error occured: " + err); + throw new Error("Failed to generate languages.json"); + } + }); if (verbose) { - console.log("Generated language list"); + console.log("Generated languages.json"); } } diff --git a/scripts/fetch-develop.deps.sh b/scripts/fetch-develop.deps.sh index cc0f221a20..4fa1a4a22c 100755 --- a/scripts/fetch-develop.deps.sh +++ b/scripts/fetch-develop.deps.sh @@ -25,6 +25,11 @@ else fi fi +# Chop 'origin' off the start as jenkins ends up using +# branches on the origin, but this doesn't work if we +# specify the branch when cloning. +curbranch=${curbranch#origin/} + echo "Determined branch to be $curbranch" # clone a specific branch of a github repo diff --git a/scripts/genflags.sh b/scripts/genflags.sh index 826a0299f1..d960c6de0f 100755 --- a/scripts/genflags.sh +++ b/scripts/genflags.sh @@ -18,6 +18,9 @@ # - imagemagick --with-rsvg (because default imagemagick SVG # renderer does not produce accurate results) # +# on macOS, this is most easily done with: +# brew install imagemagick --with-librsvg +# # This will clone the googlei18n flag repo before converting # all phonenumber.js-supported country flags (as SVGs) into # PNGs that can be used by CountryDropdown.js. @@ -42,17 +45,18 @@ for f in region-flags/svg/*.svg; do # Run imagemagick convert # -background none : transparent background - # -thumbnail 25x15 : resize the flag to have a height of 15. + # -resize 50x30 : resize the flag to have a height of 15px (2x) # By default, aspect ratio is respected so the width will # be correct and not necessarily 25px. + # -filter Lanczos : use sharper resampling to avoid muddiness # -gravity Center : keep the image central when adding an -extent # -border 1 : add a 1px border around the flag # -bordercolor : set the border colour - # -extent 27x27 : surround the image with padding so that it - # has the dimensions 27x27. - convert $f -background none -thumbnail 25x15 \ - -gravity Center -border 1 -bordercolor \#e0e0e0 \ - -extent 27x27 $f.png + # -extent 54x54 : surround the image with padding so that it + # has the dimensions 27x27px (2x). + convert $f -background none -filter Lanczos -resize 50x30 \ + -gravity Center -border 1 -bordercolor \#e0e0e0 \ + -extent 54x54 $f.png # $f.png will be region-flags/svg/XX.svg.png at this point @@ -61,6 +65,6 @@ for f in region-flags/svg/*.svg; do # Replace .svg with .png newname=${newname%.svg}.png # Move the file to flags directory - mv $f.png res/flags/$newname + mv $f.png ../res/flags/$newname echo "Generated res/flags/"$newname done diff --git a/src/components/structures/BottomLeftMenu.js b/src/components/structures/BottomLeftMenu.js index c8c7ba2c06..eacc500ae2 100644 --- a/src/components/structures/BottomLeftMenu.js +++ b/src/components/structures/BottomLeftMenu.js @@ -1,5 +1,6 @@ /* Copyright 2015, 2016 OpenMarket Ltd +Copyright 2017 Vector Creations Ltd Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -14,21 +15,21 @@ See the License for the specific language governing permissions and limitations under the License. */ -'use strict'; +import React from 'react'; +import ReactDOM from 'react-dom'; +import sdk from 'matrix-react-sdk'; +import dis from 'matrix-react-sdk/lib/dispatcher'; +import AccessibleButton from 'matrix-react-sdk/lib/components/views/elements/AccessibleButton'; +import Velocity from 'velocity-vector'; +import 'velocity-vector/velocity.ui'; -var React = require('react'); -var ReactDOM = require('react-dom'); -var sdk = require('matrix-react-sdk'); -import { _t } from 'matrix-react-sdk/lib/languageHandler'; -var dis = require('matrix-react-sdk/lib/dispatcher'); -var AccessibleButton = require('matrix-react-sdk/lib/components/views/elements/AccessibleButton'); +const CALLOUT_ANIM_DURATION = 1000; module.exports = React.createClass({ displayName: 'BottomLeftMenu', propTypes: { collapsed: React.PropTypes.bool.isRequired, - teamToken: React.PropTypes.string, }, getInitialState: function() { @@ -41,6 +42,18 @@ module.exports = React.createClass({ }); }, + componentWillMount: function() { + this._dispatcherRef = dis.register(this.onAction); + this._peopleButton = null; + this._directoryButton = null; + this._createRoomButton = null; + this._lastCallouts = {}; + }, + + componentWillUnmount: function() { + dis.unregister(this._dispatcherRef); + }, + // Room events onDirectoryClick: function() { dis.dispatch({ action: 'view_room_directory' }); @@ -105,6 +118,30 @@ module.exports = React.createClass({ this.setState({ settingsHover: false }); }, + onAction: function(payload) { + let calloutElement; + switch (payload.action) { + // Incoming instruction: dance! + case 'callout_start_chat': + calloutElement = this._peopleButton; + break; + case 'callout_room_directory': + calloutElement = this._directoryButton; + break; + case 'callout_create_room': + calloutElement = this._createRoomButton; + break; + } + if (calloutElement) { + const lastCallout = this._lastCallouts[payload.action]; + const now = Date.now(); + if (lastCallout == undefined || lastCallout < now - CALLOUT_ANIM_DURATION) { + this._lastCallouts[payload.action] = now; + Velocity(ReactDOM.findDOMNode(calloutElement), "callout.bounce", CALLOUT_ANIM_DURATION); + } + } + }, + // Get the label/tooltip to show getLabel: function(label, show) { if (show) { @@ -113,39 +150,41 @@ module.exports = React.createClass({ } }, - render: function() { - var TintableSvg = sdk.getComponent('elements.TintableSvg'); + _collectPeopleButton: function(e) { + this._peopleButton = e; + }, - var homeButton; - if (this.props.teamToken) { - homeButton = ( - - - { this.getLabel(_t("Welcome page"), this.state.homeHover) } - - ); - } + _collectDirectoryButton: function(e) { + this._directoryButton = e; + }, + + _collectCreateRoomButton: function(e) { + this._createRoomButton = e; + }, + + render: function() { + const HomeButton = sdk.getComponent('elements.HomeButton'); + const StartChatButton = sdk.getComponent('elements.StartChatButton'); + const RoomDirectoryButton = sdk.getComponent('elements.RoomDirectoryButton'); + const CreateRoomButton = sdk.getComponent('elements.CreateRoomButton'); + const SettingsButton = sdk.getComponent('elements.SettingsButton'); return (
- { homeButton } - - - { this.getLabel(_t("Start chat"), this.state.peopleHover) } - - - - { this.getLabel(_t("Room directory"), this.state.directoryHover) } - - - - { this.getLabel(_t("Create new room"), this.state.roomsHover) } - - - - { this.getLabel(_t("Settings"), this.state.settingsHover) } - + +
+ +
+
+ +
+
+ +
+ + +
); diff --git a/src/components/structures/HomePage.js b/src/components/structures/HomePage.js index 8d44c90a2e..e1e700f21e 100644 --- a/src/components/structures/HomePage.js +++ b/src/components/structures/HomePage.js @@ -18,23 +18,82 @@ limitations under the License. 'use strict'; import React from 'react'; -import MatrixClientPeg from 'matrix-react-sdk/lib/MatrixClientPeg'; -import sdk from 'matrix-react-sdk'; +import GeminiScrollbar from 'react-gemini-scrollbar'; +import request from 'browser-request'; +import { _t } from 'matrix-react-sdk/lib/languageHandler'; +import sanitizeHtml from 'sanitize-html'; module.exports = React.createClass({ displayName: 'HomePage', propTypes: { - teamServerUrl: React.PropTypes.string.isRequired, - teamToken: React.PropTypes.string.isRequired, - collapsedRhs: React.PropTypes.bool, + // URL base of the team server. Optional. + teamServerUrl: React.PropTypes.string, + // Team token. Optional. If set, used to get the static homepage of the team + // associated. If unset, homePageUrl will be used. + teamToken: React.PropTypes.string, + // URL to use as the iFrame src. Defaults to /home.html. + homePageUrl: React.PropTypes.string, + }, + + getInitialState: function() { + return { + iframeSrc: '', + page: '', + }; + }, + + translate: function(s) { + s = sanitizeHtml(_t(s)); + // ugly fix for https://github.com/vector-im/riot-web/issues/4243 + s = s.replace(/Riot\.im/, 'Riot.im'); + s = s.replace(/\[matrix\]/, '[matrix]'); + return s; + }, + + componentWillMount: function() { + if (this.props.teamToken && this.props.teamServerUrl) { + this.setState({ + iframeSrc: `${this.props.teamServerUrl}/static/${this.props.teamToken}/home.html` + }); + } + else { + // we use request() to inline the homepage into the react component + // so that it can inherit CSS and theming easily rather than mess around + // with iframes and trying to synchronise document.stylesheets. + + let src = this.props.homePageUrl || 'home.html'; + + request( + { method: "GET", url: src }, + (err, response, body) => { + if (err || response.status < 200 || response.status >= 300) { + console.log(err); + this.setState({ page: "Couldn't load home page" }); + } + + body = body.replace(/_t\(['"]([\s\S]*?)['"]\)/mg, (match, g1)=>this.translate(g1)); + this.setState({ page: body }); + } + ); + } }, render: function() { - return ( -
-