Bruno Windels
3ed5ea8b0b
Merge branch 'master' into bwindels/decrypt-images
2020-10-26 17:08:29 +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
2e0d1363c7
fix
2020-10-26 10:16:23 +01:00
Bruno Windels
a6224135e3
extract blob url code to platform (WIP)
2020-10-26 10:14:46 +01:00
Bruno Windels
cbd48aa528
only load main image when clicking thumbnail
2020-10-26 09:49:42 +01:00
Bruno Windels
3a6268f0c1
basic PoC of image decryption working
...
needs looooaaads of cleanup still
2020-10-23 17:25:11 +02:00
Bruno Windels
df8eed14aa
expose whether we already have a 4s key,to show the 4s setup in settings
...
it's a tri-state of null/false/true with null meaning we need to
go online first to know as only then we try to setup session backup
2020-10-23 12:57:47 +02:00
Bruno Windels
7459985e00
show storage usage in settings
2020-10-20 17:50:43 +02:00
Bruno Windels
1e1b254678
adjust prop names
2020-10-20 15:26:22 +02:00
Bruno Windels
601bdbb25d
make session backup banner dismissable
2020-10-20 14:42:17 +02:00
Bruno Windels
6f09bd97b6
move setting view models in own dir / file
2020-10-20 12:10:41 +02:00
Bruno Windels
6f82d81f39
better session backup ui
2020-10-19 18:29:13 +02:00
Bruno Windels
1e599be142
Merge branch 'master' into bwindels/settings-screen
2020-10-19 13:45:17 +02:00
Bruno Windels
6bf8e976cb
don't assign timelineVM before loaded, so prop doesn't return it
...
... if the binding happens to be evaluating (which it was during mount)
follow-up from bwindels/fix-crash-switch-rooms-too-fast
2020-10-19 13:39:19 +02:00
Bruno Windels
cdcdc07c06
fix a crash when switching rooms before the messages have loaded
...
as we were not disposing the timeline view model
(but still not leaking though)
2020-10-19 12:57:21 +02:00
Bruno Windels
974f77a71d
WIP
2020-10-16 18:06:20 +02:00
Bruno Windels
5a30855227
rename urlRouter option in view models to urlCreator
2020-10-16 13:02:21 +02:00
Bruno Windels
788bce7904
reduce navigation boilerplate
...
this makes the url router adjust the url when the navigation path is
changed, instead of doing urlRouter.applyUrl() and
urlRouter.history.pushUrl().
This history field and applyUrl method on URLRouter are now private,
as the URLRouter should only be used to generate urls you want to
put in an <a href="..."></a>, anything else should use navigator.push()
2020-10-16 12:46:14 +02:00
Bruno Windels
4f46854362
add close session button
2020-10-14 14:54:46 +02:00
Bruno Windels
d96f8adcc7
fix back button in room header not working
2020-10-14 14:53:52 +02:00
Bruno Windels
6ad7be8726
fix leaking left panel view model after closing session
2020-10-14 11:34:34 +02:00
Bruno Windels
fa8bec0b56
fix room view model being leaked when closing session
2020-10-14 11:26:10 +02:00
Bruno Windels
3d327b0875
also open the initial room in the room list
2020-10-14 10:20:00 +02:00
Bruno Windels
ab354e9f38
update prop type
2020-10-13 15:19:54 +02:00
Bruno Windels
afbfb0c82c
anticipate non-found rooms
2020-10-13 15:18:13 +02:00
Bruno Windels
081820d8fb
also update view when going to an not-found room
2020-10-13 15:14:07 +02:00
Bruno Windels
7f3e0f237b
also do redirect after initial navigation
2020-10-13 14:43:45 +02:00
Bruno Windels
a360d0a2b9
also unset room vm if moving away from room
2020-10-13 13:12:49 +02:00
Bruno Windels
379d65edf1
also create new vm when coming for grid if transfering vm fails
2020-10-13 13:12:30 +02:00
Bruno Windels
77a58041eb
clean-up room grid initialization with vm transfering
...
also handle duplicate rooms, and add unit tests for grid vm
2020-10-13 13:11:19 +02:00
Bruno Windels
4e8e9eae26
first round of fixes
2020-10-12 18:31:55 +02:00
Bruno Windels
14d2dcbc60
remove dead code
2020-10-12 17:49:41 +02:00
Bruno Windels
b2d6b7014b
first draft of url navigation for grid
2020-10-12 17:49:06 +02:00
Bruno Windels
6c2c29a7da
WIP
2020-10-09 19:43:11 +02:00
Bruno Windels
0f8f558889
dispose session container from view model
2020-10-09 17:01:22 +02:00
Bruno Windels
5c2425796c
Merge branch 'master' into bwindels/url-routing
2020-10-08 16:33:19 +02:00
Bruno Windels
2cbe349a4d
don't read private parts
2020-10-08 14:21:34 +02:00
Bruno Windels
47a43869e6
fix grid layout in IE 11
...
this brings back index addressing rather than x y in the grid vm,
as we need to have a css class for every position for IE 11,
as we can't use css variables and autoprefixer can
translate grid-areas
2020-10-08 14:17:43 +02:00
Bruno Windels
f6d9ffa7bb
friends don't read each others private properties
2020-10-07 14:36:08 +02:00
Bruno Windels
46b24c3f24
fix room not changing when not in grid view
2020-10-07 14:32:57 +02:00
Bruno Windels
537972b97b
clarify comment
2020-10-07 14:25:32 +02:00
Bruno Windels
99ff387dec
index the room by x,y instead of index from the view
...
so it is easier to implement a focus-ring as a separate dom node
2020-10-07 14:18:35 +02:00
Bruno Windels
b9d2da736a
when opening room, focus in grid if already open
2020-10-07 13:18:19 +02:00
Bruno Windels
1ff6d36ec3
add grid toggle button to left panel
2020-10-07 12:31:52 +02:00
Bruno Windels
dc1357bb31
support clearing unread when focusing a room
2020-10-07 12:30:46 +02:00
Bruno Windels
614ec08238
integrate grid vm with session vm, allowing to switch
2020-10-07 12:25:40 +02:00
Bruno Windels
5a1d255d2a
implement room grid view model
2020-10-07 12:23:02 +02:00
Bruno Windels
b373a177ec
create room url in room tile
2020-10-06 18:05:52 +02:00
Bruno Windels
221b94adbf
room tile should be passed child options
2020-10-06 18:05:38 +02:00
Bruno Windels
cac3daca72
add LeftPanelView(Model) with room filtering
2020-10-06 12:23:11 +02:00
Bruno Windels
c532cb5aea
add hidden flag to room tile vm
...
also move to leftpanel dir
2020-10-06 12:21:11 +02:00
Bruno Windels
3359d49161
off both passphrase and security key options
2020-09-21 19:19:55 +02:00
Bruno Windels
1d33ab20a5
fix decrypted tiles not corresponding to a tile
2020-09-18 13:36:16 +02:00
Bruno Windels
2de406afa0
log secret storage error as well
2020-09-18 12:12:19 +02:00
Bruno Windels
6375574a56
show error
2020-09-17 18:59:40 +02:00
Bruno Windels
5b45c00322
switch to security key
2020-09-17 18:55:28 +02:00
Bruno Windels
fe5b732c97
cleanup, better copy text
2020-09-17 18:54:55 +02:00
Bruno Windels
494c5cbcf0
notify UI when we need session backup
2020-09-17 18:00:00 +02:00
Bruno Windels
a11b612640
await this
2020-09-14 17:45:02 +02:00
Bruno Windels
b2e6e8687e
dispose tiles
...
also add more defence against emitting event when disposed
2020-09-14 17:44:37 +02:00
Bruno Windels
9ea961ae53
don't crash when we don't have a subscription anymore
2020-09-14 17:43:06 +02:00
Bruno Windels
8555fd5f18
a little extra caution
2020-09-14 15:47:00 +02:00
Bruno Windels
aa5d55bbf2
show when e2ee is enabled in timeline
2020-09-14 15:47:00 +02:00
Bruno Windels
8c4d68def9
show decryption errors in timeline
2020-09-14 15:47:00 +02:00
Bruno Windels
4875095ea3
fix event tiles not updating when event is decrypted when room keys come
2020-09-11 17:47:35 +02:00
Bruno Windels
0dece5b04f
make continuation logic work well with pending events
...
- don't use display name to compare but user id
(pending doesn't have display name yet)
- use current time as timestamp
2020-09-11 11:43:40 +02:00
Bruno Windels
843e3e6b1c
show encrypted status of room
2020-09-11 11:35:53 +02:00
Bruno Windels
de1cc0d739
abort decrypt requests when changing room
2020-09-10 17:43:01 +02:00
Bruno Windels
0bf1723d99
Worker WIP
2020-09-10 15:40:30 +01:00
Bruno Windels
fdbc5f3c1d
WIP worker work
2020-09-10 13:00:11 +02:00
Bruno Windels
c32ac2c764
use decryption result to show message verification status in timeline
2020-09-08 10:50:39 +02:00
Bruno Windels
9870483121
remove room list sorting logging, works well now
2020-08-31 16:22:03 +02:00
Bruno Windels
6a9cbf7f33
store and sort by m.lowpriority tag
2020-08-27 20:52:51 +02:00
Bruno Windels
05821b0fdf
use same check for timestamp validity as timestamp can be undefined sometimes
2020-08-27 12:42:38 +02:00
Bruno Windels
1a6931129b
log as info
2020-08-27 10:50:30 +02:00
Bruno Windels
9e891c3442
log actual timestamps as well
...
so we can see if they are anything but null or a number
2020-08-27 10:48:12 +02:00
Bruno Windels
4b682ad930
use the same check when seeing if either does not have a timestamp
2020-08-27 10:45:20 +02:00
Bruno Windels
41a7448c74
add logging for room list sorting
2020-08-27 10:40:49 +02:00
Bruno Windels
59443e6602
close the room tile view model as well when closing a room so it does not stay selected
2020-08-27 10:07:47 +02:00
Bruno Windels
b39c15d88d
Room.name can actually return null now
...
so protect against this, and fall back to "Empty Room"
2020-08-21 18:14:32 +02:00
Bruno Windels
f551010968
render badge on room
2020-08-21 15:50:47 +02:00
Bruno Windels
5837aed346
remove obsolete comment
2020-08-21 14:27:16 +02:00
Bruno Windels
00e20d2088
take null timestamps into account
2020-08-21 14:11:26 +02:00
Bruno Windels
5d1bc61f61
don't open a room when already open
2020-08-21 13:45:55 +02:00
Bruno Windels
eae5bc4230
sort unread rooms first, then on last message timestamp, then alphabet.
2020-08-21 11:58:05 +02:00
Bruno Windels
dbf5e59d87
clear unread state 2s after opening the room
2020-08-21 11:57:49 +02:00
Bruno Windels
89392434ad
render unread rooms as bold
2020-08-21 11:57:38 +02:00
Bruno Windels
f0d0dbb30f
fix member event reporting
2020-08-20 17:43:51 +02:00
Bruno Windels
4fefe94302
render avatar in room header
2020-08-20 17:33:08 +02:00
Bruno Windels
00718c582a
render avatar img in room list
2020-08-20 17:32:55 +02:00
Bruno Windels
cff39019cb
extract renderAvatar
...
and use avatarTitle instead of sender for img title
2020-08-20 17:32:18 +02:00
Bruno Windels
59bdd2b015
render avatar on message tiles
2020-08-20 16:03:52 +02:00
Bruno Windels
5d0ee21267
move mxcUrl functions to media repo class
2020-08-20 15:40:43 +02:00
Bruno Windels
843f4fa0f7
fix flood issue when back-filling isn't available
2020-08-20 15:28:22 +02:00
Bruno Windels
036b305c96
use display name for room name change tiles
2020-08-20 15:24:16 +02:00
Bruno Windels
d31a1b5fff
render display name in timeline
2020-08-20 10:26:28 +02:00
Bruno Windels
2526198251
replace usage of readPath with ?.
2020-08-19 11:36:43 +02:00
Bruno Windels
614a00b741
don't continue messages from more than 5min ago
2020-08-19 10:28:09 +02:00
Bruno Windels
fad728069a
don't show date & time on pending events
2020-08-19 10:27:27 +02:00
Bruno Windels
1c779cf95c
render encrypted tiles as such so we don't fetch the whole history
2020-08-17 17:41:57 +02:00
Bruno Windels
0b1d9bf25e
unused now
2020-08-17 17:41:49 +02:00
Bruno Windels
37597e2acb
mark fragment in storage when start of timeline is reached
...
so we don't keep looping to fetch more messages
when scrolled all the way up
2020-08-17 17:41:10 +02:00
Bruno Windels
08de7c3569
loading screen while loading timeline
...
so we can set timelineVM directly to TimelineList
2020-08-17 16:34:25 +02:00
Bruno Windels
1e4f331989
fill top gap instead of loading more events from storage
2020-08-17 15:13:12 +02:00
Bruno Windels
cf0af775e3
make SimpleTile inherit from ViewModel
...
to use same update mechanism and have viewmodel infra available for tile
2020-08-17 15:11:39 +02:00
Bruno Windels
9745c58144
use readPath in ImageTile
2020-08-17 14:20:54 +02:00
Bruno Windels
0d3ab21044
Merge pull request #19 from vector-im/bwindels/small-bits
...
Various small bits
2020-08-17 12:15:28 +00:00
Bruno Windels
404e6f8b87
make alphabetical sort order stable
2020-08-17 10:47:27 +02:00
Bruno Windels
70e6515b5c
dont crash on m.image without url
2020-08-17 10:29:29 +02:00
Bruno Windels
19e5d310e0
move avatar one level lower because we'll need it in the session picker
2020-08-14 14:33:13 +02:00
Bruno Windels
61801ee2cd
add send button to composer
2020-08-13 18:10:45 +02:00
Bruno Windels
44cc691c79
add avatar and sender user colors
2020-08-13 12:41:00 +02:00
Bruno Windels
5aacf85166
mark room tile as active when clicked
2020-08-12 17:40:41 +02:00
Bruno Windels
00a85697ab
add license header in all source files
2020-08-05 18:38:55 +02:00
Bruno Windels
e2c8b5e595
pass vm field to emitChange
2020-06-24 22:43:29 +02:00
Bruno Windels
2b17d0f691
spell height correctly
2020-05-09 21:21:55 +02:00
Bruno Windels
7f221cda65
show images intimeline
2020-05-09 20:02:08 +02:00
Bruno Windels
b65da9b8a9
display sync errors in status bar
2020-05-07 00:05:21 +02:00
Bruno Windels
c4b17e4be6
cleanup SessionViewModel, use ViewModel dispose infrastructure
2020-05-05 23:17:27 +02:00
Bruno Windels
3adc609e07
implement session status bar, with feedback on connection status
2020-05-05 23:16:51 +02:00
Bruno Windels
d7a8b1616a
use t.view for room sub views
...
also move composer to own vm
2020-05-04 22:23:43 +02:00
Bruno Windels
cc87e35f23
use ViewModel super class for all view models that need binding
2020-05-04 19:23:11 +02:00
Bruno Windels
0424ffe231
disable this for now as sync is not an EventEmitter anymore
2020-04-22 20:53:57 +02:00
Bruno Windels
449262e3c1
adjust ctor of SessionViewModel to accept sessionContainer now
2020-04-22 20:52:56 +02:00
Bruno Windels
c95981a35d
remove unused code
2020-04-20 23:10:33 +02:00
Bruno Windels
31f3886eba
move EventEmitter to utils
2020-04-20 21:35:53 +02:00
Bruno Windels
001dbefbcf
stop using default exports
...
because it becomes hard to remember where you used them and where not
2020-04-20 21:26:39 +02:00
Bruno Windels
378b75c98a
more WIP and breakage
2020-04-09 23:19:49 +02:00
Bruno Windels
e4563135bf
look at prev_content when handling member events
2020-03-30 21:59:44 +02:00
Bruno Windels
c830f50325
catch errors while persisting a new message
2020-03-30 21:33:04 +02:00
Bruno Windels
6d68ec1bac
move fillGap to room
2020-03-21 23:40:40 +01:00
Bruno Windels
f729108226
pass emit update fn through setter so we control when tile can update
2020-03-21 14:28:09 +01:00
Bruno Windels
a3714f49cc
group public methods for a tile together
2020-03-21 14:26:56 +01:00
Bruno Windels
4176af56ea
add failing test for problem
2020-03-21 14:22:16 +01:00
Bruno Windels
f7f9129b8b
show send errors in UI
2019-09-15 12:23:26 +02:00
Bruno Windels
49a577991b
login and session picker view models, sessions store
2019-07-31 00:06:53 +02:00
Bruno Windels
7218595c17
only send message if it's non-empty
2019-07-29 19:54:21 +02:00
Bruno Windels
8665bcb897
concat synced events in timeline with pending events for local echo
2019-07-29 19:53:58 +02:00
Bruno Windels
e23abe209f
fixup: leftover from removing access to events
2019-07-29 19:53:07 +02:00
Bruno Windels
9b94c4bb61
don't expose raw event object from entry, pending event doesn't have it
...
it only has content and *some* of the meta fields,
but we want to threat pendingevententry and evententry as one
and the same in the rest of the application, so don't give access
to entire event object.
2019-07-29 10:27:12 +02:00
Bruno Windels
56cee450d1
return syncing user id from PendingEventEntry.sender
...
add User class where we later can track display name, avatar, ...
2019-07-29 10:24:34 +02:00
Bruno Windels
3ed72df620
put everything together to make it roughly work
...
no local echo yet, and send errors are being swallowed
2019-07-27 10:51:51 +02:00
Bruno Windels
fc873fbfa5
more css fixes, and make back button work for compact layout
2019-06-26 23:14:39 +02:00
Bruno Windels
9cd5257959
load more events when scrolled to top
2019-06-16 17:29:33 +02:00
Bruno Windels
d34a26f0da
store new gap entry on update so we can paginate again
2019-06-16 16:47:56 +02:00
Bruno Windels
a1c23f715a
always show date for now (but omit year to make it less annoying)
2019-06-16 16:19:26 +02:00
Bruno Windels
a09c3e7bed
hide sender name if previous message was by same sender
2019-06-16 15:48:54 +02:00
Bruno Windels
4a657b279d
apply css from prototype, other small changes, keep scroll at bottom
2019-06-16 15:21:20 +02:00
Bruno Windels
1917a528c7
replace ad hoc buttons and label with SyncStatusBar
2019-06-16 10:54:16 +02:00
Bruno Windels
a4bc2dd2b0
support isOwn on messages
2019-06-16 10:53:23 +02:00
Bruno Windels
a5a333b71a
organize view code in directory like viewmodels
2019-06-16 10:53:01 +02:00
Bruno Windels
64f126ba68
support updates originating from tile, and removing tile on update
2019-06-12 21:57:13 +02:00
Bruno Windels
e3b4f898d0
show eventkey in ui for debugging purposes
2019-06-02 18:15:24 +02:00
Bruno Windels
a269f612b6
space
2019-06-02 15:46:44 +02:00
Bruno Windels
bdad0ad86b
fix some gap fill errors
2019-06-02 15:46:24 +02:00
Bruno Windels
674007d892
don't fail when insert first or appending a tile
2019-06-02 15:15:14 +02:00
Bruno Windels
e339cb7321
more fixes, timeline is showing again
2019-06-02 14:59:30 +02:00
Bruno Windels
a1e527ccbc
first round of fixes after running the app again in the browser!
2019-06-02 00:49:47 +02:00
Bruno Windels
210a00d541
first attempt at making UI work again, with tiles and gaps
2019-06-02 00:03:55 +02:00
Bruno Windels
b10aa269d2
very quick emote support
2019-06-01 18:32:17 +02:00
Bruno Windels
1b228b0200
export timelineviewmodel from roomviewmodel
2019-06-01 18:29:23 +02:00
Bruno Windels
039bbe038c
adjust tiles(collection) to entry changes
2019-06-01 18:29:02 +02:00
Bruno Windels
784588440c
WIP for fragment support
2019-05-19 20:49:46 +02:00
Bruno Windels
2cd9c2344e
expose timeline loading error in viewmodel
2019-03-09 00:43:43 +01:00
Bruno Windels
c8749a1a06
rought impl of tiles collection
2019-03-09 00:40:17 +01:00
Bruno Windels
153d54a285
work on tile view models
2019-03-09 00:40:03 +01:00
Bruno Windels
1f5d488105
draft of timeline tiles support
2019-03-08 20:04:56 +01:00
Bruno Windels
2dbd0fb9dc
move view models over to domain
2019-03-08 19:58:54 +01:00