feat(checkvist): Add checkvist integration #1770
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
🌟 What does this PR do?
This PR adds a new integration for Checkvist. Checkvist is a keyboard-centric web app to create hierarchical task lists or other nested outlines with support for due dates, tags, markdown, reminders, attachments ...
By default, the integration adds a Toggl button to all leaf items of a list. However, the button is only visible if the corresponding leaf item is selected or hovered or if the corresponding timer is running.
The image shows an example list with Toggl buttons. The "Top-level task" is hovered, "Task 4" is selected, and "Task 7" is running.
If an item has tags, the timer is automatically tagged accordingly. The project is also determined automatically. By default the project is the text of the immediate parent item.
The defaults can be changed by tagging items with special tags. These tags are only visible, when an item is edited.
If any item is tagged with
#togglize
or#togglizeAll
, Toggl buttons are only added to children of an item which has one of these tags. By this, the Toggl buttons can be restricted to individual branches of the list. In branches tagged with#togglize
only leaf items get a Toggl button; in branches tagged with#togglizeAll
all items get a Toggl button.To customize which parent item defines the project for an item, the
#togglProject
tag can be used. If any of the parent items has this tag, the text of the closest parent having this tag is used as the project.Finally, if one prefers the Toggl buttons to be placed on the left of its corresponding item, the title of the list can be tagged with
#togglLeft
. The example list shown above then looks like this.🐛 Recommendations for testing
The example list can be played with using this link. (The list is publicly shared, so you better don't use it to store any confidential data. And please don't mess too much with the list. I will delete it when this PR is accepted, or earlier if it is abused.)
Known limitation
One would expect a project automatically determined by the integration for an item on which a timer is started to be created on the fly if it doesn't already exist in Toggl. Unfortunately, this is apparently not (yet) the case (#401, #1399)! Only projects that already exist in Toggl can be automatically included in a timer started with the Toggl button.
The checkvist integration has been tested across Chrome and Firefox.