Migrate Backlogs to JavaScript classes, type improvements
⚠️ This PR is based off of #19429. Please review/merge that PR first.
Ticket
https://community.openproject.org/wp/66575
What are you trying to accomplish?
Migrates backlogs from Crockford Objects to JavaScript classes.
Screenshots
What approach did you choose and why?
Merge checklist
- [ ] Added/updated tests
- [ ] Added/updated documentation in Lookbook (patterns, previews, etc)
- [ ] Tested major browsers (Chrome, Firefox, Edge, ...)
@copilot please go through this draft conversion of a very old part of the codebase from "Crockford Objects"/custom Object factories (RB.Object.initialize) to modern JavaScript/TypeScript classes. Look for any possible errors in the conversion and correct please.
You may want to start with the suggestions that you provided as comments in this Pull Request: https://github.com/opf/openproject/pull/19907#discussion_r2496474788
Do the following before committing or pushing:
npm run generate-typings
npm run build
npm run test
Although there are no test cases that cover these particular files, this will at least check TypeScript compiles.
@myabc I've opened a new pull request, #20945, to work on those changes. Once the pull request is ready, I'll request review from you.