Skip to content

Commit

Permalink
Merge branch 'diy_drag_n_drop' into main
Browse files Browse the repository at this point in the history
* diy_drag_n_drop: (55 commits)
  DiyReOrder: ensure dragged tab correctly positioned with sidebar open
  DiyReOrder: ensure dragged tab renders in front of other tabs
  DiyReOrder: elm-review
  DiyReOrder: update packages
  DiyReOrder: update README
  DiyReOrder: use grab and grabbing cursors
  DiyReOrder: beaconIdentifier -> beaconType
  DiyReOrder: keep the dragged tab in the tab bar
  DiyReOrder: save the dragged element rect on drag start
  DiyReOrder: set dragged header size to actual tab header size
  DiyReOrder: hide dragged header - only use ghost image
  DiyReOrder: use position offset to correct ghost image postion
  DiyReOrder: select tab after dragging minimum distance
  DiyReOrder: wait for minimum drag before setting as Dragging
  DiyReOrder: show a ghost image whilst dragging - BUGGY
  DiyReOrder: track cursor position whilst dragging
  DiyReOrder: don't ignore stop tracking message from ts
  DiyReOrder: decode dragAction's to a Union type
  DiyReOrder: hide aria labels on tabs whilst dragging
  DiyReOrder: make the board being dragged the one being viewed
  ...
  • Loading branch information
roovo committed Nov 15, 2023
2 parents f7a07f8 + 27df691 commit 791510a
Show file tree
Hide file tree
Showing 40 changed files with 2,650 additions and 1,170 deletions.
5 changes: 2 additions & 3 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
# Contributing
I am working on this myself for now; it's my do-some-coding-when-I-have-some-time
project.

I am working on this myself for now so I am not accepting pull requests; it's my
do-some-coding-when-I-have-some-time project.

## Set up a dev environmant
To get up and running:
Expand Down
45 changes: 24 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,8 @@ An [Obsidian](https://obsidian.md/) plugin to make working with tasks a pleasure
- Tag based (uses `#tags` to define your boards).

## New
- Added a Global Setting to disable using daily note dates as the due date
for tasks.
- You can now add @due(none) to a task line if you want to turn off using the
daily note date as the due date for a specific task on a daily note page.
- Fixed issue where cards would display with no text on them if you split the
CardBoard window to the right or down.
- Board reordering - drag and drop the tab headers
- Improved styling of tab headers (consistent with obsidian)

![date based board screenshot](/images/dateBoard.png?raw=true)

Expand Down Expand Up @@ -82,7 +78,7 @@ It will look something like this on a card on your board:

![example card](/images/card.png?raw=true)

#### Marking a task as complete
### Marking a task as complete
If you mark an task as complete on the board it will be marked as completed in the markdown
(and vice-versa). If you mark as complete on the board, a completion timestamp is appended
to the task:
Expand Down Expand Up @@ -146,7 +142,15 @@ along the lines of:
This will style the tag `#foo/bar` wherever it appears in the CardBoard view with your favorite
color for foo/bars, which just has to be HotPink :)

## Date boards
## Boards
Two board types supported:
- Date based (with daily/periodic notes support).
- Tag based (uses `#tags` to define your boards).

### Reordering boards
Boards can be reordered by dragging their tabs on the main view.

### Date boards
You will get the best out of these if you are using the (core) Daily Notes
or the (community) Periodic Notes plugins, as any tasks you place on a daily
note will be assigned to the day of the note. If you do not want this behaviour
Expand Down Expand Up @@ -177,7 +181,7 @@ You can turn off the due date for a specific task on a daily note page:
- [ ] My task @due(none)
```

### Overdue tasks
#### Overdue tasks
These will appear in the `Today` column above any any tasks that are actually
due today.

Expand All @@ -187,26 +191,26 @@ encouraging you to do something about them; like do them or move them to a futur
date if you want to schedule them later.


### Completed tasks
#### Completed tasks
If you choose to show completed tasks on your date board, you will only see
completed tasks which have a due date unless the Undated column is enabled.


## Tag boards
### Tag boards
If you give your tasks tags, you can use these to set up a tag-board. So if you
have the tags `#status/backlog`, `#status/triaged`, `status/blocked`, `#status/doing`,
you can define a board that shows tasks tagged with these in separate columns:

![tag board settingx](/images/tagBoardSettings.png?raw=true)


### Sub-tasks
#### Sub-tasks
Tasks which have sub-tasks with matching tags will also appear on the board.

### Subtags
#### Subtags
If you specify a tag with a trailing `/` then the column will contain all subtags of the tag.

### Front Matter Tags
#### Front Matter Tags
If you want to give all the tasks on a page the same tag, you can put it in the
page front matter:

Expand All @@ -220,13 +224,13 @@ tags: [ project1 ]
- [ ] this task will automatically have a project1 tag
```

### Hiding Tags
#### Hiding Tags
If you don't want to see the tags used to configure the board's columns on the cards,
you can show/hide them in the settings. If you choose not to show the column tags,
this will hide all the tags used in the settings wherever cards are on the board.
Only tags that exactly match those used in the settings will be hidden.

### Completed tasks
#### Completed tasks
When a task is shown in a column due to tags on sub-tasks it will only show in that
column if those subtasks are incomplete. So the following
task is shown only in the Barney column as the Wilma sub-task is complete:
Expand All @@ -244,7 +248,7 @@ the completed column too; only tasks which would appear on the board if all task
subtasks were marked as incomplete can ever be in the Completed column.


## Board Filters
### Board Filters
You can filter which tasks appear on each board in the board settings. There are 3
types of filter you can use: file, path, and #tags (which includes front matter tags). You can
use any combination of these on a per-board basis.
Expand All @@ -260,7 +264,6 @@ Filters are applied before tasks are placed onto a board:
![filters](/images/filters.png?raw=true)



## Settings
Plugin settings are accessible from the plugin view itself, via the settings icon
above the board to the left of the tabs. You can:
Expand Down Expand Up @@ -369,9 +372,9 @@ There are others too, see the wonderful

## Contributing
I am working on this myself for now; it's my do-some-coding-when-I-have-some-time
project. However, if you want to mess around with the code then see
[contributing doc](CONTRIBUTING.md) for more info on getting a dev environment set
up and running.
project so I am not accepting pull requests. However, if you want to mess around
with the code then see [contributing doc](CONTRIBUTING.md) for more info on getting
a dev environment set up and running.

If you have any thoughts, ideas, bugs n stuff:

Expand Down
7 changes: 7 additions & 0 deletions TODO.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
- enable reorder boards on settings page too
- tidy typescript
- tidy elm

- can I animate tab moving so it isn't instantaneous?
- touch events - iPad ??

# Cleanups
- simplify parsing as per typing tutor
- replace regex stuff in TaskItem.toToggledSting with some form of token parsing
Expand Down
29 changes: 18 additions & 11 deletions elm.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
"dependencies": {
"direct": {
"1602/elm-feather": "2.3.5",
"MaybeJustJames/yaml": "2.1.0",
"dillonkearns/elm-ts-json": "2.1.0",
"MaybeJustJames/yaml": "2.1.4",
"dillonkearns/elm-ts-json": "2.1.1",
"dividat/elm-semver": "2.0.0",
"elm/browser": "1.0.2",
"elm/core": "1.0.5",
Expand All @@ -17,29 +17,36 @@
"elm/parser": "1.1.0",
"elm/regex": "1.0.0",
"elm/time": "1.0.0",
"elm-community/list-extra": "8.4.0",
"elm-community/maybe-extra": "5.2.0",
"elm-community/list-extra": "8.7.0",
"elm-community/maybe-extra": "5.3.0",
"elm-community/string-extra": "4.0.1",
"justinmimbs/date": "3.2.1",
"justinmimbs/date": "4.0.1",
"mpizenberg/elm-pointer-events": "5.0.0",
"pzp1997/assoc-list": "1.0.0",
"robinheghan/fnv1a": "1.0.0",
"rtfeldman/elm-iso8601-date-strings": "1.1.4",
"tripokey/elm-fuzzy": "5.2.1"
},
"indirect": {
"elm/bytes": "1.0.8",
"elm/file": "1.0.5",
"elm/project-metadata-utils": "1.0.2",
"elm/random": "1.0.0",
"elm/svg": "1.0.1",
"elm/url": "1.0.0",
"elm/virtual-dom": "1.0.2",
"elm-community/dict-extra": "2.4.0"
"elm/virtual-dom": "1.0.3",
"elm-community/dict-extra": "2.4.0",
"elm-explorations/test": "2.1.2",
"miniBill/elm-unicode": "1.0.3",
"rtfeldman/elm-hex": "1.0.0",
"stil4m/elm-syntax": "7.3.2",
"stil4m/structured-writer": "1.0.3"
}
},
"test-dependencies": {
"direct": {
"elm-explorations/test": "2.0.1"
"elm-explorations/test": "2.1.2"
},
"indirect": {
"elm/bytes": "1.0.8"
}
"indirect": {}
}
}
Loading

0 comments on commit 791510a

Please sign in to comment.