LTI Consumer XBlock - Proposed UI/UX

LTI Consumer XBlock - Proposed UI/UX

Devs to confirm if selecting existing configuration can be built as the first step.

These are the improvements that are planned for Verawood in regards to the XBlock config workflow.

  1. Progressive disclosure: We can progressively disclose input fields by:

    1. Dividing fields into tabs.

    2. Only display fields when the user turns on the related feature.

    3. Club fields into sections where needed.

  2. Clearer names and descriptions

  3. Clearly mark the fields that are required from the ones that are optional.

  4. Use toggles/segmented buttons where needed

  5. Reduce the amount of text by moving all descriptions into tool tips.

  6. Case of entire form (field + values) should be consistent. Proposed is sentence case.

 

Proposed changes in 1 through 4 are summarized in the table below.

Tab
(Proposed)
Name
(Current)
Name
(Proposed)
Visible when?
(Current)
Visible when?
(Proposed)
Input type
(Current)
Input type
(Proposed)
Setup
(Existing config ONLY)
LTI URL
Launch URL
Never
LTI Version = LTI 1.1/1.2 in existing config
Text
same (Disabled)
LTI Key
-
Never
LTI Version = LTI 1.1/1.2 in existing config
Text
same (Disabled)
LTI Secret
-
Never
LTI Version = LTI 1.1/1.2 in existing config
Text
same (Disabled)
Tool Launch URL
Launch URL
Never
LTI Version = LTI 1.3 in existing config
Text
same (Disabled - override available)
Tool Initiate Login URL
Login initiation URL (OIDC)
Never
LTI Version = LTI 1.3 in existing config
Text
same (Disabled)
Registered Redirect URIs
Redirect URIs
Never
LTI Version = LTI 1.3 in existing config
Text
same (Disabled)
Setup
(New config ONLY)
LTI Version
-
Always
same
Dropdown
Segmented buttons
LTI ID
-
LTI Version = LTI 1.1/1.2
same
Text
same
LTI URL
Launch URL
LTI Version = LTI 1.1/1.2
same
Text
same
Tool Launch URL
Launch URL
LTI Version = LTI 1.3
same
Text
same
Tool Initiate Login URL
Login initiation URL (OIDC)
LTI Version = LTI 1.3
same
Text
same
Registered Redirect URIs
Redirect URIs
LTI Version = LTI 1.3
same
Text
same
Advantage Settings
(New OR Existing config)
Deep linking
-
LTI Version = LTI 1.3
same
Dropdown
Segmented buttons
Deep Linking Launch URL
Deep linking URL
LTI Version = LTI 1.3
(LTI Version = LTI 1.3) AND (Deep linking = True)
Text
same
LTI Assignment and Grades Service
Assignment and Grades (AGS)
LTI Version = LTI 1.3
same
Dropdown
Segmented buttons
Enable LTI NRPS
Names & Roles (NRPS)
LTI Version = LTI 1.3
same
Dropdown
Segmented buttons
Tool Public Key Mode
-
LTI Version = LTI 1.3
(LTI Version = LTI 1.3) AND (Deep linking OR NPRS OR AGS = True)
Dropdown
Segmented buttons
Tool Public Key
-
(LTI Version = LTI 1.3)
AND (Tool Public Key Mode = Public Key)
(LTI Version = LTI 1.3) AND (Deep linking OR NPRS OR AGS = True) AND (Tool Public Key Mode = Public Key)
Text
same
Tool Keyset URL
-
(LTI Version = LTI 1.3)
AND (Tool Public Key Mode = Keyset URL)
(LTI Version = LTI 1.3) AND (Deep linking OR NPRS OR AGS = True) AND (Tool Public Key Mode = Keyset URL)
Text
same
Review Options
(New OR Existing config)
Display Name
-
Always
same
Text
same
Scored
This activity is graded
Always
same
Dropdown
Segmented buttons
Weight
Grade weight
Always
Scored = True
Float
same
Accept grades past deadline
Accept grades after due date
Always
Scored = True
Dropdown
Segmented buttons
Request user's username
Share username
PII flag is enabled
same
Dropdown
Segmented buttons
Request user's fullname
Share full name
PII flag is enabled
same
Dropdown
Segmented buttons
Request user's email
Share email
PII flag is enabled
same
Dropdown
Segmented buttons
LTI Application Information
Data sharing notice
Always
same PII flag is enabled
Text
same
Custom Parameters
-
Always
same
Text
same
Send extra parameters
-
Always
same
Dropdown
Segmented buttons
Hide External Tool
Hide LTI Tool
Always
same
Dropdown
Segmented buttons
LTI Launch Target
Open tool in
Always
Hide External Tool = False
Dropdown
Segmented buttons
Inline Height
Inline height (px)
Always
Hide External Tool = False
AND LTI Launch Target = Inline
Integer
same
Modal Height
Modal height (px)
Always
Hide External Tool = False
AND LTI Launch Target = Modal
Integer
same
Modal Width
Modal width (px)
Always
Hide External Tool = False
AND LTI Launch Target = Modal
Integer
same
Button Text
Launch button label
Always
Hide External Tool = False
AND LTI Launch Target IN [Modal, New window]
Text
same

 

I’ve made an attempt to explain the rough mockups in the “Verawood LTI Authoring workflow” in this Figma doc: https://www.figma.com/design/4wsTUbieYphB2qchIPxm10/%E2%9C%8F%EF%B8%8F-Library---Course-Authoring-v1.0--Open-edX-?m=auto&node-id=22983-98013&t=YzOvFoOYGTMuzQqF-1

Note: These mockups are NOT final and are only made to explain the high-level workflow.

Note: Each field in these mockups will have an info icon next to which will explain it in detail on mouseover.

1. Entry point - LTI Consumer XBlock

A user clicks LTI consumer XBlock in Studio. This will open a selection modal. This modal will allow the user to choose an existing LTI configuration or add new configuration.

Existing configurations will be fetched from the LTI store and listed in this modal for user to choose.

The “Add new” option will create a configuration on the XBlock, and will NOT create a reusable configuration.

image-20260224-095927.png

2. Adding new configuration

When the user selects “Add New”, user is taken to a configuration model with 2 or 3 tabs depending on the LTI version selection.

2.1 Setup

First tab is named “Setup”. This is where the user selects the LTI version and inputs relevant URLs.

image-20260224-101324.png
image-20260224-101425.png

 

2.2 Review Options

If the user has selected LTI 1.1/1.2, when they click “Next”, they’ll be taken to “Review Options” tab. This is where they’ll add remaining inputs and save the configuration.

  1. When user selects “Graded”, additional fields will appear named “Weight” and “Accept grades past deadline”. These are yet to be added to mockups.

  2. When PII sharing for the course is enabled, 4 more fields will appear “Request user's email”, “Request user's username”, “Request user's full name” and “LTI Application Information/Data sharing notice”. This change is yet to be made in the mockups.

  3. “LTI Application Information/Data sharing notice” text input does not have any impact on FE messaging. Should we fix it or remove it entirely?

  4. “Open tool in” and all options below it disappear when “Hide LTI tool” is Enabled.

  5. When “Modal” is selected, you’ll see height and width inputs as in the image below.

  6. When “Inline” is selected, height input will be shown.

image-20260224-101907.png
image-20260224-103259.png

2.3 Advantage Settings

If the user selected 1.3 in Setup, they’ll be taken to the tab named “Advantage Settings” when they click Next. This is where they input advantage settings.

  1. When “Deep Linking” is Enabled, a text field input will appear that’ll allow user to add Deep Linking URL. This is yet to be added to mockups.

  2. If any of Deep linking, AGS or NRPS is enabled, users will be shown fields to input tool public key or URL. This will be added to the mockups.

image-20260224-102312.png

3. Using existing configuration

When a user selects an existing configuration, they should see all the fields but some of them will be pre-filled/selected with data from the saved configuration.

  1. Pre-filled/selected fields will be disabled so users won’t be able to change them. This is necessary to preserve the reusability aspect.


Open questions/ observations

  1. Do we need to keep launch URL fields separate for 1.1 and 1.3? Their name as per standard is the same.

  2. "LTI Application Information" does not have any impact on the prompt for sharing user data. Should we fix it or remove it?

  3. Modal height and width don't work.

  4. Model default settings don't make sense.

Name as per standards

Name in xblock configuration

Provided by

Name in IMS test configuration

Name in H5P configuration

Required field?

Description in standard

client_id

Client ID

Platform

Client

Client ID

Yes

 

iss

-

Platform

-

Issuer

Yes

 

deployment_id

Deployment ID

Platform

Deployment

Deployment ID

Yes

 

OIDC Authorization end-point

Login URL

Platform

Platform oidc auth URL

Login URL

Yes

The platform URL the tool sends the user’s browser to during the OIDC login step so the platform can authenticate the user and issue the signed LTI id_token (JWT).

OAuth 2 Access Token service endpoint

Access Token URL

Platform

Oauth2 URL