Fix player UI: sports Highlights pane, scrubber knob, volume knob, description + save-to-playlist
Player/UI fixes:
- Sports (match) Highlights pane: move the toggle click-handler script out of
the always-false @if(false ...) legacy block so the "Highlights" button opens,
and emit videoId/isOwner with @json instead of {{ json_encode() }} (escaped
quotes crashed the data/tab/CRUD block once route keys became hashid strings).
- Progress scrubber knob (video + audio players): center on the track line with
translate(-50%, -50%); drop the margin-top hack that floated it above the line.
- Music player volume: give the slider wrap height so overflow:hidden no longer
crops the knob; add a subtle thumb shadow for visibility.
- Music language menu: cap height to available space above the header, sticky
header, internal scroll; keep controls from auto-hiding while the menu is open.
- Description box: re-check "Show more" overflow at every settle point (fonts,
images, rAF, tab reopen) so SPA autonext keeps the expand button.
Also bundles pending work: save-to-playlist button component, playlist/channel
views, PlaylistController + NasSyncService, and component-usage tracker updates.
Co-Authored-By: Claude Opus 4.8 <[email protected]>
This commit is contained in:
1 parent
80948efff7
commit
6b43a7060a
14 files changed
+236
-136
No files matched your search
@@ -997,12 +997,11 @@ class VideoController extends Controller
|
||||
$data['thumbnail'] = "{$nasDir}/thumb.{$ext}";
|
||||
}
|
||||
} else {
|
||||
// NAS disabled — keep on local disk
|
||||
$localDir = $nas->localVideoDir($video);
|
||||
// NAS disabled — keep on local disk, mirroring the NAS path
|
||||
$nasDir = $this->nasVideoDir($video, $nas);
|
||||
$localDir = storage_path('app/' . $nasDir);
|
||||
@mkdir($localDir, 0755, true);
|
||||
$request->file('thumbnail')->move($localDir, "thumb.{$ext}");
|
||||
$userSlug = $nas->userSlug($video->user);
|
||||
$nasDir = $this->nasVideoDir($video, $nas);
|
||||
$data['thumbnail'] = "{$nasDir}/thumb.{$ext}";
|
||||
}
|
||||
}
|
||||
@@ -1041,13 +1040,13 @@ class VideoController extends Controller
|
||||
$nasForSlides = app(\App\Services\NasSyncService::class);
|
||||
$nasEnabled = $nasForSlides->isEnabled();
|
||||
|
||||
// Derive NAS dir without scanning when possible
|
||||
$nasDir = $nasEnabled ? $this->nasVideoDir($video, $nasForSlides) : null;
|
||||
|
||||
// Local dir used as fallback or when NAS is off
|
||||
$localDir = $nasForSlides->localVideoDir($video);
|
||||
$userSlug = $nasForSlides->userSlug($video->user);
|
||||
// Derive NAS dir without scanning — works regardless of NAS state
|
||||
$relBase = $this->nasVideoDir($video, $nasForSlides);
|
||||
$nasDir = $nasEnabled ? $relBase : null;
|
||||
|
||||
// Local dir mirrors the NAS path so MediaController can find files
|
||||
// whether NAS is reachable or not.
|
||||
$localDir = storage_path('app/' . $relBase);
|
||||
|
||||
if ($nasEnabled) {
|
||||
$nasForSlides->mkdirp("{$nasDir}/slides");
|
||||
|
||||
Reference in new issue
Block a user