792 Commits (896182ba68a4da303d47a4db260b1d5326363e60)

Author SHA1 Message Date
Tom Hacohen af65d20444 rrule: handle empty/undefined values 5 years ago
Tom Hacohen 94d56c4715 rrule: force the interval to be 1 and never empty. 5 years ago
Tom Hacohen 116883e207 ical.js types: fix ICAL.Recur's type and adjust code accordingly 5 years ago
Tom Hacohen dfe5518f38 RRule: improve design a bit 5 years ago
Tom Hacohen 4b20a0db5f Event Edit: simplify code and make it persist the rrule
While at it, also fix an issue with byday needing to be string[] and not
number[]
5 years ago
Tal Leibman 3897d38fb0 components: EventEdit removed whitespace changes 5 years ago
Tal Leibman 0661190aef components: EventEdit state name "rruleOptions" to "rrule" 5 years ago
Tal Leibman bd98d833aa components: EventEdit warning message 5 years ago
Tal Leibman 0657e79e45 widgets: name change "RRuleEteSync" to "RRule" 5 years ago
Tal Leibman c7c8b09e41 widgets: RRule layout and styles 5 years ago
Tal Leibman 2dcf86238b widgets: RRule change bymonth and byday to multi Select 5 years ago
Tal Leibman 3f05e43439 widgets: RRule disable complex recurring event options 5 years ago
Tal Leibman 86bd2a5420 widgets: RRule support bymonth repeat for multiple values 5 years ago
Tal Leibman 7b17a14a84 components: EventEdit add RRule widget 5 years ago
Tal Leibman 8d9482b720 widgets: change RRule to get type ICAL.Recur as prop
in ICAL.Recur many values are an array of numbers currently the
RRule widget only handle multiple values for weekday.
this change is not final since it may cause user data to be lost
when editing an existing event
5 years ago
Tal Leibman aae9cd5d16 EventEdit: import RRuleEteSync 5 years ago
Tal Leibman 265f2a091b Event Edit: change container to Fragment 5 years ago
Tal Leibman 3f1194f8bd widgets: RRuleOptions to match RecurData in ical.js from etesync IOS 5 years ago
Tal Leibman 47ba581a24 widgets: change RRule wrapper to React.Fragment 5 years ago
Tom Hacohen e88adc60e3 Update ical.js types. 5 years ago
Tom Hacohen 7e6ed69e35 SyncGate: fix issue with empty journals not working.
Before this we weren't able to import/add entries to empty journals.
This was introduced in c6eafadb8b
5 years ago
Tom Hacohen db75d82322 Import: make sure imported contacts/events/tasks have a uid.
Fixes #71.
5 years ago
Tom Hacohen b54f25eee9 Handle contacts with null for a uid.
It seems like we aren't setting a uid for contacts without one when importing
so it's possible to get ones without a uid.

Opened ticket #71 to track this issue.
5 years ago
Tal Leibman e54e24d8c1 DateTimePicker : add disabled property 5 years ago
Tal Leibman 6446777c79 widgets: add RRule widget
First step towards fixing #50
RRule widget for repeating tasks and calendar events
5 years ago
Tom Hacohen c6eafadb8b Store actions fetchAll: cleanup and only fetch if there's new data. 5 years ago
Tom Hacohen 0dffd71276 Import Dialog: log potential import errors to console and close dialog. 5 years ago
Tom Hacohen a9611f4117 Remove debug log that got committed. 5 years ago
Tom Hacohen 052543261f Unify ICAL parsing and omit property group names.
The property groups were causing us issues and making it very hard
to handle these properties. And since we were not dealing with them
anyway, it's better to just remove them (standard allows this).

ical.js doesn't deal with them correctly, which is the source of this
problem. More info:
https://github.com/mozilla-comm/ical.js/issues/411
5 years ago
Tom Hacohen b4634abff4 Fix new account setup.
We were getting a 404 because the user info doesn't exist, and were erroring
because of it, which was not calling the then (just the catch).

We now handle the error condition.
5 years ago
Tom Hacohen 583e9090d8 TaskList: make it possible to view completed items. 5 years ago
Tom Hacohen 1eb561342f TaskEdit: fix editing of tasks without a start/due/completion date. 5 years ago
Tom Hacohen ec5d1faaa1 TaskList: convert to a pure functional component. 5 years ago
Tom Hacohen 1d792add0f Update ical.js types. 5 years ago
Tom Hacohen 3730300411 Event/task edit: handle timezones.
Fixes #29
5 years ago
Tom Hacohen bfc54018ce Widgets: add TimezonePicker widget. 5 years ago
Tom Hacohen 6a0fc11ab3 Event/task edit: improve design. 5 years ago
Tom Hacohen fed79fcfea Task/event: show current timezone next to events with timezones.
We were previously showing the original timezone which was confusing.
5 years ago
Tom Hacohen 52d4ad9967 ImportDialog: adjust to the changes in the previous commit. 5 years ago
Tom Hacohen d1b3d82024 pim-types: sync from iOS app.
Mainly about adding timezone support.
5 years ago
Tom Hacohen 80e249c958 Task list: fix typing. 5 years ago
Tom Hacohen 9ae370ac01 Task list: simplify sort function. 5 years ago
Tom Hacohen d3b4145269 Use the new UNSAFE_componentWillReceiveProps function name
We should redesign these, but until then, this should unbreak linting.
5 years ago
Tom Hacohen 58e432efec Import: reset loading state when done importing. 5 years ago
Tal Leibman ad10d75dab Journals List Import: remove add journal button 5 years ago
Tom Hacohen 284cb2413a Journals List Import: fix type error. 5 years ago
Tal Leibman 4318e064b3 Journal Import: add an import link to the sidebar
Fixes #55
5 years ago
Tal Leibman a8bdc076d9 JournalsList: change to a functional component 5 years ago
Tom Hacohen 2c02ec839e List: don't set the pointer cursor for non-clickable items. 5 years ago
Tom Hacohen e407976e58 Journal Entries: make parse errors non-fatal here too.
This is in continuation to 9abb3dcad9.

Fixes #48
5 years ago
Tom Hacohen fc4b3294f1 Login screen: gracefully handle wrong encryption passwords. 5 years ago
Tom Hacohen 8656d1076f Update react-big-calendar. 5 years ago
Tom Hacohen fcf8f1af58 Upgrade material-ui. 5 years ago
Tom Hacohen 9abb3dcad9 Make parse errors non-fatal
Before this patch, parse errors would make the whole app stop and show
an error. Now we handle them more gracefully by showing the parsing
errors in a non-fatal way.

This was implemented in a hacky way, and will be changed once the web
app is refactored to better resemble the iOS app.

Fixes #48.
5 years ago
Tom Hacohen 95944d87b5 PrettyError: redesign to make more reusable. 5 years ago
Tom Hacohen 8fe360751e Address book: handle contact names with length 0.
We were handling non existent contact names, but not
ones with length 0. This fixes this.

Fixes #62.
5 years ago
Tom Hacohen fbb3aa154c Login Form: fix new user detection following promise middleware changes. 5 years ago
Tom Hacohen 7edb1abfb4 promise middleware: fix to correctly return an error promise on error. 5 years ago
Tom Hacohen c7d4a15f5f Move the etesync-js API to its own repo. 5 years ago
Tom Hacohen f3de2a641a eslint: changed unused-args to always warn. 5 years ago
Tom Hacohen 566261b91a lint: fix all remaining warnings! 5 years ago
Tom Hacohen ab5495e221 Eslint: update rules and adjust code accordingly. 5 years ago
Tom Hacohen 29d4153e60 Fix some tsserver suggestions. 5 years ago
Tom Hacohen 18c7dcc816 EteSync test: fix eslint errors. 5 years ago
Tom Hacohen b9aa69aba2 EteSync: update from iOS repo. 5 years ago
Tom Hacohen 11dd883f5f lint: replace tslint with eslint and fix new warnings and errors. 5 years ago
Tom Hacohen f29edf1563 Update ical.js types. 5 years ago
Tom Hacohen ad9b0717f8 Fix eslint complaint. 5 years ago
Tom Hacohen 514f4ccddb Login: show text about setting the encryption key on first login. 5 years ago
Tom Hacohen 25afd02ba5 Remove recompose dep and use React.memo instead. 5 years ago
Tom Hacohen a252078d65 Use the new getCryptoManager when editing journals/userInfos.
This also fixes an issue when editing and deleting journals after an encryption
password change.
5 years ago
Tom Hacohen f5df8cb4e1 api: import updated version from the ios repo.
Improves types and adds functionality to getting crypto managers.
5 years ago
Tom Hacohen 5aa9640987 store: fix fetchCount to include fetching entries and userInfo. 5 years ago
Tom Hacohen 77c70ffae6 Remove redundant sjcl collectors.
We don't need this because we rely on the browser to provide
good enough random values (which browsers do nowadays).
5 years ago
Tom Hacohen 631a8d1f25 Fix typing issues in EteSync.ts 5 years ago
Tom Hacohen ba8d899d5d Fix eslint warnings. 5 years ago
Claus Niesen ff47e38845 Fix display of recurring events.
Fixes #56
5 years ago
Tom Hacohen 41848aa7e3 Remove useless constructor 5 years ago
Tom Hacohen 21e7d7d822 Add missing img alt text. 5 years ago
Tom Hacohen 8d76e134e8 Contact: change the field copy button to use the correct icon. 5 years ago
Tal Leibman 6d45c31f98 Contacts: Add a button to copy fields to clipboard
Fixes #39
5 years ago
Tom Hacohen ea67bb4b87 AddressBook: fix handling of contacts with empty names.
Fixes #49
5 years ago
Tom Hacohen c0c5af0cab Fix issue with different items across collections sharing the same uid
The existing code falsely (and accidentally) assumed that all items
(even across different collections) will have unique uids. This is a
false assumption, especially when importing one collection into the
other.
5 years ago
Tom Hacohen e85d611aa6 Block sharing of old-style journals. 5 years ago
Tom Hacohen a0da029631 Sync helpers: add a function to create journal entry from sync entry. 5 years ago
Tom Hacohen 28c16ccae5 Journal members: implement giving access 6 years ago
Tom Hacohen d0c9a9c559 Crypto: Add function to get cryptomanager's encryption key. 6 years ago
Tom Hacohen 34e6fc3668 User info: make it possible to deserialize contentless user info. 6 years ago
Tom Hacohen 61a4347a64 PrettyFingerprint: add a widget for pretty showing of fingerprints. 6 years ago
Tom Hacohen 4255e9f3d8 Confirmation dialog: fix confirmation dialog titles. 6 years ago
Tom Hacohen 68b38f115f List: implement right icon for list items. 6 years ago
Tom Hacohen 85ac4da839 Journal members: implement revoking access. 6 years ago
Tom Hacohen a557ec1fd2 Fix creation of default journals for new accounts.
I don't know when it stopped working or why, but this fixes it.
It was obviously an error, and was caused by sloppy typing.
6 years ago
Tom Hacohen 46fe1ceeb6 Gracefully handle wrong encryption passwords.
Until now we just showed integrity error which could be one of many issues.
Now we show an explicit error message and only clear the encryption password
cache rather than the whole cache.
6 years ago
Tom Hacohen dfd6914cd9 Fix version number when saving events/todos. 6 years ago
Tom Hacohen d1293b08c3 Journal: implement importing entries from file
It still needs a bit of polished, such as proper error handling,
progress indication, chunked pushing and etc, though it does work!

Fixes #17
6 years ago
Tom Hacohen 8a58fb01fc Journal view: fix viewing of tasks directly from the journal. 6 years ago
Tom Hacohen 5de1087a2a Ical.js types: add support for getting all subcomponents. 6 years ago
Tom Hacohen cd28f282fb API helpers: split the function creating journal entry. 6 years ago
Tom Hacohen 941b47b59a API helpers: rename createJournalEntry -> addJournalEntry.
Following the change from the previous commit.
6 years ago
Tom Hacohen 9b7f24eb8a Store actions: Rename createEntries -> addEntries. 6 years ago
Tom Hacohen 49273fbc6f Calendar: scroll to 8am when opening week and day views.
Fixes #40.
6 years ago
Tom Hacohen 4b09b9832a Task: fix allDay when a task doesn't have a startDate. 6 years ago
Tom Hacohen 494bc2e3bd Fix viewing tasks with no start or end date. 6 years ago
Tom Hacohen f26af1e1ac Journal actions: split fetchAll and fetching journal entries. 6 years ago
Tom Hacohen 8cc20ec3ed Fix removal of deleted jorunals from the journal list.
Fixes #36.
6 years ago
Tom Hacohen ae3f32cc01 Store: handle addJournal correctly (include empty entry list).
Fixes #35.
6 years ago
Tom Hacohen aeca32afa8 AddressBook: make sort case insensitive.
Fixes #34.
6 years ago
Tom Hacohen ad45ad3f83 Update tslint and fix warnings. 6 years ago
Tom Hacohen 7da0a6009b More tslint fixes. 6 years ago
Tom Hacohen 9913adc756 Update tslint config and update code to conform. 6 years ago
Tom Hacohen 3d67ad13b6 Remove redundant semi-colons. 6 years ago
Tom Hacohen 5c94954c96 Store reducers: fix inconsistent empty lines. 6 years ago
Tom Hacohen 812c8df61a store reducers: fix copy paste for type. 6 years ago
Tom Hacohen 7e406e4f77 Split the store construction to a separate file. 6 years ago
Tom Hacohen a4fca53541 Rename the locale settings to locale
I was trying to make it easier for people, but on second thought, en-GB
is definitely not representative of Europe, so having this split was
confusing.
6 years ago
Tom Hacohen 3b7fadcc69 Set the locale based on the settings.
Partially fixes #4
6 years ago
Tom Hacohen 43044750e3 Add support for settings (route and store). 6 years ago
Tom Hacohen b46291f360 Make the login screen slightly nicer. 6 years ago
Tom Hacohen e4c2cece16 Remove the unneeded isomorphic fetch. 6 years ago
Tom Hacohen 5237b14b74 Event and task: show timezone information.
First steps towards #29.
6 years ago
Tom Hacohen 172cc4ce53 Task: rename the completed property to finished and include cancelled. 6 years ago
Tom Hacohen 66d95216f7 Add support for editing a task's status. 6 years ago
Tom Hacohen a32e2c9019 Event and task description: show the text preformatted.
We previously had it in a div, which was dropping newlines.
6 years ago
Tom Hacohen 47c259d803 Improve task viewing. 6 years ago
Tom Hacohen e90a92ed57 Add a function to format just a date. 6 years ago
Tom Hacohen c2d4027e13 Move event date formatting function to a shared place. 6 years ago
Tom Hacohen 4db3b24743 Add task edit support. 6 years ago
Tom Hacohen 09ddfe8be8 Event: fix date calculation to account for exact same dates. 6 years ago
Tom Hacohen 7336fe5527 Change the max container width to 30rem. 6 years ago
Tom Hacohen 82434cec2c Fix exception by moving to the better props type declaration.
Seems like a regression with React (or a deprecation?) as it used to
work. Though the separate interface style is better and works better
with typescript anyway.
6 years ago
Tom Hacohen 2fd674a456 Add support for tasks. 6 years ago
Tom Hacohen d11180fed6 Fix material ui depracations. 6 years ago
Tom Hacohen 59aef075f5 Fix issue with navigation in journal views. 6 years ago
Tom Hacohen e4de0605f9 Fix all the issues that came with switching to react scripts 6 years ago
Tom Hacohen 3c05beef0b Move to react-scripts now that it supports typescript. 6 years ago
Tom Hacohen d09b2f964a Journal members: add a notice for no members. 6 years ago
Tom Hacohen 57f1aadc0d Expand containers to fill full vertical height. 6 years ago
Tom Hacohen b24070883a Journal: add a page for viewing members. 6 years ago
Tom Hacohen 8b438a81f6 Prettify the journals page. 6 years ago
Tom Hacohen 56f976c766 Implement journal creation and deletion. 6 years ago
Tom Hacohen 525ec58081 Journal edit: disallow editing journals we don't own. 6 years ago
Tom Hacohen c5fc6f23f5 Jounal store: simplify the store functions and change the list to a hash
It's always been a massive mess, this improves it.
6 years ago
Tom Hacohen 5b79e0f107 Implement journal update. 6 years ago
Tom Hacohen b583347473 Confirmation dialog: fix warnings. 6 years ago
Tom Hacohen b1070ecc94 Restructure the journals route.
This puts the jorunal list and the journal view in the same place
and will make it easier to add new/edit.
6 years ago
Tom Hacohen 4dac9703e9 Refresh button: add title. 6 years ago
Tom Hacohen 8f13da7a39 Remove the secondary header and update the appbar instead. 6 years ago
Tom Hacohen cf435118d4 Secondary header: add support for more than just text. 6 years ago
Tom Hacohen 20b409ffe8 Move the journals to their own page. 6 years ago
Tom Hacohen ebb2649078 Apply the theme to the base of the app. 6 years ago
Tom Hacohen 51e436be2e Remove the hacky getPalette function and use the theme instead. 6 years ago
Tom Hacohen 45bd0a9054 Associate account workaround: allow journal creation to fail. 6 years ago
Tom Hacohen 7d2fa215a3 Also init tasks on first run. 6 years ago
Tom Hacohen a8c6b30456 Fix infinite loading indicator when there are no entries. 6 years ago
Tom Hacohen 9f4fb75d73 Main view: make the calendar the default view.
It's used much more often than the contact list, so makes sense it's
the default.
6 years ago
Tom Hacohen a9b6978ae5 Add basic support for viewing tasks. 6 years ago
Tom Hacohen 7d5bbd5742 Allow non-email usernames when using own server
Fixes #19

Co-authored-by: Nemanja Nedeljković <nemanjan00@gmail.com>
6 years ago
Tom Hacohen 3fc9e32f76 Item update/delete: fetch before inserting to make sure we're up to date. 6 years ago
Tom Hacohen e697d3d276 Make it clearer that the first encryption password entered sets it.
Fixes #26
6 years ago
Tom Hacohen e3e4a5288a Event edit: fix wording in confirmation dialog (contact -> event).
Fixes #27.
6 years ago
Tom Hacohen f4fab17fb9 Don't show recurring warning for non recurring events. 6 years ago
Tom Hacohen 6b859b0693 Change the tab text colour to black.
Keeping the main title white and bold for now as it pops more. Maybe also
need to change.

Fixes #25.
6 years ago
Tom Hacohen 493343dd92 Contact edit: fix default type for jabber. 6 years ago
Tom Hacohen 87c777ac10 Appbar: fix the warning about passing an unknown props. 6 years ago
Tom Hacohen 4d386f5a0a Contact edit: fix changing subfield types. 6 years ago
Tom Hacohen 31bb36187a Contact edit: improve design a bit. 6 years ago
Tom Hacohen edc662b7c0 Contact/event: fix creating items on non-default journals.
Fixes #22
6 years ago
Tom Hacohen fbdd478602 App: upgrade material-ui. 6 years ago
Tom Hacohen c1d446551b Event Edit: upgrade material-ui. 6 years ago
Tom Hacohen 6a0b94fa0e Contact edit: upgrade material-ui. 6 years ago
Tom Hacohen 40ad15673d Searchable addressbook: upgrade material-ui. 6 years ago
Tom Hacohen a936ef2b64 Journal entries: upgrade material-ui. 6 years ago
Tom Hacohen 505795c711 Address book: upgrade material-ui. 6 years ago
Tom Hacohen a249bb4586 Sidebar: upgrade material-ui. 6 years ago
Tom Hacohen 08bb517ef1 Login form: upgrade material-ui. 6 years ago
Tom Hacohen bc46c197ba Confirmation dialog: upgrade material-ui. 6 years ago
Tom Hacohen eac0508194 Loading indicator: upgrade material-ui. 6 years ago
Tom Hacohen 6d0614df63 Container: upgrade material-ui. 6 years ago
Tom Hacohen a33bde29d4 Pim Main: upgrade materail-ui. 6 years ago
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
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
Tom Hacohen 3bb6d92be7 Add very basic error handling. 7 years ago
Tom Hacohen 2f96977646 Store fetching: fix the return record to include the error and fetching status. 7 years ago
Tom Hacohen 7b7c96719d Optimise PIM page a bit more. 7 years ago
Tom Hacohen 95c8bff9be Cache the Pim related calculations.
No need to recalc everything if the input is the same.
7 years ago
Tom Hacohen 58eedd1c37 Cache the SyncGate calculations.
This was taking quite a lot of time and caching this significantly
improves performance.

We only need it because of the react-redux-router bug, but good to have
it in the meanwhile.
7 years ago
Tom Hacohen 360a6ad826 Create our own dedicated avatar widget. 7 years ago
Tom Hacohen 1a1bdc77af Add our own list widget.
The material ui one is extremely inefficient and was causing noticeable
delays.
7 years ago
Tom Hacohen 97eaa756fe Add FIXMEs for the withRouter workaround
Because of: https://github.com/ReactTraining/react-router/issues/5795
We have to use withRouter which triggers a lot of extra renderings.
This means that until the bug is fixed we have to use withRouter and
some memoization to make sure we don't recalc everything all the time.
7 years ago
Tom Hacohen 264145eb72 Pim: no longer pass the match object. 7 years ago
Tom Hacohen 9f396173b0 Move etsync decryption logic to sync gate.
This shares more of the code, and also lets us be more efficient because
we now do these calculations less.
7 years ago
Tom Hacohen 6c4f077d0f Add missing new for records. 7 years ago
Tom Hacohen 4f88ff6364 Adjust code to work with es5 as a target. 7 years ago
Tom Hacohen a6ad199023 Make all of the React.Components Pure. 7 years ago
Tom Hacohen c3e686002e Move the store to immutable.js
This significantly helps with reducing the number of copies we do,
because in most cases a refresh will not change a journal.
7 years ago
Tom Hacohen ce71c5422f Pim: cleanup the syncenttry and journals processing.. 7 years ago
Tom Hacohen cabd82b382 Journal: remove accidental ; in content. 7 years ago
Tom Hacohen ce2c89aa50 Login form: disallow connecting to HTTP addresses in production. 7 years ago
Tom Hacohen 3231131e7e Add basic validation for events. 7 years ago
Tom Hacohen f12bc374f4 ContactEdit: remove unset properties. 7 years ago
Tom Hacohen c51804d7fe Event and contact: update last modified. 7 years ago
Tom Hacohen de3f96a10d ContactEdit: add IMPP. 7 years ago
Tom Hacohen 29ffb5a74b Add a few more contact fields. 7 years ago
Tom Hacohen 1524600e4b In iCal, all day events are until the end date not including
Adjust accordingly, and add some basic validation.
7 years ago
Tom Hacohen 29ae3005ea EventEdit: don't discard fields we don't handle and add a note about it. 7 years ago
Tom Hacohen da935c0836 Fix editing events of a journal other than the default. 7 years ago
Tom Hacohen 6d4c9c01e0 Fix saving of contacts. 7 years ago
Tom Hacohen 8c3adcdc94 Don't save empty properties. 7 years ago
Tom Hacohen fec1edf711 Make contact view more ressilient. 7 years ago
Tom Hacohen cf396ff904 Add missing version properties. 7 years ago
Tom Hacohen a7eb74bee1 Cleanup ContactEdit a bit and add address support. 7 years ago
Tom Hacohen 574df977c2 Store: fix test. 7 years ago
Tom Hacohen b7a6e123cd Improve contact edit. 7 years ago
Tom Hacohen 46ecb57af8 Update icaljs definitions. 7 years ago
Tom Hacohen daf27ca517 ContactType: Add a way to clone. 7 years ago
Tom Hacohen 6d76559d08 Initial version of contact editing. 7 years ago
Tom Hacohen 9521e3dae3 Fix the journal action to be change when changing event. 7 years ago
Tom Hacohen 7e271b1542 Event edit: add info text for the journal selector. 7 years ago
Tom Hacohen cfd6db6fb5 Go back on successful save. 7 years ago
Tom Hacohen 0c9dfd7087 Add a way to edit events. 7 years ago
Tom Hacohen 81c3f4d27e Add a way to create new events. 7 years ago
Tom Hacohen e22b520b5a EteSync api: fill in the collection info's uid. 7 years ago
Tom Hacohen 29a608db79 Pim page: add a button for creating contacts and events. 7 years ago
Tom Hacohen 221bdd4716 Use the sjcl random number generator for encryption. 7 years ago
Tom Hacohen 2507dfd5b3 Fix issue with sync entry being set and get differently. 7 years ago
Tom Hacohen 9c8df0a854 Add an action to create entries and add some store tests. 7 years ago
Tom Hacohen 441560dc72 Add a way to get the ical representation to events. 7 years ago