#!/usr/local/bin/perl ############################################################################### # Program : Help # Author : Eric Deutsch # $Id$ # # Description : This script authenticates the user, and then # displays the specified help information. # # SBEAMS is Copyright (C) 2000-2005 Institute for Systems Biology # This program is governed by the terms of the GNU General Public License (GPL) # version 2 as published by the Free Software Foundation. It is provided # WITHOUT ANY WARRANTY. See the full description of GPL terms in the # LICENSE file distributed with this software. # ############################################################################### ############################################################################### # Set up all needed modules and objects ############################################################################### use strict; use Getopt::Long; use FindBin; use lib "$FindBin::Bin/../../lib/perl"; use vars qw ($sbeams $sbeamsMOD $q $current_contact_id $current_username $PROG_NAME $USAGE %OPTIONS $QUIET $VERBOSE $DEBUG $TESTONLY $TABLE_NAME $PROGRAM_FILE_NAME $CATEGORY $DB_TABLE_NAME @MENU_OPTIONS); use SBEAMS::Connection qw($q $log); use SBEAMS::Connection::Settings; use SBEAMS::Connection::Tables; use SBEAMS::Cytometry; use SBEAMS::Cytometry::Settings; use SBEAMS::Cytometry::Tables; $sbeams = new SBEAMS::Connection; $sbeamsMOD = new SBEAMS::Cytometry; $sbeamsMOD->setSBEAMS($sbeams); $sbeams->setSBEAMS_SUBDIR($SBEAMS_SUBDIR); #use CGI; #$q = new CGI; ############################################################################### # Set program name and usage banner for command line use ############################################################################### $PROG_NAME = $FindBin::Script; $USAGE = <Authenticate() and exit if it fails or continue if it works. ############################################################################### sub main { #### Do the SBEAMS authentication and exit if a username is not returned exit unless ($current_username = $sbeams->Authenticate( #permitted_work_groups_ref=>['Proteomics_user','Proteomics_admin', # 'Proteomics_readonly'], #connect_read_only=>1, #allow_anonymous_access=>1, )); #### Read in the default input parameters my %parameters; my $n_params_found = $sbeams->parse_input_parameters( q=>$q,parameters_ref=>\%parameters); #$sbeams->printDebuggingInfo($q); #### Process generic "state" parameters before we start $sbeams->processStandardParameters(parameters_ref=>\%parameters); #### Decide what action to take based on information so far if ($parameters{action} eq "???") { # Some action } else { $sbeamsMOD->display_page_header(); handle_request(ref_parameters=>\%parameters); $sbeamsMOD->display_page_footer(); } } # end main ############################################################################### # Handle Request ############################################################################### sub handle_request { my %args = @_; #### Process the arguments list my $ref_parameters = $args{'ref_parameters'} || die "ref_parameters not passed"; my %parameters = %{$ref_parameters}; #### Show current user context information $sbeams->printUserContext(); $current_contact_id = $sbeams->getCurrent_contact_id(); my $document; #### If no document was specified, complain (ideally list all) unless ($parameters{document}) { print "ERROR: Document unspecified
\n"; return; } #### Help: Proteomics Tutorial my $document = "SampleNameConvention"; if ($parameters{document} eq $document){ #print out the list of links # $sbeamsMOD->documentation_list(); # }elsif ($document = grep { $parameters{document} eq ($_) } @documents){ # $document = $parameters{document}; # my $document_file = "$PHYSICAL_BASE_DIR/doc/Proteomics/$document.php"; my $document_file = "$PHYSICAL_BASE_DIR/doc/Cytometry/$document.php"; if (-e $document_file) { open(INFILE,$document_file) || die("ERROR: Unable to read $document_file"); my $is_content = 0; my $page = ''; while (my $line = ) { if ($is_content) { if ($line =~ /^debug( $page); } else { print "ERROR: Unable to find document $document_file\n"; } } else { print "ERROR: Unrecognized document $parameters{document}\n"; } return; } # end handleResquest