Loading modules/PodcastImport/Controllers/PodcastImportController.php +9 −3 Original line number Diff line number Diff line Loading @@ -145,11 +145,17 @@ class PodcastImportController extends BaseController $importTask = $importQueue[$taskId]; switch ($action) { case 'cancel': if ($importTask->status === TaskStatus::Running || $importTask->status === TaskStatus::Queued) { $importTask->cancel(); return redirect()->back() ->with('message', lang('PodcastImport.messages.canceled')); } return redirect()->back() ->with('error', lang('PodcastImport.messages.notRunning')); case 'retry': if ($importTask->status === TaskStatus::Running) { if ($importTask->status === TaskStatus::Running || $importTask->status === TaskStatus::Queued) { return redirect()->back() ->with('error', lang('PodcastImport.messages.alreadyRunning')); } Loading modules/PodcastImport/Language/en/PodcastImport.php +1 −0 Original line number Diff line number Diff line Loading @@ -50,6 +50,7 @@ return [ ], 'messages' => [ 'canceled' => 'Import task has been successfully canceled!', 'notRunning' => 'Cannot cancel Import Task as it is not running.', 'alreadyRunning' => 'Import Task is already running. You may cancel it before retrying.', 'retried' => 'Import task has been queued, it will be retried shortly!', 'deleted' => 'Import task has been successfully deleted!', Loading themes/cp_admin/import/_queue_table.php +27 −21 Original line number Diff line number Diff line Loading @@ -98,21 +98,7 @@ use Modules\PodcastImport\Entities\TaskStatus; [ 'header' => lang('Common.list.actions'), 'cell' => function (PodcastImportTask $importTask) { return '<div class="inline-flex items-center gap-x-2">' . '<button id="more-dropdown-' . $importTask->id . '" type="button" class="inline-flex items-center p-1 rounded-full focus:ring-accent" data-dropdown="button" data-dropdown-target="more-dropdown-' . $importTask->id . '-menu" aria-haspopup="true" aria-expanded="false">' . icon('more') . '</button>' . '<DropdownMenu id="more-dropdown-' . $importTask->id . '-menu" labelledby="more-dropdown-' . $importTask->id . '" offsetY="-24" items="' . esc(json_encode([ [ 'type' => 'link', 'title' => lang('PodcastImport.queue.actions.cancel'), 'uri' => route_to('podcast-imports-task-action', $importTask->id, 'cancel'), ], [ 'type' => 'link', 'title' => lang('PodcastImport.queue.actions.retry'), 'uri' => route_to('podcast-imports-task-action', $importTask->id, 'retry'), ], $menuItems = [ [ 'type' => 'separator', ], Loading @@ -122,7 +108,27 @@ use Modules\PodcastImport\Entities\TaskStatus; 'uri' => route_to('podcast-imports-task-action', $importTask->id, 'delete'), 'class' => 'font-semibold text-red-600', ], ])) . '" />' . ]; if ($importTask->status === TaskStatus::Running || $importTask->status === TaskStatus::Queued) { array_unshift($menuItems, [ 'type' => 'link', 'title' => lang('PodcastImport.queue.actions.cancel'), 'uri' => route_to('podcast-imports-task-action', $importTask->id, 'cancel'), ]); } else { array_unshift($menuItems, [ 'type' => 'link', 'title' => lang('PodcastImport.queue.actions.retry'), 'uri' => route_to('podcast-imports-task-action', $importTask->id, 'retry'), ], ); } return '<div class="inline-flex items-center gap-x-2">' . '<button id="more-dropdown-' . $importTask->id . '" type="button" class="inline-flex items-center p-1 rounded-full focus:ring-accent" data-dropdown="button" data-dropdown-target="more-dropdown-' . $importTask->id . '-menu" aria-haspopup="true" aria-expanded="false">' . icon('more') . '</button>' . '<DropdownMenu id="more-dropdown-' . $importTask->id . '-menu" labelledby="more-dropdown-' . $importTask->id . '" offsetY="-24" items="' . esc(json_encode($menuItems)) . '" />' . '</div>'; }, ], Loading Loading
modules/PodcastImport/Controllers/PodcastImportController.php +9 −3 Original line number Diff line number Diff line Loading @@ -145,11 +145,17 @@ class PodcastImportController extends BaseController $importTask = $importQueue[$taskId]; switch ($action) { case 'cancel': if ($importTask->status === TaskStatus::Running || $importTask->status === TaskStatus::Queued) { $importTask->cancel(); return redirect()->back() ->with('message', lang('PodcastImport.messages.canceled')); } return redirect()->back() ->with('error', lang('PodcastImport.messages.notRunning')); case 'retry': if ($importTask->status === TaskStatus::Running) { if ($importTask->status === TaskStatus::Running || $importTask->status === TaskStatus::Queued) { return redirect()->back() ->with('error', lang('PodcastImport.messages.alreadyRunning')); } Loading
modules/PodcastImport/Language/en/PodcastImport.php +1 −0 Original line number Diff line number Diff line Loading @@ -50,6 +50,7 @@ return [ ], 'messages' => [ 'canceled' => 'Import task has been successfully canceled!', 'notRunning' => 'Cannot cancel Import Task as it is not running.', 'alreadyRunning' => 'Import Task is already running. You may cancel it before retrying.', 'retried' => 'Import task has been queued, it will be retried shortly!', 'deleted' => 'Import task has been successfully deleted!', Loading
themes/cp_admin/import/_queue_table.php +27 −21 Original line number Diff line number Diff line Loading @@ -98,21 +98,7 @@ use Modules\PodcastImport\Entities\TaskStatus; [ 'header' => lang('Common.list.actions'), 'cell' => function (PodcastImportTask $importTask) { return '<div class="inline-flex items-center gap-x-2">' . '<button id="more-dropdown-' . $importTask->id . '" type="button" class="inline-flex items-center p-1 rounded-full focus:ring-accent" data-dropdown="button" data-dropdown-target="more-dropdown-' . $importTask->id . '-menu" aria-haspopup="true" aria-expanded="false">' . icon('more') . '</button>' . '<DropdownMenu id="more-dropdown-' . $importTask->id . '-menu" labelledby="more-dropdown-' . $importTask->id . '" offsetY="-24" items="' . esc(json_encode([ [ 'type' => 'link', 'title' => lang('PodcastImport.queue.actions.cancel'), 'uri' => route_to('podcast-imports-task-action', $importTask->id, 'cancel'), ], [ 'type' => 'link', 'title' => lang('PodcastImport.queue.actions.retry'), 'uri' => route_to('podcast-imports-task-action', $importTask->id, 'retry'), ], $menuItems = [ [ 'type' => 'separator', ], Loading @@ -122,7 +108,27 @@ use Modules\PodcastImport\Entities\TaskStatus; 'uri' => route_to('podcast-imports-task-action', $importTask->id, 'delete'), 'class' => 'font-semibold text-red-600', ], ])) . '" />' . ]; if ($importTask->status === TaskStatus::Running || $importTask->status === TaskStatus::Queued) { array_unshift($menuItems, [ 'type' => 'link', 'title' => lang('PodcastImport.queue.actions.cancel'), 'uri' => route_to('podcast-imports-task-action', $importTask->id, 'cancel'), ]); } else { array_unshift($menuItems, [ 'type' => 'link', 'title' => lang('PodcastImport.queue.actions.retry'), 'uri' => route_to('podcast-imports-task-action', $importTask->id, 'retry'), ], ); } return '<div class="inline-flex items-center gap-x-2">' . '<button id="more-dropdown-' . $importTask->id . '" type="button" class="inline-flex items-center p-1 rounded-full focus:ring-accent" data-dropdown="button" data-dropdown-target="more-dropdown-' . $importTask->id . '-menu" aria-haspopup="true" aria-expanded="false">' . icon('more') . '</button>' . '<DropdownMenu id="more-dropdown-' . $importTask->id . '-menu" labelledby="more-dropdown-' . $importTask->id . '" offsetY="-24" items="' . esc(json_encode($menuItems)) . '" />' . '</div>'; }, ], Loading