Revision: 2765
http://ipcop.svn.sourceforge.net/ipcop/?rev=2765&view=rev
Author: riddles
Date: 2009-05-01 11:32:39 +0000 (Fri, 01 May 2009)
Log Message:
-----------
Template backup.cgi
Modified Paths:
--------------
ipcop/branches/template-branch/html/cgi-bin/backup.cgi
Added Paths:
-----------
ipcop/branches/template-branch/html/html/pages/backup.tpl
ipcop/branches/template-branch/html/html/pages/backup2.tpl
Modified: ipcop/branches/template-branch/html/cgi-bin/backup.cgi
===================================================================
--- ipcop/branches/template-branch/html/cgi-bin/backup.cgi 2009-05-01
10:37:31 UTC (rev 2764)
+++ ipcop/branches/template-branch/html/cgi-bin/backup.cgi 2009-05-01
11:32:39 UTC (rev 2765)
@@ -11,10 +11,12 @@
#
#
use strict;
+use Template;
# enable only the following on debugging purpose
-#use warnings;
-#use CGI::Carp 'fatalsToBrowser';
+use warnings;
+#no warnings 'once';
+use CGI::Carp 'fatalsToBrowser';
# to fully troubleshot your code, uncomment diagnostics, Carp and cluck lines
# use diagnostics; # need to add the file
/usr/lib/perl5/5.8.x/pods/perldiag.pod before to work
@@ -29,8 +31,6 @@
require '/usr/lib/ipcop/lang.pl';
require '/usr/lib/ipcop/header.pl';
-my $errormessage = '';
-my $warnmessage = '';
my $setdir = '/home/httpd/html/backup'; # location where sets are
stored and imported
my $datafile = hostname() . '.dat'; # file containing data backup
after upload
my $disabled = ''; # without key to disable many
buttons
@@ -39,13 +39,8 @@
my $umountdisabled = ''; # usb mass-storage only need
umount
my $hostfilter = '([\w-]+\.)+[\w-]+'; # regex for hostname
-#workaround to suppress a warning when a variable is used only once
-my @dummy = (${Header::table1colour}, ${Header::table2colour});
-undef(@dummy);
+my $page_vars = &Header::get_page_vars();
-# Get GUI values
-&General::getcgihash(\%settings, {'wantfile' => 1, 'filevar' => 'FH'});
-
# Return device name of what is mounted under 'backup'
sub findmounted() {
my $mounted = `/bin/mount | /bin/grep " $setdir "`;
@@ -152,31 +147,47 @@
}
}
+##
+## Initialize Template
+##
+my $tt = Template->new({
+ INCLUDE_PATH => '/home/httpd/html/pages:/home/httpd/html/themes',
+ FILTERS => { 'loc' => \&Header::maketext }
+}) || die "$Template::ERROR\n";
+
+##
+## Start Page
+##
+&General::getcgihash(\%settings, {'wantfile' => 1, 'filevar' => 'FH'});
+
# Export the key.
# backup password is required to disallow user 'noboby' to export the key
# and create a fake backup.
if ($settings{'ACTION'} eq $Lang::tr{'backup export key'}) {
if (!defined($settings{'PASSWORD'})) {
- $errormessage = $Lang::tr{'password not set'};
+ push(@{$page_vars->{'errormessages'}}, $Lang::tr{'password not set'});
}
elsif ($settings{'PASSWORD'} =~ m/[\s\"']/) {
- $errormessage = $Lang::tr{'password contains illegal characters'};
+ push(@{$page_vars->{'errormessages'}}, $Lang::tr{'password contains
illegal characters'});
}
elsif (length($settings{'PASSWORD'}) < 6) {
- $errormessage = $Lang::tr{'passwords must be at least 6 characters in
length'};
+ push(@{$page_vars->{'errormessages'}}, $Lang::tr{'passwords must be at
least 6 characters in length'});
}
else {
my $size = 0;
my $filename = 'backup.' . &hostname() . '.key';
(my $fh, my $tmpfilename) = tempfile('/tmp/logfile.XXXXXX');
- $errormessage =
+ my $errormessage =
&get_bk_error(system('/usr/local/bin/ipcopbkcfg', '--keycat',
"$settings{'PASSWORD'}", "$tmpfilename"));
- if (!$errormessage) {
+ if ($errormessage) {
+ push(@{$page_vars->{'errormessages'}}, $errormessage);
+ }
+ else {
open FH, "< $tmpfilename" or die "Unable to open tmp key file !";
my @lines = <FH>;
close FH;
if (scalar @lines != 2) {
- $errormessage = "Bad tmp key file : wrong lines number!";
+ push(@{$page_vars->{'errormessages'}}, "Bad tmp key file :
wrong lines number!");
}
else {
$lines[0] = &Header::cleanhtml($lines[0]);
@@ -197,23 +208,16 @@
my $cryptkeymissing = system('/usr/local/bin/ipcopbkcfg', '--keyexist') >> 8;
-# disable 'create key' or other buttons
-if ($cryptkeymissing) {
- $disabled = "disabled='disabled'";
-}
-else {
- $disabled = '';
-}
-
# Create new archive set
if ($settings{'ACTION'} eq $Lang::tr{'create new backup'}) {
$settings{'DESCRIPTION'} =~ s/[^ \w'_-]//g; # remove everything
potentially bad
# just because of the page
layout
if (length($settings{'DESCRIPTION'}) > 80) {
- $errormessage = "$Lang::tr{'description'}" . $Lang::tr{'too long 80
char max'};
+ push(@{$page_vars->{'errormessages'}}, "$Lang::tr{'description'}" .
$Lang::tr{'too long 80 char max'});
}
else {
- $errormessage = &get_bk_error(system('/usr/local/bin/ipcopbkcfg',
'--write', "$settings{'DESCRIPTION'}"));
+ my $errormessage =
&get_bk_error(system('/usr/local/bin/ipcopbkcfg', '--write',
"$settings{'DESCRIPTION'}"));
+ if ($errormessage) {push(@{$page_vars->{'errormessages'}},
$errormessage)};
}
}
@@ -222,7 +226,7 @@
#check form input before erase files
if ($settings{'KEY'} !~
m!^$setdir/$hostfilter\d{4}-\d{2}-\d{2}_\d{2}-\d{2}-\d{2}\.dat$!) {
- $errormessage = $Lang::tr{'bad characters in'} . 'KEY';
+ push(@{$page_vars->{'errormessages'}}, $Lang::tr{'bad characters in'}
. $settings{'KEY'});
}
else {
unlink $settings{'KEY'};
@@ -233,13 +237,14 @@
# Import an archive set
if ($settings{'ACTION'} eq $Lang::tr{'import'}) {
if (ref($settings{'FH'}) ne 'Fh') {
- $errormessage = $Lang::tr{'no cfg upload'};
+ push(@{$page_vars->{'errormessages'}}, $Lang::tr{'no cfg upload'});
}
elsif (!copy($settings{'FH'}, "$setdir/$datafile")) {
- $errormessage = $Lang::tr{'save error'};
+ push(@{$page_vars->{'errormessages'}}, $Lang::tr{'save error'});
}
else {
- $errormessage = &get_rs_error(system('/usr/local/bin/ipcoprscfg',
'--import') >> 8);
+ my $errormessage = &get_rs_error(system('/usr/local/bin/ipcoprscfg',
'--import') >> 8);
+ if ($errormessage) {push(@{$page_vars->{'errormessages'}},
$errormessage)};
}
}
@@ -250,6 +255,7 @@
if ($settings{'ACTION'} eq $Lang::tr{'restore'}) {
# if keyfile does not exist
+ my $errormessage = '';
if ($cryptkeymissing) {
$errormessage = $Lang::tr{'backup missing key'};
}
@@ -267,40 +273,25 @@
else {
$errormessage = get_rs_error(system('/usr/local/bin/ipcoprscfg',
'--restore', "$settings{'KEY'}") >> 8);
}
- if (!$errormessage) {
-
+ if ($errormessage) {
+ push(@{$page_vars->{'errormessages'}}, $errormessage);
+ } else {
# restored ok, recommend restarting system
- $warnmessage = $Lang::tr{'cfg restart'};
+ push(@{$page_vars->{'warnmessages'}}, $Lang::tr{'cfg
restart'});
}
}
else {
+ my $settime = read_timefile($settings{'KEY'});
+ ##
+ ## Process Template and Exit
+ ##
&Header::showhttpheaders();
- &Header::openpage($Lang::tr{'backup'}, 1, '');
- &Header::openbigbox('100%', 'left');
- &Header::openbox('100%', 'left', $Lang::tr{'are you sure'});
- my $settime = read_timefile($settings{'KEY'});
- print <<END
-<form method='post' action='$ENV{'SCRIPT_NAME'}'>
-<input type='hidden' name='KEY' value="$settings{'KEY'}" />
-<table align='center' border='0'>
-<tr>
- <td>$Lang::tr{'restore'}:</td>
- <td>$settime</td>
-</tr>
-<tr>
- <td>$Lang::tr{'restore hardware settings'}: <input type='checkbox'
name='RESTOREHW' /></td>
-</tr>
-<tr>
- <td align='center'><input type='submit' name='ACTION'
value='$Lang::tr{'restore'}' /></td>
- <td><input type='submit' name='ACTION' value='$Lang::tr{'cancel'}' /></td>
-</tr>
-</table>
-</form>
-END
- ;
- &Header::closebox();
- &Header::closebigbox();
- &Header::closepage();
+ $tt->process('backup2.tpl', {
+ 'page' => $page_vars,
+ 'system' => \&Header::get_system_vars,
+ 'key' => $settings{'KEY'},
+ 'settime' => $settime,
+ }) || die $tt->error(), "\n";
exit(0);
}
}
@@ -346,7 +337,7 @@
# Mount a media
if ($settings{'ACTION'} eq $Lang::tr{'mount'}) {
if ($settings{'MEDIA'} !~ /^sd[a-z]\d{1,2}$/ && $settings{'DESCRIPTION'}
ne '') {
- $errormessage = $Lang::tr{'bad characters in'} . 'MEDIA';
+ push(@{$page_vars->{'errormessages'}}, $Lang::tr{'bad characters in'}
. 'MEDIA');
}
else {
@@ -357,7 +348,7 @@
# $errormessage = $Lang::tr{'cannot mount local hard disk'};
}
elsif (grep (/$settings{'MEDIA'}/, %partitions)) {
- $errormessage = `/usr/local/bin/ipcopbkcfg --mount
$settings{'MEDIA'}`;
+ push(@{$page_vars->{'errormessages'}}, `/usr/local/bin/ipcopbkcfg
--mount $settings{'MEDIA'}`);
}
}
}
@@ -367,9 +358,13 @@
system('/usr/local/bin/ipcopbkcfg', '--umount');
}
-my $mounted = &findmounted();
+my $floppyresult = '';
+if ($settings{'ACTION'} eq $Lang::tr{'backup to floppy'}) {
+ $floppyresult = `/usr/local/bin/ipcopbackup`;
+}
# For current media, compute a full description of device
+my $mounted = &findmounted();
my $media_des = $mounted; # Description
if ($mounted eq $Lang::tr{'local hard disk'}) {
$umountdisabled = "disabled='disabled'";
@@ -408,240 +403,43 @@
}
return $space;
}
-my $freespace = &readfreespace();
-&Header::showhttpheaders();
-&Header::openpage($Lang::tr{'backup'}, 1, '');
-&Header::openbigbox('100%', 'left', '');
-
-if ($errormessage) {
- &Header::openbox('100%', 'left', "$Lang::tr{'error messages'}:", 'error');
- print "<font class='base'>$errormessage </font>";
- &Header::closebox();
-}
-
-# after a restore
-if ($warnmessage) {
- &Header::openbox('100%', 'left', '', 'warning');
- $warnmessage = "<font
color='${Header::colourred}'><b>$Lang::tr{'capswarning'}</b></font>:
$warnmessage";
- print "<b>$Lang::tr{'alt information'}</b><br />$warnmessage";
- &Header::closebox();
-}
-&Header::openbox('100%', 'left', $Lang::tr{'backup'});
-
-print <<END
-<form method='post' action='$ENV{'SCRIPT_NAME'}' enctype='multipart/form-data'>
-<table width='100%' border='0'>
-<tr>
- <td><input type='submit' name='ACTION' value='$Lang::tr{'backup to
floppy'}' /></td>
- <td> </td>
- <td><p>$Lang::tr{'insert floppy'}</p></td>
- <td width='10%' align='right'><a
href='${General::adminmanualurl}/system.html#backup' target='_blank'><img
src='/images/web-support.png' alt='$Lang::tr{'online help en'}'
title='$Lang::tr{'online help en'}' /></a></td>
-</tr>
-</table>
-<table width='100%' border='0'>
-<tr>
- <td colspan='3'><hr /></td>
-</tr>
-<tr>
- <td colspan='3'><table width='100%' border='0'>
- <tr>
- <td valign='top' colspan='2'><table width='100%' border='0'>
- <tr>
- <th colspan='2' align='left'>$Lang::tr{'select media'}</th>
- </tr>
-END
- ;
-
-my $checked = '';
-foreach my $media (keys %medias) {
-
- # Care only of device attached to USB bus
- if ($medias{$media}{'Attached'} eq 'Yes') {
- $checked = $medias{$media}{'Host'} eq $mounted ? "checked='checked'" :
'';
- my $devname = "<b>$medias{$media}{'Vendor'}
$medias{$media}{'Product'}</b>";
- $devname = $devname . " $medias{$media}{'Host'}
($partitions{$medias{$media}{'Host'}})";
- if ($devcount{$medias{$media}{'Host'}} > 0) {
- print "<tr><td> </td><td><input type='radio' name='MEDIA' ";
- print "value='$medias{$media}{'Host'}' disabled='disabled'
/>$devname</td></tr>\n";
- }
- else {
- if ($checked ne '') {
- print "<tr><td><img src='/blob.gif' alt='*' /></td>";
- }
- else {
- print "<tr><td> </td>";
- }
- print "<td><input type='radio' name='MEDIA' ";
- print "value='$medias{$media}{'Host'}' $checked
/>$devname</td></tr>\n";
- }
-
- # list attached partitions to this media
- foreach my $part (sort (keys(%partitions))) {
- if ($part =~ /$medias{$media}{'Host'}./) {
- $checked = $part eq $mounted ? "checked='checked'" : '';
- if ($checked ne '') {
- print "<tr><td><img src='/blob.gif' alt='*' /></td>";
- }
- else {
- print "<tr><td> </td>";
- }
- print "<td><input type='radio' name='MEDIA' ";
- print "value='$part' $checked /> $part
($partitions{$part})</td></tr>\n";
- }
- }
- }
-}
-
-#Add an entry for the local disk, next is key interface management
-$checked = $Lang::tr{'local hard disk'} eq $mounted ? "checked='checked'" : '';
-print <<END
- <tr>
- <td> </td>
- <th align='left'><input type='radio' name='MEDIA'
value='$Lang::tr{'local hard disk'}' $checked />
- $Lang::tr{'local hard disk'}
- </th>
- </tr>
-END
- ;
-
-# after a umount
-if ($settings{'ACTION'} eq $Lang::tr{'umount'}) {
- print "<tr><td colspan='2'>$Lang::tr{'safe removal of umounted
device'}</td></tr>";
-}
-elsif ($checked ne '') {
- print "<tr><td colspan='2'>$Lang::tr{'removable device advice'}</td></tr>";
-}
-else {
- print <<END
- <tr>
- <td><img src='/blob.gif' alt='*' /></td>
- <td nowrap='nowrap'>$Lang::tr{'umount removable media
before to unplug'}</td>
- </tr>
-END
- ;
-}
-print <<END
- <tr>
- <td colspan='2' align='center'>
- <input type='submit' name='ACTION'
value='$Lang::tr{'refresh'}' />
- <input type='submit' name='ACTION'
value='$Lang::tr{'mount'}' />
- <input type='submit' name='ACTION'
value='$Lang::tr{'umount'}' $umountdisabled />
- </td>
- </tr>
- </table>
- </td>
- <td valign='top'>
- <table border='0' align='center'>
- <tr>
- <th align='left'>$Lang::tr{'backup key'}</th>
- </tr>
- <tr>
- <td nowrap='nowrap'>$Lang::tr{'backup password'}:
- <input type='password' name='PASSWORD' size='15' />
- </td>
- </tr>
- <tr>
- <td align='center'>
- <input type='submit' name='ACTION'
value='$Lang::tr{'backup export key'}' />
- </td>
- </tr>
-END
- ;
-print <<END
- </table>
- </td>
- </tr>
- <tr>
- <td colspan='3'><hr /></td>
- </tr>
- <tr>
- <th colspan='3' align='left'>$Lang::tr{'current media'}:
- <font color='${Header::colourred}'>$media_des </font>
- $Lang::tr{'free'}:$freespace M
- </th>
- </tr>
- <tr>
- <td colspan='3'> </td>
- </tr>
- <tr>
- <td colspan='3'><b>$Lang::tr{'create new backup'}</b></td>
- </tr>
- <tr>
- <td colspan='3' nowrap='nowrap'>$Lang::tr{'description'}:
- <input type='text' name='DESCRIPTION' size='30' $disabled
/>
- <input type='submit' name='ACTION' value='$Lang::tr{'create
new backup'}' $disabled />
- </td>
- </tr>
- <tr>
- <td colspan='3'> </td>
- </tr>
- <tr>
- <td colspan='3'><b>$Lang::tr{'backup import dat file'}:</b></td>
- </tr>
- <tr>
- <td colspan='3'><input type='file' name='FH' size='40'
/>
- <input type='submit' name='ACTION' value='$Lang::tr{'import'}'
/>
- </td>
- </tr>
- <tr>
- <td colspan='3'> </td>
- </tr>
- <tr>
- <td colspan='3'><b>$Lang::tr{'backup sets'}:</b>
- <table width='100%' border='0'>
- <tr>
- <th width='90%' class='boldbase'
align='center'>$Lang::tr{'description'}</th>
- <th class='boldbase' align='center'
colspan='3'>$Lang::tr{'action'}</th>
- </tr>
-END
- ;
-
# get list of available sets by globbing directories under $setdir
# External device (usk key) are mounted in $setdir. -R permits finding sets in
hierarchy.
-my $i = 0;
-my $set = '';
-foreach $set (`/bin/ls -t1 $setdir/*.dat 2>/dev/null`) {
+my @sets = ();
+foreach my $file (`/bin/ls -t1 $setdir/*.dat 2>/dev/null`) {
+ chop($file);
- #remove newline from line
- chop($set);
-
# filter files out of name format
- if ($set =~
m!^$setdir/$hostfilter\d{4}-\d{2}-\d{2}_\d{2}-\d{2}-\d{2}\.dat$!) {
- if ($i++ % 2) {
- print " <tr bgcolor='$Header::table2colour'>\n";
- }
- else {
- print " <tr bgcolor='$Header::table1colour'>\n";
- }
-
- # read time with comment and reformat time
- my $settime = read_timefile($set);
- my $name = substr($set, length($setdir) + 1);
- print <<END
- <td>$settime</td>
- <td align='center'><form method='post'
action='$ENV{'SCRIPT_NAME'}'>
- <input type='image' name='$Lang::tr{'restore'}'
src='/images/reload.gif' alt='$Lang::tr{'restore'}'
title='$Lang::tr{'restore'}' />
- <input type='hidden' name='KEY' value='$set' /></form></td>
- <td align='center'><a href='/backup/$name'><img
src='/images/floppy.gif' alt='$Lang::tr{'export'}' title='$Lang::tr{'export'}'
/></a></td>
- <td align='center'><form method='post'
action='$ENV{'SCRIPT_NAME'}'>
- <input type='image' name='$Lang::tr{'remove'}'
src='/images/delete.gif' alt='$Lang::tr{'remove'}' title='$Lang::tr{'remove'}'
/>
- <input type='hidden' name='KEY' value='$set' /></form></td>
- </tr>
-END
- ;
+ if ($file =~
m!^$setdir/$hostfilter\d{4}-\d{2}-\d{2}_\d{2}-\d{2}-\d{2}\.dat$!) {
+ my %set = ();
+ $set{'set'} = $file;
+ $set{'filetime'} = read_timefile($file);
+ $set{'name'} = substr($file, length($setdir) + 1);
+ push (@sets, \%set);
}
}
-print "</table>\n</td></tr><tr><td colspan='3'>" . ($i ? "<br />" :
"$Lang::tr{'empty'}!<br /><br />");
-# after a floppy backup
-if ($settings{'ACTION'} eq $Lang::tr{'backup to floppy'}) {
- print "<hr /><b>$Lang::tr{'alt information'}</b><pre>" .
`/usr/local/bin/ipcopbackup` . ' </pre>';
-}
-print "</td></tr></table></td></tr></table></form>";
+my $freespace = &readfreespace();
-&Header::closebox();
-&Header::closebigbox();
-&Header::closepage();
+##
+## Process Template and Exit
+##
+&Header::showhttpheaders();
+$tt->process('backup.tpl', {
+ 'page' => $page_vars,
+ 'system' => \&Header::get_system_vars,
+ 'partitions' => \%partitions,
+ 'medias' => \%medias,
+ 'devcount' => \%devcount,
+ 'sets' => \...@sets,
+ 'mounted' => $mounted,
+ 'umountdisabled' => $umountdisabled,
+ 'cryptkeymissing' => $cryptkeymissing,
+ 'floppyresult' => $floppyresult,
+ 'media_des' => $media_des,
+ 'freespace' => $freespace,
+ 'action' => $settings{'ACTION'},
+}) || die $tt->error(), "\n";
1;
Added: ipcop/branches/template-branch/html/html/pages/backup.tpl
===================================================================
--- ipcop/branches/template-branch/html/html/pages/backup.tpl
(rev 0)
+++ ipcop/branches/template-branch/html/html/pages/backup.tpl 2009-05-01
11:32:39 UTC (rev 2765)
@@ -0,0 +1,176 @@
+[% location = 'alt system' | loc %]
+[% sublocation = 'backup' | loc %]
+[% title = 'backup' | loc %]
+
+[% PROCESS "$page.theme/vars.tpl" %]
+[% INCLUDE "$page.theme/header.tpl" %]
+[% INCLUDE "$page.theme/openbigbox.tpl"
+ width = '100%'
+ align = 'left' %]
+
+[% INCLUDE "$page.theme/errorbox.tpl" %]
+[% INCLUDE "$page.theme/warningbox.tpl" %]
+
+[%# Display main form %]
+[% caption = 'backup' | loc %]
+[% INCLUDE "$page.theme/openbox.tpl"
+ width = '100%'
+ align = 'left'
+ caption = caption %]
+
+<form method='post' action='[% page.url %]' enctype='multipart/form-data'>
+<table width='100%' border='0'>
+<tr><td><input type='submit' name='ACTION' value='[% 'backup to floppy' | loc
%]' /></td>
+ <td> </td>
+ <td><p>[% 'insert floppy' | loc %]</p></td>
+ <td width='10%' align='right'><a href='[% system.adminmanualurl
%]/system.html#backup' target='_blank'><img src='/images/web-support.png'
alt='[% 'online help en' | loc %]' title='[% 'online help en' | loc %]'
/></a></td>
+</tr></table>
+<table width='100%' border='0'>
+<tr><td colspan='3'><hr /></td></tr>
+<tr><td colspan='3'>
+ <table width='100%' border='0'>
+ <tr><td valign='top' colspan='2'>
+ <table width='100%' border='0'>
+ <tr><th colspan='2' align='left'>[% 'select media' | loc
%]</th></tr>
+ [% FOREACH media IN media.keys %]
+ [% IF medias.media.Attached == 'Yes' %]
+ [% IF devcount.${medias.media.Host} > 0 %]
+ <tr><td> </td><td><input type='radio'
name='MEDIA'
+ value='[% medias.media.Host %]'
disabled='disabled' />
+ <b>[% medias.media.Vendor %] [%
medias.media.Product %]</b> [% medias.media.Host %] [%
partitions.${medias.media.Host} %]
+ </td></tr>
+ [% ELSE %]
+ [% IF medias.media.Host == mounted %]
+ <tr><td><img src='/blob.gif' alt='*' /></td>
+ [% ELSE %]
+ <tr><td> </td>
+ [% END %]
+ <td><input type='radio' name='MEDIA' value='[%
medias.media.Host %]' [% 'CHECKED' IF medias.media.Host == mounted %]/>
+ <b>[% medias.media.Vendor %] [%
medias.media.Product %]</b> [% medias.media.Host %] [%
partitions.${medias.media.Host} %]
+ </td></tr>
+ [% END %]
+ [% FOREACH part IN partitions.keys.sort %]
+ [% IF part.search("${medias.media.Host}") %]
+ [% IF part == mounted %]
+ <tr><td><img src='/blob.gif' alt='*'
/></td>
+ [% ELSE %]
+ <tr><td> </td>
+ [% END %]
+ <td><input type='radio' name='MEDIA' value='[%
part %]' [% 'CHECKED' IF part == mounted %] />
+ [% part %] ([% partitions.part
%])
+ </td></tr>
+ [% END %]
+ [% END %]
+ [% END %]
+ [% END %]
+ [% lhd = 'local hard disk' | loc %]
+ <tr><td> </td>
+ <th align='left'><input type='radio' name='MEDIA' value='
[% lhd %]' [% 'CHECKED' IF mounted == lhd %]/>[% lhd %]</th>
+ </tr>
+ [% umount = 'umount' | loc %]
+ [% IF action == umount %]
+ <tr><td colspan='2'>[% 'safe removal of umounted device' |
loc %]</td></tr>
+ [% ELSIF mounted == lhd %]
+ <tr><td colspan='2'>[% 'removable device advice' | loc
%]</td></tr>
+ [% ELSE %]
+ <tr><td><img src='/blob.gif' alt='*' /></td>
+ <td nowrap='nowrap'>[% 'umount removable media before
to unplug' | loc %]</td>
+ </tr>
+ [% END %]
+ <tr><td colspan='2' align='center'>
+ <input type='submit' name='ACTION' value='[% 'refresh'
| loc %]' />
+ <input type='submit' name='ACTION' value='[% 'mount'
| loc %]' />
+ <input type='submit' name='ACTION' value='[% 'umount'
| loc %]' [% umountdisabled %]/>
+ </td>
+ </tr>
+ </table>
+ </td>
+ <td valign='top'>
+ <table border='0' align='center'>
+ <tr><th align='left'>[% 'backup key' | loc %]</th></tr>
+ <tr><td nowrap='nowrap'>[% 'backup password' | loc %]:
+ <input type='password' name='PASSWORD' size='15' />
+ </td>
+ </tr>
+ <tr><td align='center'>
+ <input type='submit' name='ACTION' value='[% 'backup
export key' | loc %]' />
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td colspan='3'><hr /></td>
+ </tr>
+ <tr>
+ <th colspan='3' align='left'>[% 'current media' | loc %]:
+ <font color='[% mytheme.colourred %]'>[% media_des
%] </font>[% 'free' | loc %]:[% freespace %] M
+ </th>
+ </tr>
+ <tr><td colspan='3'> </td></tr>
+ <tr><td colspan='3'><b>[% 'create new backup' | loc %]</b></td>
+ </tr>
+ <tr>
+ <td colspan='3' nowrap='nowrap'>[% 'description' | loc %]:<
+ <input type='text' name='DESCRIPTION' size='40' [%
"disabled='disabled'" IF cryptkeymissing %]/>
+ <input type='submit' name='ACTION' value='[% 'create new
backup'| loc %]' [% "disabled='disabled'" IF cryptkeymissing %]/>
+ </td>
+ </tr>
+ <tr>
+ <td colspan='3'> </td>
+ </tr>
+ <tr>
+ <td colspan='3'><b>[% 'backup import dat file' | loc %]:</b></td>
+ </tr>
+ <tr>
+ <td colspan='3'><input type='file' name='FH' size='40'
/>
+ <input type='submit' name='ACTION' value='[% 'import' | loc
%]' />
+ </td>
+ </tr>
+ <tr>
+ <td colspan='3'> </td>
+ </tr>
+ <tr>
+ <td colspan='3'><b>[% 'backup sets' | loc %]:</b>
+ <table width='100%' border='0'>
+ <tr>
+ <th width='90%' class='boldbase' align='center'>[%
'description' | loc %]</th>
+ <th class='boldbase' align='center' colspan='3'>[%
'action' | loc %]</th>
+ </tr>
+ [% FOREACH set IN sets %]
+ [% tid = (loop.index % 2) + 1 %]
+ [<tr class='table[% tid %]colour'>
+ <td>[% set.filetime %]</td>
+ <td align='center'><form method='post' action='[% page.url
%]'>
+ <input type='image' name='[% 'restore' | loc %]'
src='/images/reload.gif' alt='[% 'restore' | loc %]' title='[% 'restore' | loc
%]' />
+ <input type='hidden' name='KEY' value='[% set.set %]'
/></form></td>
+ <td align='center'><a href='/backup/[% set.name %]'><img
src='/images/floppy.gif' alt='[% 'export' | loc %]' title='[% 'export' | loc
%]' /></a></td>
+ <td align='center'><form method='post' action='[% page.url
%]'>
+ <input type='image' name='[% 'remove' | loc %]'
src='/images/delete.gif' alt='[% 'remove' | loc %]' title='[% 'remove' | loc
%]' />
+ <input type='hidden' name='KEY' value='[% set.set %]'
/></form></td>
+ </tr>
+ [% END %]
+
+ </table>
+ </td>
+ </tr>
+ <tr><td colspan='3'>
+ [% IF ! sets.size %]
+ [% 'empty' | loc %]!<br /><br />
+ [% ELSE %]
+ <br /><br /><br />
+ [% END %]
+ [% fbackup = 'backup to floppy' | loc %]
+ [% IF action == fbackup %]
+ <hr /><b>[% 'alt information' | loc %]</b><pre>[% floppyresult
%] </pre>
+ [% END %]
+ </td></tr>
+ </table>
+ </td></tr>
+</table>
+</form>
+
+[% INCLUDE "$page.theme/closebox.tpl" %]
+
+[% INCLUDE "$page.theme/closebigbox.tpl" %]
+[% INCLUDE "$page.theme/footer.tpl" %]
Added: ipcop/branches/template-branch/html/html/pages/backup2.tpl
===================================================================
--- ipcop/branches/template-branch/html/html/pages/backup2.tpl
(rev 0)
+++ ipcop/branches/template-branch/html/html/pages/backup2.tpl 2009-05-01
11:32:39 UTC (rev 2765)
@@ -0,0 +1,39 @@
+[% location = 'alt system' | loc %]
+[% sublocation = 'backup' | loc %]
+[% title = 'backup' | loc %]
+
+[% PROCESS "$page.theme/vars.tpl" %]
+[% INCLUDE "$page.theme/header.tpl" %]
+[% INCLUDE "$page.theme/openbigbox.tpl"
+ width = '100%'
+ align = 'left' %]
+
+[% INCLUDE "$page.theme/errorbox.tpl" %]
+[% INCLUDE "$page.theme/warningbox.tpl" %]
+
+[% caption = 'are you sure' | loc %]
+[% INCLUDE "$page.theme/openbox.tpl"
+ width = '100%'
+ align = 'left'
+ caption = caption %]
+
+ <form method='post' action='[% page.url %]'>
+ <input type='hidden' name='KEY' value='[% key %]' />
+ <table align='center' border='0'>
+ <tr>
+ <td>[% 'restore' | loc %]:</td>
+ <td>[% settime %] </td>
+ </tr>
+ <tr>
+ <td>[% 'restore hardware settings' | loc %]: <input type='checkbox'
name='RESTOREHW' /></td>
+ </tr>
+ <tr>
+ <td align='center'><input type='submit' name='ACTION' value='[%
'restore' | loc %]' /></td>
+ <td><input type='submit' name='ACTION' value='[% 'cancel' | loc %]'
/></td>
+ </tr>
+ </table>
+ </form>
+[% INCLUDE "$page.theme/closebox.tpl" %]
+
+[% INCLUDE "$page.theme/closebigbox.tpl" %]
+[% INCLUDE "$page.theme/footer.tpl" %]
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
Register Now & Save for Velocity, the Web Performance & Operations
Conference from O'Reilly Media. Velocity features a full day of
expert-led, hands-on workshops and two days of sessions from industry
leaders in dedicated Performance & Operations tracks. Use code vel09scf
and Save an extra 15% before 5/3. http://p.sf.net/sfu/velocityconf
_______________________________________________
Ipcop-svn mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ipcop-svn