751 Commits (f2a28ebcffbe465e2889cedc6e8b061396fcb9ed)

Author SHA1 Message Date
Tom Hacohen 435256bede Experimental: add dark mode.
It's been ready for a while, though we haven't bothered enabling it because the
calendar view is less than great, though I think it makes sense to enable it
now as experimental and improve it as we go.

Fixes #128.
5 years ago
Tom Hacohen f3a533ab2d Settings: change to react hooks + remove unneeded props. 5 years ago
Tom Hacohen bf7590dd91 Fix linting errors. 5 years ago
Tom Hacohen 2d778065c8 ContactEdit: make addresses multiline. 5 years ago
Andrew P Maney 04c4ae94cd Tasks: fix Edit error Toast severity 5 years ago
Andrew P Maney 508d02a0ea Tasks: batched uploads for recurring task completion 5 years ago
Andrew P Maney de94a02025 Task: add recurrence features to list view 5 years ago
Andrew P Maney aada3e6d36 Tasks: add recurrence to Edit 5 years ago
Tom Hacohen dac6ba5900 Login: automatically log out on expired token.
This is a bit of a workaround.
The problem is that we cache auth tokens, but that auth tokens can expire.
Thins means that we could have a stale auth token after coming back to
the app after a long time, so we need to fetch a new one.

Logging out is a bit of a nuclear option, but since this is a rare
scenario, it can do for now.
5 years ago
Tom Hacohen 84f7a11bbc ICAL.js: fix types of complex rrules 5 years ago
Andrew P Maney 73a3729a70 pim-types: change clone to deep clone using string
fixes #119
5 years ago
Andrew P Maney aa9e85a520 Tasks: fix priority sorting
Priority sorting had some inconsistencies. 
The Infinity was causing tasks to not be sorted (Infinity - Infinity = NaN).
Adding sortByDueDate also ensures better sorting when tasks have the same priority
5 years ago
Andrew P Maney 77f734a227 Tasks: fix alignment in Toolbar menu 5 years ago
Andrew P Maney 7a42ff04d8
UI: pretty error messages
Add Toast component for displaying error messages in a more prominent way
5 years ago
Tom Hacohen 0ce83defcc LoginGate: show an error if the user is inactive. 5 years ago
Andrew P Maney ed4ed86880 Tasks: add show/hide hidden feature 5 years ago
Andrew P Maney b78ccfbf8b MUI: fix TimezonePicker types
broken from mui/lab update
5 years ago
Andrew P Maney 36d6308c88 Tasks: change due text to date instead of time to 5 years ago
Andrew P Maney 0b5274887f Tasks: make overdue secondary text red
Also add some logic to display tasks due today as "Due today"
Tasks: fixes
5 years ago
Andrew P Maney 5eea4e89a5 Task edit: fix DateTime's not being properly stored
I messed up a boolean value with my previous pull request. It was causing DateTimes to be stored as Dates and vice-versa.
5 years ago
Andrew P Maney b6b46d2b24 Task edit: change "All Day" to "Include Time" 5 years ago
Andrew P Maney e39974105f Task edit: reword Start Date to "Hide until" 5 years ago
Andrew P Maney e06ccbd21c Tasks edit: add full width styles to timing inputs 5 years ago
Andrew P Maney 39529e66c1 Tasks: add a11y title and aria labels for Toolbar 5 years ago
Andrew P Maney 212dfc7095 Tasks: add search functionality 5 years ago
Andrew P Maney ba00be300e
RRule: handle undefined options.byday
Merge of #108
5 years ago
Andrew P Maney b90adaffb5
Tasks: improve positioning of Toolbar menus
Merges #105
5 years ago
Andrew P Maney 1de7a2ebdd
Tasks: implement sorting
Merge of #104
5 years ago
Andrew P Maney b69b51f558
Tasks: move "Show Completed" to a toolbar menu 5 years ago
Andrew P Maney 74ed60a3fb Tasks: hides Sidebar amount if value 0
Tasks: makes amount conditional more concise
5 years ago
Andrew P Maney e008bc19e8 Tasks: changes dueToday to include all times before today 5 years ago
Andrew P Maney 716240e266 Tasks: adds dueToday getter to TaskType
cleans up some code around filtering by due today
5 years ago
Andrew P Maney 9a7960556b Tasks: adds memoization to Sidebar 5 years ago
Andrew P Maney f3ba0b30ef Tasks: removes unnecessary comments 5 years ago
Andrew P Maney 8ba7709653 Tasks: moves Sidebar specific logic into Sidebar component
also adds amount to Due Today filter
5 years ago
Andrew P Maney 2980305beb Tasks: adds filter by Due Today 5 years ago
Tom Hacohen 02ac73eb25 AddressBook: add missing key property to list items.
Well actually just remove the useless div, but the driver was
to add the missing key prop.
5 years ago
Andrew P Maney effd74e0b2 Tasks: adds filter by tag feature
Squash of #94
5 years ago
Tom Hacohen ec9d8d3329 Revert "Tasks: adds filter by tag feature"
Reverting because I'm not the author. The next commit will have the
right author set.

This reverts commit b14697474c.
5 years ago
Tom Hacohen b14697474c Tasks: adds filter by tag feature
Squash of #94
5 years ago
Andrew P Maney a2d6dacbe4 Settings: change setSettings action to merge with state.
It was overriding state before.
5 years ago
Andrew P Maney 9f618ab36c Tasks: changes margin units from px to em 5 years ago
Andrew P Maney c113c8b283 Tasks: displays tags on Task list items 5 years ago
Andrew P Maney fe8fbfdfd8 Tasks: adds tags 5 years ago
Andrew P Maney 93f06f81cd Tasks: moves misplaced const
a const was accidentally placed in the middle of imports,
that has been moved
5 years ago
Andrew P Maney f04212a1e6 Tasks: renames some vars from event to task
I assume this is just some cruft from a bad copy-paste
5 years ago
Tom Hacohen 69c38d7e8f Journals list+import: move journal items to the left side. 5 years ago
Tom Hacohen e0e805d009 JournalEntries: use a virtualized list for the entries. 5 years ago
Tom Hacohen 2397cfbe6d AddressBook: use a virtualized list for the contacts. 5 years ago
Tom Hacohen 5cb8dda9cc List: move the list widget to use the material ui list.
Fixes #79.
5 years ago
Tal Leibman 6a5d959777 JournalsList: add icon to titles 5 years ago
Tom Hacohen 8aa4af46f1 TaskEdit: fix crash when saving tasks with no status set. 5 years ago
Tom Hacohen 18967ddb16 TaskEdit: use null coalescing instead of ||.
It technically works because undefined happens to be falsey, but still bad
practice and can lead to errors (especially when copy-pasting).
5 years ago
Andrew P Maney 54302c4c07 License: adds license to Colored Radio 5 years ago
Andrew P Maney 29d1e5cfe5 Tasks: adds mapPriority helper function
handles any possible issues with priorities that aren't 1, 5, or 9
5 years ago
Andrew P Maney bdd89fb533 Tasks: colors checkbox according to priority 5 years ago
Andrew P Maney 0436e9ccd0 Tasks: adds colored radio buttons
available as widget, they are being used for priority in Task Edit
5 years ago
Andrew P Maney add95621af Tasks: adds priority to Task type
with ability to edit in form
5 years ago
Andrew P Maney dc1b17f7f4 Tasks: adds secondary text displaying time until due 5 years ago
Tom Hacohen 8e1e3b8fe1 TaskListItem: change from anonymous to named function.
Other than the stylistic choice, this is also very useful for the react
dev tools, which show the component's name.
5 years ago
Andrew P Maney ad3958ae88 Tasks: adds checkbox to Task list item 5 years ago
Tom Hacohen 649a7cd281 Event view: change the text colour based on background.
This is needed to ensure a good enough contrast.

Fixes #85.
5 years ago
Andrew P Maney 9e1c7ea8d5 Tasks: adds license 5 years ago
Andrew P Maney 632ec9cacf Pim: changes how onItemSave handles post-save action
onItemSave used to automatically "go back" after saving. New behavior is
onItemSave returns a promise that resolves to the history object. This object
can then be used to go back if needed. This allows for more granular control
over post-save actions.
5 years ago
Andrew P Maney b4ef6e641d Tasks: Quick Add feature
This is a merge of #84
5 years ago
Tom Hacohen 7efb185caf RRule: sanitize byday/month before using.
It was crashing when they were not array, so this change makes sure they are.
Additionally, since we don't support the number prefixes for by day (e.g.
3SA) at least sanitize the ones we can handle which are the ones
prefixed by 1 such as 1SA, and turn them into the equivalent SA.
5 years ago
Tom Hacohen c9aefdec4c Revert "Tasks: Quick Add feature"
Completely broken, had to revert it.

This reverts commit f5eb1932e8.
5 years ago
Tom Hacohen e75e1c5c5e Revert "Tasks: add license to files"
Depends on a completely broken piece of code.

This reverts commit 75f2b50a29.
5 years ago
Andrew P Maney 75f2b50a29 Tasks: add license to files 5 years ago
Andrew P Maney f5eb1932e8 Tasks: Quick Add feature 5 years ago
Andrew P Maney 5d54ab4563 Tasks: reorganizes Tasks components into their own subfolder 5 years ago
Tom Hacohen 0b18cac914 Licensing: add license headers to source files. 5 years ago
Tom Hacohen c00f4d79c7 Member add: change confusing string.
A few users reached out about this and were confused, not understanding
what we mean by having the journal sharing disabled.
5 years ago
Andrew P Maney 41029c1da9 MUI: removes deprecated theme.spacing.unit 5 years ago
Andrew P Maney 059abe4807 Tasks: change clicking on task to go directly to edit page 5 years ago
Tom Hacohen 8e542f6fd7 Journal members: show if a member is shared with as read-only. 5 years ago
Tom Hacohen c907285d78 Journal sharing: support sharing journals as read-only. 5 years ago
Tom Hacohen 8e790ed666 Fix bug with web client not remembering a user is logged in.
Was introduced in 118d26ce83
5 years ago
Tom Hacohen 67c5275fa8 Fingerprint: add security fingerprint to settings page
I was initially trying to add it to the side menu. For a reason I just
can't understand the dialog wouldn't show from there, and I
unfortunately don't have time to debug it at the moment. Here it just
works as is "good enough" for now.
5 years ago
Tom Hacohen fe42a3c2ed Add migrations for the changes in the store's structure 5 years ago
Tom Hacohen 6ed0f02abc SyncGate: move to react hooks. 5 years ago
Tom Hacohen 06bf21248e Add journal and entry error handling to the global error handling. 5 years ago
Tom Hacohen 90392fe432 Change entries to also not be a complex fetch type. 5 years ago
Tom Hacohen 2946be464c Change journals to also not be a complex fetch type. 5 years ago
Tom Hacohen 23048cfa63 Change userInfo to also not be a complex fetch type. 5 years ago
Tom Hacohen 118d26ce83 Simplify the fetch credentials structure to not use the fetch record.
It was thrashing the redux store. We made the same change for the ios app.
5 years ago
Tom Hacohen 5301b546df LoginGate: move to be a function component. 5 years ago
Tom Hacohen 5f78657e51 Fix crash with associate accounts.
Associates accounts can't create journals, and the web client was
failing for them because the creation error wasn't being handled
correctly.
5 years ago
Tal Leibman e0904eea02 RRule: layout and style changes 5 years ago
Tal Leibman 0381d2816b JournalEdit: add ColorPicker and imporve validation
Fixes #75
5 years ago
Tal Leibman 7b0264fc50 Widgets: ColorPicker 5 years ago
Tal Leibman 643010ccfe JournalsList: show journal color 5 years ago
Andrew P Maney 399724f7e4 DateTimePicker: change to a more usable date and time picker
Note by @tasn: I actually wrote this from scratch, but slightly based it
on work by @AbleLincoln in #74 which is why I set him as the author.

Fixes #9
5 years ago
Tom Hacohen 2f199ce0c9 JournalEdit: change to react-hooks. 5 years ago
Tom Hacohen b76a909b7a Login Form: change the label to Email from Username. 5 years ago
Tom Hacohen a4c8fd6688 Helpers: fix color conversion functions and add tests. 5 years ago
Tom Hacohen cac9b21135 AddressBook: fix search when there are contacts with a full name. 5 years ago
Tom Hacohen 28c3a8395b Logout: invalidate the auth token after logging out. 5 years ago
Tom Hacohen 28b11e59ff AddressBook: fix crash when fullname is undefined. 5 years ago
Tom Hacohen 9ec759bd44 Import: mime type detection is unreliable, allow filetype matching too. 5 years ago
Tom Hacohen 4f3c8895f3 Import: hopefully fix infinite loading on import. 5 years ago
Tom Hacohen d0ec686592 Debug: added a debug route to let people easily inspect their journals.
Useful when people are helping with debugging.
5 years ago
Tom Hacohen 8567dd70b7 Import: better handle rejected files. 5 years ago
Tom Hacohen d8a0aa19ca Import: fix error handling to stop the loading and print the error. 5 years ago
Tom Hacohen d268c0fab6 Event Edit: fix handling of recurring events with an until field.
It was slightly the wrong type because of typings were wrong. We now explicitly
convert it.
5 years ago
Tom Hacohen 7b22e0e76b RRule: move filtering of empty values to inside the widget. 5 years ago
Tom Hacohen 8440cac7e8 rrule: fix spacing and locations of code. 5 years ago
Tom Hacohen 16255e4cad RRule: fix indentation. 5 years ago
Tom Hacohen e2b732f212 RRule: remove redundant checks. 5 years ago
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. 6 years ago
Tom Hacohen a0da029631 Sync helpers: add a function to create journal entry from sync entry. 6 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