How to show/hide an account level external tool's course navigation on a particular course?

Jump to solution
j_causby
Community Novice

I've got an account level external tool that I have now disabled course navigation by default.  This is good for the vast majority of courses, but I've got a list of ~1000 courses that I would like to have the course navigation re-enabled.  Looking into the api, I don't see a way of doing this, due to the tool being account level instead of course level (basically, at account level it seems changing that kind of default is 'all or nothing').  Looking at what goes on when I save the courses navigation items from the /courses/:id/settings page, I see that a POST call is being made to the /courses/:id/update_nav path with url encoded form data consisting of tabs_json with a list of ids and a "hidden":true flag set on them if they are supposed to be hidden.  I tried to replicate this kind of POST outside of canvas using postman and regular api authentication, but I can't get it to work.

Does anyone have any ideas of how to get this to work?  I suppose I could look into creating new, course level external tools replicating the account level tool on just the list that I have, and then disabling the account level one, but I'd prefer to avoid that since the list I have might not be comprehensive, and users should be able to show/hide the tools if they need to, regardless if they are in this list of courses or not.

Thanks!

Labels (2)
1 Solution
pklove
Community Champion

Have you looked at the Tabs API (Tabs - Canvas LMS REST API Documentation )?

This lets you change the position and visibility of things in the course navigation.

View solution in original post