Forum Discussion

JoeDey's avatar
JoeDey
Community Member
3 months ago

Perpetual Notepad for Storyline

Hi, here’s a simple Storyline 360 notepad in JavaScript:

  • It is designed to be 720×540 and centred for use on a lightbox slide.
  • It provides persistent notes across the course via localStorage.
  • Multiple notes are allowed: the learner can create / rename / delete / switch notes.
  • It has an advanced editor: font, size, colour, highlight, bold/italic/underline, lists, align, clear formatting and custom Undo/Redo (to 10 levels).
  • The learner can export the current notes or a selection of multiple notes into a Word document.
  • It has a built in close button that (a) flips a Storyline variable CloseNotepad (which you need to create).
  • Optional SL variable can be created to sync content across your course: NoteTitle, NoteBody, NoteId.

The code can be found in the Execute JavaScript trigger on the lightbox master slide. It also requires a trigger to reset the variable CloseNotepad back to false. Everything can be found in the attached file. 

If you find this useful, please let me know. I'll also upload a version that can be used in Rise 360.

35 Replies

  • Hi JoeDey​ Clearly, you're one step ahead of the average person 😄. I dive right in and everything works perfectly. Really impressive.
    I imagine “LearnerName” is automatically retrieved from the LMS? So much to explore. 

    • JoeDey's avatar
      JoeDey
      Community Member

      There are two ways the script captures the learners name and you can use them depending on what you want to achieve. The script itself has the built in variable learnerName. This is linked to the insert name text entry box in the UI. The Storline variable userName captures their name via a text entry box (that you create yourself). The same is true for the script variable learnerOrg and the Storyline variables companyName and assessingBody. 

  • This is pretty awesome, Joe, Until I found this, I was going to use ThierryEmmanuel's version in E-Learning Challenges 344, which was a good but not ideal option. I like the simplicity of it, and the options for saving. I understand he's made some changes to his so I will likely download his .story files as well. 

    This is ideal for any project. Thanks so much for this.

  • JoeDey's avatar
    JoeDey
    Community Member

    ***UPDATE 2***

    Thank you all for so many replies. I have taken your feedback and questions and used them to update the notepad's JavaScript. All the requested features and the identified gremlins have been applied / fixed.

    It fixes the bug where in some cases individual notes could be viewed by other learners. It adds the export to PDF feature. I have also stripped out the 'Note Set' feature as it increased the lines of code significantly but did not add that much value. The UI has been rearranged and simplified making it more intuitive and navigable, and I have included a TTS feature.

    You need to setup quite a few Storyline variables and the instructions for this can be found in the main Script. If you deploy the notepad in rise you may need to add a button with an Execute JavaScript trigger to reopen the note after having closed it. Because the Notepad script defines a global namespace (SL_Notepad) and exposes an Open() function, you can simply call that function from any Storyline button trigger.

    if (window.SL_Notepad && window.SL_Notepad.Open) { window.SL_Notepad.Open(); }


    This will toggle the visibility of the Notepad wrapper back to visible, allowing the learner to pick up exactly where they left off. 

    Here is the .story file. Give it a try and if you like it please let me know. If you improve it, please share it here so everyone can benefit. Please note, the notepad is provided as is, and whilst I am happy to answer any questions that I can, I do not provide tailored support. You are however, free to pop the Script into your favourite AI and amend it as you see fit. That's how I created it!