{% extends "base.html" %} {% block title %}Manage Player - {{ player.name }}{% endblock %} {% block content %}

Manage Player: {{ player.name }}

Back to Players

Status: {% if player.status == 'online' %} Online {% elif player.status == 'offline' %} Offline {% else %} {{ player.status|title }} {% endif %}

Hostname: {{ player.hostname }}

Last Seen: {% if player.last_seen %} {{ player.last_seen | localtime('%Y-%m-%d %H:%M:%S') }} {% else %} Never {% endif %}

Assigned Playlist: {% if current_playlist %} {{ current_playlist.name }} (v{{ current_playlist.version }}) {% else %} No playlist assigned {% endif %}

{% if current_playlist %}

Current Playlist: {{ current_playlist.name }}

Total Items
{{ current_playlist.contents.count() }}
Playlist Version
v{{ current_playlist.version }}
Last Updated
{{ current_playlist.updated_at | localtime }}
Orientation
{{ current_playlist.orientation }}
Edit Playlist Content View Live Content
{% endif %}

Edit Credentials

🔑 Authentication Settings

â„šī¸ This is the unique identifier for the player
🔒 Optional: Set a new password for player authentication
🔗 Enter the plain text code (e.g., 8887779) - will be hashed automatically

Assign Playlist

{% if current_playlist %}

Currently Assigned:

{{ current_playlist.name }}

Version: {{ current_playlist.version }}

Content Items: {{ current_playlist.contents.count() }}

Updated: {{ current_playlist.updated_at | localtime }}

{% else %}

No playlist currently assigned to this player.

{% endif %}

Quick Actions:

Create New Playlist {% if current_playlist %} Edit Current Playlist {% endif %}

Player Logs

Recent feedback from the player device

{% if recent_logs %} {% for log in recent_logs %}
{% if log.status == 'error' %}❌ {% elif log.status == 'warning' %}âš ī¸ {% elif log.status == 'playing' %}â–ļī¸ {% elif log.status == 'restarting' %}🔄 {% else %}â„šī¸{% endif %} {{ log.status|upper }}

{{ log.message }}

{% if log.playlist_version %}

Playlist v{{ log.playlist_version }}

{% endif %} {% if log.error_details %}
Error Details
{{ log.error_details }}
{% endif %}
{{ log.timestamp | localtime('%m/%d %H:%M') }}
{% endfor %} {% else %}

📭 No logs received yet

Logs will appear here once the player starts sending feedback

{% endif %}

Edited Media on the Player

{% if edited_media %} 📋 View All Edited Media {% endif %}

Latest 3 edited files with their most recent versions

{% if edited_media %} {% set edited_by_content = {} %} {% for edit in edited_media %} {% if edit.content_id not in edited_by_content %} {% set _ = edited_by_content.update({edit.content_id: {'original_name': edit.original_name, 'content_id': edit.content_id, 'latest_version': edit}}) %} {% endif %} {% endfor %}
{% for content_id, data in edited_by_content.items() %} {% if loop.index <= 3 %}
{% set edit = data.latest_version %} {% if edit.new_name.lower().endswith(('.jpg', '.jpeg', '.png', '.gif', '.webp')) %}
{{ edit.new_name }}
{% endif %}

âœī¸ {{ data.original_name }}

Version {{ edit.version }} Latest {{ edit.created_at | localtime('%m/%d %H:%M') }}

📄 {{ edit.new_name }}

{% if edit.user %}

👤 {{ edit.user }}

{% endif %} {% if edit.time_of_modification %}

🕒 {{ edit.time_of_modification | localtime('%Y-%m-%d %H:%M') }}

{% endif %}
{% endif %} {% endfor %}
{% else %}

📝

No edited media yet

Media edits will appear here once the player sends edited files

{% endif %}

â„šī¸ Player Information

Player ID: {{ player.id }}

Created: {{ (player.created_at | localtime) if player.created_at else 'N/A' }}

Orientation: {{ player.orientation }}

Location: {{ player.location or 'Not set' }}

Last Heartbeat: {% if player.last_heartbeat %} {{ player.last_heartbeat | localtime('%Y-%m-%d %H:%M:%S') }} {% else %} Never {% endif %}

{% endblock %}