362 Commits (2847723221e1845aa743165659066ace9e1eca18)

Author SHA1 Message Date
Tom Hacohen 291b8ae8a6 Pim index: upgrade material-ui. 6 years ago
Tom Hacohen d6b7ba0240 Journal: upgrade material-ui 6 years ago
Tom Hacohen 5cdf5d5563 Contact: upgrade material-ui. 6 years ago
Tom Hacohen 0a9d4f8a10 Calendar: implement basic recurrence support.
At the moment it only shows recurrence in the calendar. You can't edit
specific instances, only the whole series (the first event). You can't
event edit the rrule at the moment. It's view only (mostly).

While this is not much, this is already a major boost to the usability
of etesync web.

Fixes #15.
6 years ago
Tom Hacohen 048c591b95 ICAL types: add more types and properties. 6 years ago
Tom Hacohen 563f718597 Fix contact's birthday and anniversary date presentation. 6 years ago
Tom Hacohen e0ec5ee6c8 Encryption password login: add autofocus. 6 years ago
Tom Hacohen f828e3d290 Upgrade material-ui and start migrating to it. 6 years ago
Tom Hacohen ae26e34eb4 Update react, typescript recompose and etc. 6 years ago
Tom Hacohen 01b9921b2a Purge cache in case of an integrity error and show a nicer message. 6 years ago
Tom Hacohen 73897700d9 Automatically create the default journals if there are none. 6 years ago
Tom Hacohen 1e1033fdf1 Actions fetchAll: return a promise rather than undefined. 6 years ago
Tom Hacohen 8e7243964d Automatically create user info when there is none. 6 years ago
Tom Hacohen 811f795304 Add an ugly fragile hack to make the calendar fill the vertical space.
This is very fragile, but at least if it breaks it falls back to the
previous behaviour so it's not the end of the world if it does.

Fixes #16.
6 years ago
Tom Hacohen c25ac2d6c0 Improve error handling. 6 years ago
rugk 6456625716 Add access prohibition for external links 7 years ago
Tom Hacohen 5842b7074a Login form: show a better error message. 7 years ago
Tom Hacohen 94214c9617 Calendar: fix switching back to months view when going back to calendar
Currently we preserve the watched date, so it's preserved when going
back to a calendar page. Now we also preserve the view.

Fixes #10
7 years ago
Tom Hacohen 99ccfaf441 Item creation: fix the cancel button.
It wasn't working because the callback was not connected, but the
onDelete callback was connected instead (which shouldn't have been).
7 years ago
Tom Hacohen 71f7df252a Fix event editing.
It was crashing due to 7917b1fbe1.
7 years ago
Tom Hacohen e2a418a914 Upgrade react-scripts-ts and typescript. 7 years ago
Tom Hacohen 4c441de728 Calendar: Fix navigating of month view (workaround big-calendar bug)
This is a workaround for:
https://github.com/intljusticemission/react-big-calendar/issues/718
7 years ago
Tom Hacohen 56c12012fe Types: update react-big-calendar types. 7 years ago
Tom Hacohen 7917b1fbe1 Calendar: Implement clicking on a time slot to add an event
You can now click (or select) a time slot to create an event that is
automatically populated with the selected times.

Fixes #8
7 years ago
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