Radioplayer-with-Presets/index.html
2025-12-18 17:25:09 +01:00

117 lines
No EOL
5.7 KiB
HTML

<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Radioplayer mit Presets</title>
<link rel="stylesheet" href="style.css">
<link rel="apple-touch-icon" sizes="180x180" href="/img/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/img/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/img/favicon-16x16.png">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css">
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/Sortable/1.14.0/Sortable.min.js"></script>
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/howler/2.2.3/howler.min.js"></script>
<script defer src="main.js"></script>
</head>
<body>
<div class="header" role="banner">
<div class="titel">
<img src="/img/icon.png" alt="Logo des Radioplayers" height="35" width="35">
<h1>Radioplayer <button class="stop-button hidden" aria-label="Wiedergabe stoppen"><i class="fas fa-stop"></i></button></h1>
</div>
<div class="current-station" aria-live="polite">
<span id="aktueller-sender"><span id="current-station-name">Wähle einen Sender aus</span></span>
</div>
</div>
<div class="preset-container" id="preset-container" role="list"></div>
<div class="button-container">
<button id="open-sleep-timer-modal">Sleeptimer</button>
<button id="edit-presets-button" class="edit-presets-button">Presets bearbeiten</button>
</div>
<footer>
<div class="footer" role="contentinfo">
&copy; 2024-<span id="current-year"></span>&nbsp;<img src="/img/favicon-16x16.png" alt="Radioplayer" height="14" width="14">&nbsp;<span id="server-name"></span>&nbsp;//&nbsp;View on&nbsp;<a target="_blank" href="https://codeberg.org/simonpipe/Radioplayer-with-Presets"><img src="/img/codeberg_16px.ico" alt="Codeberg" height="12" width="12"> Codeberg</a>
</div>
</footer>
<div id="sleep-timer-modal" class="modal hidden">
<div class="modal-content">
<h2>Sleeptimer einstellen</h2>
<div class="button-container">
<button class="time-option" data-time="360000">6 Min</button>
<button class="time-option" data-time="720000">12 Min</button>
<button class="time-option" data-time="1080000">18 Min</button>
<button class="time-option" data-time="2160000">36 Min</button>
<button class="time-option" data-time="4320000">72 Min</button>
</div>
<div class="button-container">
<button id="off-sleep-timer-modal">Timer aus</button>
<button id="close-sleep-timer-modal">Abbrechen</button>
</div>
</div>
</div>
<div id="preset-modal" class="modal hidden">
<div class="modal-content">
<h2>Sender bearbeiten</h2>
<table id="preset-table">
<thead>
<tr>
<th></th>
<th>Name</th>
<th>URL</th>
<th></th>
</tr>
</thead>
<tbody id="sortable-tbody"></tbody>
</table>
<div class="button-container">
<button onclick="addPreset()">Neuer Sender hinzufügen</button>
<a href="https://fmstream.org" target="_blank" class="find-sender-link"><i class="fas fa-search"></i> Sender auf fmstream.org suchen</a>
</div>
<div class="share-details">
<h3>Sender importieren / exportieren</h3>
<div class="share-content">
<div class="share-section">
<h4>Importieren (String oder JSON-Datei)</h4>
<div class="input-group">
<input type="text" id="import-string-field" placeholder="String einfügen...">
<button onclick="importFromString()">Importieren</i></button> |
<button onclick="importPreset()" title="JSON Upload"><i class="fas fa-file-upload"></i> JSON</button>
</div>
</div>
<div class="share-section">
<h4>Exportieren (String oder JSON-Datei)</h4>
<div class="input-group">
<input type="text" id="export-string-field" readonly placeholder="Code wird generiert...">
<button onclick="copyExportCode()" title="Kopieren">Kopieren</i></button> |
<button onclick="exportPreset()" title="JSON Download"><i class="fas fa-download"></i> JSON</button>
</div>
</div>
</div>
</div>
<div class="button-container">
<button onclick="closeModal()" class="btn-cancel">Abbrechen</button>
<button onclick="saveAndClose()" class="btn-ok">Speichern & Schließen</button>
</div>
</div>
</div>
<div id="custom-modal" class="custom-modal hidden">
<div class="custom-modal-content">
<h3 id="custom-modal-title">Titel</h3>
<p id="custom-modal-message">Nachricht</p>
<div class="custom-modal-buttons">
<button id="custom-modal-cancel" class="btn-cancel hidden">Abbrechen</button>
<button id="custom-modal-ok" class="btn-ok">OK</button>
</div>
</div>
</div>
</body>
</html>