diff --git a/res/home.html b/res/home.html index d1998443..f8c05ea1 100644 --- a/res/home.html +++ b/res/home.html @@ -3,37 +3,37 @@
-

Welcome to Riot.im

-

Decentralised, encrypted chat & collaboration powered by

+

_t("Welcome to Riot.im")

+

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

-

Search the room directory

+

_t("Search the room directory")

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

Chat with Riot Bot

+

_t("Chat with Riot Bot")

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

General discussion about Matrix

+

_t("General discussion about Matrix")

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

Matrix technical discussions

-

Running Matrix services

+

_t("Matrix technical discussions")

+

_t("Running Matrix services")

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

Building services on Matrix

+

_t("Building services on Matrix")

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

Contributing code to Matrix and Riot

+

_t("Contributing code to Matrix and Riot")

@@ -155,21 +155,21 @@ #riot-dev - Dev chat for the Riot/Web dev team + _t("Dev chat for the Riot/Web dev team")
#dendrite-dev - Dev chat for the Dendrite dev team + _t("Dev chat for the Dendrite dev team")
Riot-Web Translations - Co-ordination for Riot/Web translators + _t("Co-ordination for Riot/Web translators")
diff --git a/res/home/images/logo.svg b/res/home/images/logo.svg index 49f1186f..a5f70e5e 100644 --- a/res/home/images/logo.svg +++ b/res/home/images/logo.svg @@ -1 +1,76 @@ -New_logoI M. \ No newline at end of file + + + + +New_logo + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/components/structures/HomePage.js b/src/components/structures/HomePage.js index 8b5b2f3c..615877fd 100644 --- a/src/components/structures/HomePage.js +++ b/src/components/structures/HomePage.js @@ -22,6 +22,8 @@ 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', @@ -38,44 +40,44 @@ module.exports = React.createClass({ getInitialState: function() { return { - page: "" + iframeSrc: '', + page: '', }; }, componentWillMount: function() { if (this.props.teamToken && this.props.teamServerUrl) { - return; + 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. - // 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'; - 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(error); + this.setState({ page: "Couldn't load home page" }); + } - request( - { method: "GET", url: src }, - (err, response, body) => { - if (err || response.status < 200 || response.status >= 300) { - console.log(error); - this.setState({ page: "Couldn't load home page" }); + body = body.replace(/_t\(['"]([\s\S]*?)['"]\)/mg, (match, g1)=>{ return sanitizeHtml(_t(g1)) }); + this.setState({ page: body }); } - - // We parse the JSON ourselves rather than use the JSON - // parameter, since this throws a parse error on empty - // which breaks if there's no config.json and we're - // loading from the filesystem (see above). - this.setState({ page: body }); - } - ); + ); + } }, render: function() { - if (this.props.teamToken && this.props.teamServerUrl) { - src = `${this.props.teamServerUrl}/static/${this.props.teamToken}/home.html`; + if (this.state.iframeSrc) { return (
-