summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2016-02-05Fix %(hash) formatting of eventsLukas Fleischer
Actually print the hash instead of raw object data. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2016-02-05Support format specifiers in grep modeLukas Fleischer
Honor --format-* parameters when using the -G operation. In the case of recurring items, the first occurrence is used. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2016-02-05Refactor grep modeLukas Fleischer
Split io_save_{apts,todo}() into functions that write raw data to a file and functions that write formatted items to stdout such that one can easily extend the grep mode for format string support in a follow-up commit. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2016-02-02calcurse-caldav: Reword dry-run warningLukas Fleischer
Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2016-02-01calcurse-caldav: Modernize format stringsLukas Fleischer
Replace %-style string formatting with format(). Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2016-02-01calcurse-caldav: Make synchronization more robustLukas Fleischer
In addition to storing ETag-hash tuples in the synchronization database, also store the URI of each object. This makes the synchronization process a bit more robust as we do not need to depend on ETags being globally unique. It also allows us to detect conflicts which occur when an object is modified locally and on the server at the same time. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2016-02-01calcurse-caldav: Fix issues reported by pylintLukas Fleischer
Add missing parameter to remote_query() and fix various style issues. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2016-01-30po/calcurse.pot: Update message catalogLukas Fleischer
Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2016-01-30Update copyright rangesLukas Fleischer
Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2016-01-28calcurse-caldav: Fix version checkLukas Fleischer
Since commit 41389ab (args.c: Revise help/usage/version output, 2016-01-28), the version string starts with "calcurse" (lowercase). Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2016-01-28Fix two iCal import testsLukas Fleischer
When importing iCal files, VTODO entries without an priority are now imported with undefined priority (internally represented as zero), not with lowest priority 9. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2016-01-28Fix behavior of --todo with an optional argumentLukas Fleischer
The previous behavior of --todo was to always only list uncompleted items, unless zero was specified as additional argument. Restore and document this behavior. Also, fix two tests that failed because the --todo output is now sorted. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2016-01-28args.c: Revise help/usage/version outputLukas Fleischer
Remove obsolete options from the help text, add new options, clean everything up, cut translatable strings into atomic chunks. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2016-01-28Add a --daemon command-line parameterLukas Fleischer
When specifying --daemon, calcurse immediately forks and runs the notification daemon in the background. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2016-01-27Display priority todo items above regular itemsLukas Fleischer
We now support todo items with undefined priority and currently display them above todo items with a strictly positive priority. Change this and always list items with a priority greater than zero first. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2016-01-27Support sending notifications for all appointmentsLukas Fleischer
In 45417bc (Add configuration option to notify all appointments, 2011-07-31), we added an option that allows for choosing whether the user receives notifications only for flagged or only for unflagged appointments. Convert this setting into a three-state option and allow the user to additionally enable notifications for *all* appointments. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2016-01-26sigs.c: Suppress compiler warningLukas Fleischer
Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2016-01-26Support SIGUSR1 in daemon modeLukas Fleischer
In commit 7f62fb1 (Let SIGUSR1 trigger a reload, 2014-10-10), we added support for reloading the data files by sending SIGUSR1 to an interactive calcurse process. Add the same functionality to the daemon mode. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2016-01-26calcurse-caldav: Use calendar-multiget to obtain ETagLukas Fleischer
Some CalDAV servers do not support calendar-query with a UID filter. Use a calendar-multiget request to obtain the ETag of submitted objects instead. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2016-01-26calcurse-caldav: Fix property filterLukas Fleischer
Fix a TypeError that occurred during string formatting by putting parentheses around the multi-line string. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2016-01-25git-version-gen: Do not use `echo -n`Lukas Fleischer
`echo -n` is non-portable and does not work under some operating systems, such as OS X. Replace it with printf. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2016-01-25calcurse-caldav: Handle missing ETag gracefullyLukas Fleischer
This was partly fixed by 475c341 (calcurse-caldav: Fix late retrieval of ETag, 2016-01-25). However, the case where the server does not return ETag after creating a new item still wasn't handled properly. This patch hopefully addresses this and also makes sure that the ETag header is matched case-insensitively. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2016-01-25calcurse-caldav: Improve version checkLukas Fleischer
Make sure that at least a current Git build of calcurse is used. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2016-01-25calcurse-caldav: Print XML dump in debug mode onlyLukas Fleischer
In die_atnode(), we currently print a full dump of the XML node if verbose mode is enabled. Change this behavior such that a dump is only created in debug mode. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2016-01-25contrib/caldav/README: Minor improvementsLukas Fleischer
Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2016-01-25calcurse-caldav: Fix comment on certificate checksLukas Fleischer
Clarify that ssl._create_unverified_context() was added in Python 3.4.3. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2016-01-25calcurse-caldav: Support custom HTTP headersLukas Fleischer
Add support for specifying additional HTTP headers, such as the User-Agent, in the configuration file. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2016-01-25calcurse-caldav: Fix late retrieval of ETagLukas Fleischer
Fixes another regression introduced in badbd71 (calcurse-caldav: Add a debug mode, 2016-01-23). Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2016-01-25calcurse-caldav: Fix --init=keep-localLukas Fleischer
Fixes a regression introduced in badbd71 (calcurse-caldav: Add a debug mode, 2016-01-23). Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2016-01-25calcurse-caldav: Fix duplicate Content-Type prefixLukas Fleischer
Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2016-01-25calcurse-caldav: Fix MIME type in requestsLukas Fleischer
Specify application/xml in the Content-Type of requests except for PUT, where we actually submit calendar data. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2016-01-24calcurse-caldav: Show debug output before checking statusLukas Fleischer
Make sure we print the headers and the body of a HTTP response in debug mode, even if the HTTP status code indicates failure. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2016-01-24calcurse-caldav: Add XML declaration to requestsLukas Fleischer
Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2016-01-23calcurse-caldav: Prefix error messages with "error:"Lukas Fleischer
Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2016-01-23calcurse-caldav: Check response statusLukas Fleischer
Bail out if the HTTP status code of any of the replies starts with a digit other than 2. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2016-01-23calcurse-caldav: Include command/path in the debug outputLukas Fleischer
Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2016-01-23calcurse-caldav: Ensure path always starts/ends with a slashLukas Fleischer
Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2016-01-23calcurse-caldav: Add a debug modeLukas Fleischer
Dump all communication with the server to stdout if --debug is specified. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2016-01-23calcurse-caldav: Fix parsing of the Verbose config optionLukas Fleischer
Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2016-01-23calcurse-caldav: Make InsecureSSL optionalLukas Fleischer
2016-01-23calcurse-caldav: Add a workaround for Python <3.4Lukas Fleischer
Python versions prior to 3.4 do not check certificates by default and thus do not support ssl._create_unverified_context(). Add a workaround. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2016-01-22Add a script to synchronize with CalDAV serversLukas Fleischer
Introduce calcurse-caldav, a Python script that can be used to synchronize calcurse instances with CalDAV servers. The script was tested with an instance of the Radicale CalDAV server but it is still alpha software. Make backups before giving it a try! Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2016-01-18Make automatic selection of todo items smarterLukas Fleischer
* Automatically focus new todo items after adding them to the list. * Keep selection when an item is moved (e.g. by changing its priority). * Focus the next item in the list when an item is removed. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2016-01-18Improve ordering of todo itemsLukas Fleischer
* Show uncompleted items first. * Order uncompleted and completed items by priority. * Order items with the same priority alphabetically. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2016-01-18Hide "0." prefix of todo items with undefined priorityLukas Fleischer
In the todo panel, all uncompleted items are currently prefixed with their priorities. Drop this prefix from items with priority 0, i.e. undefined priority. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2016-01-18Save active view on the todo panelLukas Fleischer
Add a configuration option appearance.todoview and use it to automatically save the currently active todo panel view and restore it when restarting calcurse. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2016-01-18Support todo items with an undefined priorityLukas Fleischer
In addition to priorities 1-9, support todo items without any specific priority, internally represented by priority 0. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2016-01-18Use a separate field for the completed statusLukas Fleischer
Add a new field that indicates whether a todo item is completed or not instead of encoding completed todo items by negative priorities. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2016-01-18Add a "hide completed" view to the todo panelLukas Fleischer
Add a second view to the todo panel that hides all completed items. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
2016-01-16Fix segfault when running hooks in non-interactive modeLukas Fleischer
Do not run wins_prepare_external() and wins_unprepare_external() before and after running hooks in non-interactive mode. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>