silverstripe-admin
silverstripe-admin copied to clipboard
Preload and cache "insert link" forms
Acceptance Criteria
- As a CMS author, I can insert links without breaking my writing flow due to sluggish UIs
- All "insert link" forms are available without a loading delay in the browser after first load
- The "page" dropdown refreshes whenever the "insert link to page" form is opened
- The "insert anchor" form automatically has the current page set when the form is opened
- The anchor list refreshes whenever the "insert anchor" form is opened
- The caches are cleared when the CMS language is changed
- The caches can be cleared by the user through default browser mechanisms
Notes
- This is one of the most common user actions in the CMS, so detail optimisations are warranted
- Every form schema based form should be able to opt-in to this logic
- HTTP-based caching rules would allow easy cache clearing: Either through expiry times, or through a hard browser refresh by the user.
- Technically different users could get different form schema responses - we should tie these caches to various environment criteria (UserID, SubsiteID)
- This is a partial performance regression from SS3: The "insert link" form only loaded the first time and persists in the DOM until the browser is refreshed
- Follow up from https://github.com/silverstripe/silverstripe-framework/issues/5947