Merge pull request #1695 from matrix-org/dbkr/send_without_verifying
Add 'send without verifying' to status barpull/21833/head
						commit
						efb96cdd2a
					
				|  | @ -24,7 +24,7 @@ import WhoIsTyping from '../../WhoIsTyping'; | |||
| import MatrixClientPeg from '../../MatrixClientPeg'; | ||||
| import MemberAvatar from '../views/avatars/MemberAvatar'; | ||||
| import Resend from '../../Resend'; | ||||
| import { showUnknownDeviceDialogForMessages } from '../../cryptodevices'; | ||||
| import * as cryptodevices from '../../cryptodevices'; | ||||
| 
 | ||||
| const STATUS_BAR_HIDDEN = 0; | ||||
| const STATUS_BAR_EXPANDED = 1; | ||||
|  | @ -148,6 +148,13 @@ module.exports = React.createClass({ | |||
|         }); | ||||
|     }, | ||||
| 
 | ||||
|     _onSendWithoutVerifyingClick: function() { | ||||
|         cryptodevices.getUnknownDevicesForRoom(MatrixClientPeg.get(), this.props.room).then((devices) => { | ||||
|             cryptodevices.markAllDevicesKnown(MatrixClientPeg.get(), devices); | ||||
|             Resend.resendUnsentEvents(this.props.room); | ||||
|         }); | ||||
|     }, | ||||
| 
 | ||||
|     _onResendAllClick: function() { | ||||
|         Resend.resendUnsentEvents(this.props.room); | ||||
|     }, | ||||
|  | @ -157,7 +164,7 @@ module.exports = React.createClass({ | |||
|     }, | ||||
| 
 | ||||
|     _onShowDevicesClick: function() { | ||||
|         showUnknownDeviceDialogForMessages(MatrixClientPeg.get(), this.props.room); | ||||
|         cryptodevices.showUnknownDeviceDialogForMessages(MatrixClientPeg.get(), this.props.room); | ||||
|     }, | ||||
| 
 | ||||
|     _onRoomLocalEchoUpdated: function(event, room, oldEventId, oldStatus) { | ||||
|  | @ -289,10 +296,11 @@ module.exports = React.createClass({ | |||
|         if (hasUDE) { | ||||
|             title = _t("Message not sent due to unknown devices being present"); | ||||
|             content = _t( | ||||
|                 "<showDevicesText>Show devices</showDevicesText> or <cancelText>cancel all</cancelText>.", | ||||
|                 "<showDevicesText>Show devices</showDevicesText>, <sendAnywayText>mark devices known and send</sendAnywayText> or <cancelText>cancel all</cancelText>.", | ||||
|                 {}, | ||||
|                 { | ||||
|                     'showDevicesText': (sub) => <a className="mx_RoomStatusBar_resend_link" key="resend" onClick={this._onShowDevicesClick}>{ sub }</a>, | ||||
|                     'sendAnywayText': (sub) => <a className="mx_RoomStatusBar_resend_link" key="sendAnyway" onClick={this._onSendWithoutVerifyingClick}>{ sub }</a>, | ||||
|                     'cancelText': (sub) => <a className="mx_RoomStatusBar_resend_link" key="cancel" onClick={this._onCancelAllClick}>{ sub }</a>, | ||||
|                 }, | ||||
|             ); | ||||
|  |  | |||
|  | @ -23,14 +23,7 @@ import GeminiScrollbar from 'react-gemini-scrollbar'; | |||
| import Resend from '../../../Resend'; | ||||
| import { _t } from '../../../languageHandler'; | ||||
| import SettingsStore from "../../../settings/SettingsStore"; | ||||
| 
 | ||||
| function markAllDevicesKnown(devices) { | ||||
|     Object.keys(devices).forEach((userId) => { | ||||
|         Object.keys(devices[userId]).map((deviceId) => { | ||||
|             MatrixClientPeg.get().setDeviceKnown(userId, deviceId, true); | ||||
|         }); | ||||
|     }); | ||||
| } | ||||
| import { markAllDevicesKnown } from '../../../cryptodevices'; | ||||
| 
 | ||||
| function DeviceListEntry(props) { | ||||
|     const {userId, device} = props; | ||||
|  | @ -141,7 +134,7 @@ export default React.createClass({ | |||
|     }, | ||||
| 
 | ||||
|     _onSendAnywayClicked: function() { | ||||
|         markAllDevicesKnown(this.props.devices); | ||||
|         markAllDevicesKnown(MatrixClientPeg.get(), this.props.devices); | ||||
| 
 | ||||
|         this.props.onFinished(); | ||||
|         this.props.onSend(); | ||||
|  |  | |||
|  | @ -19,6 +19,20 @@ import sdk from './index'; | |||
| import Modal from './Modal'; | ||||
| import { _t } from './languageHandler'; | ||||
| 
 | ||||
| /** | ||||
|  * Mark all given devices as 'known' | ||||
|  * | ||||
|  * @param {MatrixClient} matrixClient A MatrixClient | ||||
|  * @param {Object} devices Map from userid -> deviceid -> deviceinfo | ||||
|  */ | ||||
| export function markAllDevicesKnown(matrixClient, devices) { | ||||
|     Object.keys(devices).forEach((userId) => { | ||||
|         Object.keys(devices[userId]).map((deviceId) => { | ||||
|             matrixClient.setDeviceKnown(userId, deviceId, true); | ||||
|         }); | ||||
|     }); | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * Gets all crypto devices in a room that are marked neither known | ||||
|  * nor verified. | ||||
|  |  | |||
|  | @ -780,7 +780,7 @@ | |||
|     "You have no visible notifications": "You have no visible notifications", | ||||
|     "Scroll to bottom of page": "Scroll to bottom of page", | ||||
|     "Message not sent due to unknown devices being present": "Message not sent due to unknown devices being present", | ||||
|     "<showDevicesText>Show devices</showDevicesText> or <cancelText>cancel all</cancelText>.": "<showDevicesText>Show devices</showDevicesText> or <cancelText>cancel all</cancelText>.", | ||||
|     "<showDevicesText>Show devices</showDevicesText>, <sendAnywayText>mark devices known and send</sendAnywayText> or <cancelText>cancel all</cancelText>.": "<showDevicesText>Show devices</showDevicesText>, <sendAnywayText>mark devices known and send</sendAnywayText> or <cancelText>cancel all</cancelText>.", | ||||
|     "%(count)s of your messages have not been sent.|other": "Some of your messages have not been sent.", | ||||
|     "%(count)s of your messages have not been sent.|one": "Your message was not sent.", | ||||
|     "%(count)s <resendText>Resend all</resendText> or <cancelText>cancel all</cancelText> now. You can also select individual messages to resend or cancel.|other": "<resendText>Resend all</resendText> or <cancelText>cancel all</cancelText> now. You can also select individual messages to resend or cancel.", | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 David Baker
						David Baker