mirror of https://github.com/vector-im/riot-web
Merge remote-tracking branch 'origin/develop' into develop
commit
8e2529f068
|
@ -127,6 +127,11 @@ For a good example, see https://riot.im/develop/config.json
|
|||
release to release.
|
||||
1. `brand`: String to pass to your homeserver when configuring email notifications, to let the
|
||||
homeserver know what email template to use when talking to you.
|
||||
1. `branding`: Configures various branding and logo details, such as:
|
||||
1. `welcomeBackgroundUrl`: An image to use as a wallpaper outside the app
|
||||
during authentication flows
|
||||
1. `authHeaderLogoUrl`: An logo image that is shown in the header during
|
||||
authentication flows
|
||||
1. `integrations_ui_url`: URL to the web interface for the integrations server. The integrations
|
||||
server is not Riot and normally not your homeserver either. The integration server settings
|
||||
may be left blank to disable integrations.
|
||||
|
|
|
@ -78,7 +78,7 @@ module.exports = function (config) {
|
|||
watched: false, included: false, served: true, nocache: false,
|
||||
},
|
||||
{
|
||||
pattern: 'res/themes/**',
|
||||
pattern: 'res/**',
|
||||
watched: false, included: false, served: true, nocache: false,
|
||||
},
|
||||
],
|
||||
|
@ -87,6 +87,8 @@ module.exports = function (config) {
|
|||
// redirect img links to the karma server. See above.
|
||||
"/img/": "/base/node_modules/matrix-react-sdk/res/img/",
|
||||
"/themes/": "/base/res/themes/",
|
||||
"/welcome.html": "/base/res/welcome.html",
|
||||
"/welcome/": "/base/res/welcome/",
|
||||
},
|
||||
|
||||
// preprocess matching files before serving them to the browser
|
||||
|
|
|
@ -19,23 +19,26 @@ limitations under the License.
|
|||
|
||||
import React from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import SdkConfig from 'matrix-react-sdk/lib/SdkConfig';
|
||||
|
||||
const LOGO_URI = "themes/riot/img/logos/riot-im-logo-black-text.svg";
|
||||
export default class VectorAuthHeaderLogo extends React.PureComponent {
|
||||
static replaces = 'AuthHeaderLogo'
|
||||
|
||||
module.exports = React.createClass({
|
||||
displayName: 'VectorAuthHeaderLogo',
|
||||
statics: {
|
||||
replaces: 'AuthHeaderLogo',
|
||||
},
|
||||
propTypes: {
|
||||
static propTypes = {
|
||||
icon: PropTypes.string,
|
||||
},
|
||||
}
|
||||
|
||||
render() {
|
||||
const brandingConfig = SdkConfig.get().branding;
|
||||
let logoUrl = "themes/riot/img/logos/riot-im-logo-black-text.svg";
|
||||
if (brandingConfig && brandingConfig.authHeaderLogoUrl) {
|
||||
logoUrl = brandingConfig.authHeaderLogoUrl;
|
||||
}
|
||||
|
||||
render: function() {
|
||||
return (
|
||||
<div className="mx_AuthHeaderLogo">
|
||||
<img src={LOGO_URI} alt="Riot" />
|
||||
<img src={logoUrl} alt="Riot" />
|
||||
</div>
|
||||
);
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
@ -16,21 +16,24 @@ limitations under the License.
|
|||
|
||||
'use strict';
|
||||
|
||||
const React = require('react');
|
||||
import React from 'react';
|
||||
import sdk from 'matrix-react-sdk/lib/index';
|
||||
import SdkConfig from 'matrix-react-sdk/lib/SdkConfig';
|
||||
|
||||
module.exports = React.createClass({
|
||||
displayName: 'VectorAuthPage',
|
||||
export default class VectorAuthPage extends React.PureComponent {
|
||||
static replaces = 'AuthPage'
|
||||
|
||||
statics: {
|
||||
replaces: 'AuthPage',
|
||||
},
|
||||
|
||||
render: function() {
|
||||
render() {
|
||||
const AuthFooter = sdk.getComponent('auth.AuthFooter');
|
||||
|
||||
const brandingConfig = SdkConfig.get().branding;
|
||||
let backgroundUrl = "themes/riot/img/backgrounds/valley.jpg";
|
||||
if (brandingConfig && brandingConfig.welcomeBackgroundUrl) {
|
||||
backgroundUrl = brandingConfig.welcomeBackgroundUrl;
|
||||
}
|
||||
|
||||
const pageStyle = {
|
||||
background: 'center/cover fixed url(themes/riot/img/backgrounds/valley.jpg)',
|
||||
background: `center/cover fixed url(${backgroundUrl})`,
|
||||
};
|
||||
|
||||
const modalStyle = {
|
||||
|
@ -66,5 +69,5 @@ module.exports = React.createClass({
|
|||
<AuthFooter />
|
||||
</div>
|
||||
);
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
@ -222,8 +222,7 @@ describe('loading:', function() {
|
|||
}).done(done, done);
|
||||
});
|
||||
|
||||
// TODO: Repair this test in https://github.com/vector-im/riot-web/issues/8468
|
||||
/* it('should follow the original link after successful login', function(done) {
|
||||
it('should follow the original link after successful login', function(done) {
|
||||
loadApp({
|
||||
uriFragment: "#/room/!room:id",
|
||||
});
|
||||
|
@ -258,10 +257,9 @@ describe('loading:', function() {
|
|||
expect(localStorage.getItem('mx_hs_url')).toEqual(DEFAULT_HS_URL);
|
||||
expect(localStorage.getItem('mx_is_url')).toEqual(DEFAULT_IS_URL);
|
||||
}).done(done, done);
|
||||
}); */
|
||||
});
|
||||
|
||||
// TODO: Repair this test in https://github.com/vector-im/riot-web/issues/8468
|
||||
/* it('should not register as a guest when using a #/login link', function() {
|
||||
it('should not register as a guest when using a #/login link', function() {
|
||||
loadApp({
|
||||
uriFragment: "#/login",
|
||||
});
|
||||
|
@ -288,7 +286,7 @@ describe('loading:', function() {
|
|||
matrixChat, sdk.getComponent('structures.EmbeddedPage'));
|
||||
expect(windowLocation.hash).toEqual("#/home");
|
||||
});
|
||||
}); */
|
||||
});
|
||||
});
|
||||
|
||||
describe("MatrixClient rehydrated from stored credentials:", function() {
|
||||
|
@ -300,8 +298,7 @@ describe('loading:', function() {
|
|||
localStorage.setItem("mx_last_room_id", "!last_room:id");
|
||||
});
|
||||
|
||||
// TODO: Repair this test in https://github.com/vector-im/riot-web/issues/8468
|
||||
/* it('shows the last known room by default', function() {
|
||||
it('shows the last known room by default', function() {
|
||||
httpBackend.when('GET', '/pushrules').respond(200, {});
|
||||
httpBackend.when('POST', '/filter').respond(200, { filter_id: 'fid' });
|
||||
|
||||
|
@ -357,7 +354,7 @@ describe('loading:', function() {
|
|||
httpBackend.verifyNoOutstandingExpectation();
|
||||
expect(windowLocation.hash).toEqual("#/room/!room:id");
|
||||
}).done(done, done);
|
||||
}); */
|
||||
});
|
||||
|
||||
describe('/#/login link:', function() {
|
||||
beforeEach(function() {
|
||||
|
@ -387,8 +384,7 @@ describe('loading:', function() {
|
|||
}
|
||||
});
|
||||
|
||||
// TODO: Repair this test in https://github.com/vector-im/riot-web/issues/8468
|
||||
/* it('shows the homepage after login', function() {
|
||||
it('shows the homepage after login', function() {
|
||||
return completeLogin(matrixChat).then(() => {
|
||||
// we should see a home page, even though we previously had
|
||||
// a stored mx_last_room_id
|
||||
|
@ -396,13 +392,12 @@ describe('loading:', function() {
|
|||
matrixChat, sdk.getComponent('structures.EmbeddedPage'));
|
||||
expect(windowLocation.hash).toEqual("#/home");
|
||||
});
|
||||
}); */
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('Guest auto-registration:', function() {
|
||||
// TODO: Repair this test in https://github.com/vector-im/riot-web/issues/8468
|
||||
/* it('shows a welcome page by default', function(done) {
|
||||
it('shows a welcome page by default', function(done) {
|
||||
loadApp();
|
||||
|
||||
Promise.delay(1).then(() => {
|
||||
|
@ -430,10 +425,9 @@ describe('loading:', function() {
|
|||
matrixChat, sdk.getComponent('auth.Welcome'));
|
||||
expect(windowLocation.hash).toEqual("#/welcome");
|
||||
}).done(done, done);
|
||||
}); */
|
||||
});
|
||||
|
||||
// TODO: Repair this test in https://github.com/vector-im/riot-web/issues/8468
|
||||
/* it('uses the default homeserver to register with', function(done) {
|
||||
it('uses the default homeserver to register with', function(done) {
|
||||
loadApp();
|
||||
|
||||
Promise.delay(1).then(() => {
|
||||
|
@ -457,15 +451,15 @@ describe('loading:', function() {
|
|||
}).then((req) => {
|
||||
expect(req.path).toStartWith(DEFAULT_HS_URL);
|
||||
|
||||
// once the sync completes, we should have a home page
|
||||
// once the sync completes, we should have a welcome page
|
||||
httpBackend.verifyNoOutstandingExpectation();
|
||||
ReactTestUtils.findRenderedComponentWithType(
|
||||
matrixChat, sdk.getComponent('structures.EmbeddedPage'));
|
||||
expect(windowLocation.hash).toEqual("#/home");
|
||||
matrixChat, sdk.getComponent('auth.Welcome'));
|
||||
expect(windowLocation.hash).toEqual("#/welcome");
|
||||
expect(MatrixClientPeg.get().baseUrl).toEqual(DEFAULT_HS_URL);
|
||||
expect(MatrixClientPeg.get().idBaseUrl).toEqual(DEFAULT_IS_URL);
|
||||
}).done(done, done);
|
||||
}); */
|
||||
});
|
||||
|
||||
it('shows a room view if we followed a room link', function(done) {
|
||||
loadApp({
|
||||
|
@ -534,15 +528,14 @@ describe('loading:', function() {
|
|||
});
|
||||
});
|
||||
|
||||
// TODO: Repair this test in https://github.com/vector-im/riot-web/issues/8468
|
||||
/* it('should give us a login page', function() {
|
||||
it('should give us a login page', function() {
|
||||
expect(windowLocation.hash).toEqual("#/login");
|
||||
|
||||
// we expect a single <Login> component
|
||||
ReactTestUtils.findRenderedComponentWithType(
|
||||
matrixChat, sdk.getComponent('structures.auth.Login'),
|
||||
);
|
||||
}); */
|
||||
});
|
||||
|
||||
/*
|
||||
// ILAG renders this obsolete. I think.
|
||||
|
@ -684,8 +677,6 @@ function awaitSyncingSpinner(matrixChat, retryLimit, retryCount) {
|
|||
|
||||
console.log(Date.now() + " Awaiting sync spinner: load complete.");
|
||||
|
||||
// state looks good, check the rendered output
|
||||
assertAtSyncingSpinner(matrixChat);
|
||||
return Promise.resolve();
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue