// Version history for a Seafile file: see earlier versions, download one, or restore it.
// Uses sf, fmtSize, openSheet, confirmSheet, toast, esc and FORM from app.js.
async function fileHistory(repo, path, name, readOnly) {
const base = `/api2/repos/${encodeURIComponent(repo)}/file`;
const el = openSheet('Version history', name, '
Loading…
');
el.querySelector('.sheet').classList.add('wide');
try {
let commits = [], next = '';
for (let page = 0; page < 3; page++) { // up to three pages of history
const r = await sf.req(`${base}/history/?p=${encodeURIComponent(path)}${next ? '&commit_id=' + encodeURIComponent(next) : ''}`);
commits = commits.concat(r.commits || []);
next = r.next_start_commit; if (!next) break;
}
if (!document.body.contains(el)) return;
if (!commits.length) { el.querySelector('.empty').textContent = 'No earlier versions are kept for this file.'; return; }
const body = el.querySelector('.empty');
body.outerHTML = `