Diff for /loncom/interface/Attic/lonspreadsheet.pm between versions 1.20 and 1.22

version 1.20, 2000/12/30 17:13:54 version 1.22, 2000/12/30 21:33:11
Line 328  sub calc { Line 328  sub calc {
     return '';      return '';
 }  }
   
   sub templaterow {
       my @cols=();
       $cols[0]='<b><font size=+1>Template</font></b>';
       map {
           my $fm=$f{'template_'.$_};
           $fm=~s/[\'\"]/\&\#34;/g;
           $cols[$#cols+1]="'template_$_','$fm'".'___eq___'.$fm;
       } ('A','B','C','D','E','F','G','H','I','J','K','L','M',
          'N','O','P','Q','R','S','T','U','V','W','X','Y','Z',
          'a','b','c','d','e','f','g','h','i','j','k','l','m',
          'n','o','p','q','r','s','t','u','v','w','x','y','z');
       return @cols;
   }
   
 sub outrowassess {  sub outrowassess {
     my $n=shift;      my $n=shift;
     my @cols=();      my @cols=();
Line 351  sub outrow { Line 365  sub outrow {
     my $n=shift;      my $n=shift;
     my @cols=();      my @cols=();
     if ($n) {      if ($n) {
        $cols[0]=$rl{$f{'A'.$n}}.' stuff';         $cols[0]=$rl{$f{'A'.$n}};
     } else {      } else {
        $cols[0]='<b><font size=+1>Export</font></b>';         $cols[0]='<b><font size=+1>Export</font></b>';
     }      }
Line 480  sub exportrow { Line 494  sub exportrow {
   
 sub rown {  sub rown {
     my ($safeeval,$n)=@_;      my ($safeeval,$n)=@_;
     my $defaultbg=((($n-1)/5)==int(($n-1)/5))?'#E0E0':'#FFFF';      my $defaultbg;
       unless ($n eq '-') {
          $defaultbg=((($n-1)/5)==int(($n-1)/5))?'#E0E0':'#FFFF';
       } else {
          $defaultbg='#E0FF';
       }
     my $rowdata="\n<tr><td><b><font size=+1>$n</font></b></td>";      my $rowdata="\n<tr><td><b><font size=+1>$n</font></b></td>";
     my $showf=0;      my $showf=0;
     my $proc;      my $proc;
Line 492  sub rown { Line 511  sub rown {
         $proc='&outrow';          $proc='&outrow';
         $maxred=26;          $maxred=26;
     }      }
       if ($n eq '-') { $proc='&templaterow'; $n=-1; }
     map {      map {
        my $bgcolor=$defaultbg.((($showf-1)/5==int(($showf-1)/5))?'99':'DD');         my $bgcolor=$defaultbg.((($showf-1)/5==int(($showf-1)/5))?'99':'DD');
        my ($fm,$vl)=split(/\_\_\_eq\_\_\_/,$_);         my ($fm,$vl)=split(/\_\_\_eq\_\_\_/,$_);
Line 552  sub outsheet { Line 572  sub outsheet {
     $tabledata.='</tr>';      $tabledata.='</tr>';
     my $row;      my $row;
     my $maxrow=&getmaxrow($safeeval);      my $maxrow=&getmaxrow($safeeval);
       $tabledata.=&rown($safeeval,'-');
     for ($row=0;$row<=$maxrow;$row++) {      for ($row=0;$row<=$maxrow;$row++) {
         $tabledata.=&rown($safeeval,$row);          $tabledata.=&rown($safeeval,$row);
     }      }
Line 565  sub outsheet { Line 586  sub outsheet {
 sub readsheet {  sub readsheet {
     my ($safeeval,$fn,$r)=@_;      my ($safeeval,$fn,$r)=@_;
     my %f=();      my %f=();
     unless ($fn) {      if (($fn eq '') || ($fn=~/^default\_/)) {
  my $sheetxml='';   my $sheetxml='';
        {         {
          my $fh;           my $fh;
Line 629  sub writesheet { Line 650  sub writesheet {
               &getfilename($safeeval).':'.                &getfilename($safeeval).':'.
               $sheetdata,                $sheetdata,
               $ENV{'course.'.$ENV{'request.course.id'}.'.home'});                $ENV{'course.'.$ENV{'request.course.id'}.'.home'});
   }         if ($reply eq 'ok') {
             return &Apache::lonnet::reply('put:'.
                 $ENV{'course.'.$ENV{'request.course.id'}.'.domain'}.':'.
                 $ENV{'course.'.$ENV{'request.course.id'}.'.num'}.':'.
                 &gettype($safeeval).'_spreadsheets:'.
                 &Apache::lonnet::escape(&getfilename($safeeval)).'='.
                 $ENV{'user.name'},
                 $ENV{'course.'.$ENV{'request.course.id'}.'.home'});    
         } else {
     return $reply;
         }
     }
     return 'unauthorized';
 }  }
   
 # ----------------------------------------------- Make a temp copy of the sheet  # ----------------------------------------------- Make a temp copy of the sheet
   
 sub tmpwrite {  sub tmpwrite {
     my ($safeeval,$tmpdir,$symb)=@_;      my ($safeeval,$tmpdir,$symb)=@_;
     my $fn=$uname.'_'.$udom.'_spreadsheet_'.&getfilename($safeeval);      my $fn=$uname.'_'.$udom.'_spreadsheet_'.$symb.'_'.&getfilename($safeeval);
     $fn=~s/\W/\_/g;      $fn=~s/\W/\_/g;
     $fn=$tmpdir.$fn.'.tmp';      $fn=$tmpdir.$fn.'.tmp';
     my $fh;      my $fh;
Line 649  sub tmpwrite { Line 682  sub tmpwrite {
   
 sub tmpread {  sub tmpread {
     my ($safeeval,$tmpdir,$symb,$nfield,$nform)=@_;      my ($safeeval,$tmpdir,$symb,$nfield,$nform)=@_;
     my $fn=$uname.'_'.$udom.'_spreadsheet_'.&getfilename($safeeval);      my $fn=$uname.'_'.$udom.'_spreadsheet_'.$symb.'_'.&getfilename($safeeval);
     $fn=~s/\W/\_/g;      $fn=~s/\W/\_/g;
     $fn=$tmpdir.$fn.'.tmp';      $fn=$tmpdir.$fn.'.tmp';
     my $fh;      my $fh;
Line 663  sub tmpread { Line 696  sub tmpread {
             $fo{$name}=$value;              $fo{$name}=$value;
         }          }
     }      }
     $fo{$nfield}=$nform;      if ($nfield) { $fo{$nfield}=$nform; }
     &setformulas($safeeval,%fo);      &setformulas($safeeval,%fo);
 }  }
   
Line 1086  sub handler { Line 1119  sub handler {
 </script>  </script>
 ENDSCRIPT  ENDSCRIPT
     $r->print('</head><body bgcolor="#FFFFFF">'.      $r->print('</head><body bgcolor="#FFFFFF">'.
          '<img align=right src=/adm/lonIcons/lonlogos.gif>'.
          '<h1>LON-CAPA Spreadsheet</h1>'.
        '<form action="'.$r->uri.'" name=sheet method=post>'.         '<form action="'.$r->uri.'" name=sheet method=post>'.
        &hiddenfield('uname',$ENV{'form.uname'}).         &hiddenfield('uname',$ENV{'form.uname'}).
        &hiddenfield('udom',$ENV{'form.udom'}).         &hiddenfield('udom',$ENV{'form.udom'}).
        &hiddenfield('usymb',$ENV{'form.usymb'}).         &hiddenfield('usymb',$ENV{'form.usymb'}).
        &hiddenfield('ufn',$ENV{'form.ufn'}).  
        &hiddenfield('unewfield','').         &hiddenfield('unewfield','').
        &hiddenfield('unewformula',''));         &hiddenfield('unewformula',''));
   }    }
Line 1103  ENDSCRIPT Line 1137  ENDSCRIPT
     if ($ENV{'form.unewfield'}) {      if ($ENV{'form.unewfield'}) {
         $r->print('<h2>Modified Workcopy</h2>');          $r->print('<h2>Modified Workcopy</h2>');
         $ENV{'form.unewformula'}=~s/\'/\"/g;          $ENV{'form.unewformula'}=~s/\'/\"/g;
         $r->print('New formula: '.$ENV{'form.unewfield'}.'='.          $r->print('<p>New formula: '.$ENV{'form.unewfield'}.'='.
                   $ENV{'form.unewformula'}.'<br>');                    $ENV{'form.unewformula'}.'<p>');
         &setfilename($sheetone,$ENV{'form.ufn'});          &setfilename($sheetone,$ENV{'form.ufn'});
  &tmpread($sheetone,$r->dir_config('lonDaemons').'/tmp/',   &tmpread($sheetone,$r->dir_config('lonDaemons').'/tmp/',
                  $ENV{'form.usymb'},                   $ENV{'form.usymb'},
                  $ENV{'form.unewfield'},$ENV{'form.unewformula'});                   $ENV{'form.unewfield'},$ENV{'form.unewformula'});
       } elsif ($ENV{'form.saveas'}) {
           &setfilename($sheetone,$ENV{'form.ufn'});
    &tmpread($sheetone,$r->dir_config('lonDaemons').'/tmp/',
                    $ENV{'form.usymb'});
     } else {      } else {
         &readsheet($sheetone,$ENV{'form.ufn'},$r);          &readsheet($sheetone,$ENV{'form.ufn'},$r);
           $ENV{'form.ufn'}=&getfilename($sheetone);
     }      }
   
 # --------------------------------------------- See if all import rows uptodate  # --------------------------------------------- See if all import rows uptodate
Line 1128  ENDSCRIPT Line 1167  ENDSCRIPT
        $r->print('<h3><font color=red>'.         $r->print('<h3><font color=red>'.
    'Could not initialize import fields (not in a course)</font></h3>');     'Could not initialize import fields (not in a course)</font></h3>');
    }     }
   # ---------------------------------------------------- See if something to save
       if (&Apache::lonnet::allowed('opa',$ENV{'request.course.id'})) {
           my $fname='';
    if ($ENV{'form.saveas'} && ($fname=$ENV{'form.newfn'})) {
               $fname=~s/\W/\_/g;
               if ($fname eq 'default') { $fname='course_default'; }
               $fname.='_'.&gettype($sheetone);
               &setfilename($sheetone,$fname);
               $ENV{'form.ufn'}=$fname;
               my $reply=&writesheet($sheetone);
               unless ($reroute) {
    $r->print('<p>Saving spreadsheet: '.$reply.'<p>');
               }
           }
       }
 # ------------------------------------------------ Write the modified worksheet  # ------------------------------------------------ Write the modified worksheet
   
    &tmpwrite($sheetone,$r->dir_config('lonDaemons').'/tmp/',     &tmpwrite($sheetone,$r->dir_config('lonDaemons').'/tmp/',
Line 1136  ENDSCRIPT Line 1189  ENDSCRIPT
   
 # ----------------------------------------------------- Print user, course, etc  # ----------------------------------------------------- Print user, course, etc
    unless ($reroute) {     unless ($reroute) {
     $r->print("<b>User '$uname' at domain '$udom' for '".      if (&Apache::lonnet::allowed('opa',$ENV{'request.course.id'})) {
           my $fname=$ENV{'form.ufn'};
           $fname=~s/\_[^\_]+$//;
           if ($fname eq 'default') { $fname='course_default'; }
           $r->print('<input type=submit name=saveas value="Save as ...">'.
                 '<input type=text size=20 name=newfn value="'.$fname.'"><p>');
       }
       $r->print(&hiddenfield('ufn',$ENV{'form.ufn'}).
                 "<b>User '$uname' at domain '$udom' for '".
               $ENV{'course.'.$ENV{'request.course.id'}.'.description'}."'");                $ENV{'course.'.$ENV{'request.course.id'}.'.description'}."'");
     if ($csec) {      if ($csec) {
        $r->print(", group/section '$csec'");         $r->print(", group/section '$csec'");

Removed from v.1.20  
changed lines
  Added in v.1.22


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>