#!/usr/local/cpanel/3rdparty/bin/perl # gniza WHM Plugin — Schedule CRUD use strict; use warnings; use lib '/usr/local/cpanel/whostmgr/docroot/cgi/gniza-whm/lib'; use Whostmgr::HTMLInterface (); use Cpanel::Form (); use File::Copy (); use POSIX (); use GnizaWHM::Config; use GnizaWHM::Validator; use GnizaWHM::Cron; use GnizaWHM::UI; my $form = Cpanel::Form::parseform(); my $method = $ENV{'REQUEST_METHOD'} // 'GET'; my $action = $form->{'action'} // 'list'; # Route to handler if ($action eq 'add') { handle_add() } elsif ($action eq 'edit') { handle_edit() } elsif ($action eq 'delete') { handle_delete() } elsif ($action eq 'toggle_cron') { handle_toggle_cron() } elsif ($action eq 'toggle_sysbackup') { handle_toggle_sysbackup() } elsif ($action eq 'toggle_skip_suspended') { handle_toggle_skip_suspended() } elsif ($action eq 'run_now') { handle_run_now() } else { handle_list() } exit; # ── List ───────────────────────────────────────────────────── sub handle_list { print "Content-Type: text/html\r\n\r\n"; Whostmgr::HTMLInterface::defheader('GNIZA Backup Manager — Schedules', '', '/cgi/gniza-whm/schedules.cgi'); print GnizaWHM::UI::page_header('Schedule Management'); print GnizaWHM::UI::render_nav('schedules.cgi'); print GnizaWHM::UI::render_flash(); # Configured schedules my @schedules = GnizaWHM::UI::list_schedules(); my $cron_schedules = GnizaWHM::Cron::get_current_schedules(); print qq{
| Name | Type | Time | Day | Remotes | Sys Backup | Skip Suspended | Active | Actions |
|---|---|---|---|---|---|---|---|---|
| $esc_name | }; print qq{$esc_sched | $esc_time | $esc_day | $esc_remotes | }; print qq{}; print qq{}; print qq{ | }; print qq{}; print qq{}; print qq{ | }; print qq{}; print qq{}; print qq{ | }; print qq{};
print qq{ };
print qq{};
print qq{};
print qq{};
print qq{ };
print qq{ | };
print qq{
No schedules configured. Add a schedule to define when backups run.
\n}; } print qq{