mirror of
https://github.com/willmiao/ComfyUI-Lora-Manager.git
synced 2026-03-23 22:22:11 -03:00
feat: enhance model version download with progress tracking
- Set refresh to true when fetching model update versions to ensure latest data - Refactor handleDownloadVersion to be async and accept button parameter - Add progress tracking and WebSocket integration for download operations - Implement button state management during download process - Add error handling and cleanup for download operations - Update download action to await async download handler
This commit is contained in:
@@ -391,7 +391,7 @@ export function initVersionsTab({
|
||||
try {
|
||||
const client = ensureClient();
|
||||
const response = await client.fetchModelUpdateVersions(modelId, {
|
||||
refresh: false,
|
||||
refresh: true,
|
||||
});
|
||||
if (!response?.success) {
|
||||
throw new Error(response?.error || 'Request failed');
|
||||
@@ -509,11 +509,34 @@ export function initVersionsTab({
|
||||
}
|
||||
}
|
||||
|
||||
function handleDownloadVersion(versionId) {
|
||||
async function handleDownloadVersion(button, versionId) {
|
||||
if (!controller.record) {
|
||||
return;
|
||||
}
|
||||
downloadManager.openForModelVersion(modelType, modelId, versionId);
|
||||
|
||||
const version = controller.record.versions.find(item => item.versionId === versionId);
|
||||
if (!version) {
|
||||
console.warn('Target version missing from record for download:', versionId);
|
||||
return;
|
||||
}
|
||||
|
||||
button.disabled = true;
|
||||
|
||||
try {
|
||||
const success = await downloadManager.downloadVersionWithDefaults(modelType, modelId, versionId, {
|
||||
versionName: version.name || `#${version.versionId}`,
|
||||
});
|
||||
|
||||
if (success) {
|
||||
await refresh();
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Failed to start direct download for version:', error);
|
||||
} finally {
|
||||
if (document.body.contains(button)) {
|
||||
button.disabled = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
container.addEventListener('click', async event => {
|
||||
@@ -541,7 +564,7 @@ export function initVersionsTab({
|
||||
switch (action) {
|
||||
case 'download':
|
||||
event.preventDefault();
|
||||
handleDownloadVersion(versionId);
|
||||
await handleDownloadVersion(actionButton, versionId);
|
||||
break;
|
||||
case 'delete':
|
||||
event.preventDefault();
|
||||
|
||||
Reference in New Issue
Block a user