Tom Hacohen
3bb6d92be7
Add very basic error handling.
2017-12-16 00:19:20 +00:00
Tom Hacohen
2f96977646
Store fetching: fix the return record to include the error and fetching status.
2017-12-16 00:10:58 +00:00
Tom Hacohen
7b7c96719d
Optimise PIM page a bit more.
2017-12-15 18:31:51 +00:00
Tom Hacohen
95c8bff9be
Cache the Pim related calculations.
...
No need to recalc everything if the input is the same.
2017-12-15 18:24:59 +00:00
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.
2017-12-15 18:11:08 +00:00
Tom Hacohen
360a6ad826
Create our own dedicated avatar widget.
2017-12-15 16:57:29 +00:00
Tom Hacohen
1a1bdc77af
Add our own list widget.
...
The material ui one is extremely inefficient and was causing noticeable
delays.
2017-12-15 16:50:51 +00:00
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.
2017-12-15 12:52:22 +00:00
Tom Hacohen
264145eb72
Pim: no longer pass the match object.
2017-12-14 14:35:29 +00:00
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.
2017-12-14 14:31:17 +00:00
Tom Hacohen
6c4f077d0f
Add missing new for records.
2017-12-14 12:06:12 +00:00
Tom Hacohen
4f88ff6364
Adjust code to work with es5 as a target.
2017-12-14 11:13:01 +00:00
Tom Hacohen
a6ad199023
Make all of the React.Components Pure.
2017-12-14 10:58:25 +00:00
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.
2017-12-14 10:58:25 +00:00
Tom Hacohen
ce71c5422f
Pim: cleanup the syncenttry and journals processing..
2017-12-14 10:58:25 +00:00
Tom Hacohen
cabd82b382
Journal: remove accidental ; in content.
2017-12-13 15:56:41 +00:00
Tom Hacohen
ce2c89aa50
Login form: disallow connecting to HTTP addresses in production.
2017-12-13 15:48:44 +00:00
Tom Hacohen
3231131e7e
Add basic validation for events.
2017-12-13 15:31:04 +00:00
Tom Hacohen
f12bc374f4
ContactEdit: remove unset properties.
2017-12-13 15:23:37 +00:00
Tom Hacohen
c51804d7fe
Event and contact: update last modified.
2017-12-13 15:22:00 +00:00
Tom Hacohen
de3f96a10d
ContactEdit: add IMPP.
2017-12-13 15:12:25 +00:00
Tom Hacohen
29ffb5a74b
Add a few more contact fields.
2017-12-13 15:01:58 +00:00
Tom Hacohen
1524600e4b
In iCal, all day events are until the end date not including
...
Adjust accordingly, and add some basic validation.
2017-12-13 14:40:06 +00:00
Tom Hacohen
29ae3005ea
EventEdit: don't discard fields we don't handle and add a note about it.
2017-12-13 14:18:45 +00:00
Tom Hacohen
da935c0836
Fix editing events of a journal other than the default.
2017-12-13 14:11:56 +00:00
Tom Hacohen
6d4c9c01e0
Fix saving of contacts.
2017-12-13 14:11:56 +00:00
Tom Hacohen
8c3adcdc94
Don't save empty properties.
2017-12-13 14:11:56 +00:00
Tom Hacohen
fec1edf711
Make contact view more ressilient.
2017-12-13 14:11:56 +00:00
Tom Hacohen
cf396ff904
Add missing version properties.
2017-12-13 14:11:56 +00:00
Tom Hacohen
a7eb74bee1
Cleanup ContactEdit a bit and add address support.
2017-12-13 14:11:56 +00:00
Tom Hacohen
574df977c2
Store: fix test.
2017-12-13 14:11:56 +00:00
Tom Hacohen
b7a6e123cd
Improve contact edit.
2017-12-13 14:11:56 +00:00
Tom Hacohen
46ecb57af8
Update icaljs definitions.
2017-12-13 14:11:56 +00:00
Tom Hacohen
daf27ca517
ContactType: Add a way to clone.
2017-12-13 14:11:56 +00:00
Tom Hacohen
6d76559d08
Initial version of contact editing.
2017-12-13 14:11:48 +00:00
Tom Hacohen
9521e3dae3
Fix the journal action to be change when changing event.
2017-12-12 22:50:12 +00:00
Tom Hacohen
7e271b1542
Event edit: add info text for the journal selector.
2017-12-12 22:50:12 +00:00
Tom Hacohen
cfd6db6fb5
Go back on successful save.
2017-12-12 22:50:12 +00:00
Tom Hacohen
0c9dfd7087
Add a way to edit events.
2017-12-12 22:50:12 +00:00
Tom Hacohen
81c3f4d27e
Add a way to create new events.
2017-12-12 22:50:12 +00:00
Tom Hacohen
e22b520b5a
EteSync api: fill in the collection info's uid.
2017-12-12 22:43:45 +00:00
Tom Hacohen
29a608db79
Pim page: add a button for creating contacts and events.
2017-12-12 22:43:45 +00:00
Tom Hacohen
221bdd4716
Use the sjcl random number generator for encryption.
2017-12-12 17:00:35 +00:00
Tom Hacohen
2507dfd5b3
Fix issue with sync entry being set and get differently.
2017-12-12 16:56:24 +00:00
Tom Hacohen
9c8df0a854
Add an action to create entries and add some store tests.
2017-12-12 16:47:31 +00:00
Tom Hacohen
441560dc72
Add a way to get the ical representation to events.
2017-12-12 15:50:18 +00:00
Tom Hacohen
df538c368a
EventEdit: add uuid to events.
2017-12-12 15:49:03 +00:00
Tom Hacohen
2af9e41404
Fix indentation.
2017-12-12 14:21:18 +00:00
Tom Hacohen
82c5a70eaa
Add a simple widget for editing events.
2017-12-12 14:21:18 +00:00
Tom Hacohen
72aad2d24c
Add a basic datetime picker widget.
2017-12-12 14:21:18 +00:00
Tom Hacohen
f3e82ee7e4
Improve ical definitions.
2017-12-12 14:21:18 +00:00
Tom Hacohen
0fb37c1132
Move the creating event from calendar to one place.
2017-12-11 18:27:33 +00:00
Tom Hacohen
03bbc7af17
Add paths for contact and calendar creation.
2017-12-11 15:06:10 +00:00
Tom Hacohen
e124a163a3
Root: use the container component.
2017-12-11 13:15:26 +00:00
Tom Hacohen
f84c3b58da
Make it possible to pass style to the Container component.
2017-12-11 13:15:15 +00:00
Tom Hacohen
a374766ab8
Add a link to the source code from the login page.
2017-12-11 13:02:38 +00:00
Tom Hacohen
0471f2424d
Change the contact colour coding to be based on the uid.
2017-12-10 22:25:59 +00:00
Tom Hacohen
76dd2327cd
Improve login page.
2017-12-10 15:21:15 +00:00
Tom Hacohen
c73aabf0cc
Fix agenda header formatting.
2017-12-10 13:26:03 +00:00
Tom Hacohen
86c5a822cb
Fix setting calendar's locale.
2017-12-10 13:14:36 +00:00
Tom Hacohen
f4d49488a9
Handle loading inside the login form itself.
2017-12-10 12:15:49 +00:00
Tom Hacohen
3794d6c05a
Implement last modified for contacts.
2017-12-08 20:47:52 +00:00
Tom Hacohen
6de0534bf9
Also change the background colour in the view event page.
2017-12-08 20:28:22 +00:00
Tom Hacohen
64e13f4ec8
Add colour to events.
2017-12-08 20:25:50 +00:00
Tom Hacohen
802b994a6f
Change how multiple calendars are merged together.
2017-12-08 20:19:00 +00:00
Tom Hacohen
c945731d8a
Stop using Map<>.
...
It looks like this is more trouble than its worth. Things are missing
and it's in general a pain to work with.
2017-12-08 20:15:13 +00:00
Tom Hacohen
70486e7da2
Improve address book look.
2017-12-08 18:54:47 +00:00
Tom Hacohen
539759dd32
Add anniversary to contact view.
2017-12-08 18:34:39 +00:00
Tom Hacohen
b3420bbc24
Improve contact properties conversion.
2017-12-08 18:32:25 +00:00
Tom Hacohen
5f2d499cc1
Add address and birthday.
2017-12-08 18:27:00 +00:00
Tom Hacohen
1dfc60afab
Add icon to impp.
2017-12-08 18:20:49 +00:00
Tom Hacohen
1e752ae022
Improve the look of events and contacts.
2017-12-08 18:16:28 +00:00
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