Skip to content

updated copy button and join course#407

Merged
LolaValente merged 3 commits intomasterfrom
updatedCopyButton
Aug 25, 2025
Merged

updated copy button and join course#407
LolaValente merged 3 commits intomasterfrom
updatedCopyButton

Conversation

@LolaValente
Copy link
Collaborator

@LolaValente LolaValente commented Aug 20, 2025

Summary by CodeRabbit

  • Documentation

    • Reorganized guides with new images, descriptive captions/alt text, updated visuals and step flows for LTI Canvas and support pages; added an “In Codio” snippet and a new video-guided section for creating a standard code test; join instructions reference a multi-word token.
  • Accessibility

    • Consolidated copy-to-clipboard UI: single shared behavior, button text updates and a live-region status for success/failure (no alert).
  • Style

    • Standardized punctuation, capitalization, hyphenation, and formatting across docs; videos now start muted at 8s.

@LolaValente LolaValente requested a review from shajason August 20, 2025 20:12
@coderabbitai
Copy link

coderabbitai bot commented Aug 20, 2025

Walkthrough

Consolidated clipboard copy behavior and accessibility updates in the Canvas LTI 1.3 doc; capitalization and environment-variable example fixes in LLM provider docs; small join-token wording change; Wistia embeds muted by default and support doc layout/clarity edits. All changes are documentation-focused.

Changes

Cohort / File(s) Summary of Changes
Canvas LTI 1.3 — clipboard, images, and copy UI
source/instructors/admin/integration/lti1-3Canvas.rst
Replaced many per-URL clipboard helpers with a single copyRST(btnId, url) flow; removed alert popups, update button text on success/failure, and add a lazily-created live-region status for accessibility. Added/updated image blocks (image1–image11) with explicit alt text and widths, updated asset paths and captions, normalized punctuation/hyphenation, and adjusted copy-target UI wiring.
LLMs provider examples — environment variable/casing
source/instructors/admin/organization/llms.rst
Text-only updates: pluralized heading, adjusted capitalization for “API”, renamed example env var in OpenAI example from OPENAI_CUSTOM_KEYOPENAI_CUSTOM_URL, and removed/adjusted a Gemini endpoint line.
Student joining instruction wording
student-source/students/accessing-codio/joining.rst
Non-LMS join instruction changed to reference a multi-word token; fixed Join Course directive spacing (removed extra space before URL).
Get started — video embeds
source/instructors/getstarted/howto.rst
Added muted=true to Wistia embeds and call video.mute() in onReady callbacks, retained video.time(8) start, and added a new Wistia embed for "Creating a Standard Code Test."
Support page layout and clarity
source/instructors/getstarted/support/support.rst
Rewrote top-level support instruction to a direct sentence, converted sections to a two-column table, replaced/realigned image blocks and figures, clarified email/notification wording, converted N.B. note to a proper note directive, and improved grammar/formatting across student support and community sections.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  participant U as User
  participant B as Copy Button (UI)
  participant S as Page Script
  participant C as Clipboard API
  participant LR as Live Region (status)

  U->>B: Click "Copy"
  B->>S: invoke copyRST(btnId, url)
  S->>C: navigator.clipboard.writeText(url)
  alt Success
    S->>B: set text "Copied"
    S->>LR: create/update "URL copied to clipboard"
  else Failure
    S->>B: set text "Copy failed"
    S->>LR: create/update "Copy failed"
    S->>S: console.error(error)
  end
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20–30 minutes

Possibly related PRs

Suggested reviewers

  • shajason
  • jairovelasquez

Tip

🔌 Remote MCP (Model Context Protocol) integration is now available!

Pro plan users can now connect to remote MCP servers from the Integrations page. Connect with popular remote MCPs such as Notion and Linear to add more context to your reviews and chats.

✨ Finishing Touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch updatedCopyButton

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

CodeRabbit Commands (Invoked using PR/Issue comments)

Type @coderabbitai help to get the list of available commands.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

Status, Documentation and Community

  • Visit our Status Page to check the current availability of CodeRabbit.
  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (10)
student-source/students/accessing-codio/joining.rst (1)

15-15: Confirm “four-word token” and fix minor RST/link nits

  • Please confirm with Product/Support that the token is now four words everywhere (UI, emails, LMS-agnostic flows). If some courses still use two-word tokens, consider clarifying “four-word token” vs. legacy tokens to avoid student confusion.
  • There’s an extra space before the URL inside the inline link; trim for consistency.
- - Send you a four-word token that you can enter on the Codio website using `Join Course  <https://codio.com/p/join-class>`_. Enter the token and click **Next**.
+ - Send you a four-word token that you can enter on the Codio website using `Join Course <https://codio.com/p/join-class>`_. Enter the token and click **Next**.
source/instructors/admin/organization/llms.rst (3)

2-2: Grammar: pluralize “LLM’s” and clarify the description

Use “LLMs” (no apostrophe) for the plural and simplify the sentence.

-   :description: You can enable LLM's to use your own LLM Provider API keys in Codio
+   :description: Enable use of your own LLM provider API keys in Codio

6-7: Heading plurality

The page covers multiple models/providers. Recommend plural.

-Large Language Model
-====================
+Large Language Models
+=====================

60-64: Consistency: capitalize “API key” in bullets

Minor style consistency across provider examples.

- - api key: your api key from openai
+ - API key: your API key from OpenAI
 ...
- - api key environment variable: OPENAI_CUSTOM_KEY (custom value)
+ - API key environment variable: OPENAI_CUSTOM_KEY (custom value)

Apply similarly in the Gemini example (“your API key from Gemini”).

source/instructors/admin/integration/lti1-3Canvas.rst (6)

120-131: Clipboard UX: add non-intrusive success/failure feedback and DRY the scripts

Success alerts were intentionally removed (good), but there’s now no user-visible feedback. Also, 12 nearly identical copyRSTUrlX() functions repeat logic.

  • Suggest: a single helper that updates the clicked button label to “Copied” for 2–3 seconds, plus an aria-live status for screen readers. Keep errors in console, but also reflect failure in the button label.
  • This preserves a quiet UX while providing clear, accessible feedback and reduces duplication.
-<button onclick="copyRSTUrl1()">Copy URL</button><br>
-<script> function copyRSTUrl1() {
-const url = "https://apollo.codio.com/lti/resource_selection";
-navigator.clipboard.writeText(url).catch(err => {
- console.error('Failed to copy: ', err); }); } </script>
+<button id="copyBtn1" onclick="copyRST('copyBtn1','https://apollo.codio.com/lti/resource_selection')">Copy URL</button><br>
+<script>
+  // One helper for all copy buttons
+  function copyRST(btnId, url) {
+    const btn = document.getElementById(btnId);
+    const original = btn.textContent;
+    const status = document.getElementById('copyStatus') || (function () {
+      const el = document.createElement('div');
+      el.id = 'copyStatus';
+      el.setAttribute('aria-live', 'polite');
+      el.style.position = 'absolute'; el.style.left = '-9999px';
+      document.body.appendChild(el);
+      return el;
+    })();
+    navigator.clipboard.writeText(url).then(() => {
+      btn.textContent = 'Copied';
+      status.textContent = 'URL copied to clipboard';
+      setTimeout(() => (btn.textContent = original), 2000);
+    }).catch(err => {
+      console.error('Failed to copy: ', err);
+      btn.textContent = 'Copy failed';
+      setTimeout(() => (btn.textContent = original), 2000);
+      status.textContent = 'Copy failed';
+    });
+  }
+</script>

Apply the same pattern to the other buttons (copyRSTUrl2copyRSTUrl12) by replacing inline per-button functions with copyRST('copyBtnX','<url>').

Also applies to: 150-161, 177-188, 204-215, 318-320, 330-332, 339-341, 348-350


98-99: List punctuation and spacing

There’s a double space before “Assignment” and a missing serial comma; tighten for consistency.

-          Link Selection, Editor Button,  Assignment Selection and Course Navigation.
+          Link Selection, Editor Button, Assignment Selection, and Course Navigation.

152-152: Normalize “URL” capitalization

Use “URL” (not “Url”) for consistency with earlier instances.

-     <span style="color: teal;">Icon Url:</span><br>
+     <span style="color: teal;">Icon URL:</span><br>

Apply to all occurrences in this file.

Also applies to: 179-179, 206-206


225-225: Hyphenation

Minor readability tweak.

-     18. Press <strong>Save</strong> in bottom right corner<br><br>
+     18. Press <strong>Save</strong> in the bottom-right corner<br><br>

233-254: Add alt text to substitution images for accessibility

The |imageX| substitutions currently set width but no alt text. Add concise alts.

-.. |image1| image:: /instructors/admin/integration/CodioLTI1.3Integration.png
+.. |image1| image:: /instructors/admin/integration/CodioLTI1.3Integration.png
+   :alt: LTI 1.3 integration fields in Codio
    :width: 1500px  
-.. |image2| image:: /img/lti/canvasdeveloperkey.png
+.. |image2| image:: /img/lti/canvasdeveloperkey.png
+   :alt: Canvas Developer Keys page
    :width: 1500px
-.. |image3| image:: /img/lti/developerkeyvalues.png
+.. |image3| image:: /img/lti/developerkeyvalues.png
+   :alt: Canvas LTI key configuration fields
    :width: 1500px
-.. |image4| image:: /img/lti/canvasJWK.png
+.. |image4| image:: /img/lti/canvasJWK.png
+   :alt: Canvas JWK settings
    :width: 1500px
-.. |image5| image:: /img/lti/canvasadvantage.png
+.. |image5| image:: /img/lti/canvasadvantage.png
+   :alt: LTI Advantage Services toggles in Canvas
    :width: 1500px
-.. |image6| image:: /img/lti/canvasplacements.png
+.. |image6| image:: /img/lti/canvasplacements.png
+   :alt: Canvas placements configuration
    :width: 1500px
-.. |image7| image:: /img/lti/canvaslinkselect.png
+.. |image7| image:: /img/lti/canvaslinkselect.png
+   :alt: Canvas Link Selection placement
    :width: 1500px
-.. |image8| image:: /img/lti/canvaseditorbutton.png
+.. |image8| image:: /img/lti/canvaseditorbutton.png
+   :alt: Canvas Editor Button placement
    :width: 1500px
-.. |image9| image:: /img/lti/canvasassignment.png
+.. |image9| image:: /img/lti/canvasassignment.png
+   :alt: Canvas Assignment Selection placement
    :width: 1500px
-.. |image10| image:: /img/lti/canvasnavigation.png
+.. |image10| image:: /img/lti/canvasnavigation.png
+   :alt: Canvas Course Navigation placement
    :width: 1500px
-.. |image11| image:: /img/lti/canvasdetails.png
+.. |image11| image:: /img/lti/canvasdetails.png
+   :alt: Canvas Developer Key list with details
    :width: 1500px

364-364: Clarify the action in Assignments

Canvas UI usually uses a “+ Assignment” action. Recommend this clearer wording.

-      1. Go to Assignments in your course, select <strong>Assignment</strong>.<br><br>
+      1. Go to <strong>Assignments</strong> in your course, then click <strong>+ Assignment</strong>.<br><br>
📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between e53f939 and 5f8fba3.

⛔ Files ignored due to path filters (1)
  • source/img/joinclass.png is excluded by !**/*.png, !**/*.png
📒 Files selected for processing (3)
  • source/instructors/admin/integration/lti1-3Canvas.rst (15 hunks)
  • source/instructors/admin/organization/llms.rst (1 hunks)
  • student-source/students/accessing-codio/joining.rst (1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
**/*.rst

⚙️ CodeRabbit Configuration File

**/*.rst: Review files for:

  • Consistent formatting (e.g., headings, lists, links).
  • Clear and concise language.
  • Correct grammar and spelling.
  • Proper use of rst syntax (e.g., avoid broken links or invalid code blocks).
  • Adherence to style guides (e.g., consistent tone, terminology).
    Suggest improvements to enhance readability and accessibility.

Files:

  • student-source/students/accessing-codio/joining.rst
  • source/instructors/admin/organization/llms.rst
  • source/instructors/admin/integration/lti1-3Canvas.rst
🔇 Additional comments (1)
source/instructors/admin/organization/llms.rst (1)

63-75: OPENAI_CUSTOM_URL correction is consistent with the example script

The bullet now matches the script (LLM_URL=$OPENAI_CUSTOM_URL$SUB_PATH) and keeps OPENAI_CUSTOM_KEY for auth, which is correct. Nothing else to change here.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🧹 Nitpick comments (22)
source/instructors/getstarted/howto.rst (4)

21-21: Deduplicate Wistia loader script; keep E‑v1.js once per page.

Each embed block includes both the JSONP media script and E‑v1.js. Keep the media-specific JSONP per video, but load E-v1.js only once (ideally near the first embed) to reduce requests and potential race conditions.

Example change for subsequent embeds (keep E‑v1.js only in the first block):

-<script src="https://fast.wistia.com/embed/medias/5z8sv6nw5q.jsonp" async></script><script src="https://fast.wistia.com/assets/external/E-v1.js" async></script> <div class="wistia_responsive_padding" ...
+<script src="https://fast.wistia.com/embed/medias/5z8sv6nw5q.jsonp" async></script> <div class="wistia_responsive_padding" ...

21-21: Mute before seeking to avoid any transient audio.

You already pass muted=true in the class config, which is good. For belt and suspenders, call video.mute() before video.time(8) so the player is guaranteed muted before seeking/starting.

- _wq.push({ id: "5z8sv6nw5q", onReady: function(video) {video.time(8); video.mute();}});</script>
+ _wq.push({ id: "5z8sv6nw5q", onReady: function(video) {video.mute(); video.time(8);}});</script>

Apply similarly to other embeds in this file.

Also applies to: 32-32, 42-42, 52-52, 61-61


56-62: Add an HTML-only fallback note for non-HTML builders.

These .. raw:: html blocks won’t render in PDF/LaTeX builds. Consider wrapping with .. only:: html and providing a plain link/caption alternative for other builders.

-.. raw:: html
+.. only:: html
+
+.. raw:: html
     <script src="https://fast.wistia.com/embed/medias/rsmrdwd2y2.jsonp" async></script>...
+
+.. only:: not html
+
+   See “Creating a Standard Code Test in Codio” video: https://codio.wistia.com/medias/rsmrdwd2y2

99-100: Clarify the site-wide policy note.

Consider tightening the sentence and acknowledging muted playback for accessibility consistency.

-.. note::
-   All videos are configured to start at the 8-second mark for optimal viewing experience.
+.. note::
+   All embedded videos start at 8 seconds and are muted by default for a consistent, accessible experience.
source/instructors/getstarted/support/support.rst (7)

9-18: Tighten phrasing and align menu callouts.

Use consistent, action-oriented UI phrasing and “→” path style to match the rest of the docs.

-For support, use our integrated support system available in the dashboard and IDE.
+For support, use our integrated support system in the Dashboard and IDE.

-+---------------+-----------------------------------------------------------------------------------+
-| **Dashboard** | Support is available in the dashboard by clicking on the **Help** menu item at    |
-|               | the top and selecting **Support Chat**.                                           |
++---------------+-----------------------------------------------------------------------------------+
+| **Dashboard** | In the Dashboard: **Help → Support Chat**.                                        |
 |               |                                                                                    |
 +---------------+-----------------------------------------------------------------------------------+
-| **IDE**       | Support is available within the IDE from the **Help** menu item, then             |
-|               | **Support**.                                                                      |
+| **IDE**       | In the IDE: **Help → Support**.                                                   |
 +---------------+-----------------------------------------------------------------------------------+

29-35: Improve flow and image semantics; keep text before images in reading order.

Move the sentence before the image block so screen readers encounter the context first. Also, avoid left alignment if it causes text wrap issues on narrow viewports.

-.. image:: /img/intercomnotification.png
-   :alt: Intercom Notification
-   :align: left
-   :class: wrap-text
-
-If you are in Codio, you can see when a reply to your query arrives even if you have closed the support dialog box.
+If you are in Codio, you can see when a reply to your query arrives even if you have closed the support dialog box.
+
+.. image:: /img/intercomnotification.png
+   :alt: Intercom notification indicator in-app

36-36: Numeral style and concision.

Spell out small numbers and reduce redundancy.

-You'll receive an email notification if you don't see the reply within 2 minutes or if you've logged out of your Codio account.
+If you don't see a reply within two minutes—or if you're logged out—you'll receive an email notification.

41-45: Verify custom CSS usage for image wrapping.

:class: wrap-text assumes theme CSS. If this class isn’t universally available, text may collide with images. Consider removing the class and using standard :align:/:scale: or confirm site CSS defines it.


62-72: Clarify Contact URL guidance and tighten wording.

Minor grammar, remove extra spaces, and prefer “channel” over “area”.

-You can set a Contact URL for your students at the organization level (see :ref:`Organization Contact URL <org-contact-url>` ) and/or at the course level ( see :ref:`Course Contact URL <course-contact-url>` so they can raise questions directly to your preferred area.
+You can set a Contact URL for your students at the organization level (see :ref:`Organization Contact URL <org-contact-url>`) and/or at the course level (see :ref:`Course Contact URL <course-contact-url>`) so they can raise questions directly in your preferred channel.

74-78: Remove “N.B.” inside a note.

The directive already conveys emphasis; “N.B.” is redundant.

-.. note::
-   N.B. "Teacher" accounts will not be affected by this setting, and they will still be able to contact Codio in the usual manner.
+.. note::
+   "Teacher" accounts are not affected by this setting and can contact Codio as usual.

53-56: Community paragraph: split sentences and align tone.

Slight readability and style improvement.

-The Codio community forum is a place for Codio users to engage with each other and share best practices. You can access it from the Connect menu or go to `Codio Community <https://community.codio.com/>`_ directly.
+The Codio Community forum is where users engage with each other and share best practices. Access it from the Connect menu or go to `Codio Community <https://community.codio.com/>`_.
source/instructors/admin/integration/lti1-3Canvas.rst (11)

22-24: Add an aria-live status element up-front and reference it.

The copy helper creates a live region lazily. Prefer a single, page-level role="status" region to avoid duplicates and to simplify the script. Also, consider replacing the admonition text with a short sentence on the copy buttons’ behavior.

 .. important::
-   When copying links, please use the copy button adjacent to each link to ensure accuracy and prevent linking errors.
+   Use the adjacent copy buttons to avoid errors when transferring URLs. A status message will confirm success or failure.
+
+.. raw:: html
+
+   <div id="copyStatus" role="status" aria-live="polite" aria-atomic="true" style="position:absolute;left:-9999px;"></div>

96-99: Canvas placement names: parallel punctuation and Oxford comma.

Align with Canvas UI labels and improve readability with a serial comma.

-Link Selection, Editor Button, Assignment Selection and Course Navigation.
+Link Selection, Editor Button, Assignment Selection, and Course Navigation.

123-147: Consolidate the copy script; add role/atomic and keyboard focus safety.

Define copyRST once per page (preferably near the top) and remove duplicate blocks to reduce maintenance and redefinition risk.

-        <script>
-        function copyRST(btnId, url) {
+        <script>
+        function copyRST(btnId, url) {
             const btn = document.getElementById(btnId);
             const original = btn.textContent;
-            const status = document.getElementById('copyStatus') || (function () {
-                const el = document.createElement('div');
-                el.id = 'copyStatus';
-                el.setAttribute('aria-live', 'polite');
-                el.style.position = 'absolute'; el.style.left = '-9999px';
-                document.body.appendChild(el);
-                return el;
-            })();
+            const status = document.getElementById('copyStatus');
 
             navigator.clipboard.writeText(url).then(() => {
                 btn.textContent = 'Copied';
-                status.textContent = 'URL copied to clipboard';
+                if (status) { status.textContent = 'URL copied to clipboard'; }
                 setTimeout(() => (btn.textContent = original), 2000);
             }).catch(err => {
                 console.error('Failed to copy: ', err);
                 btn.textContent = 'Copy failed';
                 setTimeout(() => (btn.textContent = original), 2000);
-                status.textContent = 'Copy failed';
+                if (status) { status.textContent = 'Copy failed'; }
             });
-        }
-        </script>
+        }
+        </script>

Then remove other identical copyRST script blocks later in the file.


240-244: Tone and clarity in step text.

Use “Click” and add “the” for readability.

-18. Press <strong>Save</strong> in bottom-right corner
+18. Click <strong>Save</strong> in the bottom-right corner

248-291: Image sizing: avoid fixed 1500px widths.

Fixed pixel widths can overflow narrow viewports. Prefer relative sizing or scaling (e.g., :scale:) to let the theme handle responsiveness.

-:width: 1500px
+:scale: 70%

Apply consistently across |image1||image11| as appropriate.


345-347: Naming consistency: “LTI Integration 1.3” vs “LTI 1.3 Integration”.

Use one form consistently. Earlier you used “LTI Integration 1.3”; recommend sticking with that.

-From Codio, under <strong>LTI 1.3 Integration, copy the LTI URL</strong>
+From Codio, under <strong>LTI Integration 1.3</strong>, copy the LTI URL

351-354: Minor HTML cleanup and quote/spacing.

Remove stray spaces and ensure consistent onclick syntax.

-<button id="copyBtn9"
-       onclick="copyRST('copyBtn9','https://canvas.instructure.com')">Copy URL</button>
+<button id="copyBtn9" aria-label="Copy Platform ID" onclick="copyRST('copyBtn9','https://canvas.instructure.com')">Copy URL</button>
...
-<button id="copyBtn12"
-        onclick="copyRST ('copyBtn12','https://[CANVAS DOMAIN]/api/lti/authorize_redirect'
-        )">Copy URL</button>
+<button id="copyBtn12" aria-label="Copy Authentication Request URL" onclick="copyRST('copyBtn12','https://[CANVAS DOMAIN]/api/lti/authorize_redirect')">Copy URL</button>

Also applies to: 360-368, 372-375


415-437: UI label style in the note and quote characters.

Use strong emphasis for UI actions and avoid curly quotes for terms.

-<strong>Note:</strong> Do not paste the LTI Integration URL directly into the Canvas
-           External Tool URL field when creating an assignment. Instead, use the deep link
-          “Find” flow (recommended) or follow the “Connect by LTI Integration URL” method
-           described below.
+<strong>Note:</strong> Do not paste the LTI Integration URL directly into the Canvas
+External Tool URL field when creating an assignment. Instead, use the <strong>Find</strong> flow (recommended) or follow the <strong>Connect by LTI Integration URL</strong> method described below.

Also applies to: 425-428


472-496: Align video embeds with site standard (muted + onReady).

Other pages now autoplay muted and seek to 8 seconds. For consistency and to satisfy autoplay policies, mirror that here.

-<div class="wistia_embed wistia_async_bzowzoyfz1 seo=false videoFoam=true"
+<div class="wistia_embed wistia_async_bzowzoyfz1 seo=false videoFoam=true muted=true"
 ...
-</div></div></div></div>
+</div></div></div></div><script>window._wq=window._wq||[];_wq.push({id:"bzowzoyfz1",onReady:function(video){video.mute();video.time(8);}});</script>

Apply similarly to the other two video blocks.


300-313: Parallel structure in steps; minor grammar polish.

Add “the” and periods for consistency.

-4. Paste number you copied in Part 1 into <strong>Client ID</strong> field
+4. Paste the number you copied in Part 1 into the <strong>Client ID</strong> field.
-5. <strong>Submit → Install</strong>
+5. Click <strong>Submit → Install</strong>.

Also applies to: 314-322


205-229: Consolidate duplicate copyRST definitions

It looks like the refactor hasn’t been applied yet – there are still three identical <script> blocks declaring copyRST in source/instructors/admin/integration/lti1-3Canvas.rst:

  • Lines 124–129
  • Lines 206–212
  • Lines 382–388

Please remove the two redundant blocks and keep a single copyRST definition (or factor it into a shared include), so the function is defined only once and referenced wherever needed. This will reduce noise and maintenance overhead.

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 5f8fba3 and 161c16b.

⛔ Files ignored due to path filters (4)
  • source/img/codiofeedback.png is excluded by !**/*.png, !**/*.png
  • source/img/intercomstart.png is excluded by !**/*.png, !**/*.png
  • source/img/joinclass.png is excluded by !**/*.png, !**/*.png
  • source/img/manage_organization/studentoptions.png is excluded by !**/*.png, !**/*.png
📒 Files selected for processing (5)
  • source/instructors/admin/integration/lti1-3Canvas.rst (4 hunks)
  • source/instructors/admin/organization/llms.rst (3 hunks)
  • source/instructors/getstarted/howto.rst (4 hunks)
  • source/instructors/getstarted/support/support.rst (2 hunks)
  • student-source/students/accessing-codio/joining.rst (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (2)
  • student-source/students/accessing-codio/joining.rst
  • source/instructors/admin/organization/llms.rst
🧰 Additional context used
📓 Path-based instructions (1)
**/*.rst

⚙️ CodeRabbit configuration file

**/*.rst: Review files for:

  • Consistent formatting (e.g., headings, lists, links).
  • Clear and concise language.
  • Correct grammar and spelling.
  • Proper use of rst syntax (e.g., avoid broken links or invalid code blocks).
  • Adherence to style guides (e.g., consistent tone, terminology).
    Suggest improvements to enhance readability and accessibility.

Files:

  • source/instructors/getstarted/howto.rst
  • source/instructors/getstarted/support/support.rst
  • source/instructors/admin/integration/lti1-3Canvas.rst

Comment on lines +110 to +147
| 17. Expand each of the following fields, and copy the static links below:<br><br> |
| |
| <strong>Link Selection</strong><br> |
| Select <strong>LtiDeepLinkingRequest</strong><br> |
| |
| 17. Expand each of the following fields, and copy the static links below:<br><br> |
| <strong>Link Selection</strong><br> |
| Select <strong>LtiDeepLinkingRequest</strong><br> |
| <span style="color: teal;">Target Link URI:</span> |
| https://apollo.codio.com/lti/resource_selection |
| <button onclick="copyRSTUrl1()">Copy URL</button><br> |
| <script> function copyRSTUrl1() { |
| const url = "https://apollo.codio.com/lti/resource_selection"; |
| navigator.clipboard.writeText(url).then(() => { |
| alert('URL copied to clipboard!'); }).catch(err => { |
| console.error('Failed to copy: ', err); }); } </script> |
| <span style="color: teal;">Icon URL:</span><br> |
| https://static-assets.codio.com/dashboard/images/icons/favicon-16x16.da14ae918fd9bc3b.png |
| <span style="color: teal;">Target Link URI:</span><br> |
| https://apollo.codio.com/lti/resource_selection |
| <button id="copyBtn1" onclick="copyRST('copyBtn1','https://apollo.codio.com/lti/resource_selection')">Copy URL</button><br> |
| |
| <button onclick="copyRSTUrl2()">Copy URL</button><br> |
| <script> function copyRSTUrl2() { |
| const url = "https://static-assets.codio.com/dashboard/images/icons/favicon-16x16.da14ae918fd9bc3b.png"; |
| <span style="color: teal;">Icon URL:</span><br> |
| https://static-assets.codio.com/dashboard/images/icons/favicon-16x16.da14ae918fd9bc3b.png |
| <button id="copyBtn2" onclick="copyRST('copyBtn2','https://static-assets.codio.com/dashboard/images/icons/favicon-16x16.da14ae918fd9bc3b.png')">Copy URL</button><br> |
| |
| navigator.clipboard.writeText(url).then(() => { |
| alert('URL copied to clipboard!'); }).catch(err => { |
| console.error('Failed to copy: ', err); }); } </script> |
| <script> |
| function copyRST(btnId, url) { |
| const btn = document.getElementById(btnId); |
| const original = btn.textContent; |
| const status = document.getElementById('copyStatus') || (function () { |
| const el = document.createElement('div'); |
| el.id = 'copyStatus'; |
| el.setAttribute('aria-live', 'polite'); |
| el.style.position = 'absolute'; el.style.left = '-9999px'; |
| document.body.appendChild(el); |
| return el; |
| })(); |
| |
| navigator.clipboard.writeText(url).then(() => { |
| btn.textContent = 'Copied'; |
| status.textContent = 'URL copied to clipboard'; |
| setTimeout(() => (btn.textContent = original), 2000); |
| }).catch(err => { |
| console.error('Failed to copy: ', err); |
| btn.textContent = 'Copy failed'; |
| setTimeout(() => (btn.textContent = original), 2000); |
| status.textContent = 'Copy failed'; |
| }); |
| } |
| </script> |
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Accessibility: replace color-dependent labels and add button aria-labels.

Avoid using color alone to convey meaning and give each button an explicit label.

-        <span style="color: teal;">Target Link URI:</span><br>
+        <strong>Target Link URI:</strong><br>
 ...
-        <button id="copyBtn1" onclick="copyRST('copyBtn1','https://apollo.codio.com/lti/resource_selection')">Copy URL</button><br>
+        <button id="copyBtn1" aria-label="Copy Target Link URI" onclick="copyRST('copyBtn1','https://apollo.codio.com/lti/resource_selection')">Copy URL</button><br>
 ...
-        <span style="color: teal;">Icon URL:</span><br>
+        <strong>Icon URL:</strong><br>
-        <button id="copyBtn2" onclick="copyRST('copyBtn2','https://static-assets.codio.com/dashboard/images/icons/favicon-16x16.da14ae918fd9bc3b.png')">Copy URL</button><br>
+        <button id="copyBtn2" aria-label="Copy Icon URL" onclick="copyRST('copyBtn2','https://static-assets.codio.com/dashboard/images/icons/favicon-16x16.da14ae918fd9bc3b.png')">Copy URL</button><br>

Repeat for other buttons in this document.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
| 17. Expand each of the following fields, and copy the static links below:<br><br> |
| |
| <strong>Link Selection</strong><br> |
| Select <strong>LtiDeepLinkingRequest</strong><br> |
| |
| 17. Expand each of the following fields, and copy the static links below:<br><br> |
| <strong>Link Selection</strong><br> |
| Select <strong>LtiDeepLinkingRequest</strong><br> |
| <span style="color: teal;">Target Link URI:</span> |
| https://apollo.codio.com/lti/resource_selection |
| <button onclick="copyRSTUrl1()">Copy URL</button><br> |
| <script> function copyRSTUrl1() { |
| const url = "https://apollo.codio.com/lti/resource_selection"; |
| navigator.clipboard.writeText(url).then(() => { |
| alert('URL copied to clipboard!'); }).catch(err => { |
| console.error('Failed to copy: ', err); }); } </script> |
| <span style="color: teal;">Icon URL:</span><br> |
| https://static-assets.codio.com/dashboard/images/icons/favicon-16x16.da14ae918fd9bc3b.png |
| <span style="color: teal;">Target Link URI:</span><br> |
| https://apollo.codio.com/lti/resource_selection |
| <button id="copyBtn1" onclick="copyRST('copyBtn1','https://apollo.codio.com/lti/resource_selection')">Copy URL</button><br> |
| |
| <button onclick="copyRSTUrl2()">Copy URL</button><br> |
| <script> function copyRSTUrl2() { |
| const url = "https://static-assets.codio.com/dashboard/images/icons/favicon-16x16.da14ae918fd9bc3b.png"; |
| <span style="color: teal;">Icon URL:</span><br> |
| https://static-assets.codio.com/dashboard/images/icons/favicon-16x16.da14ae918fd9bc3b.png |
| <button id="copyBtn2" onclick="copyRST('copyBtn2','https://static-assets.codio.com/dashboard/images/icons/favicon-16x16.da14ae918fd9bc3b.png')">Copy URL</button><br> |
| |
| navigator.clipboard.writeText(url).then(() => { |
| alert('URL copied to clipboard!'); }).catch(err => { |
| console.error('Failed to copy: ', err); }); } </script> |
| <script> |
| function copyRST(btnId, url) { |
| const btn = document.getElementById(btnId); |
| const original = btn.textContent; |
| const status = document.getElementById('copyStatus') || (function () { |
| const el = document.createElement('div'); |
| el.id = 'copyStatus'; |
| el.setAttribute('aria-live', 'polite'); |
| el.style.position = 'absolute'; el.style.left = '-9999px'; |
| document.body.appendChild(el); |
| return el; |
| })(); |
| |
| navigator.clipboard.writeText(url).then(() => { |
| btn.textContent = 'Copied'; |
| status.textContent = 'URL copied to clipboard'; |
| setTimeout(() => (btn.textContent = original), 2000); |
| }).catch(err => { |
| console.error('Failed to copy: ', err); |
| btn.textContent = 'Copy failed'; |
| setTimeout(() => (btn.textContent = original), 2000); |
| status.textContent = 'Copy failed'; |
| }); |
| } |
| </script> |
<strong>Target Link URI:</strong><br>
https://apollo.codio.com/lti/resource_selection
<button id="copyBtn1"
aria-label="Copy Target Link URI"
onclick="copyRST('copyBtn1','https://apollo.codio.com/lti/resource_selection')">
Copy URL
</button><br>
<strong>Icon URL:</strong><br>
https://static-assets.codio.com/dashboard/images/icons/favicon-16x16.da14ae918fd9bc3b.png
<button id="copyBtn2"
aria-label="Copy Icon URL"
onclick="copyRST('copyBtn2','https://static-assets.codio.com/dashboard/images/icons/favicon-16x16.da14ae918fd9bc3b.png')">
Copy URL
</button><br>
🤖 Prompt for AI Agents
In source/instructors/admin/integration/lti1-3Canvas.rst around lines 110 to
147, the current UI uses color alone to convey the "Target Link URI" and "Icon
URL" labels and the Copy buttons lack accessible labels; update the markup so
that labels are not color-dependent (keep the teal color as decorative only and
include the label text in plain readable form), add descriptive aria-label
attributes to each Copy URL button (e.g., aria-label="Copy Target Link URL" and
aria-label="Copy Icon URL"), ensure the off-screen status element has
aria-live="polite" (already present) and is referenced/updated for assistive
tech, and verify the button visible text never relies solely on color for
meaning and remains readable when color is removed or high-contrast mode is
enabled.

Comment on lines 160 to 168
| |
| <span style="color: teal;">Target Link URI:</span><br> |
| https://apollo.codio.com/lti/editor_button |
| <button id="copyBtn3" onclick="copyRST('copyBtn3','https://apollo.codio.com/lti/editor_button')">Copy URL</button><br> |
| |
| <strong>Editor button</strong><br> |
| |
| <span style="color: teal;">Target Link URI:</span> |
| https://apollo.codio.com/lti/editor_button |
| <button onclick="copyRSTUrl3()">Copy URL</button><br> |
| <script> function copyRSTUrl3() { |
| const url = "https://apollo.codio.com/lti/editor_button"; |
| navigator.clipboard.writeText(url).then(() => { |
| alert('URL copied to clipboard!'); }).catch(err => { |
| console.error('Failed to copy: ', err); }); } </script> |
| <span style="color: teal;">Icon Url:</span><br> |
| https://static-assets.codio.com/dashboard/images/icons/favicon-16x16.da14ae918fd9bc3b.png |
| |
| <button onclick="copyRSTUrl4()">Copy URL</button><br> |
| <script> function copyRSTUrl4() { |
| const url = "https://static-assets.codio.com/dashboard/images/icons/favicon-16x16.da14ae918fd9bc3b.png"; |
| |
| navigator.clipboard.writeText(url).then(() => { |
| alert('URL copied to clipboard!'); }).catch(err => { |
| console.error('Failed to copy: ', err); }); } </script> |
| <span style="color: teal;">Icon URL:</span><br> |
| https://static-assets.codio.com/dashboard/images/icons/favicon-16x16.da14ae918fd9bc3b.png |
| <button id="copyBtn4" onclick="copyRST('copyBtn4','https://static-assets.codio.com/dashboard/images/icons/favicon-16x16.da14ae918fd9bc3b.png')">Copy URL</button><br> |
| </div> |
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Consistency: apply the same accessibility tweaks to all copy buttons.

Ensure all buttons have descriptive aria-labels and the teal spans are replaced with semantic <strong> labels throughout these blocks.

Also applies to: 175-185, 192-201

🤖 Prompt for AI Agents
In source/instructors/admin/integration/lti1-3Canvas.rst around lines 160-168
(also apply same changes at 175-185 and 192-201), the copy buttons lack
descriptive accessibility attributes and the teal-colored spans should be
semantic labels; update each button to include an appropriate aria-label (e.g.,
"Copy Target Link URL" or "Copy Icon URL") and replace the <span style="color:
teal;"> elements with semantic <strong> labels so screen-readers convey purpose
and the UI uses proper semantic markup.

Copy link
Collaborator

@shajason shajason left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good just one more place that still has the two-word language -you only see this page in the student docs.

in student-source/accessing-codio.rst
(you only see this page in the student docs)

it says:
Send you a two-word token

It should say:
Send you a multi-word token

shajason
shajason previously approved these changes Aug 25, 2025
@LolaValente LolaValente merged commit f1f2948 into master Aug 25, 2025
1 check was pending
@LolaValente LolaValente deleted the updatedCopyButton branch August 25, 2025 15:15
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

♻️ Duplicate comments (1)
source/instructors/admin/integration/lti1-3Canvas.rst (1)

115-121: Accessibility: replace color‑dependent labels and add descriptive aria‑labels to all “Copy URL” buttons.

Relying on teal color for labels isn’t accessible, and multiple “Copy URL” buttons lack context for screen readers. Use semantic labels and aria-labels. Apply consistently to all blocks below.

-        <span style="color: teal;">Target Link URI:</span><br>
+        <strong>Target Link URI:</strong><br>
         https://apollo.codio.com/lti/resource_selection
-        <button id="copyBtn1" onclick="copyRST('copyBtn1','https://apollo.codio.com/lti/resource_selection')">Copy URL</button><br>
+        <button id="copyBtn1" type="button" aria-label="Copy Target Link URI" onclick="copyRST('copyBtn1','https://apollo.codio.com/lti/resource_selection')">Copy URL</button><br>
@@
-        <span style="color: teal;">Icon URL:</span><br>
+        <strong>Icon URL:</strong><br>
         https://static-assets.codio.com/dashboard/images/icons/favicon-16x16.da14ae918fd9bc3b.png
-        <button id="copyBtn2" onclick="copyRST('copyBtn2','https://static-assets.codio.com/dashboard/images/icons/favicon-16x16.da14ae918fd9bc3b.png')">Copy URL</button><br>
+        <button id="copyBtn2" type="button" aria-label="Copy Icon URL" onclick="copyRST('copyBtn2','https://static-assets.codio.com/dashboard/images/icons/favicon-16x16.da14ae918fd9bc3b.png')">Copy URL</button><br>

Apply the same replacements for:

  • copyBtn3/4 (Editor button)
  • copyBtn5/6 (Assignment Selection)
  • copyBtn7/8 (Course Navigation)
  • copyBtn9 (Platform ID)
  • copyBtn10 (Public Keyset URL)
  • copyBtn11 (Access Token URL)
  • copyBtn12 (Authentication Request URL)

Also applies to: 161-167, 178-185, 194-201, 351-353, 357-369, 370-375

🧹 Nitpick comments (7)
source/instructors/getstarted/howto.rst (3)

21-21: Split long embed line and load E‑v1.js once for readability.

The combined script/embed line is hard to maintain. Split tags onto separate lines and keep the E‑v1.js include only once near the top of the page.

-    <script src="https://fast.wistia.com/embed/medias/5z8sv6nw5q.jsonp" async></script><script src="https://fast.wistia.com/assets/external/E-v1.js" async></script> <div class="wistia_responsive_padding" style="padding:56.25% 0 0 0;position:relative;"><div class="wistia_responsive_wrapper" style="height:100%;left:0;position:absolute;top:0;width:100%;"><div class="wistia_embed wistia_async_5z8sv6nw5q videoFoam=true muted=true" style="height:100%;position:relative;width:100%"><div class="wistia_swatch" style="height:100%;left:0;opacity:0;overflow:hidden;position:absolute;top:0;transition:opacity 200ms;width:100%;"><img src="https://fast.wistia.com/embed/medias/5z8sv6nw5q/swatch" style="filter:blur(5px);height:100%;object-fit:contain;width:100%;" alt="" aria-hidden="true" onload="this.parentNode.style.opacity=1;" /></div></div></div></div><script>window._wq = window._wq || [];_wq.push({ id: "5z8sv6nw5q", onReady: function(video) {video.mute(); video.time(8);}});</script>
+    <script src="https://fast.wistia.com/assets/external/E-v1.js" async></script>
+    <script src="https://fast.wistia.com/embed/medias/5z8sv6nw5q.jsonp" async></script>
+    <div class="wistia_responsive_padding" style="padding:56.25% 0 0 0;position:relative;">
+      <div class="wistia_responsive_wrapper" style="height:100%;left:0;position:absolute;top:0;width:100%;">
+        <div class="wistia_embed wistia_async_5z8sv6nw5q videoFoam=true muted=true" style="height:100%;position:relative;width:100%">
+          <div class="wistia_swatch" style="height:100%;left:0;opacity:0;overflow:hidden;position:absolute;top:0;transition:opacity 200ms;width:100%;">
+            <img src="https://fast.wistia.com/embed/medias/5z8sv6nw5q/swatch" style="filter:blur(5px);height:100%;object-fit:contain;width:100%;" alt="" aria-hidden="true" onload="this.parentNode.style.opacity=1;" />
+          </div>
+        </div>
+      </div>
+    </div>
+    <script>
+      window._wq = window._wq || [];
+      _wq.push({ id: "5z8sv6nw5q", onReady: function(video) { video.mute(); video.time(8); }});
+    </script>

52-52: Good consistency across embeds.

Same behavior applied uniformly. Consider adding a brief caption under each video summarizing its purpose to aid skimming.


56-63: Add a one‑sentence intro and optional transcript link.

Add a short description below the heading and, if available, a “View transcript” link to improve accessibility and scannability.

 Creating a Standard Code Test in Codio
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 .. raw:: html
@@
     <script src="https://fast.wistia.com/embed/medias/rsmrdwd2y2.jsonp" async></script><div class="wistia_responsive_padding" style="padding:56.25% 0 0 0;position:relative;"><div class="wistia_responsive_wrapper" style="height:100%;left:0;position:absolute;top:0;width:100%;"><div class="wistia_embed wistia_async_rsmrdwd2y2 videoFoam=true muted=true" style="height:100%;position:relative;width:100%"><div class="wistia_swatch" style="height:100%;left:0;opacity:0;overflow:hidden;position:absolute;top:0;transition:opacity 200ms;width:100%;"><img src="https://fast.wistia.com/embed/medias/rsmrdwd2y2/swatch" style="filter:blur(5px);height:100%;object-fit:contain;width:100%;" alt="" aria-hidden="true" onload="this.parentNode.style.opacity=1;" /></div></div></div></div><script>window._wq = window._wq || [];_wq.push({ id: "rsmrdwd2y2", onReady: function(video) {video.mute(); video.time(8); }});</script>
 
+A quick walkthrough of creating and configuring a standard code test in Codio. If you prefer text, see the step‑by‑step guide below. Optional: add a link to a transcript if available.
source/instructors/admin/integration/lti1-3Canvas.rst (4)

98-98: Improve scannability with bullets and a serial comma.

List placements as bullets to reduce ambiguity and add a serial comma.

-          Link Selection, Editor Button, Assignment Selection and Course Navigation.
+          The following placements should be included:
+          <ul>
+            <li>Link Selection</li>
+            <li>Editor Button</li>
+            <li>Assignment Selection</li>
+            <li>Course Navigation</li>
+          </ul>

123-147: Live region enhancement and graceful clipboard fallback.

Add role="status" to the live region and include a fallback when navigator.clipboard is unavailable (older browsers or restricted contexts).

-                el.setAttribute('aria-live', 'polite');
+                el.setAttribute('aria-live', 'polite');
+                el.setAttribute('role', 'status');
@@
-            navigator.clipboard.writeText(url).then(() => {
+            const doCopy = () => navigator.clipboard.writeText(url).catch(() => {
+              // Fallback for environments without Clipboard API
+              const ta = document.createElement('textarea');
+              ta.value = url;
+              ta.setAttribute('readonly', '');
+              ta.style.position = 'absolute';
+              ta.style.left = '-9999px';
+              document.body.appendChild(ta);
+              ta.select();
+              document.execCommand && document.execCommand('copy');
+              document.body.removeChild(ta);
+            });
+
+            doCopy().then(() => {
                 btn.textContent = 'Copied';
                 status.textContent = 'URL copied to clipboard';
                 setTimeout(() => (btn.textContent = original), 2000);
             }).catch(err => {

205-229: DRY: duplicate copyRST() blocks — keep a single definition.

The copyRST function is defined three times. Define it once (preferably near the end of the page) and remove duplicates to avoid future drift.

-    <script>
-    function copyRST(btnId, url) {
-        const btn = document.getElementById(btnId);
-        const original = btn.textContent;
-        const status = document.getElementById('copyStatus') || (function () {
-            const el = document.createElement('div');
-            el.id = 'copyStatus';
-            el.setAttribute('aria-live', 'polite');
-            el.style.position = 'absolute'; el.style.left = '-9999px';
-            document.body.appendChild(el);
-            return el;
-        })();
-
-        navigator.clipboard.writeText(url).then(() => {
-            btn.textContent = 'Copied';
-            status.textContent = 'URL copied to clipboard';
-            setTimeout(() => (btn.textContent = original), 2000);
-        }).catch(err => {
-            console.error('Failed to copy: ', err);
-            btn.textContent = 'Copy failed';
-            setTimeout(() => (btn.textContent = original), 2000);
-            status.textContent = 'Copy failed';
-        });
-    }
-    </script>
+    <!-- duplicate copyRST removed; single definition kept below -->

Also applies to: 381-405


418-419: Match Canvas UI label: “+ Assignment”.

Use the exact button label to avoid confusion.

-      1. Go to <strong>Assignments</strong> in your course, then click <strong>
-          Assignment</strong>.<br><br>
+      1. Go to <strong>Assignments</strong> in your course, then click <strong>+ Assignment</strong>.<br><br>
📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 161c16b and 84a854e.

⛔ Files ignored due to path filters (1)
  • source/img/intercomnotification.png is excluded by !**/*.png, !**/*.png
📒 Files selected for processing (3)
  • source/instructors/admin/integration/lti1-3Canvas.rst (4 hunks)
  • source/instructors/getstarted/howto.rst (5 hunks)
  • source/instructors/getstarted/support/support.rst (2 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • source/instructors/getstarted/support/support.rst
🧰 Additional context used
📓 Path-based instructions (1)
**/*.rst

⚙️ CodeRabbit configuration file

**/*.rst: Review files for:

  • Consistent formatting (e.g., headings, lists, links).
  • Clear and concise language.
  • Correct grammar and spelling.
  • Proper use of rst syntax (e.g., avoid broken links or invalid code blocks).
  • Adherence to style guides (e.g., consistent tone, terminology).
    Suggest improvements to enhance readability and accessibility.

Files:

  • source/instructors/getstarted/howto.rst
  • source/instructors/admin/integration/lti1-3Canvas.rst
🔇 Additional comments (4)
source/instructors/getstarted/howto.rst (3)

32-32: Consistent mute + start-at-8s behavior — looks good.


42-42: LGTM on accessibility default (muted) and consistent start time.


99-100: Nice global note. Consider applying the same standard across related pages.

This clarifies behavior plainly. Ensure other docs with Wistia embeds adopt the same default for consistency.

source/instructors/admin/integration/lti1-3Canvas.rst (1)

248-291: Alt text and dimensions for images — solid improvements.

Descriptive alt text and consistent widths aid accessibility and visual consistency.

Comment on lines +372 to +374
| <button id="copyBtn12" | |
| onclick="copyRST ('copyBtn12','https://[CANVAS DOMAIN]/api/lti/authorize_redirect'| |
| )">Copy URL</button><br><br> | |
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Broken onclick attribute (malformed JS due to line break) — copy button 12 won’t work.

The closing parenthesis is outside the attribute value. Keep the entire function call within the same quoted attribute.

-         <button id="copyBtn12"
-         onclick="copyRST ('copyBtn12','https://[CANVAS DOMAIN]/api/lti/authorize_redirect'
-         )">Copy URL</button><br><br>
+         <button id="copyBtn12" type="button" aria-label="Copy Authentication Request URL"
+           onclick="copyRST('copyBtn12','https://[CANVAS DOMAIN]/api/lti/authorize_redirect')">
+           Copy URL
+         </button><br><br>
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
| <button id="copyBtn12" | |
| onclick="copyRST ('copyBtn12','https://[CANVAS DOMAIN]/api/lti/authorize_redirect'| |
| )">Copy URL</button><br><br> | |
<button id="copyBtn12" type="button" aria-label="Copy Authentication Request URL"
onclick="copyRST('copyBtn12','https://[CANVAS DOMAIN]/api/lti/authorize_redirect')">
Copy URL
</button><br><br>
🤖 Prompt for AI Agents
In source/instructors/admin/integration/lti1-3Canvas.rst around lines 372 to
374, the onclick attribute for the copy button is broken by a line break so the
closing parenthesis and quote fall outside the attribute value; fix by placing
the entire copyRST function call (including closing parenthesis and closing
quote) on the same line inside the onclick attribute so the JavaScript is a
single valid string value.

@coderabbitai coderabbitai bot mentioned this pull request Aug 25, 2025
This was referenced Oct 16, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants