Commit Graph

216 Commits (b876a90a5afc33f7f5dbb41d12f3de34a4c5bc70)

Author SHA1 Message Date
Tom Hacohen 34445be4b0 Improve container 2017-12-08 17:58:24 +00:00
Tom Hacohen bfd5ba5d27 Split secondary header to its own component. 2017-12-08 17:57:57 +00:00
Tom Hacohen f2dfae6d77 Slightly improve the look of the calendar page. 2017-12-08 17:35:50 +00:00
Tom Hacohen 7067824ccd Improve the look of the contact page. 2017-12-08 17:34:48 +00:00
Tom Hacohen 1987ea126d Use container all around to improve look. 2017-12-08 17:07:27 +00:00
Tom Hacohen 87a2493956 Fix crash on new devices. 2017-12-08 17:06:47 +00:00
Tom Hacohen 63a1b0286b Improve the journal's look. 2017-12-08 16:55:13 +00:00
Tom Hacohen 56947722d3 Add a container component (like bootstrap's).
Just meant to help with sizing.
2017-12-08 16:54:49 +00:00
Tom Hacohen 3cfdb07b6a Persist some component state on route changes. 2017-12-08 16:06:05 +00:00
Tom Hacohen 025bb57b35 Fix name of PimMain. 2017-12-08 13:31:15 +00:00
Tom Hacohen c9cc26cf84 Pim Main keep tabs in state. 2017-12-08 12:34:48 +00:00
Tom Hacohen d8a57b821b Replace the hash router with the normal one.
The reason we need that is because it's lacking compared to the
hash one which is considered legacy.
2017-12-08 12:14:08 +00:00
Tom Hacohen 864dad372f Make special types for events and calendars.
This will simplify extracting values and already removes some
redundancy.
2017-12-08 09:56:24 +00:00
Tom Hacohen eb2075d0ec Remove debug code. 2017-12-08 09:29:16 +00:00
Tom Hacohen bb61ef3935 Improve presentation of events. 2017-12-08 00:23:46 +00:00
Tom Hacohen d51dd7108b Fix app test. 2017-12-07 23:05:04 +00:00
Tom Hacohen 6d83124376 Make the contact component throw an error if contact is undefined. 2017-12-07 22:59:43 +00:00
Tom Hacohen 3883cbad1c Show a very basic event page when an event is clicked. 2017-12-07 22:59:04 +00:00
Tom Hacohen 9b96e37e44 Remove redundant div. 2017-12-07 22:43:46 +00:00
Tom Hacohen 62859c411e Fix naming of the contact component. 2017-12-07 22:40:37 +00:00
Tom Hacohen eaf7de1c47 Remove the react fragment hack. 2017-12-07 22:39:48 +00:00
Tom Hacohen 57d65bec0f Make tel and email linkable in the contact view. 2017-12-07 22:37:17 +00:00
Tom Hacohen 588bec69cc Clean up the sidemenu. 2017-12-07 21:29:07 +00:00
Tom Hacohen 25402639b6 Split off the pim view and implement viewing contacts. 2017-12-07 21:11:24 +00:00
Tom Hacohen 8e2a465120 Rename Main to Pim. 2017-12-07 21:10:40 +00:00
Tom Hacohen c10a4cc924 Move the main page under pim and redirect there. 2017-12-07 20:53:33 +00:00
Tom Hacohen 590e8c61a9 Route resolver: make _base optional. 2017-12-07 20:46:26 +00:00
Tom Hacohen 97dc449953 Remove unused functions. 2017-12-07 20:33:33 +00:00
Tom Hacohen 68377ec0ac Fix viewing journals. 2017-12-07 20:32:58 +00:00
Tom Hacohen e310584e26 Split away the main view from the sync gate. 2017-12-07 20:17:19 +00:00
Tom Hacohen 5dacc4c013 Use the last entry id when fetching entries from server. 2017-12-07 20:06:26 +00:00
Tom Hacohen 4e9317a1ae Remove redundant fetchJournals from sidebar. 2017-12-07 19:26:15 +00:00
Tom Hacohen 058bb6dca9 Persist cache in localforage 2017-12-07 19:15:40 +00:00
Tom Hacohen fc42566486 Cleanup the calendar and render in the main page. 2017-12-07 17:28:48 +00:00
Tom Hacohen 425923aa6a Get rid of the useless HOC. 2017-12-07 17:00:59 +00:00
Tom Hacohen e6778f5ace Make the sync gate render the complete address book. 2017-12-07 16:58:50 +00:00
Tom Hacohen 0a4b065c9c Rename etesynccontext to root. 2017-12-07 16:09:48 +00:00
Tom Hacohen 9f5dd4f5ae Remove journal list. 2017-12-07 15:51:15 +00:00
Tom Hacohen 596d414025 Make a higher order function that translates syncentries to an item map. 2017-12-07 15:49:15 +00:00
Tom Hacohen ca49fc9eb5 Split the addressbook view from the syncentry handling code. 2017-12-07 15:18:26 +00:00
Tom Hacohen cf19e003d1 Rename calendar and address book to have the jorunal prefix.
The reason for that is that they are tied to a journal.
2017-12-07 14:54:58 +00:00
Tom Hacohen 1663460bed Put the journals in the sidemenu. 2017-12-07 11:47:07 +00:00
Tom Hacohen 92b8189190 Add fragment type. 2017-12-07 11:00:26 +00:00
Tom Hacohen cb28259b24 List unsupported journals. 2017-12-07 01:06:35 +00:00
Tom Hacohen e17aaaf79d Simplify entries fetching reducer. 2017-12-07 00:55:58 +00:00
Tom Hacohen e1bd0891fe Rename some components to make more sense. 2017-12-07 00:51:46 +00:00
Tom Hacohen 134539a02b Contact: remove extraneous dividers (in some cases) 2017-12-07 00:43:24 +00:00
Tom Hacohen 4e3ddcb29b Move the location of the username in the appbar. 2017-12-07 00:36:18 +00:00
Tom Hacohen 529d96d026 JournalEntries: use the loading indicator. 2017-12-07 00:26:44 +00:00
Tom Hacohen 95724c08d8 Change JournalFetcher to be a container instead of a gate.
It now not only fetches the journals, but also holds all of the children
and passes them the journals.
2017-12-07 00:24:09 +00:00
Tom Hacohen 278ebacad1 Add a nicer loading indicator. 2017-12-07 00:08:23 +00:00
Tom Hacohen 3bb8b6f101 Split out the login form from the etesync context. 2017-12-06 23:53:53 +00:00
Tom Hacohen cd2a6caf52 JournalList: get rid of the extra div. 2017-12-06 23:53:08 +00:00
Tom Hacohen 123cf589dd Remove debug code. 2017-12-06 23:40:34 +00:00
Tom Hacohen 87d150554c Remove fragment from journal view. 2017-12-06 23:40:34 +00:00
Tom Hacohen afb940d51a Simplify fetchCount using combineActions. 2017-12-06 19:58:05 +00:00
Tom Hacohen 6566bc01df Disable logger middleware in production builds. 2017-12-06 19:41:14 +00:00
Tom Hacohen 22381a1f85 Move to redux-actions. 2017-12-06 19:40:46 +00:00
Tom Hacohen 7e1d1087b1 Move to (our modified) redux-promise to simplify actions. 2017-12-06 17:52:38 +00:00
Tom Hacohen 49b9469284 Remove the redundant EteSyncContextType interface. 2017-12-06 11:18:37 +00:00
Tom Hacohen c67ba9a233 Move actions to the store file and clean up imports. 2017-12-06 11:15:40 +00:00
Tom Hacohen 33b4cc083a Add a component that acts as a gate for journal fetching. 2017-12-05 20:27:06 +00:00
Tom Hacohen 2e4c6b11aa Move entry fetching to redux. 2017-12-05 20:27:06 +00:00
Tom Hacohen f36e099bb9 Change all of our components to export themselves as default. 2017-12-05 20:27:06 +00:00
Tom Hacohen 43127dc53f Put username on the upper right corner. 2017-12-05 20:27:06 +00:00
Tom Hacohen 38cb4170ed Remove redundant class. 2017-12-05 20:27:06 +00:00
Tom Hacohen e75d586c0f Move journal fetching to redux. 2017-12-05 20:27:06 +00:00
Tom Hacohen 57f89e3840 Store: make global fetch count tracking generic. 2017-12-05 20:27:05 +00:00
Tom Hacohen c6ec2bcaf1 Fix wrong type in store. 2017-12-05 20:27:05 +00:00
Tom Hacohen fb660fc54c Make request types generic. 2017-12-05 20:27:05 +00:00
Tom Hacohen 37aaebbbd8 Clear login form username and password on submission. 2017-12-05 20:27:05 +00:00
Tom Hacohen 3c3ffb15d3 Implement logout and workaround an issue with redux-persist not persisting.
For some reason it doesn't persist when credentials === undefined.
2017-12-05 20:27:05 +00:00
Tom Hacohen 94c6916447 Add a basic redux store. 2017-12-05 20:27:05 +00:00
Tom Hacohen 55f595d52a Start using react fragments. 2017-12-05 20:27:05 +00:00
Tom Hacohen 36cf88aaf2 Fix the main navigation link. 2017-12-04 23:23:56 +00:00
Tom Hacohen fe6490a098 Show raw journal items when clicked. 2017-12-04 23:18:06 +00:00
Tom Hacohen 00d8b43cc5 Login: change login form to be a controlled component.
I thought it would be easier to use an uncontrolled component, but
it fails when loading fails. The form just clears.

This fixes it.
2017-12-04 22:45:58 +00:00
Tom Hacohen df4ea83208 Don't change history when switching tabs. 2017-12-04 22:45:58 +00:00
Tom Hacohen b0741978d0 Journal list: improve look. 2017-12-04 22:45:58 +00:00
Tom Hacohen 1bf6314ac3 EteSync: fix the sync entry action constant for Delete. 2017-12-04 22:12:32 +00:00
Tom Hacohen 1a9202521d Add in-app navigation links. 2017-12-04 21:55:47 +00:00
Tom Hacohen 5b8c000d45 Don't recreate views when switching tabs. 2017-12-04 21:41:03 +00:00
Tom Hacohen 635a41d41f Add a calendar view. 2017-12-04 21:36:48 +00:00
Tom Hacohen 154beee6d1 Fix input types for the login page. 2017-12-04 21:36:27 +00:00
Tom Hacohen fddf39244d Add a contact page. 2017-12-04 19:22:39 +00:00
Tom Hacohen 2a6220e6d4 Make it possible to navigate between collection items and journal entries. 2017-12-04 19:22:39 +00:00
Tom Hacohen 6c96d7994f Improve the look of the journals page. 2017-12-04 19:22:39 +00:00
Tom Hacohen 336a07e065 Remove the old welcome to react header. 2017-12-04 19:22:39 +00:00
Tom Hacohen b668e6478a Organise calendars and address books in lists. 2017-12-04 19:22:39 +00:00
Tom Hacohen 3faa7b3ed6 Simplify calls to setState, apparently it already shallow merges. 2017-12-04 16:50:54 +00:00
Tom Hacohen f8ee484c3b Add some login form validation. 2017-12-04 16:00:31 +00:00
Tom Hacohen 516bdd2622 Improve log in look and feel. 2017-12-04 15:41:18 +00:00
Tom Hacohen 622805a5b6 Improve the look and feel of the login form. 2017-12-04 15:05:35 +00:00
Tom Hacohen ef92632885 Change to the production API and allow setting a custom server. 2017-12-04 14:45:01 +00:00
Tom Hacohen 0a05095da2 Home: redirect to the journals view. 2017-12-04 14:45:01 +00:00
Tom Hacohen d7c90ccb0a Move to material-ui. 2017-12-04 14:45:01 +00:00
Tom Hacohen 295867a439 Login form: add a missing prevent default. 2017-12-04 13:28:55 +00:00
Tom Hacohen 07c986b01d Add a very basic login page and cache the keys in session storage. 2017-12-03 23:49:16 +00:00
Tom Hacohen 2947607a45 Update type definitions for ICAL and fix type errors. 2017-12-03 22:30:42 +00:00
Tom Hacohen f5c31a3dbe Add views for actual collection items.
I.e calendar events and address book content.
2017-12-03 20:06:53 +00:00
Tom Hacohen 8c20687a72 Split away the journal list item view from the jorunal view. 2017-12-03 13:44:23 +00:00
Tom Hacohen e92a9c9961 Improve presentation of journal log. 2017-12-03 13:27:32 +00:00
Tom Hacohen 8087f2d3f4 Fix to previous commit: fix redirect to entries page. 2017-12-03 12:59:03 +00:00
Tom Hacohen d4c49c1f55 Load the actual journal from the journal page.
This fixes viewing journals with version != 1.
2017-12-01 18:37:33 +00:00
Tom Hacohen 25bf249d9f Improve journal page. 2017-12-01 18:15:08 +00:00
Tom Hacohen af921e1b28 Move the header back outside of the internal components. 2017-12-01 17:58:27 +00:00
Tom Hacohen 132f63e2a6 Move all of the etesync context to a separate place.
This means that encryption key derivation and token access
are not called as often.
2017-12-01 17:42:57 +00:00
Tom Hacohen 6f9c783159 Cleanup the route resolver a bit. 2017-12-01 16:26:11 +00:00
Tom Hacohen 7dd8248aab Added a hacky journal view.
A lot of code duplication.
2017-12-01 16:18:11 +00:00
Tom Hacohen 557e5ec0b4 Add basic routing. 2017-12-01 15:44:38 +00:00
Tom Hacohen b9798f1b13 Switch to the hash router for security.
This is needed to avoid accidentally leaking urls to the server.
2017-12-01 15:34:07 +00:00
Tom Hacohen bba3282def Add a basic journal list view. 2017-12-01 15:33:30 +00:00
Tom Hacohen 9fd1b31299 Fix journal not having version set.
This commit also cleans up the sharing between the json from the API and
the internal state of the object.
2017-12-01 15:16:36 +00:00
Tom Hacohen 11aa1ffd94 API: first verify, then try to decrypt! 2017-12-01 14:10:58 +00:00
Tom Hacohen e0cc13cfd2 Initial code import of the etesync encryption and service module
This will be a small library in the end, but at the moment it's in this
repo for convenience. It includes the etesync service, crypto and tests
to cover them.

The tests require a running debug etesync server.

To create one, just create a server from:
https://github.com/etesync/server-skeleton/

Set DEBUG to True, and create a test user with the credentials that are
listed in the test files.
2017-12-01 12:05:29 +00:00
Tom Hacohen 3a60a35a99 Initial commit. 2017-11-30 11:06:15 +00:00