Raum-Checkliste
Shared to-do list for a room with assignees, due dates and overdue marking
Screenshots
About this app
A light shared checklist for a Matrix room, so promises made in chat do not
evaporate: task text, assignee (picked from the room members with @), due date
and a done tick. In this demo build every task is stored as unencrypted room
state (de.opendesk.tasks.item), so task text, assignee and due date are
visible to every server in the room even in an encrypted room. This is an
unofficial technology demonstration of the openDesk × Matrix widgets
integration concept (TA-1), not a ZenDiS or openDesk product.
Keyboard first: type a task and press Enter; @ suggests room members, the due
field understands German shortcuts such as "morgen", "fr" or "15.10.". Tick and
untick, edit inline, delete with undo, filter by open / done / mine. Overdue
tasks are marked in red and labelled. Changes appear live for everyone in the
room. A task can also be made from a recent chat message: pick it in the
widget, the text, mentioned person and a date like "bis Freitag" are taken
over, and the task links back to the message. Optionally (off by default, per person) the widget posts a short
"done" notice to the chat when you tick a task; that notice is a normal
timeline message and is encrypted like any message in an encrypted room.
Moderators can choose a room rule: either everyone who may write tasks may change every task, or members change only tasks they created or that are assigned to them. The widget enforces that rule and marks changes that break it; the room's power levels remain the hard boundary.
Optional gateway mode (for an openDesk installation): with a gateway URL
fragment parameter the tasks live in the tasks module (CalDAV VTODO locally,
OX Tasks as the target) and are accessed with your Matrix OpenID token via
opendesk-widget-gateway. Room state then only carries
de.opendesk.tasks.digest — task ids, open/done status and timestamps, no
content — so other members' widgets refetch within seconds, plus the
de.opendesk.tasks room ↔ task list link that a moderator can set. In
gateway mode a task can be moved to the room's linked OpenProject project as
a work package; the task is then closed with a link to it.
Add to a room
Paste this into any room you may configure — Element and most clients understand /addwidget:
/addwidget https://marcade.store/apps/de.minagawa.opendesk.raum-checkliste/0.1.0/
Works on room state alone. Optional: add `#gateway=https://<opendesk-widget-gateway>` to keep tasks in the openDesk tasks module instead; then only ids, status and timestamps go into room state.
Rooms should pin the versioned URL above. https://marcade.store/apps/de.minagawa.opendesk.raum-checkliste/latest/ always points at the newest release.
Name and icon in Element
/addwidget can carry only the URL: Element lists the app as “Custom” without an icon. Add the Marcade Store once per room and it gives every Marcade app pasted in there its name and icon, and tells you when an update is out.
/addwidget https://marcade.store/apps/de.minagawa.marcade-store/0.1.4/
Permissions
Capabilities this widget may request. The Marcade Player asks for your consent before granting any of them.
- Requires running inside a Matrix client
io.element.requires_client - Read room state events of type “de.opendesk.tasks”
org.matrix.msc2762.receive.state_event:de.opendesk.tasks - Send room state events of type “de.opendesk.tasks”
org.matrix.msc2762.send.state_event:de.opendesk.tasks - Read room state events of type “de.opendesk.tasks.item”
org.matrix.msc2762.receive.state_event:de.opendesk.tasks.item - Send room state events of type “de.opendesk.tasks.item”
org.matrix.msc2762.send.state_event:de.opendesk.tasks.item - Read room state events of type “de.opendesk.tasks.digest”
org.matrix.msc2762.receive.state_event:de.opendesk.tasks.digest - Send room state events of type “de.opendesk.tasks.digest”
org.matrix.msc2762.send.state_event:de.opendesk.tasks.digest - Read room state events of type “de.opendesk.tasks.policy”
org.matrix.msc2762.receive.state_event:de.opendesk.tasks.policy - Send room state events of type “de.opendesk.tasks.policy”
org.matrix.msc2762.send.state_event:de.opendesk.tasks.policy - Read room state events of type “de.opendesk.openproject”
org.matrix.msc2762.receive.state_event:de.opendesk.openproject - Read room state events of type “m.room.member”
org.matrix.msc2762.receive.state_event:m.room.member - Read room state events of type “m.room.power_levels”
org.matrix.msc2762.receive.state_event:m.room.power_levels - Read room state events of type “m.room.create”
org.matrix.msc2762.receive.state_event:m.room.create - Read messages in the room
org.matrix.msc2762.receive.event:m.room.message - Send messages to the room (type m.notice)
org.matrix.msc2762.send.event:m.room.message#m.notice
What's new in 0.1.0
First release: shared room checklist with @ assignees, German due-date shortcuts, overdue marking, inline edit, undo, filters, optional "done" notice; demo mode on room state, optional gateway mode (CalDAV or OX Tasks) with a content-free digest. Room v12: creator counts as moderator. Demo mode: room rule, members change only own or assigned tasks. Task from a chat message (permalink back); "In OpenProject übernehmen" creates a work package.
Information
- Version
- 0.1.0
- Section
- Demo — Technology demonstrations built by Marcade to show what a widget can do. Not for real use — nothing is submitted anywhere.
- License
- Apache-2.0
- Author
- Yan Minagawa
- State event types
de.opendesk.tasks,de.opendesk.tasks.item,de.opendesk.tasks.digest,de.opendesk.tasks.policy- Encrypted rooms
- Supported
- Widget ID
de.minagawa.opendesk.raum-checkliste