[LON-CAPA-cvs] cvs: loncom /auth lonroles.pm

www lon-capa-cvs@mail.lon-capa.org
Fri, 11 Nov 2005 18:47:10 -0000


www		Fri Nov 11 13:47:10 2005 EDT

  Modified files:              
    /loncom/auth	lonroles.pm 
  Log:
  Trying to catch if Role is initialized twice in a row
  
  
Index: loncom/auth/lonroles.pm
diff -u loncom/auth/lonroles.pm:1.133 loncom/auth/lonroles.pm:1.134
--- loncom/auth/lonroles.pm:1.133	Tue Nov  8 17:08:12 2005
+++ loncom/auth/lonroles.pm	Fri Nov 11 13:47:09 2005
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # User Roles Screen
 #
-# $Id: lonroles.pm,v 1.133 2005/11/08 22:08:12 albertel Exp $
+# $Id: lonroles.pm,v 1.134 2005/11/11 18:47:09 www Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -89,6 +89,9 @@
 
 # ================================================================== Roles Init
     if ($env{'form.selectrole'}) {
+        if ($env{'form.newrole'}) {
+            $env{'form.'.$env{'form.newrole'}}=1;
+	}
 	if ($env{'request.course.id'}) {
 	    my %temp=('logout_'.$env{'request.course.id'} => time);
 	    &Apache::lonnet::put('email_status',\%temp);
@@ -312,6 +315,7 @@
 
     my $swinfo=&Apache::lonmenu::rawconfig();
     my $bodytag=&Apache::loncommon::bodytag('User Roles');
+    my $standby=&mt('Role selected. Please stand by.');
     my $helptag='<table><tr><td>'.&Apache::loncommon::help_open_menu('','General Intro','General_Intro','User Roles',1,undef,undef,undef,undef,,&mt("Click here for help")).'</td></td></tr></table>';
     $r->print(<<ENDHEADER);
 <html>
@@ -323,6 +327,20 @@
 <script>
 $swinfo
 window.focus();
+
+active=true;
+
+function enterrole (thisform,rolecode,buttonname) {
+    if (active) {
+	active=false;
+        document.title='$standby';
+        window.status='$standby';
+	thisform.newrole.value=rolecode;
+	thisform.submit();
+    } else {
+       alert('$standby');
+    }   
+}
 </script>
 ENDHEADER
 
@@ -396,6 +414,7 @@
         $r->print('<form method="post" name="rolechoice" action="'.(($fn)?$fn:$r->uri).'">');
         $r->print('<input type="hidden" name="orgurl" value="'.$fn.'" />');
         $r->print('<input type="hidden" name="selectrole" value="1" />');
+        $r->print('<input type="hidden" name="newrole" value="" />');
     }
     if ($env{'user.adv'}) {
 	$r->print(
@@ -662,7 +681,7 @@
     }
     unless ($nochoose) {
 	if ($env{'request.role'} ne 'cm') {
-	    $r->print('<td><input type=submit value="'.
+	    $r->print('<td><input type="submit" value="'.
 		      &mt('Select').'" name="cm"></td>');
 	} else {
 	    $r->print('<td>&nbsp;</td>');
@@ -773,6 +792,8 @@
                          : ' rowspan="2" ';
 
     unless ($nochoose) {
+        my $buttonname=$trolecode;
+        $buttonname=~s/\W//g;
         if (!$button) {
             if ($switchserver) {
                 $roletext.='<td'.$rowspan.'><a href="/adm/switchserver?'.
@@ -781,17 +802,19 @@
                 $roletext.=('<td>&nbsp;</td>');
             }
         } elsif ($tstatus eq 'is') {
-            $roletext.=('<td'.$rowspan.'><input type=submit value="'.
-                        &mt('Select').'" name="'.
-                        $trolecode.'"></td>');
+            $roletext.='<td'.$rowspan.'><input name="'.$buttonname.'" type="button" value="'.
+                        &mt('Select').'" onClick="javascript:enterrole(this.form,\''.
+                        $trolecode."','".$buttonname.'\');"></td>';
         } elsif ($tryagain) {
             $roletext.=
-                '<td'.$rowspan.'><input type=submit value="'.
-                &mt('Try Selecting Again').'" name="'.$trolecode.'"></td>';
+                '<td'.$rowspan.'><input name="'.$buttonname.'" type="button" value="'.
+                &mt('Try Selecting Again').'" onClick="javascript:enterrole(this.form,\''.
+                        $trolecode."','".$buttonname.'\');"></td>';
         } elsif ($advanced) {
             $roletext.=
-                '<td'.$rowspan.'><input type=submit value="'.
-                &mt('Re-Initialize').'" name="'.$trolecode.'"></td>';
+                '<td'.$rowspan.'><input name="'.$buttonname.'" type="button" value="'.
+                &mt('Re-Initialize').'" onClick="javascript:enterrole(this.form,\''.
+                        $trolecode."','".$buttonname.'\');"></td>';
         } else {
             $roletext.='<td'.$rowspan.'>&nbsp;</td>';
         }