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
- Admin Dashboard → Content → Announcements
- Create new announcement with valid start/end time
- Open screen → Nothing is displayed
Artworks
- Admin Dashboard → Content → Artworks
- Upload new artwork
- Open screen → Nothing is displayed
Schedule Entries
- Admin Dashboard → Content → Schedule Entries
- Create new entries
- 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:
- Do these features need to be activated/configured separately?
- Are there specific layouts that support these features?
- Is there a missing configuration or linking step?
- Is the implementation of these features still work in progress?
Thank you for your work on this project! 🙏
Description
The content features in the admin dashboard are fully functional (create, edit, save), but the following content types are not displayed on screens:
Steps to Reproduce
Announcements
Artworks
Schedule Entries
Analysis Performed
We conducted a detailed code analysis to identify the problem:
1. Backend Analysis (working ✅)
ScreenDataGenerator.php:
ScreenController.php:
WebSocket Events exist:
AnnouncementUpdatedEvent.php- sends updates on changes2. Frontend Analysis (problem found ❌)
Main.vue - Receives the data:
PrimaryLayout.vue - Does NOT use the data:
3. Analysis Summary
The Problem: The layout components (e.g.,
PrimaryLayout.vue) receive theannouncementsprop, 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
Environment
Questions
If this is not a bug but a user error on my part, I would appreciate some guidance:
Thank you for your work on this project! 🙏