Lessonspace

Customising Spaces

These features can also be enabled/disabled on an organisation level under the Space Settings of your dashboard.

Features

You can disable or enable features available inside the Space by using the features parameter in the Launch endpoint.

This is an object with each key being the feature name and the value being either true (representing an enabled feature) or false (a disabled feature).

These are applied on a per-link basis (not a per-Space basis) so it is possible for different users to have different feature sets available to them.

Example of object to be added to the POST body schema of the Launch endpoint:

  {
    "features": {
      "chat.enabled": true,
      "options.fullscreen": false,
      "reactions.emojis": false
    }
  }

Available Features:

{
  /* ===========================
    APPS 
  =========================== */
  // Enables or disables the apps tab option entirely from the library
  "apps.enabled": boolean,
  // Enables or disables the dice app
  "apps.dice": boolean,
  // Enables or disables the calculator app
  "apps.calculator": boolean,
  // Enables or disables the graphing calculator app
  "apps.graphingCalculator": boolean,
  // Enables or disables the shared video app
  "apps.sharedVideo": boolean,


  /* ===========================
    AUDIO/VIDEO 
  =========================== */
  // Enables or disables AV connections entirely
  "av.enabled": boolean,
  // Enables or disables the screen share option
  "av.screenShare": boolean,
  // Enables or disables whether this user can publish their video stream
  "av.publishing": boolean,
  // Enables or disables the ability to change video layout modes
  "av.layoutModes": boolean,
  // Enables or disables the ability to directly unmute a participant (this should be enabled with caution, since this can invasive privacy-wise)
  "av.directLeaderUnmute": boolean,
  // Enables or disable the ability for a participant to unmute themselves if the leader originally muted them
  "av.onlyLeaderUnmuteIfLeaderMute": boolean,
  // Enables or disables audio-only mode (i.e. no video will be published)
  "av.audioOnly": boolean,
  // Enables or disables the background blur effect option
  "av.backgroundBlur": boolean,
  // Enables or disables the virtual background image option
  "av.backgroundImage": boolean,


  /* ===========================
    BREAKOUTS 
  =========================== */
  // Enables or disables breakouts entirely
  "breakouts.enabled": boolean,


  /* ===========================
    CHAT 
  =========================== */
  // Enables or disables chat entirely
  "chat.enabled": boolean,
  // Opens the chat window automatically when a user loads the UI
  "chat.openOnJoin": boolean,


  /* ===========================
    CODE TAB
  =========================== */
  // Enables or disables the Code tab option entirely from the tab menu. (Existing Code tabs will still be visible and available from the tab bar.)
  "code.enabled": boolean,


  /* ===========================
    DOCUMENT TAB
  =========================== */
  // Enables or disables the Document tab option entirely from the tab menu. (Existing Document tabs will still be visible and available from the tab bar.)
  "document.enabled": boolean,


  /* ===========================
    ELEMENTS 
  =========================== */
  // Enables or disables the elements option entirely from the Library tab
  "elements.enabled": boolean,
  // Enables or disables the sticky notes option in the elements tab
  "elements.stickyNotes": boolean,
  // Enables or disables the letters option in the elements tab
  "elements.letters": boolean,
  // Enables or disables the numbers option in the elements tab
  "elements.numbers": boolean,


  /* ===========================
    EXPORT 
  =========================== */
  // Enables or disables the export option entirely from the three dots menu
  "export.enabled": boolean, 
  // When enabled, includes the generated content in the export
  "export.includeGenerated": boolean, 
  // When enabled, includes the chat logs in the export
  "export.includeChat": boolean,


  /* ===========================
    IMPORT 
  =========================== */
  // Enables or disables the option to import a ZIP from the tab menu
  "import.zip": boolean,
  // Enables or disables the option to import a PDF from the tab menu
  "import.pdf": boolean,


  /* ===========================
    LEADER 
  =========================== */
  // Enables or disables the end session button in the options menu
  "leader.endSession": boolean,
  // Enables or disables the option to kick users (even if disabled, leader.canBan will override this option)
  "leader.canKick": boolean,
  // Enables or disables the option to ban and unban users (if enabled, will override whatever canKick even if its disabled)
  "leader.canBan": boolean,
  // Enables or disables the ability for non-leaders to join from the lobby without a leader present
  "leader.requiredForJoin": boolean,
  // Enables or disables the ability for non-leader to make edits without a leader present
  "leader.requiredForWrite": boolean,


  /* ===========================
    LOBBY 
  =========================== */
  // Enables or disables the lobby entirely
  "lobby.enabled": boolean,
  // Enables or disables the user bar display in the lobby
  "lobby.showUser": boolean,


  /* ===========================
    PEOPLE 
  =========================== */
  // Enables or disables the people menu entirely
  "people.enabled": boolean,
  // Enables or disables the "Invite Others" button
  "people.invite": boolean,


  /* ===========================
    OPTIONS 
  =========================== */
  // Enables or disables the three dots menu entirely
  "options.enabled": boolean,
  // Enables or disables the leave button
  "options.leave": boolean,
  // Enables or disables the fullscreen option in the options menu
  "options.fullscreen": boolean,
  // Enables or disables the languages selector in the options menu
  "options.languages": boolean,
  // Enables or disables the profanity filter on all chat messages, notifications, names, etc.
  "options.profanityFilter": boolean,


  /* ===========================
    REACTIONS 
  =========================== */
  // Enables or disables the reactions launcher (emojis and effects) entirely
  "reactions.enabled": boolean,
  // Enables or disables the raise hand option in the reactions menu
  "reactions.raiseHand": boolean,


  /* ===========================
    TIMER 
  =========================== */
  // Enabled or disabled the timer (for leaders only)
  "timer.enabled": boolean,


  /* ===========================
    WHITEBOARD TAB
  =========================== */
  // Enables or disables the Whiteboard tab option entirely from the tab menu. (Existing Whiteboard tabs will still be visible and available from the tab bar.)
  "whiteboard.enabled": boolean,
}

Theming

Certain elements of the Space UI can be controlled by using the theme parameter in the Launch endpoint. It is an object with each key being the feature name and the values being valid properties in the formats described in the table below. These are applied on a per-link basis (not a per-Space basis).

Example of object to be added to the POST body schema of the Launch endpoint:

  {
    "theme": {
      "darkmode": true,
      "corners": "md"
    }
  }
KEYDEFAULT VALUEDESCRIPTION
darkmodetrueBoolean flag determining whether or not dark mode is enabled when loading the Space.
cornersmdAdjusts the roundness of UI elements. Valid values are: none, xs, sm, md, lg, full.
logoURL for an image file that will be displayed above the video in the Lobby if you want to add branding there.
color#4299E1Controls the colour of the accents, buttons, and toggles. Accepts a hex colour code (eg. #4299E1).
hue214Subtly adjust the base colour of the grey UI chrome. Valid values are any integer between 0 and 255 on the hue scale.

Language

The launch endpoint also supports localisations for certain languages. This can be achieved by simply adding the locale parameter to your payload with the value being the ISO639-1 string corresponding to your locale of choice (for example it,fr and pl for Italian, French and Polish respectively). Below is a table of the available languages and their respective ISO639-1 values. Please contact support@thelessonspace.com if you are interested in expanding this list.

Example of object to be added to the POST body schema of the Launch endpoint:

  {
    "locale": "it"
  }
LANGUAGEISO639-1 VALUE
Englishen
English (US)en-us
French (CA)fr
Italianit
Polishpl
Bulgarianbg
Spanishes
Hungarianhu
Russianru
Xhosaxh