diff --git a/app/.vs/VSWorkspaceState.json b/app/.vs/VSWorkspaceState.json new file mode 100644 index 0000000..c303fc1 --- /dev/null +++ b/app/.vs/VSWorkspaceState.json @@ -0,0 +1,16 @@ +{ + "ExpandedNodes": [ + "", + "\\src", + "\\src\\app", + "\\src\\app\\instances", + "\\src\\app\\instances\\instance-info", + "\\src\\app\\instances\\instance-networks", + "\\src\\app\\instances\\instance-security", + "\\src\\app\\networking", + "\\src\\app\\networking\\helpers", + "\\src\\app\\networking\\virtual-network-editor" + ], + "SelectedNode": "\\src\\app\\networking\\networks\\networks.component.ts", + "PreviewInSolutionExplorer": false +} \ No newline at end of file diff --git a/app/.vs/app/config/applicationhost.config b/app/.vs/app/config/applicationhost.config new file mode 100644 index 0000000..269dc55 --- /dev/null +++ b/app/.vs/app/config/applicationhost.config @@ -0,0 +1,1021 @@ + + + + + + + + +
+
+
+
+
+
+
+
+ + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+ +
+
+
+ +
+
+ +
+
+ +
+
+
+ + +
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/.vs/app/v16/.suo b/app/.vs/app/v16/.suo new file mode 100644 index 0000000..f228265 Binary files /dev/null and b/app/.vs/app/v16/.suo differ diff --git a/app/.vs/slnx.sqlite b/app/.vs/slnx.sqlite new file mode 100644 index 0000000..e976b9e Binary files /dev/null and b/app/.vs/slnx.sqlite differ diff --git a/app/src/app/catalog/images/images.component.html b/app/src/app/catalog/images/images.component.html index 6b26370..6455333 100644 --- a/app/src/app/catalog/images/images.component.html +++ b/app/src/app/catalog/images/images.component.html @@ -82,7 +82,6 @@ Type Brand Publish date - Status @@ -101,14 +100,11 @@ {{ image.type }} - {{ image.requirements.brand }} + {{ image.requirements.brand }} {{ image.published_at ? (image.published_at | timeago) : '' }} - - {{ image.state }} -
@@ -35,7 +35,7 @@
- @@ -47,7 +47,10 @@
- +
diff --git a/app/src/app/instances/instance-tag-editor/instance-tag-editor.component.ts b/app/src/app/instances/instance-tag-editor/instance-tag-editor.component.ts index 9d1e504..7df05c4 100644 --- a/app/src/app/instances/instance-tag-editor/instance-tag-editor.component.ts +++ b/app/src/app/instances/instance-tag-editor/instance-tag-editor.component.ts @@ -6,6 +6,7 @@ import { Subject } from 'rxjs'; import { filter, takeUntil } from 'rxjs/operators'; import { InstancesService } from '../helpers/instances.service'; import { ToastrService } from 'ngx-toastr'; +import { Instance } from '../models/instance'; @Component({ selector: 'app-instance-tag-editor', @@ -15,7 +16,7 @@ import { ToastrService } from 'ngx-toastr'; export class InstanceTagEditorComponent implements OnInit { @Input() - instance: any; + instance: Instance; @Input() showMetadata: boolean; @@ -48,14 +49,20 @@ export class InstanceTagEditorComponent implements OnInit private createForm() { const items = this.fb.array(this.showMetadata - ? Object.keys(this.instance.metadata).map(key => this.fb.group({ key, value: this.instance.metadata[key] })) - : Object.keys(this.instance.tags).map(key => this.fb.group({ key, value: this.instance.tags[key] })) + ? Object.keys(this.instance.metadata).map(key => this.fb.group({ + key: [key, Validators.required], + value: [this.instance.metadata[key], Validators.required] + })) + : Object.keys(this.instance.tags).map(key => this.fb.group({ + key: [key, Validators.required], + value: [this.instance.tags[key], Validators.required] + })) ); this.editorForm = this.fb.group({ items, - key: [null, Validators.required], - value: [null, Validators.required] + key: [null], + value: [null] }); } @@ -91,13 +98,14 @@ export class InstanceTagEditorComponent implements OnInit // ---------------------------------------------------------------------------------------------------------------- close() { - this.save.next(); this.modalRef.hide(); } // ---------------------------------------------------------------------------------------------------------------- saveChanges() { + this.working = true; + const items = this.editorForm.getRawValue().items.reduce((map, item) => { map[item.key] = item.value; @@ -110,17 +118,21 @@ export class InstanceTagEditorComponent implements OnInit observable.subscribe(response => { + this.working = false; this.save.next(response); this.modalRef.hide(); }, err => { this.toastr.error(err.error.message); + this.working = false; }); } // ---------------------------------------------------------------------------------------------------------------- ngOnInit(): void { + //this.instancesService.getTags(this.instance.id).subscribe(); + this.createForm(); } } diff --git a/app/src/app/instances/instance-wizard/instance-wizard.component.html b/app/src/app/instances/instance-wizard/instance-wizard.component.html index 17c34c1..23bbe56 100644 --- a/app/src/app/instances/instance-wizard/instance-wizard.component.html +++ b/app/src/app/instances/instance-wizard/instance-wizard.component.html @@ -110,7 +110,7 @@
@@ -142,42 +142,43 @@
-
+
Choose the volumes you wish to mount
- - - - - + + + + + - - - - - + + + + +
Volume nameMount pointRead only
Volume nameMount pointRead only
-
- - -
-
- - -
- -
-
+
+ + +
+
+ + +
+ +
+
@@ -191,7 +192,7 @@
- @@ -239,7 +240,7 @@
-
+