[LON-CAPA-cvs] cvs: loncom /interface lonnavmaps.pm

raeburn raeburn at source.lon-capa.org
Thu Jun 23 15:31:39 EDT 2022


raeburn		Thu Jun 23 19:31:39 2022 EDT

  Modified files:              
    /loncom/interface	lonnavmaps.pm 
  Log:
  - Bug 6907
    - Show the sub-folder instead of "This is course is empty" in student
      sessions launched via deep-link, when deeplink parm hides other resources. 
  
  
Index: loncom/interface/lonnavmaps.pm
diff -u loncom/interface/lonnavmaps.pm:1.558 loncom/interface/lonnavmaps.pm:1.559
--- loncom/interface/lonnavmaps.pm:1.558	Sat Jun 11 14:51:49 2022
+++ loncom/interface/lonnavmaps.pm	Thu Jun 23 19:31:39 2022
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # Navigate Maps Handler
 #
-# $Id: lonnavmaps.pm,v 1.558 2022/06/11 14:51:49 raeburn Exp $
+# $Id: lonnavmaps.pm,v 1.559 2022/06/23 19:31:39 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -1423,6 +1423,37 @@
     my $condition = 0;
     if ($env{'form.condition'}) {
         $condition = 1;
+    } elsif (($env{'request.deeplink.login'}) && ($env{'request.course.id'}) && (!$userCanSeeHidden)) {
+        if (!defined($navmap)) {
+            $navmap = Apache::lonnavmaps::navmap->new();
+        }
+        if (defined($navmap)) {
+            my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'};
+            my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'};
+            my $symb = &Apache::loncommon::symb_from_tinyurl($env{'request.deeplink.login'},$cnum,$cdom);
+            if ($symb) {
+                my $deeplink;
+                my $res = $navmap->getBySymb($symb);
+                if ($res->is_map()) {
+                    my $mapname = &Apache::lonnet::declutter($res->src());
+                    $mapname = &Apache::lonnet::deversion($mapname);
+                    $deeplink = $navmap->get_mapparam(undef,$mapname,"0.deeplink");
+                } else {
+                    $deeplink = $res->deeplink();
+                }
+                if ($deeplink ne '') {
+                    if ((split(/,/,$deeplink))[1] eq 'hide') {
+                        if ($res->is_map()) {
+                            map { $filterHash->{$_} = 1 if $_ } split(/,/,$res->map_hierarchy());
+                        } else {
+                            my $mapurl = (&Apache::lonnet::decode_symb($symb))[0];
+                            my $map = $navmap->getResourceByUrl($mapurl);
+                            map { $filterHash->{$_} = 1 if $_ } split(/,/,$map->map_hierarchy());
+                        }
+                    }
+                }
+            }
+        }
     }
 
     if (!$env{'form.folderManip'} && !defined($args->{'iterator'}) && !$args->{'nocurrloc'}) {




More information about the LON-CAPA-cvs mailing list