[LON-CAPA-cvs] cvs: loncom /interface loncommon.pm lonmainmenu.pm lonmenu.pm mydesk.tab

www lon-capa-cvs-allow@mail.lon-capa.org
Wed, 11 Apr 2007 02:42:03 -0000


This is a MIME encoded message

--www1176259323
Content-Type: text/plain

www		Tue Apr 10 22:42:03 2007 EDT

  Modified files:              
    /loncom/interface	loncommon.pm lonmainmenu.pm lonmenu.pm mydesk.tab 
  Log:
  Categories on the Main Menu Screen
  - we can sort these into better categories later
  - eventually, mydesk.tab should become mydesk.xml
  
  
--www1176259323
Content-Type: text/plain
Content-Disposition: attachment; filename="www-20070410224203.txt"

Index: loncom/interface/loncommon.pm
diff -u loncom/interface/loncommon.pm:1.520 loncom/interface/loncommon.pm:1.521
--- loncom/interface/loncommon.pm:1.520	Tue Apr 10 16:05:21 2007
+++ loncom/interface/loncommon.pm	Tue Apr 10 22:42:00 2007
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # a pile of common routines
 #
-# $Id: loncommon.pm,v 1.520 2007/04/10 20:05:21 raeburn Exp $
+# $Id: loncommon.pm,v 1.521 2007/04/11 02:42:00 www Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -3849,6 +3849,13 @@
   font-size: smaller;
 }
 
+.LC_menu_category {
+  color: $font;
+  font-family: $sans;
+  font-size: larger;
+  font-weight: bold;
+}
+
 td.LC_menubuttons_text {
   color: $font;
   font-family: $sans;
Index: loncom/interface/lonmainmenu.pm
diff -u loncom/interface/lonmainmenu.pm:1.4 loncom/interface/lonmainmenu.pm:1.5
--- loncom/interface/lonmainmenu.pm:1.4	Fri Apr 21 18:00:56 2006
+++ loncom/interface/lonmainmenu.pm	Tue Apr 10 22:42:00 2007
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # displays the main menu
 #
-# $Id: lonmainmenu.pm,v 1.4 2006/04/21 22:00:56 albertel Exp $
+# $Id: lonmainmenu.pm,v 1.5 2007/04/11 02:42:00 www Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -72,7 +72,7 @@
 	$env{'environment.remote'}='off';
     }
     $r->print(&Apache::loncommon::start_page('Main Menu',$script_tag));
-    $r->print('<table id="LC_menubuttons_mainmenu">'.&Apache::lonmenu::inlinemenu().'</table>'.$form);
+    $r->print(&Apache::lonmenu::inlinemenu().$form);
     $r->print(&Apache::loncommon::end_page());
     return OK;
 }
Index: loncom/interface/lonmenu.pm
diff -u loncom/interface/lonmenu.pm:1.208 loncom/interface/lonmenu.pm:1.209
--- loncom/interface/lonmenu.pm:1.208	Thu Mar  8 20:29:54 2007
+++ loncom/interface/lonmenu.pm	Tue Apr 10 22:42:00 2007
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # Routines to control the menu
 #
-# $Id: lonmenu.pm,v 1.208 2007/03/09 01:29:54 albertel Exp $
+# $Id: lonmenu.pm,v 1.209 2007/04/11 02:42:00 www Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -46,7 +46,7 @@
 use Apache::lonlocal;
 use LONCAPA qw(:DEFAULT :match);
 
-use vars qw(@desklines $readdesk);
+use vars qw(@desklines %category_names %category_members %category_positions $readdesk);
 
 
 my @inlineremote;
@@ -477,14 +477,14 @@
 		 $env{'request.symb'} ne '' ) {
 	    $menuitems=(<<ENDMENUITEMS);
 c&3&1
-s&2&1&back.gif&backward[_1]&&gopost('/adm/flip','back:'+currentURL)&Go to the previous resource in the course sequence&1
-s&2&3&forw.gif&forward[_1]&&gopost('/adm/flip','forward:'+currentURL)&Go to the next resource in the course sequence&3
+s&2&1&back.gif&backward[_1]&&gopost('/adm/flip','back:'+currentURL)&Go to the previous resource in the course sequence&&1
+s&2&3&forw.gif&forward[_1]&&gopost('/adm/flip','forward:'+currentURL)&Go to the next resource in the course sequence&&3
 c&6&3
 c&8&1
 c&8&2
 s&8&3&prt.gif&prepare[_1]&printout[_1]&gopost('/adm/printout',currentURL)&Prepare a printable document
-s&9&1&sbkm.gif&set[_1]&bookmark[_2]&set_bookmark()&Set a bookmark for this resource&1
-s&9&3&anot.gif&anno-[_1]&tations[_1]&annotate()&Make notes and annotations about this resource&1
+s&9&1&sbkm.gif&set[_1]&bookmark[_2]&set_bookmark()&Set a bookmark for this resource&&1
+s&9&3&anot.gif&anno-[_1]&tations[_1]&annotate()&Make notes and annotations about this resource&&1
 ENDMENUITEMS
             unless ($env{'request.noversionuri'}=~/\/(bulletinboard|smppg|navmaps|syllabus|aboutme)(\?|$)/) {
 	        $menuitems.=(<<ENDREALRES);
@@ -812,7 +812,7 @@
 # The javascript is usually similar to "go('/adm/roles')" or "cstrgo(..)".
 
 sub switch {
-    my ($uname,$udom,$row,$col,$img,$top,$bot,$act,$desc,$nobreak)=@_;
+    my ($uname,$udom,$row,$col,$img,$top,$bot,$act,$desc,$cat,$nobreak)=@_;
     $act=~s/\$uname/$uname/g;
     $act=~s/\$udom/$udom/g;
     $top=&mt($top);
@@ -820,6 +820,9 @@
     $desc=&mt($desc);
     $img=&mt($img);
 
+    my $idx=10*$row+$col;
+    $category_members{$cat}.=':'.$idx;
+
     unless (($env{'browser.interface'} eq 'textual')  ||
             ($env{'environment.remote'} eq 'off')) {
 # Remote
@@ -831,10 +834,10 @@
        my $text=$top.' '.$bot;
        $text=~s/\s*\-\s*//gs;
        if ($nobreak) {
-	   $inlineremote[10*$row+$col]=
+	   $inlineremote[$idx]=
 	       '<a href="javascript:'.$act.';">'.$text.'</a>';
        } else {
-	   $inlineremote[10*$row+$col]="\n<br />".
+	   $inlineremote[$idx]="\n<br />".
 	       $desc.' <a href="javascript:'.$act.';">'.$text.'</a>';
        }
    } else {
@@ -852,17 +855,17 @@
        if ($env{'browser.interface'} eq 'faketextual') {
 # Accessibility
 	   if ($nobreak==3) {
-	       $inlineremote[10*$row+$col]="\n".
+	       $inlineremote[$idx]="\n".
 		   '<td class="LC_menubuttons_text" align="right">'.$text.
 		   '</td><td class="LC_menubuttons_img" align="left">'.
 		   '<a href="javascript:'.$act.';">'.$pic.'</a></td></tr>';
 	   } elsif ($nobreak) {
-	       $inlineremote[10*$row+$col]="\n<tr>".
+	       $inlineremote[$idx]="\n<tr>".
 		   '<td class="LC_menubuttons_img" align="left">'.
 		   '<a href="javascript:'.$act.';">'.$pic.'</a></td>
                     <td class="LC_menubuttons_text" align="left">'.$text.'</td>';
 	   } else {
-	       $inlineremote[10*$row+$col]="\n<tr>".
+	       $inlineremote[$idx]="\n<tr>".
 		   '<td class="LC_menubuttons_img" align="left">'.
 		   '<a href="javascript:'.$act.';">'.$pic.
 		   '</a></td><td class="LC_menubuttons_text" colspan="3">'.
@@ -870,7 +873,7 @@
 	   }
        } else {
 # Inline Menu
-	   $inlineremote[10*$row+$col]=
+	   $inlineremote[$idx]=
 		   '<a href="javascript:'.$act.';">'.$pic.
 		   '</a><span class="LC_menubuttons_inline_text">'.$desc.'</span>';
        }
@@ -881,12 +884,12 @@
 sub secondlevel {
     my $output='';
     my 
-    ($uname,$udom,$rol,$crs,$pub,$con,$row,$col,$prt,$img,$top,$bot,$act,$desc)=@_;
+    ($uname,$udom,$rol,$crs,$pub,$con,$row,$col,$prt,$img,$top,$bot,$act,$desc,$cat)=@_;
     if ($prt eq 'any') {
-	   $output.=switch($uname,$udom,$row,$col,$img,$top,$bot,$act,$desc);
+	   $output.=&switch($uname,$udom,$row,$col,$img,$top,$bot,$act,$desc,$cat);
     } elsif ($prt=~/^r(\w+)/) {
         if ($rol eq $1) {
-           $output.=switch($uname,$udom,$row,$col,$img,$top,$bot,$act,$desc);
+           $output.=&switch($uname,$udom,$row,$col,$img,$top,$bot,$act,$desc,$cat);
         }
     }
     return $output;
@@ -903,8 +906,32 @@
 sub inlinemenu {
     @inlineremote=();
     undef @inlineremote;
+    %category_members=();
+    undef %category_members;
     &rawconfig(1);
-    return join('',map { (defined($_)?$_:'') } @inlineremote);
+    my $output='<table><tr>';
+    for (my $col=1; $col<=2; $col++) {
+        $output.='<td>';
+        for (my $row=1; $row<=8; $row++) {
+            foreach my $cat (keys(%category_members)) {
+               if ($category_positions{$cat} ne "$col,$row") { next; }
+               $output.='<table id="LC_menubuttons_mainmenu"><tr><td colspan="4" class="LC_menu_category">'.&mt($category_names{$cat}).'</td></tr>';
+               my %active=();
+               foreach my $menu_item (split(/\:/,$category_members{$cat})) {
+                  if ($inlineremote[$menu_item]) {
+                     $active{$menu_item}=1;
+                  }
+               }  
+               foreach my $item (sort(keys(%active))) {
+                  $output.=$inlineremote[$item];
+               }
+               $output.='</table>';
+            }
+         }
+         $output.="</td>";
+    }
+    $output.="</tr></table>";
+    return $output;
 }
 
 sub rawconfig {
@@ -935,7 +962,7 @@
     my $rol=$env{'request.role'};
     my $requested_domain = $env{'request.role.domain'};
     foreach my $line (@desklines) {
-        my ($row,$col,$pro,$prt,$img,$top,$bot,$act,$desc)=split(/\:/,$line);
+        my ($row,$col,$pro,$prt,$img,$top,$bot,$act,$desc,$cat)=split(/\:/,$line);
         $prt=~s/\$uname/$uname/g;
         $prt=~s/\$udom/$udom/g;
         $prt=~s/\$crs/$crs/g; 
@@ -948,29 +975,29 @@
 	    $output.=&clear($row,$col);
         } elsif ($pro eq 'any') {
                $output.=&secondlevel(
-	  $uname,$udom,$rol,$crs,$pub,$con,$row,$col,$prt,$img,$top,$bot,$act,$desc);
+	  $uname,$udom,$rol,$crs,$pub,$con,$row,$col,$prt,$img,$top,$bot,$act,$desc,$cat);
 	} elsif ($pro eq 'smp') {
             unless ($adv) {
                $output.=&secondlevel(
-          $uname,$udom,$rol,$crs,$pub,$con,$row,$col,$prt,$img,$top,$bot,$act,$desc);
+          $uname,$udom,$rol,$crs,$pub,$con,$row,$col,$prt,$img,$top,$bot,$act,$desc,$cat);
             }
         } elsif ($pro eq 'adv') {
             if ($adv) {
                $output.=&secondlevel(
-	  $uname,$udom,$rol,$crs,$pub,$con,$row,$col,$prt,$img,$top,$bot,$act,$desc);
+	  $uname,$udom,$rol,$crs,$pub,$con,$row,$col,$prt,$img,$top,$bot,$act,$desc,$cat);
             }
         } elsif (($pro=~/^p(\w+)/) && ($prt)) {
 	    if (&Apache::lonnet::allowed($1,$prt)) {
-               $output.=switch($uname,$udom,$row,$col,$img,$top,$bot,$act,$desc);
+               $output.=&switch($uname,$udom,$row,$col,$img,$top,$bot,$act,$desc,$cat);
             }
         } elsif ($pro eq 'course') {
             if ($env{'request.course.fn'}) {
-               $output.=switch($uname,$udom,$row,$col,$img,$top,$bot,$act,$desc);
+               $output.=&switch($uname,$udom,$row,$col,$img,$top,$bot,$act,$desc,$cat);
 	    }
         } elsif ($pro =~ /^courseenv_(.*)$/) {
             my $key = $1;
             if ($env{'course.'.$env{'request.course.id'}.'.'.$key}) {
-                $output.=switch($uname,$udom,$row,$col,$img,$top,$bot,$act,$desc);
+                $output.=&switch($uname,$udom,$row,$col,$img,$top,$bot,$act,$desc,$cat);
             }
         } elsif ($pro =~ /^course_(.*)$/) {
             # Check for permissions inside of a course
@@ -978,7 +1005,7 @@
                 (&Apache::lonnet::allowed($1,$env{'request.course.id'}.
             ($env{'request.course.sec'}?'/'.$env{'request.course.sec'}:''))
                  )) {
-                $output.=switch($uname,$udom,$row,$col,$img,$top,$bot,$act,$desc);
+                $output.=&switch($uname,$udom,$row,$col,$img,$top,$bot,$act,$desc,$cat);
 	    }
         } elsif ($pro eq 'author') {
             if ($author) {
@@ -997,8 +1024,8 @@
 		    my @ids=&Apache::lonnet::current_machine_ids();
 		    foreach my $id (@ids) { if ($id eq $home) { $allowed=1; } }
 		    if ($allowed) {
-                        $output.=switch($caname,$cadom,
-                                        $row,$col,$img,$top,$bot,$act,$desc);
+                        $output.=&switch($caname,$cadom,
+                                        $row,$col,$img,$top,$bot,$act,$desc,$cat);
                     }
                 }
             }
@@ -1300,7 +1327,11 @@
 		    $configline=(split(/\#/,$configline))[0];
 		    $configline=~s/^\s+//;
 		    chomp($configline);
-		    if ($configline) {
+                    if ($configline=~/^cat\:/) {
+                       my @entries=split(/\:/,$configline);
+                       $category_positions{$entries[2]}=$entries[1];
+                       $category_names{$entries[2]}=$entries[3];
+		    } elsif ($configline) {
 			push(@desklines,$configline);
 		    }
 		}
Index: loncom/interface/mydesk.tab
diff -u loncom/interface/mydesk.tab:1.79 loncom/interface/mydesk.tab:1.80
--- loncom/interface/mydesk.tab:1.79	Tue Apr 10 16:01:18 2007
+++ loncom/interface/mydesk.tab	Tue Apr 10 22:42:00 2007
@@ -1,5 +1,18 @@
+# Categories
+# cat:column:row:title
+cat:1,2:com:Communication
+cat:1,3:set:Settings
+cat:2,1:umn:User Management
+cat:2,2:cmn:Course Management
+cat:2,2:dmn:Domain Management
+cat:2,3:grd:Grading and Statistics
+cat:2,4:crc:Course Content
+cat:1,1:rol:My Roles
+cat:1,1:rcr:My Courses
+cat:2,5:oth:Other
+
 # 
-# row:col:pro:prt:img:top:bot:act:txt
+# row:col:pro:prt:img:top:bot:act:txt:cat
 # row-> row of remote to appear on
 # col-> col of remote to appear on
 # pro-> when to show the button
@@ -9,6 +22,7 @@
 # bot-> txt for the bottom row of the remote
 # act-> javascrtip to excute when clicked
 # txt-> text to display in the extended remote or inline remote
+# cat-> category that this belongs into
 #
 # pro = clear    clear the button
 # pro = any      any permission level is allowed this button
@@ -22,69 +36,69 @@
 # courseenv_????   allowed if in course and course environment key exists
 # author         allowed if an author
 #
-1:1:smp:any:courses.gif:choose[_1]:course[_1]:go('/adm/roles');:Choose the course to work on
-1:1:smp:rst:courses.gif:switch[_1]:course[_2]:go('/adm/roles');:Switch to another course
-1:1:adv:any:roles.gif:switch[_2]:role[_1]:go('/adm/roles');:Switch to another user role
-1:1:adv:rcm:roles.gif:choose[_2]:role[_2]:go('/adm/roles');:Choose the user role
+1:1:smp:any:courses.gif:choose[_1]:course[_1]:go('/adm/roles');:Choose the course to work on:rcr
+1:1:smp:rst:courses.gif:switch[_1]:course[_2]:go('/adm/roles');:Switch to another course:rcr
+1:1:adv:any:roles.gif:switch[_2]:role[_1]:go('/adm/roles');:Switch to another user role:rol
+1:1:adv:rcm:roles.gif:choose[_2]:role[_2]:go('/adm/roles');:Choose the user role:rol
 1:2:clear
-1:2:course:any:docs.gif:course[_3]:docs[_1]:go('/adm/coursedocs');:View documents included in this course
-1:2:pmdc:$crs:docs.gif:edit crs[_1]:docs[_2]:go('/adm/coursedocs');:Edit and view documents included in this course
+1:2:course:any:docs.gif:course[_3]:docs[_1]:go('/adm/coursedocs');:View documents included in this course:crc
+1:2:pmdc:$crs:docs.gif:edit crs[_1]:docs[_2]:go('/adm/coursedocs');:Edit and view documents included in this course:crc
 2:1:clear
 2:2:clear
-2:2:course:any:nav.gif:navigate[_1]:contents[_1]:gonav('/adm/navmaps');:Navigate the table of contents for this course
+2:2:course:any:nav.gif:navigate[_1]:contents[_1]:gonav('/adm/navmaps');:Navigate the table of contents for this course:crc
 2:3:clear
 3:1:clear
 4:1:clear
-4:1:course:any:grds.gif:my[_1]:grades[_1]:go('/adm/quickgrades');:View current problem status and grading information
-4:1:pvgr:$crs:sprs.gif:course[_4]:grades[_2]:go('/adm/classcalc');:View calculated grades (Spreadsheet)
+4:1:course:any:grds.gif:my[_1]:grades[_1]:go('/adm/quickgrades');:View current problem status and grading information:grd
+4:1:pvgr:$crs:sprs.gif:course[_4]:grades[_2]:go('/adm/classcalc');:View calculated grades (Spreadsheet):grd
 4:2:clear
-4:2:pvgr:$crs:chrt.gif:course[_5]:chart[_1]:gopost('/adm/statistics?reportSelected=student_assessment','Student Assessment');:View the course assessment progress chart
+4:2:pvgr:$crs:chrt.gif:course[_5]:chart[_1]:gopost('/adm/statistics?reportSelected=student_assessment','Student Assessment');:View the course assessment progress chart:grd
 4:3:clear
-4:3:pvgr:$crs:stat.gif:course[_6]:stats[_1]:gopost('/adm/statistics','Problem Statistics');:View course assessment statistics
+4:3:pvgr:$crs:stat.gif:course[_6]:stats[_1]:gopost('/adm/statistics','Problem Statistics');:View course assessment statistics:grd
 5:1:clear
-5:1:courseenv_student_classlist_view:any:clst.gif:course[_12]:roster[_1]:go('/adm/viewclasslist');:View course roster
-5:1:pcst:$crs:enrl.gif:course[_7]:enroll[_1]:go('/adm/dropadd');:Manage student enrollment 
+5:1:courseenv_student_classlist_view:any:clst.gif:course[_12]:roster[_1]:go('/adm/viewclasslist');:View course roster:umn
+5:1:pcst:$crs:enrl.gif:course[_7]:enroll[_1]:go('/adm/dropadd');:Manage student enrollment:umn
 #and groups in this course
 5:1:pmky:$requested_domain:keys.gif:manage[_1]:acc keys[_1]:go('/adm/managekeys');:Manage Access Keys
 5:2:clear
-5:2:pcst:$crs:cprv.gif:user[_1]:roles[_1]:go('/adm/createuser');:Create a user or modify the roles and privileges of a user
-5:2:pcca:$requested_domain:cprv.gif:user[_1]:roles[_1]:go('/adm/createuser');:Create a user or modify the roles and privileges of a user
-5:2:pcdc:/:cprv.gif:user[_1]:roles[_1]:go('/adm/createuser');:Create a user or modify the roles and privileges of a user
-5:2:pmau:$requested_domain:cprv.gif:user[_1]:roles[_1]:go('/adm/createuser');:Create a user or modify the roles and privileges of a user
+5:2:pcst:$crs:cprv.gif:user[_1]:roles[_1]:go('/adm/createuser');:Create a user or modify the roles and privileges of a user:umn
+5:2:pcca:$requested_domain:cprv.gif:user[_1]:roles[_1]:go('/adm/createuser');:Create a user or modify the roles and privileges of a user:umn
+5:2:pcdc:/:cprv.gif:user[_1]:roles[_1]:go('/adm/createuser');:Create a user or modify the roles and privileges of a user:umn
+5:2:pmau:$requested_domain:cprv.gif:user[_1]:roles[_1]:go('/adm/createuser');:Create a user or modify the roles and privileges of a user:umn
 5:3:clear
-5:3:pccc:$requested_domain:ccrs.gif:create[_1]:course[_8]:go('/adm/createcourse');:Create a new course
-5:3:popa:$crs:parm.gif:course[_9]:parms[_1]:go('/adm/parmset');:Modify parameter settings for resources and the course
+5:3:pccc:$requested_domain:ccrs.gif:create[_1]:course[_8]:go('/adm/createcourse');:Create a new course:dmn
+5:3:popa:$crs:parm.gif:course[_9]:parms[_1]:go('/adm/parmset');:Modify parameter settings (due dates, etc) for resources and the course:cmn
 6:1:clear
-6:1:author:rau:cstr.gif:con-[_1]:struct[_1]:go('/priv/$uname/');:Enter my resource construction space
-6:1:author:rca:cstr.gif:co con-[_1]:struct[_2]:go('/priv/$caname/');:Enter construction space as a co-author
-6:1:pmau:$requested_domain:conf.gif:domain[_1]:config[_1]:go('/adm/domainprefs');:Set domain configuration 
+6:1:author:rau:cstr.gif:con-[_1]:struct[_1]:go('/priv/$uname/');:Enter my resource construction space:rol
+6:1:author:rca:cstr.gif:co con-[_1]:struct[_2]:go('/priv/$caname/');:Enter construction space as a co-author:rol
+6:1:pmau:$requested_domain:conf.gif:domain[_1]:config[_1]:go('/adm/domainprefs');:Set domain configuration:dom
 6:2:clear
-6:2:pbre:$requested_domain:res.gif:resource[_1]:space[_1]:go('/res/$udom/?launch=1');:Browse published resources
-6:2:author:rau:res.gif:resource[_1]:space[_1]:go('/res/$udom/$uname/?launch=1');:Browse published resources
-6:2:author:rca:res.gif:co res[_1]:space[_2]:go('/res/$udom/$uname/?launch=1');:Browse published resources
+6:2:pbre:$requested_domain:res.gif:resource[_1]:space[_1]:go('/res/$udom/?launch=1');:Browse published resources:oth
+6:2:author:rau:res.gif:resource[_1]:space[_1]:go('/res/$udom/$uname/?launch=1');:Browse published resources:oth
+6:2:author:rca:res.gif:co res[_1]:space[_2]:go('/res/$udom/$uname/?launch=1');:Browse published resources:oth
 6:3:clear
-6:3:pccc:$requested_domain:mcrs.gif:modify:course:go('/adm/modifycourse');:Modify course settings
+6:3:pccc:$requested_domain:mcrs.gif:modify:course:go('/adm/modifycourse');:Modify course settings:cmn
 7:1:clear
-7:1:pwhn:$crs:new.gif:what is[_1]:new[_1]:go('/adm/whatsnew');:What's new?
+7:1:pwhn:$crs:new.gif:what is[_1]:new[_1]:go('/adm/whatsnew');:What's new?:cmn
 7:2:clear
-7:2:adv:rcm:egrd.gif:enter[_1]:grades[_2]:go('/adm/grades');:Enter grades from check-out assessment resources
-7:2:pusc:$requested_domain:sctr.gif:send[_1]:scantron[_1]:gocmd('/adm/grades','scantronupload');:Send Scantron data to a course
-9:2:any:any:vbkm.gif:view[_1]:bookmark[_1]:edit_bookmarks():Use or edit my bookmark collection
+7:2:adv:rcm:egrd.gif:enter[_1]:grades[_2]:go('/adm/grades');:Enter grades from check-out assessment resources:oth
+7:2:pusc:$requested_domain:sctr.gif:send[_1]:scantron[_1]:gocmd('/adm/grades','scantronupload');:Send Scantron data to a course:oth
+9:2:any:any:vbkm.gif:view[_1]:bookmark[_1]:edit_bookmarks():Use or edit my bookmark collection:set
 10:1:clear
-10:1:any:any:anno.gif:calendar[_1]:announce[_1]:go('/adm/announcements');:Course announcements and my calendar
-10:2:any:any:com.gif:commu-[_1]:nication[_1]:go('/adm/communicate');:Send and receive messages
+10:1:any:any:anno.gif:calendar[_1]:announce[_1]:go('/adm/announcements');:Course announcements and my calendar:com
+10:2:any:any:com.gif:commu-[_1]:nication[_1]:go('/adm/communicate');:Send and receive messages:com
 10:3:clear
-10:3:ppsa:$requested_domain:mail.gif:bulk[_1]:e-mail[_1]:go('/adm/notify');:Send and display broadcast e-mail
-10:3:course_plc:any:bchat.gif:course[_10]:chat[_1]:chat_win();:Enter the chatroom for the course
+10:3:ppsa:$requested_domain:mail.gif:bulk[_1]:e-mail[_1]:go('/adm/notify');:Send and display broadcast e-mail:com
+10:3:course_plc:any:bchat.gif:course[_10]:chat[_1]:chat_win();:Enter the chatroom for the course:com
 11:1:clear
-11:1:course:any:grps.gif:course[_12]:groups[_1]:go('/adm/coursegroups');:Enter my groups in the course
-11:1:course_vcg:any:grps.gif:course[_12]:groups[_1]:go('/adm/coursegroups');:Enter any group in the course
-11:1:course_mdg:any:grps.gif:course[_12]:groups[_1]:go('/adm/coursegroups');:Edit any group in the course
-11:2:any:any:port.gif:port-[_1]:folio[_1]:go('/adm/portfolio');:Enter my portfolio space
-11:3:any:any:blog.gif:edit[_1]:blogs[_1]:go('/adm/$udom/$uname/_rss.html');:Edit blogs, RSS feeds, and podcasts
+11:1:course:any:grps.gif:course[_12]:groups[_1]:go('/adm/coursegroups');:Enter my groups in the course:rcr
+11:1:course_vcg:any:grps.gif:course[_12]:groups[_1]:go('/adm/coursegroups');:Enter any group in the course:rcr
+11:1:course_mdg:any:grps.gif:course[_12]:groups[_1]:go('/adm/coursegroups');:Edit any group in the course:rcr
+11:2:any:any:port.gif:port-[_1]:folio[_1]:go('/adm/portfolio');:Enter my portfolio space:com
+11:3:any:any:blog.gif:edit[_1]:blogs[_1]:go('/adm/$udom/$uname/_rss.html');:Edit blogs, RSS feeds, and podcasts:com
 12:1:clear
-12:1:any:any:src.gif:search[_3]:prtfolio[_1]:go('/adm/searchcat');:Search the database of accessible portfolio files
-12:1:course:any:src.gif:search[_1]:course[_11]:go('/adm/searchcat');:Search the contents of this course or accessible portfolio files
-12:1:pbre:$requested_domain:src.gif:search[_2]:library[_1]:go('/adm/searchcat');:Search the database of published resources and accessible portfolio files
-12:2:any:any:pref.gif:prefer-[_1]:ences[_1]:go('/adm/preferences');:Set my user preferences
-12:3:any:any:logout.gif:exit[_1]: [_1]:go('/adm/logout');:Exit LON-CAPA
+12:1:any:any:src.gif:search[_3]:prtfolio[_1]:go('/adm/searchcat');:Search the database of accessible portfolio files:com
+12:1:course:any:src.gif:search[_1]:course[_11]:go('/adm/searchcat');:Search the contents of this course or accessible portfolio files:com
+12:1:pbre:$requested_domain:src.gif:search[_2]:library[_1]:go('/adm/searchcat');:Search the database of published resources and accessible portfolio files:com
+12:2:any:any:pref.gif:prefer-[_1]:ences[_1]:go('/adm/preferences');:Set my user preferences:set
+12:3:any:any:logout.gif:exit[_1]: [_1]:go('/adm/logout');:Exit LON-CAPA:oth

--www1176259323--