Merge pull request #2796 from matrix-org/travis/upgrade-warning
Warn that members won't be autojoined to upgraded rooms
This commit is contained in:
commit
94e91e6f9a
6 changed files with 129 additions and 40 deletions
|
@ -16,7 +16,7 @@ limitations under the License.
|
||||||
|
|
||||||
.mx_RoomUpgradeWarningBar {
|
.mx_RoomUpgradeWarningBar {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
height: 176px;
|
height: 235px;
|
||||||
background-color: $event-selected-color;
|
background-color: $event-selected-color;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
|
|
|
@ -14,6 +14,10 @@ See the License for the specific language governing permissions and
|
||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
.mx_SettingsTab_warningText {
|
||||||
|
color: $warning-color;
|
||||||
|
}
|
||||||
|
|
||||||
.mx_SettingsTab_heading {
|
.mx_SettingsTab_heading {
|
||||||
font-size: 20px;
|
font-size: 20px;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
|
|
|
@ -28,6 +28,7 @@ import {MATRIXTO_URL_PATTERN} from "./linkify-matrix";
|
||||||
import * as querystring from "querystring";
|
import * as querystring from "querystring";
|
||||||
import MultiInviter from './utils/MultiInviter';
|
import MultiInviter from './utils/MultiInviter';
|
||||||
import { linkifyAndSanitizeHtml } from './HtmlUtils';
|
import { linkifyAndSanitizeHtml } from './HtmlUtils';
|
||||||
|
import QuestionDialog from "./components/views/dialogs/QuestionDialog";
|
||||||
|
|
||||||
class Command {
|
class Command {
|
||||||
constructor({name, args='', description, runFn, hideCompletionAfterSpace=false}) {
|
constructor({name, args='', description, runFn, hideCompletionAfterSpace=false}) {
|
||||||
|
@ -105,7 +106,72 @@ export const CommandMap = {
|
||||||
description: _td('Upgrades a room to a new version'),
|
description: _td('Upgrades a room to a new version'),
|
||||||
runFn: function(roomId, args) {
|
runFn: function(roomId, args) {
|
||||||
if (args) {
|
if (args) {
|
||||||
return success(MatrixClientPeg.get().upgradeRoom(roomId, args));
|
const room = MatrixClientPeg.get().getRoom(roomId);
|
||||||
|
Modal.createTrackedDialog('Slash Commands', 'upgrade room confirmation',
|
||||||
|
QuestionDialog, {
|
||||||
|
title: _t('Room upgrade confirmation'),
|
||||||
|
description: (
|
||||||
|
<div>
|
||||||
|
<p>{_t("Upgrading a room can be destructive and isn't always necessary.")}</p>
|
||||||
|
<p>
|
||||||
|
{_t(
|
||||||
|
"Room upgrades are usually recommended when a room version is considered " +
|
||||||
|
"<i>unstable</i>. Unstable room versions might have bugs, missing features, or " +
|
||||||
|
"security vulnerabilities.",
|
||||||
|
{}, {
|
||||||
|
"i": (sub) => <i>{sub}</i>,
|
||||||
|
},
|
||||||
|
)}
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
{_t(
|
||||||
|
"Room upgrades usually only affect <i>server-side</i> processing of the " +
|
||||||
|
"room. If you're having problems with your Riot client, please file an issue " +
|
||||||
|
"with <issueLink />.",
|
||||||
|
{}, {
|
||||||
|
"i": (sub) => <i>{sub}</i>,
|
||||||
|
"issueLink": () => {
|
||||||
|
return <a href="https://github.com/vector-im/riot-web/issues/new/choose"
|
||||||
|
target="_blank" rel="noopener">
|
||||||
|
https://github.com/vector-im/riot-web/issues/new/choose
|
||||||
|
</a>;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
)}
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
{_t(
|
||||||
|
"<b>Warning</b>: Upgrading a room will <i>not automatically migrate room " +
|
||||||
|
"members to the new version of the room.</i> We'll post a link to the new room " +
|
||||||
|
"in the old version of the room - room members will have to click this link to " +
|
||||||
|
"join the new room.",
|
||||||
|
{}, {
|
||||||
|
"b": (sub) => <b>{sub}</b>,
|
||||||
|
"i": (sub) => <i>{sub}</i>,
|
||||||
|
},
|
||||||
|
)}
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
{_t(
|
||||||
|
"Please confirm that you'd like to go forward with upgrading this room " +
|
||||||
|
"from <oldVersion /> to <newVersion />",
|
||||||
|
{},
|
||||||
|
{
|
||||||
|
oldVersion: () => <code>{room ? room.getVersion() : "1"}</code>,
|
||||||
|
newVersion: () => <code>{args}</code>,
|
||||||
|
},
|
||||||
|
)}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
),
|
||||||
|
button: _t("Upgrade"),
|
||||||
|
onFinished: (confirm) => {
|
||||||
|
if (!confirm) return;
|
||||||
|
|
||||||
|
MatrixClientPeg.get().upgradeRoom(roomId, args);
|
||||||
|
},
|
||||||
|
});
|
||||||
|
return success();
|
||||||
}
|
}
|
||||||
return reject(this.getUsage());
|
return reject(this.getUsage());
|
||||||
},
|
},
|
||||||
|
|
|
@ -37,41 +37,43 @@ module.exports = React.createClass({
|
||||||
render: function() {
|
render: function() {
|
||||||
const AccessibleButton = sdk.getComponent('elements.AccessibleButton');
|
const AccessibleButton = sdk.getComponent('elements.AccessibleButton');
|
||||||
|
|
||||||
let upgradeText = (
|
return (
|
||||||
<div>
|
<div className="mx_RoomUpgradeWarningBar">
|
||||||
|
<div className="mx_RoomUpgradeWarningBar_header">
|
||||||
|
{_t(
|
||||||
|
"This room is running room version <roomVersion />, which this homeserver has " +
|
||||||
|
"marked as <i>unstable</i>.",
|
||||||
|
{},
|
||||||
|
{
|
||||||
|
"roomVersion": () => <code>{this.props.room.getVersion()}</code>,
|
||||||
|
"i": (sub) => <i>{sub}</i>,
|
||||||
|
},
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
<div className="mx_RoomUpgradeWarningBar_body">
|
<div className="mx_RoomUpgradeWarningBar_body">
|
||||||
{_t("This room is using an unstable room version. If you aren't expecting " +
|
<p>
|
||||||
"this, please upgrade the room.")}
|
{_t(
|
||||||
|
"Upgrading this room will shut down the current instance of the room and create " +
|
||||||
|
"an upgraded room with the same name.",
|
||||||
|
)}
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
{_t(
|
||||||
|
"<b>Warning</b>: Upgrading a room will <i>not automatically migrate room members " +
|
||||||
|
"to the new version of the room.</i> We'll post a link to the new room in the old " +
|
||||||
|
"version of the room - room members will have to click this link to join the new room.",
|
||||||
|
{}, {
|
||||||
|
"b": (sub) => <b>{sub}</b>,
|
||||||
|
"i": (sub) => <i>{sub}</i>,
|
||||||
|
},
|
||||||
|
)}
|
||||||
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<p className="mx_RoomUpgradeWarningBar_upgradelink">
|
<p className="mx_RoomUpgradeWarningBar_upgradelink">
|
||||||
<AccessibleButton onClick={this.onUpgradeClick}>
|
<AccessibleButton onClick={this.onUpgradeClick}>
|
||||||
{_t("Click here to upgrade to the latest room version.")}
|
{_t("Upgrade this room to the recommended room version")}
|
||||||
</AccessibleButton>
|
</AccessibleButton>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
|
||||||
);
|
|
||||||
if (this.props.recommendation.urgent) {
|
|
||||||
upgradeText = (
|
|
||||||
<div>
|
|
||||||
<div className="mx_RoomUpgradeWarningBar_header">
|
|
||||||
{_t("There is a known vulnerability affecting this room.")}
|
|
||||||
</div>
|
|
||||||
<div className="mx_RoomUpgradeWarningBar_body">
|
|
||||||
{_t("This room version is vulnerable to malicious modification of room state.")}
|
|
||||||
</div>
|
|
||||||
<p className="mx_RoomUpgradeWarningBar_upgradelink">
|
|
||||||
<AccessibleButton onClick={this.onUpgradeClick}>
|
|
||||||
{_t("Click here to upgrade to the latest room version and ensure room integrity " +
|
|
||||||
"is protected.")}
|
|
||||||
</AccessibleButton>
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
return (
|
|
||||||
<div className="mx_RoomUpgradeWarningBar">
|
|
||||||
{upgradeText}
|
|
||||||
<div className="mx_RoomUpgradeWarningBar_small">
|
<div className="mx_RoomUpgradeWarningBar_small">
|
||||||
{_t("Only room administrators will see this warning")}
|
{_t("Only room administrators will see this warning")}
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -67,9 +67,22 @@ export default class AdvancedRoomSettingsTab extends React.Component {
|
||||||
let roomUpgradeButton;
|
let roomUpgradeButton;
|
||||||
if (this.state.upgradeRecommendation && this.state.upgradeRecommendation.needsUpgrade) {
|
if (this.state.upgradeRecommendation && this.state.upgradeRecommendation.needsUpgrade) {
|
||||||
roomUpgradeButton = (
|
roomUpgradeButton = (
|
||||||
<AccessibleButton onClick={this._upgradeRoom} kind='primary'>
|
<div>
|
||||||
{_t("Upgrade room to version %(ver)s", {ver: this.state.upgradeRecommendation.version})}
|
<p className='mx_SettingsTab_warningText'>
|
||||||
</AccessibleButton>
|
{_t(
|
||||||
|
"<b>Warning</b>: Upgrading a room will <i>not automatically migrate room members " +
|
||||||
|
"to the new version of the room.</i> We'll post a link to the new room in the old " +
|
||||||
|
"version of the room - room members will have to click this link to join the new room.",
|
||||||
|
{}, {
|
||||||
|
"b": (sub) => <b>{sub}</b>,
|
||||||
|
"i": (sub) => <i>{sub}</i>,
|
||||||
|
},
|
||||||
|
)}
|
||||||
|
</p>
|
||||||
|
<AccessibleButton onClick={this._upgradeRoom} kind='primary'>
|
||||||
|
{_t("Upgrade this room to the recommended room version")}
|
||||||
|
</AccessibleButton>
|
||||||
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -132,6 +132,13 @@
|
||||||
"/ddg is not a command": "/ddg is not a command",
|
"/ddg is not a command": "/ddg is not a command",
|
||||||
"To use it, just wait for autocomplete results to load and tab through them.": "To use it, just wait for autocomplete results to load and tab through them.",
|
"To use it, just wait for autocomplete results to load and tab through them.": "To use it, just wait for autocomplete results to load and tab through them.",
|
||||||
"Upgrades a room to a new version": "Upgrades a room to a new version",
|
"Upgrades a room to a new version": "Upgrades a room to a new version",
|
||||||
|
"Room upgrade confirmation": "Room upgrade confirmation",
|
||||||
|
"Upgrading a room can be destructive and isn't always necessary.": "Upgrading a room can be destructive and isn't always necessary.",
|
||||||
|
"Room upgrades are usually recommended when a room version is considered <i>unstable</i>. Unstable room versions might have bugs, missing features, or security vulnerabilities.": "Room upgrades are usually recommended when a room version is considered <i>unstable</i>. Unstable room versions might have bugs, missing features, or security vulnerabilities.",
|
||||||
|
"Room upgrades usually only affect <i>server-side</i> processing of the room. If you're having problems with your Riot client, please file an issue with <issueLink />.": "Room upgrades usually only affect <i>server-side</i> processing of the room. If you're having problems with your Riot client, please file an issue with <issueLink />.",
|
||||||
|
"<b>Warning</b>: Upgrading a room will <i>not automatically migrate room members to the new version of the room.</i> We'll post a link to the new room in the old version of the room - room members will have to click this link to join the new room.": "<b>Warning</b>: Upgrading a room will <i>not automatically migrate room members to the new version of the room.</i> We'll post a link to the new room in the old version of the room - room members will have to click this link to join the new room.",
|
||||||
|
"Please confirm that you'd like to go forward with upgrading this room from <oldVersion /> to <newVersion />": "Please confirm that you'd like to go forward with upgrading this room from <oldVersion /> to <newVersion />",
|
||||||
|
"Upgrade": "Upgrade",
|
||||||
"Changes your display nickname": "Changes your display nickname",
|
"Changes your display nickname": "Changes your display nickname",
|
||||||
"Changes your display nickname in the current room only": "Changes your display nickname in the current room only",
|
"Changes your display nickname in the current room only": "Changes your display nickname in the current room only",
|
||||||
"Changes colour scheme of current room": "Changes colour scheme of current room",
|
"Changes colour scheme of current room": "Changes colour scheme of current room",
|
||||||
|
@ -581,7 +588,7 @@
|
||||||
"Camera": "Camera",
|
"Camera": "Camera",
|
||||||
"Voice & Video": "Voice & Video",
|
"Voice & Video": "Voice & Video",
|
||||||
"This room is not accessible by remote Matrix servers": "This room is not accessible by remote Matrix servers",
|
"This room is not accessible by remote Matrix servers": "This room is not accessible by remote Matrix servers",
|
||||||
"Upgrade room to version %(ver)s": "Upgrade room to version %(ver)s",
|
"Upgrade this room to the recommended room version": "Upgrade this room to the recommended room version",
|
||||||
"Room information": "Room information",
|
"Room information": "Room information",
|
||||||
"Internal room ID:": "Internal room ID:",
|
"Internal room ID:": "Internal room ID:",
|
||||||
"Room version": "Room version",
|
"Room version": "Room version",
|
||||||
|
@ -802,11 +809,8 @@
|
||||||
"Not now": "Not now",
|
"Not now": "Not now",
|
||||||
"Don't ask me again": "Don't ask me again",
|
"Don't ask me again": "Don't ask me again",
|
||||||
"Add a topic": "Add a topic",
|
"Add a topic": "Add a topic",
|
||||||
"This room is using an unstable room version. If you aren't expecting this, please upgrade the room.": "This room is using an unstable room version. If you aren't expecting this, please upgrade the room.",
|
"This room is running room version <roomVersion />, which this homeserver has marked as <i>unstable</i>.": "This room is running room version <roomVersion />, which this homeserver has marked as <i>unstable</i>.",
|
||||||
"Click here to upgrade to the latest room version.": "Click here to upgrade to the latest room version.",
|
"Upgrading this room will shut down the current instance of the room and create an upgraded room with the same name.": "Upgrading this room will shut down the current instance of the room and create an upgraded room with the same name.",
|
||||||
"There is a known vulnerability affecting this room.": "There is a known vulnerability affecting this room.",
|
|
||||||
"This room version is vulnerable to malicious modification of room state.": "This room version is vulnerable to malicious modification of room state.",
|
|
||||||
"Click here to upgrade to the latest room version and ensure room integrity is protected.": "Click here to upgrade to the latest room version and ensure room integrity is protected.",
|
|
||||||
"Only room administrators will see this warning": "Only room administrators will see this warning",
|
"Only room administrators will see this warning": "Only room administrators will see this warning",
|
||||||
"This Room": "This Room",
|
"This Room": "This Room",
|
||||||
"All Rooms": "All Rooms",
|
"All Rooms": "All Rooms",
|
||||||
|
|
Loading…
Reference in a new issue