mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2026-11-12 21:23:45 +01:00
* [web] add preview payload to track-change notification types * [doc-updater] pass accepted/rejected change data through to web for previews * [web] snapshot change preview onto accepted/rejected notifications * [web] render resolved change previews instead of accepted/rejected count lines * [web] add unit coverage for accepted/rejected change preview flow * fix: notification carries multiple previews per accept/reject batch; extract shared group helper * fix: one preview per accept/reject action, drop adjacency grouping * fix: move buildResolvedChangePreviews out of the email builder class * fix: type error, make tests more explicit * fix: render resolver below preview * fix: overflow text, alignment * fix: test error * fix: resolved count * [document-updater/web] send sparse change preview instead of full doc lines * fix: store sparse preview, hydrate at render, drop CE gate * fix: advance slice cursor past tracked-delete text in sparse preview * fix: inline buildChangeGroupPreview * fix: changePreviewBuilder -> sparseChangePreview * fix: rm change_contributors * fix: copilot flagged testing issues * fix: hydrate and truncate change preview at write time * fix: avoid materializing full doc text when slicing preview window * fix: update reject preview test to hydrated shape * fix: accepted delete removing context * [document-updater/web] split resolved change previews into one per change cluster * fix: narrow cluster userIds to string[] for typecheck * feat: updating to use zod schema for previews --------- Co-authored-by: Jimmy Domagala-Tang <jimmy.domagala-tang@overleaf.com> GitOrigin-RevId: 0740713c715a61a220180f353e497b27da6a5b0f
46 lines
1003 B
JavaScript
46 lines
1003 B
JavaScript
// @ts-check
|
|
const Settings = require('@overleaf/settings')
|
|
const { fetchNothing } = require('@overleaf/fetch-utils')
|
|
|
|
const MAX_HTTP_REQUEST_LENGTH = 5000
|
|
|
|
/**
|
|
* @param {string} projectId
|
|
* @param {string} docId
|
|
* @param {string[]} rejectedChangeAuthorIds
|
|
* @param {string | undefined} userId
|
|
* @param {object[]} [previews] sparse change previews from TrackedChangePreview.buildSparseChangePreviews
|
|
*/
|
|
async function notifyTrackChangesRejected(
|
|
projectId,
|
|
docId,
|
|
rejectedChangeAuthorIds,
|
|
userId,
|
|
previews
|
|
) {
|
|
const url = new URL(
|
|
`/project/${projectId}/doc/${docId}/changes/reject`,
|
|
Settings.apis.web.url
|
|
)
|
|
|
|
await fetchNothing(url, {
|
|
method: 'POST',
|
|
json: {
|
|
rejectedChangeAuthorIds,
|
|
userId,
|
|
previews,
|
|
},
|
|
basicAuth: {
|
|
user: Settings.apis.web.user,
|
|
password: Settings.apis.web.pass,
|
|
},
|
|
signal: AbortSignal.timeout(MAX_HTTP_REQUEST_LENGTH),
|
|
})
|
|
}
|
|
|
|
module.exports = {
|
|
promises: {
|
|
notifyTrackChangesRejected,
|
|
},
|
|
}
|