Skip to content

Commit c58e860

Browse files
committed
fix(training): embed roadmap PDF in iframe again for clickable links
PDF.js canvas rendering dropped link annotations; use the native PDF viewer in an iframe so roadmap URLs stay interactive. Made-with: Cursor
1 parent 1b528e1 commit c58e860

4 files changed

Lines changed: 2 additions & 126 deletions

File tree

app/Http/Controllers/TrainingRoadmapPdfController.php

Lines changed: 0 additions & 51 deletions
This file was deleted.

resources/views/training/partials/roadmap-pdf-embed.blade.php

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,9 @@
44
@php
55
// Strip any fragment from stored URL for the "open in new tab" link.
66
$tabUrl = \Illuminate\Support\Str::before($url, '#');
7-
// Same-origin PDF.js viewer for the allowlisted DDP roadmap (see TrainingRoadmapPdfController).
8-
// Other URLs keep the direct PDF iframe with viewer chrome hints.
9-
$ddpRoadmapBase = 'https://codeweek-resources.s3.eu-west-1.amazonaws.com/+discover-digital-toolkit/DDP_toolkit_roadmap.pdf';
10-
$usePdfjsViewer = strtolower(rtrim($tabUrl, '/')) === strtolower(rtrim($ddpRoadmapBase, '/'));
7+
// Native PDF in iframe keeps link annotations clickable (canvas PDF.js viewers do not).
118
$fragment = '#toolbar=0&navpanes=0&scrollbar=1&view=FitH';
12-
$embedSrc = $usePdfjsViewer ? route('training.roadmap_pdf_viewer') : $tabUrl.$fragment;
9+
$embedSrc = $tabUrl.$fragment;
1310
@endphp
1411
<div class="w-full max-w-full my-6 rounded-xl overflow-hidden border border-slate-200 bg-slate-100 shadow-sm">
1512
<iframe

resources/views/training/roadmap-pdfjs.blade.php

Lines changed: 0 additions & 65 deletions
This file was deleted.

routes/web.php

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,6 @@
6363
use App\Http\Controllers\CertificateBackendController;
6464
use App\Http\Controllers\ToolkitsController;
6565
use App\Http\Controllers\TrainingController;
66-
use App\Http\Controllers\TrainingRoadmapPdfController;
6766
use App\Http\Controllers\UnsubscribeController;
6867
use App\Http\Controllers\UserController;
6968
use App\Http\Controllers\VolunteerController;
@@ -341,10 +340,6 @@
341340
Route::get('/training-preview/{trainingResource}', [TrainingController::class, 'preview'])
342341
->middleware('signed')
343342
->name('training.preview');
344-
Route::get('/training/embedded-roadmap.pdf', [TrainingRoadmapPdfController::class, 'proxyPdf'])
345-
->name('training.embedded_pdf.roadmap');
346-
Route::get('/training/roadmap-pdf-viewer', [TrainingRoadmapPdfController::class, 'viewer'])
347-
->name('training.roadmap_pdf_viewer');
348343
Route::get('/training/{slug}', [TrainingController::class, 'show'])->name('training.dynamic.show');
349344
Route::post('/contact-submit', [ContactFormController::class, 'submit'])
350345
->middleware('throttle:5,1') // 5 requests per minute per IP

0 commit comments

Comments
 (0)