Diff for /loncom/interface/loncommon.pm between versions 1.765 and 1.780

version 1.765, 2009/03/09 05:25:40 version 1.780, 2009/03/27 02:14:43
Line 406  sub studentbrowser_javascript { Line 406  sub studentbrowser_javascript {
          || ($env{'request.role'}=~/^(au|dc|su)/)           || ($env{'request.role'}=~/^(au|dc|su)/)
           ) { return ''; }              ) { return ''; }  
    return (<<'ENDSTDBRW');     return (<<'ENDSTDBRW');
 <script type="text/javascript" language="Javascript" >  <script type="text/javascript" language="Javascript">
     var stdeditbrowser;      var stdeditbrowser;
     function openstdbrowser(formname,uname,udom,roleflag,ignorefilter) {      function openstdbrowser(formname,uname,udom,roleflag,ignorefilter) {
         var url = '/adm/pickstudent?';          var url = '/adm/pickstudent?';
Line 452  sub selectstudent_link { Line 452  sub selectstudent_link {
   
 sub authorbrowser_javascript {  sub authorbrowser_javascript {
     return <<"ENDAUTHORBRW";      return <<"ENDAUTHORBRW";
 <script type="text/javascript">  <script type="text/javascript" language="JavaScript">
 var stdeditbrowser;  var stdeditbrowser;
   
 function openauthorbrowser(formname,udom) {  function openauthorbrowser(formname,udom) {
Line 473  sub coursebrowser_javascript { Line 473  sub coursebrowser_javascript {
     my ($domainfilter,$sec_element,$formname)=@_;      my ($domainfilter,$sec_element,$formname)=@_;
     my $crs_or_grp_alert = &mt('Please select the type of LON-CAPA entity - Course or Group - for which you wish to add/modify a user role');      my $crs_or_grp_alert = &mt('Please select the type of LON-CAPA entity - Course or Group - for which you wish to add/modify a user role');
    my $output = '     my $output = '
 <script type="text/javascript">  <script type="text/javascript" language="JavaScript">
     var stdeditbrowser;'."\n";      var stdeditbrowser;'."\n";
    $output .= <<"ENDSTDBRW";     $output .= <<"ENDSTDBRW";
     function opencrsbrowser(formname,uname,udom,desc,extra_element,multflag,crstype) {      function opencrsbrowser(formname,uname,udom,desc,extra_element,multflag,crstype) {
Line 796  sub linked_select_forms { Line 796  sub linked_select_forms {
     my $first = "document.$formname.$firstselectname";      my $first = "document.$formname.$firstselectname";
     # output the javascript to do the changing      # output the javascript to do the changing
     my $result = '';      my $result = '';
     $result.="<script type=\"text/javascript\">\n";      $result.='<script type="text/javascript" language="JavaScript">'."\n";
     $result.="var select2data = new Object();\n";      $result.="var select2data = new Object();\n";
     $" = '","';      $" = '","';
     my $debug = '';      my $debug = '';
Line 2126  sub authform_kerberos { Line 2126  sub authform_kerberos {
         $autharg,$jscall);          $autharg,$jscall);
     my ($authnum,%can_assign) =  &get_assignable_auth($in{'domain'});      my ($authnum,%can_assign) =  &get_assignable_auth($in{'domain'});
     if ($in{'kerb_def_auth'} eq 'krb5') {      if ($in{'kerb_def_auth'} eq 'krb5') {
        $check5 = ' checked="on"';         $check5 = ' checked="checked"';
     } else {      } else {
        $check4 = ' checked="on"';         $check4 = ' checked="checked"';
     }      }
     $krbarg = $in{'kerb_def_dom'};      $krbarg = $in{'kerb_def_dom'};
     if (defined($in{'curr_authtype'})) {      if (defined($in{'curr_authtype'})) {
         if ($in{'curr_authtype'} eq 'krb') {          if ($in{'curr_authtype'} eq 'krb') {
             $krbcheck = ' checked="on"';              $krbcheck = ' checked="checked"';
             if (defined($in{'mode'})) {              if (defined($in{'mode'})) {
                 if ($in{'mode'} eq 'modifyuser') {                  if ($in{'mode'} eq 'modifyuser') {
                     $krbcheck = '';                      $krbcheck = '';
Line 2141  sub authform_kerberos { Line 2141  sub authform_kerberos {
             }              }
             if (defined($in{'curr_kerb_ver'})) {              if (defined($in{'curr_kerb_ver'})) {
                 if ($in{'curr_krb_ver'} eq '5') {                  if ($in{'curr_krb_ver'} eq '5') {
                     $check5 = ' checked="on"';                      $check5 = ' checked="checked"';
                     $check4 = '';                      $check4 = '';
                 } else {                  } else {
                     $check4 = ' checked="on"';                      $check4 = ' checked="checked"';
                     $check5 = '';                      $check5 = '';
                 }                  }
             }              }
Line 2235  sub authform_internal{ Line 2235  sub authform_internal{
     if (defined($in{'curr_authtype'})) {      if (defined($in{'curr_authtype'})) {
         if ($in{'curr_authtype'} eq 'int') {          if ($in{'curr_authtype'} eq 'int') {
             if ($can_assign{'int'}) {              if ($can_assign{'int'}) {
                 $intcheck = 'checked="on" ';                  $intcheck = 'checked="checked" ';
                 if (defined($in{'mode'})) {                  if (defined($in{'mode'})) {
                     if ($in{'mode'} eq 'modifyuser') {                      if ($in{'mode'} eq 'modifyuser') {
                         $intcheck = '';                          $intcheck = '';
Line 2290  sub authform_local{ Line 2290  sub authform_local{
     if (defined($in{'curr_authtype'})) {      if (defined($in{'curr_authtype'})) {
         if ($in{'curr_authtype'} eq 'loc') {          if ($in{'curr_authtype'} eq 'loc') {
             if ($can_assign{'loc'}) {              if ($can_assign{'loc'}) {
                 $loccheck = 'checked="on" ';                  $loccheck = 'checked="checked" ';
                 if (defined($in{'mode'})) {                  if (defined($in{'mode'})) {
                     if ($in{'mode'} eq 'modifyuser') {                      if ($in{'mode'} eq 'modifyuser') {
                         $loccheck = '';                          $loccheck = '';
Line 2344  sub authform_filesystem{ Line 2344  sub authform_filesystem{
     if (defined($in{'curr_authtype'})) {      if (defined($in{'curr_authtype'})) {
         if ($in{'curr_authtype'} eq 'fsys') {          if ($in{'curr_authtype'} eq 'fsys') {
             if ($can_assign{'fsys'}) {              if ($can_assign{'fsys'}) {
                 $fsyscheck = 'checked="on" ';                  $fsyscheck = 'checked="checked" ';
                 if (defined($in{'mode'})) {                  if (defined($in{'mode'})) {
                     if ($in{'mode'} eq 'modifyuser') {                      if ($in{'mode'} eq 'modifyuser') {
                         $fsyscheck = '';                          $fsyscheck = '';
Line 4505  body{ Line 4505  body{
   }    }
 a:link, a:visited { font-size:100%; }  a:link, a:visited { font-size:100%; }
   
 a:focus { color: red; background: yellow }   a:focus { color: red; background: yellow }
 table.thinborder,  table.thinborder,
 table.thinborder tr th {  table.thinborder tr th {
   border-style: solid;    border-style: solid;
Line 4521  table.thinborder tr td { Line 4521  table.thinborder tr td {
   
 form, .inline { display: inline; }  form, .inline { display: inline; }
   
 .LC_center { text-align: center; }  
 .LC_left { text-align:left; }  
 .LC_right {text-align:right;}  .LC_right {text-align:right;}
 .LC_middle {vertical-align:middle;}  .LC_middle {vertical-align:middle;}
 .LC_top {vertical-align:top;}  
 .LC_bottom {vertical-align:bottom;}  
   
 /* just for tests */  /* just for tests */
 .LC_300Box { width:300px; }  
 .LC_400Box {width:400px; }  .LC_400Box {width:400px; }
 .LC_500Box {width:500px; }  
 .LC_600Box {width:600px; }  
 .LC_800Box {width:800px;}  
 /* end */  /* end */
   
 .LC_filename {font-family: $mono; white-space:pre;}  .LC_filename {
     font-family: $mono;
     white-space:pre;
   }
   
   .LC_fileicon {
     border: none;
     height: 1.3em;
     vertical-align: text-bottom;
     margin-right: 0.3em;
     text-decoration:none;
   }
   
 .LC_error {  .LC_error {
   color: red;    color: red;
   font-size: larger;    font-size: larger;
Line 4556  form, .inline { display: inline; } Line 4560  form, .inline { display: inline; }
 }  }
   
 .LC_icon {  .LC_icon {
   border: 0px;    border: none;
 }  }
   
 .LC_indexer_icon {  .LC_indexer_icon {
   border: 0px;    border: 0px;
   height: 22px;    height: 22px;
Line 4565  form, .inline { display: inline; } Line 4570  form, .inline { display: inline; }
 .LC_docs_spacer {  .LC_docs_spacer {
   width: 25px;    width: 25px;
   height: 1px;    height: 1px;
   border: 0px;    border: none;
 }  }
   
 .LC_internal_info {  .LC_internal_info {
Line 4585  table#LC_top_nav, table#LC_menubuttons,t Line 4590  table#LC_top_nav, table#LC_menubuttons,t
   padding: 0px;    padding: 0px;
 }  }
   
 table#LC_title_bar, table.LC_breadcrumbs,   table#LC_title_bar, table.LC_breadcrumbs,
 table#LC_title_bar.LC_with_remote {  table#LC_title_bar.LC_with_remote {
   width: 100%;    width: 100%;
   border-color: $pgbg;    border-color: $pgbg;
Line 4609  table.LC_docs_path { Line 4614  table.LC_docs_path {
 table#LC_title_bar td {  table#LC_title_bar td {
   background: $tabbg;    background: $tabbg;
 }  }
 table#LC_title_bar td.LC_title_bar_who {  table#LC_title_bar .LC_title_bar_who {
   background: $tabbg;    background: $tabbg;
   color: $font;    color: $font;
   font: small $sans;    font: small $sans;
   text-align: right;    text-align: right;
     margin: 0px;
   }
   table#LC_title_bar .LC_title_bar_name {
     margin: 0px;
   }
   table#LC_title_bar .LC_title_bar_role {
     margin: 0px;
   }
   table#LC_title_bar .LC_title_bar_realm {
     margin: 0px;
 }  }
 span.LC_metadata {  span.LC_metadata {
     font-family: $sans;      font-family: $sans;
Line 4696  table#LC_mainmenu td.LC_mainmenu_column Line 4711  table#LC_mainmenu td.LC_mainmenu_column
  font-size: 120%;   font-size: 120%;
 }  }
   
 .LC_fontcolor_red  
 {  
  color: #FF0000;  
 }  
   
 .LC_menubuttons_inline_text {  .LC_menubuttons_inline_text {
   color: $font;    color: $font;
   font-family: $sans;    font-family: $sans;
Line 4721  table#LC_mainmenu td.LC_mainmenu_column Line 4731  table#LC_mainmenu td.LC_mainmenu_column
 }  }
   
 td.LC_menubuttons_text {  td.LC_menubuttons_text {
   color: $font;    color: $font;
 }  }
   
   
Line 4792  table.LC_data_table tr.LC_info_row > td Line 4802  table.LC_data_table tr.LC_info_row > td
   font-weight: bold;    font-weight: bold;
   text-align: left;    text-align: left;
 }  }
 table.LC_data_table tr.LC_odd_row > td,   table.LC_data_table tr.LC_odd_row > td,
 table.LC_pick_box tr > td.LC_odd_row,  table.LC_pick_box tr > td.LC_odd_row,
 table.LC_aboutme_port tr td {  table.LC_aboutme_port tr td {
   background-color: $data_table_light;    background-color: $data_table_light;
Line 4890  table.LC_calendar tr td.LC_calendar_day_ Line 4900  table.LC_calendar tr td.LC_calendar_day_
 table.LC_calendar tr td.LC_calendar_day_current {  table.LC_calendar tr td.LC_calendar_day_current {
   background-color: $data_table_highlight;    background-color: $data_table_highlight;
 }  }
   
 table.LC_mail_list tr.LC_mail_new {  table.LC_mail_list tr.LC_mail_new {
   background-color: $mail_new;    background-color: $mail_new;
 }  }
 table.LC_mail_list tr.LC_mail_new:hover {  table.LC_mail_list tr.LC_mail_new:hover {
   background-color: $mail_new_hover;    background-color: $mail_new_hover;
 }  }
   table.LC_mail_list tr.LC_mail_even{
   }
   table.LC_mail_list tr.LC_mail_odd{
   }
 table.LC_mail_list tr.LC_mail_read {  table.LC_mail_list tr.LC_mail_read {
   background-color: $mail_read;    background-color: $mail_read;
 }  }
Line 4915  table.LC_mail_list tr.LC_mail_other { Line 4928  table.LC_mail_list tr.LC_mail_other {
 table.LC_mail_list tr.LC_mail_other:hover {  table.LC_mail_list tr.LC_mail_other:hover {
   background-color: $mail_other_hover;    background-color: $mail_other_hover;
 }  }
 table.LC_mail_list tr.LC_mail_even {  
 }  
 table.LC_mail_list tr.LC_mail_odd {  
 }  
   
 table.LC_data_table tr > td.LC_browser_file,  table.LC_data_table tr > td.LC_browser_file,
 table.LC_data_table tr > td.LC_browser_file_published {  table.LC_data_table tr > td.LC_browser_file_published {
Line 4986  span.LC_parm_folder, span.LC_parm_symb { Line 4995  span.LC_parm_folder, span.LC_parm_symb {
 }  }
   
 td.LC_parm_overview_level_menu, td.LC_parm_overview_map_menu,  td.LC_parm_overview_level_menu, td.LC_parm_overview_map_menu,
 td.LC_parm_overview_parm_selectors, td.LC_parm_overview_parm_restrictions {  td.LC_parm_overview_parm_selectors,td.LC_parm_overview_restrictions  {
   border: 1px solid black;    border: 1px solid black;
   border-collapse: collapse;    border-collapse: collapse;
 }  }
Line 5198  table.LC_descriptive_input td.LC_descrip Line 5207  table.LC_descriptive_input td.LC_descrip
 div.LC_feedback_link {  div.LC_feedback_link {
   clear: both;    clear: both;
   background: white;    background: white;
   width: 100%;      width: 100%;
 }  }
 span.LC_feedback_link {  span.LC_feedback_link {
   background: $feedback_link_bg;    background: $feedback_link_bg;
Line 5229  table.LC_prior_tries td { Line 5238  table.LC_prior_tries td {
   background: #FFAAAA ! important;    background: #FFAAAA ! important;
   color: black;    color: black;
 }  }
 .LC_answer_not_charged_try,   .LC_answer_not_charged_try,
 .LC_answer_no_grade,  .LC_answer_no_grade,
 .LC_answer_late {  .LC_answer_late {
   background: #FFFFAA;    background: #FFFFAA;
Line 5247  table.LC_prior_tries td { Line 5256  table.LC_prior_tries td {
   background: orange;    background: orange;
   color: black;    color: black;
 }  }
   
   
 span.LC_prior_numerical,  span.LC_prior_numerical,
 span.LC_prior_string,  span.LC_prior_string,
 span.LC_prior_custom,  span.LC_prior_custom,
Line 5276  table.LC_prior_match tr td { Line 5283  table.LC_prior_match tr td {
   border: 1px solid #000000;    border: 1px solid #000000;
 }  }
   
   td.LC_nobreak,
 span.LC_nobreak {  span.LC_nobreak {
   white-space: nowrap;    white-space: nowrap;
 }  }
Line 5294  table.LC_docs_documents { Line 5302  table.LC_docs_documents {
   border-width: 0px;    border-width: 0px;
   border-collapse: collapse;    border-collapse: collapse;
 }  }
   
 table.LC_docs_documents td.LC_docs_document {  table.LC_docs_documents td.LC_docs_document {
   border: 2px solid black;    border: 2px solid black;
   padding: 4px;    padding: 4px;
 }  }
   
 .LC_docs_entry_move {  .LC_docs_entry_move {
   border: 0px;    border: 0px;
   border-collapse: collapse;    border-collapse: collapse;
Line 5372  table.LC_double_column tr td.LC_left_col Line 5378  table.LC_double_column tr td.LC_left_col
   
 table.LC_double_column tr td.LC_right_col {  table.LC_double_column tr td.LC_right_col {
   top: 2px;    top: 2px;
   right: 2px;     right: 2px;
   width: 47%;    width: 47%;
   vertical-align: top;    vertical-align: top;
 }  }
Line 5450  table.LC_scantron_action tr th { Line 5456  table.LC_scantron_action tr th {
   font-weight:bold;    font-weight:bold;
   font-style:normal;    font-style:normal;
 }  }
 .LC_edit_problem_header,   .LC_edit_problem_header,
 div.LC_edit_problem_footer {  div.LC_edit_problem_footer {
   font-weight: normal;    font-weight: normal;
   font-size:  medium;    font-size:  medium;
Line 5525  table#LC_mainmenu td.LC_mainmenu_col_fie Line 5531  table#LC_mainmenu td.LC_mainmenu_col_fie
   font-size: small;    font-size: small;
   font-weight: bold;    font-weight: bold;
 }  }
   
 div.LC_createcourse {  div.LC_createcourse {
     margin: 10px 10px 10px 10px;      margin: 10px 10px 10px 10px;
 }  }
Line 5548  ul.LC_TabContent   li:hover a{ Line 5553  ul.LC_TabContent   li:hover a{
         text-decoration:none;          text-decoration:none;
 }  }
   
 h1 {   h1 {
  padding:5px 10px 5px 20px;   padding:5px 10px 5px 20px;
  line-height:130%;   line-height:130%;
 }  }
Line 5563  h2,h3,h4,h5,h6 Line 5568  h2,h3,h4,h5,h6
         padding:3px 15px 3px 15px;          padding:3px 15px 3px 15px;
         margin:0px;          margin:0px;
  background-color:$tabbg;   background-color:$tabbg;
  border-bottom:solid 1px $lg_border_color;          border-bottom:solid 1px $lg_border_color;
 }  }
 .LC_noBorder {  .LC_noBorder {
         border:0px;          border:0px;
 }  }
   
 .LC_bgLightGrey{  
  background:URL(/adm/lonIcons/lightGreyBG.png) repeat-x left bottom;  
 }  
   
   
 /* Main Header with discription of Person, Course, etc. */  /* Main Header with discription of Person, Course, etc. */
 .LC_HeadRight {  
  text-align: right;  
  float: right;  
  margin: 0px;  
  padding: 0px;  
         right:0;  
         position:absolute;  
         overflow:hidden;  
 }  
   
 .LC_Right {  .LC_Right {
         float: right;          float: right;
Line 5596  p, .LC_ContentBox { Line 5588  p, .LC_ContentBox {
   
 }  }
 .LC_FormSectionClearButton input {  .LC_FormSectionClearButton input {
         background-color:transparent;                  background-color:transparent;
         border:0px;          border:0px;
         cursor:pointer;          cursor:pointer;
         text-decoration:underline;          text-decoration:underline;
Line 5673  ul.LC_TabContent li{ Line 5665  ul.LC_TabContent li{
  background-color:$tabbg;   background-color:$tabbg;
  border-bottom:solid 1px $lg_border_color;   border-bottom:solid 1px $lg_border_color;
 }  }
 ul.LC_TabContent li a, ul.LC_TabContent li{   ul.LC_TabContent li a, ul.LC_TabContent li{
  color:rgb(47,47,47);   color:rgb(47,47,47);
  text-decoration:none;   text-decoration:none;
  font-size:95%;   font-size:95%;
Line 5700  ul.LC_TabContentBigger li, ul.LC_TabCont Line 5692  ul.LC_TabContentBigger li, ul.LC_TabCont
  font-size:110%;   font-size:110%;
  font-weight:bold;   font-weight:bold;
 }  }
 #LC_CourseDocuments, #LC_SupplementalCourseDocuments  
 {  
  margin:0px;  
 }  
   
 .LC_hideThis  
 {  
  display:none;  
  visibility:hidden;  
 }  
   
 ol#LC_MenuBreadcrumbs, ol#LC_PathBreadcrumbs {  ol#LC_MenuBreadcrumbs, ol#LC_PathBreadcrumbs {
  border-top: solid 1px RGB(255, 255, 255);   border-top: solid 1px RGB(255, 255, 255);
Line 5725  ol#LC_MenuBreadcrumbs, ol#LC_PathBreadcr Line 5707  ol#LC_MenuBreadcrumbs, ol#LC_PathBreadcr
 ol#LC_MenuBreadcrumbs li, ol#LC_PathBreadcrumbs li {  ol#LC_MenuBreadcrumbs li, ol#LC_PathBreadcrumbs li {
 /*  /*
  background: url(/adm/lonIcons/arrow_white.png) no-repeat left center;   background: url(/adm/lonIcons/arrow_white.png) no-repeat left center;
 */  */
  display: inline;   display: inline;
  padding: 0px 0px 0px 10px;   padding: 0px 0px 0px 10px;
  vertical-align: bottom;   vertical-align: bottom;
Line 5772  dl.LC_ListStyleClean dd { Line 5754  dl.LC_ListStyleClean dd {
 .LC_ListStyleClean,  .LC_ListStyleClean,
 .LC_ListStyleSimple,  .LC_ListStyleSimple,
 .LC_ListStyleNormal,  .LC_ListStyleNormal,
 .LC_ListStyleNormal_Border,  .LC_ListStyle_Border,
 .LC_ListStyleSpecial  .LC_ListStyleSpecial
  {   {
  /*display:block; */   /*display:block; */
Line 5909  table em{ Line 5891  table em{
  font-weight: bold;   font-weight: bold;
  font-style: normal;   font-style: normal;
 }  }
   table.LC_tableBrowseRes,
 table#LC_tableOfContent{  table.LC_tableOfContent{
  border-collapse: collapse;          border:none;
  border-spacing: 0;   border-spacing: 1;
  padding: 3px;   padding: 3px;
  border: 0;  
  background-color: #FFFFFF;   background-color: #FFFFFF;
  font-size: 90%;   font-size: 90%;
 }  }
 table#LC_tableOfContent a {  table.LC_tableBrowseRes a,
   table.LC_tableOfContent a {
           background-color: transparent;
  text-decoration: none;   text-decoration: none;
 }  }
   
 table#LC_tableOfContent tr.LC_trOdd{  table.LC_tableBrowseRes tr.LC_trOdd,
   table.LC_tableOfContent tr.LC_trOdd{
  background-color: #EEEEEE;   background-color: #EEEEEE;
 }  }
   
 table#LC_tableOfContent img{  table.LC_tableOfContent img{
  border: none;   border: none;
  height: 1.3em;   height: 1.3em;
  vertical-align: text-bottom;   vertical-align: text-bottom;
Line 5937  a#LC_content_toolbar_firsthomework{ Line 5921  a#LC_content_toolbar_firsthomework{
  background-image:url(/res/adm/pages/open-first-problem.gif);   background-image:url(/res/adm/pages/open-first-problem.gif);
 }  }
   
 a#LC_content_toolbar_launchnav{  a#LC_content_toolbar_launchnav{
  background-image:url(/res/adm/pages/start-navigation.gif);   background-image:url(/res/adm/pages/start-navigation.gif);
 }  }
   
Line 5970  ul#LC_toolbar li a:hover{ Line 5954  ul#LC_toolbar li a:hover{
 }  }
   
 ul#LC_toolbar{  ul#LC_toolbar{
  padding:0;    padding:0;
  margin: 2px;   margin: 2px;
  list-style:none;   list-style:none;
  position:relative;   position:relative;
Line 5981  ul#LC_toolbar li{ Line 5965  ul#LC_toolbar li{
  border:1px solid white;   border:1px solid white;
  padding:0;   padding:0;
  margin: 0;   margin: 0;
  display:inline-block;      float: left;
    display:inline;
  vertical-align:middle;   vertical-align:middle;
 }  }
   
 a.LC_toolbarItem{  a.LC_toolbarItem{
  display:inline-block;   display:block;
  padding:0;   padding:0;
  margin:0;   margin:0;
  height: 32px;   height: 32px;
  width: 32px;   width: 32px;
  color:white;    color:white;
  border:0 none;   border:0 none;
  background-repeat:no-repeat;   background-repeat:no-repeat;
  background-color:transparent;   background-color:transparent;
 }  }
Line 7032  If the user's status includes multiple t Line 7017  If the user's status includes multiple t
 the largest default quota which applies to the user determines the  the largest default quota which applies to the user determines the
 default quota returned.  default quota returned.
   
   =back
   
 =cut  =cut
   
 ###############################################  ###############################################
Line 7580  sub get_institutional_codes { Line 7567  sub get_institutional_codes {
   
 =pod  =pod
   
   =head1 Slot Helpers
   
   =over 4
   
   =item * sorted_slots()
   
   Sorts an array of slot names in order of slot start time (earliest first). 
   
   Inputs:
   
   =over 4
   
   slotsarr  - Reference to array of unsorted slot names.
   
   slots     - Reference to hash of hash, where outer hash keys are slot names.
   
 =back  =back
   
   Returns:
   
   =over 4
   
   sorted   - An array of slot names sorted by the start time of the slot.
   
   =back
   
   =back
   
   =cut
   
   
   sub sorted_slots {
       my ($slotsarr,$slots) = @_;
       my @sorted;
       if ((ref($slotsarr) eq 'ARRAY') && (ref($slots) eq 'HASH')) {
           @sorted =
               sort {
                        if (ref($slots->{$a}) && ref($slots->{$b})) {
                            return $slots->{$a}{'starttime'} <=> $slots->{$b}{'starttime'}
                        }
                        if (ref($slots->{$a})) { return -1;}
                        if (ref($slots->{$b})) { return 1;}
                        return 0;
                    } @{$slotsarr};
       }
       return @sorted;
   }
   
   
   =pod
   
 =head1 HTTP Helpers  =head1 HTTP Helpers
   
 =over 4  =over 4
Line 8876  sub restore_settings { Line 8912  sub restore_settings {
   
 =item * &build_recipient_list()  =item * &build_recipient_list()
   
 Build recipient lists for three types of e-mail:  Build recipient lists for four types of e-mail:
 (a) Error Reports, (b) Package Updates, (c) Help requests, generated by  (a) Error Reports, (b) Package Updates, (c) lonstatus warnings/errors
 lonerrorhandler.pm, CHECKRPMS and lonsupportreq.pm respectively.  (d) Help requests, generated by
   lonerrorhandler.pm, CHECKRPMS, loncron, and lonsupportreq.pm respectively.
   
 Inputs:  Inputs:
 defmail (scalar - email address of default recipient),   defmail (scalar - email address of default recipient), 
Line 8902  sub build_recipient_list { Line 8939  sub build_recipient_list {
     my %domconfig =      my %domconfig =
          &Apache::lonnet::get_dom('configuration',['contacts'],$defdom);           &Apache::lonnet::get_dom('configuration',['contacts'],$defdom);
     if (ref($domconfig{'contacts'}) eq 'HASH') {      if (ref($domconfig{'contacts'}) eq 'HASH') {
         if (ref($domconfig{'contacts'}{$mailing}) eq 'HASH') {          if (exists($domconfig{'contacts'}{$mailing})) {
             my @contacts = ('adminemail','supportemail');              if (ref($domconfig{'contacts'}{$mailing}) eq 'HASH') {
             foreach my $item (@contacts) {                  my @contacts = ('adminemail','supportemail');
                 if ($domconfig{'contacts'}{$mailing}{$item}) {                  foreach my $item (@contacts) {
                     my $addr = $domconfig{'contacts'}{$item};                       if ($domconfig{'contacts'}{$mailing}{$item}) {
                     if (!grep(/^\Q$addr\E$/,@recipients)) {                          my $addr = $domconfig{'contacts'}{$item}; 
                         push(@recipients,$addr);                          if (!grep(/^\Q$addr\E$/,@recipients)) {
                               push(@recipients,$addr);
                           }
                     }                      }
                       $otheremails = $domconfig{'contacts'}{$mailing}{'others'};
                 }                  }
                 $otheremails = $domconfig{'contacts'}{$mailing}{'others'};  
             }              }
           } elsif ($origmail ne '') {
               push(@recipients,$origmail);
         }          }
     } elsif ($origmail ne '') {      } elsif ($origmail ne '') {
         push(@recipients,$origmail);          push(@recipients,$origmail);
Line 9183  sub assign_categories_table { Line 9224  sub assign_categories_table {
                     my $checked = '';                      my $checked = '';
                     if (@currcategories > 0) {                      if (@currcategories > 0) {
                         if (grep(/^\Q$item\E$/,@currcategories)) {                          if (grep(/^\Q$item\E$/,@currcategories)) {
                             $checked = ' checked="checked" ';                              $checked = ' checked="checked"';
                         }                          }
                     }                      }
                     $output .= '<tr '.$css_class.'><td><span class="LC_nobreak">'.                      $output .= '<tr '.$css_class.'><td><span class="LC_nobreak">'.
Line 9249  sub assign_category_rows { Line 9290  sub assign_category_rows {
                     if (ref($currcategories) eq 'ARRAY') {                      if (ref($currcategories) eq 'ARRAY') {
                         if (@{$currcategories} > 0) {                          if (@{$currcategories} > 0) {
                             if (grep(/^\Q$item\E$/,@{$currcategories})) {                              if (grep(/^\Q$item\E$/,@{$currcategories})) {
                                 $checked = ' checked="checked" ';                                  $checked = ' checked="checked"';
                             }                              }
                         }                          }
                     }                      }

Removed from v.1.765  
changed lines
  Added in v.1.780


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