Bugfixes
This commit is contained in:
parent
5d9c5dbe5a
commit
0b0396af48
@ -116,6 +116,10 @@ class TalpaApi {
|
||||
]);
|
||||
}
|
||||
|
||||
public function deleteTransmission($transmissionId) {
|
||||
return $this->request('DELETE', '/linearSchedule/v1/transmissions/' . $transmissionId);
|
||||
}
|
||||
|
||||
public function deleteEpisode($contentId) {
|
||||
return $this->request('DELETE', '/content/v1/episodes/' . $contentId);
|
||||
}
|
||||
@ -127,6 +131,7 @@ class TalpaApi {
|
||||
if (strpos($endpoint, '/content/v1/episodes') !== false) return ["statusCode" => "200", "message" => "Episode deleted"];
|
||||
if (strpos($endpoint, '/mam/v1/mediaAssets') !== false && !isset($data)) return ["mediaAssetLabel" => "TEL_MOCK_" . rand(100, 999)];
|
||||
if (strpos($endpoint, '/mam/v1/mediaAssets') !== false) return ["id" => "MOCK_ASSET_" . time()];
|
||||
if (strpos($endpoint, '/linearSchedule/v1/transmissions') !== false && strpos($endpoint, 'DELETE') !== false) return ["statusCode" => "200", "message" => "Transmission deleted"];
|
||||
if (strpos($endpoint, '/linearSchedule/v1/transmissions') !== false && strpos($endpoint, 'PUT') === false) return ["statusCode" => "201", "id" => "MOCK_TX_" . time()];
|
||||
if (strpos($endpoint, '/linearSchedule/v1/transmissions') !== false) return ["statusCode" => "200", "message" => "Transmission updated"];
|
||||
return [];
|
||||
|
||||
@ -6,6 +6,7 @@
|
||||
|
||||
require_once __DIR__ . '/../vendor/autoload.php';
|
||||
require_once __DIR__ . '/../helpers.php';
|
||||
require_once __DIR__ . '/../TalpaAPI.php';
|
||||
|
||||
use Dotenv\Dotenv;
|
||||
|
||||
@ -32,18 +33,33 @@ try {
|
||||
], 400);
|
||||
}
|
||||
|
||||
// Check if transmission exists
|
||||
$stmt = $db->prepare("SELECT id FROM transmissions WHERE id = ?");
|
||||
// Check if transmission exists and get talpa_transmission_id
|
||||
$stmt = $db->prepare("SELECT id, talpa_transmission_id FROM transmissions WHERE id = ?");
|
||||
$stmt->execute([$input['id']]);
|
||||
$transmission = $stmt->fetch(PDO::FETCH_ASSOC);
|
||||
|
||||
if (!$stmt->fetch()) {
|
||||
if (!$transmission) {
|
||||
jsonResponse([
|
||||
'success' => false,
|
||||
'error' => 'Transmission not found'
|
||||
], 404);
|
||||
}
|
||||
|
||||
// Delete transmission
|
||||
// Delete from Talpa API if talpa_transmission_id exists
|
||||
if (!empty($transmission['talpa_transmission_id'])) {
|
||||
try {
|
||||
$talpaApi = new TalpaApi();
|
||||
$talpaResponse = $talpaApi->deleteTransmission($transmission['talpa_transmission_id']);
|
||||
|
||||
// Log the Talpa API response
|
||||
error_log("Talpa API delete response: " . json_encode($talpaResponse));
|
||||
} catch (Exception $e) {
|
||||
// Log error but continue with local deletion
|
||||
error_log("Failed to delete transmission from Talpa API: " . $e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
// Delete transmission from local database
|
||||
$stmt = $db->prepare("DELETE FROM transmissions WHERE id = ?");
|
||||
$stmt->execute([$input['id']]);
|
||||
|
||||
|
||||
@ -298,6 +298,13 @@ body {
|
||||
display: inline-flex;
|
||||
gap: 0.25rem;
|
||||
align-items: center;
|
||||
justify-content: flex-end;
|
||||
}
|
||||
|
||||
.action-buttons .btn-icon {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
/* Standard Button Colors */
|
||||
@ -928,6 +935,13 @@ body {
|
||||
display: flex;
|
||||
gap: 0.25rem;
|
||||
align-items: center;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.block-header-actions .btn-icon {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.block-header-time {
|
||||
|
||||
@ -111,7 +111,7 @@ $dayNames = [
|
||||
</a>
|
||||
<div class="navbar-nav">
|
||||
<a class="nav-link" href="index.php">Dashboard</a>
|
||||
<a class="nav-link" href="planner.php">Excel Planner</a>
|
||||
<a class="nav-link" href="planner.php">Planner</a>
|
||||
<a class="nav-link" href="calendar.php">Kalender</a>
|
||||
<a class="nav-link active" href="blocks.php">Blokken</a>
|
||||
<a class="nav-link" href="infomercials.php">Infomercials</a>
|
||||
|
||||
@ -71,7 +71,7 @@ $infomercials = $db->query("
|
||||
</a>
|
||||
<div class="navbar-nav">
|
||||
<a class="nav-link" href="index.php">Dashboard</a>
|
||||
<a class="nav-link" href="planner.php">Excel Planner</a>
|
||||
<a class="nav-link" href="planner.php">Planner</a>
|
||||
<a class="nav-link active" href="calendar.php">Kalender</a>
|
||||
<a class="nav-link" href="blocks.php">Blokken</a>
|
||||
<a class="nav-link" href="infomercials.php">Infomercials</a>
|
||||
|
||||
@ -115,7 +115,7 @@ if (isset($_GET['edit'])) {
|
||||
</a>
|
||||
<div class="navbar-nav">
|
||||
<a class="nav-link active" href="index.php">Dashboard</a>
|
||||
<a class="nav-link" href="planner.php">Excel Planner</a>
|
||||
<a class="nav-link" href="planner.php">Planner</a>
|
||||
<a class="nav-link" href="calendar.php">Kalender</a>
|
||||
<a class="nav-link" href="blocks.php">Blokken</a>
|
||||
<a class="nav-link" href="infomercials.php">Infomercials</a>
|
||||
@ -176,7 +176,7 @@ if (isset($_GET['edit'])) {
|
||||
<div class="card shadow-sm h-100">
|
||||
<div class="card-body text-center">
|
||||
<i class="bi bi-table" style="font-size: 3rem; color: #2ecc71;"></i>
|
||||
<h5 class="mt-3">Excel Planner</h5>
|
||||
<h5 class="mt-3">Planner</h5>
|
||||
<p class="text-muted">Tabel-gebaseerde planning</p>
|
||||
<a href="planner.php" class="btn btn-success">
|
||||
<i class="bi bi-arrow-right-circle"></i> Open Planner
|
||||
|
||||
@ -284,7 +284,7 @@ $infomercials = $db->query("
|
||||
</a>
|
||||
<div class="navbar-nav">
|
||||
<a class="nav-link" href="index.php">Dashboard</a>
|
||||
<a class="nav-link" href="planner.php">Excel Planner</a>
|
||||
<a class="nav-link" href="planner.php">Planner</a>
|
||||
<a class="nav-link" href="calendar.php">Kalender</a>
|
||||
<a class="nav-link" href="blocks.php">Blokken</a>
|
||||
<a class="nav-link active" href="infomercials.php">Infomercials</a>
|
||||
|
||||
63
planner.php
63
planner.php
@ -44,14 +44,8 @@ if (isset($_POST['add_to_block'])) {
|
||||
exit;
|
||||
}
|
||||
|
||||
// Handle remove transmission
|
||||
if (isset($_POST['remove_transmission'])) {
|
||||
$stmt = $db->prepare("DELETE FROM transmissions WHERE id = ?");
|
||||
$stmt->execute([$_POST['transmission_id']]);
|
||||
|
||||
header("Location: planner.php?date={$_POST['date']}&success=removed");
|
||||
exit;
|
||||
}
|
||||
// Handle remove transmission - REMOVED: Now handled via AJAX to delete_transmission.php API
|
||||
// This ensures proper Talpa API deletion
|
||||
|
||||
// Handle reorder (move up/down)
|
||||
if (isset($_POST['reorder'])) {
|
||||
@ -268,7 +262,7 @@ function calculateNextStartTimeForBlock($db, $date, $channel, $blockId) {
|
||||
</a>
|
||||
<div class="navbar-nav">
|
||||
<a class="nav-link" href="index.php">Dashboard</a>
|
||||
<a class="nav-link active" href="planner.php">Excel Planner</a>
|
||||
<a class="nav-link active" href="planner.php">Planner</a>
|
||||
<a class="nav-link" href="calendar.php">Kalender</a>
|
||||
<a class="nav-link" href="blocks.php">Blokken</a>
|
||||
<a class="nav-link" href="infomercials.php">Infomercials</a>
|
||||
@ -304,7 +298,6 @@ function calculateNextStartTimeForBlock($db, $date, $channel, $blockId) {
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<label class="form-label"><strong>Selecteer Datum</strong></label>
|
||||
<input type="date" name="date" class="form-control" value="<?= $selectedDate ?>" required>
|
||||
</div>
|
||||
<div class="col-md-1">
|
||||
@ -601,13 +594,11 @@ function calculateNextStartTimeForBlock($db, $date, $channel, $blockId) {
|
||||
</form>
|
||||
<?php endif; ?>
|
||||
|
||||
<form method="POST" style="display:inline;" onsubmit="return confirm('Verwijderen?');">
|
||||
<input type="hidden" name="transmission_id" value="<?= $tx['id'] ?>">
|
||||
<input type="hidden" name="date" value="<?= $selectedDate ?>">
|
||||
<button type="submit" name="remove_transmission" class="btn-icon btn-icon-xs btn-icon-danger">
|
||||
<i class="bi bi-trash"></i>
|
||||
</button>
|
||||
</form>
|
||||
<button type="button"
|
||||
class="btn-icon btn-icon-xs btn-icon-danger"
|
||||
onclick="deleteTransmissionPlanner(<?= $tx['id'] ?>, '<?= $selectedDate ?>')">
|
||||
<i class="bi bi-trash"></i>
|
||||
</button>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
@ -905,6 +896,44 @@ function calculateNextStartTimeForBlock($db, $date, $channel, $blockId) {
|
||||
});
|
||||
});
|
||||
|
||||
// Delete transmission via API (calls Talpa API)
|
||||
function deleteTransmissionPlanner(transmissionId, date) {
|
||||
if (!confirm('Weet je zeker dat je deze uitzending wilt verwijderen?\n\nDit verwijdert ook de uitzending uit Talpa.')) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Show loading indicator
|
||||
const btn = event.target.closest('button');
|
||||
const originalHTML = btn.innerHTML;
|
||||
btn.disabled = true;
|
||||
btn.innerHTML = '<span class="spinner-border spinner-border-sm" role="status"></span>';
|
||||
|
||||
fetch('api/delete_transmission.php', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
body: JSON.stringify({ id: transmissionId })
|
||||
})
|
||||
.then(response => response.json())
|
||||
.then(data => {
|
||||
if (data.success) {
|
||||
// Reload page to show updated list
|
||||
window.location.href = `planner.php?date=${date}&success=removed`;
|
||||
} else {
|
||||
alert('✗ Fout bij verwijderen: ' + (data.error || 'Onbekende fout'));
|
||||
btn.disabled = false;
|
||||
btn.innerHTML = originalHTML;
|
||||
}
|
||||
})
|
||||
.catch(error => {
|
||||
console.error('Error:', error);
|
||||
alert('✗ Netwerkfout bij verwijderen');
|
||||
btn.disabled = false;
|
||||
btn.innerHTML = originalHTML;
|
||||
});
|
||||
}
|
||||
|
||||
// Sync block to Talpa
|
||||
function syncBlockPlanner(date, channel) {
|
||||
if (!confirm(`Wilt u alle uitzendingen in dit blok synchroniseren naar Talpa?\n\nDatum: ${date}\nZender: ${channel}`)) {
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
|
||||
## 📋 Overzicht
|
||||
|
||||
Implementatie van een functie om blokken (inclusief transmissions en bloktijden) te kopiëren van andere dagen naar de huidige dag in de Excel Planner view.
|
||||
Implementatie van een functie om blokken (inclusief transmissions en bloktijden) te kopiëren van andere dagen naar de huidige dag in de Planner view.
|
||||
|
||||
## 🎯 Functionaliteit Vereisten
|
||||
|
||||
@ -11,7 +11,7 @@ Implementatie van een functie om blokken (inclusief transmissions en bloktijden)
|
||||
- **Bloktijden**: De `actual_start_time` en `actual_end_time` van het bronblok
|
||||
|
||||
### Gebruikersflow
|
||||
1. Gebruiker opent Excel Planner ([`planner.php`](planner.php))
|
||||
1. Gebruiker opent Planner ([`planner.php`](planner.php))
|
||||
2. Gebruiker klikt op "Kopieer Blok" knop bij een specifiek blok
|
||||
3. Modal opent met:
|
||||
- Selectie van **brondag** (datepicker)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user