Commit Graph

8066 Commits

Author SHA1 Message Date
David Baker 3d478c3c3a Merge pull request #1867 from matrix-org/luke/fix-group-request-concurrency
Prevent error responses wedging group request concurrency limit
2018-05-02 10:45:12 +01:00
Luke Barnard 2dfb3146b0 Simplify concurrent request error handling 2018-05-02 10:39:15 +01:00
Luke Barnard 71c1198d12 Rewrite limitConcurrency to fix error catching
Make sure that we only catch errors that are a result of
calling fn()
2018-05-01 18:01:25 +01:00
Luke Barnard bd703b17e5 Update documentation for GroupStore.registerListener 2018-05-01 16:57:28 +01:00
Luke Barnard 56ec7713bb Refresh group rooms and members when selecting a tag 2018-05-01 16:54:14 +01:00
Luke Barnard 4d8394954c Only create one group store listener in RoomList
Instead of creating several and destroying the reference to the one
created before.
2018-05-01 14:24:58 +01:00
Luke Barnard da1a5616eb Prevent error responses wedging group request concurrency limit
Fixes https://github.com/vector-im/riot-web/issues/6592
2018-05-01 14:04:13 +01:00
Luke Barnard e3a07be127 Remove GroupStore logging 2018-05-01 13:14:01 +01:00
Luke Barnard 6ec9e5f670 Merge pull request #1866 from matrix-org/luke/luke/group-store-refactor
Refactor GroupStores into one global GroupStore
2018-05-01 12:33:06 +01:00
Luke Barnard 25690336c3 Prevent user getting trapped in group settings when an error occurs 2018-05-01 11:52:02 +01:00
Luke Barnard 38d7a5d394 Remove GroupStore listener when unmounting GroupPublicityToggle 2018-05-01 11:50:14 +01:00
Luke Barnard 28e8ce967f Correctly unregister group store listener when unmounting RoomList 2018-05-01 11:38:57 +01:00
Luke Barnard 023daef4b7 Refactor GroupStores into one global GroupStore
Take a step closer to a flux-like architecture for group data, for
the purposes of providing features that require it.

Now the app has a single GroupStore that can be poked to fetch
updates for a particular group.
2018-05-01 11:24:17 +01:00
Matthew Hodgson 5749fbcff9 Merge pull request #1864 from matrix-org/matthew/blob_urls
Switch back to using blob URLs for rendering e2e attachments
2018-04-30 19:01:58 +01:00
Luke Barnard 22047d7e72 Merge pull request #1845 from kethinov/hide_encryption_icons
Hide inline encryption icons except when hovering over a message
2018-04-30 17:57:22 +01:00
Luke Barnard 80c67ba35d Merge pull request #1863 from matrix-org/dbkr/bug_report_dialog_basedialog
Fix UX issues with bug report dialog
2018-04-30 17:56:19 +01:00
Eric Newport e037cf0063 namespace CSS better and fix bug 2018-04-30 12:22:16 -04:00
David Baker 5bacf50001 Merge pull request #1865 from matrix-org/matthew/image_errors
fix ugly img errors and correctly render SVG thumbnails
2018-04-30 17:12:40 +01:00
David Baker 025bffb4e9 Merge remote-tracking branch 'origin/dbkr/fix_session_restore_fail_dialog_ux' into dbkr/bug_report_dialog_basedialog 2018-04-30 16:20:12 +01:00
David Baker e28a927da9 lint 2018-04-30 14:34:14 +01:00
David Baker c3420c37fd Indentation 2018-04-30 14:25:42 +01:00
David Baker 54cccab0c7 Factor out clearStorageButton 2018-04-30 14:22:18 +01:00
David Baker 5d46efc3e8 Get docs right on hasCancel 2018-04-30 14:17:21 +01:00
David Baker dcaacfd204 Merge remote-tracking branch 'origin/develop' into dbkr/fix_session_restore_fail_dialog_ux 2018-04-30 14:06:32 +01:00
David Baker a9b6db3f2e Lint 2018-04-30 13:41:04 +01:00
David Baker 37cb8abf13 Fix UX issues with bug report dialog
* Make it use BaseDialog / DialogButtons (also gives it has a top-right 'x' &
   escape to cancel works)
 * Stop misusing the 'danger' CSS class on the buttons. There is nothing dangerous
   about submitting logs.
 * Continued campaign against 'Click here' links.

Fixes https://github.com/vector-im/riot-web/issues/6622
2018-04-30 13:39:46 +01:00
David Baker fc136607f1 UI fixes in SessionRestoreErrorDialog
* Make the 'delete my data' button not the default
 * Make it red
 * Give it a confirmation dialog
 * Remove the 'cancel' button: what does it mean to cancel an error?
   In this case, it tried again and almost certainly got the same error.
 * Remove the top-right 'x' and don't cancel on esc for the same reason.
 * Move 'send bug report' to a button rather than a 'click here' link
 * Add a 'refresh' button which, even if it's no more likely to work,
   will at least look like it's doing something (it's mostly so if you
   don't have a bug report endpoint, there's still a button other
   than the one that deletes all your data).
2018-04-30 13:39:46 +01:00
Matthew Hodgson db5fc53853 final comment 2018-04-29 04:53:32 +01:00
Matthew Hodgson 8538cc1666 fix regressions introduced by https://github.com/vector-im/riot-web/commit/00b7cc512b3a9f0e0a36e4ea7d1f4a6c3011ff66 2018-04-29 04:41:30 +01:00
Matthew Hodgson be523b3edc lint 2018-04-29 04:31:30 +01:00
Matthew Hodgson 551d3ebda0 correctly fix up thumbnail height onload.
fixes https://github.com/vector-im/riot-web/issues/6492, although popping is inevitable in
the current implementation as it only fixes up the thumbnail size once the image has loaded.
2018-04-29 04:28:15 +01:00
Matthew Hodgson 731f1fa7d3 clarify another scrolljump bug 2018-04-29 04:00:02 +01:00
Matthew Hodgson c254d043c5 fix ugly img errors and correctly render SVG thumbnails
Fixes https://github.com/vector-im/riot-web/issues/6271
Fixes https://github.com/vector-im/riot-web/issues/1341
2018-04-29 03:58:17 +01:00
Matthew Hodgson 9c5407c21f revokeObjectURLs 2018-04-29 03:17:55 +01:00
Matthew Hodgson bffd5bb891 fix constness 2018-04-29 03:09:17 +01:00
Matthew Hodgson 9701fd32b7 switch back to blob urls for rendering e2e attachments
Based on @walle303's work at https://github.com/matrix-org/matrix-react-sdk/pull/1820
Deliberately reverts https://github.com/matrix-org/matrix-react-sdk/commit/8f778f54fd10428836c99d08346cf89f038dd0ce
Mitigates XSS by whitelisting the mime-types of the attachments so that malicious ones
should not be recognised and executed by the browser.
2018-04-29 03:07:31 +01:00
Eric Newport 55566b35a2 convert attribute to class 2018-04-28 12:39:25 -04:00
David Baker 873993a7ca Clarify, hopefully 2018-04-27 17:56:33 +01:00
David Baker d3c368e19f typo 2018-04-27 17:53:11 +01:00
David Baker 0c309c88ad Bluebird has no need for your .done() 2018-04-27 17:52:25 +01:00
David Baker fed74646b0 Rewrite to use async / await 2018-04-27 17:49:53 +01:00
David Baker 27b18c457e Lint 2018-04-27 15:56:28 +01:00
David Baker dc06c52985 Merge remote-tracking branch 'origin/dbkr/fix_session_restore_error_handling' into dbkr/fix_session_restore_fail_dialog_ux 2018-04-27 15:12:22 +01:00
David Baker 2cc50d35c6 Lint 2018-04-27 15:06:36 +01:00
David Baker 2987e2c681 Merge remote-tracking branch 'origin/dbkr/fix_session_restore_error_handling' into dbkr/fix_session_restore_fail_dialog_ux 2018-04-27 14:21:28 +01:00
David Baker 75ab618c05 Fix variable scopes 2018-04-27 14:20:09 +01:00
David Baker 6d9e07580b UI fixes in SessionRestoreErrorDialog
* Make the 'delete my data' button not the default
 * Make it red
 * Give it a confirmation dialog
 * Remove the 'cancel' button: what does it mean to cancel an error?
   In this case, it tried again and almost certainly got the same error.
 * Remove the top-right 'x' and don't cancel on esc for the same reason.
 * Move 'send bug report' to a button rather than a 'click here' link
 * Add a 'refresh' button which, even if it's no more likely to work,
   will at least look like it's doing something (it's mostly so if you
   don't have a bug report endpoint, there's still a button other
   than the one that deletes all your data).
2018-04-27 12:38:49 +01:00
David Baker 0323f8ed0c Wrap exception handling around all of loadSession
The user might (probably does) have a session even if we haven't actually tried
to load it yet, so wrap the whole loadSession code in the error handler we were
using for restoring sessions so we gracefully handle exceptions that happen
before trying to restore sessions too.

Remove the catch in MatrixChat that sent you to the login screen.  This is
never the right way to handle an error condition: we should only display the
login screen if we successfully determined that the user has no session, or
they explicitly chose to blow their sessions away.
2018-04-27 11:25:13 +01:00
David Baker db1401f484 Pass false to onFinished from BaseDialog
Everywhere else, onFinished takes a boolean indicating whether the
dialog was confirmed on cancelled, and had function that were
expecting this variable and getting undefined.
2018-04-27 11:19:14 +01:00
David Baker f70096b8fa Fix error handling on session restore
Fix a number of failures that meant the excellent error handling
we had for failing to restore a session didn't work.

1. .catch on the promise rather than try/catch: it's async
2. Explicit cancel method in SessionRestoreErrorDialog that invokes
   onFinished with `false` because even with the catch fixed, this
   was getting the event as its first arg which is truthy, so
   clicking cancel still deleted your data.
3. DialogButtons: Don't pass onCancel straight into the button event
   handler as this leaks the MouseEvent through as an argument.
   Nothing is using it and it exacerbates failures like this
   because there are surprise arguments.

Fixes https://github.com/vector-im/riot-web/issues/6616
2018-04-26 17:07:58 +01:00