OSSP CVS Repository

ossp - ossp-pkg/quos/quos.cgi 1.2
Not logged in
[Honeypot]  [Browse]  [Directory]  [Home]  [Login
[Reports]  [Search]  [Ticket]  [Timeline
  [Raw

ossp-pkg/quos/quos.cgi 1.2
#!/usr/opkg/bin/perl
##
##  OSSP quos - Query On Steroids
##  Copyright (c) 2004 Ralf S. Engelschall <rse@engelschall.com>
##  Copyright (c) 2004 The OSSP Project <http://www.ossp.org/>
##
##  This file is part of OSSP quos, a Web user interface for querying
##  a database which can be found at http://www.ossp.org/pkg/tool/quos/.
##
##  This program is free software; you can redistribute it and/or modify
##  it under the terms of the GNU General Public License as published by
##  the Free Software Foundation; either version 2 of the License, or
##  (at your option) any later version.
##
##  This program is distributed in the hope that it will be useful,
##  but WITHOUT ANY WARRANTY; without even the implied warranty of
##  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
##  General Public License for more details.
##
##  You should have received a copy of the GNU General Public License
##  along with this program; if not, write to the Free Software
##  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
##  USA, or contact Ralf S. Engelschall <rse@engelschall.com>.
##
##  quos.cgi: web user interface
##

require 5.008;
use CGI;
use String::Divert;
use IO::File;

#   create objects
my $cgi  = new CGI;
my $html = new String::Divert;
$html->overload(1);

#   generate outer canvas
$html .= "<div class=\"quos\">\n";
$html->fold("quos");
$html .= "</div>\n";
$html >> "quos";

#   generate browse part   
$html .= "<p>";
$html .= "<span class=\"browse\">";
$html .= "<span class=\"title\">Browse</span>\n";
$html->fold("browse");
$html .= "</span>\n";
$html .= "</span>\n";

#   generate query part   
$html .= "<p>";
$html .= "<span class=\"query\">";
$html .= "<span class=\"title\">Query</span>\n";
$html->fold("query");
$html .= "</span>\n";
$html .= "</span>\n";

#   generate view part   
$html .= "<p>";
$html .= "<span class=\"view\">";
$html .= "<span class=\"title\">View</span>\n";
$html->fold("view");
$html .= "</span>\n";
$html .= "</span>\n";

#   generate result part   
$html .= "<p>";
$html .= "<span class=\"result\">";
$html .= "<span class=\"title\">Result</span>\n";
$html->fold("result");
$html .= "</span>\n";
$html .= "</span>\n";

#   sample
$html >> "query";
$html .= "this is the query part";
$html << 1;

#   read HTML skeleton
my $io = new IO::File "<quos.html"
    or die "unable to read HTML skeleton file \"quos.html\"";
my $skel = '';
$skel .= $_ while (<$io>);
$io->close();
$html->undivert(0);
$skel =~ s|\%BODY\%|$html|s;
$html = $skel;

#   create HTTP response
my $http = $cgi->header(
    -type    => 'text/html',
    -expires => '+10s'
);
$http .= $html;
print STDOUT $http;

__END__

=pod

=head1 NAME

B<OSSP quos> - Query On Steroids

=head1 DESCRIPTION

...FIXME...

=head1 LOGICAL LAYOUT

1. Browse
   - Groups
     . Hyperlinks
2. Query
   - Groups
     . Field (database schema)
     . Operator (compare)
     . Value (depends on compare)
3. View
   - Selection predefined output format
   - OSSP var based formatting string
   - ordering
   - save custom view
4. Result
   - based on View

=cut


CVSTrac 2.0.1