diff --git a/new.php b/new.php
index 4a73e13..a23d10b 100644
--- a/new.php
+++ b/new.php
@@ -586,6 +586,9 @@ function page_links($tab, $page, $pages){
if ($tab === 'edit') {
$q = trim((string)($_GET['q'] ?? ''));
if ($q !== '') $extra .= '&q=' . rawurlencode($q);
+ if (!empty($_GET['f_preview'])) $extra .= '&f_preview=1';
+ if (!empty($_GET['f_render'])) $extra .= '&f_render=1';
+ if (!empty($_GET['f_shown'])) $extra .= '&f_shown=1';
}
$html = '
';
for ($i = 1; $i <= $pages; $i++) {
@@ -802,13 +805,18 @@ $tab = $_GET['tab'] ?? 'edit';
$rawKeyword = trim((string)($_GET['q'] ?? ''));
$keywordType = 'general';
$keywordValue = $rawKeyword;
+$filterPreview = !empty($_GET['f_preview']);
+$filterRender = !empty($_GET['f_render']);
+$filterShown = !empty($_GET['f_shown']);
+$statusFilterActive = $filterPreview || $filterRender || $filterShown;
+$searchEmpty = ($rawKeyword === '' && !$statusFilterActive);
if ($rawKeyword !== '' && preg_match('/^\s*(date|location|place)\s*=\s*(.+)\s*$/i', $rawKeyword, $m)) {
$keywordType = strtolower((string)$m[1]);
if ($keywordType === 'place') $keywordType = 'location';
$keywordValue = trim((string)$m[2]);
}
-if ($keywordValue !== '') {
- $dirs = array_values(array_filter($dirs, function($dir) use ($keywordType, $keywordValue, $config) {
+if ($keywordValue !== '' || $statusFilterActive) {
+ $dirs = array_values(array_filter($dirs, function($dir) use ($keywordType, $keywordValue, $config, $statusFilterActive, $filterPreview, $filterRender, $filterShown) {
$data = read_data($dir);
$state = input_dir_state($dir);
$fullOutput = basename((string)($state['output'] ?? ''));
@@ -816,9 +824,22 @@ if ($keywordValue !== '') {
$hasFullVideo = $fullOutput !== '' && is_file($config['videos_dir'].'/'.$fullOutput);
$hasPreviewVideo = $previewOutput !== '' && is_file($config['videos_dir'].'/'.$previewOutput);
$preview = input_dir_preview($dir);
+ $enabled = input_dir_enabled($dir);
+ $canShow = $hasFullVideo && !$preview;
+ $visible = $canShow && input_dir_visible($dir);
+
+ if ($statusFilterActive) {
+ $statusMatch = false;
+ if ($filterPreview && $preview) $statusMatch = true;
+ if ($filterRender && $enabled) $statusMatch = true;
+ if ($filterShown && $visible) $statusMatch = true;
+ if (!$statusMatch) return false;
+ }
+
+ if ($keywordValue === '') return true;
+
$displayOutput = ($preview && $hasPreviewVideo) ? $previewOutput : ($hasFullVideo ? $fullOutput : ($hasPreviewVideo ? $previewOutput : ''));
$meta = cached_video_metadata($displayOutput, $data);
-
$title = (string)($meta['title'] ?: ($data['title'] ?: basename($dir)));
$description = (string)($meta['description'] ?? ($data['description'] ?? ''));
$date = (string)($meta['date'] ?? ($data['date'] ?? ''));
@@ -839,13 +860,13 @@ $editDir = null; $editStatus = ''; $editRunning = false; $editData = ['title'=>'
if ($editName !== '' || $editId !== '') { try { $editDir = resolve_input_dir_from_request($config['uploads_dir'], $editId, $editName, $articleIndex); $editStatus = input_dir_status($editDir); $editRunning = input_dir_running($editDir); if (!$editRunning) { $editData = read_data($editDir); $editFiles = media_sort_files($editDir, list_files($editDir)); } } catch (Throwable $e) { $err = $e->getMessage(); } }
$runningJobs = active_worker_jobs($config);
?>
-
Admin - =h($config['site_name'])?>
+
Admin - =h($config['site_name'])?>
=h($err)?>
Videos without input dir
No orphan videos.
=page_links('videos',$videoPage,$videoPages)?>
-No input directories yet.
No video yet
+
No input directories yet.
No video yet