Corregge scadenza token regia oltre le 8h, tabellone HTML sulla pagina live, pulsanti pausa/ripresa in regia, link admin e broadcast ActionCable diretto. App Android: overlay branding, sync score da regia via WebSocket con reconnect e poll. Co-authored-by: Cursor <cursoragent@cursor.com>
41 lines
968 B
Ruby
41 lines
968 B
Ruby
module AdminHelper
|
|
def format_bytes(bytes)
|
|
return "—" if bytes.nil?
|
|
|
|
units = %w[B KB MB GB TB]
|
|
size = bytes.to_f
|
|
unit = units.shift
|
|
while size >= 1024 && units.any?
|
|
size /= 1024
|
|
unit = units.shift
|
|
end
|
|
"#{size.round(size >= 10 ? 0 : 1)} #{unit}"
|
|
end
|
|
|
|
def format_duration_minutes(minutes)
|
|
return "0 min" if minutes.to_i <= 0
|
|
|
|
hours = minutes / 60
|
|
mins = minutes % 60
|
|
hours.positive? ? "#{hours}h #{mins}m" : "#{mins} min"
|
|
end
|
|
|
|
def admin_session_watch_links(session)
|
|
links = []
|
|
if session.matchlivetv_platform?
|
|
links << { label: "Pagina live", url: session.watch_page_url }
|
|
end
|
|
youtube = session.youtube_watch_url
|
|
links << { label: "YouTube", url: youtube } if youtube.present?
|
|
links
|
|
end
|
|
|
|
def admin_regia_expires_label(iso_time)
|
|
return if iso_time.blank?
|
|
|
|
Time.zone.parse(iso_time).strftime("%d/%m/%Y %H:%M")
|
|
rescue ArgumentError, TypeError
|
|
nil
|
|
end
|
|
end
|