--- loncom/interface/lonhtmlcommon.pm	2002/07/25 21:23:51	1.4
+++ loncom/interface/lonhtmlcommon.pm	2002/08/30 15:35:08	1.9
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # a pile of common html routines
 #
-# $Id: lonhtmlcommon.pm,v 1.4 2002/07/25 21:23:51 stredwic Exp $
+# $Id: lonhtmlcommon.pm,v 1.9 2002/08/30 15:35:08 stredwic Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -30,16 +30,45 @@ package Apache::lonhtmlcommon;
 
 use strict;
 
+sub AscendOrderOptions {
+    my ($order, $page, $formName)=@_;
+
+    my $OpSel1 = '';
+    my $OpSel2 = '';
+
+    if($order eq 'Ascending') {
+        $OpSel1 = ' selected';
+    } else {
+        $OpSel2 = ' selected';
+    }
+
+    my $Str = '';
+    $Str .= '<select name="'.(($page)?$page:'').'Ascend"';
+    if($formName) {
+        $Str .= ' onchange="document.'.$formName.'.submit()"';
+    }
+    $Str .= '>'."\n";
+    $Str .= '<option'.$OpSel1.'>Ascending</option>'."\n".
+	    '<option'.$OpSel2.'>Descending</option>'."\n";
+    $Str .= '</select>'."\n";
+
+    return $Str;
+}
+
 sub MapOptions {
-    my ($data, $page)=@_;
+    my ($data, $page, $formName)=@_;
     my $Str = '';
     $Str .= '<select name="';
-    $Str .= (($page)?$page:'').'Map">'."\n";
+    $Str .= (($page)?$page:'').'Maps"';
+    if($formName) {
+        $Str .= ' onchange="document.'.$formName.'.submit()"';
+    }
+    $Str .= '>'."\n";
 
     my $selected = 0;
     foreach my $sequence (split(':',$data->{'orderedSequences'})) {
 	$Str .= '<option';
-        if($data->{$page.'Map'} eq $data->{$sequence.':title'}) {
+        if($data->{$page.'Maps'} eq $data->{$sequence.':title'}) {
             $Str .= ' selected';
             $selected = 1;
         }
@@ -56,6 +85,76 @@ sub MapOptions {
     return $Str;
 }
 
+sub ProblemOptions {
+    my ($data, $page, $map, $formName)=@_;
+    my $Str = '';
+    $Str .= '<select name="';
+    $Str .= (($page)?$page:'').'ProblemSelect"';
+    if($formName) {
+        $Str .= ' onchange="document.'.$formName.'.submit()"';
+    }
+    $Str .= '>'."\n";
+
+    my $selected = 0;
+    foreach my $sequence (split(':',$data->{'orderedSequences'})) {
+	if($data->{$sequence.':title'} eq $map || $map eq 'All Maps') {
+	    foreach my $problem (split(':', $data->{$sequence.':problems'})) {
+		$Str .= '<option';
+		if($data->{$page.'ProblemSelect'} eq 
+		   $data->{$problem.':title'}) {
+		    $Str .= ' selected';
+		    $selected = 1;
+		}
+		$Str .= '>'.$data->{$problem.':title'}.'</option>'."\n";
+	    }
+	}
+    }
+    $Str .= '<option';
+    if(!$selected) {
+        $Str .= ' selected';
+    }
+    $Str .= '>All Problems</option>'."\n";
+
+    $Str .= '</select>'."\n";
+
+    return $Str;
+}
+
+sub PartOptions {
+    my ($data, $page, $parts, $formName)=@_;
+    my $Str = '';
+
+    if(!defined($parts)) {
+	return '';
+    }
+
+    $Str .= '<select name="';
+    $Str .= (($page)?$page:'').'PartSelect"';
+    if($formName) {
+        $Str .= ' onchange="document.'.$formName.'.submit()"';
+    }
+    $Str .= '>'."\n";
+
+    my $selected = 0;
+    foreach my $part (@$parts) {
+	$Str .= '<option';
+	if($data->{$page.'PartSelect'} eq $part) {
+	    $Str .= ' selected';
+	    $selected = 1;
+	}
+	$Str .= '>'.$part.'</option>'."\n";	     
+    }
+    $Str .= '<option';
+    if(!$selected) {
+        $Str .= ' selected';
+    }
+    $Str .= '>All Parts</option>'."\n";
+
+    $Str .= '</select>'."\n";
+
+    return $Str;
+}
+
 sub StudentOptions {
     my ($cache, $students, $selectedName, $page, $formName)=@_;
 
@@ -120,60 +219,35 @@ sub StatusOptions {
     $Str .= '</select>'."\n";
 }
 
-sub Title {
-    my ($pageName)=@_;
+sub MultipleSectionSelect {
+    my ($sections,$selectedSections)=@_;
 
     my $Str = '';
+    $Str .= '<select name="Section" multiple="true" size="4">'."\n";
 
-    $Str .= '<html><head><title>'.$pageName.'</title></head>'."\n";
-    $Str .= '<body bgcolor="#FFFFFF">'."\n";
-    $Str .= '<script>window.focus(); window.width=500;window.height=500;';
-    $Str .= '</script>'."\n";
-    $Str .= '<table width="100%"><tr><td valign="top">';
-    $Str .= '<h1> Course: ';
-    $Str .= $ENV{'course.'.$ENV{'request.course.id'}.'.description'};
-    $Str .= '</h1></td><td align="right">'."\n";
-    $Str .= '<img align="right" src=/adm/lonIcons/lonlogos.gif>';
-    $Str .= '</td></tr></table>'."\n";
-#    $Str .= '<h3>Current Time: '.localtime(time).'</h3><br><br><br>'."\n";
+    foreach (@$sections) {
+        $Str .= '<option';
+        foreach my $selected (@$selectedSections) {
+            if($_ eq $selected) {
+                $Str .= ' selected=""';
+            }
+        }
+        $Str .= '>'.$_.'</option>'."\n";
+    }
+    $Str .= '</select>'."\n";
 
     return $Str;
 }
 
-sub CreateStatisticsMainMenu {
-    my ($status, $reports)=@_;
+sub Title {
+    my ($pageName)=@_;
 
     my $Str = '';
 
-    $Str .= '<table border="0"><tbody><tr>'."\n";
-    $Str .= '<td></td><td></td>'."\n";
-    $Str .= '<td align="center"><b>Analysis Reports:</b></td>'."\n";
-    $Str .= '<td align="center"><b>Student Status:</b></td></tr>'."\n";
-    $Str .= '<tr>'."\n";
-    $Str .= '<td align="center"><input type="submit" name="Refresh" ';
-    $Str .= 'value="Refresh" /></td>'."\n";
-    $Str .= '<td align="center"><input type="submit" name="DownloadAll" ';
-    $Str .= 'value="Update All Student Data" /></td>'."\n";
-    $Str .= '<td align="center">';
-    $Str .= '<select name="reportSelected" onchange="document.';
-    $Str .= 'Statistics.submit()">'."\n";
-
-    foreach (sort(keys(%$reports))) {
-        next if($_ eq 'reportSelected');
-        $Str .= '<option name="'.$_.'"';
-        if($reports->{'reportSelected'} eq $reports->{$_}) {
-            $Str .= ' selected=""';
-        }
-        $Str .= '>'.$reports->{$_}.'</option>'."\n";
-    }
-    $Str .= '</select></td>'."\n";
-
-    $Str .= '<td align="center">';
-    $Str .= &StatusOptions($status, 'Statistics');
-    $Str .= '</td>'."\n";
-
-    $Str .= '</tr></tbody></table>'."\n";
-    $Str .= '<hr>'."\n";
+    $Str .= '<html><head><title>'.$pageName.'</title></head>'."\n";
+    $Str .= &Apache::loncommon::bodytag($pageName)."\n";
+    $Str .= '<script>window.focus(); window.width=500;window.height=500;';
+    $Str .= '</script>'."\n";
 
     return $Str;
 }
@@ -284,5 +358,37 @@ sub FormatStudentInformation {
     return $Str;
 }
 
+# Create progress
+sub Create_PrgWin {
+    my ($r, $title, $heading)=@_;
+    $r->print('<script>'.
+    "popwin=open(\'\',\'popwin\',\'width=400,height=100\');".
+    "popwin.document.writeln(\'<html><body bgcolor=\"#88DDFF\">".
+              "<title>$title</title>".
+              "<h4>$heading</h4>".
+              "<form name=popremain>".
+              "<input type=text size=35 name=remaining value=Starting></form>".
+              "</body></html>\');".
+    "popwin.document.close();".
+    "</script>");
+
+    $r->rflush();
+}
+
+# update progress
+sub Update_PrgWin {
+    my ($displayString,$r)=@_;
+    $r->print('<script>popwin.document.popremain.remaining.value="'.
+              $displayString.'";</script>');
+    $r->rflush();
+}
+
+# close Progress Line
+sub Close_PrgWin {
+    my ($r)=@_;
+    $r->print('<script>popwin.close()</script>'."\n");
+    $r->rflush(); 
+}
+
 1;
 __END__