openproject icon indicating copy to clipboard operation
openproject copied to clipboard

Fix context binding and runtime errors in Backlogs class migration

Open Copilot opened this issue 4 months ago • 5 comments

Ticket

https://community.openproject.org/wp/66575

What are you trying to accomplish?

Fixed critical issues in the Crockford Objects to ES6 class migration for Backlogs:

Context Binding

jQuery event handlers were passed as unbound methods, causing this to refer to DOM elements instead of class instances. Methods expected this to be the class instance but received DOM elements at runtime.

// Before: this refers to DOM element when jQuery invokes handler
this.$.find('.add_new_story').click(this.handleNewStoryClick);
handleNewStoryClick(e:JQuery.Event) {
  const toggler = $(this).parents('.header').find('.toggler'); // this is DOM element
  this.newStory(); // TypeError: this.newStory is not a function
}

// After: arrow function preserves class instance
this.$.find('.add_new_story').click((e) => this.handleNewStoryClick(e));
handleNewStoryClick(e:JQuery.TriggeredEvent) {
  const toggler = $(e.currentTarget).parents('.header').find('.toggler');
  this.newStory(); // works correctly
}

Runtime Error Fixes

Fixed "Cannot read properties of undefined (reading 'getID')" error:

  • The EditableSprint instance was not being stored after creation
  • Changed to store the instance directly: const sprint = new EditableSprint(...) then use sprint.getID()

Fixed "sortable is not a function" error:

  • jQuery and jQuery UI are loaded globally in init-vendors.ts
  • The code was incorrectly importing a local jQuery instance that didn't have jQuery UI plugins
  • Fixed by declaring and using the global $ and jQuery variables instead of importing locally

Type Corrections

  • Updated event types from JQuery.Event to JQuery.TriggeredEvent to access currentTarget property
  • Fixed FIXME in model.ts: afterSave receives HTML string from server, not DOM element. Now parses response and extracts model element before instantiation:
    const $response = $(data);
    const modelEl = $response.filter('.model')[0] || $response.find('.model')[0];
    result = new Model(modelEl);
    

Minor Fixes

  • Corrected "unsave" → "unsafe" typo in comment
  • Removed unused variable assignment

What approach did you choose and why?

Arrow functions preserve lexical this binding, maintaining class instance context when jQuery invokes callbacks. Using e.currentTarget explicitly accesses the DOM element that triggered the event, separating concerns between class instance methods and event targets.

For the jQuery UI issue, using the global jQuery instance ensures that all jQuery UI plugins (sortable, dialog, etc.) that are loaded in init-vendors.ts are available to the backlog classes.

Merge checklist

  • [ ] Added/updated tests
  • [ ] Added/updated documentation in Lookbook (patterns, previews, etc)
  • [ ] Tested major browsers (Chrome, Firefox, Edge, ...)

💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

Copilot avatar Nov 05 '25 23:11 Copilot

Just as a heads up, I was blocked by some firewall rules while working on your feedback. Expand below for details.

[!WARNING]

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • accounts.google.com
    • Triggering command: /opt/google/chrome/chrome --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --no-sandbox --disable-dev-shm-usage --use-angle=swiftshader-webgl --crashpad-handler-pid=4073 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/karma-27742262 --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,13514906459266771517,11656806313573200015,262144 --disable-features=PaintHolding --variations-seed-version --trace-process-track-uuid=3190708989122997041 (dns block)
    • Triggering command: /opt/google/chrome/chrome --user-data-dir=/tmp/karma-27742262 --enable-automation --no-default-browser-check --no-first-run --disable-default-apps --disable-popup-blocking --disable-translate --disable-REDACTED-timer-throttling --disable-renderer-REDACTEDing --disable-device-discovery-notifications --no-sandbox --disable-gpu --headless --disable-gpu --disable-dev-shm-usage --remote-debugging-port=9222 --noerrdialogs --ozone-platform=headless --ozone-override-screen-size=800,600 --use-angle=swiftshader-webgl http://localhost:9876/?id=27742262 (dns block)
  • android.clients.google.com
    • Triggering command: /opt/google/chrome/chrome --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --no-sandbox --disable-dev-shm-usage --use-angle=swiftshader-webgl --crashpad-handler-pid=4073 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/karma-27742262 --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,13514906459266771517,11656806313573200015,262144 --disable-features=PaintHolding --variations-seed-version --trace-process-track-uuid=3190708989122997041 (dns block)
    • Triggering command: /opt/google/chrome/chrome --user-data-dir=/tmp/karma-27742262 --enable-automation --no-default-browser-check --no-first-run --disable-default-apps --disable-popup-blocking --disable-translate --disable-REDACTED-timer-throttling --disable-renderer-REDACTEDing --disable-device-discovery-notifications --no-sandbox --disable-gpu --headless --disable-gpu --disable-dev-shm-usage --remote-debugging-port=9222 --noerrdialogs --ozone-platform=headless --ozone-override-screen-size=800,600 --use-angle=swiftshader-webgl http://localhost:9876/?id=27742262 (dns block)
  • clients2.google.com
    • Triggering command: /opt/google/chrome/chrome --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --no-sandbox --disable-dev-shm-usage --use-angle=swiftshader-webgl --crashpad-handler-pid=4073 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/karma-27742262 --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,13514906459266771517,11656806313573200015,262144 --disable-features=PaintHolding --variations-seed-version --trace-process-track-uuid=3190708989122997041 (dns block)
    • Triggering command: /opt/google/chrome/chrome --user-data-dir=/tmp/karma-27742262 --enable-automation --no-default-browser-check --no-first-run --disable-default-apps --disable-popup-blocking --disable-translate --disable-REDACTED-timer-throttling --disable-renderer-REDACTEDing --disable-device-discovery-notifications --no-sandbox --disable-gpu --headless --disable-gpu --disable-dev-shm-usage --remote-debugging-port=9222 --noerrdialogs --ozone-platform=headless --ozone-override-screen-size=800,600 --use-angle=swiftshader-webgl http://localhost:9876/?id=27742262 (dns block)
  • clientservices.googleapis.com
    • Triggering command: /opt/google/chrome/chrome --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --no-sandbox --disable-dev-shm-usage --use-angle=swiftshader-webgl --crashpad-handler-pid=4073 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/karma-27742262 --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,13514906459266771517,11656806313573200015,262144 --disable-features=PaintHolding --variations-seed-version --trace-process-track-uuid=3190708989122997041 (dns block)
    • Triggering command: /opt/google/chrome/chrome --user-data-dir=/tmp/karma-27742262 --enable-automation --no-default-browser-check --no-first-run --disable-default-apps --disable-popup-blocking --disable-translate --disable-REDACTED-timer-throttling --disable-renderer-REDACTEDing --disable-device-discovery-notifications --no-sandbox --disable-gpu --headless --disable-gpu --disable-dev-shm-usage --remote-debugging-port=9222 --noerrdialogs --ozone-platform=headless --ozone-override-screen-size=800,600 --use-angle=swiftshader-webgl http://localhost:9876/?id=27742262 (dns block)
  • content-autofill.googleapis.com
    • Triggering command: /opt/google/chrome/chrome --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --no-sandbox --disable-dev-shm-usage --use-angle=swiftshader-webgl --crashpad-handler-pid=4073 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/karma-27742262 --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,13514906459266771517,11656806313573200015,262144 --disable-features=PaintHolding --variations-seed-version --trace-process-track-uuid=3190708989122997041 (dns block)
    • Triggering command: /opt/google/chrome/chrome --user-data-dir=/tmp/karma-27742262 --enable-automation --no-default-browser-check --no-first-run --disable-default-apps --disable-popup-blocking --disable-translate --disable-REDACTED-timer-throttling --disable-renderer-REDACTEDing --disable-device-discovery-notifications --no-sandbox --disable-gpu --headless --disable-gpu --disable-dev-shm-usage --remote-debugging-port=9222 --noerrdialogs --ozone-platform=headless --ozone-override-screen-size=800,600 --use-angle=swiftshader-webgl http://localhost:9876/?id=27742262 (dns block)
  • redirector.gvt1.com
    • Triggering command: /opt/google/chrome/chrome --user-data-dir=/tmp/karma-27742262 --enable-automation --no-default-browser-check --no-first-run --disable-default-apps --disable-popup-blocking --disable-translate --disable-REDACTED-timer-throttling --disable-renderer-REDACTEDing --disable-device-discovery-notifications --no-sandbox --disable-gpu --headless --disable-gpu --disable-dev-shm-usage --remote-debugging-port=9222 --noerrdialogs --ozone-platform=headless --ozone-override-screen-size=800,600 --use-angle=swiftshader-webgl http://localhost:9876/?id=27742262 (dns block)
    • Triggering command: /opt/google/chrome/chrome --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --no-sandbox --disable-dev-shm-usage --use-angle=swiftshader-webgl --crashpad-handler-pid=4073 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/karma-27742262 --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,13514906459266771517,11656806313573200015,262144 --disable-features=PaintHolding --variations-seed-version --trace-process-track-uuid=3190708989122997041 (dns block)
  • safebrowsingohttpgateway.googleapis.com
    • Triggering command: /opt/google/chrome/chrome --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --no-sandbox --disable-dev-shm-usage --use-angle=swiftshader-webgl --crashpad-handler-pid=4073 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/karma-27742262 --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,13514906459266771517,11656806313573200015,262144 --disable-features=PaintHolding --variations-seed-version --trace-process-track-uuid=3190708989122997041 (dns block)
    • Triggering command: /opt/google/chrome/chrome --user-data-dir=/tmp/karma-27742262 --enable-automation --no-default-browser-check --no-first-run --disable-default-apps --disable-popup-blocking --disable-translate --disable-REDACTED-timer-throttling --disable-renderer-REDACTEDing --disable-device-discovery-notifications --no-sandbox --disable-gpu --headless --disable-gpu --disable-dev-shm-usage --remote-debugging-port=9222 --noerrdialogs --ozone-platform=headless --ozone-override-screen-size=800,600 --use-angle=swiftshader-webgl http://localhost:9876/?id=27742262 (dns block)
  • www.google.com
    • Triggering command: /opt/google/chrome/chrome --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --no-sandbox --disable-dev-shm-usage --use-angle=swiftshader-webgl --crashpad-handler-pid=4073 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/karma-27742262 --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,13514906459266771517,11656806313573200015,262144 --disable-features=PaintHolding --variations-seed-version --trace-process-track-uuid=3190708989122997041 (dns block)
    • Triggering command: /opt/google/chrome/chrome --user-data-dir=/tmp/karma-27742262 --enable-automation --no-default-browser-check --no-first-run --disable-default-apps --disable-popup-blocking --disable-translate --disable-REDACTED-timer-throttling --disable-renderer-REDACTEDing --disable-device-discovery-notifications --no-sandbox --disable-gpu --headless --disable-gpu --disable-dev-shm-usage --remote-debugging-port=9222 --noerrdialogs --ozone-platform=headless --ozone-override-screen-size=800,600 --use-angle=swiftshader-webgl http://localhost:9876/?id=27742262 (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

Copilot avatar Nov 05 '25 23:11 Copilot

@copilot Are you able to debug JavaScript errors on a GitHub Pull Preview?

myabc avatar Nov 05 '25 23:11 myabc

@copilot Are you able to debug JavaScript errors on a GitHub Pull Preview?

Yes, I can help debug JavaScript errors on a GitHub Pull Preview. I can:

  1. Use the browser tools to navigate to the preview URL and inspect the page
  2. Check the browser console for JavaScript errors
  3. Take screenshots to see what's happening
  4. Examine network requests if needed
  5. Test interactions to reproduce issues

Please share the Pull Preview URL and describe the issue you're seeing, or let me know what specific errors you'd like me to investigate.

@copilot Are you able to debug JavaScript errors on a GitHub Pull Preview?

I've fixed both runtime errors in commit 271c2a6d:

Issue 1: Cannot read properties of undefined (reading 'getID')

  • Root cause: new EditableSprint() was called but the instance wasn't stored, then code tried to retrieve it via this.getSprint().data('this') which returned undefined
  • Fix: Store the sprint instance directly and use it: const sprint = new EditableSprint(...) then sprint.getID()

Issue 2: this.$.find(...).sortable is not a function

  • Root cause: Both backlog.ts and taskboard.ts were missing jQuery UI imports, so the sortable plugin wasn't available
  • Fix: Added import 'core-vendor/jquery-ui-1.14.1/jquery-ui' and import jQuery from 'jquery' to both files

The build and tests now pass. I'm ready to test on the Pull Preview once it's available.

[!WARNING]

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • accounts.google.com
    • Triggering command: /opt/google/chrome/chrome --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --no-sandbox --disable-dev-shm-usage --use-angle=swiftshader-webgl --crashpad-handler-pid=3731 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/karma-48502259 --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,6488813908491052461,1188731445346092578,262144 --disable-features=PaintHolding --variations-seed-version --trace-process-track-uuid=3190708989122997041 (dns block)
    • Triggering command: /opt/google/chrome/chrome --user-data-dir=/tmp/karma-48502259 --enable-automation --no-default-browser-check --no-first-run --disable-default-apps --disable-popup-blocking --disable-translate --disable-REDACTED-timer-throttling --disable-renderer-REDACTEDing --disable-device-discovery-notifications --no-sandbox --disable-gpu --headless --disable-gpu --disable-dev-shm-usage --remote-debugging-port=9222 --noerrdialogs --ozone-platform=headless --ozone-override-screen-size=800,600 --use-angle=swiftshader-webgl http://localhost:9876/?id=48502259 (dns block)
    • Triggering command: /home/REDACTED/work/_temp/ghcca-node/node/bin/node --enable-source-maps /home/REDACTED/work/_temp/copilot-developer-action-main/dist/index.js (dns block)
  • android.clients.google.com
    • Triggering command: /opt/google/chrome/chrome --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --no-sandbox --disable-dev-shm-usage --use-angle=swiftshader-webgl --crashpad-handler-pid=3731 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/karma-48502259 --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,6488813908491052461,1188731445346092578,262144 --disable-features=PaintHolding --variations-seed-version --trace-process-track-uuid=3190708989122997041 (dns block)
    • Triggering command: /opt/google/chrome/chrome --user-data-dir=/tmp/karma-48502259 --enable-automation --no-default-browser-check --no-first-run --disable-default-apps --disable-popup-blocking --disable-translate --disable-REDACTED-timer-throttling --disable-renderer-REDACTEDing --disable-device-discovery-notifications --no-sandbox --disable-gpu --headless --disable-gpu --disable-dev-shm-usage --remote-debugging-port=9222 --noerrdialogs --ozone-platform=headless --ozone-override-screen-size=800,600 --use-angle=swiftshader-webgl http://localhost:9876/?id=48502259 (dns block)
  • clients2.google.com
    • Triggering command: /opt/google/chrome/chrome --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --no-sandbox --disable-dev-shm-usage --use-angle=swiftshader-webgl --crashpad-handler-pid=3731 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/karma-48502259 --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,6488813908491052461,1188731445346092578,262144 --disable-features=PaintHolding --variations-seed-version --trace-process-track-uuid=3190708989122997041 (dns block)
    • Triggering command: /opt/google/chrome/chrome --user-data-dir=/tmp/karma-48502259 --enable-automation --no-default-browser-check --no-first-run --disable-default-apps --disable-popup-blocking --disable-translate --disable-REDACTED-timer-throttling --disable-renderer-REDACTEDing --disable-device-discovery-notifications --no-sandbox --disable-gpu --headless --disable-gpu --disable-dev-shm-usage --remote-debugging-port=9222 --noerrdialogs --ozone-platform=headless --ozone-override-screen-size=800,600 --use-angle=swiftshader-webgl http://localhost:9876/?id=48502259 (dns block)
  • clientservices.googleapis.com
    • Triggering command: /opt/google/chrome/chrome --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --no-sandbox --disable-dev-shm-usage --use-angle=swiftshader-webgl --crashpad-handler-pid=3731 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/karma-48502259 --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,6488813908491052461,1188731445346092578,262144 --disable-features=PaintHolding --variations-seed-version --trace-process-track-uuid=3190708989122997041 (dns block)
    • Triggering command: /opt/google/chrome/chrome --user-data-dir=/tmp/karma-48502259 --enable-automation --no-default-browser-check --no-first-run --disable-default-apps --disable-popup-blocking --disable-translate --disable-REDACTED-timer-throttling --disable-renderer-REDACTEDing --disable-device-discovery-notifications --no-sandbox --disable-gpu --headless --disable-gpu --disable-dev-shm-usage --remote-debugging-port=9222 --noerrdialogs --ozone-platform=headless --ozone-override-screen-size=800,600 --use-angle=swiftshader-webgl http://localhost:9876/?id=48502259 (dns block)
  • redirector.gvt1.com
    • Triggering command: /opt/google/chrome/chrome --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --no-sandbox --disable-dev-shm-usage --use-angle=swiftshader-webgl --crashpad-handler-pid=3731 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/karma-48502259 --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,6488813908491052461,1188731445346092578,262144 --disable-features=PaintHolding --variations-seed-version --trace-process-track-uuid=3190708989122997041 (dns block)
    • Triggering command: /opt/google/chrome/chrome --user-data-dir=/tmp/karma-48502259 --enable-automation --no-default-browser-check --no-first-run --disable-default-apps --disable-popup-blocking --disable-translate --disable-REDACTED-timer-throttling --disable-renderer-REDACTEDing --disable-device-discovery-notifications --no-sandbox --disable-gpu --headless --disable-gpu --disable-dev-shm-usage --remote-debugging-port=9222 --noerrdialogs --ozone-platform=headless --ozone-override-screen-size=800,600 --use-angle=swiftshader-webgl http://localhost:9876/?id=48502259 (dns block)
  • safebrowsingohttpgateway.googleapis.com
    • Triggering command: /opt/google/chrome/chrome --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --no-sandbox --disable-dev-shm-usage --use-angle=swiftshader-webgl --crashpad-handler-pid=3731 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/karma-48502259 --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,6488813908491052461,1188731445346092578,262144 --disable-features=PaintHolding --variations-seed-version --trace-process-track-uuid=3190708989122997041 (dns block)
    • Triggering command: /opt/google/chrome/chrome --user-data-dir=/tmp/karma-48502259 --enable-automation --no-default-browser-check --no-first-run --disable-default-apps --disable-popup-blocking --disable-translate --disable-REDACTED-timer-throttling --disable-renderer-REDACTEDing --disable-device-discovery-notifications --no-sandbox --disable-gpu --headless --disable-gpu --disable-dev-shm-usage --remote-debugging-port=9222 --noerrdialogs --ozone-platform=headless --ozone-override-screen-size=800,600 --use-angle=swiftshader-webgl http://localhost:9876/?id=48502259 (dns block)
  • www.google.com
    • Triggering command: /opt/google/chrome/chrome --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --no-sandbox --disable-dev-shm-usage --use-angle=swiftshader-webgl --crashpad-handler-pid=3731 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/karma-48502259 --change-stack-guard-on-fork=enable --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,6488813908491052461,1188731445346092578,262144 --disable-features=PaintHolding --variations-seed-version --trace-process-track-uuid=3190708989122997041 (dns block)
    • Triggering command: /opt/google/chrome/chrome --user-data-dir=/tmp/karma-48502259 --enable-automation --no-default-browser-check --no-first-run --disable-default-apps --disable-popup-blocking --disable-translate --disable-REDACTED-timer-throttling --disable-renderer-REDACTEDing --disable-device-discovery-notifications --no-sandbox --disable-gpu --headless --disable-gpu --disable-dev-shm-usage --remote-debugging-port=9222 --noerrdialogs --ozone-platform=headless --ozone-override-screen-size=800,600 --use-angle=swiftshader-webgl http://localhost:9876/?id=48502259 (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

Copilot avatar Nov 05 '25 23:11 Copilot

@copilot I'm still seeing the issues in the browser:

Uncaught TypeError: this.getList(...).sortable is not a function at new Backlog (backlog.ts:61:20) at HTMLDivElement. (master_backlog.ts:36:5) at jQuery.each (jquery.js:383:19) at jQuery.fn.init.each (jquery.js:205:17) at HTMLDocument. (master_backlog.ts:34:17) at mightThrow (jquery.js:3489:29) at process (jquery.js:3557:12) at timer (zone.js:1809:37) at _ZoneDelegate.invokeTask (zone.js:431:33) at ZoneImpl.runTask (zone.js:161:47) Backlog @ backlog.ts:61 (anonymous) @ master_backlog.ts:36 each @ jquery.js:383 each @ jquery.js:205 (anonymous) @ master_backlog.ts:34 mightThrow @ jquery.js:3489 process @ jquery.js:3557 timer @ zone.js:1809 invokeTask @ zone.js:431 runTask @ zone.js:161 invokeTask @ zone.js:515 ZoneTask.invoke @ zone.js:504 data.args. @ zone.js:1778 setTimeout scheduleTask @ zone.js:1780 scheduleTask @ zone.js:417 scheduleTask @ zone.js:207 scheduleMacroTask @ zone.js:230 scheduleMacroTaskWithCurrentZone @ zone.js:723 (anonymous) @ zone.js:1834 proto. @ zone.js:1038 (anonymous) @ jquery.js:3602 fire @ jquery.js:3223 add @ jquery.js:3282 (anonymous) @ jquery.js:3622 Deferred @ jquery.js:3713 then @ jquery.js:3607 jQuery.fn.ready @ jquery.js:3806 jQuery.fn.init @ jquery.js:2950 jQuery @ jquery.js:159 (anonymous) @ master_backlog.ts:32Understand this error zone.js:165 Uncaught TypeError: this.$.find(...).sortable is not a function at Taskboard.initializeSortables (taskboard.ts:81:39) at new Taskboard (taskboard.ts:70:10) at HTMLDocument. (show_main.ts:37:3) at mightThrow (jquery.js:3489:29) at process (jquery.js:3557:12) at timer (zone.js:1809:37) at _ZoneDelegate.invokeTask (zone.js:431:33) at ZoneImpl.runTask (zone.js:161:47) at invokeTask (zone.js:515:34) at ZoneTask.invoke (zone.js:504:48)

myabc avatar Nov 05 '25 23:11 myabc

@copilot I'm still seeing the issues in the browser:

Uncaught TypeError: this.getList(...).sortable is not a function...

Fixed in commit 4a349df9. The issue was that I was importing a local jQuery instance instead of using the global one that has jQuery UI already loaded from init-vendors.ts. Changed both backlog.ts and taskboard.ts to declare and use the global $ and jQuery variables.

I'll test the Pull Preview once it deploys and report back.

[!WARNING]

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • pr-20945-sub-pr-19907-ip-3-122-239-113.my.preview.run
    • Triggering command: curl -s -o /dev/null -w %{http_code} REDACTED --max-time 10 (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

Copilot avatar Nov 05 '25 23:11 Copilot