add print test page

This commit is contained in:
Mario Fetka
2026-05-22 14:37:21 +02:00
parent d967947ece
commit 5bb5ef98c5
5 changed files with 478 additions and 147 deletions

View File

@@ -327,6 +327,51 @@ sub sanitize_cups_printer_name( $ )
return $s;
}
sub queue_config_fields( $ )
{
my $line = $_[0];
$line = '' unless defined( $line );
$line =~ s/^\s*21\s+//i;
$line =~ s/^\s+//;
$line =~ s/\s+$//;
my( $name, $spool, $cmd ) = split( /\s+/, $line, 3 );
$name = '' unless defined( $name );
$spool = '' unless defined( $spool );
$cmd = '' unless defined( $cmd );
return( $name, $spool, $cmd );
}
sub queue_config_by_name( $ )
{
my $wanted = uc( $_[0] );
foreach my $line ( getconfig( 21 ) )
{
my( $name, $spool, $cmd ) = queue_config_fields( $line );
return( $spool, $cmd ) if uc( $name ) eq $wanted;
}
return( '', '' );
}
sub queue_names_from_config()
{
my @names = ();
foreach my $line ( getconfig( 21 ) )
{
my( $name, $spool, $cmd ) = queue_config_fields( $line );
push( @names, $name ) if $name ne '';
}
return @names;
}
sub cups_queue_name( $ )
{
my $s = sanitize_cups_printer_name( $_[0] );
@@ -3409,17 +3454,37 @@ $settings_nav_bar
</TD>
</TR>
EOF
my %queue_seen = ();
my @queue_names = ();
@c = sort( split( "\n", `nwbols -t 3 -S $server` ) );
foreach $c ( @c )
{
my @c = split( ' ', $c );
next if ! defined( $c[0] ) || $c[0] eq '';
next if $queue_seen{uc( $c[0] )};
push( @queue_names, $c[0] );
$queue_seen{uc( $c[0] )} = 1;
}
foreach my $q ( queue_names_from_config() )
{
next if $queue_seen{uc( $q )};
push( @queue_names, $q );
$queue_seen{uc( $q )} = 1;
}
foreach my $q ( sort( @queue_names ) )
{
print <<EOF;
<TR BGCOLOR="#fbf7f1">
<TD>
<A HREF="/settings/queues/$c[0]">$c[0]</A>
<A HREF="/settings/queues/$q">$q</A>
</TD>
<TD ALIGN=RIGHT>
<A HREF="/apply/queues/$c[0]" onclick="return confirm('Delete queue $c[0]?')">Delete</A><BR>
<A HREF="/apply/queues/$q?test_print=1">Test print</A>
&nbsp;|&nbsp;
<A HREF="/apply/queues/$q" onclick="return confirm('Delete queue $q?')">Delete</A><BR>
</TD>
</TR>
EOF
@@ -3448,6 +3513,10 @@ EOF
{
$unix_print = read_property_string( $c[2], 3, 'Q_UNIX_PRINT' );
$spool_dir = read_property_string( $c[2], 3, 'Q_DIRECTORY' );
my( $cfg_spool, $cfg_cmd ) = queue_config_by_name( $c[2] );
$spool_dir = $cfg_spool if ( ! defined( $spool_dir ) || $spool_dir eq '' ) && $cfg_spool ne '';
$unix_print = $cfg_cmd if ( ! defined( $unix_print ) || $unix_print eq '' ) && $cfg_cmd ne '';
}
elsif( $selected_cups_printer ne '' )
{
@@ -3576,6 +3645,22 @@ EOF
<INPUT NAME="spool_dir" TYPE=TEXT SIZE=32 VALUE="$spool_dir"><BR>
</TD>
</TR>
EOF
if( $c[2] ne 'add_new' )
{
print <<EOF;
<TR BGCOLOR="#fbf7f1">
<TD>
<B>Queue test:</B><BR>
<SMALL>Submit a small test job with nprint.</SMALL>
</TD>
<TD ALIGN=RIGHT>
<A HREF="/apply/queues/$c[2]?test_print=1">Test print queue</A><BR>
</TD>
</TR>
EOF
}
print <<EOF;
<TR BGCOLOR="#d7c0a0">
<TD>
<INPUT TYPE=SUBMIT VALUE="OK">