--- loncom/interface/mydesk.tab	2010/06/06 11:56:12	1.136
+++ loncom/interface/mydesk.tab	2025/01/07 04:57:29	1.185
@@ -1,3 +1,4 @@
+# $Id: mydesk.tab,v 1.185 2025/01/07 04:57:29 raeburn Exp $
 # primary menu links
 # Apache::lonmenu::primary_menu() generates a menu from these elements
 # prim: item belongs to primary menu
@@ -7,26 +8,57 @@
 # text: link text
 # condition: when to show link, primary_menu will act upon this
 #   possible conditions:
-#   - empty: link is displayed if user is authenticated
-#   - public: display link if user is public or authenticated 
+#   - empty: link is displayed if user is authenticated (unless excluded by LTI)
+#   - public: display link if user is public or authenticated (unless excluded by LTI)
 #   - onlypublic: only show this link to public users
-#   - newmsg: only display if there are new messages 
-#   - nonewmsg: only display if there aren't any new messages
-#   - roles: show Roles instead of Courses
-#   - courses: show Courses instead of Roles
-# prim:link:icon:alt:text:condition
-prim:/adm/about.html:/adm/lonIcons/minilogo.gif:LON-CAPA Logo:About:public
-prim:/adm/menu:::Home:
-prim:/adm/communicate:::Messages:nonewmsg
-prim:/adm/communicate:::New Messages:newmsg
-prim:/adm/preferences:::Preferences:
-prim:/adm/portfolio:::Portfolio:
-prim:/adm/[domain]/[user]/_rss.html:::Feeds:
-prim:/adm/roles:::Roles:roles
-prim:/adm/roles:::Courses:courses
-prim:/adm/roles:::Log In:onlypublic
-prim::::Help:
-prim:/adm/logout:::Logout:
+#   - newmsg: only display if there are new messages (unless excluded by LTI)
+#   - nonewmsg: only display if there aren't any new messages (unless excluded by LTI)
+#   - roles: show Roles instead of Courses (unless LTI)
+#   - courses: show Courses instead of Roles (unless LTI)
+#   - notlti: not LTI launch
+#   - ltiexc: link shown unless LTI config excludes display
+# position: where link is to be displayed
+#   possible positions: 
+#   - empty (will be displayed on right side -- default location).
+#   - left
+# name: short name for item (used in visibility check for menu collection in effect)
+# prim:link:icon:alt:text:condition:position:name
+prim::::Personal::left:pers
+prim:/adm/about.html:/adm/lonIcons/minilogo.gif:LON-CAPA Logo:About:public::logo
+prim:/adm/menu:::Home:notlti::menu
+prim:/adm/communicate:::Messages:nonewmsg::comm
+prim:/adm/communicate:::New Messages:newmsg::comm
+prim:/adm/roles:::Roles:roles::roles
+prim:/adm/roles:::Courses:courses::roles
+prim:/adm/helpdesk:::Help:onlypublic:
+prim:/adm/roles:::Log In:onlypublic:
+prim::::Help:::help
+prim:/adm/logout:::Logout:ltiexc::logout
+
+# primary sub-menu links
+# Apache::lonmenu::primary_menu() generates a sub-menus from these elements
+# primsub: item belongs to primary sub-menu
+# parent: name of primary menu item, for which this is a sub-menu
+# link: references the url
+# text: link text
+# condition: when to show link, primary_menu() will act based on this
+#   possible conditions:
+#   - empty: link displayed if user is authenticated
+#   - portfolio: link displayed if portfolio access
+#   - blog: link displayed if blog access
+#   - wishlist: link displayed if user has privileges to use Stored Links
+#   - reqcrs: link displayed if user can request Course or Community creation
+#   - browsepub: link displayed if user can browse published resources
+# name: short name for item (used in visibility check for menu collection in effect)
+# primsub:parent:link:text:condition:name
+primsub:Personal:/adm/[domain]/[user]/aboutme:Information::about
+primsub:Personal:/adm/preferences:Preferences::prefs
+primsub:Personal:/adm/portfolio:Portfolio:portfolio:port
+primsub:Personal:/adm/wishlist:Stored Links:wishlist:wish
+primsub:Personal:/adm/announcements:Calendar::anno
+primsub:Personal:/adm/[domain]/[user]/_rss.html:Feeds:blog:rss
+primsub:Personal:/adm/searchcat:Search Library::srch
+primsub:Personal:/res/:Browse Library:browsepub:brse
 
 # secondary menu links
 # Apache::lonmenu::secondary_menu() generates a menu from these elements
@@ -38,28 +70,99 @@ prim:/adm/logout:::Logout:
 # condition: when to show link, secondary_menu will act upon this
 #   possible conditions:
 #   - empty: 
-#   - showreturn: link is displayed if return link is wanted
-#   - mdcCommunity: user can modify course contents and course is of type Community
-#   - mdcCourse: user can modify course contents and course is a regular course
 #   - showgroups: user is member of a group
+#   - showsyllabus: course context and user has mdc or cev priv, or syllabus exists
+#                   (and not included in course content).
+#   - showfeeds: course context and user has mdc or cev priv, or course feeds exist
+#   - showresv: course context and user cannot view or manage grades, and slots exist
 #   - always: show this link even if user hasn't selected a role
+#   - crseditCourse: user can modify content in a Course
+#   - crseditCommunity: user can modify content in a Community
+#   - crsedit: user can access Course/Community Editor (mdc or cev priv)
 #   - whn: access what's new
-#   - cst: Grant/revoke role of Student:Grant/revoke role of Member 
-#   - opa: Set assessment parameters
-#   - author: authors (au, ca, aa)
-# prim:link:icon:alt:text:condition
+#   - vgr: user can view grades
+#   - viewusers: user can grant/revoke student/member roles or can view classlists
+#   - params: Set and/or view assessment parameters
+#   - noviewusers: user can neither grant/revoke student roles nor view classlists
+#   - nvgr: cannot view other people's grades 
+#   - mgr: Manage grades
+#   - authorspace: (au, ca, aa)
+#   - author (au only)
+#   - coauthor (ca, aa only)
+#   - mca: Manage co-authors (author and possibly specific co-authors)
+#   - vca: List but not manage co-authors
+#   - lti: LTI launch -- LTI-specific rules apply
+#   - notlti: not LTI launch
+#   - notltimapres: not LTI launch for specific map or resource
+# name: short name for item (used in visibility check for menu collection in effect)
+# scnd:link:icon:alt:text:condition:name
+scnd::::Personal:lti
+scnd:/adm/navmaps?postdata=[url]&postsymb=[symb]:::Contents:notltimapres:cont
+scnd:/adm/coursedocs?command=contents:::Course Editor:crseditCourse
+scnd:/adm/coursedocs?command=contents:::Community Editor:crseditCommunity
 scnd:/adm/whatsnew:::What's New:whn
-scnd:/adm/navmaps?postdata=[url]&postsymb=[symb]:::Contents:
-scnd:/adm/createuser:::People:cst
-scnd:/adm/coursegroups:::Groups:showgroups
-scnd:/adm/coursedocs:::Course Editor:mdcCourse
-scnd:/adm/coursedocs:::Community Editor:mdcCommunity
-scnd:/adm/courseprefs:::Settings:opa
-scnd:/adm/roles:::Roles:
-scnd:/adm/flip?postdata=return%3a:::Return to Last Location:showreturn
-scnd:/priv/[uname]/:::Construction Space:author
-scnd:/res/[udom]/[uname]/?launch=1:::Browse:author
-
+scnd:/adm/quickgrades:::Grades:nvgr:grades
+scnd:[javascript]chat_win();:::Chat:plc:chat
+scnd::::Grades:vgr
+scnd::::People:viewusers
+scnd::::Settings:params
+scnd:/adm/viewclasslist:::People:noviewusers:people
+scnd:/adm/coursegroups:::Groups:showgroups:groups
+scnd:/adm/slotrequest?command=manageresv:::Reservations:showresv:resv
+scnd::::Public:crsedit
+scnd:/public/[cdom]/[cnum]/syllabus:::Syllabus:showsyllabus:syll
+scnd:/adm/[cdom]/[cnum]/_rss.html:::Feeds:showfeeds:feeds
+scnd:/adm/roles:::Roles:notlti:roles
+scnd:/adm/communicate:::Messages:lti
+scnd::::Help:lti
+scnd:/adm/logout:::Logout:lti
+scnd:/priv/[udom]/[uname]/:::Authoring Space:authorspace
+scnd:/res/[udom]/[uname]/?launch=1:::Browse:authorspace
+scnd:/adm/createuser:::People:mca
+scnd:/adm/viewcoauthors:::People:vca
+scnd::::Settings:author
+scnd:/adm/preferences?action=authorsettings[returnurl]:::Settings:coauthor
+scnd:[javascript]open_aboutLC();:/adm/lonIcons/minilogo.gif:LON-CAPA Logo:About:lti
+
+# secondary sub-menu links
+# Apache::lonmenu::secondary_menu() generates a sub-menus from these elements
+# scndsub: item belongs to secondary sub-menu
+# parent: name of secondary menu item, for which this is a sub-menu
+# link: references the url
+# text: link text
+# condition: when to show link, secondary_menu() will act based on this
+#   possible conditions:
+#   - author: link displayed if user is author
+#   - empty: link displayed if user is authenticated
+#   - crsedit: link displayed if user can access Course/Community Editor
+#   - vgr: link displayed if user can view grades
+#   - params: link displayed if user can set or view assessment parameters
+#   - mgr: link displayed if user can manage grades
+#   - viewusers: link displayed if user can either grant/revoke student/member roles or view classlists
+#   - vcg: link displayed if user can view groups to which he/she does not belong
+#   - lti: LTI launch -- LTI-specific rules apply
+#   - lti(portfolio,wishlist,blog): LTI launch -- LTI-specific rules apply in
+#     addition to access rule for tool itself (portfolio, wishlist or blog)
+# scndsub:parent:link:text:condition
+scndsub:Personal:/adm/[domain]/[user]/aboutme:Information:lti
+scndsub:Personal:/adm/preferences:Preferences:lti
+scndsub:Personal:/adm/portfolio:Portfolio:ltiportfolio
+scndsub:Personal:/adm/wishlist:Stored Links:ltiwishlist
+scndsub:Personal:/adm/announcements:Calendar:lti
+scndsub:Personal:/adm/[domain]/[user]/_rss.html:Feeds:ltiblog
+scndsub:Grades:/adm/statistics?reportSelected=student_assessment:Assessment Chart:vgr
+scndsub:Grades:/adm/statistics:Statistics and Reports:vgr
+scndsub:Grades:/adm/classcalc:Spreadsheet:vgr
+scndsub:Grades:/adm/grades:Content Grading:vgr
+scndsub:Settings:/adm/courseprefs:Course Settings:params
+scndsub:Settings:/adm/parmset:Content Settings:params
+scndsub:Settings:/adm/slotrequest?command=showslots:Slots:vgr
+scndsub:Settings:/adm/preferences?action=authorsettings[returnurl]:Editing Options:author
+scndsub:Settings:/adm/preferences?action=changedomcoord[returnurl]:Domain Access:author
+scndsub:People:/adm/createuser:Users:viewusers
+scndsub:People:/adm/coursegroups:Groups:vcg
+scndsub:Public:/public/[cdom]/[cnum]/syllabus:Syllabus:crsedit
+scndsub:Public:/adm/[cdom]/[cnum]/_rss.html:Feeds:crsedit
 
 # Categories for main menu
 # cat:column,row:title
@@ -88,7 +191,7 @@ cat:2,6:oth:Other
 # img-> img for the button
 # top-> txt for the top row of the remote
 # bot-> txt for the bottom row of the remote
-# act-> javascrtip to excute when clicked
+# act-> javascript to execute when clicked
 # txt-> text to display in the extended remote or inline remote
 # cat-> category that this belongs into (or "none" if in top menus)
 #
@@ -136,19 +239,22 @@ cat:2,6:oth:Other
 1:1:nsc:any:roles.png:switch[_2]:role[_1]:go('/adm/roles');:Switch to another user role:rol
 1:1:nsc:rcm:roles.png:choose[_2]:role[_2]:go('/adm/roles');:Choose the user role:rol
 1:2:clear
-1:2:course:any:subdocs.png:supplem-[_1]:entaldoc[_1]:go('/adm/coursedocs');:View supplemental course documents:crc
-1:2:community:any:docs.png:supplem-[_1]:entaldoc[_1]:go('/adm/coursedocs');:View supplemental community documents:cmc
-1:2:pmdc:$crs:docs.png:course[_7]:editor[_1]:go('/adm/coursedocs');:Edit course contents:crc
-1:2:pmdc:$cmty:docs.png:communi-[_1]:ty edit[_1]:go('/adm/coursedocs');:Edit community contents:cmc
+1:2:pcev:$crs:docs.png:course[_7]:editor[_1]:go('/adm/coursedocs?command=home');:Edit course contents:crc
+1:2:pcev:$cmty:docs.png:communi-[_1]:ty edit[_1]:go('/adm/coursedocs?command=home');:Edit community contents:cmc
+1:2:pmdc:$crs:docs.png:course[_7]:editor[_1]:go('/adm/coursedocs?command=home');:Edit course contents:crc
+1:2:pmdc:$cmty:docs.png:communi-[_1]:ty edit[_1]:go('/adm/coursedocs?command=home');:Edit community contents:cmc
 2:1:clear
 2:2:clear
 2:2:course:any:nav.png:course[_3]:contents[_1]:gopost('/adm/navmaps','');:Table of course contents:crc
 2:2:community:any:nav.png:commun[_1]:contents[_2]:gopost('/adm/navmaps','');:Table of community contents:cmc
 2:3:clear
 3:1:clear
+3:1:pmgr:$crs:sprs.png:course[_4]:grades[_2]:go('/adm/grades');:Grading:grd
+3:1:pmgr:$cmty:sprs.png:communi-[_2]:ty grade[_1]:go('/adm/grades');:Grading:grd
+3:3:clear
+3:3:course:any:grds.png:my[_1]:grades[_1]:go('/adm/quickgrades');:View current problem status and grading information:grd
+3:3:community:any:grds.png:my[_1]:grades[_1]:go('/adm/quickgrades');:View current problem status and grading information:grd
 4:1:clear
-4:1:course:any:grds.png:my[_1]:grades[_1]:go('/adm/quickgrades');:View current problem status and grading information:grd
-4:1:community:any:grds.png:my[_1]:grades[_1]:go('/adm/quickgrades');:View current problem status and grading information:grd
 4:1:pvgr:$crs:sprs.png:course[_4]:grades[_2]:go('/adm/classcalc');:View calculated grades (Spreadsheet):grd
 4:1:pvgr:$cmty:sprs.png:communi-[_2]:ty grade[_1]:go('/adm/classcalc');:View calculated grades (Spreadsheet):grd
 4:2:clear
@@ -161,30 +267,37 @@ cat:2,6:oth:Other
 5:1:any:any:ccat.png:course[_13]:catalog[_1]:go('/adm/coursecatalog');:Display catalog of courses and communities:oth
 5:2:courseenv_student_classlist_view:any:clst.png:course[_12]:roster[_1]:go('/adm/viewclasslist');:View course roster:umn
 5:2:communityenv_student_classlist_view:any:clst.png:communi-[_5]:ty list[_1]:go('/adm/viewclasslist');:View community membership:umn
+5:2:coauthor:rca:cprv.png:user[_1]:list[_1]:go('/adm/viewcoauthors');:List co-authors:umn
+5:2:coauthor:raa:cprv.png:user[_1]:list[_1]:go('/adm/viewcoauthors');:List co-authors:umn
+5:2:coauthorenv_manager:rca:cprv.png:user[_1]:privs[_1]:go('/adm/createuser');:Manage co-authors:umn
 5:2:pvcl:$crs:clst.png:course[_12]:roster[_1]:go('/adm/createuser?action=listusers');:View class lists:umn
 5:2:pvcl:$cmty:clst.png:course[_12]:roster[_1]:go('/adm/createuser?action=listusers');:View membership lists:umn
 5:2:pcst:$crs:cprv.png:user[_1]:privs[_1]:go('/adm/createuser');:Manage course users:umn
 5:2:pcst:$cmty:cprv.png:user[_1]:privs[_1]:go('/adm/createuser');:Manage community users:umn
 5:2:pcca:$requested_domain:cprv.png:user[_1]:privs[_1]:go('/adm/createuser');:Manage co-authors:umn
+5:2:pvac:$requested_domain:cprv.png:user[_1]:privs[_1]:go('/adm/createuser');:View information about users:umn
 5:2:pcdc:/:cprv.png:user[_1]:privs[_1]:go('/adm/createuser');:Create users or modify the roles and privileges of users:umn
 5:2:pmau:$requested_domain:cprv.png:user[_1]:privs[_1]:go('/adm/createuser');:Create users or modify the roles and privileges of users:umn
 5:3:clear
 5:3:pccc:$requested_domain:ccrs.png:course[_8]:creation[_1]:go('/adm/createcourse');:Course and community creation:ccm
+5:3:pdcc:$requested_domain:ccrs.png:course[_8]:creation[_1]:go('/adm/createcourse');:Course and community creation:ccm
+5:3:pvpa:$crs:parm.png:course[_9]:parms[_1]:go('/adm/parmset');:View parameter settings (due dates, etc) for resources and the course:cmn
 5:3:popa:$crs:parm.png:course[_9]:parms[_1]:go('/adm/parmset');:Modify parameter settings (due dates, etc) for resources and the course:cmn
 5:3:popa:$cmty:parm.png:communi-[_6]:ty parms[_1]:go('/adm/parmset');:Modify parameter settings (due dates, etc) for resources and the community:cmm
 6:1:clear
-6:1:author:rau:cstr.png:con-[_1]:struct[_1]:go('/priv/$uname/');:Enter my construction space:set
-6:1:author:rca:cstr.png:co con-[_1]:struct[_2]:go('/priv/$caname/');:Enter construction space as a co-author:set
-6:1:author:raa:cstr.png:co con-[_1]:struct[_2]:go('/priv/$caname/');:Enter construction space as an assistant co-author:set
+6:1:author:rau:cstr.png:author[_1]:space[_1]:go('/priv/$udom/$uname/');:Enter my Authoring Space:set
+6:1:author:rca:cstr.png:coauthor[_1]:space[_2]:go('/priv/$cadom/$caname/');:Enter Authoring Space as a co-author:set
+6:1:author:raa:cstr.png:coauthor[_1]:space[_2]:go('/priv/$cadom/$caname/');:Enter Authoring Space as an assistant co-author:set
 6:1:pmau:$requested_domain:conf.png:domain[_1]:config[_1]:go('/adm/domainprefs');:Set domain configuration:dom
 6:1:courseenv_canuse_pdfforms:any:pdfupload.png:upload[_1]:pdf form[_1]:go('/adm/pdfupload'):Upload a PDF Form with filled Form Fields:grd
 6:1:community_canuse_pdfforms:any:pdfupload.png:upload[_1]:pdf form[_1]:go('/adm/pdfupload'):Upload a PDF Form with filled Form Fields:grd
 6:2:clear
-6:2:pbro:/res/:res.png:resource[_1]:space[_1]:go('/res/?launch=1');:Browse own authored or co-authored resources:cnt
-6:2:pbre:$requested_domain:res.png:resource[_1]:space[_1]:go('/res/$udom/?launch=1');:Browse published resources:cnt
-6:2:author:rau:res.png:resource[_1]:space[_1]:go('/res/$udom/$uname/?launch=1');:Browse published resources:cnt
-6:2:author:rca:res.png:co res[_1]:space[_2]:go('/res/$udom/$uname/?launch=1');:Browse published resources:cnt
+6:2:pbro:/res/:res.png:resource[_1]:space[_3]:go('/res/?launch=1');:Browse own authored or co-authored resources:cnt
+6:2:pbre:$requested_domain:res.png:resource[_1]:space[_3]:go('/res/$udom/?launch=1');:Browse published resources:cnt
+6:2:author:rau:res.png:resource[_1]:space[_3]:go('/res/$udom/$uname/?launch=1');:Browse published resources:cnt
+6:2:author:rca:res.png:co res[_1]:space[_4]:go('/res/$udom/$uname/?launch=1');:Browse published resources:cnt
 6:3:clear
+6:3:prar:$requested_domain:mcrs.png:view[_2]:course[_17]:go('/adm/modifycourse');:View a course or community:ccm
 6:3:pccc:$requested_domain:mcrs.png:modify[_1]:course[_15]:go('/adm/modifycourse');:View or modify a course or community:ccm
 7:1:clear
 7:1:pmau:$requested_domain:srvr.png:server[_1]:status[_1]:go('/adm/domainstatus');:Status of domain servers:dom
@@ -198,14 +311,14 @@ cat:2,6:oth:Other
 8:1:clear
 8:1:tools:reqcrsshc:rcrs.png:request[_1]:course[_16]:go('/adm/requestcourse');:Course/Community requests:rcr
 8:1:tools:reqcrsnsc:rcrs.png:request[_1]:course[_16]:go('/adm/requestcourse');:Course/Community requests:rol
-9:2:any:any:vbkm.png:view[_1]:bookmark[_1]:edit_bookmarks():Use or edit my bookmark collection:set
+9:3:adv:any:wishlist.png:view[_1]:linkstor[_1]:go('/adm/wishlist'):Stored Links:set
 10:1:clear
 10:1:any:any:anno.png:calendar[_1]:announce[_1]:go('/adm/announcements');:Announcements and my calendar:com
-10:1:course:any:anno.png:calendar[_1]:announce[_1]:go('/adm/announcements');:Course anouncements and my calendar:com
+10:1:course:any:anno.png:calendar[_1]:announce[_1]:go('/adm/announcements');:Course announcements and my calendar:com
 10:1:community:any:anno.png:calendar[_1]:announce[_1]:go('/adm/announcements');:Community announcements and my calendar:com
 10:2:any:any:com.png:commu-[_1]:nication[_1]:go('/adm/communicate');:Send and display messages:com
 10:3:clear
-10:3:ppsa:$requested_domain:mail-reply-all.png:bulk[_1]:e-mail[_1]:go('/adm/notify');:Send and display broadcast e-mail:com
+10:3:ppsa:$requested_domain:mail.png:bulk[_1]:e-mail[_1]:go('/adm/notify');:Send and display broadcast e-mail:com
 10:3:course_plc:any:bchat.png:course[_10]:chatroom[_1]:chat_win();:Enter the chat room for the course:com
 10:3:community_plc:any:bchat.png:communi-[_7]:ty chat[_1]:chat_win();:Enter the chat room for the community:com
 11:1:clear
@@ -219,8 +332,6 @@ cat:2,6:oth:Other
 11:3:tools:blog:blog.png:edit[_1]:blogs[_1]:go('/adm/$udom/$uname/_rss.html');:Edit blogs, RSS feeds, and podcasts:set
 12:1:clear
 12:1:any:any:src.png:search[_3]:prtfolio[_1]:go('/adm/searchcat');:Search the database of accessible portfolio files:cnt
-12:1:course:any:src.png:search[_1]:course[_11]:go('/adm/searchcat');:Search the contents of this course or accessible portfolio files:cnt
-12:1:community:any:src.png:search[_2]:commun[_1]:go('/adm/searchcat');:Search the contents of this community or accessible portfolio files:cnt
 12:1:pbre:$requested_domain:src.png:search[_2]:library[_1]:go('/adm/searchcat');:Search the database of published resources and accessible portfolio files:cnt
 12:2:any:any:pref.png:prefer-[_1]:ences[_1]:go('/adm/preferences');:Set my user preferences:set
 12:3:clear