Blog Post

Discover
2 MIN READ

Storyline: Printable Free-Response Slide Template

JohnPinkster-19's avatar
JohnPinkster-19
Community Member
3 years ago

Written reflections or responses can encourage learners to think deeply about a topic and consider how it applies to them. And they’re easy to include in a Storyline 360 course by simply adding a data entry input field. But what if you want to add a free-response question to a Rise 360 course? And what if you want to give learners a simple way to save or print their responses?

Not to worry! This Storyline 360 download has you covered. With a little help from two text variables and the included JavaScript, learners can print their response or save it as a PDF with just the click of a button.

Explore how this project looks as a Storyline slide.

 

And if you want to add a reflection activity to your Rise 360 course, just update the template with your own content in Storyline 360. Then use the Storyline Block to seamlessly bring it into your own Rise 360 courses.


Explore how this project looks when included in a Rise 360 course.

 

Just remember these two things when using this template in your projects:

  • New question text: Update the default value of the Q1TextEntry variable with your new question text so it’s updated in both the PDF and the printed copy.
  • Multiple copies of the template in a single course: For the print/PDF option to work properly, each slide needs its own unique question and response variables. So if you want to include several printable responses in one Storyline course, you need to make a few quick adjustments to each new one you add. Rename the two text entry variables on the free-response slide. Then apply those variable name changes in the slide JavaScript as well.


This template will work for folks using Storyline 360, the continuously updated version of Storyline included in Articulate 360. Want to try it out? Get a free trial of Articulate 360 right here.

Published 3 years ago
Version 1.0
  • StephenMorey's avatar
    StephenMorey
    Community Member
    Perfect just what I was thinking about building. Now I can re-brand and pretend I did all the work. You're making me look good. ;)
  • This template is very useful! I'm so glad to have a better option for learners to reflect rather than telling them to write something down on a piece of paper! One question though, we found that it did not function well unless you were using a computer to take the RISE course. Formatting was lost when using a smartphone. Any thoughts or recommendations?
    • JohnPinkster-19's avatar
      JohnPinkster-19
      Community Member
      Wow, I thought we had tested it on all devices...so if nothing has changed on Articulate's side, this got overlooked. Thanks for bringing it to our attention! I pulled my coding expert back in to help out and we have updated Javascript for the Storyline element:

      var questionTitleVar = 'Q1TextEntry';
      var styles = `
      #printHelper, #printHelperTitle {
      display: none;
      }
      @media print {
      body {
      width: 100% !important;
      height: auto !important;
      position: relative !important;
      }
      html {
      height: auto !important;
      }
      body * {
      display: none;
      }
      #printHelper, #printHelperTitle {
      display: block;
      overflow: visible;
      white-space: pre;
      white-space: pre-wrap;
      }
      #printHelperTitle {
      font-size: 18px;
      }
      }
      `;
      if (!document.head.querySelector('#printHelperStyles')) {
      var stylesheet = document.createElement('style');
      stylesheet.nodeType = 'text/css';
      stylesheet.id = 'printHelperStyles';
      stylesheet.innerText = styles;
      document.head.appendChild(stylesheet);
      }

      var player = GetPlayer();
      var questionTitle = player.GetVar(questionTitleVar);
      var questionTitleEl = document.createElement('h1');
      questionTitleEl.id = 'printHelperTitle';
      questionTitleEl.innerText = questionTitle;

      var printHelperEl = document.createElement('div');
      var textarea = document.querySelector('textarea');
      printHelperEl.id = 'printHelper';
      printHelperEl.style.fontFamily = textarea.style.fontFamily;
      printHelperEl.innerHTML = textarea.value;

      const mql = window.matchMedia('print');
      mql.addEventListener('change', (media) => {
      if (media.matches) {
      document.querySelectorAll(['#printHelperTitle', '#printHelper']).forEach(el => el.remove());
      document.body.appendChild(questionTitleEl);
      document.body.appendChild(printHelperEl);
      }
      else {
      printHelperEl.remove();
      questionTitleEl.remove();
      }
      });

      window.print();
  • Can you explain what I need to do? Download a new version of the template and re-create the free response slides?
    • JohnPinkster-19's avatar
      JohnPinkster-19
      Community Member
      In Storyline, look at your Object Triggers panel. If you haven't made any adjustments to object names, you will see a trigger under PDF button that reads "Execute JavaScript When the user clicks PDF button." Double click on "JavaScript" to open the JavaScript pop-up window. Replace the code with the new JavaScript I posted above. Make sure in the first line of code (var questionTitleVar = 'Q1TextEntry';) that the text entry field name in the trigger panel (Set Q1TextEntry equal to the typed value When Q1 Text Entry loses focus) matches.
  • Hi there,
    Thank you so much for sharing this template. I tried adding it to my Rise360 course, but I noticed that if you move ahead in the course, and then go back to the lesson that had the free-response questions, the user input is no longer saved. I did choose the "always resume" behavior option in Storyline. Any tips?
    • MargaretAnde570's avatar
      MargaretAnde570
      Community Member
      I am having the same issue! And I am trying to use multiple text entries on a page and cant get them them to all print.
  • Kendra, the only tip I have is to include instructional text before the SL block to encourage the learner to print/save as PDF their response before they move on.

    PVMIT IDD, using multiple free responses (data entry fields) throughout a course in Storyline can be connect to print multiple on a single page. However, when placing multiple free response in Rise, we have not found a way to connect them for a single printed output.
  • JS code is not close to being my strength, and the person that helps me is out for the next couple of weeks. If the entries are presumed to be short, you could use the single line of JS code below to simply print the slide as it appears on screen when completed:

    window.print();
    • JohnPinkster-19's avatar
      JohnPinkster-19
      Community Member
      Hi, Justyna. I think this should be an easy fix. Go into your variable pop-up menu above the triggers panel. Select the text variable associated with your question and check to see what the Default Value is. I suspect you need to updated it with your question text, "What is the conclusion..."
  • I don't see where to change the text "When was the last time you felt really heard?" the PDF doesn't have that title. Can anyone help?
    • StephenMorey's avatar
      StephenMorey
      Community Member
      Anne,
      It will need to be changed in 3 places, The SLide. Off the edge of the slide and in the variable default value.