diff --git a/TalpaAPI.php b/TalpaAPI.php index 83152fc..5815655 100644 --- a/TalpaAPI.php +++ b/TalpaAPI.php @@ -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 []; diff --git a/api/delete_transmission.php b/api/delete_transmission.php index 621e10e..7048147 100644 --- a/api/delete_transmission.php +++ b/api/delete_transmission.php @@ -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']]); diff --git a/assets/css/custom.css b/assets/css/custom.css index 8ed044b..6b5b31a 100644 --- a/assets/css/custom.css +++ b/assets/css/custom.css @@ -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 { diff --git a/blocks.php b/blocks.php index 6d1d60b..50f0da0 100644 --- a/blocks.php +++ b/blocks.php @@ -111,7 +111,7 @@ $dayNames = [