Edit template for controller - Refine params copy and bring DB opens up to spec with UTF8

This commit is contained in:
2025-10-06 10:57:00 +01:00
parent 29f8de63fd
commit ecb846fc6c
119 changed files with 10059 additions and 36 deletions

View File

@@ -0,0 +1,106 @@
% layout "AdminLTE", title => "Sme server 2 - backup";
% content_for "module" => begin
<div class="card-body">
% if (config->{debug} == 1) {
<pre>
<%= dumper $c->current_route %>
<%= dumper $bac_datas %>
</pre>
% }
% if ( stash "error" ) {
<br>
<div class="text-danger">
<%= $c->render_to_string(inline => stash "error") %>
</div>
% }
<h1><%= $title%></h1>
<br>
<h2><%= l "bac_ENABLE_DISABLE_TAPE" %></h2>
<br>
<div>
<%= $c->render_to_string(inline => (l "bac_TAPE_CONFIG_DESC")) %>
</div>
<br>
<form action="/smanager/backupd" method="POST">
<div class="row g-3 align-items-center">
<div class="col-md-1">
<%= l "bac_ENABLE_TAPE_BACKUP" %>
</div>
<div class="col-auto">
% if ( $bac_datas->{status} eq "checked" ) {
<input type="checkbox" name="Tapebackup" aria-describedby="enabled" checked >
% } else {
<input type="checkbox" name="Tapebackup" aria-describedby="disabled">
% }
</div>
</div>
<br>
<div class="row g-3 align-items-center">
<div class="col-md-2">
<label for="inputBackupHour" class="col-form-label"><%= l "bac_TAPE_BACKUP_TIME" %></label>
<label for="inputBackupMin" class="col-form-label"></label>
</div>
<div class="col-auto">
% param "BackupHour" => $bac_datas->{backupHour} unless param "BackupHour";
<input type="text" name="BackupHour" id="inputBackupHour" class="form-control" maxlength="2" size="4" aria-describedby="Backup Hour" value="<%= $bac_datas->{backupHour} %>">
</div>
<div class="col-auto">
% param "BackupMin" => $bac_datas->{backupMin} unless param "BackupMin";
<input type="text" name="BackupMin" id="inputBackupMin" class="form-control" maxlength="2" size="4" aria-describedby="Backup Minute" value="<%= $bac_datas->{backupMin} %>">
</div>
<div class="col-auto">
% param "BackupAMPM" => $bac_datas->{backupAMPM} unless param "BackupAMPM";
<%= select_field "BackupAMPM" => ["AM", "PM"], class => "form-select" %>
</div>
</div>
<br>
<div class="row g-3 align-items-center">
<div class="col-md-2">
<label for="inputReminderMin" class="col-form-label"><%= l "bac_LOAD_TAPE_REMINDER_TIME" %></label>
<label for="inputReminderMin" class="col-form-label"></label>
</div>
<div class="col-auto">
% param "ReminderHour" => $bac_datas->{reminderHour} unless param "ReminderHour";
<input type="text" name="ReminderHour" id="inputReminderHour" class="form-control" maxlength="2" size="4" aria-describedby="Reminder Hour" value="<%= $bac_datas->{reminderHour} %>">
</div>
<div class="col-auto">
% param "ReminderMin" => $bac_datas->{reminderMin} unless param "ReminderMin";
<input type="text" name="ReminderMin" id="inputReminderMin" class="form-control" maxlength="2" size="4" aria-describedby="Reminder Minute" value="<%= $bac_datas->{reminderMin} %>">
</div>
<div class="col-auto">
% param "ReminderAMPM" => $bac_datas->{reminderAMPM} unless param "ReminderAMPM";
<%= select_field "ReminderAMPM" => ["AM", "PM"], class => "form-select" %>
</div>
</div>
<br>
<%= hidden_field "Function" => $bac_datas->{"function"} %>
% my $btn = l("Update");
<div class="row g-3 align-items-center">
<div class="col-md-2">
<button type="submit" class="btn btn-primary btn-sm" value="<%=$c->l("Update")%>"><%= $btn %></button>
</div>
</div>
</form>
</div>
% end

View File

@@ -0,0 +1,272 @@
% layout "AdminLTE", title => "Sme server 2 - backup - conf";
% content_for "module" => begin
<div class="card-body">
% if (config->{debug} == 1) {
<pre>
<%= dumper $c->current_route %>
<%= dumper $bac_datas %>
</pre>
% }
% if ( stash "error" ) {
<br>
<div class="text-danger">
<%= $c->render_to_string(inline => stash "error") %>
</div>
% }
<h1><%= $title%></h1>
<br>
<h2><%= l "bac_CONFIGURE_WORKSTN_BACKUP" %></h2>
<br>
<div>
<%= $c->render_to_string(inline => (l "bac_CONFIGURE_WORKSTN_BACKUP_DESC")) %>
<div>
<br>
<form action="/smanager/backupd" method="POST">
<div class="row g-3 align-items-center">
<div class="col-md-2">
<%= l "bac_ENABLE_WORKSTN_BACKUP" %>
</div>
<div class="col-auto">
% if ( $bac_datas->{status} eq "checked" ) {
<input type="checkbox" name="Workstnbackup" aria-describedby="enabled" checked >
% } else {
<input type="checkbox" name="Workstnbackup" aria-describedby="disabled">
% }
</div>
</div>
</p>
<p>
<h3>
%= l "bac_WORKSTATION_BACKUP_DEST"
</h3>
<br>
% if ( $bac_datas->{vfstype} =~ m/cifs|nfs/s ) {
<div class="row g-3 align-items-center">
<div class="col-md-2">
<label for="inputBackupWorkStationName" class="col-form-label"><%= l "bac_WORKSTN_NAME" %></label>
</div>
<div class="col-auto">
% param "BackupwkStation" => $bac_datas->{station} unless param "BackupwkStation";
<input type="text" name="BackupwkStation" id="inputBackupWorkStationName" class="form-control"
size="20" aria-describedby="Workstation Name" value="<%= $bac_datas->{station} %>">
</div>
</div>
<br>
% }
% if ( $bac_datas->{vfstype} eq "usb" ) {
<div class="row g-3 align-items-center">
<div class="col-md-2">
<%= l "bac_local removable disk" %>
</div>
<div class="col-auto">
% param "BackupwkFolder" => $bac_datas->{mount} unless param "BackupwkFolder";
<%= select_field "BackupwkFolder" => $c->get_BackupwkDest_options( $bac_datas->{vfstype}), class => "form-select" %>
</div>
</div>
<br>
% } elsif ( $bac_datas->{vfstype} eq "mnt") {
<div class="row g-3 align-items-center">
<div class="col-md-2">
<%= l "bac_Mounted disk" %>
</div>
<div class="col-auto">
% param "BackupwkFolder" => $bac_datas->{folder} unless param "BackupwkFolder";
<%= select_field "BackupwkFolder" => $c->get_BackupwkDest_options( $bac_datas->{vfstype}), class => "form-select" %>
</div>
</div>
<br>
% } else {
<div class="row g-3 align-items-center">
<div class="col-md-2">
<label for="inputBackupSharedFolderName" class="col-form-label"><%= l "bac_SHARED_FOLDER_NAME" %></label>
</div>
<div class="col-auto">
<input type="text" name="BackupwkFolder" id="inputBackupSharedFolderName" class="form-control"
size="20" aria-describedby="Backup Shared Folder Name" value="<%= $bac_datas->{folder} %>">
</div>
</div>
<br>
% }
% if ( $bac_datas->{vfstype} eq "cifs" ) {
<div class="row g-3 align-items-center">
<div class="col-md-2">
<label for="inputBackupWorkLogin" class="col-form-label"><%= l "bac_WORKSTN_LOGIN" %></label>
</div>
<div class="col-auto">
% param "BackupwkLogin" => $bac_datas->{login} unless param "BackupwkLogin";
<input type="text" name="BackupwkLogin" id="inputBackupWorkLogin" class="form-control"
size="12" aria-describedby="Backup Workstation Login" value="<%= $bac_datas->{login} %>">
</div>
</div>
<br>
<div class="row g-3 align-items-center">
<div class="col-md-2">
<label for="password" class="col-form-label"><%= l "bac_PASSWORD" %></label>
</div>
<div class="col-auto">
% param "BackupwkPassword" => $bac_datas->{password} unless param "BackupwkPassword";
<input type="password" name="BackupwkPassword" id="password" class="form-control" size="12" aria-describedby="Backup Workstation Password" value="<%= $bac_datas->{password} %>">
</div>
<div class="col-auto">
<span id="togglePassword" class="bi bi-eye"></span>
</div>
</div>
% }
<br>
<h3><%= l "bac_WORKSTN_BACKUP_SETTINGS" %></h3>
<br>
<div class="row g-3 align-items-center">
<div class="col-md-2">
<label for="inputNumberofSets" class="col-form-label"><%= l "bac_NUMBER_OF_SETS" %></label>
</div>
<div class="col-auto">
% param "SetsNumber" => $bac_datas->{setsNumber} unless param "SetsNumber";
<input type="text" name="SetsNumber" id="inputNumberofSets" class="form-control" maxlength="3" size="3" aria-describedby="Number of sets" value="<%= $bac_datas->{setsNumber} %>">
</div>
</div>
<br>
<div class="row g-3 align-items-center">
<div class="col-md-2">
<label for="inputFilesinSet" class="col-form-label"><%= l "bac_NUMBER_OF_FILES_IN_SET" %></label>
</div>
<div class="col-auto">
% param "Filesinset" => $bac_datas->{filesinset} unless param "Filesinset";
<input type="text" name="Filesinset" id="inputFilesinSet" class="form-control" maxlength="3" size="3" aria-describedby="Files in set" value="<%= $bac_datas->{filesinset} %>">
</div>
</div>
<br>
<div class="row g-3 align-items-center">
<div class="col-md-2">
<label for="inputWorkstationBackupHour" class="col-form-label"><%= l "bac_WORKSTN_BACKUP_TIME" %></label>
<label for="inputWorkstationBackupMin" class="col-form-label"></label>
</div>
<div class="col-auto">
% param "BackupwkHour" => $bac_datas->{hour} unless param "BackupwkHour";
<input type="text" name="BackupwkHour" id="inputWorkstationBackupHour" class="form-control" maxlength="2" size="4" aria-describedby="Backup Hour" value="<%= $bac_datas->{hour} %>">
</div>
<div class="col-auto">
% param "BackupwkMin" => $bac_datas->{min} unless param "BackupwkMin";
<input type="text" name="BackupwkMin" id="inputWorkstationBackupMin" class="form-control" maxlength="2" size="4" aria-describedby="Backup Minute" value="<%= $bac_datas->{min} %>">
</div>
<div class="col-auto">
<%= l "AM/PM:" %>
</div>
<div class="col-auto">
% param "BackupwkAMPM" => $bac_datas->{ampm} unless param "BackupwkAMPM";
<%= select_field "BackupwkAMPM" => ["AM", "PM"], class => "form-select" %>
</div>
</div>
<br>
<div class="row g-3 align-items-center">
<div class="col-md-2">
<label for="inputWorkstationTimeout" class="col-form-label"><%= l "bac_WORKSTN_TIMEOUT" %></label>
</div>
<div class="col-auto">
% param "BackupwkTimeout" => $bac_datas->{timeout} unless param "BackupwkTimeout";
<input type="text" name="BackupwkTimeout" id="inputWorkstationTimeout" class="form-control" maxlength="2" size="2" aria-describedby="Workstation Timeout" value="<%= $bac_datas->{timeout} %>">
</div>
</div>
<br>
<div class="row g-3 align-items-center">
<div class="col-md-2">
<%= l "bac_INC_ONLY_TIMEOUT" %>
</div>
<div class="col-auto">
% if ( $bac_datas->{incOnlyTimeout} eq "checked" ) {
<input type="checkbox" name="IncOnlyTimeout" aria-describedby="enabled" checked >
% } else {
<input type="checkbox" name="IncOnlyTimeout" aria-describedby="disabled">
% }
</div>
</div>
<br>
<div class="row g-3 align-items-center">
<div class="col-md-2">
<label for="inputBackupCompression" class="col-form-label"><%= l "bac_COMPRESSION_LEVEL" %></label>
</div>
<div class="col-auto">
% param "Compression" => $bac_datas->{compression} unless param "Compression";
<input type="text" name="Compression" id="inputBackupCompression" class="form-control" maxlength="1" size="1" aria-describedby="Compression level" value="<%= $bac_datas->{compression} %>">
</div>
</div>
<br>
<div class="row g-3 align-items-center">
<div class="col-md-2">
<%= l "bac_FULL_ONLY_ON" %>
</div>
<div class="col-auto">
% param "Dof" => $bac_datas->{dof} unless param "Dof";
%= select_field "Dof" => $c->get_dow_list(), class => "form-select"
</div>
</div>
<br>
%= hidden_field "Function" => $bac_datas->{function}
%= hidden_field "VFSType" => $bac_datas->{vfstype}
% my $btn = l("Update");
<div class="row g-3 align-items-center">
<div class="col-md-2">
<button type="submit" class="btn btn-primary btn-sm" value="<%=$c->l("NEXT")%>"><%= $btn %></button>
</div>
</div>
<br>
</form>
</div>
% end

View File

@@ -0,0 +1,53 @@
% layout "AdminLTE", title => "Sme server 2 - restore";
% content_for "module" => begin
<div class="card-body">
% if (config->{debug} == 1) {
<pre>
<%= dumper $c->current_route %>
<%= dumper $bac_datas %>
</pre>
% }
% if ( stash "error" ) {
<br>
<div class="text-danger">
<%= $c->render_to_string(inline => stash "error") %>
</div>
% }
<h1><%= $title%></h1>
<br>
<h2><%= l "bac_WORKSTN_RESTORE" %></h2>
<br>
<form action="/smanager/backupd" method="POST">
<div>
<%= $c->render_to_string(inline => $bac_datas->{restore_log}) %>
</div>
<br>
<div>
<%= l "bac_YOU_MUST_REBOOT" %>
</div>
<%= hidden_field "Function" => $bac_datas->{"function"} %>
% my $btn = l("Reboot");
<div class="row g-3 align-items-center">
<div class="col-md-2">
<button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
</div>
</div>
</form>
</div>
% end

View File

@@ -0,0 +1,78 @@
% layout "AdminLTE", title => "Sme server 2 - backup - verify";
% content_for "module" => begin
<div class="card-body">
% if (config->{debug} == 1) {
<pre>
<%= dumper $c->current_route %>
<%= dumper $bac_datas %>
</pre>
% }
% if ( stash "error" ) {
<br><div class="text-danger">
<%= $c->render_to_string(inline => stash "error") %>
</div>
% }
<h1><%= $title%></h1>
<br>
<h2><%=l "Verify_WORKSTN_BACKUP_FILE" %></h2>
<form action="/smanager/backup" method="POST">
<br>
% if ($bac_datas->{status} ne "enabled") {
<div>
<%= $c->render_to_string(inline => (l "bac_CONFIGURATION_TO_BE_DONE")) %>
</div>
% } else {
<div>
<%= $c->render_to_string(inline => (l "Verify_WORKSTN_BACKUP_DESC") . " " . $c->get_shared_folder_to_verify()) %>
</div>
% }
<br><br>
<div class="row g-3 align-items-center">
<div class="col-md-1">
<%=l "bac_SELECT_BACKUP_FILE" %>
</div>
<div class="col-auto">
<%= select_field "Backupset" => $c->get_Backupset_options(), class => "form-select" %>
</div>
</div>
<br><br>
<div class="row g-3 align-items-center">
<div class="col-md-4">
<%=l "bac_CHECK_TO_VERIFY_FULL_RESTORE" %>
</div>
<div class="col-auto">
<input type="checkbox" name="Verifyall">
</div>
</div>
<br>
%=l "bac_CHECK_INTEGRITY_WARNING"
<br>
<br>
%= hidden_field "Function" => $bac_datas->{"function"} . "1"
% my $btn = l("Verify");
<div class="row g-3 align-items-center">
<div class="col-md-2">
<button type="submit" class="btn btn-primary btn-sm"><%= $btn %></button>
</div>
</div>
</form>
</div>
% end

View File

@@ -0,0 +1,71 @@
'bac_AM' => 'AM',
'bac_AM/PM' => 'AM/PM',
'bac_BACKUP_DESC' => '<P>The server provides two ways to back up and restore
your server: using your local desktop or a tape drive.</P>
<P>The first method creates a copy of your server configuration and user
data files, and downloads it to your local desktop via your web browser.
Currently your configuration and data files total approximately
<b>[_1]</b>. The backup file will be somewhat less than this,
depending on how compressible the data are. The \"Verify desktop backup
file\" option can be used to check the integrity of a desktop backup
file.</P>
<P>The tape backup method uses a software package called <I>[_2]</I>
to back up your entire hard disk to tape every night. This requires a
supported tape drive and a tape that is not write-protected. The backup
is performed automatically at the selected time every night (with a
reminder automatically e-mailed to the administrator during the day).
Currently your hard disk contains <b>[_3]</b> of data.</P>
<P>Both restore methods allow you to restore your configuration and user
data files. <b>Ideally, the restore should be performed on a freshly
installed server</b>.</P>',
'bac_cifs' => 'cifs',
'bac_CONFIGURE_TAPE_BACKUP' => 'Configure tape backup',
'bac_COULD_NOT_DECODE' => 'Could not decode backup file: ',
'bac_COULD_NOT_EXEC_PIPELINE' => 'Could not execute backup pipeline: ',
'bac_DESKTOP_RESTORE' => 'Restore from desktop',
'bac_DESKTOP_RESTORE_DESC' => 'This process will upload a server backup file from your local desktop to your server and restore the configuration and user data files. <B>The restore should be performed on a freshly installed server</B>.',
'bac_DESKTOP_VERIFY' => 'Verify desktop backup file',
'bac_ENABLE_DISABLE_WORKSTN' => 'Enable/Disable Daily Workstation Backup',
'bac_ERR_DAR_CATALOG' => 'Error when using Dar catalog',
'bac_ERR_INVALID_SETS_NUMBER' => 'Sets number must be 1 or greater',
'bac_ERR_READING_FILE' => 'There was an error in reading the backup file.',
'bac_ERR_RESTORING_FROM_WORKSTN' => 'Error occurred restoring files from workstation.',
'bac_ERR_UPDATING_CONF_AFTER_WORKSTN_RESTORE' => 'Error occurred while updating system configuration after workstation
restore.',
'bac_FILE_TO_RESTORE' => 'Backup file to restore from',
'bac_FINISHED_AT' => 'and finished at: ',
'bac_FREE_SPACE' => 'You have approximately [_1] free space on the server.
Check that desktop backup file is less than [_2] before
commencing the restore.',
'bac_MUST_REBOOT_AFTER_RESTORE' => 'After the restore completes you must reboot the server.',
'bac_nfs' => 'nfs',
'bac_NO_BACKUPS_TO_RESTORE' => 'There is no backup set on configured workstation shared folder. Verify your configuration settings.',
'bac_NOW_RESTORING_FROM_TAPE' => 'Your server configuration and user data
files are now being restored from tape.',
'bac_NOW_RESTORING_FROM_WORKSTN' => 'Your server configuration and user data
files are now being restored from workstation shared folder.',
'bac_PAGE_REFRESH_IN' => 'This page will refresh to the status display in [_1] seconds, or
click <a href="/server-manager/cgi-bin/backup">here</a>.',
'bac_PM' => 'PM',
'bac_REFRESH_THIS_DISPLAY' => 'Refresh this display',
'bac_RESTORE_COMPLETED' => 'A system restore has completed',
'bac_RESTORE_CONF_FROM_WORKSTN' => 'Restore server configuration from workstation backup',
'bac_RESTORE_IN_PROGRESS' => 'Restore in progress',
'bac_RESTORE_IN_PROGRESS_BEGAN_AT' => 'A system restore is in progress. It began at: ',
'bac_RESTORE_IN_PROGRESS_DESC' => 'After the restore completes you must reboot the server. Your restore is
complete when the words "Restore complete" appear at the bottom of your screen.
',
'bac_RESTORE_SERVER_CONFIG' => 'Restore server configuration',
'bac_RESTORING_FROM_TAPE' => 'Restoring From Tape',
'bac_RESTORING_FROM_WORKSTN' => 'Restoring From Workstation',
'bac_STARTED_AT' => 'It began at: ',
'bac_UPDATING_TAPE_CONF' => 'Updating tape backup configuration',
'bac_UPDATING_WORKSTN_CONF' => 'Updating workstation backup configuration',
'bac_VERIFY_BACKUP_DESC' => '
<p>This option will display the names of all files
in a previously created desktop backup file. You
can use this option to verify the contents of the
backup file.</p> ',
'bac_WORKSTN_NOT_SET' => 'You must first correctly configure your workstation backup',
'bac_X_BACKUP_OR_RESTORE' => 'X Backup or restore server data',
'Backup or restore' => 'Backup or restore',

View File

@@ -0,0 +1,283 @@
#
# Lex file for Backup generated on 2025-07-17 09:52:30
#
'bac_ALL_BACKUPS' => 'All backups',
'bac_AM' => 'AM',
'bac_AM/PM' => 'AM/PM',
'bac_ANOTHER_RESTORE_IN_PROGRESS' => 'Another restore is in progress. Please try again later.',
'bac_BACKUP_CHOICE' => 'Selecting files to display',
'bac_BACKUP_CONFIG_STATUS' => 'Backup configuration and status',
'bac_BACKUP_DESC' => '<P>The server provides two ways to back up and restore
your server: using your local desktop or a tape drive.</P>
<P>The first method creates a copy of your server configuration and user
data files, and downloads it to your local desktop via your web browser.
Currently your configuration and data files total approximately
<b>[_1]</b>. The backup file will be somewhat less than this,
depending on how compressible the data are. The \"Verify desktop backup
file\" option can be used to check the integrity of a desktop backup
file.</P>
<P>The tape backup method uses a software package called <I>[_2]</I>
to back up your entire hard disk to tape every night. This requires a
supported tape drive and a tape that is not write-protected. The backup
is performed automatically at the selected time every night (with a
reminder automatically e-mailed to the administrator during the day).
Currently your hard disk contains <b>[_3]</b> of data.</P>
<P>Both restore methods allow you to restore your configuration and user
data files. <b>Ideally, the restore should be performed on a freshly
installed server</b>.</P>',
'bac_BACKUP_DESC_DAR' => '<P>Three ways are provided to back up and restore your
server: using a tape drive, using a network share or a local
removable disk, or using your local desktop.</P>
<P>Tape Backup. This method uses a software package called <I>[_1]</I>
to back up your entire hard disk to tape every night. This requires a
supported tape drive and a tape that is not write-protected. The backup
is performed automatically at the selected time every night (with a
reminder automatically e-mailed to the administrator during the day).
Currently your hard disk contains <b>[_2]</b> of data.</P>
<P>Workstation backup. This method uses a software package called <I>dar</I>
to back up your server configuration and data files to a network share
or a local removable disk such as a USB disk.
You can manage how many rotating sets of backups are kept,
and how many incremental backups to have in each set.
The backup is performed automatically at the selected time every day. Currently
configuration and data files total approximately <b>[_3]</b> uncompressed.
Twice the compressed data size must be available on the backup share.</P>
<P>Backup to Desktop. This method creates a copy of your server
configuration and user data files, and downloads it to your
local desktop via your web browser.
Currently your configuration and data files total approximately
<b>[_3]</b>. The backup file will be somewhat less than this,
depending on how much the data can be compressed.
This file can be used to restore the server from the console if you
copy it to a local removable disk such as a USB disk.</P>
<P>All backup methods allow you to restore your configuration and user
data files. Workstation backup provides individual file restore. <b>Ideally,
full restore should be performed on a freshly installed server</b>.</P>',
'bac_BACKUP_DESKTOP_TOO_BIG' => 'Your server has too much data for a reliable backup to desktop.',
'bac_BACKUP_FILE_INCOMPLETE' => 'The backup file was incomplete',
'bac_BACKUP_TITLE' => 'Backup or restore server data',
'bac_BACKUPS_RUN_AT' => 'Regular tape backups will run at: ',
'bac_BETWEEN_0_AND_12' => 'Please choose an hour between 0 and 12.',
'bac_BETWEEN_0_AND_59' => 'Please choose a minute between 0 and 59.',
'bac_CHECK_INTEGRITY_WARNING' => 'Warning : For large backups, checking integrity may be a long task and should be made with daily workstation backup disabled.',
'bac_CHECK_TO_VERIFY_FULL_RESTORE' => 'Check here to test integrity of all backups needed for a full restore with the selected backup ',
'bac_cifs' => 'cifs',
'bac_COMPRESSION_LEVEL' => 'Backup compression level ~[0-9~]',
'bac_CONFIGURATION_TO_BE_DONE' => 'Please configure the backup settings.',
'bac_CONFIGURE_TAPE_BACKUP' => 'Configure tape backup',
'bac_CONFIGURE_WORKSTN_BACKUP' => 'Configure Workstation Backup',
'bac_CONFIGURE_WORKSTN_BACKUP_DESC' => 'You can set the number of
successive backup sets to keep on the workstation, with automatic rotation.
Each set may contain saved data for several consecutive days.
In this case first backup of the set is full backup, others daily backups are
incremental. You can also set a time limit for each backup session or for incremental
backups only. When this limit occurs, backup is cleanly stopped and the next
incremental backup will safely continue with unsaved and modified datas.',
'bac_COULD_NOT_DECODE' => 'Could not decode backup file: ',
'bac_COULD_NOT_EXEC_PIPELINE' => 'Could not execute backup pipeline: ',
'bac_COULD_NOT_FORK' => 'Could not fork: ',
'bac_DESKTOP_BACKUP' => 'Backup to desktop',
'bac_DESKTOP_RESTORE' => 'Restore from desktop',
'bac_DESKTOP_RESTORE_DESC' => 'This process will upload a server backup file from your local desktop to your server and restore the configuration and user data files. <B>The restore should be performed on a freshly installed server</B>.',
'bac_DESKTOP_VERIFY' => 'Verify desktop backup file',
'bac_DOW' => 'Sunday Monday Tuesday Wednesday Thursday Friday Saturday Everyday',
'bac_ENABLE_DISABLE_TAPE' => 'Enable/Disable Nightly Tape Backup',
'bac_ENABLE_DISABLE_WORKSTN' => 'Enable/Disable Daily Workstation Backup',
'bac_ENABLE_TAPE_BACKUP' => 'Enable tape backup',
'bac_ENABLE_WORKSTN_BACKUP' => 'Enable Workstation Backup',
'bac_ERR_ALREADY_MOUNTED' => 'Backup directory is already mounted',
'bac_ERR_CONF_BACKUP' => 'Error occurred during conf-backup event.',
'bac_ERR_DAR_CATALOG' => 'Error when using Dar catalog',
'bac_ERR_EXTRACT' => 'Error when extracting with Dar',
'bac_ERR_INVALID_COMPRESSION' => 'Compression level must be set between 0 (no compression) and 9 (maximum compression)',
'bac_ERR_INVALID_FILES_IN_SET_NUMBER' => 'This number must be 1 or greater. First backup in set is <b>full</b> others are <b>incrementals</b>',
'bac_ERR_INVALID_FOLDER' => 'Invalid share name',
'bac_ERR_INVALID_HOUR' => 'Error: invalid backup hour: ',
'bac_ERR_INVALID_LOGIN' => 'Invalid Login',
'bac_ERR_INVALID_MINUTE' => 'Error: invalid backup minute: ',
'bac_ERR_INVALID_PASSWORD' => 'Invalid Password',
'bac_ERR_INVALID_REMINDER_HOUR' => 'Error: invalid reminder hour: ',
'bac_ERR_INVALID_REMINDER_MINUTE' => 'Error: invalid reminder minute: ',
'bac_ERR_INVALID_SELDATE' => 'Date format is invalid, must be ~[~[~[yyyy/~]mm/~]dd-~]hh:mm~[:ss~]. ie: 2005/12/31-08:23:32 or
10-08:32 or 08:32',
'bac_ERR_INVALID_SETS_NUMBER' => 'Sets number must be 1 or greater',
'bac_ERR_INVALID_TIMEOUT' => 'Maximum backup time must be set between 1 and 24 hours',
'bac_ERR_INVALID_WORKSTN' => 'Invalid Workstation IP or Hostname ',
'bac_ERR_MOUNTING_SMBSHARE' => 'Unable to mount workstation shared folder',
'bac_ERR_NO_FULL_BACKUP' => 'Aborting restore because needed full backup is missing or unreadable.',
'bac_ERR_NO_HOST_DIR' => 'No directory for your host in shared folder. Maybe your host name is different from backup ones',
'bac_ERR_NO_INC_BACKUP' => 'Aborting restore because the set has missing or unreadable incremental backup number',
'bac_ERR_NO_MOUNTED_DISK' => 'Error : No mounted disk available. Please mount a disk or select another type of workstation backup.',
'bac_ERR_NO_USB_DISK' => 'Error : No removable disk available. Please connect a removable disk or select another type of workstation backup.',
'bac_ERR_NOT_MOUNTED' => 'Backup directory is not mounted',
'bac_ERR_POST_BACKUP' => 'Error occurred during post-backup actions.',
'bac_ERR_PRE_BACKUP' => 'Error occurred during pre-backup actions.',
'bac_ERR_PRE_RESTORE' => 'Error occurred during pre-restore actions.',
'bac_ERR_READING_FILE' => 'There was an error in reading the backup file.',
'bac_ERR_RESTORING_FROM_TAPE' => 'Error occurred restoring files from tape.',
'bac_ERR_RESTORING_FROM_WORKSTN' => 'Error occurred restoring files from workstation.',
'bac_ERR_RESTORING_GID' => 'Error occurred while restoring gid of "www"',
'bac_ERR_RESTORING_INITIAL_GRP' => 'Error occurred while restoring initial group of "www".',
'bac_ERR_UPDATING_CONF_AFTER_TAPE_RESTORE' => 'Error occurred while updating system configuration after tape
restore.',
'bac_ERR_UPDATING_CONF_AFTER_WORKSTN_RESTORE' => 'Error occurred while updating system configuration after workstation
restore.',
'bac_ERR_WHILE_UNMOUNTING' => 'Error occurs when unmounting distant share',
'bac_ERROR_READING_FILE' => 'Error while reading files from',
'bac_ERROR_WHEN_TESTING_REMOTE_SERVER' => 'The parameters have been saved, however the remote host is not reachable, please check your settings.',
'bac_FILE_TO_RESTORE' => 'Backup file to restore from',
'bac_FILES_HAVE_BEEN_RESTORED' => 'The following files and directories have been restored:',
'bac_FILES_IN_BACKUP' => 'The following files are considered in the backup :',
'bac_FILTER_EXPRESSION' => 'Names filtered by',
'bac_FINISHED_AT' => 'and finished at: ',
'bac_FREE_SPACE' => 'You have approximately [_1] free space on the server.
Check that desktop backup file is less than [_2] before
commencing the restore.',
'bac_FULL_ONLY_ON' => 'Full backup is allowed on',
'bac_HOURS' => 'hours.',
'bac_INC_ONLY_TIMEOUT' => 'Don"t timeout full backup sessions',
'bac_LOAD_TAPE_REMINDER_TIME' => 'Load tape reminder time of day (hour/min)',
'bac_local removable disk' => 'Local removable disk',
'bac_LOGIN' => 'Login is ',
'bac_Mounted disk' => 'Mounted disk',
'bac_MUST_REBOOT_AFTER_RESTORE' => 'After the restore completes you must reboot the server.',
'bac_nfs' => 'nfs',
'bac_No suitable local devices found' => 'No suitable local devices found',
'bac_NO_BACKUPS_TO_RESTORE' => 'There is no backup set on configured workstation shared folder. Verify your configuration settings.',
'bac_NO_UID_FOR_NAME' => 'Could not get uid for user named: ',
'bac_NOW_RESTORING_FROM_TAPE' => 'Your server configuration and user data
files are now being restored from tape.',
'bac_NOW_RESTORING_FROM_WORKSTN' => 'Your server configuration and user data
files are now being restored from workstation shared folder.',
'bac_NUMBER_OF_FILES_IN_SET' => 'Daily backups in each set',
'bac_NUMBER_OF_SETS' => 'Number of rotating backup sets',
'bac_PAGE_REFRESH_IN' => 'This page will refresh to the status display in [_1] seconds, or
click <a href="/server-manager/cgi-bin/backup">here</a>.',
'bac_PASSWORD' => 'Password is ',
'bac_PM' => 'PM',
'bac_READ_COMPLETE' => 'You can choose all the directories and files you want to restore in the displayed list
(use ctrl or shift for multiple selection). <br/> <b>Warning :</b> If you select a directory,
all contained files and directories will be restored.<p/>
By default the most recent version of selected files is restored, but if you specify a date
in the format <i>~[~[~[yyyy/~]mm/~]dd-~]hh:mm~[:ss~]</i> the process
will restore only the most recent version modified <b>before the given date</b>.',
'bac_REFRESH_THIS_DISPLAY' => 'Refresh this display',
'bac_REMINDER_MESSAGE_AT' => 'Reminder messages will be sent at: ',
'bac_RESTORE_CANNOT_PROCEED' => 'Unable to proceed with restore of server configuration',
'bac_RESTORE_COMPLETE' => 'Restore complete',
'bac_RESTORE_COMPLETED' => 'A system restore has completed',
'bac_RESTORE_CONF_FROM_TAPE' => 'Restore server configuration from tape backup',
'bac_RESTORE_CONF_FROM_TAPE_DESC' => '<P>This process will restore the configuration and user data files from a
server tape backup. <B>The restore should be performed on a freshly installed server</B>.</P>
<P>Ensure that you have loaded the desired backup tape into the tape drive
before proceeding.</P>
<P>After the restore completes you must reboot the server.</P>',
'bac_RESTORE_CONF_FROM_WORKSTN' => 'Restore server configuration from workstation backup',
'bac_RESTORE_CONF_FROM_WORKSTN_DESC' => '<p>This process will restore the configuration and user data files from a
Server workstation backup. <b>The restore
should be performed on a freshly installed Server</b>.</p>
<p>Ensure that choose the right backup to restore below
before proceeding.</p>
<p>After the restore completes you must reboot the server.</p>
Backup will be restored from : ',
'bac_RESTORE_FAILED' => 'Restore failed! The backup file was incomplete.',
'bac_RESTORE_FAILED_MSG' => 'Restore failed! There was an error in reading the backup file.',
'bac_RESTORE_FROM_TAPE' => 'Restore From Tape',
'bac_RESTORE_FROM_WORKSTN' => 'Restore From Workstation',
'bac_RESTORE_IN_PROGRESS' => 'Restore in progress',
'bac_RESTORE_IN_PROGRESS_BEGAN_AT' => 'A system restore is in progress. It began at: ',
'bac_RESTORE_IN_PROGRESS_DESC' => 'After the restore completes you must reboot the server. Your restore is
complete when the words "Restore complete" appear at the bottom of your screen.
',
'bac_RESTORE_SERVER_CONFIG' => 'Restore server configuration',
'bac_RESTORE_VERIFY_FAILED' => 'Verify integrity failed',
'bac_RESTORING_FROM_TAPE' => 'Restoring From Tape',
'bac_RESTORING_FROM_WORKSTN' => 'Restoring From Workstation',
'bac_SELECT_AN_ACTION' => 'Select an action',
'bac_SELECT_BACKUP_FILE' => 'Select backup file',
'bac_SELECT_DATE_BEFORE' => 'Restore most recent before',
'bac_SELECT_FILES_TO_RESTORE' => 'Select files to restore',
'bac_SELECT_VFS_TYPE' => 'Select the type of share for backup destination',
'bac_SERVER_REBOOT' => 'Server reboot',
'bac_SERVER_WILL_REBOOT' => 'Your server will now reboot.',
'bac_SHARED_FOLDER_NAME' => 'Backup share',
'bac_STARTED_AT' => 'It began at: ',
'bac_SUCCESSFULLY_DISABLED' => 'Successfully disabled tape backups',
'bac_SUCCESSFULLY_DISABLED_WORKSTN' => 'Successfully disabled workstation backups',
'bac_SUCCESSFULLY_ENABLED_TAPE' => 'Successfully enabled tape backups',
'bac_SUCCESSFULLY_ENABLED_WORKSTN' => 'Successfully enabled workstation backups',
'bac_TAPE_BACKUP_TIME' => 'Tape backup time of day (hour/min)',
'bac_TAPE_BACKUPS' => 'Tape backups are ',
'bac_TAPE_CONFIG_DESC' => '<p>Select whether you wish to enable nightly backups. Then indicate the
desired times for the backup and the load tape reminder.</p> <p>The tape
backup requires a supported tape drive. A warning message will be sent to
the administrator at the designated reminder time if the tape drive is
empty.</p>',
'bac_TAPE_CONFIGURE' => 'Configure tape backup',
'bac_TAPE_RESTORE' => 'Restore from tape',
'bac_TESTED_BACKUP' => 'Testing integrity of backup',
'bac_TESTING_NEEDED_BACKUPS_FOR_RESTORE' => 'Testing all backups needed for a full restore with selected backup',
'bac_UNABLE_TO_RESTORE_CONF' => 'Unable to restore server configuration',
'bac_UPDATING_TAPE_CONF' => 'Updating tape backup configuration',
'bac_UPDATING_WORKSTN_CONF' => 'Updating workstation backup configuration',
'bac_VERIFY_BACKUP_DESC' => '
<p>This option will display the names of all files
in a previously created desktop backup file. You
can use this option to verify the contents of the
backup file.</p> ',
'bac_VERIFY_COMPLETE' => 'Verification is complete',
'bac_VERIFY_WORKSTN_BACKUP_DESC' => '<p>This option will display the names of all files
in a previously created workstation daily backup. You
can use this option to verify the contents of the
backup.<b>You must choose the backup you want to verify</b></p>
<p>Only files flagged with (Saved) are contained in the backup.</p>
<br/>Backup files are verified from shared folder :',
'bac_VERIFY_WORKSTN_BACKUP_FILE' => 'Verify workstation backup',
'bac_WITH_BACKUP_TIME' => 'with backup time: ',
'bac_WITH_REMINDER_TIME' => 'and load tape reminder time: ',
'bac_WKBACKUPS_RUN_AT' => 'Regular workstation backups will run at: ',
'bac_WORKSTATION_BACKUP_DEST' => 'Backup workstation settings',
'bac_WORKSTATION_BACKUP_SETCONF' => 'Create or modify workstation backup configuration',
'bac_WORKSTN_BACKUP_COMPRESSION' => 'Compression level (0-9) of backup is ',
'bac_WORKSTN_BACKUP_DAYSINSET' => 'Number of daily backups contained in each set is ',
'bac_WORKSTN_BACKUP_DESC' => '<p>This panel displays the present workstation backup configuration. You can
change it in this panel and the next one.</p><p/>',
'bac_WORKSTN_BACKUP_ENABLED' => 'Backup is ',
'bac_WORKSTN_BACKUP_HOST' => 'Backup is made on LAN workstation ',
'bac_WORKSTN_BACKUP_INCONLY_TIMEOUT' => 'except full backups which are cleanly timed out after 24 hours',
'bac_WORKSTN_BACKUP_MNT' => 'Backup is made on mounted disk',
'bac_WORKSTN_BACKUP_NOT_CONFIGURED' => '<p>Presently, workstation backup is not configured. You can set this configuration
with this panel and the next one.</p><p/>',
'bac_WORKSTN_BACKUP_SETSNUM' => 'Number of rotating backup sets is ',
'bac_WORKSTN_BACKUP_SETTINGS' => 'Workstation Backup Settings',
'bac_WORKSTN_BACKUP_SHARE' => 'Destination backup share folder is ',
'bac_WORKSTN_BACKUP_TIME' => 'Workstation backup time of day (hour/min)',
'bac_WORKSTN_BACKUP_TIMEOUT' => 'Each daily backup session is cleanly timed out after ',
'bac_WORKSTN_BACKUP_TOD' => 'Daily backup occurs at ',
'bac_WORKSTN_BACKUP_USB' => 'Backup is made on local removable disk',
'bac_WORKSTN_BACKUP_VFSTYPE' => ' via ',
'bac_WORKSTN_BACKUPS' => 'Workstation backups are ',
'bac_WORKSTN_CONFIGURE' => 'Configure workstation backup',
'bac_WORKSTN_FULL_BACKUP_DAY' => 'Full backup session (new backup sets) is allowed only on',
'bac_WORKSTN_FULL_BACKUP_EVERYDAY' => 'Full backup sessions (new backup set) are allowed everyday',
'bac_WORKSTN_LOGIN' => 'Login name',
'bac_WORKSTN_NAME' => 'Workstation IP or hostname',
'bac_WORKSTN_NOT_SET' => 'You must first correctly configure your workstation backup',
'bac_WORKSTN_RESTORE' => 'Restore from workstation',
'bac_WORKSTN_SEL_REST_DESC' => 'This process will restore only specified files and directories. You must first choose
the backup from which the files will be restored. If you don"t know in which backup
are the required files, you can select "All backups" option. <br/><br/>
The next panel will display available files and directories,
so you can choose the ones to restore. To restrict the number of files and directories
displayed in this panel, you have the option to give now a filtering expression,
applied as a regular expression to the displayed names.<br/><br/>
You have the responsibility not to restore files which could break the
functioning of your server.<br/> <br/>Currently, files will be restored from :',
'bac_WORKSTN_SEL_RESTORE' => 'Selective file restore from workstation',
'bac_WORKSTN_SELECTIVE_RESTORE' => 'Workstation selective file restore',
'bac_WORKSTN_TIMEOUT' => 'Optional backup session timeout (hours)',
'bac_WORKSTN_VERIFY' => 'Verify workstation backup',
'bac_X_BACKUP_OR_RESTORE' => 'X Backup or restore server data',
'bac_YOU_MUST_REBOOT' => 'You must reboot the server to activate any configuration changes that were
made as a result of this restore.',
'Backup or restore' => 'Backup or restore',

View File

@@ -0,0 +1,81 @@
% layout "default", title => "Sme server 2 - backup";
% content_for "module" => begin
<div id="module" class="module back_tape_configure-panel">
% if (config->{debug} == 1) {
<p>
%= dumper $c->current_route
%= dumper $bac_datas
</p>
% }
% if ( stash "error" ) {
<br><div class=sme-error>
%= $c->render_to_string(inline => stash "error")
</div>
%}
<h1><%= $title%></h1>
<h2>
%=l "bac_ENABLE_DISABLE_TAPE"
</h2><br>
%= $c->render_to_string(inline => (l "bac_TAPE_CONFIG_DESC"))
%= form_for "/backupd" => (method => "POST") => begin
<p>
<span class=label>
%=l "bac_ENABLE_TAPE_BACKUP"
</span><span class=data>
% if ( $bac_datas->{status} eq "checked" ) {
<input type="checkbox" name="Tapebackup" checked >
%} else {
%= check_box "Tapebackup"
%}
</span>
</p>
<p>
<span class=label>
%=l "bac_TAPE_BACKUP_TIME"
</span><span class=data>
% param "BackupHour" => $bac_datas->{backupHour} unless param "BackupHour";
%= text_field "BackupHour", size => "2"
% param "BackupMin" => $bac_datas->{backupMin} unless param "BackupMin";
%= text_field "BackupMin", size => "2"
</span>
<!--span class=label-->
%=l "AM/PM:"
<!--/span--><span class=data>
% param "BackupAMPM" => $bac_datas->{backupAMPM} unless param "BackupAMPM";
%= select_field "BackupAMPM" => ["AM", "PM"], class => "input"
</span>
</p>
<p>
<span class=label>
%=l "bac_LOAD_TAPE_REMINDER_TIME"
</span><span class=data>
% param "ReminderHour" => $bac_datas->{reminderHour} unless param "ReminderHour";
%= text_field "ReminderHour", size => "2"
% param "ReminderMin" => $bac_datas->{reminderMin} unless param "ReminderMin";
%= text_field "ReminderMin", size => "2"
</span>
<!--span class=label-->
%=l "AM/PM:"
<!--/span--><span class=data>
% param "ReminderAMPM" => $bac_datas->{reminderAMPM} unless param "ReminderAMPM";
%= select_field "ReminderAMPM" => ["AM", "PM"], class => "input"
</span>
</p><br>
%= hidden_field "Function" => $bac_datas->{"function"}
%= submit_button $c->l("Update"), class => "action"
% end
</div>
% end

View File

@@ -0,0 +1,154 @@
% layout "default", title => "Sme server 2 - backup - conf";
% content_for "module" => begin
<div id="module" class="module back_workstn_configure1-panel">
% if (config->{debug} == 1) {
<p>
%= dumper $c->current_route
%= dumper $bac_datas
</p>
% }
% if ( stash "error" ) {
<br><div class=sme-error>
%= $c->render_to_string(inline => stash "error")
</div>
%}
<h1><%= $title%></h1>
<h2>
%=l "bac_CONFIGURE_WORKSTN_BACKUP"
</h2>
%= $c->render_to_string(inline => (l "bac_CONFIGURE_WORKSTN_BACKUP_DESC"))
%= form_for "/backupd" => (method => "POST") => begin
<p>
<span class=label>
%=l "bac_ENABLE_WORKSTN_BACKUP"
</span><span class=data>
% if ( $bac_datas->{status} eq "checked" ) {
<input type="checkbox" name="Workstnbackup" checked >
%} else {
%= check_box "Workstnbackup"
%}
</span>
</p>
<p><h3>
%= l "bac_WORKSTATION_BACKUP_DEST"
</h3><br>
% if ( $bac_datas->{vfstype} =~ m/cifs|nfs/s ) {
<span class=label>
%=l "bac_WORKSTN_NAME"
</span><span class=data>
% param "BackupwkStation" => $bac_datas->{station} unless param "BackupwkStation";
%= text_field "BackupwkStation", size => 20, class => "input"
</span><br>
%}
% if ( $bac_datas->{vfstype} eq "usb" ) {
<span class=label>
%=l "bac_local removable disk"
</span><span class=data>
% param "BackupwkFolder" => $bac_datas->{mount} unless param "BackupwkFolder";
%= select_field "BackupwkFolder" => $c->get_BackupwkDest_options( $bac_datas->{vfstype}), class => "input"
</span><br>
% } elsif ( $bac_datas->{vfstype} eq "mnt") {
<span class=label>
%=l "bac_Mounted disk"
</span><span class=data>
% param "BackupwkFolder" => $bac_datas->{folder} unless param "BackupwkFolder";
%= select_field "BackupwkFolder" => $c->get_BackupwkDest_options( $bac_datas->{vfstype}), class => "input"
</span><br>
% } else {
<span class=label>
%=l "bac_SHARED_FOLDER_NAME"
</span><span class=data>
% param "BackupwkFolder" => $bac_datas->{folder} unless param "BackupwkFolder";
%= text_field "BackupwkFolder", size => 20, class => "input"
</span><br>
%}
% if ( $bac_datas->{vfstype} eq "cifs" ) {
<span class=label>
%=l "bac_WORKSTN_LOGIN"
</span><span class=data>
% param "BackupwkLogin" => $bac_datas->{login} unless param "BackupwkLogin";
%= text_field "BackupwkLogin", size => 12, class => "input"
</span><br><span class=label>
%=l "bac_PASSWORD"
</span><span class=data>
% param "BackupwkPassword" => $bac_datas->{password} unless param "BackupwkPassword";
%= password_field "BackupwkPassword", size => 12, class => "input"
</span>
%}
</p><br><h3>
%= l "bac_WORKSTN_BACKUP_SETTINGS"
</h3><br>
<p><span class=label>
%=l "bac_NUMBER_OF_SETS"
</span><span class=data>
% param "SetsNumber" => $bac_datas->{setsNumber} unless param "SetsNumber";
%= text_field "SetsNumber", size => "3"
</span>
%=l "bac_NUMBER_OF_FILES_IN_SET"
<span class=data>
% param "Filesinset" => $bac_datas->{filesinset} unless param "Filesinset";
%= text_field "Filesinset", size => "3"
</span></p>
<p>
<span class=label>
%=l "bac_WORKSTN_BACKUP_TIME"
</span><span class=data>
% param "BackupwkHour" => $bac_datas->{hour} unless param "BackupwkHour";
%= text_field "BackupwkHour", size => "2"
% param "BackupwkMin" => $bac_datas->{min} unless param "BackupwkMin";
%= text_field "BackupwkMin", size => "2"
</span>
%=l "AM/PM:"
<span class=data>
% param "BackupwkAMPM" => $bac_datas->{ampm} unless param "BackupwkAMPM";
%= select_field "BackupwkAMPM" => ["AM", "PM"], class => "input"
</span>
</p>
<p><span class=label>
%=l "bac_WORKSTN_TIMEOUT"
</span><span class=data>
% param "BackupwkTimeout" => $bac_datas->{timeout} unless param "BackupwkTimeout";
%= text_field "BackupwkTimeout", size => "2"
</span>
%=l "bac_INC_ONLY_TIMEOUT"
<span class=data>
% if ( $bac_datas->{incOnlyTimeout} eq "checked" ) {
<input type="checkbox" name="IncOnlyTimeout" checked >
%} else {
%= check_box "IncOnlyTimeout"
%}
</span></p>
<p>
<span class=label>
%=l "bac_COMPRESSION_LEVEL"
</span><span class=data>
% param "Compression" => $bac_datas->{compression} unless param "Compression";
%= text_field "Compression", size => "1"
</span>
%=l "bac_FULL_ONLY_ON"
<span class=data>
% param "Dof" => $bac_datas->{dof} unless param "Dof";
%= select_field "Dof" => $c->get_dow_list(), class => "input"
</p><br>
%= hidden_field "Function" => $bac_datas->{function}
%= hidden_field "VFSType" => $bac_datas->{vfstype}
%= submit_button $c->l("Update"), class => "action"
% end
</div>
% end

View File

@@ -0,0 +1,36 @@
% layout "default", title => "Sme server 2 - restore";
% content_for "module" => begin
<div id="module" class="module back_workstn_restore1-panel">
% if (config->{debug} == 1) {
<p>
%= dumper $c->current_route
%= dumper $bac_datas
</p>
% }
% if ( stash "error" ) {
<br><div class=sme-error>
%= $c->render_to_string(inline => stash "error")
</div>
%}
<h1><%= $title%></h1>
%= form_for "/backupd" => (method => "POST") => begin
<h2>
%=l "bac_WORKSTN_RESTORE"
</h2>
<p>
%= $c->render_to_string(inline => $bac_datas->{restore_log})
</p><p>
%=l "bac_YOU_MUST_REBOOT"
</p>
%= hidden_field "Function" => $bac_datas->{"function"}
%= submit_button $c->l("Reboot"), class => "action"
% end
</div>
% end

View File

@@ -0,0 +1,51 @@
% layout "default", title => "Sme server 2 - backup - verify";
% content_for "module" => begin
<div id="module" class="module back_workstn_verify-panel">
% if (config->{debug} == 1) {
<p>
%= dumper $c->current_route
%= dumper $bac_datas
</p>
% }
% if ( stash "error" ) {
<br><div class=sme-error>
%= $c->render_to_string(inline => stash "error")
</div>
%}
<h1><%= $title%></h1>
<h2>
%=l "Verify_WORKSTN_BACKUP_FILE"
</h2>
%= form_for "/backup" => (method => "POST") => begin
% if ($bac_datas->{status} ne "enabled") {
%= $c->render_to_string(inline => (l "bac_CONFIGURATION_TO_BE_DONE"))
% } else {
%= $c->render_to_string(inline => (l "Verify_WORKSTN_BACKUP_DESC") . " " . $c->get_shared_folder_to_verify())
%}
<br><br><span class=label>
%=l "bac_SELECT_BACKUP_FILE"
</span><span class=data>
%= select_field "Backupset" => $c->get_Backupset_options(), class => "input"
</span><br>
<p><span class=label>
%=l "bac_CHECK_TO_VERIFY_FULL_RESTORE"
</span><span class=data>
%= check_box "Verifyall"
</span></p><br>
%=l "bac_CHECK_INTEGRITY_WARNING"
<br><br>
%= hidden_field "Function" => $bac_datas->{"function"} . "1"
%= submit_button $c->l("Verify"), class => "action"
% end
</div>
% end