Merge remote-tracking branch 'origin/develop' into develop

This commit is contained in:
Weblate 2019-02-14 16:39:13 +00:00
commit e208ac0939
12 changed files with 84 additions and 29 deletions

View file

@ -64,7 +64,7 @@ limitations under the License.
background-color: $tab-label-icon-bg-color; background-color: $tab-label-icon-bg-color;
mask-repeat: no-repeat; mask-repeat: no-repeat;
mask-size: 16px; mask-size: 16px;
width: 14px; width: 16px;
height: 22px; height: 22px;
mask-position: center; mask-position: center;
content: ''; content: '';

View file

@ -77,7 +77,8 @@ limitations under the License.
.mx_ImageView_cancel { .mx_ImageView_cancel {
position: absolute; position: absolute;
top: 0px; // hack for mx_Dialog having a top padding of 40px
top: 40px;
right: 0px; right: 0px;
padding: 35px; padding: 35px;
cursor: pointer; cursor: pointer;

View file

@ -278,6 +278,10 @@ limitations under the License.
/* End to end encryption stuff */ /* End to end encryption stuff */
.mx_EventTile_e2eIcon:hover {
opacity: 1;
}
.mx_EventTile_e2eIcon { .mx_EventTile_e2eIcon {
display: block; display: block;
position: absolute; position: absolute;
@ -289,6 +293,7 @@ limitations under the License.
mask-size: 14px; mask-size: 14px;
mask-repeat: no-repeat; mask-repeat: no-repeat;
mask-position: 0; mask-position: 0;
opacity: 0.2;
} }
.mx_EventTile_e2eIcon_undecryptable, .mx_EventTile_e2eIcon_unverified { .mx_EventTile_e2eIcon_undecryptable, .mx_EventTile_e2eIcon_unverified {

View file

@ -31,6 +31,7 @@ import sessionStore from '../../stores/SessionStore';
import MatrixClientPeg from '../../MatrixClientPeg'; import MatrixClientPeg from '../../MatrixClientPeg';
import SettingsStore from "../../settings/SettingsStore"; import SettingsStore from "../../settings/SettingsStore";
import RoomListStore from "../../stores/RoomListStore"; import RoomListStore from "../../stores/RoomListStore";
import { getHomePageUrl } from '../../utils/pages';
import TagOrderActions from '../../actions/TagOrderActions'; import TagOrderActions from '../../actions/TagOrderActions';
import RoomListActions from '../../actions/RoomListActions'; import RoomListActions from '../../actions/RoomListActions';
@ -459,17 +460,7 @@ const LoggedInView = React.createClass({
case PageTypes.HomePage: case PageTypes.HomePage:
{ {
const pagesConfig = this.props.config.embeddedPages; const pageUrl = getHomePageUrl(this.props.config);
let pageUrl = null;
if (pagesConfig) {
pageUrl = pagesConfig.homeUrl;
}
if (!pageUrl) {
// This is a deprecated config option for the home page
// (despite the name, given we also now have a welcome
// page, which is not the same).
pageUrl = this.props.config.welcomePageUrl;
}
pageElement = <EmbeddedPage className="mx_HomePage" pageElement = <EmbeddedPage className="mx_HomePage"
url={pageUrl} url={pageUrl}
scrollbar={true} scrollbar={true}

View file

@ -40,6 +40,7 @@ import * as Lifecycle from '../../Lifecycle';
// LifecycleStore is not used but does listen to and dispatch actions // LifecycleStore is not used but does listen to and dispatch actions
require('../../stores/LifecycleStore'); require('../../stores/LifecycleStore');
import PageTypes from '../../PageTypes'; import PageTypes from '../../PageTypes';
import { getHomePageUrl } from '../../utils/pages';
import createRoom from "../../createRoom"; import createRoom from "../../createRoom";
import KeyRequestHandler from '../../KeyRequestHandler'; import KeyRequestHandler from '../../KeyRequestHandler';
@ -1198,8 +1199,12 @@ export default React.createClass({
} else { } else {
if (MatrixClientPeg.get().isGuest()) { if (MatrixClientPeg.get().isGuest()) {
dis.dispatch({action: 'view_welcome_page'}); dis.dispatch({action: 'view_welcome_page'});
} else { } else if (getHomePageUrl(this.props.config)) {
dis.dispatch({action: 'view_home_page'}); dis.dispatch({action: 'view_home_page'});
} else {
this.firstSyncPromise.promise.then(() => {
dis.dispatch({action: 'view_next_room'});
});
} }
} }
}, },

View file

@ -211,6 +211,14 @@ module.exports = React.createClass({
// forget what we wanted, so don't overwrite the saved state unless // forget what we wanted, so don't overwrite the saved state unless
// this appears to be a user-initiated scroll. // this appears to be a user-initiated scroll.
if (sn.scrollTop != this._lastSetScroll) { if (sn.scrollTop != this._lastSetScroll) {
// when scrolling, we don't care about disappearing typing notifs shrinking the timeline
// this might cause the scrollbar to resize in case the max-height was not correct
// but that's better than ending up with a lot of whitespace at the bottom of the timeline.
// we need to above check because when showing the typing notifs, an onScroll event is also triggered
if (!this.isAtBottom()) {
this.clearBlockShrinking();
}
this._saveScrollState(); this._saveScrollState();
} else { } else {
debuglog("Ignoring scroll echo"); debuglog("Ignoring scroll echo");

View file

@ -20,13 +20,11 @@ import { _t } from '../../../languageHandler';
export default (props) => { export default (props) => {
const existingIssuesUrl = "https://github.com/vector-im/riot-web/issues" + const existingIssuesUrl = "https://github.com/vector-im/riot-web/issues" +
"?q=is%3Aopen+is%3Aissue+label%3Aredesign+sort%3Areactions-%2B1-desc"; "?q=is%3Aopen+is%3Aissue+sort%3Areactions-%2B1-desc";
const newIssueUrl = "https://github.com/vector-im/riot-web/issues/new" + const newIssueUrl = "https://github.com/vector-im/riot-web/issues/new";
"?assignees=&labels=redesign&template=redesign_issue.md&title=";
const description1 = const description1 =
_t("Thanks for testing the Riot Redesign. " + _t("If you run into any bugs or have feedback you'd like to share, " +
"If you run into any bugs or visual issues, " +
"please let us know on GitHub."); "please let us know on GitHub.");
const description2 = _t("To help avoid duplicate issues, " + const description2 = _t("To help avoid duplicate issues, " +
"please <existingIssuesLink>view existing issues</existingIssuesLink> " + "please <existingIssuesLink>view existing issues</existingIssuesLink> " +

View file

@ -73,12 +73,6 @@ export default class LazyRenderList extends React.Component {
} }
} }
shouldComponentUpdate(nextProps, nextState) {
const itemsChanged = nextProps.items !== this.props.items;
const rangeChanged = nextState.renderRange !== this.state.renderRange;
return itemsChanged || rangeChanged;
}
render() { render() {
const {itemHeight, items, renderItem} = this.props; const {itemHeight, items, renderItem} = this.props;

View file

@ -126,6 +126,26 @@ export default class HelpSettingsTab extends React.Component {
); );
} }
_renderCredits() {
// Note: This is not translated because it is legal text.
// Also, &nbsp; is ugly but necessary.
return (
<div className='mx_SettingsTab_section'>
<span className='mx_SettingsTab_subheading'>{_t("Credits")}</span>
<ul>
<li>
The <a href="themes/riot/img/backgrounds/valley.jpg" rel="noopener" target="_blank">
default cover photo</a> is (C)&nbsp;
<a href="https://www.flickr.com/golan" rel="noopener" target="_blank">Jesús Roncero</a>&nbsp;
used under the terms of&nbsp;
<a href="https://creativecommons.org/licenses/by-sa/4.0/" rel="noopener" target="_blank">
CC-BY-SA 4.0</a>. No warranties are given.
</li>
</ul>
</div>
);
}
render() { render() {
let faqText = _t('For help with using Riot, click <a>here</a>.', {}, { let faqText = _t('For help with using Riot, click <a>here</a>.', {}, {
'a': (sub) => <a href="https://about.riot.im/need-help/" rel='noopener' target='_blank'>{sub}</a>, 'a': (sub) => <a href="https://about.riot.im/need-help/" rel='noopener' target='_blank'>{sub}</a>,
@ -211,6 +231,7 @@ export default class HelpSettingsTab extends React.Component {
</div> </div>
</div> </div>
{this._renderLegal()} {this._renderLegal()}
{this._renderCredits()}
<div className='mx_SettingsTab_section mx_HelpSettingsTab_versions'> <div className='mx_SettingsTab_section mx_HelpSettingsTab_versions'>
<span className='mx_SettingsTab_subheading'>{_t("Advanced")}</span> <span className='mx_SettingsTab_subheading'>{_t("Advanced")}</span>
<div className='mx_SettingsTab_subsectionText'> <div className='mx_SettingsTab_subsectionText'>

View file

@ -528,6 +528,7 @@
"Deactivating your account is a permanent action - be careful!": "Deactivating your account is a permanent action - be careful!", "Deactivating your account is a permanent action - be careful!": "Deactivating your account is a permanent action - be careful!",
"Deactivate Account": "Deactivate Account", "Deactivate Account": "Deactivate Account",
"Legal": "Legal", "Legal": "Legal",
"Credits": "Credits",
"For help with using Riot, click <a>here</a>.": "For help with using Riot, click <a>here</a>.", "For help with using Riot, click <a>here</a>.": "For help with using Riot, click <a>here</a>.",
"For help with using Riot, click <a>here</a> or start a chat with our bot using the button below.": "For help with using Riot, click <a>here</a> or start a chat with our bot using the button below.", "For help with using Riot, click <a>here</a> or start a chat with our bot using the button below.": "For help with using Riot, click <a>here</a> or start a chat with our bot using the button below.",
"Chat with Riot Bot": "Chat with Riot Bot", "Chat with Riot Bot": "Chat with Riot Bot",
@ -1106,7 +1107,7 @@
"Manually export keys": "Manually export keys", "Manually export keys": "Manually export keys",
"You'll lose access to your encrypted messages": "You'll lose access to your encrypted messages", "You'll lose access to your encrypted messages": "You'll lose access to your encrypted messages",
"Are you sure you want to sign out?": "Are you sure you want to sign out?", "Are you sure you want to sign out?": "Are you sure you want to sign out?",
"Thanks for testing the Riot Redesign. If you run into any bugs or visual issues, please let us know on GitHub.": "Thanks for testing the Riot Redesign. If you run into any bugs or visual issues, please let us know on GitHub.", "If you run into any bugs or have feedback you'd like to share, please let us know on GitHub.": "If you run into any bugs or have feedback you'd like to share, please let us know on GitHub.",
"To help avoid duplicate issues, please <existingIssuesLink>view existing issues</existingIssuesLink> first (and add a +1) or <newIssueLink>create a new issue</newIssueLink> if you can't find it.": "To help avoid duplicate issues, please <existingIssuesLink>view existing issues</existingIssuesLink> first (and add a +1) or <newIssueLink>create a new issue</newIssueLink> if you can't find it.", "To help avoid duplicate issues, please <existingIssuesLink>view existing issues</existingIssuesLink> first (and add a +1) or <newIssueLink>create a new issue</newIssueLink> if you can't find it.": "To help avoid duplicate issues, please <existingIssuesLink>view existing issues</existingIssuesLink> first (and add a +1) or <newIssueLink>create a new issue</newIssueLink> if you can't find it.",
"Report bugs & give feedback": "Report bugs & give feedback", "Report bugs & give feedback": "Report bugs & give feedback",
"Go back": "Go back", "Go back": "Go back",

View file

@ -324,12 +324,12 @@ export const SETTINGS = {
"pinMentionedRooms": { "pinMentionedRooms": {
supportedLevels: LEVELS_ACCOUNT_SETTINGS, supportedLevels: LEVELS_ACCOUNT_SETTINGS,
displayName: _td("Pin rooms I'm mentioned in to the top of the room list"), displayName: _td("Pin rooms I'm mentioned in to the top of the room list"),
default: false, default: true,
}, },
"pinUnreadRooms": { "pinUnreadRooms": {
supportedLevels: LEVELS_ACCOUNT_SETTINGS, supportedLevels: LEVELS_ACCOUNT_SETTINGS,
displayName: _td("Pin unread rooms to the top of the room list"), displayName: _td("Pin unread rooms to the top of the room list"),
default: false, default: true,
}, },
"enableWidgetScreenshots": { "enableWidgetScreenshots": {
supportedLevels: LEVELS_ACCOUNT_SETTINGS, supportedLevels: LEVELS_ACCOUNT_SETTINGS,

31
src/utils/pages.js Normal file
View file

@ -0,0 +1,31 @@
/*
Copyright 2019 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.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
export function getHomePageUrl(appConfig) {
const pagesConfig = appConfig.embeddedPages;
let pageUrl = null;
if (pagesConfig) {
pageUrl = pagesConfig.homeUrl;
}
if (!pageUrl) {
// This is a deprecated config option for the home page
// (despite the name, given we also now have a welcome
// page, which is not the same).
pageUrl = appConfig.welcomePageUrl;
}
return pageUrl;
}