mirror of https://github.com/portainer/portainer
39 lines
1.2 KiB
JavaScript
39 lines
1.2 KiB
JavaScript
function ContainerViewModel(data) {
|
|
this.Id = data.Id;
|
|
this.Status = data.Status;
|
|
this.State = data.State;
|
|
this.Names = data.Names;
|
|
// Unavailable in Docker < 1.10
|
|
if (data.NetworkSettings && !_.isEmpty(data.NetworkSettings.Networks)) {
|
|
this.IP = data.NetworkSettings.Networks[Object.keys(data.NetworkSettings.Networks)[0]].IPAddress;
|
|
}
|
|
this.NetworkSettings = data.NetworkSettings;
|
|
this.Image = data.Image;
|
|
this.ImageID = data.ImageID;
|
|
this.Command = data.Command;
|
|
this.Checked = false;
|
|
this.Labels = data.Labels;
|
|
if (this.Labels && this.Labels['com.docker.compose.project']) {
|
|
this.StackName = this.Labels['com.docker.compose.project'];
|
|
} else if (this.Labels && this.Labels['com.docker.stack.namespace']) {
|
|
this.StackName = this.Labels['com.docker.stack.namespace'];
|
|
}
|
|
this.Mounts = data.Mounts;
|
|
|
|
this.Ports = [];
|
|
if (data.Ports) {
|
|
for (var i = 0; i < data.Ports.length; ++i) {
|
|
var p = data.Ports[i];
|
|
if (p.PublicPort) {
|
|
this.Ports.push({ host: p.IP, private: p.PrivatePort, public: p.PublicPort });
|
|
}
|
|
}
|
|
}
|
|
|
|
if (data.Portainer) {
|
|
if (data.Portainer.ResourceControl) {
|
|
this.ResourceControl = new ResourceControlViewModel(data.Portainer.ResourceControl);
|
|
}
|
|
}
|
|
}
|