- Add per-user activity logging to AdminBin: every RESTORE_* action
writes to /var/log/gniza/cpanel-<user>.log with action details and
gniza command output
- New logs.live.cgi CGI with paginated activity list and detail view
- WHM logs.cgi now shows cpanel-*.log files with Owner column and
structured activity entry viewer with expandable command output
- Add Logs nav item to cPanel plugin, update install.sh
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace the 8-card category grid with a unified restore workflow:
- index.live.cgi: now serves as Step 1 (remote + snapshot selection)
- restore.live.cgi: Step 2 (Full Account/Selective mode toggle with
type checkboxes, exclude paths, file browser), Step 3 (multi-type
confirmation), Step 4 (multi-type execution via AdminBin)
Also update cPanel plugin icon from gniza.svg source.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Perl's qq{} delimiter matches balanced braces, which conflicted with
JavaScript curly braces, producing empty function bodies. Converted
_print_step1_js and _print_step2_js to heredoc blocks.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Use $cpanel->header() and $cpanel->footer() from LiveAPI to wrap
plugin content in cPanel's standard layout with sidebar navigation.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
cPanel's live engine requires .live.cgi files to create a
Cpanel::LiveAPI connection. Without it, the engine cannot
establish communication with the CGI subprocess.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>