Merge remote-tracking branch 'origin/develop' into develop
						commit
						a059be1d93
					
				|  | @ -996,10 +996,20 @@ export default React.createClass({ | |||
|                     }, (err) => { | ||||
|                         modal.close(); | ||||
|                         console.error("Failed to leave room " + roomId + " " + err); | ||||
|                         let title = _t("Failed to leave room"); | ||||
|                         let message = _t("Server may be unavailable, overloaded, or you hit a bug."); | ||||
|                         if (err.errcode == 'M_CANNOT_LEAVE_SERVER_NOTICE_ROOM') { | ||||
|                             title = _t("Can't leave Server Notices room"); | ||||
|                             message = _t( | ||||
|                                 "This room is used for important messages from the Homeserver, " + | ||||
|                                 "so you cannot leave it.", | ||||
|                             ); | ||||
|                         } else if (err && err.message) { | ||||
|                             message = err.message; | ||||
|                         } | ||||
|                         Modal.createTrackedDialog('Failed to leave room', '', ErrorDialog, { | ||||
|                             title: _t("Failed to leave room"), | ||||
|                             description: (err && err.message ? err.message : | ||||
|                                 _t("Server may be unavailable, overloaded, or you hit a bug.")), | ||||
|                             title: title, | ||||
|                             description: message, | ||||
|                         }); | ||||
|                     }); | ||||
|                 } | ||||
|  |  | |||
|  | @ -122,23 +122,32 @@ export default class AppTile extends React.Component { | |||
| 
 | ||||
|     /** | ||||
|      * Returns true if specified url is a scalar URL, typically https://scalar.vector.im/api
 | ||||
|      * @param  {[type]}  url URL to check | ||||
|      * @param  {[type]}  testUrlString URL to check | ||||
|      * @return {Boolean} True if specified URL is a scalar URL | ||||
|      */ | ||||
|     isScalarUrl(url) { | ||||
|         if (!url) { | ||||
|     isScalarUrl(testUrlString) { | ||||
|         if (!testUrlString) { | ||||
|             console.error('Scalar URL check failed. No URL specified'); | ||||
|             return false; | ||||
|         } | ||||
| 
 | ||||
|         const testUrl = url.parse(testUrlString); | ||||
| 
 | ||||
|         let scalarUrls = SdkConfig.get().integrations_widgets_urls; | ||||
|         if (!scalarUrls || scalarUrls.length == 0) { | ||||
|             scalarUrls = [SdkConfig.get().integrations_rest_url]; | ||||
|         } | ||||
| 
 | ||||
|         for (let i = 0; i < scalarUrls.length; i++) { | ||||
|             if (url.startsWith(scalarUrls[i])) { | ||||
|                 return true; | ||||
|             const scalarUrl = url.parse(scalarUrls[i]); | ||||
|             if (testUrl && scalarUrl) { | ||||
|                 if ( | ||||
|                     testUrl.protocol === scalarUrl.protocol && | ||||
|                     testUrl.host === scalarUrl.host && | ||||
|                     testUrl.pathname.startsWith(scalarUrl.pathname) | ||||
|                 ) { | ||||
|                     return true; | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|         return false; | ||||
|  | @ -269,7 +278,12 @@ export default class AppTile extends React.Component { | |||
|             event.origin = event.originalEvent.origin; | ||||
|         } | ||||
| 
 | ||||
|         if (!this.state.widgetUrl.startsWith(event.origin)) { | ||||
|         const widgetUrlObj = url.parse(this.state.widgetUrl); | ||||
|         const eventOrigin = url.parse(event.origin); | ||||
|         if ( | ||||
|             eventOrigin.protocol !== widgetUrlObj.protocol || | ||||
|             eventOrigin.host !== widgetUrlObj.host | ||||
|         ) { | ||||
|             return; | ||||
|         } | ||||
| 
 | ||||
|  |  | |||
|  | @ -54,9 +54,9 @@ export default class CookieBar extends React.Component { | |||
|                 <img className="mx_MatrixToolbar_warning" src="img/warning.svg" width="24" height="23" alt="Warning" /> | ||||
|                 <div className="mx_MatrixToolbar_content"> | ||||
|                     { this.props.policyUrl ? _t( | ||||
|                         "Help improve Riot by sending <UsageDataLink>usage data</UsageDataLink>? " + | ||||
|                         "This will use a cookie. " + | ||||
|                         "(See our <PolicyLink>cookie and privacy policies</PolicyLink>).", | ||||
|                         "Please help improve Riot.im by sending <UsageDataLink>anonymous usage data</UsageDataLink>. " + | ||||
|                         "This will use a cookie " + | ||||
|                         "(please see our <PolicyLink>Cookie Policy</PolicyLink>).", | ||||
|                         {}, | ||||
|                         { | ||||
|                             'UsageDataLink': (sub) => <a | ||||
|  | @ -76,10 +76,23 @@ export default class CookieBar extends React.Component { | |||
|                                 </a> | ||||
|                             , | ||||
|                         }, | ||||
|                     ) : _t("Help improve Riot by sending usage data? This will use a cookie.") } | ||||
|                     ) : _t( | ||||
|                         "Please help improve Riot.im by sending <UsageDataLink>anonymous usage data</UsageDataLink>. " + | ||||
|                         "This will use a cookie.", | ||||
|                         {}, | ||||
|                         { | ||||
|                             'UsageDataLink': (sub) => <a | ||||
|                                 className="mx_MatrixToolbar_link" | ||||
|                                 href="javascript:;" | ||||
|                                 onClick={this.onUsageDataClicked} | ||||
|                             > | ||||
|                                 { sub } | ||||
|                             </a>, | ||||
|                         }, | ||||
|                     ) } | ||||
|                 </div> | ||||
|                 <AccessibleButton element='button' className="mx_MatrixToolbar_action" onClick={this.onAccept}> | ||||
|                     { _t("Yes please") } | ||||
|                     { _t("Yes, I want to help!") } | ||||
|                 </AccessibleButton> | ||||
|                 <AccessibleButton className="mx_MatrixToolbar_close" onClick={this.onReject}> | ||||
|                     <img src="img/cancel.svg" width="18" height="18" /> | ||||
|  |  | |||
|  | @ -636,9 +636,9 @@ | |||
|     "Something went wrong when trying to get your communities.": "Something went wrong when trying to get your communities.", | ||||
|     "Display your community flair in rooms configured to show it.": "Display your community flair in rooms configured to show it.", | ||||
|     "You're not currently a member of any communities.": "You're not currently a member of any communities.", | ||||
|     "Help improve Riot by sending <UsageDataLink>usage data</UsageDataLink>? This will use a cookie. (See our <PolicyLink>cookie and privacy policies</PolicyLink>).": "Help improve Riot by sending <UsageDataLink>usage data</UsageDataLink>? This will use a cookie. (See our <PolicyLink>cookie and privacy policies</PolicyLink>).", | ||||
|     "Help improve Riot by sending usage data? This will use a cookie.": "Help improve Riot by sending usage data? This will use a cookie.", | ||||
|     "Yes please": "Yes please", | ||||
|     "Please help improve Riot.im by sending <UsageDataLink>anonymous usage data</UsageDataLink>. This will use a cookie (please see our <PolicyLink>Cookie Policy</PolicyLink>).": "Please help improve Riot.im by sending <UsageDataLink>anonymous usage data</UsageDataLink>. This will use a cookie (please see our <PolicyLink>Cookie Policy</PolicyLink>).", | ||||
|     "Please help improve Riot.im by sending <UsageDataLink>anonymous usage data</UsageDataLink>. This will use a cookie.": "Please help improve Riot.im by sending <UsageDataLink>anonymous usage data</UsageDataLink>. This will use a cookie.", | ||||
|     "Yes, I want to help!": "Yes, I want to help!", | ||||
|     "You are not receiving desktop notifications": "You are not receiving desktop notifications", | ||||
|     "Enable them now": "Enable them now", | ||||
|     "What's New": "What's New", | ||||
|  | @ -949,6 +949,8 @@ | |||
|     "This room is not public. You will not be able to rejoin without an invite.": "This room is not public. You will not be able to rejoin without an invite.", | ||||
|     "Are you sure you want to leave the room '%(roomName)s'?": "Are you sure you want to leave the room '%(roomName)s'?", | ||||
|     "Failed to leave room": "Failed to leave room", | ||||
|     "Can't leave Server Notices room": "Can't leave Server Notices room", | ||||
|     "This room is used for important messages from the Homeserver, so you cannot leave it.": "This room is used for important messages from the Homeserver, so you cannot leave it.", | ||||
|     "Signed Out": "Signed Out", | ||||
|     "For security, this session has been signed out. Please sign in again.": "For security, this session has been signed out. Please sign in again.", | ||||
|     "Terms and Conditions": "Terms and Conditions", | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Weblate
						Weblate