Diff for /loncom/interface/lonnotify.pm between versions 1.7 and 1.8

version 1.7, 2005/10/28 19:24:25 version 1.8, 2005/11/15 21:08:47
Line 53  sub handler { Line 53  sub handler {
     &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},      &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
                                             ['command']);                                              ['command']);
     my $command = $env{'form.command'};      my $command = $env{'form.command'};
       my $origin = $env{'form.origin'};
   
     &Apache::lonhtmlcommon::clear_breadcrumbs();      &Apache::lonhtmlcommon::clear_breadcrumbs();
     my %ltext=&Apache::lonlocal::texthash(      my %ltext=&Apache::lonlocal::texthash(
                'note' => 'Notification E-mail',                 'note' => 'Notification E-mail',
     );      );
     my $function = &Apache::loncommon::get_users_function();      my $function = &Apache::loncommon::get_users_function();
       my $loadcode;
     my $tablecolor = &Apache::loncommon::designparm($function.'.tabbg');      my $tablecolor = &Apache::loncommon::designparm($function.'.tabbg');
     my $bodytag = &Apache::loncommon::bodytag('Broadcast e-mail to users');      if ((defined($env{'form.origin'})) && ($command eq 'compose' || $command eq 'pick_target' || $command eq 'pick_display')) {
           unless ($env{'form.origin'} eq '') {
               $loadcode = 'javascript:setFormElements(document.'.$env{'form.command'}.')';
               if (($command eq 'pick_target') && (
                        ($origin eq 'compose') || ($origin eq 'process'))) {
                   if ($env{'form.coursepick'} eq 'category') {
                       $loadcode .= ';javascript:setCourseCat(document.'.$env{'form.command'}.')';
                   }
               }
           }
       }
       my $loaditems = ' onLoad="'.$loadcode.'" '; 
       my $bodytag = &Apache::loncommon::bodytag('Broadcast e-mail to users',$function,$loaditems);
     my $html=&Apache::lonxml::xmlbegin();      my $html=&Apache::lonxml::xmlbegin();
     &Apache::lonhtmlcommon::add_breadcrumb      &Apache::lonhtmlcommon::add_breadcrumb
         ({href=>'/adm/notify',          ({href=>'/adm/notify',
           text=>"Broadcast E-mail"});            text=>"Broadcast E-mail"});
     if ($command eq 'process') {      if ($command eq 'process') {
         &print_request_receipt($r,$cdom,$tablecolor,$bodytag,$html,\%ltext);          &print_request_receipt($r,$command,$cdom,$tablecolor,$bodytag,$html,\%ltext);
     } elsif ($command eq 'compose') {      } elsif ($command eq 'compose') {
         &print_composition_form($r,$cdom,$tablecolor,$bodytag,$html,\%ltext);          &print_composition_form($r,$command,$cdom,$tablecolor,$bodytag,$html,\%ltext);
     } elsif ($command eq 'pick_target') {      } elsif ($command eq 'pick_target') {
         &print_selection_form($r,$cdom,$tablecolor,$bodytag,$html,\%ltext);          &print_selection_form($r,$command,$cdom,$tablecolor,$bodytag,$html,\%ltext);
     } elsif ($command eq 'pick_display') {      } elsif ($command eq 'pick_display') {
         &print_display_option_form($r,$cdom,$tablecolor,$bodytag,$html,\%ltext);          &print_display_option_form($r,$command,$cdom,$tablecolor,$bodytag,$html,\%ltext);
     } elsif ($command eq 'display') {      } elsif ($command eq 'display') {
         &print_display($r,$cdom,$tablecolor,$bodytag,$html,\%ltext);          &print_display($r,$command,$cdom,$tablecolor,$bodytag,$html,\%ltext);
     } else {      } else {
         &print_front_page($r,$cdom,$tablecolor,$bodytag,$html,\%ltext);          &print_front_page($r,'front',$cdom,$tablecolor,$bodytag,$html,\%ltext);
     }      }
     return OK;      return OK;
 }  }
   
 sub print_front_page {  sub print_front_page {
     my ($r,$cdom,$tablecolor,$bodytag,$html,$ltext) = @_;      my ($r,$formname,$cdom,$tablecolor,$bodytag,$html,$ltext) = @_;
     my $breadcrumbs = &Apache::lonhtmlcommon::breadcrumbs      my $breadcrumbs = &Apache::lonhtmlcommon::breadcrumbs
             (undef,'Broadcast e-mail to Domain','Broadcast_system_email');              (undef,'Broadcast e-mail to Domain','Broadcast_system_email');
     my $jscript = qq|      my $jscript = qq|
Line 110  $bodytag Line 125  $bodytag
 $breadcrumbs  $breadcrumbs
 <br />  <br />
 ENDONE  ENDONE
     $output .= '<form name="front" method="post">'.      $output .= '<form name="'.$formname.'" method="post">'.
               '<input type="hidden" name="command" />';                '<input type="hidden" name="command" />';
     $output .= &Apache::lonhtmlcommon::start_pick_box();      $output .= &Apache::lonhtmlcommon::start_pick_box();
     $output .= '<table cellspacing="8" cellpadding="8">'.      $output .= '<table cellspacing="8" cellpadding="8">'.
Line 129  ENDONE Line 144  ENDONE
 }  }
   
 sub print_display_option_form {  sub print_display_option_form {
     my ($r,$cdom,$tablecolor,$bodytag,$html,$ltext) = @_;      my ($r,$formname,$cdom,$tablecolor,$bodytag,$html,$ltext) = @_;
     &Apache::lonhtmlcommon::add_breadcrumb      &Apache::lonhtmlcommon::add_breadcrumb
          ({text=>"Display options"});           ({text=>"Display options"});
     my $breadcrumbs = &Apache::lonhtmlcommon::breadcrumbs      my $breadcrumbs = &Apache::lonhtmlcommon::breadcrumbs
             (undef,'Broadcast e-mail display options','Broadcast_system_email');              (undef,'Broadcast e-mail display options','Broadcast_system_email');
     my $table_width = '';      my $table_width = '';
     my $col_width = '200';      my $col_width = '200';
     my $formname = 'display_options';  
     my $cmd = 'display';      my $cmd = 'display';
     my $submit_text = 'Display e-mail';      my $submit_text = 'Display e-mail';
     my @roles = ('dc');      my @roles = ('dc');
Line 150  sub print_display_option_form { Line 164  sub print_display_option_form {
     my $enddateform = &Apache::lonhtmlcommon::date_setter($formname,      my $enddateform = &Apache::lonhtmlcommon::date_setter($formname,
                                                           'enddate',                                                            'enddate',
                                                           $now);                                                            $now);
     my $jscript;      my %elements = (
           startdate_month => 'selectbox',
           startdate_hour => 'selectbox',
           enddate_month => 'selectbox',
           enddate_hour => 'selectbox',
           startdate_day => 'text',
           startdate_year => 'text',
           startdate_minute => 'text',
           startdate_second => 'text',
           enddate_day => 'text',
           enddate_year => 'text',
           enddate_minute => 'text',
           enddate_second => 'text',
           sender => 'checkbox',
       );
       my $jscript = &Apache::lonhtmlcommon::set_form_elements(\%elements);
     my $output = <<"ENDONE";      my $output = <<"ENDONE";
 $html  $html
 <head>  <head>
Line 199  ENDONE Line 228  ENDONE
 }  }
   
 sub print_display {  sub print_display {
     my ($r,$cdom,$tablecolor,$bodytag,$html,$ltext) = @_;      my ($r,$formname,$cdom,$tablecolor,$bodytag,$html,$ltext) = @_;
     &Apache::lonhtmlcommon::add_breadcrumb      &Apache::lonhtmlcommon::add_breadcrumb
          ({href=>'/adm/notify?command=pick_display',           ({href=>"javascript:goBack('pick_display')",
           text=>"Display options"},            text=>"Display options"},
          {text=>"E-mail display"});           {text=>"E-mail display"});
     my $breadcrumbs = &Apache::lonhtmlcommon::breadcrumbs      my $breadcrumbs = &Apache::lonhtmlcommon::breadcrumbs
Line 212  sub print_display { Line 241  sub print_display {
     my $rowColor2 = "#eeeeee";      my $rowColor2 = "#eeeeee";
     my $rowColor;      my $rowColor;
     my $msgcount = 0;      my $msgcount = 0;
     my $formname = 'display_sent';  
     my $start = &Apache::lonhtmlcommon::get_date_from_form('startdate');      my $start = &Apache::lonhtmlcommon::get_date_from_form('startdate');
     my $end = &Apache::lonhtmlcommon::get_date_from_form('enddate');      my $end = &Apache::lonhtmlcommon::get_date_from_form('enddate');
     my @senders = &Apache::loncommon::get_env_multiple('form.sender');      my @senders = &Apache::loncommon::get_env_multiple('form.sender');
Line 221  sub print_display { Line 249  sub print_display {
     my %Sortby = ();      my %Sortby = ();
     my $jscript = <<"ENDSCRIPT";      my $jscript = <<"ENDSCRIPT";
 function changeSort(caller) {  function changeSort(caller) {
       document.$formname.command.value = '$formname';
     document.$formname.sortby.value = caller;      document.$formname.sortby.value = caller;
     document.$formname.submit();         document.$formname.submit();
   }
   function goBack(target) {
       document.$formname.command.value = target;
       document.$formname.submit();
 }  }
   
 ENDSCRIPT  ENDSCRIPT
     my $output = <<"ENDONE";      my $output = <<"ENDONE";
 $html  $html
Line 338  ENDONE Line 372  ENDONE
         $output .= '<tr bgcolor="#ffffff"><td>&nbsp;</td><td><br><center><i><b><small>&nbsp;&nbsp;No mail sent matching supplied criteria&nbsp;&nbsp;</small><br><br></b></i></td><td>&nbsp;</td></tr>';          $output .= '<tr bgcolor="#ffffff"><td>&nbsp;</td><td><br><center><i><b><small>&nbsp;&nbsp;No mail sent matching supplied criteria&nbsp;&nbsp;</small><br><br></b></i></td><td>&nbsp;</td></tr>';
     }      }
     $output .= &Apache::lonhtmlcommon::end_pick_box();      $output .= &Apache::lonhtmlcommon::end_pick_box();
     $output .= &echo_form_input();      $output .= &Apache::lonhtmlcommon::echo_form_input(['sortby','command','origin']);
     unless (defined($env{'form.sortby'})) {      my $curr_sortby;
         $output .= qq(<input type="hidden" name="sortby" value="date" />\n);      if (defined($env{'form.sortby'})) {
     }           $curr_sortby = $env{'form.sortby'};
       } else {
           $curr_sortby = 'date';
       }
       $output .= qq(<input type="hidden" name="origin" value="$formname" />\n);
       $output .= qq(<input type="hidden" name="command" />\n);
       $output .= qq(<input type="hidden" name="sortby" value="$curr_sortby" />\n);
     $output .= qq(      $output .= qq(
 </form>  </form>
 </body>  </body>
Line 351  ENDONE Line 391  ENDONE
 }  }
   
 sub print_selection_form {  sub print_selection_form {
     my ($r,$cdom,$tablecolor,$bodytag,$html,$ltext) = @_;      my ($r,$formname,$cdom,$tablecolor,$bodytag,$html,$ltext) = @_;
     my %coursecodes = ();      my %coursecodes = ();
     my %codes = ();      my %codes = ();
     my @codetitles = ();      my @codetitles = ();
Line 364  sub print_selection_form { Line 404  sub print_selection_form {
     my $totcodes = 0;      my $totcodes = 0;
     my $format_reply;      my $format_reply;
     my $jscript = '';      my $jscript = '';
     my $formname = 'rolefilter';  
     my $table_width = '100%';      my $table_width = '100%';
     my $col_width = '200';      my $col_width = '200';
     my %lt=&Apache::lonlocal::texthash(      my %lt=&Apache::lonlocal::texthash(
Line 374  sub print_selection_form { Line 413  sub print_selection_form {
                'infs' => 'Internal, Filesystem and Local authentication: enter single default.',                 'infs' => 'Internal, Filesystem and Local authentication: enter single default.',
                'comp' => 'Compose Message'                 'comp' => 'Compose Message'
            );             );
     my $loaditems = qq|  
 function initialize_codes() {  
     return;  
 }  
     |;  
     &Apache::lonhtmlcommon::add_breadcrumb      &Apache::lonhtmlcommon::add_breadcrumb
           ({text=>"Select Audience"});            ({text=>"Select Audience"});
   
Line 389  function initialize_codes() { Line 423  function initialize_codes() {
             my $numtypes = @codetitles;              my $numtypes = @codetitles;
             &Apache::lonsupportreq::build_code_selections(\%codes,\@codetitles,\%cat_titles,\%cat_order,\%idlist,\%idnums,\%idlist_titles);              &Apache::lonsupportreq::build_code_selections(\%codes,\@codetitles,\%cat_titles,\%cat_order,\%idlist,\%idnums,\%idlist_titles);
             &Apache::lonsupportreq::javascript_code_selections($formname,$numtypes,\%cat_titles,\$jscript,\%idlist,\%idnums,\%idlist_titles,\@codetitles);              &Apache::lonsupportreq::javascript_code_selections($formname,$numtypes,\%cat_titles,\$jscript,\%idlist,\%idnums,\%idlist_titles,\@codetitles);
             $loaditems = '';  
         }          }
     }      }
   
     my $breadcrumbs = &Apache::lonhtmlcommon::breadcrumbs      my $breadcrumbs = &Apache::lonhtmlcommon::breadcrumbs
             (undef,'Choose e-mail audience','Broadcast_system_email');              (undef,'Choose e-mail audience','Broadcast_system_email');
     my $cb_jscript = &Apache::loncommon::coursebrowser_javascript($cdom);      my $cb_jscript = &Apache::loncommon::coursebrowser_javascript($cdom);
   
       my %elements = (
                        roles => 'selectbox',
                        types => 'selectbox',
                        Year => 'selectbox',
                        coursepick => 'radio',
                        coursetotal => 'text',
                        courselist => 'text',
                        internal => 'text',
                        krb4 => 'text',
                        krb5 => 'text',
                        local => 'text',
                        unix => 'text',
                      );
       $jscript .= &Apache::lonhtmlcommon::set_form_elements(\%elements);
       if ($env{'form.coursepick'} eq 'category') {
           $jscript .= qq|
   function setCourseCat(formname) {
       if (formname.Year.options[formname.Year.selectedIndex].value == -1) {
           return;
       }
       courseSet('Year');
       for (var j=0; j<formname.Semester.length; j++) {
           if (formname.Semester.options[j].value == "$env{'form.Semester'}") {
               formname.Semester.options[j].selected = true;
           }
       }
       if (formname.Semester.options[formname.Semester.selectedIndex].value == -1) {
           return;
       }
       courseSet('Semester');
       for (var j=0; j<formname.Department.length; j++) {
           if (formname.Department.options[j].value == "$env{'form.Department'}") {
               formname.Department.options[j].selected = true;
           }
       }
       if (formname.Department.options[formname.Department.selectedIndex].value == -1) {
           return;
       }
       courseSet('Department');
       for (var j=0; j<formname.Number.length; j++) {
           if (formname.Number.options[j].value == "$env{'form.Number'}") {
               formname.Number.options[j].selected = true;
           }
       }
   }
   |; 
       }
     my $output = <<"ENDONE";      my $output = <<"ENDONE";
 $html  $html
 <head>  <head>
Line 411  $breadcrumbs Line 492  $breadcrumbs
 <form method="post" name="$formname">  <form method="post" name="$formname">
 ENDONE  ENDONE
    $output .= &Apache::lonhtmlcommon::start_pick_box($table_width);     $output .= &Apache::lonhtmlcommon::start_pick_box($table_width);
    my @roles = ('ow','cc','in','ta','ep','ad','st','cr');     my @roles = ('ow','cc','in','ta','ep','st','cr');
    my %longtypes = ();     my %longtypes = ();
    my %authtypes = ();     my %authtypes = ();
    &form_elements(\%longtypes,\%authtypes);     &form_elements(\%longtypes,\%authtypes);
Line 437  ENDONE Line 518  ENDONE
 }  }
   
 sub print_composition_form {  sub print_composition_form {
     my ($r,$cdom,$tablecolor,$bodytag,$html,$ltext) = @_;      my ($r,$formname,$cdom,$tablecolor,$bodytag,$html,$ltext) = @_;
     &Apache::lonhtmlcommon::add_breadcrumb      &Apache::lonhtmlcommon::add_breadcrumb
         ({href=>'/adm/notify?command=pick_target',          ({href=>"javascript:goBack('pick_target')",
           text=>"Select Audience"},            text=>"Select Audience"},
          {text=>"Compose Message"});           {text=>"Compose Message"});
     my $jscript = &Apache::loncommon::check_uncheck_jscript();      my $jscript = &Apache::loncommon::check_uncheck_jscript();
       $jscript .= qq|
   function goBack(target) {
       document.$formname.command.value = target;
       document.$formname.submit();
   }
   |;
     my $breadcrumbs = (&Apache::lonhtmlcommon::breadcrumbs      my $breadcrumbs = (&Apache::lonhtmlcommon::breadcrumbs
         (undef,'Broadcast e-mail to users','Broadcast_system_email'));          (undef,'Broadcast e-mail to users','Broadcast_system_email'));
   
Line 451  sub print_composition_form { Line 538  sub print_composition_form {
                       'nore' => 'No recipients identified',                        'nore' => 'No recipients identified',
                       'emad' => 'e-mail address',                        'emad' => 'e-mail address',
                    );                     );
       my %elements = (
                        subject => 'text',
                        message => 'text',
                        sender => 'text',
                        recipient => 'checkbox',
                      );
       $jscript .= &Apache::lonhtmlcommon::set_form_elements(\%elements);
   
     $r->print(<<ENDONE);      $r->print(<<ENDONE);
 $html  $html
 <head>  <head>
Line 529  ENDONE Line 624  ENDONE
     my %recipients = ();      my %recipients = ();
     my %users = ();      my %users = ();
     my %access = ();      my %access = ();
       my @sections = ();
     my $totalrecip = 0;      my $totalrecip = 0;
     my @unmatched = ();      my @unmatched = ();
     foreach my $role (@roles) {      foreach my $role (@roles) {
Line 539  ENDONE Line 635  ENDONE
     }      }
     foreach my $course_id (keys(%courses)) {      foreach my $course_id (keys(%courses)) {
         my ($cdom,$cnum) = split(/_/,$course_id);          my ($cdom,$cnum) = split(/_/,$course_id);
         &Apache::loncommon::get_course_users($cdom,$cnum,\%access,\@roles,\%users);          &Apache::loncommon::get_course_users($cdom,$cnum,\%access,\@roles,\@sections,\%users);
     }      }
     foreach my $role (keys(%users)) {      foreach my $role (keys(%users)) {
         foreach my $user (keys(%{$users{$role}})) {          foreach my $user (keys(%{$users{$role}})) {
Line 553  ENDONE Line 649  ENDONE
             }              }
         }          }
     }      }
     my $output  = '<form name="compose" method="post">'."\n";      my $output  = '<form name="'.$formname.'" method="post">'."\n";
       
     if ($totalrecip > 0) {      if ($totalrecip > 0) {
         $output .= &Apache::lonhtmlcommon::start_pick_box($table_width);          $output .= &Apache::lonhtmlcommon::start_pick_box($table_width);
Line 576  ENDONE Line 672  ENDONE
         foreach my $username (sort(keys(%recipients))) {          foreach my $username (sort(keys(%recipients))) {
             if ($recipients{$username} =~ /\@/) {              if ($recipients{$username} =~ /\@/) {
                 my $value=&Apache::lonnet::escape($username).':'.&Apache::lonnet::escape($recipients{$username});                  my $value=&Apache::lonnet::escape($username).':'.&Apache::lonnet::escape($recipients{$username});
                 $output .= '<tr><td><input type="checkbox" name="recipient" value="'.$value.'" checked="checked" /></td><td>'.$username.'</td><td>&nbsp;&nbsp;</td><td>'.$recipients{$username}.'</td></tr>';                  $output .= '<tr><td><input type="checkbox" name="recipient" value="'.$value.'" /></td><td>'.$username.'</td><td>&nbsp;&nbsp;</td><td>'.$recipients{$username}.'</td></tr>';
             }              }
         }          }
         $output .= '</table>';          $output .= '</table>';
Line 595  ENDONE Line 691  ENDONE
         $output .= &Apache::lonhtmlcommon::submit_row($col_width,$tablecolor,&mt('Submit'),'process',&mt('Send Message'));          $output .= &Apache::lonhtmlcommon::submit_row($col_width,$tablecolor,&mt('Submit'),'process',&mt('Send Message'));
         $output .= &Apache::lonhtmlcommon::end_pick_box();          $output .= &Apache::lonhtmlcommon::end_pick_box();
     } else {      } else {
         $output .= $lt{'nore'};          $output .= $lt{'nore'}."\n".
                      '<input type="hidden" name="command" value="" />'."\n";
     }      }
     $output .= &echo_form_input('command');      $output .= '<input type="hidden" name="origin" value="'.$formname.'" />'."\n";
       $output .= &Apache::lonhtmlcommon::echo_form_input(['command','origin','subject','message','recipient','sender'],);
     $output .= '</form></body></html>';      $output .= '</form></body></html>';
     $r->print($output);      $r->print($output);
     return;      return;
Line 605  ENDONE Line 703  ENDONE
   
   
 sub print_request_receipt {  sub print_request_receipt {
     my ($r,$dom,$tablecolor,$bodytag,$html,$ltext) =@_;      my ($r,$formname,$dom,$tablecolor,$bodytag,$html,$ltext) =@_;
     my @recipients = &Apache::loncommon::get_env_multiple('form.recipient');      my @recipients = &Apache::loncommon::get_env_multiple('form.recipient');
     my $subject = $env{'form.subject'};      my $subject = $env{'form.subject'};
     my $message = $env{'form.message'};      my $message = $env{'form.message'};
     my $from = $env{'form.sender'};      my $from = $env{'form.sender'};
     my $jscript = <<ENDSCRIPT;      my $jscript = <<ENDSCRIPT;
 function showCompose() {  function goBack(target) {
     document.goback.command.value = 'compose';      document.$formname.command.value = target;
     document.goback.submit();      document.$formname.submit();
 }  }
 ENDSCRIPT  ENDSCRIPT
     &Apache::lonhtmlcommon::add_breadcrumb      &Apache::lonhtmlcommon::add_breadcrumb
         ({href=>'/adm/notify?command=pick_target',          ({href=>"javascript:goBack('pick_target')",
           text=>"Select audience"});            text=>"Select audience"});
     &Apache::lonhtmlcommon::add_breadcrumb      &Apache::lonhtmlcommon::add_breadcrumb
         ({href=>'javascript:showCompose()',          ({href=>"javascript:goBack('compose')",
           text=>"Compose Message"});            text=>"Compose Message"});
     &Apache::lonhtmlcommon::add_breadcrumb      &Apache::lonhtmlcommon::add_breadcrumb
         ({href=>'/adm/notify?command=process',          ({href=>"/adm/notify?command=process",
           text=>"Outcome"});            text=>"Outcome"});
     my $breadcrumbs = &Apache::lonhtmlcommon::breadcrumbs      my $breadcrumbs = &Apache::lonhtmlcommon::breadcrumbs
             (undef,'E-mail Delivery','Broadcast_system_email');              (undef,'E-mail Delivery','Broadcast_system_email');
Line 631  ENDSCRIPT Line 729  ENDSCRIPT
 $html  $html
 <head>  <head>
  <title>LON-CAPA Notification E-mail</title>   <title>LON-CAPA Notification E-mail</title>
 <script type"text/javascript">  <script type="text/javascript">
 $jscript  $jscript
 </script>  </script>
 </head>  </head>
 $bodytag  $bodytag
 $breadcrumbs  $breadcrumbs
 <br />  <br />
 <form name="goback" method="post">  <form name="$formname" method="post">
 ENDONE  ENDONE
     $output .= &Apache::lonhtmlcommon::start_pick_box();      $output .= &Apache::lonhtmlcommon::start_pick_box();
     my @deliveries = ();      my @deliveries = ();
Line 674  ENDONE Line 772  ENDONE
     }      }
     $output .= &Apache::lonhtmlcommon::end_pick_box();      $output .= &Apache::lonhtmlcommon::end_pick_box();
     $output .= '<br /><a href="/adm/notify">Send another message?</a>'."\n";      $output .= '<br /><a href="/adm/notify">Send another message?</a>'."\n";
     $output .= &echo_form_input();      $output .= '<input type="hidden" name="command" />'."\n".
                  '<input type="hidden" name="origin" value="'.$formname.'" />'."\n";
       $output .= &Apache::lonhtmlcommon::echo_form_input(['command','origin']);
     $output .= '      $output .= '
 </form>  </form>
 </body>  </body>
Line 685  ENDONE Line 785  ENDONE
   
 sub broadcast_email {  sub broadcast_email {
     my ($recipients,$subject,$from,$message,$deliveries,$ltext)=@_;      my ($recipients,$subject,$from,$message,$deliveries,$ltext)=@_;
 # find some way to spread out delivery for large numbers of recipients.  # Should implement staggered delivery for large numbers of recipients?.
     foreach my $user (@{$recipients}) {      foreach my $user (@{$recipients}) {
         my $msg = new Mail::Send;          my $msg = new Mail::Send;
         my ($username,$to) = split(/:/,$user);          my ($username,$to) = split(/:/,$user);
Line 845  sub unpackagemail { Line 945  sub unpackagemail {
     return %content;      return %content;
 }  }
   
 sub echo_form_input {  
     my (@excluded) = @_;  
     my $output = '';  
     foreach my $key (keys(%env)) {  
         if ($key =~ /^form\.(.+)$/) {  
             if ((!@excluded) || (!grep/^$1$/,@excluded)) {  
                 if (ref($env{$key})) {  
                     foreach my $value (@{$env{$key}}) {  
                         $output .= qq(<input type="hidden" name="$1" value="$value" />\n);  
                     }  
                 } else {  
                     $output .= qq(<input type="hidden" name="$1" value="$env{$key}" />\n);  
                 }  
             }  
         }  
     }  
     return $output;  
 }  
   
 sub cr_to_br {  sub cr_to_br {
     my $incoming = shift;      my $incoming = shift;
     $incoming =~ s/\n/\<br \/\>/g;      $incoming =~ s/\n/\<br \/\>/g;
     return $incoming;      return $incoming;
 }  }
   
   
 1;  1;

Removed from v.1.7  
changed lines
  Added in v.1.8


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