The Instructure Community will enter a read-only state on November 22, 2025 as we prepare to migrate to our new Community platform in early December. Read our blog post for more info about this change.
Found this content helpful? Log in or sign up to leave a like!

“Trouble in Park City” — From the producer of KennethWare comes the heartwarming and inspiring tale of the benefits of having a programmer in your design community. See how having access to LTI, Canvas APIs, and a little jQuery can revitalize and enrich your design process and course development experience
Presenter: Kenneth Larsen - Utah State University
Location Map & Room: SILVERADO 2 |

Login to "Add a comment" below! |

Never heard of USU Design Tools (aka KennethWare), you can visit designtools.usu.edu to find out more.
Kenneth,
Would you mind sharing your slides? You should also record your Canvas Trouble!
My slides are web based and can be found at InstCon15 - The Muse-k Man. Spacebar will take you to the next slide or you can use the arrow keys to navigate. Esc will bring up an overview where you can jump to a specific slide.
Just for fun, here is the code to create the course filter on the My Courses page. Copy and paste it into your global JavaScript file:
/////// Course List Filter ////////
if ($('#my_courses_table').length > 0) {
var kl_course_filter = '<div id="kl_course_filter_wrapper"><label for="kl_course_filter">Filter by Term:</label> <select id="kl_course_filter"><option value="all">View All</option>',
kl_course_terms = [],
txt;
// Loop through all of the courses and build a list of terms
$('td.course-list-term-column').each(function () {
// Grab the text
txt = $(this).text();
// Add if not already in the array
if ($.inArray(txt, kl_course_terms) === -1 ) {
kl_course_terms.push(txt);
}
});
kl_course_terms.sort();
// Loop through array and build options
$.each(kl_course_terms, function (index, el) {
kl_course_filter += '<option value="' + el + '">' + el + '</option>';
});
kl_course_filter += '</select></div>';
// Add the select before the course list
$('#my_courses_table').before(kl_course_filter);
// Filter the courses when a term is selected
$('#kl_course_filter').change(function () {
var selectedTerm = $('#kl_course_filter option:selected').text();
console.log(selectedTerm);
if (selectedTerm === 'View All') {
$('.course-list-table-row').show();
} else {
$('.course-list-table-row').hide();
$('.course-list-term-column:contains("' + selectedTerm + '")').closest('tr').show();
}
});
}
You sir, are awesome. Thanks!
Matthew
Sent from my iPhone. Please excuse the brevity, typos & lack of nuance.
You just made my day! I was having a conference hangover and was wondering where to start. This got me going! Thanks!
You did an absolutely amazing intro at your presentation. "Trouble in River City" is one of the hardest songs to do. It's fast and has so many tongue-twisting words. You are so creative, and brave! I think you should get extra awesome sauce (and a badge) for having the most theme-based presentation. I can't wait for the video of your presentation to be posted so I can try and catch all the words again. Bravo!
I completely agree! That was awesome, @kenneth_larsen !
Thanks Kenneth!
Instructure has posted the videos from InstructureCon. If you are interested you can find the video for this session at The Muse-K Man - YouTube
The session video is now available at:
I vote "Best Breakout session" at InstructureCon 2015 as @kenneth_larsen "The Muse-K Man" session!
At the very least I give it my Oscar nomination for best use of a musical number in a breakout session.
I have your code in my JavaScript file but it seems to have stopped working. There is no longer an option to select a specific term. We have not yet switched our Live system to the new User Interface. Any ideas why this stopped working and will the code work with the new interface?
Thanks,
Karen Klein
KK127904, thank you for posting. One of my coworkers pointed that out yesterday and I fixed the code, but I couldn't remember where I had shared it. I have updated the code in the original post above.
Thank you for the quick fix. Still not working in the legacy system but we’re switching to the new user interface in a couple of weeks so we’re good for now. Thanks a million!
Karen
That is likely a file caching issue since we are still on the legacy UI as well. A hard refresh in Canvas doesn't seem to update the cached files lately.
Community helpTo interact with Panda Bot, our automated chatbot, you need to sign up or log in:
Sign inTo interact with Panda Bot, our automated chatbot, you need to sign up or log in:
Sign in