Skip to content

fix: add date sorting support to table columns#11198

Merged
tommoor merged 3 commits into
outline:mainfrom
lucawimmer:fix/table-date-sorting
Jan 17, 2026
Merged

fix: add date sorting support to table columns#11198
tommoor merged 3 commits into
outline:mainfrom
lucawimmer:fix/table-date-sorting

Conversation

@lucawimmer

Copy link
Copy Markdown
Contributor

Table columns with dates were being sorted alphabetically instead of chronologically. For example, "01.01.2025" would sort before "08.04.2025" by chance, but not in the correct chronological order.

Solution

  • Added date parsing support using the existing date-fns for common formats:
    • ISO: yyyy-MM-dd
    • European: dd.MM.yyyy, dd/MM/yyyy
    • US: MM/dd/yyyy
    • Dates without year: dd.MM., dd/MM, etc.
  • Dates are sorted chronologically by timestamp
  • Falls back to existing number/text sorting when dates aren't detected

Behavior

  • If all non-empty cells in a column are valid dates → sort chronologically
  • If all non-empty cells are numbers → sort numerically (like before)
  • Otherwise → sort alphabetically (like before)
  • Empty cells always move to the end

@auto-assign auto-assign Bot requested a review from tommoor January 16, 2026 11:05
@CLAassistant

CLAassistant commented Jan 16, 2026

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

@tommoor tommoor requested a review from Copilot January 17, 2026 16:09

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds chronological date sorting support to table columns, fixing an issue where dates were being sorted alphabetically instead of by their actual chronological order.

Changes:

  • Added date parsing function supporting multiple common date formats (ISO, European, US) using date-fns
  • Modified table sorting logic to detect and sort dates chronologically, numbers numerically, or text alphabetically
  • Empty cells are now consistently moved to the end regardless of sort type

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread shared/editor/commands/table.ts Outdated
Comment thread shared/editor/commands/table.ts Outdated
@tommoor

tommoor commented Jan 17, 2026

Copy link
Copy Markdown
Member

I am interested in merging this but lint is failing, you can run yarn lint --fix. I'm guessing this was largely AI generated?

@lucawimmer

Copy link
Copy Markdown
Contributor Author

I am interested in merging this but lint is failing, you can run yarn lint --fix. I'm guessing this was largely AI generated?

Oh no - sorry for overlooking it. I checked linting on our internal repo but missed it on this fork. Should be fixed now.

Let me know if anything else needs changing. (and yes, sorry for the AI lazyness)

@tommoor

tommoor commented Jan 17, 2026

Copy link
Copy Markdown
Member

I refactored a little so that ambiguous slash formats are considered depending on the users current locale

@tommoor tommoor merged commit 0693856 into outline:main Jan 17, 2026
13 of 14 checks passed
alexlebens pushed a commit to alexlebens/infrastructure that referenced this pull request Jan 28, 2026
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [outline/outline](https://github.com/outline/outline) | minor | `1.3.0` → `1.4.0` |

---

### Release Notes

<details>
<summary>outline/outline (outline/outline)</summary>

### [`v1.4.0`](https://github.com/outline/outline/releases/tag/v1.4.0)

[Compare Source](outline/outline@v1.3.0...v1.4.0)

#### What's Changed

##### Highlights

- New **"Toggle blocks"** allow creating content that is collapsed by default in [#&#8203;8317](outline/outline#8317)
- Table cells can now have a custom background color set in [#&#8203;10930](outline/outline#10930)
- Search results are now highlighted in the document when navigating from search in [#&#8203;11262](outline/outline#11262)

##### Other improvements

- A new Figma integration allows unfurling information about Figma links in documents by [@&#8203;hmacr](https://github.com/hmacr) in [#&#8203;11044](outline/outline#11044)
- Added support for sorting dates in table columns by [@&#8203;lucawimmer](https://github.com/lucawimmer) in [#&#8203;11198](outline/outline#11198)
- Document changes made through the API are now synced to clients in realtime in [#&#8203;11186](outline/outline#11186)
- The rate limiter now prefers user ID over ip address for logged in sessions, prevents issues on larger office networks in [#&#8203;11215](outline/outline#11215)
- The markdown importer now supports more file layouts in [#&#8203;11278](outline/outline#11278)

##### Fixes

- Fixed some typos comments and messages by [@&#8203;NAM-MAN](https://github.com/NAM-MAN) in [#&#8203;11203](outline/outline#11203)
- Fixed an issue where mentions would sometimes break when using drag and drop in a list in [#&#8203;11208](outline/outline#11208)
- The edit diagram control no longer appears in read-only mode in [#&#8203;11207](outline/outline#11207)
- Infinite recursion in `dd-trace` dependency causes memory issues in [#&#8203;11211](outline/outline#11211)
- Imported content now gracefully handles HTTP links in [#&#8203;11210](outline/outline#11210)
- Editor suggestions on mobile now uses a drawer in [#&#8203;11213](outline/outline#11213)
- When importing markdown checkboxes are now supported in table cells in [#&#8203;11217](outline/outline#11217)
- GCS uniform bucket-level access now supported by [@&#8203;maycuatroi1](https://github.com/maycuatroi1) in [#&#8203;11222](outline/outline#11222)
- Fixed a hanging read stream handle causing excessive memory usage on export in [#&#8203;11237](outline/outline#11237)
- Fixed mermaid diagrams do not render when pasting markdown in [#&#8203;11243](outline/outline#11243)
- Remote edits no longer exit Mermaid editing state in [#&#8203;11244](outline/outline#11244)
- Table row is now inserted correctly with merged first column cells in [#&#8203;11245](outline/outline#11245)
- Allow http\:// loopback redirect URIs for native OAuth apps (RFC 8252) in [#&#8203;11255](outline/outline#11255)
- "Split cell" option now works without accurate selection in [#&#8203;11256](outline/outline#11256)
- Adding text below images is now easier as trailing paragraph is enforcedd by [@&#8203;RudraPrasad001](https://github.com/RudraPrasad001) in [#&#8203;11257](outline/outline#11257)
- Tooltip in editor toolbar with submenu is now hidden when submenu is open in [#&#8203;11263](outline/outline#11263)
- Non-platform passkeys such as Yubikey and mobile QRcode are now allowed in [#&#8203;11265](outline/outline#11265)
- diagrams.net theme now matches editor theme by [@&#8203;Twometer](https://github.com/Twometer) in [#&#8203;11267](outline/outline#11267)
- Custom emoji characters are now displayed correctly in TOC in [#&#8203;11275](outline/outline#11275)
- Fixed an issue where the policy for documents restore was too broad in [#&#8203;11279](outline/outline#11279)
- Passkey setup is now available to non-admin users by [@&#8203;Raphmatt](https://github.com/Raphmatt) in [#&#8203;11286](outline/outline#11286)

#### New Contributors

- [@&#8203;NAM-MAN](https://github.com/NAM-MAN) made their first contribution in [#&#8203;11203](outline/outline#11203)
- [@&#8203;lucawimmer](https://github.com/lucawimmer) made their first contribution in [#&#8203;11198](outline/outline#11198)
- [@&#8203;maycuatroi1](https://github.com/maycuatroi1) made their first contribution in [#&#8203;11222](outline/outline#11222)
- [@&#8203;RudraPrasad001](https://github.com/RudraPrasad001) made their first contribution in [#&#8203;11257](outline/outline#11257)
- [@&#8203;Twometer](https://github.com/Twometer) made their first contribution in [#&#8203;11267](outline/outline#11267)
- [@&#8203;Raphmatt](https://github.com/Raphmatt) made their first contribution in [#&#8203;11286](outline/outline#11286)

**Full Changelog**: <outline/outline@v1.3.0...v1.4.0>

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi42OS4yIiwidXBkYXRlZEluVmVyIjoiNDIuNjkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiaW1hZ2UiXX0=-->

Reviewed-on: https://gitea.alexlebens.dev/alexlebens/infrastructure/pulls/3546
Co-authored-by: Renovate Bot <renovate-bot@alexlebens.net>
Co-committed-by: Renovate Bot <renovate-bot@alexlebens.net>
alexlebens pushed a commit to alexlebens/infrastructure that referenced this pull request Jan 28, 2026
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [outlinewiki/outline](https://github.com/outline/outline) | minor | `1.3.0` → `1.4.0` |

---

### Release Notes

<details>
<summary>outline/outline (outlinewiki/outline)</summary>

### [`v1.4.0`](https://github.com/outline/outline/releases/tag/v1.4.0)

[Compare Source](outline/outline@v1.3.0...v1.4.0)

##### What's Changed

##### Highlights

- New **"Toggle blocks"** allow creating content that is collapsed by default in [#&#8203;8317](outline/outline#8317)
- Table cells can now have a custom background color set in [#&#8203;10930](outline/outline#10930)
- Search results are now highlighted in the document when navigating from search in [#&#8203;11262](outline/outline#11262)

##### Other improvements

- A new Figma integration allows unfurling information about Figma links in documents by [@&#8203;hmacr](https://github.com/hmacr) in [#&#8203;11044](outline/outline#11044)
- Added support for sorting dates in table columns by [@&#8203;lucawimmer](https://github.com/lucawimmer) in [#&#8203;11198](outline/outline#11198)
- Document changes made through the API are now synced to clients in realtime in [#&#8203;11186](outline/outline#11186)
- The rate limiter now prefers user ID over ip address for logged in sessions, prevents issues on larger office networks in [#&#8203;11215](outline/outline#11215)
- The markdown importer now supports more file layouts in [#&#8203;11278](outline/outline#11278)

##### Fixes

- Fixed some typos comments and messages by [@&#8203;NAM-MAN](https://github.com/NAM-MAN) in [#&#8203;11203](outline/outline#11203)
- Fixed an issue where mentions would sometimes break when using drag and drop in a list in [#&#8203;11208](outline/outline#11208)
- The edit diagram control no longer appears in read-only mode in [#&#8203;11207](outline/outline#11207)
- Infinite recursion in `dd-trace` dependency causes memory issues in [#&#8203;11211](outline/outline#11211)
- Imported content now gracefully handles HTTP links in [#&#8203;11210](outline/outline#11210)
- Editor suggestions on mobile now uses a drawer in [#&#8203;11213](outline/outline#11213)
- When importing markdown checkboxes are now supported in table cells in [#&#8203;11217](outline/outline#11217)
- GCS uniform bucket-level access now supported by [@&#8203;maycuatroi1](https://github.com/maycuatroi1) in [#&#8203;11222](outline/outline#11222)
- Fixed a hanging read stream handle causing excessive memory usage on export in [#&#8203;11237](outline/outline#11237)
- Fixed mermaid diagrams do not render when pasting markdown in [#&#8203;11243](outline/outline#11243)
- Remote edits no longer exit Mermaid editing state in [#&#8203;11244](outline/outline#11244)
- Table row is now inserted correctly with merged first column cells in [#&#8203;11245](outline/outline#11245)
- Allow http\:// loopback redirect URIs for native OAuth apps (RFC 8252) in [#&#8203;11255](outline/outline#11255)
- "Split cell" option now works without accurate selection in [#&#8203;11256](outline/outline#11256)
- Adding text below images is now easier as trailing paragraph is enforcedd by [@&#8203;RudraPrasad001](https://github.com/RudraPrasad001) in [#&#8203;11257](outline/outline#11257)
- Tooltip in editor toolbar with submenu is now hidden when submenu is open in [#&#8203;11263](outline/outline#11263)
- Non-platform passkeys such as Yubikey and mobile QRcode are now allowed in [#&#8203;11265](outline/outline#11265)
- diagrams.net theme now matches editor theme by [@&#8203;Twometer](https://github.com/Twometer) in [#&#8203;11267](outline/outline#11267)
- Custom emoji characters are now displayed correctly in TOC in [#&#8203;11275](outline/outline#11275)
- Fixed an issue where the policy for documents restore was too broad in [#&#8203;11279](outline/outline#11279)
- Passkey setup is now available to non-admin users by [@&#8203;Raphmatt](https://github.com/Raphmatt) in [#&#8203;11286](outline/outline#11286)

##### New Contributors

- [@&#8203;NAM-MAN](https://github.com/NAM-MAN) made their first contribution in [#&#8203;11203](outline/outline#11203)
- [@&#8203;lucawimmer](https://github.com/lucawimmer) made their first contribution in [#&#8203;11198](outline/outline#11198)
- [@&#8203;maycuatroi1](https://github.com/maycuatroi1) made their first contribution in [#&#8203;11222](outline/outline#11222)
- [@&#8203;RudraPrasad001](https://github.com/RudraPrasad001) made their first contribution in [#&#8203;11257](outline/outline#11257)
- [@&#8203;Twometer](https://github.com/Twometer) made their first contribution in [#&#8203;11267](outline/outline#11267)
- [@&#8203;Raphmatt](https://github.com/Raphmatt) made their first contribution in [#&#8203;11286](outline/outline#11286)

**Full Changelog**: <outline/outline@v1.3.0...v1.4.0>

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi42OS4yIiwidXBkYXRlZEluVmVyIjoiNDIuNjkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiaW1hZ2UiXX0=-->

Reviewed-on: https://gitea.alexlebens.dev/alexlebens/infrastructure/pulls/3547
Co-authored-by: Renovate Bot <renovate-bot@alexlebens.net>
Co-committed-by: Renovate Bot <renovate-bot@alexlebens.net>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants