200ok-ch/organice

View on GitHub
changelog.org

Summary

Maintainability
Test Coverage
# organice will not reflow if there's hard-wrapped content
# -*- eval: (auto-fill-mode 0) -*-

* General

All user visible changes to organice will be documented in this file.

When there are updates to the changelog, you will be notified and see a 'gift' icon appear on the top right corner.

* [2023-11-15 Wed]

** Added

- Ability to print all content (including below the fold)
  - PR: https://github.com/200ok-ch/organice/pull/969

* [2023-08-29 Tue]

** Added

- Capture template variable =%y= expanding to the raw year
  - PR: https://github.com/200ok-ch/organice/pull/964

** Fixed

- Using a capture template that is available from all Org files, but should always capture to just one file (not necessarily the currently open one).
  - PR: https://github.com/200ok-ch/organice/pull/965

* [2023-04-11 Tue]

** Changed

- Ticking a checkbox should only tick the checkbox, not enable the list item manipulating functions from =handleListItemSelect=.
  - Relevant discussion: https://github.com/200ok-ch/organice/discussions/950
  - PR: https://github.com/200ok-ch/organice/pull/951

* [2023-04-10 Mon]

** Fixed
- Color of unchecked checkbox in a list
  - PR: https://github.com/200ok-ch/organice/pull/949

* [2023-04-03 Mon]

** Added

- Implements list manipulation functions
  - PR: https://github.com/200ok-ch/organice/pull/945
  - Thank you [[https://github.com/kjmatsuda][kjmatsuda]] for the PRπŸ™
    
* [2023-01-28 Sat]

** Fixed

- On a header, don't cancel swipe due to vertical movements
  - PR: https://github.com/200ok-ch/organice/pull/938
  - Thank you [[https://github.com/neildavidforrest][neildavidforrest]] for the PRπŸ™

* [2023-01-09 Mon]

** Fixed

- Checking or unchecking a checkbox discards text with markup
  - PR: https://github.com/200ok-ch/organice/pull/928
  - Thank you [[https://github.com/saikiransathpadi][saikiransathpadi]] for the PRπŸ™

- Don’t replace all leading =*= in the description
  - Only when followed by a space, it would become a headline. Otherwise it’s markup for bold text.
  - PR: https://github.com/200ok-ch/organice/pull/931

* [2023-01-05 Thu]

** Fixed

- Deadline overlay UI improvements
  - PR: https://github.com/200ok-ch/organice/pull/925
  - Thank you [[https://github.com/dmorlitz][dmorlitz]] for the PRπŸ™

* [2023-01-04 Wed]

** Added

- Configuration option for a default Org file on startup.
  - By default, when you start organice, it will display your root
    file directory. If you prefer to display a specific Org file
    instead, you can select it in the [[https://organice.200ok.ch/settings][file settings]].

- Option to display DEADLINE values (near the clocking value) on each headline
  - The default for this option is false - so there is no change to the default behavior - until you enable this option via Settings.
  - PR: https://github.com/200ok-ch/organice/pull/891
  - Thank you [[https://github.com/dmorlitz][dmorlitz]] for the PRπŸ™

** Fixed

- Rotation of table editor icons to reflect their action.
  - PR: https://github.com/200ok-ch/organice/pull/890
  - Thank you [[https://github.com/dmorlitz][dmorlitz]] for the PRπŸ™

- Prevent the user from invalidating her Org file by entering a description that leads with =*=
  - If the user starts any line with a =*=, wanting to start a new list, it is immediately converted to a =-=.
  - PR: https://github.com/200ok-ch/organice/pull/920
  - Thank you [[https://github.com/saikiransathpadi][saikiransathpadi]] for the PRπŸ™
   

** Changed

- Disable auto-capitalization for search
  - Before:
    - When using the search or task list text inputs the Android/iOS keyboards automatically apply the shift key, meaning that the first character is capitalized.
    - 99% of the time this is not what we want because:
      - Having mixed case triggers a case sensitive search. This is quite confusing when I did not intentionally use capitalization, but it was added anyway. For example, I type "and", and it actually inputs and searches for "And", which yields no results.
      - Many of the keywords in the search grammar are lower case, e.g., =deadline:=, =desc:=.
  - Now: Auto-capitalization is turned off
  - PR: https://github.com/200ok-ch/organice/pull/914
  - Thank you [[https://github.com/neildavidforrest][neildavidforrest]] for the PRπŸ™
* [2022-12-03 Sat]
** Fixed

- Improve parser to read lines with multiple inline markup statements
  - PR: https://github.com/200ok-ch/organice/pull/910
  - Thank you [[https://github.com/lechten][lechten]] for the PRπŸ™

* [2022-12-02 Fri]
** Added
- Filtering by description
  - PR: https://github.com/200ok-ch/organice/pull/907
  - Thank you [[https://github.com/neildavidforrest][neildavidforrest]] for the PRπŸ™
* [2022-11-02 Wed]
** Fixed
- Use correct HTML anchor tag inside public.html <noscript>
  - PR: https://github.com/200ok-ch/organice/pull/902
  - Thank you [[https://github.com/josephmturner][josephmturner]] for the PRπŸ™
* [2022-07-08 Fri]
** Fixed
- When opening an Org file, show it from the top
  - PR: https://github.com/200ok-ch/organice/pull/878
- Changelog has a =Back= button in the HeaderBar
  - PR: https://github.com/200ok-ch/organice/pull/882
* [2022-07-06 Wed]
** Fixed
- Change log renders above previously opened view component
  - PR: https://github.com/200ok-ch/organice/pull/869
- Make HeaderBar sticky
  - PR: https://github.com/200ok-ch/organice/pull/870
* [2022-07-04 Mon]
** Added
- Setting to change textbox height in the description editor
  - PR: https://github.com/200ok-ch/organice/pull/875
  - Thank you [[https://github.com/dmorlitz][dmorlitz]] for the PRπŸ™
* [2022-06-30 Thu]
** Changed
- Upgrade Dropbox authentication flow: switch from OAuth to OAuth 2
  and PKCE
  - Rationale: Dropbox switched OAuth from long lived tokens to short
    lived tokens.
  - PR: https://github.com/200ok-ch/organice/pull/851
* [2022-06-29 Wed]
** Fixed
- Undo looks like it is persisting changes, but it persisted old
  state. Hence, reloading the file was bringing back the version of
  the file before undoing.
  - PR: https://github.com/200ok-ch/organice/pull/861
** Changed
- Simplify UX in task modal
  - "Change todo keyword set" is now an explicit button. Also, it's
    only shown when there is more than one todo keyword set configured
    for the current Org file.
  - Todo keywords can be selected and unselected on the same button.
    No trash can necessary to unselect a todo keyword..
  - PR: https://github.com/200ok-ch/organice/pull/862
** Added
- Ability to delete header from task modal.
  - PR: https://github.com/200ok-ch/organice/pull/862
* [2022-06-22 Wed]
** Added
- Ability to handle empty files
  - This takes care of a big UX problem for users who solely rely on organice. So far, we've shown a parser error if the file is empty *or* if the file did not contain a headline.
  - Now, if the user opens a file that is empty, or has no headlines, she will see the call to action to create a new headline.
  - PR: https://github.com/200ok-ch/organice/pull/853
* [2022-06-16 Thu]
** Added
- Capture template variables =%r= and =%R= expanding to raw timestamps
  - PR: https://github.com/200ok-ch/organice/pull/838
  - Thank you [[https://github.com/dmorlitz][dmorlitz]] for the PRπŸ™

* [2022-06-14 Tue]
** Added
- Create new file from file browser
  - PR: https://github.com/200ok-ch/organice/pull/818
* [2022-06-13 Mon]
** Added

- Specify default webDAV URL in .env file
  - PR: https://github.com/200ok-ch/organice/pull/829
  - Thank you [[https://github.com/dmorlitz][dmorlitz]] for the PRπŸ™
- Docker image recognizes env vars
  - PR: https://github.com/200ok-ch/organice/pull/835
  - see [[https://organice.200ok.ch/documentation.html#docker][doc]] for more information

* [2022-06-03 Fri]
** Removed
- Google Drive support. This backend had a few issues:
  1. We waited [[https://github.com/200ok-ch/organice/issues/127][for years for Google to put the Google Drive API into
     production mode]]. Without that, only very few people were actually
     allowed by Google to use organice with Google Drive. A lot of
     time and effort went into this from quite a few of people. Even
     Google employees tried to expedite from within Google, but to no
     avail. The maintainers of organice gave up on this issue since
     [[https://github.com/200ok-ch/organice/issues/127#issuecomment-655339244][July 2020 and announced]] that the support for Google Drive will be
     removed unless someone steps up and takes over this task. Nobody
     did in the two years since, so we're removing it.
  2. [[https://github.com/200ok-ch/organice/issues/109][Replace integration of Google Drive through <script> include in index.html with NPM module]]
  3. [[https://github.com/200ok-ch/organice/issues/107][Sign in to Google Drive from new versions of Chrome dysfunctional]]

* [2022-06-01 Wed]
** Added
   - Proper Landing Page
     - PR: https://github.com/200ok-ch/organice/pull/809
* [2022-02-23 Wed]
** Fixed
   - [[https://organice.200ok.ch/documentation.html#in_buffer_settings][In-buffer settings]] can be in lowercase or uppercase. Before, they
     had to be in uppercase.
     - PR: https://github.com/200ok-ch/organice/pull/776
   - Manifest for PWAs
     - Before, the 'install' button did not appear for Android devices
       and both Chrome and Firefox showed warnings for the manifest.
     - Issue: https://github.com/200ok-ch/organice/issues/779
     - PR: https://github.com/200ok-ch/organice/pull/781
     - Thank you [[https://github.com/tbruckmaier][tbruckmaier]] for the PRπŸ™

* [2021-12-09 Thu]
** Fixed
   - Title editor text loss.
     - Since the introduction of the semantic Title editor on [2021-11-22 Mon], if you modified the text of a title and then click a todo, the todo keyword got saved which triggers a rerender before the text got saved. Therefore the text is reset to the state it was in when the title editor was opened.
     - This is fixed, now.
* [2021-12-05 Sun]
** Added
   - *EPIC* Bookmark functionality for search
     - After entering a search string, you can bookmark it using the ⭐ button.
     - Bookmarked search strings populate the suggestions if no search string is entered into the input field.
     - Bookmarks are saved by context, so there are separate bookmarks for search, task-list, and refile.
     - There are at most ten bookmarks for a context. Newly saved bookmarks are inserted at the top of the list. If the list gets too long, the last search strings are dropped. Duplicate bookmarks are dropped too. The list of bookmarks is ordered by last used.
     - Bookmarks are unaware of file context. Therefore, you always have the same bookmarks.
     - Relevant PR: https://github.com/200ok-ch/organice/pull/758
* [2021-11-22 Mon]
** Changed
   - Title and Description fields are not edited as raw text by default.
     - Instead, a semantic editor comes up when editing them.
     - To edit raw values, click the 'edit' icon, again.
   - Search and Task List open in one modal with tabs.
     - Modal opens to "Search" by default, but remembers what was opened last.
   - If there are open clocks, a third modal "Clock List" is added
     that looks like "Search" for =clock:now= without the search input
     field.
   - Notes can be multi-line and are properly indented.
* [2021-11-09 Tue]
** Added
   - Setting to respect OS light/dark-mode preferences
     - organice already queried the OS for light/dark-mode preference. But changing the setting in organice would override the OS preference.
     - Relevant PR: https://github.com/200ok-ch/organice/pull/749
** Fixed
   - Fix repeater adjusting time of date when using =.+=
     - When repeaterUnit is not "h", hour and minutes are never touched.
     - When repeaterUnit is "h", hour and minutes are set to n hour(s) from now (as it was already implemented before this fix).
   - Relevant PR: https://github.com/200ok-ch/organice/pull/746
* [2021-11-03 Wed]
** Fixed
   - Fix GitLab OAuth token refresh
     - PR: https://github.com/200ok-ch/organice/pull/740
     - Thank you [[https://github.com/chasecaleb][chasecaleb]] for the PRπŸ™
* [2021-11-01 Mon]
** Added
   - *EPIC* Add GitLab as a sync back-end
     - PR: https://github.com/200ok-ch/organice/pull/734
     - Thank you [[https://github.com/chasecaleb][chasecaleb]] for the PRπŸ™
* [2021-10-29 Fri]
** Fixed
   - Loading settings when using WebDAV as synchronization back-end
     - PR: https://github.com/200ok-ch/organice/pull/727
     - Thank you [[https://github.com/mcordell][mcordell]] for the PRπŸ™

* [2021-05-16 Sun]
** Added
   - Parse and preserve habit timestamp ranges
     - A timestamp may have minimum and maximum ranges specified by using the syntax =.+2d/3d=, which says that you want to do the task at least every three days, but at most every two days.
     - Upstream documentation:
       https://orgmode.org/manual/Tracking-your-habits.html
     - Relevant PR: https://github.com/200ok-ch/organice/pull/674
     - Thank you [[https://github.com/tomonacci][tomonacci]] for the PRπŸ™

* [2021-05-13 Thu]

** Changed
   - Agenda starts on Monday by default (as it does in Emacs Org mode)

** Added
   - Ability to set the "Start of week for weekly agenda" in the Settings
     - Akin to the Emacs org mode variable =org-agenda-start-on-weekday=
   - Relevant PRs:
     - https://github.com/200ok-ch/organice/pull/676
       - Thank you [[https://github.com/tomonacci][tomonacci]] for the PRπŸ™
     - https://github.com/200ok-ch/organice/pull/677

* [2020-12-29 Tue]
** Added
   - *EPIC*: Multiple file support
     - Agenda, Search, Task List, Refile and Capture Templates have the ability to work on multiple files.
     - You can adjust the behavior for these on a file per file basis by creating "file settings" in the settings menu.

   - *EPIC*: Offline file support
     - Every file opened in organice will automatically be cached on your device.
     - When visiting the file, again, it will immediately be loaded from the local storage and then loaded from the remote back-end.
     - That makes loading and switching between files instant _and_ gives you the ability to work on multiple files when being offline.

   - Relevant PRs:
     - https://github.com/200ok-ch/organice/pull/550
     - https://github.com/200ok-ch/organice/pull/560
     - https://github.com/200ok-ch/organice/pull/565
     - https://github.com/200ok-ch/organice/pull/574
     - https://github.com/200ok-ch/organice/pull/575
     - https://github.com/200ok-ch/organice/pull/570
     - https://github.com/200ok-ch/organice/pull/607

* [2020-11-21 Sat]

** Added
   - When going to the Agenda view, the selected tab is persisted - meaning it will be pre-selected when you go to the Agenda next time.
     - Relevant PR: https://github.com/200ok-ch/organice/pull/562

** Fixed
   - Having an active timestamp with a repeater was broken.
     - When the TODO state changes for a header that has a repeater (either as SCHEDULED, DEADLINE or active timestamp), a log entry is written and the timestamp is updated.
     - Relevant PR: https://github.com/200ok-ch/organice/pull/568
   - Removing an active timestamp was broken.
     - Relevant PR: https://github.com/200ok-ch/organice/pull/568

* [2020-11-20 Fri]
** Fixed
   - organice understands =:PROPERTIES:= drawers and smartly parses the values in case one of the values is a timestamp.
     - However, parsing all the values and saving the parsed result in any case will lead to wrong results. Most values of properties are just plain text and non-interactive things in Org mode.
     - For example, a value like =something_with_underscores= would have been treated as 'underlined text' which doesn't make sense for a property drawer. When saving the value back, organice would have squashed the underlines.
     - Now, the values are used and preserved as they are. Timestamps still work, of course.
     - Relevant PR: https://github.com/200ok-ch/organice/pull/578
* [2020-11-15 Sun]
** Fixed
   - When repeating a task, an active date timestamp was logged instead of an inactive datetime timestamp.

* [2020-11-14 Sat]
** Fixed
   - The task list was not scrollable on Android.
      - Thank you [[https://github.com/tarnung][tarnung]] for your [[https://github.com/200ok-ch/organice/pull/561][PR]] πŸ™

* [2020-11-08 Sun]
** Changed
   - Safeguard against selecting text by accident.
      - Before this change, it was possible to select text when doing a 'swipe'.
      - Now, selecting/copying text is only possible in 'edit mode', effectively safeguarding against accidentally selecting text.
      - Thank you [[https://github.com/tarnung][tarnung]] for your [[https://github.com/200ok-ch/organice/pull/557][PR]] πŸ™


* [2020-11-06 Fri]
** Added
   - Additional themes. You now can choose between:
     - Solarized
     - One
     - Gruvbox
     - Smyck
     - Code
   - All of these are themes work in light and dark mode!
     - Thank you [[https://github.com/tarnung][tarnung]] for your [[https://github.com/200ok-ch/organice/pull/540][PR]] πŸ™

* [2020-11-01 Sun]

** Changed
   - We have enabled some default settings by default, because they are reasonable for a new user:
     - =shouldStoreSettingsInSyncBackend=, because it enables using organice on multiple clients.
     - =shouldLiveSync=, because it reduces the chance to have a conflict in the open Org file.
     - =shouldSyncOnBecomingVisibile=, because it reduces the chance to have a conflict in the open Org file.
   - =bulletStyle= is set to "Fancy", because it looks more visually pleasing than an asterisk (*) and hence makes organice look better on a first test run.
   - If you personally do not want them enabled, you can disable them separately in the [[/settings][settings]] any time.

** Fixed
   - organice has various settings that the user can configure. Before manual configuration, there organice loads sane defaults. Loading and persisting some of these defaults was buggy before.
     - Loading and persisting of defaults works now.
     - Previously saved wrong values are removed from =localStorage= to reduce future bug potential.
     - Changing this is - strictly speaking - not visible to the end-user, so it wouldn't ordinarily show up in this changelog. However, since it makes changes to the already saved settings (in cleaning up old faulty values), it theoretically could introduce a bug in the settings. Hence, the change is added to the changelog.
     - Related PRs:
       - https://github.com/200ok-ch/organice/pull/552
       - https://github.com/200ok-ch/organice/pull/553
       - https://github.com/200ok-ch/organice/pull/554
* [2020-10-25 Sun]
** Changed
   - The 'focus header' feature is renamed.
     - /Narrowing/ means focusing on this header, making the rest temporarily inaccessible.
     - Canceling the narrowing, which makes all headers once again accessible, is called /widening/.
* [2020-10-23 Fri]
** Added
   - Add 'dark mode' next to 'light mode' as a setting.
     - Both themes are based on the popular [[https://ethanschoonover.com/solarized/][Solarized]] color palette.
     - Thank you [[https://github.com/tarnung][tarnung]] for your [[https://github.com/200ok-ch/organice/pull/527][PR]] πŸ™
   - Add 'recursive clock times in search'.
     - The =clock:= search term now includes headers that have time logged on their children.
     - Thank you [[https://github.com/tarnung][tarnung]] for your [[https://github.com/200ok-ch/organice/pull/524][PR]] πŸ™

* [2020-10-20 Tue]
** Added
   - Add 'time range' queries to search for planning items (SCHEDULED and DEADLINE), plain active timestamps or clocked work time.
     - Thank you [[https://github.com/tarnung][tarnung]] for your [[https://github.com/200ok-ch/organice/pull/505][PR]] πŸ™
* [2020-10-19 Mon]
** Added
   - When a header is focused, and the user uses the 'search' or 'task list' feature, then the searched header list is automatically narrowed to only subheaders of the originally focused header.
     - Thank you [[https://github.com/tarnung][tarnung]] for your [[https://github.com/200ok-ch/organice/pull/517][PR]] πŸ™
* [2020-10-10 Sat]
** Added
   - Display time summaries for clock entries in each subtree
     - Thank you [[https://github.com/tarnung][tarnung]] for your [[https://github.com/200ok-ch/organice/pull/497][PR]] πŸ™

** Changed

   - Improve header stickiness
     - The header bar was not always sticky for longer documents and the therefore some functionality was hard to reach (the user had to scroll to the top to reach it).
     - Thank you [[https://github.com/tarnung][tarnung]] for your [[https://github.com/200ok-ch/organice/pull/499][PR]] πŸ™

* [2020-10-07 Wed]
** Added

   - Added Documentation on [[https://orgmode.org/manual/Repeated-tasks.html][repeaters]] and [[https://orgmode.org/manual/Deadlines-and-scheduling.html#Deadlines-and-scheduling][delays]] to =sample.org= and to mouseovers for the relevant buttons.

* [2020-09-20 Sun]
** Added

   - Recognize US and Swiss phone numbers and make them clickable
   - Next to 'canonical' phone numbers like +49123456789, also recognize:
     - US phone numbers:
       - 123-456-7890
       - (123) 456-7890
       - 123 456 7890
       - 123.456.7890
       - +91 (123) 456-7890
     - Swiss phone numbers:
       - 0783268674
       - 078 326 86 74
       - 041783268675
       - 0041783268674
       - +41783268676
       - +41783268677

* [2020-09-07 Mon]
** Added
   - Added the capability to chose the start screen when installing organice to the homescreen.
     - More information on how to install organice like this, see https://organice.200ok.ch/documentation.html#installation
* [2020-09-05 Sat]

** Fixed
  - Search and Todo List modals could be moved off screen on iOS since [2020-08-30 Sun]. The fix is to disable =autoFocus= on iOS. The rationale for that documented here: https://github.com/200ok-ch/organice/pull/462

* [2020-08-30 Sun]

** Added
   - Add note to header (=M-x org-add-note=)
     - This adds a button for taking notes to tasks (org-add-note). They will be prepended to the header contents after :PROPERTIES: and before the :LOGBOOK:
   - Auto-focus filter input fields (search and task-list)

* [2020-08-29 Sat]
** Fixed
   - If a user folds a header, all its subheaders should collapse as well, so that when the user reopens it, they stay closed.
     - The previous behavior is buggy in a way that it keeps the subheaders open as they were, restoring their openness when the header is unfolded.
     - The previous behavior is useful, though. So this change introduces a user setting to toggle the behaviour.
   - Thank you [[https://github.com/necto][necto]] for your [[https://github.com/200ok-ch/organice/pull/440][PR]] πŸ™

* [2020-08-25 Tue]
** Fixed
   - Updating table cell values and removing table rows or colums was
     not undoable
     - Thank you [[https://github.com/necto][necto]] for your [[https://github.com/200ok-ch/organice/pull/432][PR]] πŸ™

* [2020-07-28 Tue]
** Fixed
   1. Sync stuck when working in the background
     - When the user put organice into the background during a sync and comes back, organice was stuck in sync mode, but doesn't actually sync anymore. This means that any new changes to the Org file will not be persisted. This is due to mobile browsers cutting off most resources to browser apps in the background, so organice cannot guarantee that a sync happens properly in the background.
     - It's not trivial to find out if the job is stuck
       - Time is not a good indicator as bigger files on slower connections will always take longer.
       - There's no JS API to reliably find out if the browser just got back from the background or is put into the foreground. The [[https://developer.mozilla.org/en-US/docs/Web/API/Page_Visibility_API][=visibilitychange= API]] just triggers for both these events.
     - Hence, the implementation is generic in nature: Whenever the user hits the 'sync' button, an actual 'sync' is forced - even if organice thinks there's currently a sync in progress or that it should be debounced. That makes sense, because manual actions by the user should always be obeyed.
     - Closes issue https://github.com/200ok-ch/organice/issues/252
   - 2. On iOS >13.1, when organice is used in SPA mode (as a bookmark on the homescreen), and the user navigates away from the original bookmark, a huge URL Bar would show up with a "Done" button. This is a regression in how iOS handles full-screen SPAs. These are the relevant APIs:
     - https://developer.apple.com/library/archive/documentation/AppleApplications/Reference/SafariHTMLRef/Articles/MetaTags.html
     - https://developer.mozilla.org/en-US/docs/Web/Manifest/display
   - 3. Feature detection for =crypto.subtle= module
     - This is used for change detection in the changelog. The module is only available in secure contexts. Hence, when used locally and on a private IP range, depending on the browser, it might not be available.

* [2020-07-08 Wed]
** Added
   - Allow template-variables in the header-path in a capture template
     - Thank you [[https://github.com/jayesh-bhoot][jayesh-bhoot]] for your [[https://github.com/200ok-ch/organice/pull/387/][PR]] πŸ™
* [2020-06-14 Sun]
** Added
   - Allow capture templates to insert at beginning or end of file
     - Thank you [[https://github.com/aspiers][aspiers]] for your [[https://github.com/200ok-ch/organice/pull/324][PR]] πŸ™
* [2020-06-05 Fri]
** Fixed
   - =file:= links are sanity checked before opened
     - =file:= links opened in iOS from the PWA view will not open Mobile Safari
     - Open issue: Some links will be opened as directories when the
       link is not really going towards a directory.
     - Thank you [[https://github.com/aspiers][aspiers]] for your [[https://github.com/200ok-ch/organice/pull/311][PR]] πŸ™

* [2020-06-03 Wed]
** Added
   - =TODO= keyword sets can now be anywhere in the file
     - Thank you [[https://github.com/aspiers][aspiers]] for your [[https://github.com/200ok-ch/organice/pull/310][PR]] πŸ™
* [2020-05-30 Sat]

** Added
   - Make local =file:...= links navigate to the relevant file
     - Thank you [[https://github.com/aspiers][aspiers]] for your [[https://github.com/200ok-ch/organice/pull/307][PR]] πŸ™

* [2020-05-06 Wed]

** Fixed
   - Planning items now respect the new hard-indent setting.

* [2020-05-05 Tue]

** Fixed
   - Append new tags correctly to title.
     - If a header didn't have tags before, the first tags were
       erroneously appended without a space.

* [2020-04-06 Mon]

** Added
   - Support org-adapt-indentation
     - By default, the metadata body (including deadlines and drawers) of an exported org heading is indented according to its level. If instead you prefer to keep your body text flush-left, i.e.{' '}
     - Thank you [[https://github.com/cpbotha][cpbotha]] for your [[https://github.com/200ok-ch/organice/pull/272][PR]] πŸ™

* [2020-04-05 Sun]
** Added
   - Support for org-log-into-drawer TODO state logging
     - Thank you [[https://github.com/cpbotha][cpbotha]] for your [[https://github.com/200ok-ch/organice/pull/271][PR]] πŸ™
** Fixed
   - Settings screen has proper title and "back" button

* [2020-03-27 Fri]
** Fixed
   - Help texts for widen/narrow were reversed
     - Thank you [[https://github.com/obar][@obar]] for the [[https://github.com/200ok-ch/organice/pull/270][PR]] πŸ™

* [2020-02-29 Sat]

** Fixed
   - As a user, when I visit Search, Task List or Agenda whilst having
     a dirty file, I'm not getting a pop up a dialogue notifying me
     about unpushed changes

* [2020-02-17 Mon]

** Added
   - *Headers with active timestamps in the header or description appear in agenda*

** Fixed
   - 'Insert timestamp' for headers and descriptions

* [2020-02-09 Sun]

** Added
   - Comprehensive documentation: https://organice.200ok.ch/documentation.html
     - You can find the link from the 'settings' screen or on top of
       the readme.

* [2020-01-27 Mon]

** Fixed
   - When editing a =:LOGBOOK:= drawer within a headers description,
     the relevant logbook entries are updated (which might entail them
     being deleted).

* [2020-01-20 Mon]

** Fixed
   - When refiling a header, don't show subheaders in the refile drawer
   - When doing a 'Search' or 'Refile', the action is reflected in the
     name of the opening drawer.
   - In the agenda view, fix relative time distance for future dates
     - Thank you [[https://github.com/schoettl][@schoettl]] for the [[https://github.com/200ok-ch/organice/pull/240][PR]] πŸ™

* [2020-01-15 Wed]

** Fixed
   - Put Floating Action Button "Move a header" into the middle of the
     screen, so that it has enough space to render all arrows on
     mobile devices.

* [2020-01-14 Tue]

** Added
   - Notify on changes for changelog
     - This is done with a similar UX than other productivity apps
       (like Slack) do it. The user will see a 'gift' icon whenever
       there's a change to the changelog she has not seen, yet.

* [2020-01-13 Mon]

** Added
   - "Show Org filename in Header" is configurable in settings and
     off by default
     - Thank you [[https://github.com/schoettl][@schoettl]] for the [[https://github.com/200ok-ch/organice/pull/229][PR]] πŸ™

** Fixed
   - Show error message when using a capture template with a badly
     configured header path

* [2020-01-12 Sun]

** Added
   - Make HeaderBar sticky
     - Making undo/redo, file browser and help always available
       (before it was required to scroll all the way to the top)
   - Deselect headline by clicking into the title (or empty space) in
     the HeaderBar
   - Show Org filename in Header

** Fixed
   - *Major synchronization improvements*
     1. After undo/redo, synchronize Org file
     2. Debounce Sync
        1. When a user changes things quickly (which happens easily
           when having 'live sync' enabled and using undo/redo for
           example), multiple syncs ran in parallel. The back-ends
           will either get confused or fail with errors (429 too many
           write operations). In any case, likely the last written
           state would not have been the state of the Org file in
           organice.
     3. Safeguard against concurrent sync requests to the back-end
     4. In case of synchronization error, show the error to the user
        and retry synchronization
     5. Don't actually sync a whole Org file for an empty header.
        When the user adds some data and triggers
        UPDATE_HEADER_TITLE, then it makes sense to save it.

* [2020-01-11 Sat]

** Added
   - All HeaderActionItems are undoable and redoable

** Fixed
   - Parsing planning items followed by a checkbox
     - Thank you [[https://github.com/schoettl][@schoettl]] for the [[https://github.com/200ok-ch/organice/pull/222/files][PR]] πŸ™
* [2020-01-07 Tue]

** Added
   - *Refile*
     - When reviewing the captured data, you may want to refile or to
       copy some of the entries into a different list, for example
       into a project.
   - Add button in HeaderActionBar to open property editor
     - Thank you [[https://github.com/schoettl][@schoettl]] for the [[https://github.com/200ok-ch/organice/pull/195][PR]] πŸ™

** Changed
   - All HeaderActionDrawer actions have icons. The icons are
     documented in sample.org and have a mouseover title.

* [2020-01-04 Sat]

** Added
   - Ability to search headlines
     - It has the same syntax as the search field in the Task List
       feature

** Fixed
   - Sort order in Task List
     - Tasks were only ordered by their planning item dates. This
       implied that tasks that were long DONE would be shown first.
     - Now, tasks in the Task list are sorted by state and then date.
     - Thank you [[https://github.com/schoettl][@schoettl]] for the [[https://github.com/200ok-ch/organice/pull/207][PR]] πŸ™


* [2020-01-02 Thu]

** Added
   - Place cursor after the TODO keyword when creating a new header
     - Thank you [[https://github.com/schoettl][@schoettl]] for the [[https://github.com/200ok-ch/organice/pull/193][PR]] πŸ™
   - Highlight verbatim markup

** Changes
   - Highlight cookies and cookie percentages according to Solarized
     color scheme

** Fixed
   - Don't update search results when using an invalid search filter
   - On mobile: Styling of Search / Task List drawer when searching all
     headlines
   - On mobile: Ability to scroll Search / Task List
   - Teach #+TODO parser to understand (..) suffix
     - Thank you [[https://github.com/aspiers][aspiers]] for your [[https://github.com/200ok-ch/organice/pull/202][PR]] πŸ™

* [2020-01-01 Wed]

** Added
   - Support single- and double-quoted strings in the search filter
     - Thank you [[https://github.com/schoettl][@schoettl]] for the [[https://github.com/200ok-ch/organice/pull/176][PR]] πŸ™
   - Trim whitespace for entered or updated headlines
     - Thank you [[https://github.com/schoettl][@schoettl]] for the [[https://github.com/200ok-ch/organice/pull/177][PR]] πŸ™

** Fixed
   - Capture templates in iOS 13.3 are positioned properly
     - iOS 13 introduced a styling regression when setting focus
       without user interaction. iOS 13.3 reverts to the way other
       browsers do it.

** Changed
   - Revert "Move HeaderActionDrawer before headline"
     - As per #188, the changes introduced in #100 didn't fare well
       with the community. Hence, as a first step to improve UX,
       we're reverting to the previous state.

* [2019-12-31 Tue]

** Added
   - *Searching of headlines/todos with a composable query language*
     - Thank you [[https://github.com/schoettl][@schoettl]] for the [[https://github.com/200ok-ch/organice/pull/154][PR]] πŸ™
   - Routing for Settings (/settings) and Sample (/sample)
   - Routing for Agenda and TaskList

** Changes
   - The action for capture templates now uses a more idiomatic
     'plus' icon instead of a 'list' icon

* [2019-12-28 Sat]

** Added
   - Proper coloring of DONE todoKeywords from custom todo sequences
     - Thank you [[https://github.com/schoettl][schoettl]] for your [[https://github.com/200ok-ch/organice/pull/165][PR]]!
   - Place TODO keyword of previous header in the new header
     - Thank you [[https://github.com/schoettl][schoettl]] for your [[https://github.com/200ok-ch/organice/pull/164][PR]]!

** Changed
   - Refactor current Org parser and regex
     - Thank you [[https://github.com/schoettl][schoettl]] for your [[https://github.com/200ok-ch/organice/pull/161][PR]]!

* [2019-12-26 Thu]

** Added

   - "Share" button for headlines (sharing via email)
     - Thank you [[https://github.com/schoettl][schoettl]] for your [[https://github.com/200ok-ch/organice/pull/145][PR]]!
   - Automatically render links for URLs with www prefix, but without
     protocol
     - Thank you [[https://github.com/schoettl][schoettl]] for your [[https://github.com/200ok-ch/organice/pull/159][PR]]!

* [2019-12-25 Wed]

** Added

   - Suggestion list for inputs in property editor
     - To minimize typing and typos, add smart completion for property
       names and values in the PropertyListEditorModal.
     - Thank you [[https://github.com/schoettl][schoettl]] for your [[https://github.com/200ok-ch/organice/pull/144][PR]]!

* [2019-12-24 Tue]
** Added

   - *Automatically render links for URLs, e-mail addresses and phone
     numbers*
     - Thank you [[https://github.com/schoettl][schoettl]] for your [[https://github.com/200ok-ch/organice/pull/147][PR]]!

   - Suggestion list for inputs in tag editor
     - Thank you [[https://github.com/schoettl][schoettl]] for your [[https://github.com/200ok-ch/organice/pull/149][PR]]!

* [2019-12-17 Tue]
** Changed
   - Improve webdav url input
     - Thank you [[https://github.com/dotcs][dotcs]] for your [[https://github.com/200ok-ch/organice/pull/139][PR]]!
** Fixed
   - Make "privacy policy" sticky to the bottom of the landing page
     - Thank you [[https://github.com/dotcs][dotcs]] for your [[https://github.com/200ok-ch/organice/pull/140][PR]]!

* [2019-12-15 Sun]

** Changed
   - UX: Move Org header actions before selected headline
   - Thank you [[https://github.com/dotcs][dotcs]] for your [[https://github.com/200ok-ch/organice/pull/136][PR]]!

** Fixed
   - Android PWA implementation was broken (issue [[https://github.com/200ok-ch/organice/issues/134][#134]])
     - It required two more icon sizes
   - Thank you [[https://github.com/dotcs][dotcs]] for your [[https://github.com/200ok-ch/organice/pull/135][PR]]!

* [2019-12-10 Tue]

** Added

   - *Docker Support*
   - The CI/CD workflow now also builds a Docker container which is
     then published to
     https://hub.docker.com/repository/docker/twohundredok/organice
   - Thank you [[https://github.com/dotcs][dotcs]] for your [[https://github.com/200ok-ch/organice/pull/133][PR]]!

* [2019-12-08 Sun]

** Added

   - As a user, when I'm on a headline with a planning item (schedule
     or deadline), I want to be able to remove it.

* [2019-11-29 Fri]

** Fixed

   - Clicking the Timestamp in a TODO within the agenda toggles from
     the date to a human readable timespan

* [2019-11-27 Wed]

** Added

   - Instructions on configuring Nextcloud+haproxy to allow WebDAV
   - Documentation on how to share from Nextcloud using WebDAV
   - Thank you [[https://github.com/runejuhl][runejuhl]] for your [[https://github.com/200ok-ch/organice/pull/122][PR]]!

* [2019-11-25 Mon]

** Added
   - Honor the 'nologrepeat' option
     - It can be set via =#+STARTUP:= or as a property
     - Thank you [[https://github.com/jamesnvc][@jamesnvc]] for your [[https://github.com/200ok-ch/organice/pull/119][PR]]!

* [2019-11-22 Fri]

** Fixed

   - Handle non-clock entries in =:LOGBOOK:= drawers
     - Fixes [[https://github.com/200ok-ch/organice/issues/111][issue #111]], [[https://github.com/200ok-ch/organice/issues/108][issue #108]] and [[https://github.com/200ok-ch/organice/issues/110][issue #110]]
     - Thank you [[https://github.com/jamesnvc][@jamesnvc]] for your [[https://github.com/200ok-ch/organice/pull/112][PR]]!

* [2019-11-21 Thu]

** Fixed

   - Safeguard against potential Dropbox SDK Bug
     - More information in [[https://github.com/200ok-ch/organice/issues/108][issue #108]]

* [2019-11-19 Tue]

** Changed

   - Don't put newlines after headers with no content, add newline at EOF
     - Thank you [[https://github.com/jamesnvc][@jamesnvc]] for your [[https://github.com/200ok-ch/organice/pull/106][PR]]!

* [2019-11-14 Thu]

** Added

   - *Clocking work time*
     - Org mode allows you to clock the time you spend on specific
       tasks in a project:
       https://orgmode.org/manual/Clocking-Work-Time.html#Clocking-Work-Time
     - organice is compatible with logbook clocking, now
     - You can 'clock in' and 'clock out' to a header
     - Thank you [[https://github.com/jamesnvc][@jamesnvc]] for your [[https://github.com/200ok-ch/organice/pull/103][PR]]!

* [2019-10-31 Thu]

** Fixed
   - Keep all in-file settings and content lines from top of file
     - Thank you [[https://github.com/andersjohansson][@andersjohansson]] for your [[https://github.com/200ok-ch/organice/pull/90][PR]]!

* [2019-10-29 Tue]

** Added
   - Show login options as clickable links with cursor pointer
   - Also improve wording with regards to login options
     - Thank you [[https://github.com/rodrigomaia17][@rodrigomaia17]] for your [[https://github.com/200ok-ch/organice/pull/88][PR]]!


* [2019-10-26 Sat]

** Added
   - *WebDAV as a sync backend!*
     - Thank you [[https://github.com/TristanCacqueray][@TristanCacqueray]] for your [[https://github.com/200ok-ch/organice/pull/82][PR]]!

   - As a user, when I swipe a header, I want the icon to contrast
     the background, so that better see the action taken
     - Thank you [[https://github.com/ragone][@ragone]] for your [[https://github.com/200ok-ch/organice/pull/78][PR]]!

   - As a user, when I hover a clickable element, I want my cursor to
   change, so that I can see that it is clickable.
     - Thank you [[https://github.com/ragone][@ragone]] for your [[https://github.com/200ok-ch/organice/pull/79][PR]]!

** Fixed
   - Do not throw an error when clearing a planning item
     - Thank you [[https://github.com/ragone][@ragone]] for your [[https://github.com/200ok-ch/organice/pull/81][PR]]!

* [2019-10-02 Wed]

** Fixed

- On iOS 13, fix the regression which made capture input fields hide
  under the keyboard
  - More information and screenshots in the ticket: https://github.com/200ok-ch/organice/issues/46
  - Turns out this issue is non trivial to fix and requires specific
    rules for every size of iPhone. I tested against the Xs and 6s. If
    you have a different form factor and the capture template input
    screen looks off to you, please send me a screenshot of what it
    looks like and I'll add the dimensions for your form factor right
    away!

* [2019-09-28 Sat]

** Added

- Implemented a =redo= Button next to the =undo= button

* [2019-09-21 Sat]

** Fixed

- Parser bug which would interpret *bold* statements in the beginning
  of a line as a header.
- Parser bug which would delete newlines between headers and items

** Changed

- @MTrost [[https://github.com/200ok-ch/organice/pull/45][introduced]] a new testing library called [[https://testing-library.com/docs/intro][React Testing
  Library]] which greatly simplified writing interaction tests.

* [2019-09-19 Thu]

** Changed

- Constraining to a max width and centering for tablets and bigger

* [2019-09-15 Sun]

** Fixed

- The 'Sync on application becoming visible' feature works on iOS and
  Safari
  - If enabled, the current org file is pulled from the sync backend
    when the browser tab becomes visible. This prevents you from
    having a stale file before starting to make changes to it.

* [2019-09-08 Sun]
** Added

- Documented how to use organice from a bookmarklet using the capture
  template feature

* [2019-09-06 Fri]
** Fixed

- Removed Google Analytics tracking, because it has no place here

* [2019-09-02 Mon]

** Added

- Configure Google Drive for the free community version of organice at
  https://organice.200ok.ch
- Documented SPA routing for self-hosting
- Wrote and publicized a Privacy Policy

* [2019-08-27 Tue]

** Changed

- Color scheme has been ported to the popular [[https://ethanschoonover.com/solarized/][Solarized]] (light mode)
  - Whilst doing so, CSS variables have been introduced, so that
    there's not a whole lot of repetition of magic rgb values going on
  - The logo has been adapted, too
- The landing page and settings screens have been de-cluttered

* [2019-08-26 Mon]

** Added

- Continuous deployment: Merging to =master= triggers a build on CI
  and when successful, it triggers a deploy to https://org.200ok.ch
- Add a new temporaryβ„’ logo: [[file:public/organice.png][organice.png]]

* [2019-08-25 Sun]

** Added

- Since we want organice to be a community driven project, we have added:
  - [[file:CODE_OF_CONDUCT.org][Code of conduct]]
  - [[file:CONTRIBUTING.org][Contributing guidelines]]

- Add [[https://circleci.com/][CircleCI]] to run the tests on every commit
  - They are also integrated as a check for PRs with the benefit that
    contributors get automated feedback by running the regression test
    suite.

- Add [[https://greenkeeper.io][Greenkeeper]] for automated dependency management

- Add [[https://codeclimate.com][Codeclimate]] for automated maintainability analysis

** Changed

- Upgraded to Node 12.9

* [2019-08-12 Mon]

** Changed

- The default keybindings (when used from a desktop browser) are now
  more in line with the defaults in Emacs itself

** Fixed

- The keybindings work on non-macOS operating systems

* [2019-08-10 Sat]

** Added

- As a user, when in a directory listing, I want the folders and files
  to be sorted alphabetically. Furthermore, I only want to see files
  that organice can open (that is org and org archive files).
- Note: This is only implemented for the Dropbox back-end at this time.

** Changed

- Filters files from a directory listing down to org files.
- Sorts folders atop of files.
- Sorts both folders and files alphabetically.


* [2019-08-05 Mon]

** Added

- When the browser tab becomes visible, pull the latest version of the
  Org file
  - This is rather helpful when the app is used in production. Since
    the production build supports loading the complete application and
    org-file from cache, it can be open for a very long time. When the
    org-file hasn't been pulled in a "very long time"β„’, then chances
    are non-nil that the file has been changed by another client in
    the meantime.
  - Without this change, when the user opens the app after a while,
    makes changes to the file and wants to sync to the back-end, there
    might be the message "Since you last pulled, a newer version of
    the file has been pushed to the server.". Now the user has two
    conflicting versions of the same file and can only chose to keep
    one (Which in itself is great UX and great error handling for
    cases in which we do encounter a merge conflict, of course!).
  - This situation is mitigated with this change. Now the user has the
    option to enable "Sync on application becoming visible" which acts
    similarly to "Live Sync". When the user opts to use this feature,
    whenever the application gets pulled from the background or
    started through the service worker, the first thing that happens
    it that a new version of the org-file is pulled from the server.
    It's therefore much harder for the user to create conflicts.

* [2019-08-04 Sun]

** Fixed

- Parser doesn't break indentation of existing files in fewer places
- Planning Items are formatted as in Emacs Org mode
- Properties are formatted as in Emacs Org mode
- Tags are formatted as in Emacs Org mode


* [2019-08-03 Sat]

** Added

- Documented deployment options
  - People have been asking for tighter access restrictions.
  - Imo the best answer to that request is to make it as easy as
    possible to host organice.
  - There's myriads of good options, of course. I picked to document
    two that will (potentially) be cost-free to the users and which
    are very easy and quick to set up: Ftp and Heroku.

** Fixed

- Tests on =master= were red
  - Partly due to obsolete tests
  - Partly because tests weren't updated according to changes in the code