Annotation of rat/lonratparms.pm, revision 1.19

1.1       www         1: # The LearningOnline Network with CAPA
                      2: # Set parameters inside of the RAT
                      3: #
1.19    ! albertel    4: # $Id: lonratparms.pm,v 1.18 2003/10/23 18:38:50 albertel Exp $
1.8       www         5: #
                      6: # Copyright Michigan State University Board of Trustees
                      7: #
                      8: # This file is part of the LearningOnline Network with CAPA (LON-CAPA).
                      9: #
                     10: # LON-CAPA is free software; you can redistribute it and/or modify
                     11: # it under the terms of the GNU General Public License as published by
                     12: # the Free Software Foundation; either version 2 of the License, or
                     13: # (at your option) any later version.
                     14: #
                     15: # LON-CAPA is distributed in the hope that it will be useful,
                     16: # but WITHOUT ANY WARRANTY; without even the implied warranty of
                     17: # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
                     18: # GNU General Public License for more details.
                     19: #
                     20: # You should have received a copy of the GNU General Public License
                     21: # along with LON-CAPA; if not, write to the Free Software
                     22: # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
                     23: #
                     24: # /home/httpd/html/adm/gpl.txt
                     25: #
                     26: # http://www.lon-capa.org/
                     27: #
1.1       www        28: # (Search Catalog
                     29: #
                     30: # (Internal Server Error Handler
                     31: #
                     32: # (Login Screen
                     33: # 5/21/99,5/22,5/25,5/26,5/31,6/2,6/10,7/12,7/14,
                     34: # 1/14/00,5/29,5/30,6/1,6/29,7/1,11/9 Gerd Kortemeyer)
                     35: #
                     36: # 3/1/1 Gerd Kortemeyer)
                     37: #
                     38: # 3/1 Gerd Kortemeyer)
                     39: #
1.7       www        40: # 03/03/01,06/15,06/25,06/26,06/30,07/02,07/03,07/04 Gerd Kortemeyer
1.9       matthew    41: # 03/11/02 Matthew Hall
1.1       www        42: #
                     43: package Apache::lonratparms;
                     44: 
                     45: use strict;
                     46: use Apache::Constants qw(:common);
1.15      matthew    47: use Apache::lonhtmlcommon();
1.16      www        48: use Apache::lonlocal;
1.1       www        49: 
                     50: sub handler {
                     51:     my $r = shift;
1.16      www        52:     &Apache::loncommon::content_type($r,'text/html');
1.1       www        53:     $r->send_http_header;
                     54:     return OK if $r->header_only;
                     55: 
1.2       www        56: # Get query string for limited number of parameters
                     57: 
1.10      stredwic   58:     &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
1.11      www        59:                                             ['url','parms','resid']);
1.2       www        60: 
                     61: # ------------------------------------------------------------------- Read file
                     62: 
                     63:   my $uri=$ENV{'form.url'}.'.meta';
1.3       www        64:   
                     65:   my %content;
                     66:   my %type;
1.5       www        67:   my %display;
1.3       www        68:   my %value;
                     69:   
1.9       matthew    70:   foreach (split(/\,/,&Apache::lonnet::metadata($uri,'keys'))) {
1.4       www        71:       if ($_=~/^parameter\_/) {
                     72:          $content{$_}=&Apache::lonnet::metadata($uri,$_);
1.5       www        73:          $type{$_}=&Apache::lonnet::metadata($uri,$_.'.type');
                     74:          $display{$_}=&Apache::lonnet::metadata($uri,$_.'.display');
1.4       www        75:       }
1.9       matthew    76:   }
1.2       www        77: 
1.12      www        78: # -------------------------------------- Additional parms for certain resources
                     79: 
                     80:     if ($uri=~/\.(sequence|page)\.meta$/) {
                     81:         $content{'parameter_randompick'}='';
                     82:         $type{'parameter_randompick'}='int_pos';
                     83: 	$display{'parameter_randompick'}='Randomly pick number of resources';
1.13      www        84:         
                     85:         $content{'parameter_randompickseed'}='';
                     86:         $type{'parameter_randompickseed'}='int_pos';
                     87: 	$display{'parameter_randompickseed'}=
                     88:  'Random seed for randomly picking number of resources (optional, only set if you know what you are doing)';
1.12      www        89:     } else {
                     90:         $content{'parameter_mapalias'}='';
                     91:         $type{'parameter_mapalias'}='string';
                     92: 	$display{'parameter_mapalias'}='Resource alias name for conditions';
                     93:     }
1.3       www        94: # ---------------------------------------------------------- Current Parameters
1.2       www        95: 
1.9       matthew    96:   foreach (split(/\:/,$ENV{'form.parms'})) {
1.3       www        97:       my ($ptype,$pname,$pvalue)=split(/\_\_\_/,$_);
1.5       www        98:       unless ($type{$pname}) { $type{$pname}=$ptype; }
1.3       www        99:       $value{$pname}=$pvalue;
1.9       matthew   100:   } 
1.3       www       101:   
                    102: # --------------------------------------------------- Print input screen header
1.15      matthew   103:     my $pjump_def = &Apache::lonhtmlcommon::pjump_javascript_definition();
1.16      www       104:     my $bodytag=&Apache::loncommon::bodytag('Set Resource Parameters in Map');
1.17      www       105:     my %lt=&Apache::lonlocal::texthash('pa' => 'Parameter',
                    106: 			               'de' => 'Default',
                    107: 				       'va' => 'Value',
                    108: 				       'se' => 'Set');
1.16      www       109:  
1.3       www       110:     $r->print(<<ENDHEADER);
1.1       www       111: <html>
                    112: <head>
                    113: <title>The LearningOnline Network with CAPA</title>
1.3       www       114: <script language="JavaScript">
1.7       www       115: 
                    116:     function pclose() {
                    117:         parmwin=window.open("/adm/rat/empty.html","LONCAPAparms",
                    118:                  "height=350,width=350,scrollbars=no,menubar=no");
                    119:         parmwin.close();
                    120:     }
                    121: 
1.15      matthew   122:     $pjump_def
1.7       www       123: 
                    124:     function stpr() {
                    125:         eval("document.parameters."+document.parameters.pres_marker.value+
                    126:             ".value=document.parameters.pres_value.value");
                    127:         pclose();
                    128:     }
                    129: 
                    130: 
1.3       www       131: function setparms() {
                    132: ENDHEADER
1.6       www       133:     $r->print('var colon=""; opener.objparms['.$ENV{'form.resid'}.']="";');
1.3       www       134:     map {
                    135:        $r->print("\nif (document.parameters.def_".$_.
1.5       www       136:        '.checked) { opener.objparms['.$ENV{'form.resid'}.
1.6       www       137:        ']+=colon+"'.$type{$_}.
                    138:        '___'.$_.'___"+document.parameters.'.$_.'.value; colon=":"; }'); 
1.3       www       139:     } keys %content;
                    140:     $r->print(<<ENDDOCUMENT);
1.6       www       141:     opener.save();
1.3       www       142:     window.close();
                    143: }
                    144: </script>
1.1       www       145: </head>
1.16      www       146: $bodytag
1.4       www       147: <form action="javascript:setparms();" method="post" name="parameters">
1.7       www       148: <input type="hidden" value='' name="pres_value">
                    149: <input type="hidden" value='' name="pres_type">
                    150: <input type="hidden" value='' name="pres_marker">
1.4       www       151: <table border=2>
1.16      www       152: <tr><th>$lt{'pa'}</th><th>$lt{'de'}</th><th>$lt{'va'}</th><th>$lt{'se'}?</th></tr>
1.1       www       153: ENDDOCUMENT
1.17      www       154: ###    %display=&Apache::lonlocal::texthash(%display);
1.16      www       155:     my $enter=&mt('Enter');
1.18      albertel  156:     foreach (sort(keys(%content))) {
1.5       www       157:         my $cur=$content{$_};
1.9       matthew   158:         # Should if(defined($value{$_})) be if(exists($value{$_})) ?
1.5       www       159:         if (defined($value{$_})) { $cur=$value{$_}; };
1.9       matthew   160:         $r->print(<<"END");
                    161: <tr><td><b>$display{$_}</b><br><tt>$_</tt></td>
                    162: <td>&nbsp;$content{$_}</td>
                    163: <td><input type="text" size="10" name="$_" value="$cur">&nbsp;
1.16      www       164: <a href='javascript:pjump("$type{$_}","$display{$_}",document.parameters.$_.value,"$_","parameters.pres","stpr");'>$enter</a></td>
1.9       matthew   165: <td><input type="checkbox" name="def_$_" 
                    166: END
1.6       www       167:         if ($value{$_}) { $r->print(' checked'); }
                    168:         $r->print('></td></tr>');
1.9       matthew   169:     }
1.3       www       170:     $r->print(
1.16      www       171:         '</table><br><input type="submit" value="'.&mt('Set').'"></form></body></html>');
1.1       www       172:     return OK;
                    173: } 
                    174: 
                    175: 1;
                    176: __END__
1.7       www       177: 

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>
500 Internal Server Error

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at root@localhost to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log.