Skip to content
Snippets Groups Projects
  1. Jan 24, 2023
    • michaelroytman's avatar
      fix: bug in rending buttons and message in PII sharing consent dialog · d95de6e8
      michaelroytman authored
      This commit fixes a bug in the PII sharing consent dialog.
      
      The bug resulted in bizarre behavior when there were more than one LTI component in a unit. For example, if there were two LTI inline launches in a unit, two "OK" button would appear in a single component, instead of in their respective components. Another example is that clicking the "View resource in a [modal|new] window" buttons under two LTI components resulted in the "OK" and "Cancel" buttons as well as the PII sharing prompt appearing in a single component, instead of in their respective components.
      
      This is because the dialog-container div that is dynamically created in the Javascript was not scoped to the LTI component, so there was a div with a id of "dialog-container" for each component configured to share PII. When dynamically inserting and removing buttons and the PII sharing prompt, the Javascript would simply find the first div with the dialog-container ID and operate on it, instead of the div appropriate to the component the user is interacting with.
      d95de6e8
  2. Dec 15, 2022
    • michaelroytman's avatar
      fix: LTI 1.1 form URL is relative URL and LTI 1.3 form URL is expected to be absolute · e1e0f131
      michaelroytman authored
      This commit fixes a bug in the way that the the form_url is used in the Javascript.
      
      For LTI modal launches in the courseware microfrontend (MFE), the Javascript prepends the value of window.location.origin to the form_url when sending a message via postMessage to window.parent.
      
      This is because the form_url included in the template by the XBlock handler does not include a port and hostname for LTI 1.1 launches.
      
      In LTI 1.3, however, the form_url should include the port and hostname, because it's user input (e.g. fields on the XBlock). Because of this, LTI 1.3 modal launches do not work, because the Javascript appends a port and hostname to a URL that already has a port and hostname, resulting in something like "http://localhost:18000http//localhost..."
      
      This commit changes the way that the launch URL is calculated by the Javascript. The version of LTI being used is included in the template by the Python code, which is read by the Javascript. The Javascript then adds the port and hostname for LTI 1.1 form URLs but not for LTI 1.1 form URLs.
      e1e0f131
    • michaelroytman's avatar
      feat: replace PII consent modal with inline PII consent dialog and show for all LTI launch types · 8e357d40
      michaelroytman authored
      This commit replaces the consent modal that appears before personally identifiable information (PII) is shared via an LTI launch with an inline consent dialog. The consent dialog better supports the three LTI launch types (i.e. inline, modal, and new_window). This commit also fixes a bug where the PII consent modal was not being displayed for inline or modal launches.
      8e357d40
  3. Jul 22, 2022
    • michaelroytman's avatar
      fix: hidden lti_version and 1.3 fields in edit view and incorrect menu behavior in Javascript · 34003401
      michaelroytman authored
      This commit fixes three bugs.
      
      1. The first bug is that the lti_version field is inappropriately hidden in the Studio author view edit menu when the selected config_type is database.
      
      2. The second bug is that the editable_fields property of the LtiConsumerXBlock is inappropriately excluding LTI 1.3 fields when the config_type is database. The editable_fields property should include LTI 1.3 fields even when the config_type is database, because the Javascript defined in xblock_studio_view.js may want to show these fields if the user selects a different config_type in the menu. We want to support a dynamic edit menu, so these fields must be considered editable by the XBlock in order for the Javascript to be able to manipulate them.
      
      3. The third bug is in inconsistent rendering of the Studio author view edit menu. Depending on the order in which a user selects lti_version, config_type, or lti_1p3_tool_key_mode, different sets of fields are displayed, due to the overlapping sets of rules that govern what fields should be hidden or shown for a given field selection. This commit corrects this inconsistent rendering by first showing all fields and then gradually hiding fields depending on the sets of rules, for each change to the fields.
      34003401
  4. Jul 18, 2022
    • michaelroytman's avatar
      feat: Add core LTI 1.3 and Advantage configuration to LTIConfiguration model · d5e98141
      michaelroytman authored
      This commit adds additional core LTI 1.3 and LTI Advantage variables to the LTIConfiguration model. The additional core LTI 1.3 variables are lti_1p3_oidc_url, lti_1p3_launch_url, lti_1p3_tool_public_key, and lti_1p3_tool_keyset_url. The additional LTI Advantage variables are lti_advantage_enable_nrps, lti_advantage_deep_linking_enabled, lti_advantage_deep_linking_launch_url, and lti_advantage_ags_mode.
      
      This commit also adds a configuration type to the LtiConsumerXBlock to support the storage of these LTI variables on the LTIConfiguration model (i.e. the database) instead of the xBlock itself.
      
      Changes that allow the use of this configuration option are behind the lti_consumer.enable_database_config CourseWaffleFlag.
      d5e98141
  5. May 09, 2022
  6. Jan 20, 2022
  7. Nov 22, 2021
  8. Nov 15, 2021
  9. Nov 12, 2021
  10. Nov 04, 2021
  11. Jun 03, 2021
  12. Apr 13, 2021
  13. Jan 29, 2021
  14. Aug 14, 2020
  15. Jun 25, 2020
  16. Nov 02, 2016
  17. Mar 25, 2016
  18. Jan 26, 2016
  19. Dec 29, 2015
  20. Nov 30, 2015
Loading