Commit graph

931 commits

Author SHA1 Message Date
Bruno Windels b35b6ec496 work around --avatar-size being compiled away in build 2021-04-28 13:45:43 +02:00
Bruno Windels bfaeffcb51 fix memory leak in settings view by using nested template builder 2021-04-28 13:05:52 +02:00
Bruno Windels 870ed3f211 add avatar size now there is no default anymore 2021-04-28 11:40:24 +02:00
Bruno Windels 25e0211ca1
Merge pull request #279 from Johennes/feature/safari-viewport
Manually adapt UI when keyboard shows or hides on mobile Safari
2021-04-28 11:04:43 +02:00
Bruno Windels c47b27428b implement invite view + styling 2021-04-27 15:10:12 +02:00
Bruno Windels f4f153ac4b don't seems to throw the letter off-center more than anything else
apart for some rare cases ... shrug
2021-04-27 15:09:45 +02:00
Bruno Windels a9838fed06 don't set a default avatar size in the css, makes it easier to change it 2021-04-27 15:09:29 +02:00
Bruno Windels fbe255f837 support extra classes in static avatar 2021-04-27 15:04:01 +02:00
Bruno Windels 441bb4d5d7 keep .room-placeholder display settings separate from .middle 2021-04-27 15:03:13 +02:00
Bruno Windels 34cca2ba0f add invite view to view gallery 2021-04-27 15:02:43 +02:00
Bruno Windels 1f36122283 remove debugging code 2021-04-27 15:02:29 +02:00
Bruno Windels 86e8b27cb3 fix middle-shown to use new active vm 2021-04-27 11:01:51 +02:00
Bruno Windels 9b9e6fceda refine action buttons style 2021-04-27 10:32:06 +02:00
Bruno Windels bb6664a9a8 fix room header height 2021-04-27 10:31:47 +02:00
Bruno Windels ab8111f847 make all middle containers column flexboxes, not just the room view 2021-04-27 10:28:25 +02:00
Bruno Windels 55b576a299 rename .TimelinePanel to .RoomView_body 2021-04-27 10:28:09 +02:00
Bruno Windels b77d0f75ce can just use vm here 2021-04-22 17:23:41 +02:00
Bruno Windels 35992ac2fc show very basic buttons to accept or reject invite 2021-04-21 17:50:41 +02:00
Bruno Windels b4ad6142f4 show spinner in room list while accepting or rejecting invite 2021-04-21 17:50:22 +02:00
Bruno Windels 1cf49688d6 show invites at the top of the room list 2021-04-21 17:26:34 +02:00
Bruno Windels bfb7f58a3d add very basic invite view 2021-04-21 17:25:59 +02:00
Bruno Windels 0dc796b863 spacing 2021-04-21 15:48:41 +02:00
Bruno Windels 7e2870acef wire up InviteViewModel in Session/RoomGridViewModel
and:
 - switch to room once accepted
 - close invite if rejected
2021-04-21 15:47:39 +02:00
Bruno Windels 33f1ba686c add warning when rendering outside of render fn for templates 2021-04-15 15:14:02 +02:00
Bruno Windels 766ce4e217 create AvatarView and renderStaticAvatar (for timeline) and use it
in RoomTileView, we make some efforts to only have one update listener
for the entire list, because by default a subview would listen on
the view model
2021-04-15 15:12:14 +02:00
Bruno Windels c85b2ca3c9 allow manually updating subviews in templates w/ parentProvidesUpdates 2021-04-15 15:11:05 +02:00
Bruno Windels 357ce21678 extract base class from Template view to select update mechanism 2021-04-15 15:09:45 +02:00
Bruno Windels 16fda4dde0 white background for transparent avatar images 2021-04-15 14:59:01 +02:00
Bruno Windels 2341748023 add some tests to timeout code 2021-04-09 14:09:48 +02:00
Bruno Windels f5db6babf2 forgot to change the type of the hs field, so it still nags 2021-04-08 10:27:50 +02:00
Bruno Windels ced98d02d5
Merge pull request #318 from vector-im/bwindels/avoid_bogus_notifs
opt-out for unread count notifications, which cause bogus notifs
2021-04-07 12:41:28 +00:00
Bruno Windels 141cf95eac some minor TODOs for template view improvements 2021-04-07 14:38:48 +02:00
Bruno Windels ca9663d2f5 opt-out for unread count notifications, which cause bogus notifs 2021-04-07 14:37:46 +02:00
Bruno Windels 1505f2d101
Merge pull request #307 from vector-im/hs/deault-hs-url
Allow specifying a custom defaultHomeServer
2021-04-01 13:03:46 +00:00
Bruno Windels 10e9e7388f expose checking pusher on homeserver in setting 2021-04-01 15:01:04 +02:00
Bruno Windels 010b782a96 allow t.map render fn to not return a dom node 2021-04-01 14:59:18 +02:00
Bruno Windels 8894329fa3 don't use url to open room as it still refreshes the page on chrome
even though only the hash is different
2021-03-31 16:52:37 +02:00
Bruno Windels 3767060632 fix reloading or opening wrong page when clicking notif 2021-03-31 16:34:37 +02:00
Will Hunt 6bdf7f1ee9 Allow specifying a custom defaultHomeServer 2021-03-30 17:43:03 +01:00
Johannes Marbach 14ed5fd1e8 Manually adapt UI when keyboard shows or hides on mobile Safari
Mobile Safari seems to be the only browser that does *not* resize the
viewport when the keyboard shows and hides. Instead the window is moved
to make room for the keyboard which moves content at the top off screen.

This uses the VisualViewport API to manually resize the `SessionView`
in response to keyboard display events. Additionally, if a DOM element
exists that has the `bottom-aligned-scroll` CSS class, its scroll
position is retained. Currently this only applies to the `Timeline`.

Note that the VisualViewport API was only introduced with iOS 13.
According to [statista.com], versions below 13 made up for 19% of
all iOS users in summer 2020, with the share continuing to fall off.
As a result, this seems like an acceptable workaround.

Fixes: #181

[statista.com]: https://www.statista.com/statistics/565270/apple-devices-ios-version-share-worldwide/

Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
2021-03-26 08:29:33 +01:00
Bruno Windels 07fc49e371 Never close notifs unless clicking them as all browsers only seem to show the last one anyway 2021-03-25 11:13:54 +01:00
Bruno Windels b3680af342 move comment back to right place, and explain we we do it after 2021-03-25 10:23:43 +01:00
Bruno Windels 889ca05506 log when we get a click from a notif without a tag
like when the browser decides to show "site got updated in the
background" notif in response to a unread=0 push message.
2021-03-25 10:11:05 +01:00
Bruno Windels e54a707684 rework notifications
- we don't close them when receiving a push message without event_id
   as we always need to have a notification open after a push message
   and replacing them with a generic one like we did is worse than just
   leaving it open

 - after the second notification for a room, we just show "New messages"
   and you don't get binged again for new messages after that.

 - You will still have a notification for every room, and on Android
   you will just see the one for the last room as it only shows one
   notification at a time.
2021-03-25 10:08:38 +01:00
Bruno Windels f98369c4d6 remove obsolete code from refactoring before 2021-03-25 10:07:42 +01:00
Bruno Windels a70a38f481 focus can throw on Android, wrap it in a try/catch 2021-03-25 10:03:44 +01:00
Bruno Windels bc763e2a19 fix typo 2021-03-25 10:01:25 +01:00
Bruno Windels 165532be30 add badge icon to notifs 2021-03-25 00:12:57 +01:00
Bruno Windels 0b3f2a7fa0 improve notification click handling
- also here don't use client.url to figure out if a session is open
   as that doesn't work in FF
 - use tag to make sure we're dealing with the right type of notif
 - use findClient function
2021-03-24 15:25:59 +01:00
Bruno Windels f91abe4301 improve notifications shown
- use event.waitUntil to prevent default notification
 - replace notifications for same room
 - replace notifications when receiving unread=0 with "Read messages"
   to prevent default notification
 - don't rely on client.url to figure out if a room is open as FF
   does not update this field on hash changes.
2021-03-24 15:23:01 +01:00
Bruno Windels 2de61c5928 ask the new version to the new and not old service worker 2021-03-24 15:19:10 +01:00
Bruno Windels 178790d816 symlink service worker for local dev, so its scope captures whole app
also rename service worker (as it is not a template anymore)
2021-03-23 18:20:23 +01:00
Bruno Windels a8ca82ca4d support running the service worker during local development 2021-03-23 18:20:23 +01:00
Bruno Windels dbddba3691 fix c/p errors when moving code over to notif service 2021-03-23 18:20:23 +01:00
Bruno Windels 725098f262 open client when clicking notification 2021-03-23 18:20:23 +01:00
Bruno Windels 8fcf7f8c7f show notification when receiving push message 2021-03-23 18:20:23 +01:00
Bruno Windels 7b9904e423 add UI in settings for push notifs status/enable/disable 2021-03-23 18:20:23 +01:00
Bruno Windels f764323c80 fixup: notif service 2021-03-23 18:20:23 +01:00
Bruno Windels 1b0f175b02 put web-specific parts of notifications (push and in-app) in platform 2021-03-23 18:20:23 +01:00
Bruno Windels 95b1804a8d
Merge pull request #287 from Johennes/feature/lightbox
Set explicit height on lightbox container
2021-03-23 10:11:13 +00:00
Johannes Marbach f496aff478 Set explicit height on lightbox container
Without an explicit height defined on the container, Safari
fails to expand the `.picture` content. On desktop this results
in the image showing too small and at the top of the screen.
On mobile the picture ends up with zero height and is completely
hidden.

This commit fixes the issue by defining a height of 100% on the
`.lightbox` border box.

Fixes: #278

Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
2021-03-22 14:12:02 +01:00
RMidhunSuresh c2df9df6d4 Fix overflowing account chooser label
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-03-19 21:09:03 +05:30
Bruno Windels f691c0c0ef
Merge pull request #281 from vector-im/bwindels/fix-updates
Fix service worker updates stalling
2021-03-18 19:02:45 +00:00
Bruno Windels ffdec16076 don't show the update dialog if we open the app for the first time
and don't have a service worker yet
2021-03-18 19:58:50 +01:00
Bruno Windels 017d3818eb always reply here 2021-03-18 19:50:53 +01:00
Bruno Windels 5d71b655ad halt any fetch request while waiting for new service worker to activate
this make updates apply instantly rather than sometimes being stalled
for seconds or minutes.
2021-03-18 19:50:53 +01:00
Bruno Windels eba4d8a28b improve ergonomics for sub-templates in TemplateView
- renames if to ifView
 - adds map and if that immediately take a sub template render function
   rather than having to call createTemplate
2021-03-18 19:44:59 +01:00
Bruno Windels 5d55f6d78c log app version when opening session 2021-03-15 16:55:14 +01:00
Bruno Windels 8100c70e88 fix image uploads being broken 2021-03-11 10:27:50 +01:00
Bruno Windels a672b0c78a better error handling in video decoding 2021-03-10 13:40:11 +01:00
Bruno Windels e8c8455f43 safari hack/fix 2021-03-10 13:39:58 +01:00
Bruno Windels c8265b2358 also allow other video mime types, otherwise playback fails in e2ee room 2021-03-10 13:39:04 +01:00
Bruno Windels 9bc1d38d73 extract dom event => promise code 2021-03-10 13:38:28 +01:00
Bruno Windels c6ff56a942 send video messages 2021-03-09 19:35:25 +01:00
Bruno Windels ee6f3e5457 render video messages 2021-03-09 19:35:10 +01:00
Bruno Windels b955cac7ce extract base class from image view to inherit video view from 2021-03-09 19:34:22 +01:00
Bruno Windels e603e4b455 provide default mimetype so file uploads work on iOS
otherwise homeserverapi doesn't think this is a blob
2021-03-04 21:51:53 +01:00
Bruno Windels 6ad778d27b support file downloads on iOS through data: uris 2021-03-04 21:51:29 +01:00
Bruno Windels 961d0cb224
Merge pull request #249 from vector-im/bwindels/ui-sent-status
show message already as black when sent but no remote echo yet
2021-03-03 13:08:46 +00:00
Bruno Windels 42654dbd4f console logger for local dev 2021-03-01 15:07:24 +01:00
Bruno Windels 856001160b show message already as black when sent but no remote echo yet 2021-02-26 10:40:08 +01:00
Bruno Windels b43754da6a code is wrong and unused, so delete
it is wrong in the way that it does not always return a string
2021-02-24 15:06:01 +01:00
Bruno Windels 139ffc9548 explain sent file names are logged
because they are in the url of the upload request, which we log
2021-02-24 11:30:32 +01:00
Bruno Windels 90cfcad5f1 add privacy notice in settings 2021-02-16 18:25:52 +01:00
Bruno Windels 7dc3707871 add button to export logs 2021-02-16 15:27:24 +01:00
Bruno Windels 510d5ab2cd add bool settings type 2021-02-12 19:08:13 +01:00
Bruno Windels f65db338cf make it work 2021-02-12 18:05:39 +01:00
Bruno Windels bbab1e9ecc move base64/58 encoding into platform
fixes https://github.com/vector-im/hydrogen-web/issues/99
2021-02-12 16:01:54 +01:00
Bruno Windels 4c2abcf9c7 add logger to platform 2021-02-12 13:04:18 +01:00
Bruno Windels e49639fda2 move textencoder/decoder into platform 2021-02-11 17:29:48 +01:00
Bruno Windels a9a27133b9 fix #204 2020-11-26 09:49:25 +01:00
Bruno Windels 1c4818cf1d prevent a new iframe being created for every download 2020-11-23 10:28:20 +01:00
Bruno Windels b7aca076ba better wording 2020-11-20 16:32:33 +01:00
Bruno Windels 7bf02f42b7 don't use grid to put lightbox on top, as it broke again in IE11 2020-11-20 16:32:13 +01:00
Bruno Windels 83d54351b1 put spacer behind rather than before link to open lightbox 2020-11-20 16:14:32 +01:00
Bruno Windels 45dd539179 also update preference onchange for IE 2020-11-20 16:06:16 +01:00
Bruno Windels 3eec897630 better wording 2020-11-20 16:06:05 +01:00
Bruno Windels 9ab81eea02 add setting for image compression level 2020-11-20 15:51:16 +01:00
Bruno Windels f7a07a9e79 adjust fileview/tile to pendingevent changes 2020-11-20 11:45:14 +01:00
Bruno Windels 628a3b65c6 cancel > remove 2020-11-19 15:02:59 +01:00
Bruno Windels 8b8d06cf3e show error for attachments still need upload but missing after refresh 2020-11-19 14:42:29 +01:00
Bruno Windels 18407e17a8 toggle popup menu 2020-11-18 20:18:09 +01:00
Bruno Windels f6dbb23f79 better error handling for file and picture upload 2020-11-18 20:07:31 +01:00
Bruno Windels 47147f2d46 progress bar for upload, add cancel button, no lightbox while uploading 2020-11-18 20:06:34 +01:00
Bruno Windels 6f94ca1a4a make toBlob work on IE11 2020-11-18 16:28:48 +01:00
Bruno Windels 91f7970d66 Merge branch 'master' into bwindels/upload-images 2020-11-16 19:31:04 +01:00
Bruno Windels ca7c07a23c fix #200 2020-11-16 19:29:51 +01:00
Bruno Windels 6bd777e7be make sure cors errors on setting headers don't fail sending the request 2020-11-16 15:10:25 +01:00
Bruno Windels 83cbe78cd6 report attachment upload progress 2020-11-16 10:45:46 +01:00
Bruno Windels 41738ad660 local echo for image tiles 2020-11-13 19:15:21 +01:00
Bruno Windels 8b82c991e7 wire up image uploads 2020-11-13 19:15:03 +01:00
Bruno Windels 96e46d154c copyright header for legacy platform 2020-11-13 19:05:09 +01:00
Bruno Windels 791b3ae04f don't center align link buttons (while at it) 2020-11-13 19:04:46 +01:00
Bruno Windels 14b3c4b701 no need for a dedicated class just to hide it 2020-11-13 16:00:32 +01:00
Bruno Windels 9bb521986b first draft of generic popup and menu views 2020-11-13 15:58:40 +01:00
Bruno Windels 6fd10b63e5 add device pixel ratio scaling while at it 2020-11-12 13:50:32 +01:00
Bruno Windels 1ad8af34d1 add thumbnailing code 2020-11-12 13:50:06 +01:00
Bruno Windels f23312b0d3 fix decrypt/encrypt wording in error message 2020-11-11 13:17:05 +01:00
Bruno Windels d477be2b41 put paperclip in send file button 2020-11-11 12:57:43 +01:00
Bruno Windels 6384702863 fix file selector for IE11 2020-11-11 12:47:26 +01:00
Bruno Windels 8db7499f5a support AES-CTR 256 JWK keys in legacy crypto for IE11 2020-11-11 12:44:59 +01:00
Bruno Windels e9324ad678 support jwk keys to encrypt 2020-11-11 11:47:39 +01:00
Bruno Windels 65d02072c8 hook up UI 2020-11-11 11:47:05 +01:00
Bruno Windels 9f2c7c1e32 support uploading blobs in hs api 2020-11-11 10:45:23 +01:00
Bruno Windels c278b0f4a3 rename blob.blob to blob.nativeBlob
also to make the name a bit more unique where we want to do duck typing
2020-11-11 10:44:44 +01:00
Bruno Windels 2cfffa015d WIP 2020-11-10 22:36:26 +01:00
Bruno Windels a37d8c0223 implement AES encryption 2020-11-10 19:48:36 +01:00
Bruno Windels d14f485292 Merge branch 'master' into bwindels/file-downloads 2020-11-10 18:55:27 +01:00
Bruno Windels 2ad34c2dd2 c/p error for passing arguments to create_outbound 2020-11-10 18:31:33 +01:00
Bruno Windels f5480b7708 provide random value for IE11 2020-11-10 18:31:18 +01:00
Bruno Windels 6fa9471292 remove trailing whitespace 2020-11-10 17:51:39 +01:00
Bruno Windels 2d8000d11d file tile view 2020-11-10 17:50:53 +01:00
Bruno Windels 4477073d6d add platform method to offer saving a buffer handle 2020-11-10 17:24:30 +01:00
Bruno Windels 1c978f060e
Merge pull request #182 from Newbytee/submit-for-login
Use submit event for login instead of click
2020-11-10 14:09:56 +00:00
Bruno Windels e4fa4ded6c hide clear button in composer on IE 2020-11-10 14:02:37 +01:00
Bruno Windels f13f1cd593 prevent leaking resources in olm worker 2020-11-10 11:04:39 +01:00
Bruno Windels 5f6ad91ff2 offload creating an olm session to the olm worker
so IE11 doesn't lock up when you start typing
2020-11-10 11:04:09 +01:00
Bruno Windels 85ba1676e5 log non-network errors in service worker to diagnose #187 2020-11-05 22:51:21 +01:00
Bruno Windels 9708e394a0 don't assume the thumbnail was cached already 2020-11-05 22:45:20 +01:00
Bruno Windels c696a75f88 fix #177 2020-11-05 22:37:39 +01:00
Newbyte e112e9c2d2 Use submit event for login trigger
Signed-off-by: Newbyte <newbie13xd@gmail.com>
2020-11-05 11:21:04 +01:00
Newbyte 3ab70861cc Add form to element list
Signed-off-by: Newbyte <newbie13xd@gmail.com>
2020-11-05 11:21:04 +01:00
Bruno Windels 0003ddebb5 also fix grid layout 2020-11-03 09:12:11 +01:00
Bruno Windels 9131cf00a3 load images when they becomes partly into view 2020-11-02 14:49:59 +01:00
Bruno Windels 72fdce4a86 fix broken layout after changing to grid 2020-11-02 14:15:24 +01:00
Bruno Windels a3ec01385b
Merge pull request #178 from vector-im/bwindels/lightbox
Lightbox for picture messages
2020-11-02 11:23:10 +00:00
Bruno Windels f1b557f995 add comment 2020-11-02 11:29:22 +01:00
Bruno Windels fd28b39e23 fix spacing between spinner and loading text in lightbox 2020-11-02 11:29:09 +01:00
Bruno Windels 7e9e937742 IE11 doesn't calculate padding percentages based on parent width in grid
so do progressive fallback. This won't scale the height of the
image tile height, but it will still scale the thumbnail
on narrow viewports, leaving a blank space underneath the image.
2020-11-02 11:16:35 +01:00
Bruno Windels fbbdaf7dfa expose IE11 flag in JS as well 2020-11-02 11:16:19 +01:00
Bruno Windels 57da68fb1e padding for lightbox 2020-10-31 00:25:51 +01:00
Bruno Windels 4d08e415bd fallback for IE11 2020-10-31 00:25:42 +01:00
Bruno Windels 8507a3eb16 prevent jumps when image loads by adding a spacer 2020-10-31 00:25:05 +01:00
Bruno Windels 5aa2c7dc5c dom changes for timeline image view 2020-10-30 22:52:54 +01:00
Bruno Windels 5a31bc5f2b basic focus trapping of lightbox 2020-10-30 22:52:32 +01:00
Bruno Windels 708893022a use justify/align-self rather than auto margins, works better in IE11 2020-10-30 22:52:08 +01:00
Bruno Windels a21765757d don't use position: absolute for scaling images in the timeline
as it bleeds through the lightbox on IE11, and is a bad idea anyway
2020-10-30 22:51:57 +01:00
Bruno Windels 581dc95c53 allow adding custom event handlers to a template view
so you don't have to remove them yourself
2020-10-30 22:48:56 +01:00
Bruno Windels c847cfb200 WIP: Esc key on lightbox 2020-10-30 19:59:42 +01:00
Bruno Windels c9147e6b9a implement first draft of image lightbox 2020-10-30 15:20:11 +01:00
Bruno Windels 7d81306a49 return BufferHandles from the media repository
BufferHandles are platform specific handles to a buffer. On web,
they have a .blob and .url property.
2020-10-30 15:18:27 +01:00
Bruno Windels 0691f34650 detect abort error by name here too 2020-10-30 09:55:03 +01:00
Bruno Windels 68a0dd30ca add lightbox navigation and basic view & view model 2020-10-29 11:12:32 +01:00
Bruno Windels d7ccdd3304 switch main layout from flexbox to grid so we can overlay a lightbox 2020-10-29 11:10:34 +01:00
Bruno Windels 862a0ba56b show image decryption error 2020-10-29 10:29:08 +01:00
Bruno Windels 0405af0116 disable click-to-zoom on image
so we can release before the lightbox ix ready
2020-10-29 10:17:19 +01:00
Bruno Windels b69464b87d improve picture styling 2020-10-27 16:47:22 +01:00
Bruno Windels d55f38a9e9 don't reimplement removing an item from the list 2020-10-27 16:26:45 +01:00
Bruno Windels c9efee77f2 if shape is update and item should be different view, recreate the tile 2020-10-27 16:20:04 +01:00
Bruno Windels 932542bea0 some more cleanup 2020-10-27 14:35:47 +01:00
Bruno Windels fcc4c21ad2 filter mime types for blob urls 2020-10-27 14:35:33 +01:00
Bruno Windels ade01f6cf7 space 2020-10-27 13:51:40 +01:00
Bruno Windels 2ebce8eb7b set responseType after calling open 2020-10-27 13:50:09 +01:00
Bruno Windels a61d7fc68a jwk key support for aesjs 2020-10-27 13:21:12 +01:00
Bruno Windels a3aa25449b make it work with xhr 2020-10-26 17:37:32 +01:00
Bruno Windels ee1e62207c apply platform changes to decrypting images 2020-10-26 17:18:17 +01:00
Bruno Windels 3ed5ea8b0b Merge branch 'master' into bwindels/decrypt-images 2020-10-26 17:08:29 +01:00
Bruno Windels 98be9a8f4d fix legacy spinner 2020-10-26 16:44:12 +01:00
Bruno Windels 03351d2e1f extract platform class to put all platform specific code in 2020-10-26 15:44:11 +01:00
Bruno Windels 46fd769dda (re)move old (compile-time) platform code 2020-10-26 10:34:35 +01:00
Bruno Windels 06e4dea590 move ui and dom under platform/web 2020-10-26 10:28:11 +01:00