Diff for /loncom/interface/lonpopulate.pm between versions 1.42 and 1.48

version 1.42, 2006/05/16 21:56:14 version 1.48, 2006/08/10 22:05:18
Line 32  use Apache::loncommon; Line 32  use Apache::loncommon;
 use Apache::lonhtmlcommon;  use Apache::lonhtmlcommon;
 use Apache::lonlocal;  use Apache::lonlocal;
 use Apache::loncoursedata;  use Apache::loncoursedata;
   use Apache::longroup;
 use Apache::Constants qw(:common :http REDIRECT);  use Apache::Constants qw(:common :http REDIRECT);
 use Time::Local;  use Time::Local;
 use LONCAPA::Enrollment;  use LONCAPA::Enrollment;
Line 45  sub header { Line 46  sub header {
   
 sub choose_header {  sub choose_header {
     my ($action) = @_;      my ($action) = @_;
       my $notify_check = '/^note_[0-9]+$/';
     my $scripttag = qq|      my $scripttag = qq|
 <script language='javascript' type='text/javascript'>  <script language='javascript' type='text/javascript'>
 <!--  <!--
Line 110  function process(calling,numauto,nummanu Line 111  function process(calling,numauto,nummanu
          checker = 0           checker = 0
      }       }
  }   }
    if (calling == "notify") {
        var totalnote = 0;
        for (var i=0; i<formName.elements.length; i++) {
    var elementname = formName.elements[i].name;
    var check_name = elementname.match($notify_check);
    if (check_name != null) {
        if (formName.elements[i].checked) {
    totalnote ++;
        }
    } 
        }
        if (totalnote > 0) {
    if (formName.notify[1].checked == true) {
        if (confirm("You have indicated that you do not want notification of roster changes messages to be sent, but "+totalnote+" have been checked as recipients.\\nClick 'OK' to erase all recipients, or 'Cancel'.")) {
    checker  = 1;
        } else {
    checker = 0;
        }
    }
        } else {
    if (formName.notify[0].checked == true) {
        alert("You have indicated that you want notification of roster changes messages to be sent, but you have not selected any recipients.");
        checker = 0;
    }
        }
    }
  if (calling == "viewclass") {   if (calling == "viewclass") {
      var totcheck = 0       var totcheck = 0
      var numchk = 0       var numchk = 0
Line 478  ENDTWO Line 505  ENDTWO
   } elsif ($action eq "notify") {    } elsif ($action eq "notify") {
       my $notifycount = 0;        my $notifycount = 0;
       my @notified = split(/,/,$enrollvar{notifylist});        my @notified = split(/,/,$enrollvar{notifylist});
         my @domcoord;
         my @showdom;
       for (my $i=0; $i<@notified; $i++) {        for (my $i=0; $i<@notified; $i++) {
           if ($notified[$i] !~ /:/) {            if ($notified[$i] !~ /:/) {
               $notified[$i] =~ s/\@/:/;                $notified[$i] =~ s/\@/:/;
Line 490  ENDTWO Line 519  ENDTWO
       } else {        } else {
           $noteset = "OFF";            $noteset = "OFF";
       }        }
             my %dompersonnel = &Apache::lonnet::get_domain_roles($dom,['dc']);
         foreach my $server (keys(%dompersonnel)) {
             foreach my $user (sort(keys(%{$dompersonnel{$server}}))) {
                 my ($trole,$uname,$udom,$runame,$rudom,$rsec) = split(/:/,$user);
                 if (!grep(/^$uname:$udom$/,@domcoord)) {
                     push(@domcoord,$uname.':'.$udom);
                 }
             }
         }
       $r->print("        $r->print("
                   <form name=\"enter\" method=\"post\"><br/>                    <form name=\"enter\" method=\"post\"><br/>
                    <table width=\"100%\" border=\"0\" cellpadding=\"6\" cellspacing=\"0\">                     <table width=\"100%\" border=\"0\" cellpadding=\"6\" cellspacing=\"0\">
Line 520  ENDTWO Line 557  ENDTWO
               </td>                </td>
              </tr>               </tr>
       ");        ");
       my @coursepersonnel = &Apache::lonnet::getkeys('nohist_userroles',$dom,$crs);        my %coursepersonnel = &Apache::lonnet::dump('nohist_userroles',$dom,$crs);
       my @ccs = ();        my @ccs;
       my @oldccs = ();        my %pname;
       my %pname = ();        my %notifystate;
       my %notifystate = ();        my %status;
       foreach (@coursepersonnel) {        my $now = time;
           my @roleinfo = split/:/,$_;        foreach my $person (sort(keys(%coursepersonnel))) {
           if ($roleinfo[0] eq 'cc')  {            my $match = 0;
               unless (grep/^$roleinfo[1]\:$roleinfo[2]/,@ccs) {            my ($role,$user,$usec) = ($person =~ /^([^:]+):([^:]+:[^:]+):([^:]*)/);
                   my $active_cc = &Apache::loncommon::check_user_status($roleinfo[2],$roleinfo[1],$dom,$crs,'cc');            $user =~ s/:$//;
                   if ($active_cc eq 'active') {            my ($end,$start) = split(/:/,$coursepersonnel{$person});
                       push @ccs, $roleinfo[1].':'.$roleinfo[2];            if ($end == -1 || $start == -1) {
                       $pname{$roleinfo[1].':'.$roleinfo[2]} = &Apache::loncommon::plainname($roleinfo[1],$roleinfo[2]);                next;
                       if (grep/^$roleinfo[1]\:$roleinfo[2]$/,@notified) {            }
                           $notifystate{$roleinfo[1].':'.$roleinfo[2]} = 1;            if ($role eq 'cc')  {
                       } else {                unless (grep(/^$user$/,@ccs)) {
                           $notifystate{$roleinfo[1].':'.$roleinfo[2]} = 0;                    if ($end && $end < $now) {
                       }                        $status{$user} = 'previous';
                     } elsif ($start > $now) {
                         $status{$user} = 'future';
                   } else {                    } else {
                       push @oldccs, $roleinfo[1].':'.$roleinfo[2];                        $status{$user} = 'active';
                     }
                     push(@ccs,$user);
                     my ($uname,$udom) = split(/:/,$user);
                     $pname{$user} = 
                              &Apache::loncommon::plainname($uname,$udom);
                     if (grep(/^$user$/,@notified)) {
                         $notifystate{$user} = 1;
                     } else {
                         $notifystate{$user} = 0;
                   }                    }
               }                }
           }            }
       }        }
       if ($notifycount > 0) {        my $notifyshow = 0; 
           foreach my $person (@notified) {        my %lt = &Apache::lonlocal::texthash(
               unless ( (grep/^$person$/,@ccs) || ($person eq '') || (grep/^$person$/,@oldccs) ) {                                    name => 'Name',
                   push @ccs, $person;                                    usnm => 'username:domain',
                   my ($puname,$pdom) = split/:/,$person;                                    coac => 'Course Access',
                   $pname{$person} =  &Apache::loncommon::plainname($puname,$pdom);                                    curn => 'Current notification status',
                   $notifystate{$person} = 1;                                    notf => 'Notification?',
               }                                    ntac => 'Notification active',
           }                                    ntin => 'Notification inactive',
       }        );
       my $viewer = $env{'user.name'}.':'.$env{'user.domain'};  
       unless ( (grep/^$viewer$/,@ccs) || ($viewer eq '') )  {  
           push @ccs,$viewer;  
           $pname{$viewer} =  &Apache::loncommon::plainname($env{'user.name'},$env{'user.domain'});  
           $notifystate{$viewer} = 0;  
       }  
   
       my $notifyshow = @ccs;  
   
       if (@ccs > 0) {        if (@ccs > 0) {
           @ccs = sort @ccs;            @ccs = sort @ccs;
           $r->print("            $r->print("
              <tr>               <tr>
                <td>The table below contains a list of course coordinators in this course. Uncheck the 'Notification?' checkbox for each person who is to be removed from the list of recipients who are currently informed of roster changes whenever any adds or drops occur during the nightly enrollment check. To include individuals who are not currently recipients, simply check the 'Notification?' checkbox. Click 'Go' to store your changes.                 <td>".&mt('The table below contains a list of [_1]s in this course.',&Apache::lonnet::plaintext('cc'))."
               </td>                </td>
              </tr>               </tr>
              <tr>               <tr>
               <td>");                <td>");
           $r->print(&Apache::loncommon::start_data_table());            $r->print(&notifier_tables('cc',\%lt,\@ccs,\%status,\%notifystate,
           $r->print(&Apache::loncommon::start_data_table_row());                                       \%pname,\$notifyshow));
             $r->print("</td></tr>");
         } else {
           $r->print("            $r->print("
                  <th>Name</th>               <tr>
                  <th>username:domain</th>                <td>".
                  <th>Current status</th>               &mt('No [_1]s found.',&Apache::lonnet::plaintext('cc'))."
                  <th>Notification?</th>              </td>
           ");             </tr>");
           $r->print(&Apache::loncommon::end_data_table_row());        }
           for (my $i=0; $i<@ccs; $i++) {        my $viewer = $env{'user.name'}.':'.$env{'user.domain'};
               $r->print(&Apache::loncommon::start_data_table_row());        my $showalldc = 0;
               $r->print("        if (grep(/^$viewer$/,@domcoord)) {
                  <td>$pname{$ccs[$i]}</td>            $showalldc = 1;
                  <td><input type=\"hidden\" name=\"notifyname_$i\" value=\"$ccs[$i]\" />$ccs[$i]</td>        }
                  <td>        foreach my $dc (@domcoord) {
               ");            if (!grep(/^$dc$/,@ccs)) {
               if ($notifystate{$ccs[$i]} == 1) {                if (grep(/^$dc$/,@notified)) {
                   $r->print("Notification active");                    $notifystate{$dc} = 1;
               } else {  
                   $r->print("Notification inactive");  
               }  
               if ($notifystate{$ccs[$i]} == 1) {  
                   $r->print("</td><td><input type=\"checkbox\" name=\"note_$i\" checked=\"true\" /></td>");  
               } else {                } else {
                   $r->print("</td><td><input type=\"checkbox\" name=\"note_$i\" /></td>");                    $notifystate{$dc} = 0;
                     if (!$showalldc) {
                         next;
                     }
               }                }
               $r->print(&Apache::loncommon::end_data_table_row());                my ($dcuname,$dcdom) = split(/:/,$dc);
                 $pname{$dc} =  &Apache::loncommon::plainname($dcuname,$dcdom);
                 push(@showdom,$dc);
           }            }
           $r->print(&Apache::loncommon::end_data_table());        }
         my $showdomnum = scalar(@showdom);
         if ($showdomnum) {
           $r->print("            $r->print("
                <br/>               <tr>
                <table width=\"100%\" border=\"0\" cellspadding=\"2\" cellspacing=\"2\">                <td>&nbsp;</td>
                 <tr>               </tr><tr>
                  <td align=\"right\">                <td>");
                   <input type=\"button\" name=\"notifyset\" value=\"Go\" onclick=\"process('notify')\" />            if ($showalldc) {
                  </td>                $r->print(&mt("The table below contains a list of [_1]s from this course's domain who are not also [_2]s.",&Apache::lonnet::plaintext('dc'),&Apache::lonnet::plaintext('cc')));
                 </tr>            } else {
                </table>                $r->print(&mt("The table below contains a list of [_1] from this course's domain who currently receive notification, and are not also [_2]s.",&Apache::lonnet::plaintext('dc'),&Apache::lonnet::plaintext('cc')));
             }
             $r->print(" 
               </td>                </td>
              </tr>               </tr>
           ");  
       } else {  
           $r->print("  
              <tr>               <tr>
               <td>                <td>");
              No course coordinators found.            $r->print(&notifier_tables('dc',\%lt,\@showdom,\%status,\%notifystate,
             </td>                                       \%pname,\$notifyshow));
            </tr>");            $r->print("
                </td>
             </tr>");
         }
         if (@ccs > 0 || @showdom > 0) {
             $r->print("<tr><td>&nbsp;</td></tr><tr><td>");
             if ($notifycount) {
                 $r->print(&mt("Uncheck the checkbox(es) to terminate notification for people currently informed of roster changes from the nightly enrollment update.<br />"));
            }
            if ((@ccs + @showdom) > $notifycount) {
                $r->print(&mt("Check the checkbox(es) to initiate notification for people not currently informed of roster changes from the nightly enrollment update.<br />"));
            }
            $r->print(&mt("Click 'Go' to store your changes.")."
              <br/>
              <table width=\"100%\" border=\"0\" cellspadding=\"2\" cellspacing=\"2\">
               <tr>
                <td align=\"right\">
                 <input type=\"button\" name=\"notifyset\" value=\"Go\" onclick=\"process('notify')\" />
                </td>
               </tr>
              </table>
             </td>
            </tr>
         ");
       }        }
       $r->print("        $r->print("
           </table>        </table>
           <input type=\"hidden\" name=\"notifyshow\" value=\"$notifyshow\" />        <input type=\"hidden\" name=\"notifyshow\" value=\"$notifyshow\" />
           <input type=\"hidden\" name=\"action\" value=\"$action\" />        <input type=\"hidden\" name=\"action\" value=\"$action\" />
           <input type=\"hidden\" name=\"state\" value=\"process\" />        <input type=\"hidden\" name=\"state\" value=\"process\" />
           </form>        </form>
       ");        ");
   } elsif ($action eq "crosslist") {    } elsif ($action eq "crosslist") {
       my @xlists;        my @xlists;
Line 885  your changes.</td> Line 950  your changes.</td>
               if (!($enrollvar{'photopermission'} eq 'yes')) {                if (!($enrollvar{'photopermission'} eq 'yes')) {
                   $can_enable = 0;                    $can_enable = 0;
               } else {                } else {
                   if ($env{'user.name'} eq $enrollvar{'courseowner'}) {                    if (&user_is_courseowner($enrollvar{'courseowner'})) {
                       $r->print('                        $r->print('
                     <tr>                      <tr>
                      <td>'.                       <td>'.
 &mt('Previously the owner of this course agreed to the conditions of use of digital student photos required by [_1].', $institution).'<br />'.&mt('As a result Course Coordinators can choose to automatically import student photos into this course.').'<br /><nobr><label>'.&mt('[_1] owner acceptance of these conditions of use?','<b>Cancel</b>').'&nbsp;<input type="checkbox" name="cancel_agreement" value="1" /></label></nobr>  &mt('Previously the owner of this course agreed to the conditions of use of digital student photos required by [_1].', $institution).'<br />'.&mt('As a result [_1]s can choose to automatically import student photos into this course.',&Apache::lonnet::plaintext('cc')).'<br /><nobr><label>'.&mt('[_1] owner acceptance of these conditions of use?','<b>Cancel</b>').'&nbsp;<input type="checkbox" name="cancel_agreement" value="1" /></label></nobr>
                      </td>                       </td>
                     </tr>                      </tr>
                       ');                        ');
Line 918  your changes.</td> Line 983  your changes.</td>
                     </tr>                      </tr>
 ');  ');
       } else {        } else {
           if ($env{'user.name'} eq $enrollvar{'courseowner'}) {            if (&user_is_courseowner($enrollvar{'courseowner'})) {
               $r->print('                $r->print('
                     <tr>                      <tr>
                      <td>'.                       <td>'.
Line 936  your changes.</td> Line 1001  your changes.</td>
               $r->print('                $r->print('
                     <tr>                      <tr>
                      <td>'.                       <td>'.
 &mt('The policies of your institution [_1] require that the course owner [_2] must indicate acceptance of the conditions of use of digital photos of registered students, before they may be made available for use in a course.',$institution,$ownername).'<br /><br />'.&mt('Please direct the course owner [_1] to visit the "Student photos" page in the Automated Enrollment Manager to indicate acceptance of these conditions of use.',$emailstr).'<br /><br /><input type="button" name="mainmenu" value="Go back" onclick="javascript:history.go(-1);" />  &mt('The policies of your institution ([_1]) require that the course owner ([_2]) must indicate acceptance of the conditions of use of digital photos of registered students, before they may be made available for use in a course.',$institution,$ownername).'<br /><br />'.&mt('Please direct the course owner [_1] to visit the "Student photos" page in the Automated Enrollment Manager to indicate acceptance of these conditions of use.',$emailstr).'<br /><br /><input type="button" name="mainmenu" value="Go back" onclick="javascript:history.go(-1);" />
                     </td>                      </td>
                    </tr>                     </tr>
                   </form>                    </form>
Line 1052  onclick="javascript:document.photoupdate Line 1117  onclick="javascript:document.photoupdate
       if (! exists($env{'form.sortby'})) {        if (! exists($env{'form.sortby'})) {
           $env{'form.sortby'} = 'username';            $env{'form.sortby'} = 'username';
       }        }
       if ($env{'form.Status'} !~ /^(Any|Expired|Active)$/) {        if ($env{'form.Status'} !~ /^(Any|Expired|Active|Future)$/) {
           $env{'form.Status'} = 'Active';            $env{'form.Status'} = 'Active';
       }        }
       my $status_select = &Apache::lonhtmlcommon::StatusOptions($env{'form.Status'});        my $status_select = &Apache::lonhtmlcommon::StatusOptions($env{'form.Status'});
Line 1132  END Line 1197  END
   }    }
 }  }
   
   sub notifier_tables {
       my ($role,$lt,$users,$status,$notifystate,$pname,$notifyshow) = @_;
       my $output = &Apache::loncommon::start_data_table();
       $output .= &Apache::loncommon::start_data_table_header_row();
       $output .= "<th>$$lt{name}</th>
                   <th>$$lt{usnm}</th>";
       if ($role eq 'cc') {
           $output .= "<th>$$lt{coac}</th>";
       } 
       $output .=  "<th>$$lt{curn}</th>
                    <th>$$lt{notf}</th>";
       $output .= &Apache::loncommon::end_data_table_header_row();
       for (my $i=0; $i<@{$users}; $i++) {
           $output .= &Apache::loncommon::start_data_table_row();
           $output .= '<td>'.$$pname{$$users[$i]}.'</td>'.
                      '<td><input type="hidden" name="notifyname_'.$$notifyshow.
                      '" value="'.$$users[$i].'" />'.$$users[$i].'</td>';
           if ($role eq 'cc') {
               $output .= '<td>'.$$status{$$users[$i]}.'</td>';
           }
           $output .= '<td>';
           if ($$notifystate{$$users[$i]} == 1) {
               $output .= $$lt{ntac};
           } else {
               $output .= $$lt{ntin};
           }
           $output .= '</td><td><input type="checkbox" name="note_'.$$notifyshow.'"'; 
           if ($$notifystate{$$users[$i]} == 1) {
               $output .= ' checked="checked"';
           }
           $output .= ' /></td>';
           $output .= &Apache::loncommon::end_data_table_row();
           $$notifyshow ++;
       }
       $output .= &Apache::loncommon::end_data_table();
       return $output;
   }
   
 sub print_accessdate_table {  sub print_accessdate_table {
     my ($r,$enrollvar,$tasktitleref,$action) = @_;      my ($r,$enrollvar,$tasktitleref,$action) = @_;
     my ($start_table,$end_table) = &date_setting_table($$enrollvar{'default_enrollment_start_date'},$$enrollvar{'default_enrollment_end_date'},$action);      my ($start_table,$end_table) = &date_setting_table($$enrollvar{'default_enrollment_start_date'},$$enrollvar{'default_enrollment_end_date'},$action);
Line 1611  sub print_notify_response { Line 1714  sub print_notify_response {
     }      }
     $response .= "</ul>\n";      $response .= "</ul>\n";
  } else {   } else {
     $response = "Notification of enrollment changes was <b> not enabled</b> as no course coordinators were selected as recipients.<br/>";      $response = &mt('Notification of enrollment changes was <b> not enabled</b> as no [_1]s were selected as recipients.<br/>',&Apache::lonnet::plaintext('cc'));
  }   }
     } else {      } else {
  if ($currcount) {   if ($currcount) {
Line 1684  sub print_crosslistings_menu () { Line 1787  sub print_crosslistings_menu () {
  if ($numcross > 0) {   if ($numcross > 0) {
     my @bgcolors=("#eeeeee","#cccccc");      my @bgcolors=("#eeeeee","#cccccc");
     $response .= qq(You indicated that you wish to add an additional $numcross crosslisting(s).  For each new crosslisting enter the insititutional course section code (e.g., fs03zol101001, for section 001 of zol101 for fs03 semester), and the LON-CAPA section ID you wish to assign to students who will be enrolled in your LON-CAPA class as a result of their registration in the crosslisted course section. The LON-CAPA section ID can be left blank, if you do not wish to tie a section ID to this crosslisting.  The institutional course section code should only contain letters and/or numbers, and must be consistent with the scheme adopted by your Domain Coordinator to map course codes (and section numbers) to your institution's student information system.<br/><br/>      $response .= qq(You indicated that you wish to add an additional $numcross crosslisting(s).  For each new crosslisting enter the insititutional course section code (e.g., fs03zol101001, for section 001 of zol101 for fs03 semester), and the LON-CAPA section ID you wish to assign to students who will be enrolled in your LON-CAPA class as a result of their registration in the crosslisted course section. The LON-CAPA section ID can be left blank, if you do not wish to tie a section ID to this crosslisting.  The institutional course section code should only contain letters and/or numbers, and must be consistent with the scheme adopted by your Domain Coordinator to map course codes (and section numbers) to your institution's student information system.<br/><br/>
            <form name="enter" method="post">);             <form name="enter" method="post">); #' stupid emacs
            $response .= &Apache::loncommon::start_data_table();             $response .= &Apache::loncommon::start_data_table();
            $response .= &Apache::loncommon::start_data_table_row();             $response .= &Apache::loncommon::start_data_table_row();
            $response .= qq(             $response .= qq(
Line 1748  sub print_crosslistings_response () { Line 1851  sub print_crosslistings_response () {
     }      }
   
     if ($numcross > 0) {      if ($numcross > 0) {
         my %curr_groups = &Apache::loncommon::coursegroups();          my %curr_groups = &Apache::longroup::coursegroups();
  for (my $i=0; $i<$numcross; $i++) {   for (my $i=0; $i<$numcross; $i++) {
     my $xl = "newcross_".$i;      my $xl = "newcross_".$i;
     my $lc_sec = "newlcsec_".$i;      my $lc_sec = "newlcsec_".$i;
Line 2065  sub print_sections_response () { Line 2168  sub print_sections_response () {
     }      }
           
     if ($numsec > 0) {      if ($numsec > 0) {
         my %curr_groups = &Apache::loncommon::coursegroups();          my %curr_groups = &Apache::longroup::coursegroups();
  for (my $i=0; $i<$numsec; $i++) {   for (my $i=0; $i<$numsec; $i++) {
     my $sec = "newsec_".$i;      my $sec = "newsec_".$i;
     my $lc_sec = "newlcsec_".$i;      my $lc_sec = "newlcsec_".$i;
Line 2174  sub photo_permission { Line 2277  sub photo_permission {
  $dom,$crs);   $dom,$crs);
     my ($showphotos,$response);      my ($showphotos,$response);
     if (exists($env{'form.cancel_agreement'})) {      if (exists($env{'form.cancel_agreement'})) {
         if ($env{'user.name'} eq $settings{'internal.courseowner'}) {          if (&user_is_courseowner($settings{'internal.courseowner'})) {
             my %cenv = (              my %cenv = (
                 'internal.photopermission' => 'no',                  'internal.photopermission' => 'no',
             );              );
Line 2244  sub print_photo_agreement { Line 2347  sub print_photo_agreement {
     my ($r,$realm,$dom,$crs,$action,$tasktitleref,$conditions,$courseowner)=@_;      my ($r,$realm,$dom,$crs,$action,$tasktitleref,$conditions,$courseowner)=@_;
     my $response;      my $response;
     my $institution = $Apache::lonnet::domaindescription{$dom};      my $institution = $Apache::lonnet::domaindescription{$dom};
     if ($env{'user.name'} eq $courseowner) {      if (&user_is_courseowner($courseowner)) {
         $response = '          $response = '
 <script type="text/javascript">  <script type="text/javascript">
 function agreement_result(caller) {  function agreement_result(caller) {
Line 2286  function agreement_result(caller) { Line 2389  function agreement_result(caller) {
   </form>    </form>
 ';  ';
     } else {      } else {
         my ($ownername,$owneremail) = &get_oenerinfo($dom,$courseowner);          my ($ownername,$owneremail) = &get_ownerinfo($dom,$courseowner);
         $response = &mt('The policies of your institution [_1] require that the course owner [_2] must indicate acceptance of the conditions of use of digital photos of registered students, before they may be made available for use in a course.',$institution,$ownername).'<br /><br />'.&mt('Please direct the course owner (e-mail: [_1]) to visit the "Student photos" page in the Automated Enrollment Manager to indicate acceptance of these conditions of use',$owneremail);          my $emailstr;
           if ($owneremail) {
               $emailstr = "(e-mail: $owneremail)";
           }
           $response = &mt('The policies of your institution [_1] require that the course owner [_2] must indicate acceptance of the conditions of use of digital photos of registered students, before they may be made available for use in a course.',$institution,$ownername).'<br /><br />'.&mt('Please direct the course owner [_1] to visit the "Student photos" page in the Automated Enrollment Manager to indicate acceptance of these conditions of use',$emailstr);
     }      }
     &print_reply($r,$response,$$tasktitleref{$action});      &print_reply($r,$response,$$tasktitleref{$action});
 }  }
Line 2425  function photowindow(photolink) { Line 2532  function photowindow(photolink) {
   
 sub get_ownerinfo {  sub get_ownerinfo {
     my ($dom,$owner) = @_;       my ($dom,$owner) = @_; 
     my ($ownername,$owneremail);      my ($ownername,$owneremail,$own_uname,$own_udom);
     if ($owner) {      if ($owner) {
         $ownername=&Apache::loncommon::plainname($owner,$dom,'firstname');          if ($owner =~ /^([^:]+):([^:]+)$/) {
               $own_uname = $1;
               $own_udom = $2; 
           } else {
               $own_uname = $owner;
               $own_udom = $dom; 
           }
           $ownername=&Apache::loncommon::plainname($own_uname,$own_udom,
                                                    'firstname');
         my %ownerinfo = &Apache::lonnet::get('environment',['permanentemail'],          my %ownerinfo = &Apache::lonnet::get('environment',['permanentemail'],
      $dom,$owner);       $own_udom,$own_uname);
         $owneremail = $ownerinfo{'permanentemail'};          $owneremail = $ownerinfo{'permanentemail'};
     }      }
     return ($ownername,$owneremail);      return ($ownername,$owneremail);
Line 2863  sub validate_lcsec { Line 2978  sub validate_lcsec {
     return 'ok';      return 'ok';
 }  }
   
   sub user_is_courseowner {
       my ($courseowner) = @_;
       my $user;
       if ($courseowner =~ /^[^:]+:[^:]+$/) {
    $user = $env{'user.name'}.':'.$env{'user.domain'};
       } else {
    $user = $env{'user.name'};
       }
       return ($user eq $courseowner);
   }
       
 ###################################################################  ###################################################################
 sub handler {  sub handler {
     my $r = shift;      my $r = shift;

Removed from v.1.42  
changed lines
  Added in v.1.48


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