--- loncom/interface/lonwhatsnew.pm	2010/08/09 23:39:43	1.98.2.2
+++ loncom/interface/lonwhatsnew.pm	2012/11/29 23:31:13	1.109
@@ -1,5 +1,5 @@
 #
-# $Id: lonwhatsnew.pm,v 1.98.2.2 2010/08/09 23:39:43 raeburn Exp $
+# $Id: lonwhatsnew.pm,v 1.109 2012/11/29 23:31:13 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -89,7 +89,7 @@ sub handler {
 
     if ( ! $env{'request.course.fn'} || ! $checkallowed{'whatsnew'}) {
         # Not in a course, or no whn priv in course
-        $env{'user.error.msg'}="/adm/whatsnew::whn:0:0:Cannot display what's new page";
+        $env{'user.error.msg'}="/adm/whatsnew:whn:0:0:Cannot display what's new page";
         return HTTP_NOT_ACCEPTABLE;
     }
 
@@ -197,10 +197,10 @@ sub display_main_box {
                     86400 => 'roles which expired since yesterday',
                    );
     my %crslogins = (
-                       -1 => 'last login for anyone who has ever logged in',
-                  2592000 => 'last login for users in last 30 days',
-                   604800 => 'last login for users in last 7 days',
-                    86400 => 'last login for users in last 24 hours',
+                       -1 => 'last logins for anyone who has ever logged in',
+                  2592000 => 'last logins for users in last 30 days',
+                   604800 => 'last logins for users in last 7 days',
+                    86400 => 'last logins for users in last 24 hours',
                    );
     my %interval_titles = (
         versions => \%versions,
@@ -237,7 +237,7 @@ sub display_main_box {
         &display_interval_config($r,$refpage,\%interval_titles,'oldroles');
     } elsif (($command eq 'chgcrslogininterval')
              && $checkallowed->{'crslogin'}) {
-        &display_interval_config($r,$refpage,\%interval_titles,'crslogin'); 
+        &display_interval_config($r,$refpage,\%interval_titles,'crslogin');
     } else {
         &display_actions_box($r,$command,$refpage,\%threshold_titles,
                         \%interval_titles,\%initpage,$cdom,$crs,$checkallowed);
@@ -263,10 +263,11 @@ sub display_header {
     
     my $scripttag;
     unless ($command eq 'chgthreshold' || $command eq 'chginterval' || 
-            $command eq 'chgoldroleinterval' || 
+            $command eq 'chgoldroleinterval' ||
             $command eq 'chgnewroleinterval' || $command eq 'chgcrslogininterval') {
        $scripttag = <<"END";
 <script type="text/javascript">
+// <![CDATA[
 function change_display(caller,change) {
     caller.value = change;
     document.visible.submit();
@@ -284,6 +285,11 @@ END
         $scripttag.='document.visible.submit();
 }
 
+function thresholdreset() {
+    document.visible.command.value="reset";
+    document.visible.submit();
+}
+
 function togglelogins() {
     var total = document.visible.logincount.value;
     var sumrow = document.visible.loginrow.value;
@@ -300,11 +306,11 @@ function togglelogins() {
     var sumval = "";
     if (showlogindetails == 1) {
         detval = "";
-        sumval = "none";   
+        sumval = "none";
     }
     for (var j=0; j<total; j++) {
         var counter = j+1;
-        var itemid = "logindet_"+counter; 
+        var itemid = "logindet_"+counter;
         personele = document.getElementById(itemid);
         if (personele != null) {
             personele.style.display = detval;
@@ -328,6 +334,7 @@ function togglelogins() {
     }
     return;
 }
+// ]]>
 </script>
 ';
     }
@@ -346,7 +353,6 @@ function togglelogins() {
 sub display_actions_box {
     my ($r,$command,$refpage,$threshold_titles,$interval_titles,$initpage,
         $cdom,$crs,$checkallowed) = @_;
-    my $custommenu = &Apache::loncommon::needs_gci_custom();
     my $udom = $env{'user.domain'};
     my $uname = $env{'user.name'};
     my $cid = $env{'request.course.id'};
@@ -410,7 +416,7 @@ sub display_actions_box {
     }
 
     my $header = '';
-    if (($refpage eq 'start') && (!$custommenu)) {
+    if ($refpage eq 'start') {
         if (tie(my %bighash,'GDBM_File',$env{'request.course.fn'}.'.db',
             &GDBM_READER(),0640)) {
             my $furl=&HTML::Entities::encode($bighash{'first_url'},'"<>&');
@@ -419,8 +425,7 @@ sub display_actions_box {
                   '</a></b><br />';
         }
     }
-    unless ($custommenu) {
-        $header .= &mt('Page set to be displayed after you have selected a role in this '.$lctype).'.'
+    $header .= &mt('Page set to be displayed after you have selected a role in this '.$lctype).'.'
               .' <span class="LC_nobreak">'
               .&mt('Currently: [_1].','<i>'.$currinit.'</i>')
               .'&nbsp;&nbsp;'
@@ -433,8 +438,7 @@ sub display_actions_box {
                   ,'</a>')
               .' </span>';
 
-        $r->print(&Apache::loncommon::head_subbox($header));
-    }
+    $r->print(&Apache::loncommon::head_subbox($header));
 
     if ($command eq 'reset') {
         $result = &process_reset($cdom,$crs);
@@ -542,7 +546,6 @@ sub display_actions_box {
     if ($timediff{'oldroles'} == -1) {
         $timediff{'oldroles'} = time;
     }
-
     my $expiredstart = $now - $timediff{'oldroles'};
 
     if ($timediff{'crslogin'} == -1) {
@@ -564,12 +567,7 @@ sub display_actions_box {
 	    $threshold{'av_attempts'},$threshold{'degdiff'},
 	    '<br />',$threshold{'numstudents'});
 
-    my @actionorder;
-    if ($custommenu) {
-        @actionorder = ('coursenormalmail','coursecritmail','newroles','oldroles','crslogin');
-    } else {
-        @actionorder = ('handgrading','haserrors','abovethreshold','versionchanges','coursediscussion','coursenormalmail','coursecritmail','newroles','oldroles');
-    }
+    my @actionorder = ('handgrading','haserrors','abovethreshold','versionchanges','coursediscussion','coursenormalmail','coursecritmail','newroles','oldroles','crslogin');
 
     foreach my $key (keys(%{$checkallowed})) {
 	if ($key =~ /_section$/) { next; }
@@ -610,7 +608,6 @@ sub display_actions_box {
     if ($show{'crslogin'}) {
         $logincount = &getloggedin($cdom,$crs,\%loggedin,$crsloginstart);
     }
-
     $r->print(qq|<a href="javascript:changeAll('hide');">$lt{'hial'}</a>
      &nbsp;&nbsp;<a href="javascript:changeAll('show');">$lt{'shal'}</a>
      <form method="post" name="visible" action="/adm/whatsnew">\n|);
@@ -634,9 +631,6 @@ sub display_actions_box {
     }
     my $halfway = 4;
 #    my $halfway = int($totalboxes/2) + $totalboxes%2;
-    if ($custommenu) {
-        $halfway = 2;
-    }
     foreach my $actionitem (@actionorder) {
         if ($$checkallowed{$actionitem}) {
             if ($displayed == $halfway) {
@@ -647,9 +641,10 @@ sub display_actions_box {
         }
     }
     $r->print('
-      </td></form>
+      </td>
     </tr>
    </table>
+   </form>
 ');
 }
 
@@ -900,7 +895,7 @@ sub display_launcher {
         $crstype,$itemserror,$loggedin,$logincount) = @_;
 
     if ($$checkallowed{$action}) {
-        &start_box($r,$show,$headings,$action,$refpage,$action);
+        &start_box($r,$show,$headings,$action,$refpage);
         if ($$show{$action}) {
             if ($action eq 'handgrading') {    # UNGRADED ITEMS
                 &display_handgrade($r,$tograde,$ungraded,$itemserror);
@@ -927,7 +922,6 @@ sub display_launcher {
             } elsif ($action eq 'crslogin') { #LAST LOGIN
                 &display_crslogins($r,$logincount,$loggedin,$interval->{'crslogin'},
                                    $crstype);
-                                     
             }
         }
         &end_box($r);
@@ -1082,6 +1076,9 @@ sub check_thresholds {
         if ($resource->handgrade($part) eq 'yes') {
             next;
         }
+        if ($resource->is_anonsurvey($part)) {
+            next;
+        }
         if ($resource->is_survey($part)) {
             next;
         }
@@ -1104,6 +1101,7 @@ sub check_thresholds {
             $av_attempts = $attempts/$users;
             $av_attempts = sprintf("%.2f",$av_attempts);
         }
+        &Apache::lonnet::statslog($symb,$part,$users,$av_attempts,$degdiff);
         if ((($degdiff ne '' && $degdiff >= $$threshold{'degdiff'}) || ($av_attempts ne '' && $av_attempts >= $$threshold{'av_attempts'})) && ($users >= $$threshold{'numstudents'})) {
             $stats{$part}{degdiff} = $degdiff;
             $stats{$part}{attempts} = $av_attempts;
@@ -1238,7 +1236,7 @@ sub process_reset {
 
 sub process_update {
     my ($uname,$udom,$threshold_titles) = @_;
-    my $setoutput = '<b>'.&mt('Changes to threshold(s) for problem tracking:').'</b><br />';
+    my $setoutput = '<b>'.&mt('Changes to threshold(s) for problem tracking:').'</b><br/><br />';
     foreach (keys %env) {
         next if ($_!~/^form\.(.+)\_setparmval$/);
         my $name  = $1;
@@ -1249,17 +1247,17 @@ sub process_update {
            
             my ($shortname) = ($name =~ /^\Q$env{'request.course.id'}\E:threshold_(.+)$/);
             if ($put_result eq 'ok') {
-                $setoutput.=&mt('Set threshold for [_1] to [_2]',
+                $setoutput.= &Apache::lonhtmlcommon::confirm_success(&mt('Set threshold for [_1] to [_2]',
 				'<b>'.$$threshold_titles{$shortname}.'</b>',
-				'<b>'.$value.'</b>').'<br />';
+				'<b>'.$value.'</b>').'<br />');
 	    } else {
-                $setoutput.=&mt('Unable to set threshold for [_1] to [_2] due to [_3].',
+                $setoutput.= &Apache::lonhtmlcommon::confirm_success(&mt('Unable to set threshold for [_1] to [_2] due to [_3].',
 				'<b>'.$name.'</b>','<b>'.$value.'</b>',
-				'<tt>'.$put_result.'</tt>').'<br />';
+				'<tt>'.$put_result.'</tt>').'<br />',1);
             }
         }
     }
-    return $setoutput;
+    return &Apache::loncommon::confirmwrapper($setoutput);
 }
 
 sub getnormalmail {
@@ -1274,7 +1272,6 @@ sub getnormalmail {
             &Apache::lonmsg::unpackmsgid($msgid);
         if (($fromcid) && ($fromcid eq $env{'request.course.id'})) {
             if (defined($sendtime) && $sendtime!~/error/) {
-                my $numsendtime = $sendtime;
                 if ($status eq 'new') {
                 $sendtime = &Apache::lonlocal::locallocaltime($sendtime);
 		    $msgcount ++;
@@ -1306,7 +1303,6 @@ sub getcritmail {
             &Apache::lonmsg::unpackmsgid($msgid);
         if (($fromcid) && ($fromcid eq  $env{'request.course.id'})) {
             if (defined($sendtime) && $sendtime!~/error/) {
-                my $numsendtime = $sendtime;
                 $sendtime = &Apache::lonlocal::locallocaltime($sendtime);
                 $critmsgcount ++;
                 if ($shortsubj eq '') {
@@ -1556,7 +1552,7 @@ sub getloggedin {
         }
     }
     return $logincount;
-} 
+}
 
 sub checkversions {
     my ($cdom,$crs,$navmap,$changed,$starttime) = @_;
@@ -1574,7 +1570,7 @@ sub checkversions {
                                                      'lastrevisiondate');
                     $revdate =  &Apache::lonlocal::locallocaltime($revdate);
                     my $linkurl=&Apache::lonnet::clutter($key);
-                    my $usedversion=$navmap->usedVersion('version_'.$linkurl);
+                    my $usedversion=$navmap->usedVersion($linkurl);
                     my @resources = $navmap->getResourceByUrl($linkurl,1);
                     if (($usedversion) && ($usedversion ne 'mostrecent')) {
                         $version = $usedversion;     
@@ -1613,13 +1609,13 @@ sub display_handgrade {
         foreach my $res (@{$tograde}) {
             $rowNum ++;
             my $css_class = $rowNum%2?' class="LC_odd_row"':'';
-            my ($map,$id,$url)=&Apache::lonnet::decode_symb($res);
-            my $linkurl=&Apache::lonnet::clutter($url);
-            $linkurl .= '?symb='.&escape($res);
+            my $linkurl='/adm/grades';
             if ($$ungraded{$res}{'enclink'}) {
-                $linkurl = 
-                    $$ungraded{$res}{'enclink'}.'?symb='.$$ungraded{$res}{'encsymb'};
-            } 
+                $linkurl.='?symb='.$$ungraded{$res}{'encsymb'};
+            } else {
+                $linkurl.='?symb='.&escape($res);
+            }
+            $linkurl.='&command=ungraded';
             $r->print('<tr'.$css_class.'><td><a href="'.$linkurl.'">'.$$ungraded{$res}{title}.'</a></td><td class="LC_right_item">'.$$ungraded{$res}{count}.'</td></tr>');
         }
     } elsif ($itemserror) {
@@ -1672,10 +1668,7 @@ sub display_abovethreshold {
     );
     if (@{$warnings} > 0) {
         @{$warnings} = sort { &cmp_title($a,$b,$res_title) } @{$warnings};
-        $r->print('<form name="reset_tracking" method="post" action="/adm/whatsnew">'.
-                ' <input type="hidden" name="command" value="reset" />'."\n".
-                ' <input type="hidden" name="refpage" value="'.$refpage.'" />'.
-                "\n");
+        $r->print('<input type="hidden" name="command" value="" />'."\n");
         $r->print('<tr class="LC_info_row">'.
 		  '<td class="LC_left_item">'.$lt{'reso'}.'</td>'.
 		  '<td>'.$lt{'part'}.'</td><td>'.$lt{'nust'}.'</td>'.
@@ -1707,13 +1700,13 @@ sub display_abovethreshold {
             if (ref($$triggered{$res}{text}) eq 'ARRAY') {
                 if (@{$$triggered{$res}{text}} > 1) {
                     for (my $i=1; $i<@{$$triggered{$res}{text}}; $i++) {
-                        $r->print('<tr class="'.$css_class.'">'.
+                        $r->print('<tr '.$css_class.'>'.
                                   $$triggered{$res}{text}[$i].'</tr>');
                     }
                 }
             }
         }
-        $r->print('<tr class="LC_info_row"><td colspan="7" class="LC_right_item"><br /><input type="submit" name="counters" value="'.$lt{'rese'}.'" /></td></tr></form>');
+        $r->print('<tr class="LC_info_row"><td colspan="7" class="LC_right_item"><br /><input type="button" name="counters" value="'.$lt{'rese'}.'" onclick="javascript:thresholdreset();" /></td></tr></form>');
     } elsif ($itemserror) {
         $r->print('<tr class="LC_empty_row"><td>'.$itemserror.'</td></tr>');
     } else {
@@ -1824,14 +1817,15 @@ sub display_crslogins {
         'number' => 'Total number of logins',
     );
     if ($logincount) {
-        $r->print('<tr class="LC_info_row" style="display:none" id="logintitledet">'.
+
+        my $hdr = '<tr class="LC_info_row" style="display:none" id="logintitledet">'.
                   '<td class="LC_left_item">'.$lt{'user'}.'</td>'.
                   '<td class="LC_left_item">'.$lt{'role'}.'</td>'.
                   '<td class="LC_left_item">'.$lt{'sec'}.'</td></tr>'.
                   '<tr class="LC_info_row" id="logintitlesum">'.
                   '<td class="LC_left_item">'.$lt{'number'}.'</td>'.
                   '<td class="LC_left_item">'.$lt{'role'}.'</td>'.
-                  '<td class="LC_left_item">'.$lt{'sec'}.'</td></tr>');
+                  '<td class="LC_left_item">'.$lt{'sec'};
         my (%bylastname,%counts);
         if (ref($loggedin) eq 'HASH') {
             my @logins = sort { $b <=> $a } (keys(%{$loggedin}));
@@ -1863,32 +1857,33 @@ sub display_crslogins {
                     }
                 }
             }
+            my $table;
             foreach my $person (sort(keys(%bylastname))) {
-                if (ref($bylastname{$person}) eq 'ARRAY') { 
-                    foreach my $item (@{$bylastname{$person}}) { 
+                if (ref($bylastname{$person}) eq 'ARRAY') {
+                    foreach my $item (@{$bylastname{$person}}) {
                         $numlogin ++;
                         my $css_class = $numlogin%2?' class="LC_odd_row"':'';
-                        $r->print('<tr'.$css_class.' style="display:none;"  id="logindet_'.$numlogin.'">'.$item.'</td></tr>'); 
+                        $table .= '<tr'.$css_class.' style="display:none;"  id="logindet_'.$numlogin.'">'.$item.'</tr>';
                     }
                 }
             }
             my $numrow = 0;
             foreach my $role (sort(keys(%counts))) {
                 my $showrole = &Apache::lonnet::plaintext($role,$crstype);
-                if (ref($counts{$role}) eq 'HASH') { 
+                if (ref($counts{$role}) eq 'HASH') {
                     foreach my $sec (sort { $b <=> $a } (keys(%{$counts{$role}}))) {
                         $numrow ++;
                         my $css_class = $numrow%2?' class="LC_odd_row"':'';
-                        $r->print('<tr '.$css_class.' id="loginsum_'.$numrow.'">'.
+                        $table .= '<tr '.$css_class.' id="loginsum_'.$numrow.'">'.
                                   '<td>'.$counts{$role}{$sec}.'</td>'.
                                   '<td>'.$showrole.'</td>'.
-                                  '<td>'.$sec.'</td></tr>');
+                                  '<td>'.$sec.'</td></tr>';
                    }
                 }
             }
-            $r->print('<input type="hidden" name="logincount" value="'.$numlogin.
+            $r->print($hdr.'<input type="hidden" name="logincount" value="'.$numlogin.
                       '" /><input type="hidden" name="loginrow" value="'.$numrow.
-                      '" />');
+                      '" /></td></tr>'.$table);
         }
     } else {
         $r->print('<tr class="LC_empty_row"><td>'.
@@ -1928,7 +1923,7 @@ sub display_coursediscussion {
             my $forum_title = $$unread{$ressymb}{'title'};
             my $type = 'Resource';
             my $feedurl=&Apache::lonfeedback::get_feedurl($ressymb);
-            my $disclink = $feedurl.'?symb='.$$unread{$ressymb}{symb};
+            my $disclink = $feedurl.'?symb='. &escape($$unread{$ressymb}{symb});
             if ($feedurl =~ /bulletinboard/) {
                 $type = 'Discussion Board';
             }
@@ -2068,19 +2063,19 @@ sub store_interval_setting {
                                              \%interval_settings,$udom,$uname);
         if ($outcome eq 'ok') {
             if (ref($interval_titles->{$context}) eq 'HASH') {
-                $result = &mt('New filter setting: [_1].','<b>'. 
-                              $interval_titles->{$context}->{$env{'form.interval'}}.'</b>').'<br />';
+                $result = &Apache::lonhtmlcommon::confirm_success(&mt('New filter setting: [_1].','<b>'. 
+                              $interval_titles->{$context}->{$env{'form.interval'}}.'</b>').'<br />');
             }
         } else {
 	    my $lctype = lc(&Apache::loncommon::course_type());
             &Apache::lonnet::logthis('Error saving whatsnew '.$context.' interval setting'.
                 ' '.$outcome.' for '.$uname.':'.$udom.' in '.$lctype.' '.$cid);
-            $result = &mt('Unable to set interval to [_1] due to [_2].',
+            $result = &Apache::lonhtmlcommon::confirm_success(&mt('Unable to set interval to [_1] due to [_2].',
                          '<b>'.$interval_titles->{$context}->{$env{'form.interval'}}.'</b>',
-                         '<tt>'.$outcome.'</tt>.<br />');
+                         '<tt>'.$outcome.'</tt>'),1);
         }
     }
-    return $result;
+    return &Apache::loncommon::confirmwrapper($result);
 }
 
 sub store_discussion_setting {
@@ -2092,20 +2087,20 @@ sub store_discussion_setting {
         my $outcome = &Apache::lonnet::put('nohist_whatsnew',
                                              \%discussion_settings,$udom,$uname);
         if ($outcome eq 'ok') {
-            $result = &mt('Count unread posts in discussions display set to [_1]',
-                  '<b>'.&mt($env{'form.countunread'}).'</b>').'<br />';
+            $result = &Apache::lonhtmlcommon::confirm_success(&mt('Count unread posts in discussions display set to [_1]',
+                  '<b>'.&mt($env{'form.countunread'}).'</b>').'<br />');
                                                                                   
         } else {
 	    my $lctype = lc(&Apache::loncommon::course_type());
             &Apache::lonnet::logthis('Error saving whatsnew countunread setting'.
                 ' '.$outcome.' for '.$uname.':'.$udom.' in '.$lctype.' '.$cid);
-            $result = &mt('Unable to set "number unread posts display" to [_1]'.
+            $result = &Apache::lonhtmlcommon::confirm_success(&mt('Unable to set "number unread posts display" to [_1]'.
                           ' due to [_2].',
                          '<b>'.&mt($env{'form.countunread'}).'</b>',
-                         '<tt>'.$outcome.'</tt>.<br />');
+                         '<tt>'.$outcome.'</tt>'),1);
         }
     }
-    return $result;
+    return &Apache::loncommon::confirmwrapper($result);
 }
 
 sub store_courseinit_setting {
@@ -2130,30 +2125,29 @@ sub store_courseinit_setting {
                                            \%courseinit_settings,$udom,$uname);
             if ($outcome eq 'ok') {
                 if ($page_control eq 'global preferences') {
-                    $result = &mt("Page displayed after role selection in $lctype now set by [_1]user's global preferences[_2].",'<b>','</b>');
+                    $result = &Apache::lonhtmlcommon::confirm_success(&mt("Page displayed after role selection in $lctype now set by [_1]user's global preferences[_2].",'<b>','</b>'));
                 } else {
-                    $result = &mt('Page displayed after role selection in this '.$lctype.' set to [_1].'
-                                 ,'<b>'.$$initpage{$env{'form.courseinit_page'}}.'</b>');
+                    $result = &Apache::lonhtmlcommon::confirm_success(&mt('Page displayed after role selection in this '.$lctype.' set to [_1].'
+                                 ,'<b>'.$$initpage{$env{'form.courseinit_page'}}.'</b>'));
                 }
             } else {
                 &Apache::lonnet::logthis('Error saving whatsnew courseinit '.
                                          'setting: '.$outcome.' for '.$uname.
                                          ':'.$udom.' in '.$lctype.' '.$cid);
                 if ($page_control eq 'global preferences') {
-                    $result = &mt('Unable to set control of page display to [_1]'.
+                    $result = &Apache::lonhtmlcommon::confirm_success(&mt('Unable to set control of page display to [_1]'.
                           ' due to [_2].',
                          '<b>'.$page_control.'</b>',
-                         '<tt>'.$outcome.'</tt>.<br />');
+                         '<tt>'.$outcome.'</tt>'),1);
                 } else {
-                    $result = &mt('Unable to set page display, after role selection, for this '.$lctype.' to [_1] due to [_2].'
+                    $result = &Apache::lonhtmlcommon::confirm_success(&mt('Unable to set page display, after role selection, for this '.$lctype.' to [_1] due to [_2].'
                                  ,'<b>'.$$initpage{$env{'form.courseinit_page'}}.'</b>'
-                                 ,'<tt>'.$outcome.'</tt>')
-                             .'<br />';
+                                 ,'<tt>'.$outcome.'</tt>'),1);
                 }
             }
         }
     }
-    return $result;
+    return &Apache::loncommon::confirmwrapper($result);
 }
 
 sub start_box {
@@ -2216,14 +2210,14 @@ sub start_box {
                 <td class="LC_subheader" colspan="2"><a href="/adm/whatsnew?command=chgoldroleinterval&amp;refpage='.$refpage.'">'.$lt{'chin'}.'</a></td>
               </tr>');
          }
-     } elsif (($caller eq 'crslogin') && ($$show{$caller})) {
-         if ($$show{$caller}) {
-             $r->print('
+    } elsif (($caller eq 'crslogin') && ($$show{$caller})) {
+        if ($$show{$caller}) {
+            $r->print('
               <tr>
                 <td class="LC_subheader" align="left"><span class="LC_nobreak"><label><input type="radio" name="logindetails" value="0" checked="checked" onclick="javascript:togglelogins();" />&nbsp;'.&mt('Summary').'</label><label><input type="radio" name="logindetails" value="1" onclick="javascript:togglelogins();" />&nbsp;'.&mt('Details').'</label></span></td><td class="LC_subheader"><a href="/adm/whatsnew?command=chgcrslogininterval&amp;refpage='.$refpage.'">'.$lt{'chin'}.'</a></td>
               </tr>');
-         }
-     }
+        }
+    }
 
     $r->print('
               <tr>