Show enables permalink, disablink permalink show is disabled too

This commit is contained in:
hbrain 2026-06-07 07:58:26 +02:00
parent bc61ecde3c
commit e8641c6249

View file

@ -1144,8 +1144,11 @@ try {
$state = input_dir_state($dir); $state = input_dir_state($dir);
$output = basename((string)($state['output'] ?? '')); $output = basename((string)($state['output'] ?? ''));
$canShow = $output !== '' && is_file($config['videos_dir'].'/'.$output) && !input_dir_preview($dir); $canShow = $output !== '' && is_file($config['videos_dir'].'/'.$output) && !input_dir_preview($dir);
$canPermalink = input_dir_can_permalink($dir, $config);
if ($visibleNow && !$canShow) throw new RuntimeException('Only finished full-quality videos can be shown.'); if ($visibleNow && !$canShow) throw new RuntimeException('Only finished full-quality videos can be shown.');
if ($visibleNow && !$canPermalink) throw new RuntimeException('Only finished full-quality videos can use permalinks.');
set_input_dir_visible($dir, $visibleNow && $canShow); set_input_dir_visible($dir, $visibleNow && $canShow);
if ($visibleNow && $canShow && $canPermalink) set_input_dir_permalink($dir, true);
// Attempt to send "Show enabled" notification (server-side) on enable. Non-fatal. // Attempt to send "Show enabled" notification (server-side) on enable. Non-fatal.
if ($visibleNow && $canShow) { if ($visibleNow && $canShow) {
if (is_file(__DIR__ . '/lib/send_push.php')) { if (is_file(__DIR__ . '/lib/send_push.php')) {
@ -1163,8 +1166,9 @@ try {
ajax_json([ ajax_json([
'ok' => true, 'ok' => true,
'visible' => $currentVisible, 'visible' => $currentVisible,
'permalink' => input_dir_permalink($dir),
'can_show' => $canShow, 'can_show' => $canShow,
'can_permalink' => input_dir_can_permalink($dir, $config), 'can_permalink' => $canPermalink,
'dir' => basename($dir), 'dir' => basename($dir),
'id' => $articleId, 'id' => $articleId,
'message' => $message, 'message' => $message,
@ -1179,11 +1183,19 @@ try {
$canPermalink = input_dir_can_permalink($dir, $config); $canPermalink = input_dir_can_permalink($dir, $config);
if ($permalinkNow && !$canPermalink) throw new RuntimeException('Only finished full-quality videos can use permalinks.'); if ($permalinkNow && !$canPermalink) throw new RuntimeException('Only finished full-quality videos can use permalinks.');
set_input_dir_permalink($dir, $permalinkNow && $canPermalink); set_input_dir_permalink($dir, $permalinkNow && $canPermalink);
if (!$permalinkNow) set_input_dir_visible($dir, false);
$currentPermalink = input_dir_permalink($dir);
$state = input_dir_state($dir);
$output = basename((string)($state['output'] ?? ''));
$canShow = $output !== '' && is_file($config['videos_dir'].'/'.$output) && !input_dir_preview($dir);
$currentVisible = input_dir_visible($dir) && $canShow;
$message = ($permalinkNow ? 'Permalink enabled for: in-dir/' : 'Permalink disabled for: in-dir/') . basename($dir); $message = ($permalinkNow ? 'Permalink enabled for: in-dir/' : 'Permalink disabled for: in-dir/') . basename($dir);
if (!empty($_POST['ajax'])) { if (!empty($_POST['ajax'])) {
ajax_json([ ajax_json([
'ok' => true, 'ok' => true,
'permalink' => $permalinkNow && $canPermalink, 'permalink' => $currentPermalink,
'visible' => $currentVisible,
'can_show' => $canShow,
'can_permalink' => $canPermalink, 'can_permalink' => $canPermalink,
'dir' => basename($dir), 'dir' => basename($dir),
'id' => $articleId, 'id' => $articleId,