Commit graph

554 commits

Author SHA1 Message Date
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