diff --git a/app/src/app/catalog/custom-images/custom-images.component.html b/app/src/app/catalog/custom-images/custom-images.component.html
deleted file mode 100644
index 4bb2136..0000000
--- a/app/src/app/catalog/custom-images/custom-images.component.html
+++ /dev/null
@@ -1,128 +0,0 @@
-
-
-
-
-
-
-
- You don't have any custom images yet
-
-
-
-
-
- Name |
- Description |
- OS |
- Type |
- Publish date |
- Status |
- |
-
-
-
-
-
- {{ image.name }}
- |
-
- {{ image.description }}
- |
-
- {{ image.os }}
- |
-
- {{ image.type }}
- |
-
- {{ image.published_at ? (image.published_at | timeago) : '' }}
- |
-
- {{ image.state }}
- |
-
-
-
-
-
- |
-
-
-
-
-
- No images match your search criteria
- |
-
-
-
-
-
-
-
diff --git a/app/src/app/catalog/custom-images/custom-images.component.scss b/app/src/app/catalog/custom-images/custom-images.component.scss
deleted file mode 100644
index 6fb03b3..0000000
--- a/app/src/app/catalog/custom-images/custom-images.component.scss
+++ /dev/null
@@ -1,45 +0,0 @@
-.table-responsive
-{
- background-color: rgba(16, 21, 39, 0.75);
- box-shadow: 0 0 0 2px #0b2b51, 0 0 2px 4px #0b284b, 0 0 10px 3px #0e162a;
- transition: box-shadow 0.15s ease-out;
- border-radius: .25rem;
-
- &:hover
- {
- box-shadow: 0 0 0 2px #0b2b51, 0 0 2px 4px rgb(18 203 240 / 40%), 0 0 10px 3px #0e162a;
- }
-
- .rule
- {
- text-transform: uppercase;
- color: #3d5e8e;
- }
-
- .highlight
- {
- color: #8881ff;
- }
-
- b, .strong
- {
- color: #ff9c07;
- font-weight: normal;
- }
-
- .text-truncate
- {
- max-width: 350px;
- }
-
- .inline-list-item + .inline-list-item
- {
- padding-left: .25rem;
-
- &:before
- {
- content: attr(text);
- color: #3d5e8e;
- }
- }
-}
diff --git a/app/src/app/catalog/custom-images/custom-images.component.spec.ts b/app/src/app/catalog/custom-images/custom-images.component.spec.ts
deleted file mode 100644
index a9879bb..0000000
--- a/app/src/app/catalog/custom-images/custom-images.component.spec.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import { async, ComponentFixture, TestBed } from '@angular/core/testing';
-
-import { CustomImagesComponent } from './custom-images.component';
-
-describe('CustomImagesComponent', () => {
- let component: CustomImagesComponent;
- let fixture: ComponentFixture;
-
- beforeEach(async(() => {
- TestBed.configureTestingModule({
- declarations: [ CustomImagesComponent ]
- })
- .compileComponents();
- }));
-
- beforeEach(() => {
- fixture = TestBed.createComponent(CustomImagesComponent);
- component = fixture.componentInstance;
- fixture.detectChanges();
- });
-
- it('should create', () => {
- expect(component).toBeTruthy();
- });
-});
diff --git a/app/src/app/catalog/custom-images/custom-images.component.ts b/app/src/app/catalog/custom-images/custom-images.component.ts
deleted file mode 100644
index f69b48d..0000000
--- a/app/src/app/catalog/custom-images/custom-images.component.ts
+++ /dev/null
@@ -1,191 +0,0 @@
-import { Component, OnInit, OnDestroy } from '@angular/core';
-import { ColumnMode, SelectionType } from '@swimlane/ngx-datatable';
-import { CatalogService } from '../helpers/catalog.service';
-import { AuthService } from '../../helpers/auth.service';
-import { debounceTime, distinctUntilChanged, filter, first, map, switchMap, takeUntil } from 'rxjs/operators';
-import { Subject } from 'rxjs';
-import { ToastrService } from 'ngx-toastr';
-import { CatalogImage } from '../models/image';
-import { FormGroup, FormBuilder, Validators, AbstractControl, FormArray } from '@angular/forms';
-import Fuse from 'fuse.js';
-import { sortArray } from '../../helpers/utils.service';
-import { BsModalService } from 'ngx-bootstrap/modal';
-import { ConfirmationDialogComponent } from '../../components/confirmation-dialog/confirmation-dialog.component';
-
-@Component({
- selector: 'app-custom-images',
- templateUrl: './custom-images.component.html',
- styleUrls: ['./custom-images.component.scss']
-})
-export class CustomImagesComponent implements OnInit, OnDestroy
-{
- images: CatalogImage[] = [];
- listItems: CatalogImage[] = [];
- editorForm: FormGroup;
- loadingIndicator = true;
-
- private destroy$ = new Subject();
- private readonly fuseJsOptions: {};
-
- // ----------------------------------------------------------------------------------------------------------------
- constructor(private readonly catalogService: CatalogService,
- private readonly modalService: BsModalService,
- private readonly authService: AuthService,
- private readonly toastr: ToastrService,
- private readonly fb: FormBuilder)
- {
- // Configure FuseJs
- this.fuseJsOptions = {
- includeScore: false,
- minMatchCharLength: 2,
- includeMatches: true,
- shouldSort: false,
- threshold: .3, // Lower value means a more exact search
- keys: [
- { name: 'name', weight: .9 },
- { name: 'description', weight: .8 },
- { name: 'os', weight: .7 },
- { name: 'type', weight: .7 }
- ]
- };
-
- this.createForm();
- }
-
- // ----------------------------------------------------------------------------------------------------------------
- private createForm()
- {
- this.editorForm = this.fb.group(
- {
- searchTerm: [''],
- sortProperty: ['name']
- });
-
- this.editorForm.get('searchTerm').valueChanges
- .pipe(
- debounceTime(300),
- distinctUntilChanged(),
- takeUntil(this.destroy$)
- )
- .subscribe(() => this.applyFiltersAndSort());
-
- this.editorForm.get('sortProperty').valueChanges
- .pipe(
- distinctUntilChanged(),
- takeUntil(this.destroy$)
- )
- .subscribe(() => this.applyFiltersAndSort());
-
- }
-
- // ----------------------------------------------------------------------------------------------------------------
- private applyFiltersAndSort()
- {
- let listItems: CatalogImage[] = null;
-
- const searchTerm = this.editorForm.get('searchTerm').value;
- if (searchTerm.length >= 2)
- {
- const fuse = new Fuse(this.images, this.fuseJsOptions);
- const fuseResults = fuse.search(searchTerm);
- listItems = fuseResults.map(x => x.item as CatalogImage);
- }
-
- if (!listItems)
- listItems = [...this.images];
-
- this.listItems = sortArray(listItems, this.editorForm.get('sortProperty').value);
- }
-
- // ----------------------------------------------------------------------------------------------------------------
- setSortProperty(propertyName: string)
- {
- this.editorForm.get('sortProperty').setValue(propertyName);
- }
-
- // ----------------------------------------------------------------------------------------------------------------
- clearSearch()
- {
- this.editorForm.get('searchTerm').setValue('');
- }
-
- // ----------------------------------------------------------------------------------------------------------------
- private getCustomImages()
- {
- this.loadingIndicator = true;
-
- this.authService.userInfoUpdated$
- .pipe(
- takeUntil(this.destroy$),
- filter(userInfo => userInfo != null),
- switchMap(userInfo => this.catalogService.getCustomImages(userInfo.id))
- )
- .subscribe(images =>
- {
- this.images = images;
-
- this.applyFiltersAndSort();
-
- this.loadingIndicator = false
- }, err =>
- {
- const errorDetails = err.error?.message ? `(${err.error.message})` : '';
- this.toastr.error(`Failed to retrieve the list of custom images ${errorDetails}`);
-
- this.loadingIndicator = false;
- });
- }
-
- // ----------------------------------------------------------------------------------------------------------------
- deleteCustomImage(image: CatalogImage)
- {
- const modalConfig = {
- ignoreBackdropClick: true,
- keyboard: false,
- animated: true,
- initialState: {
- prompt: `Are you sure you wish to permanently delete the "${image.name}" image?`,
- confirmButtonText: 'Yes, delete this image',
- declineButtonText: 'No, keep it',
- confirmByDefault: false
- }
- };
-
- const modalRef = this.modalService.show(ConfirmationDialogComponent, modalConfig);
-
- modalRef.content.confirm.pipe(first()).subscribe(() =>
- {
- this.toastr.info(`Removing machine "${image.name}"...`);
-
- this.catalogService.deleteImage(image.id)
- .subscribe(() =>
- {
- const index = this.images.findIndex(i => i.id === image.id);
- if (index >= 0)
- this.images.splice(index, 1);
-
- this.applyFiltersAndSort();
-
- this.toastr.info(`The image "${image.name}" has been removed`);
- },
- err =>
- {
- this.toastr.error(`Failed to delete the "${image.name}" image ${err.error.message}`);
- });
- });
-
- }
-
- // ----------------------------------------------------------------------------------------------------------------
- ngOnInit(): void
- {
- this.getCustomImages();
- }
-
- // ----------------------------------------------------------------------------------------------------------------
- ngOnDestroy()
- {
- this.destroy$.next();
- }
-
-}
diff --git a/app/src/app/catalog/docker-image-editor/docker-image-editor.component.html b/app/src/app/catalog/docker-image-editor/docker-image-editor.component.html
deleted file mode 100644
index c50cce7..0000000
--- a/app/src/app/catalog/docker-image-editor/docker-image-editor.component.html
+++ /dev/null
@@ -1 +0,0 @@
-docker-image-editor works!
diff --git a/app/src/app/catalog/docker-image-editor/docker-image-editor.component.scss b/app/src/app/catalog/docker-image-editor/docker-image-editor.component.scss
deleted file mode 100644
index e69de29..0000000
diff --git a/app/src/app/catalog/docker-image-editor/docker-image-editor.component.spec.ts b/app/src/app/catalog/docker-image-editor/docker-image-editor.component.spec.ts
deleted file mode 100644
index afc2788..0000000
--- a/app/src/app/catalog/docker-image-editor/docker-image-editor.component.spec.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import { async, ComponentFixture, TestBed } from '@angular/core/testing';
-
-import { DockerImageEditorComponent } from './docker-image-editor.component';
-
-describe('DockerImageEditorComponent', () => {
- let component: DockerImageEditorComponent;
- let fixture: ComponentFixture;
-
- beforeEach(async(() => {
- TestBed.configureTestingModule({
- declarations: [ DockerImageEditorComponent ]
- })
- .compileComponents();
- }));
-
- beforeEach(() => {
- fixture = TestBed.createComponent(DockerImageEditorComponent);
- component = fixture.componentInstance;
- fixture.detectChanges();
- });
-
- it('should create', () => {
- expect(component).toBeTruthy();
- });
-});
diff --git a/app/src/app/catalog/docker-image-editor/docker-image-editor.component.ts b/app/src/app/catalog/docker-image-editor/docker-image-editor.component.ts
deleted file mode 100644
index c069e18..0000000
--- a/app/src/app/catalog/docker-image-editor/docker-image-editor.component.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-import { Component, OnInit } from '@angular/core';
-
-@Component({
- selector: 'app-docker-image-editor',
- templateUrl: './docker-image-editor.component.html',
- styleUrls: ['./docker-image-editor.component.scss']
-})
-export class DockerImageEditorComponent implements OnInit {
-
- constructor() { }
-
- ngOnInit(): void {
- }
-
-}
diff --git a/app/src/app/catalog/docker-images/docker-images.component.html b/app/src/app/catalog/docker-images/docker-images.component.html
deleted file mode 100644
index 9ad2a6a..0000000
--- a/app/src/app/catalog/docker-images/docker-images.component.html
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
-
-
-
-
-
-
- {{ value }}
-
-
-
-
-
- {{ value }}
-
-
-
-
-
-
- {{ value }}
-
-
-
-
-
-
-
-
- {{ value | date | timeago }}
-
-
-
-
-
-
-
-
-
-
-
diff --git a/app/src/app/catalog/docker-images/docker-images.component.scss b/app/src/app/catalog/docker-images/docker-images.component.scss
deleted file mode 100644
index e69de29..0000000
diff --git a/app/src/app/catalog/docker-images/docker-images.component.spec.ts b/app/src/app/catalog/docker-images/docker-images.component.spec.ts
deleted file mode 100644
index 86010a4..0000000
--- a/app/src/app/catalog/docker-images/docker-images.component.spec.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import { async, ComponentFixture, TestBed } from '@angular/core/testing';
-
-import { DockerImagesComponent } from './docker-images.component';
-
-describe('DockerImagesComponent', () => {
- let component: DockerImagesComponent;
- let fixture: ComponentFixture;
-
- beforeEach(async(() => {
- TestBed.configureTestingModule({
- declarations: [ DockerImagesComponent ]
- })
- .compileComponents();
- }));
-
- beforeEach(() => {
- fixture = TestBed.createComponent(DockerImagesComponent);
- component = fixture.componentInstance;
- fixture.detectChanges();
- });
-
- it('should create', () => {
- expect(component).toBeTruthy();
- });
-});
diff --git a/app/src/app/catalog/docker-images/docker-images.component.ts b/app/src/app/catalog/docker-images/docker-images.component.ts
deleted file mode 100644
index 9a2bf24..0000000
--- a/app/src/app/catalog/docker-images/docker-images.component.ts
+++ /dev/null
@@ -1,28 +0,0 @@
-import { Component, OnInit } from '@angular/core';
-import { ColumnMode, SelectionType } from '@swimlane/ngx-datatable';
-import { CatalogService } from '../helpers/catalog.service';
-
-@Component({
- selector: 'app-docker-images',
- templateUrl: './docker-images.component.html',
- styleUrls: ['./docker-images.component.scss']
-})
-export class DockerImagesComponent implements OnInit
-{
- rows: any[] = [];
- loadingIndicator = true;
- selectionType = SelectionType;
- columnMode = ColumnMode;
-
- // ----------------------------------------------------------------------------------------------------------------
- constructor(private readonly catalogService: CatalogService)
- {
-
- }
-
- // ----------------------------------------------------------------------------------------------------------------
- ngOnInit(): void
- {
- }
-
-}
diff --git a/app/src/app/catalog/docker-registry-editor/docker-registry-editor.component.html b/app/src/app/catalog/docker-registry-editor/docker-registry-editor.component.html
deleted file mode 100644
index 9484d25..0000000
--- a/app/src/app/catalog/docker-registry-editor/docker-registry-editor.component.html
+++ /dev/null
@@ -1 +0,0 @@
-docker-registry-editor works!
diff --git a/app/src/app/catalog/docker-registry-editor/docker-registry-editor.component.scss b/app/src/app/catalog/docker-registry-editor/docker-registry-editor.component.scss
deleted file mode 100644
index e69de29..0000000
diff --git a/app/src/app/catalog/docker-registry-editor/docker-registry-editor.component.spec.ts b/app/src/app/catalog/docker-registry-editor/docker-registry-editor.component.spec.ts
deleted file mode 100644
index b7ba06b..0000000
--- a/app/src/app/catalog/docker-registry-editor/docker-registry-editor.component.spec.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import { async, ComponentFixture, TestBed } from '@angular/core/testing';
-
-import { DockerRegistryEditorComponent } from './docker-registry-editor.component';
-
-describe('DockerRegistryEditorComponent', () => {
- let component: DockerRegistryEditorComponent;
- let fixture: ComponentFixture;
-
- beforeEach(async(() => {
- TestBed.configureTestingModule({
- declarations: [ DockerRegistryEditorComponent ]
- })
- .compileComponents();
- }));
-
- beforeEach(() => {
- fixture = TestBed.createComponent(DockerRegistryEditorComponent);
- component = fixture.componentInstance;
- fixture.detectChanges();
- });
-
- it('should create', () => {
- expect(component).toBeTruthy();
- });
-});
diff --git a/app/src/app/catalog/docker-registry-editor/docker-registry-editor.component.ts b/app/src/app/catalog/docker-registry-editor/docker-registry-editor.component.ts
deleted file mode 100644
index 344fa65..0000000
--- a/app/src/app/catalog/docker-registry-editor/docker-registry-editor.component.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-import { Component, OnInit } from '@angular/core';
-
-@Component({
- selector: 'app-docker-registry-editor',
- templateUrl: './docker-registry-editor.component.html',
- styleUrls: ['./docker-registry-editor.component.scss']
-})
-export class DockerRegistryEditorComponent implements OnInit {
-
- constructor() { }
-
- ngOnInit(): void {
- }
-
-}
diff --git a/app/src/app/catalog/docker-registry/docker-registry.component.html b/app/src/app/catalog/docker-registry/docker-registry.component.html
deleted file mode 100644
index 3f484d2..0000000
--- a/app/src/app/catalog/docker-registry/docker-registry.component.html
+++ /dev/null
@@ -1 +0,0 @@
-docker-registry works!
diff --git a/app/src/app/catalog/docker-registry/docker-registry.component.scss b/app/src/app/catalog/docker-registry/docker-registry.component.scss
deleted file mode 100644
index e69de29..0000000
diff --git a/app/src/app/catalog/docker-registry/docker-registry.component.spec.ts b/app/src/app/catalog/docker-registry/docker-registry.component.spec.ts
deleted file mode 100644
index 9c56639..0000000
--- a/app/src/app/catalog/docker-registry/docker-registry.component.spec.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import { async, ComponentFixture, TestBed } from '@angular/core/testing';
-
-import { DockerRegistryComponent } from './docker-registry.component';
-
-describe('DockerRegistryComponent', () => {
- let component: DockerRegistryComponent;
- let fixture: ComponentFixture;
-
- beforeEach(async(() => {
- TestBed.configureTestingModule({
- declarations: [ DockerRegistryComponent ]
- })
- .compileComponents();
- }));
-
- beforeEach(() => {
- fixture = TestBed.createComponent(DockerRegistryComponent);
- component = fixture.componentInstance;
- fixture.detectChanges();
- });
-
- it('should create', () => {
- expect(component).toBeTruthy();
- });
-});
diff --git a/app/src/app/catalog/docker-registry/docker-registry.component.ts b/app/src/app/catalog/docker-registry/docker-registry.component.ts
deleted file mode 100644
index 381e874..0000000
--- a/app/src/app/catalog/docker-registry/docker-registry.component.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-import { Component, OnInit } from '@angular/core';
-
-@Component({
- selector: 'app-docker-registry',
- templateUrl: './docker-registry.component.html',
- styleUrls: ['./docker-registry.component.scss']
-})
-export class DockerRegistryComponent implements OnInit {
-
- constructor() { }
-
- ngOnInit(): void {
- }
-
-}