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.
Progressive disclosure: We can progressively disclose input fields by:
Dividing fields into tabs.
Only display fields when the user turns on the related feature.
Club fields into sections where needed.
Clearer names and descriptions
Clearly mark the fields that are required from the ones that are optional.
Use toggles/segmented buttons where needed
Reduce the amount of text by moving all descriptions into tool tips.
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) | (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) | (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 | Integer | same | |
Modal Height | Modal height (px) | Always | Hide External Tool = False | Integer | same | |
Modal Width | Modal width (px) | Always | Hide External Tool = False | Integer | same | |
Button Text | Launch button label | Always | Hide External Tool = False | 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.
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.
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.
When user selects “Graded”, additional fields will appear named “Weight” and “Accept grades past deadline”. These are yet to be added to mockups.
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.
“LTI Application Information/Data sharing notice” text input does not have any impact on FE messaging. Should we fix it or remove it entirely?
“Open tool in” and all options below it disappear when “Hide LTI tool” is Enabled.
When “Modal” is selected, you’ll see height and width inputs as in the image below.
When “Inline” is selected, height input will be shown.
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.
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.
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.
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.
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
Do we need to keep launch URL fields separate for 1.1 and 1.3? Their name as per standard is the same.
"LTI Application Information" does not have any impact on the prompt for sharing user data. Should we fix it or remove it?
Modal height and width don't work.
Model default settings don't make sense.