Skip to content

[Bug] Content features (Announcements, Artworks, Schedule Entries) not displaying on screens #10

Description

@marcel-uni-luebeck

Description

The content features in the admin dashboard are fully functional (create, edit, save), but the following content types are not displayed on screens:

  • Announcements
  • Artworks
  • Schedule Entries

Steps to Reproduce

Announcements

  1. Admin Dashboard → Content → Announcements
  2. Create new announcement with valid start/end time
  3. Open screen → Nothing is displayed

Artworks

  1. Admin Dashboard → Content → Artworks
  2. Upload new artwork
  3. Open screen → Nothing is displayed

Schedule Entries

  1. Admin Dashboard → Content → Schedule Entries
  2. Create new entries
  3. Open screen → Nothing is displayed

Analysis Performed

We conducted a detailed code analysis to identify the problem:

1. Backend Analysis (working ✅)

ScreenDataGenerator.php:

public function announcements(): array
{
    return $this->project->announcements()
        ->where('starts_at', '<=', now())
        ->where('ends_at', '>=', now())
        ->get()
        ->toArray();
}

ScreenController.php:

return Inertia::render($screen->layout->component, [
    'announcements' => $generator->announcements(),
    // ... other props
]);

WebSocket Events exist:

  • AnnouncementUpdatedEvent.php - sends updates on changes

2. Frontend Analysis (problem found ❌)

Main.vue - Receives the data:

defineProps({
    announcements: Array,
})

Echo.channel(`screen.${props.screen.id}`)
    .listen('AnnouncementUpdatedEvent', (e) => {
        announcements.value = e.announcements;
    });

PrimaryLayout.vue - Does NOT use the data:

<script setup>
defineProps({
    announcements: { type: Array, default: () => [] },
})
</script>

<template>
    <!-- announcements prop is never used in the template -->
</template>

3. Analysis Summary

Layer Status Details
Database ✅ OK Data is saved correctly
Backend API ✅ OK Data is returned correctly
WebSocket ✅ OK Events are sent
Main.vue ✅ OK Receives and passes data
Layout Components ❌ Problem Data is received but not displayed

The Problem: The layout components (e.g., PrimaryLayout.vue) receive the announcements prop, but there is no UI component that actually displays this data on the screen.


Assumption

It appears that the frontend implementation for displaying content features (Announcements, Artworks, Schedule Entries) is not yet complete. The backend infrastructure is in place, but the visual rendering on screens is missing.


Expected Behavior

Feature Expected
Announcements Overlay/banner on screen during the defined time period
Artworks Display images in corresponding pages
Schedule Entries Display in Schedule/Timetable pages

Environment

  • Open Signage Version: Latest (Docker)
  • Browser: Chrome/Firefox
  • Operating System: Linux (Docker Container)

Questions

If this is not a bug but a user error on my part, I would appreciate some guidance:

  1. Do these features need to be activated/configured separately?
  2. Are there specific layouts that support these features?
  3. Is there a missing configuration or linking step?
  4. Is the implementation of these features still work in progress?

Thank you for your work on this project! 🙏

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions