diff --git a/src/tags/app.tag b/src/tags/app.tag index 9c7750a..cb6a8bd 100644 --- a/src/tags/app.tag +++ b/src/tags/app.tag @@ -199,6 +199,7 @@ along with this program. If not, see . const image = new registryUI.DockerImage(self.name, manifest.digest) registryUI.eventTransfer(image, self) image.fillInfo() + self.variants = [image]; return; } self.size = response.layers.reduce(function(acc, e) { diff --git a/src/tags/tag-history.tag b/src/tags/tag-history.tag index 7636777..8765e50 100644 --- a/src/tags/tag-history.tag +++ b/src/tags/tag-history.tag @@ -29,7 +29,7 @@ along with this program. If not, see . - + @@ -116,6 +116,27 @@ along with this program. If not, see . self.update(); }; + const multiArchList = function(manifests) { + manifests = manifests.manifests || manifests; + self.archs = manifests.map(function(manifest) { + return { + title: manifest.platform.os + '/' + manifest.platform.architecture + (manifest.platform.variant ? manifest.platform.variant : ''), + digest: manifest.digest + } + }) + self.update(); + } + + self.tabchanged = function(arch, idx) { + self.elements = [] + self.image.variants[idx] = self.image.variants[idx] || new registryUI.DockerImage(registryUI.taghistory.image, arch.digest); + if (self.image.variants[idx].blobs) { + return processBlobs(self.image.variants[idx].blobs); + } + self.image.variants[idx].fillInfo(); + self.image.variants[idx].on('blobs', processBlobs); + } + registryUI.taghistory.display = function() { self.elements = [] const blobs = registryUI.taghistory._image && registryUI.taghistory._image.blobs; @@ -123,9 +144,10 @@ along with this program. If not, see . window.scrollTo(0, 0); return processBlobs(blobs); } - const image = new registryUI.DockerImage(registryUI.taghistory.image, registryUI.taghistory.tag, true); - image.fillInfo() - image.on('blobs', processBlobs); + self.image = new registryUI.DockerImage(registryUI.taghistory.image, registryUI.taghistory.tag, true); + self.image.fillInfo() + self.image.on('blobs', processBlobs); + self.image.on('list', multiArchList) }; this.on('mount', function() {