# ==================================================================
# DBMan SQL - enhanced database management system
#
# Website : http://gossamer-threads.com/
# Support : http://gossamer-threads.com/scripts/support/
# Revision : $Id: HTML.pm,v 1.13 2002/05/16 23:53:26 bao Exp $
#
# Copyright (c) 2001 Gossamer Threads Inc. All Rights Reserved.
# Redistribution in part or in whole strictly prohibited. Please
# see LICENSE file for full details.
# ==================================================================
package Dbsql::Relation::HTML;
use strict;
sub generate_add_mul_success {
#----------------------------------------------------------------------
#
my $tags = GT::Template->tags;
my $home = $tags->{home};
my $font = '';
my $header = "
";
my @rl_cols = $home->{subfrm}->{db}->ordered_columns;
my @pr_cols = $home->{db}->ordered_columns;
foreach (@pr_cols) {
$header .= "
$font$_:
$font$tags->{$_}
";
}
$header .= '
';
my $output = "$header
";
my $details = $tags->{details};
my $count = 0;
my $title = '
';
foreach my $k ( @rl_cols ) {
if ( $count == 1 ) { # create the title
$title .= "
$font$k
";
}
$body .= "
$font$_->{$k}
";
}
$body .= '
';
}
$title .= '';
return "$output$title$body
";
}
sub generate_qsearch_form {
#----------------------------------------------------------------------
#
my $tags = GT::Template->tags;
my $home = $tags->{home};
my $qname = $tags->{home}->{cgi}->{q};
my $rs = $home->{sql}->table('Dbsql_Queries')->get({ QName => $qname });
( $rs ) or return;
if ( $rs->{QTables} and $rs->{QFields} ) {
my $output = '
';
my $font = '';
my (@cols, $hidden);
foreach my $f ( @{eval $rs->{QFields}} ) { push @cols, { name => $f}; }
foreach ( @{eval $rs->{QTables}} ) {
my $cols = $home->{sql}->table($_)->cols;
foreach my $f ( @cols ) {
next if ( $f->{type} );
if ( $f->{name} =~ m/$_\./ ) {
my ($fn) = $f->{name} =~ /\.([^.]+)$/;
foreach my $k ( keys % {$cols->{$fn}} ) { $f->{$k} = $cols->{$fn}->{$k}; }
$f->{form_display} = $cols->{$fn}->{form_display} || $f->{name};
}
}
}
foreach ( @cols ) {
next if (!$_->{type});
my $form_type = lc $_->{form_type};
if ( $form_type eq 'hidden' ) {
$hidden .= "{form_size}>";
next;
}
$output .= "
$font$_->{form_display}
";
if ( $_->{form_names} and $_->{form_values} ) {
my ($form_names,$form_values);
$form_names = $_->{form_names};
$form_values = $_->{form_values};
if ( $form_type eq 'checkbox' or $form_type eq 'radio' ) {
$output .= '
"
}
return $output;
}
sub generate_qresults_header {
#----------------------------------------------------------------------
#
my $tags = GT::Template->tags;
my $home = $tags->{home};
my $headers = $tags->{info}->{headers};
my $details = $tags->{info}->{details};
my $cols = $tags->{info}->{cols};
my $record = $tags->{results}[$tags->{row_num}-1];
my $output = '
';
my $font = '';
my ($i, $owner, $url);
$owner = $record->{$tags->{info}->{user_field}} if ( !$tags->{home}->{cgi}->{ow} );
$url = 'db.cgi?';
if ( $owner and $owner ne 'default' ) {
my $opts = ['db', 'sdb', 'q'];
foreach ( @$opts ) {
$url .= "$_=$home->{cgi}->{$_}&" if ( $home->{cgi}->{$_} );
}
$url .= "do=owner&oid=$owner";
}
foreach ( @$headers ) {
( $cols->{$_}[0] ) or next;
my ($fn) = $cols->{$_}[0] =~ /\.([^.]+)$/;
$fn ||= $cols->{$_}[0];
if ( $i == $#$headers and $owner and $owner ne 'default' ) {
$output .= qq!