cancel
Showing results for 
Search instead for 
Did you mean: 
s528180
Community Member

LTI on Main Navigation

Jump to solution

Can we place the LTI into the global navigation area i.e. Main Navigation?

If yes, how can this be achieved?

1 Solution

Accepted Solutions
s528180
Community Member

Thanks  @James  and  @chofer  for your responses.

I was scrapping through the guides and found this post. It helped me in achieving this by inserting this piece into my xml configuration:

<lticm:options name="global_navigation">
      <lticm:property name="canvas_icon_class">icon-analytics</lticm:property>
      <lticm:property name="icon_url">http://lti-tool-provider-example.herokuapp.com/selector.png?global_navigation</lticm:property>
      <lticm:property name="text">LTI Analytics</lticm:property>
      <lticm:property name="url">http://lti-tool-provider-example.herokuapp.com/messages/blti</lticm:property>
    </lticm:options>

 

I will try out the javascript solution provided by James Jones

View solution in original post

5 Replies
chofer
Community Coach
Community Coach

Hello  @s528180 ‌...

In general, I would say that you cannot put LTIs on the global navigation of Canvas.  Your question is interesting, however.  A little more than two years ago, I created a Feature Idea called https://community.canvaslms.com/ideas/1866" modifiedtitle="true" title="LTI Apps Available on the Da....  Unfortunately, it didn't get many votes at all, and so it got moved to https://community.canvaslms.com/groups/cold-storage?sr=search&searchId=db9e6553-a446-4b29-ab8b-d03fc...‌.

However, if you post announcements to the Dashboard of Canvas, there are a handful of LTIs that you could use.  For example, even though we have installed/enabled these LTIs for use in actual courses, they are also available in the RCE when creating global announcements:

LTIs on the RCE

If you had any of these enabled in your own Canvas instance, in theory, you could create a global announcement with content from one of these providers enabled.  You could set the announcement to run from specific dates or no dates at all.  The catch is that users who see your posted announcement can delete it from their view at any time, and it won't come back...unless you re-post it again.  So, not ideal and not a great work-around IMHO, but it could work.

Obviously, there are several other LTIs around...and most of those are more for courses.  You'd have to go to the administrative pages of Canvas, then to Settings >> Apps >> View App Configurations to see exactly where each app is placed in a course (click on the cog wheel next to the name of an installed app, then click Placements).

I hope this helps, Monish.

James
Navigator II

 @s528180 ,

I started to respond last night, but my response got lost somehow. Our beta and test instance of Canvas were down so I couldn't do any testing, so it was a wild shot in the dark. It's a good thing that it was lost as it wasn't particularly helpful. Hopefully this post will be more useful as I've been able to play around and verify some things.

 @chofer ‌ covered much of the situation. He didn't really talk about navigation links (a link that launches another tool as an LTI), so I thought I'd add some comments about that. But at the bottom, I'll provide some information about how to do this and I'm not sure that it's limited to navigation links, that's just what I tested it with.

There are three places that you can put an LTI as a navigation link. If one of those will work, it will be a whole lot easier than what you're trying to do as it won't require any custom JavaScript.

  • Course Navigation, which is the available only when you're inside a course and not, for example, on the Dashboard
  • Account Navigation, which is available to admins by clicking on Admin and choosing your account
  • User Navigation, which users see when they click on their profile

None of those go on the global navigation menu.

What you can customize on the global navigation menu are the Help Links. There you can create a custom link and even specify who it will be available to. This is not an LTI link, though, so none of the information from Canvas would pass through and there is no way to include custom fields. 

If the external system had its own login and didn't need information from Canvas, then this is a possibility. For example, when we turn on our student feedback system at the end of the term, we could put a link under the Help menu. We don't, because no one would see it, so we put an announcement for all of our users with a link (it's not an LTI), but we could put it there if we wanted to. In our case, our feedback system and Canvas are behind the same single sign-on and so we could get the user email from the single sign-on software rather than from Canvas. That may not be an option for you.

If you still want to add a link to the global navigation that launches an LTI, it does seem possible. I haven't fully (or fooly) investigated this, but I did change the existing link for my Inbox and verified that it will work and launch a course navigation LTI I have that loads a student's email without requiring them to login.

Although I tested it with a course navigation link, it may work with other types of LTI as well.

You can add a link to the global navigation menu using custom JavaScript. Here are some discussions that might help understand it. Note that, unless I missed something, those are not LTI launches, they're just links, come back to this post after getting confused with those discussions.

Let's say that you decide to go the custom JavaScript route and add the link to the global navigation. You then need to get it to launch your tool as an LTI and not a regular link. This can be done using the Get a sessionless launch url for an external tool from the External Tools API. It returns an once-time use URL that you launch and it executes your LTI. It provides all of the LTI information that you would have gotten through a regular launch, including any custom variables that you've included.

s528180
Community Member

Thanks  @James  and  @chofer  for your responses.

I was scrapping through the guides and found this post. It helped me in achieving this by inserting this piece into my xml configuration:

<lticm:options name="global_navigation">
      <lticm:property name="canvas_icon_class">icon-analytics</lticm:property>
      <lticm:property name="icon_url">http://lti-tool-provider-example.herokuapp.com/selector.png?global_navigation</lticm:property>
      <lticm:property name="text">LTI Analytics</lticm:property>
      <lticm:property name="url">http://lti-tool-provider-example.herokuapp.com/messages/blti</lticm:property>
    </lticm:options>

 

I will try out the javascript solution provided by James Jones

View solution in original post

There is also some discussion around this at Is it possible to add an LTI SSO link in the left navigation area? Not the left course nav area. 

Back then (September 2016), there was a warning that  "The global navigation LTI extension is not supported at this time for any third party tools."

I wonder if that is still the case?   @karl 

s528180
Community Member

It is working in my case. I wanted to open the LTI in a new tab, while it works for at the course navigation completely but not at the global navigation i.e. its not borderless, I can still see the global navigation area around my LTI.