mirror of
https://github.com/willmiao/ComfyUI-Lora-Manager.git
synced 2026-03-21 21:22:11 -03:00
feat: update version badge logic for same-base update strategy, see #676
- Remove unused isNewer variable calculation - Use dividerThresholdVersionId instead of latestLibraryVersionId for badge logic - Add test case to verify newer version badge appears with same-base strategy - Ensures correct badge display when filtering by same base model versions
This commit is contained in:
@@ -567,9 +567,6 @@ function render(record) {
|
|||||||
|
|
||||||
const rowsMarkup = filteredVersions
|
const rowsMarkup = filteredVersions
|
||||||
.map(version => {
|
.map(version => {
|
||||||
const isNewer =
|
|
||||||
typeof latestLibraryVersionId === 'number' &&
|
|
||||||
version.versionId > latestLibraryVersionId;
|
|
||||||
let markup = '';
|
let markup = '';
|
||||||
if (
|
if (
|
||||||
!dividerInserted &&
|
!dividerInserted &&
|
||||||
@@ -580,7 +577,7 @@ function render(record) {
|
|||||||
markup += '<div class="version-divider" role="presentation"></div>';
|
markup += '<div class="version-divider" role="presentation"></div>';
|
||||||
}
|
}
|
||||||
markup += renderRow(version, {
|
markup += renderRow(version, {
|
||||||
latestLibraryVersionId,
|
latestLibraryVersionId: dividerThresholdVersionId,
|
||||||
currentVersionId: normalizedCurrentVersionId,
|
currentVersionId: normalizedCurrentVersionId,
|
||||||
modelId: record?.modelId ?? modelId,
|
modelId: record?.modelId ?? modelId,
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -283,4 +283,70 @@ describe('ModelVersionsTab media rendering', () => {
|
|||||||
const toggleTextAfter = document.querySelector('.versions-filter-toggle .sr-only');
|
const toggleTextAfter = document.querySelector('.versions-filter-toggle .sr-only');
|
||||||
expect(toggleTextAfter?.textContent?.trim()).toContain('All versions');
|
expect(toggleTextAfter?.textContent?.trim()).toContain('All versions');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('shows a newer version badge when viewing same-base results', async () => {
|
||||||
|
stateMock.global.settings.update_flag_strategy = 'same_base';
|
||||||
|
fetchModelUpdateVersions.mockResolvedValue({
|
||||||
|
success: true,
|
||||||
|
record: {
|
||||||
|
shouldIgnore: false,
|
||||||
|
inLibraryVersionIds: [3, 1],
|
||||||
|
versions: [
|
||||||
|
{
|
||||||
|
versionId: 4,
|
||||||
|
name: 'V4',
|
||||||
|
baseModel: 'Base IL',
|
||||||
|
previewUrl: '/api/lm/previews/v4.png',
|
||||||
|
sizeBytes: 1024,
|
||||||
|
isInLibrary: false,
|
||||||
|
shouldIgnore: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
versionId: 3,
|
||||||
|
name: 'V3',
|
||||||
|
baseModel: 'Base IL',
|
||||||
|
previewUrl: '/api/lm/previews/v3.png',
|
||||||
|
sizeBytes: 2048,
|
||||||
|
isInLibrary: true,
|
||||||
|
shouldIgnore: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
versionId: 2,
|
||||||
|
name: 'V2',
|
||||||
|
baseModel: 'Base Flux',
|
||||||
|
previewUrl: '/api/lm/previews/v2.png',
|
||||||
|
sizeBytes: 4096,
|
||||||
|
isInLibrary: false,
|
||||||
|
shouldIgnore: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
versionId: 1,
|
||||||
|
name: 'V1',
|
||||||
|
baseModel: 'Base Flux',
|
||||||
|
previewUrl: '/api/lm/previews/v1.png',
|
||||||
|
sizeBytes: 8192,
|
||||||
|
isInLibrary: true,
|
||||||
|
shouldIgnore: false,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
const { initVersionsTab } = await import(MODEL_VERSIONS_MODULE);
|
||||||
|
const controller = initVersionsTab({
|
||||||
|
modalId: 'model-versions-modal',
|
||||||
|
modelType: 'loras',
|
||||||
|
modelId: 333,
|
||||||
|
currentVersionId: 1,
|
||||||
|
});
|
||||||
|
|
||||||
|
await controller.load();
|
||||||
|
|
||||||
|
const rows = document.querySelectorAll('.model-version-row');
|
||||||
|
expect(rows.length).toBe(2);
|
||||||
|
const firstBadges = Array.from(rows[0].querySelectorAll('.version-badge')).map(
|
||||||
|
badge => badge.textContent?.trim()
|
||||||
|
);
|
||||||
|
expect(firstBadges).toContain('Newer Version');
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user