Raum-Startseite
One start page per room with a status light and a tile per linked module
Screenshots
About this app
A start page for the room: a status light on top (red when something is overdue, yellow when something needs a look or a module is unreachable) and one tile per openDesk module with its key figure — open work packages, files in the room folder, valid decisions and wiki pages, open tasks, whether a call is running, and the pinned room document. Tiles show what changed since your last visit. Unofficial technology demonstration of the openDesk × Matrix widgets integration concept — not a ZenDiS or openDesk product.
What it reads, what it writes. The start page only reads: the mapping and data state events
the other openDesk widgets of this family write (de.opendesk.*) and the room's widget list
(im.vector.modular.widgets). It writes nothing to the room, except Element's widget layout
(io.element.widgets.layout) when a moderator explicitly pins a widget to the top for everyone.
Keep in mind that the state it reads is never encrypted, even in an encrypted room. "Zuletzt
besucht" (for the "neu" badges) is never put into room state: in demo mode it is kept in your
browser's local storage for this room only (private, per device); with a gateway it is kept there
per Matrix account.
Setting things up. Modules that are not linked yet appear as "Einrichten" tiles. A click
explains which widget does the job (Projekt-Einrichtung, Raum-Ablage, Entscheidungslog,
Raum-Checkliste, Sofort-Call, Raum-Dokument) and, if it is not in the room yet, shows the
/addwidget command with a copy button. Widgets cannot bring each other to the front; open the
named widget from the room info — or, as a moderator, pin it above the timeline for everyone.
Modes. On Marcade it runs in demo mode: all figures come from room state. With an
opendesk-widget-gateway URL in the widget URL fragment it asks the gateway for one cockpit
summary (GET /cockpit/{room}, 1 s budget) and shows the real figures from OpenProject, Nextcloud,
XWiki and the task calendar with your own rights, plus two gateway-only tiles: the next appointment
of the room calendar and the share status of the room folder (public links, last shared). A module
that does not answer only greys out its own tile ("nicht erreichbar"). The client may ask for
permission to share your identity.
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-startseite/0.1.0/
Works on its own in demo mode (read-only, figures from room state). Optional: add `#gateway=https://…` (an opendesk-widget-gateway) to show live figures from the openDesk modules with the signed-in user's rights, the next appointment and the folder's share status, and to keep "zuletzt besucht" per account instead of per browser.
Rooms should pin the versioned URL above. https://marcade.store/apps/de.minagawa.opendesk.raum-startseite/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.
- Read room state events of type “de.opendesk.openproject”
org.matrix.msc2762.receive.state_event:de.opendesk.openproject - Read room state events of type “de.opendesk.nextcloud”
org.matrix.msc2762.receive.state_event:de.opendesk.nextcloud - Read room state events of type “de.opendesk.xwiki”
org.matrix.msc2762.receive.state_event:de.opendesk.xwiki - Read room state events of type “de.opendesk.xwiki.decision”
org.matrix.msc2762.receive.state_event:de.opendesk.xwiki.decision - Read room state events of type “de.opendesk.tasks”
org.matrix.msc2762.receive.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 - Read room state events of type “de.opendesk.tasks.digest”
org.matrix.msc2762.receive.state_event:de.opendesk.tasks.digest - Read room state events of type “de.opendesk.jitsi”
org.matrix.msc2762.receive.state_event:de.opendesk.jitsi - Read room state events of type “de.opendesk.jitsi.call”
org.matrix.msc2762.receive.state_event:de.opendesk.jitsi.call - Read room state events of type “de.opendesk.collabora.pinned”
org.matrix.msc2762.receive.state_event:de.opendesk.collabora.pinned - Read room state events of type “de.opendesk.openproject.demo_wp”
org.matrix.msc2762.receive.state_event:de.opendesk.openproject.demo_wp - Read room state events of type “im.vector.modular.widgets”
org.matrix.msc2762.receive.state_event:im.vector.modular.widgets - Requires running inside a Matrix client
io.element.requires_client - Read room state events of type “de.opendesk.nextcloud.demo_node”
org.matrix.msc2762.receive.state_event:de.opendesk.nextcloud.demo_node - Read room state events of type “de.opendesk.xwiki.demo_page”
org.matrix.msc2762.receive.state_event:de.opendesk.xwiki.demo_page - Read room state events of type “m.room.member”
org.matrix.msc2762.receive.state_event:m.room.member - Read room state events of type “io.element.widgets.layout”
org.matrix.msc2762.receive.state_event:io.element.widgets.layout - Send room state events of type “io.element.widgets.layout”
org.matrix.msc2762.send.state_event:io.element.widgets.layout - 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
What's new in 0.1.0
First release: status light, six module tiles (Projekt, Dateien, Wiki & Beschlüsse, Aufgaben, Call, Raum-Dokument) from the sibling widgets' room state, "neu seit letztem Besuch" badges (local storage per room), "Einrichten" tiles with /addwidget hint and copy, optional gateway cockpit with per-tile "nicht erreichbar". Read-only. German and English, light and dark. Round 3 (before the first store build): "zuletzt besucht" per Matrix account via the gateway (GET/PUT /seen, localStorage stays in demo mode); gateway-only tiles "Nächster Termin" (room calendar, API v1.3) and "Freigabestatus" (Nextcloud share status of the room folder, API v1.4); moderators can pin a tile's widget above the timeline for everyone (io.element.widgets.layout); room v12 creators count as moderators.
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.openproject,de.opendesk.nextcloud,de.opendesk.xwiki,de.opendesk.xwiki.decision,de.opendesk.tasks,de.opendesk.tasks.item,de.opendesk.tasks.digest,de.opendesk.jitsi,de.opendesk.jitsi.call,de.opendesk.collabora.pinned,de.opendesk.openproject.demo_wp,de.opendesk.nextcloud.demo_node,de.opendesk.xwiki.demo_page,io.element.widgets.layout- Encrypted rooms
- Supported
- Widget ID
de.minagawa.opendesk.raum-startseite