Skip to content

Add Videokonferenz room experience - #61

Open
joan-code6 wants to merge 1 commit into
mainfrom
feat/videokonferenz-ui
Open

joan-code6 wants to merge 1 commit into
mainfrom
feat/videokonferenz-ui

Conversation

@joan-code6

@joan-code6 joan-code6 commented Sep 14, 2026

Copy link
Copy Markdown
Owner

Summary

  • add a responsive room-first Videokonferenz page
  • show live open, waiting, closed, and unavailable states
  • add safe room links, periodic refresh, and demo content
  • integrate dashboard, sidebar, routing, module detection, preferences, and global search

Validation

  • TypeScript check passes with tsc --noEmit
  • no production build run per repository instruction

Paired PR

Rollout

Requires the paired backend PR to be deployed first.

@coderabbitai

coderabbitai Bot commented Sep 14, 2026

Copy link
Copy Markdown
Contributor

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: 9cc6de11-3b17-44e4-82e5-a4650601add3


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@appwrite

appwrite Bot commented Sep 14, 2026

Copy link
Copy Markdown

Lanis

Project ID: 698337a60017b46df380

Sites (1)
Site Status Logs Preview QR
 lanis_ui
6a180889003c768d3660
Ready Ready View Logs Preview URL QR Code

Tip

Storage files get ClamAV malware scanning and encryption by default

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 26f4421246

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +159 to +162
} catch (loadError) {
if (!controller.signal.aborted && !axios.isCancel(loadError)) {
setError(loadError instanceof Error ? loadError.message : 'Videoräume konnten nicht geladen werden.');
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Disable join actions after a refresh failure

When an automatic or manual refresh fails after a successful load, this catch only records the error while retaining the previous overview, including every room's old can_join value and short-lived join_url. During a backend or network outage, the cards therefore continue offering links for rooms that may have closed or whose URLs have expired; invalidate joinability while the status is stale, while optionally retaining the room metadata.

Useful? React with 👍 / 👎.

Comment on lines +121 to +122
if (module.url.toLowerCase().includes('/videokonferenz.php') ||
module.name.toLowerCase().includes('videokonferenz')) {

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Detect video modules through direct_url on dashboard clicks

When a module has a generic url and exposes /videokonferenz.php only through direct_url, the new availability and global-search logic recognize it, but this click handler does not. Clicking that dashboard tile consequently falls through and opens the external destination rather than the new in-app room page; use the combined url/direct_url matching already used by getModuleAvailability.

Useful? React with 👍 / 👎.

Comment on lines +736 to +737
if (u === '/videokonferenz' && method === 'get') {
return { status: 200, data: { success: true, available: true, source: 'schulportal', status_live: true, rooms: mockVideoRooms, count: mockVideoRooms.length, open_count: 1, updated_label: 'vor wenigen Sekunden' } };

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Expose the video room mock through the demo module list

Although the demo now has a route and this mock response, /modules still returns demoModules, which contains no Videokonferenz entry. As a result, module availability remains false and neither the demo sidebar, dashboard, nor global search links to this page, so ordinary demo users cannot reach the new mocked experience without manually entering /demo/videokonferenz; add the corresponding entry to the demo module data.

Useful? React with 👍 / 👎.

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.

1 participant