Tom Hacohen
d09895c655
Event edit: remove the word Date from the datetime placeholder.
...
It was confusing users who thought this was only a date picker. This makes
it more generic.
7 years ago
Tom Hacohen
ed64bff3da
Switch to react-datetime for the date time picker
...
The reason for that is because not all browsers support input
type=date/time
7 years ago
Tom Hacohen
2187f4cd22
Types ical.js: add to/from json.
7 years ago
Tom Hacohen
f0ab21172a
Types ical.js: fix fromJSDate.
7 years ago
Tom Hacohen
56a28bf9c8
Fix the type of the DateTimePicker's change callback.
7 years ago
Tom Hacohen
02bb9baea7
Add more properties needed by react-big-calendar.
7 years ago
Tom Hacohen
9c740a4c4d
Add support for saving entries to shared journals.
7 years ago
Tom Hacohen
71e20bb65f
UserInfo: Fix persistance of user info to cache.
7 years ago
Tom Hacohen
e257f427eb
Show an error message when userInfo doesn't exist.
7 years ago
Tom Hacohen
b0cae39814
Add a widget to present errors nicely.
7 years ago
Tom Hacohen
8367767006
SyncGate: only get asymmetricKey from UserInfo if needed.
7 years ago
Tom Hacohen
719b0516f0
Support shared journals in side menu too.
...
This code path needs to be merged with SyncGate.
7 years ago
Tom Hacohen
cf823f5efe
Implement fetching userInfo and opening shared journals.
7 years ago
Tom Hacohen
80e9805d22
AsymmetricCrypto: we actually using pkcs8 not 1.
7 years ago
Tom Hacohen
12b578d44c
UserInfo: Fix the HMAC calculation function.
7 years ago
Tom Hacohen
1ee224bd0b
Add an action to fetch userInfo.
7 years ago
Tom Hacohen
00045d7cb0
CryptoManager: Add an option to load an already derived key.
7 years ago
Tom Hacohen
9a8f1cd33f
Add AsymmetricCryptoManager for asymmetric encryption.
7 years ago
Tom Hacohen
3353b21162
CryptoManager: fix decrypt/encrypt bits type.
7 years ago
Tom Hacohen
1f961fbad1
UserInfo: implement setting and getting the keypair.
7 years ago
Tom Hacohen
45db0c12c5
Crypto manager: add methods to encrypt/decrypt from/to bytes.
7 years ago
Tom Hacohen
fb738622fe
API: Add API to handle UserInfo.
7 years ago
Tom Hacohen
ac31f7093f
Add a basic link about signed pages.
7 years ago
Tom Hacohen
78c19fe7c4
Fix one-day long allDay events.
7 years ago
Tom Hacohen
2056c62b80
Use the error boundary component to semi-gracefully catch errors.
7 years ago
Tom Hacohen
5a79fdb6b8
Add an error boundary component to catch errors.
7 years ago
Tom Hacohen
e956ef3059
Change the delete confirmation dialog label.
7 years ago
Tom Hacohen
074fc8e6c0
Implement a common interface for pim types.
7 years ago
Tom Hacohen
bfa186dc35
Merge duplicate onItemSave code.
7 years ago
Tom Hacohen
78b292f1c4
Implement contact and calendar event deletion.
7 years ago
Tom Hacohen
507c0e3a1a
Add a configrmation dialog widget.
7 years ago
Tom Hacohen
f760becae8
Add icons to save/cancel buttons on item edit pages.
7 years ago
Tom Hacohen
5e59557335
Add a link to the etesync website from the login page.
7 years ago
Tom Hacohen
d869be6bc9
Revert "Only mark journals that have been shared with us as unsupported."
...
This is not needed, because key is set only if we have a key set for us
which means it was either shared with us, or we have a reason to have a
key (maybe changed the password).
(Kept the fixme that was added in that commit)
This reverts commit 3408e16013
.
7 years ago
Tom Hacohen
52f7d4ddd5
Base JSON: serialise should return the template type.
7 years ago
Tom Hacohen
3408e16013
Only mark journals that have been shared with us as unsupported.
...
Journals that we've shared are supported even if we share them,
so make the check a bit more explicit so we show them.
7 years ago
Tom Hacohen
3d9155e306
EteSync: expose journal owner.
7 years ago
Tom Hacohen
763b5b757f
Remove redundant filtering of shared journals.
...
This is already done in sync gate.
7 years ago
Tom Hacohen
84a0bf2a8e
Add a cancel button when editing contacts and events.
...
Fixes #2 .
7 years ago
Tom Hacohen
73ab88d3d2
Sync gate: better position the loading indicator.
7 years ago
Tom Hacohen
eafdb02d5c
Loading indicator: pass on props.
7 years ago
Tom Hacohen
e9f984dee9
SearchableAddressBook: add a search icon.
7 years ago
Tom Hacohen
ee34109d14
Addressbook: add a searchable address book that lets us filter the list
7 years ago
Tom Hacohen
c6df5c800a
Addressbook: support passing a filter function and memoize the sort.
7 years ago
Tom Hacohen
724bc29e4a
Merge the duplicate contact/event view/edit/log routes.
7 years ago
Tom Hacohen
7bd3051416
Unify the names of the props of ContactEdit and EventEdit.
7 years ago
Tom Hacohen
40af8a49d7
Make the event and contact itemUid the consistent.
...
It was different between them and compared to viewing a journal's item.
This was inconsistent and is now fixed.
7 years ago
Tom Hacohen
35b3ce7f95
Add a button to show an item's (contact/event) change history
...
Fixes #1
7 years ago
Tom Hacohen
30cd979ba8
Journal entries: support filtering by entry uid.
7 years ago
Tom Hacohen
ab3ebbff05
Fix the calendar widget on mobile.
7 years ago
Tom Hacohen
0eaaf671e8
Add some margin between the edit button and the header.
7 years ago
Tom Hacohen
0abe801dc7
Disable pull to refresh in PWAs based on chrome.
7 years ago
Tom Hacohen
6687758a3a
Add a refresh button and make it spinable.
...
This also adds a HOC that makes icons spinable.
7 years ago
Tom Hacohen
199cc5771c
Fix background colour issue.
7 years ago
Tom Hacohen
4833a98763
Split fetching credentials and key derivation.
7 years ago
Tom Hacohen
b769c18021
Show a shorter login form (only enc password) if already logged in.
...
This is extremely useful for iOS devices where a PWA's session storage
is deleted every time it's minimised, and it's also useful for people
having multiple tabs open.
7 years ago
Tom Hacohen
2608a354ea
Add an action to derive the encryption key.
7 years ago
Tom Hacohen
232ea823d0
LoinGate: rename the incorrectly named class name.
7 years ago
Tom Hacohen
8d3a06cdfd
Split the login credentials and the encryption key.
...
We do this so we can persist the login info to local storage, but
still keep the encryption key safe.
This version will fails if you clear the session storage. This will be
fixed in the next commit.
7 years ago
Tom Hacohen
c7e508b890
Also disable back when we have no history stack.
...
This is useful for when we open a page directly in an inner link.
7 years ago
Tom Hacohen
50af0ac0d1
Container: fix marging to be padding so size is correct.
7 years ago
Tom Hacohen
a464f019aa
Fix the elastic white area on iOS and change bar to translucent.
7 years ago
Tom Hacohen
2d76164666
Fix the back button to work on first load too.
7 years ago
Tom Hacohen
054caaa56f
Change the menu button to a back button on the main page.
7 years ago
Tom Hacohen
f74ec6f05a
Merge JournalAddressbook and JournalCalendar.
7 years ago
Tom Hacohen
a32002eabd
Replace the a tag with an ExternalLink component.
...
This lets us handle behaviour more consistently, for example by opening
external links in a new tab.
7 years ago
Tom Hacohen
ec8a1d9017
Fix react-router related types.
7 years ago
Tom Hacohen
06887c58c3
Fix event types.
7 years ago
Tom Hacohen
e48ebc5137
Fix entries fetching by creating a fetchAll action.
7 years ago
Tom Hacohen
e38409203c
Remove fetching status from the store.
...
This was causing constant invalidations and therefore killing our performance.
7 years ago
Tom Hacohen
e58ddf8545
Implement shallow compare for the journal reducer.
...
The reason why we need it is that we don't have a concept of etag for
journal fetching, which means we were setting the store on each fetch
causing everything that depends on the journals to invalidate.
This triggers a bug that causes the entries not to refresh if the
journals haven't changed.
7 years ago
Tom Hacohen
2aa92f15e7
Reducer: don't reset the store when fetching.
...
There were a couple of bugs there:
1. The store was reset while fetching/error because the payload was
empty/error.
2. The error status wasn't reset after for successful fetches that
follow failed ones.
7 years ago
Tom Hacohen
b876a90a5a
Fix the calendar component to avoid re-rendering.
7 years ago
Tom Hacohen
8186055537
Syncgate: don't create the router aware components on each render.
7 years ago
Tom Hacohen
4613a65365
Don't recreate the persistant calendar component on each render.
7 years ago
Tom Hacohen
331d85d3a2
history persistor: follow the recommended HOC guidelines.
7 years ago
Tom Hacohen
5a1b3af9b0
Calendar: fix the unnecessary recration of closures.
7 years ago
Tom Hacohen
0d6ecfdbdf
Calendar: remove the unneccesary events sort.
7 years ago
Tom Hacohen
e085c0c40a
Side menu journals: don't trigger recalcs on route changes.
7 years ago
Tom Hacohen
a77e9077bf
Address book: make a component out of the list item.
7 years ago
Tom Hacohen
cec318f41f
Api: rename tsx files to ts.
7 years ago
Tom Hacohen
0ee6bbd340
Bring back list margin and remove the explicit contact padding
7 years ago
Tom Hacohen
98686f197a
Move all of the side menu items to one place.
7 years ago
Tom Hacohen
1da58da23e
Move all of the Pim related files to one dir.
7 years ago
Tom Hacohen
62dbc4b08d
Move all of the Journal related files to one dir.
7 years ago
Tom Hacohen
441549f41d
Move LoginForm to the component dir.
7 years ago
Tom Hacohen
e710e89200
Remove server url awareness from LoginForm making it a cleaner component.
7 years ago
Tom Hacohen
9f5da61dfb
Remove the hack we used for React.Fragment.
7 years ago
Tom Hacohen
6a586ac38f
Rename the Root to LoginGate because that's all it does.
7 years ago
Tom Hacohen
5ee24d054d
Move all of the view-only components to their own directory.
7 years ago
Tom Hacohen
85f5f91f36
Move the constants to their own module.
7 years ago
Tom Hacohen
4722207308
Change the suffix of helpers from .tsx to .ts.
...
They are not jsx files.
7 years ago
Tom Hacohen
d06b7610cd
Move the basic widgets to their own directory.
7 years ago
Tom Hacohen
9029d365bc
Move types to their own directory.
7 years ago
Tom Hacohen
48cd22b464
Move the store into its own module and split it up.
7 years ago
Tom Hacohen
e9db374206
Contact: fix virtual artefact with dividers.
7 years ago
Tom Hacohen
b93049f7a0
List: filter some of the props.
7 years ago
Tom Hacohen
b76ac00d78
Fix the ListDivider to be a list item.
7 years ago
Tom Hacohen
87e670ac97
Use the new MUI-like List API.
...
We had to change away from MUI because the list efficiency was abysmal.
Everything is an order of magnitude faster now.
7 years ago
Tom Hacohen
fdaef3a9f7
Make our List widget more like the mui one.
7 years ago