diff --git a/src/app/app.component.html b/src/app/app.component.html index ee10137..90c6b64 100644 --- a/src/app/app.component.html +++ b/src/app/app.component.html @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/src/app/app.routes.ts b/src/app/app.routes.ts index dc39edb..fda1e0c 100644 --- a/src/app/app.routes.ts +++ b/src/app/app.routes.ts @@ -1,3 +1,8 @@ import { Routes } from '@angular/router'; +import { ToolComponent } from './components/partials/tool/tool.component'; +import { BackupListComponent } from './components/pages/backup-list/backup-list.component'; -export const routes: Routes = []; +export const routes: Routes = [ + {path: "", component: ToolComponent}, + {path: "backup", component: BackupListComponent} +]; diff --git a/src/app/backup.ts b/src/app/backup.ts new file mode 100644 index 0000000..a139f3c --- /dev/null +++ b/src/app/backup.ts @@ -0,0 +1,134 @@ +export const vols = [ + { + projectName: "Novotel", + projectURL: "http://118.67.215.11/dashboard/auth/switch/b4600c142d024e068972a9bf574ab662/?next=/dashboard/project/", + volumeName: "NovoTel-Primary-Database-Volume", + volumeURL: "http://118.67.215.11/dashboard/project/volumes/585ccae9-d7f3-4370-b2f3-5b43c2881b64/" + }, + { + projectName: "Novotel", + projectURL: "http://118.67.215.11/dashboard/auth/switch/b4600c142d024e068972a9bf574ab662/?next=/dashboard/project/", + volumeName: "Brilliant-Shop-VM", + volumeURL: "http://118.67.215.11/dashboard/project/volumes/ad491ab9-0777-4270-847f-21a7f00c5f45/" + }, + { + projectName: "Novotel", + projectURL: "http://118.67.215.11/dashboard/auth/switch/b4600c142d024e068972a9bf574ab662/?next=/dashboard/project/", + volumeName: "Live Web Server Vol 1 1200GB", + volumeURL: "http://118.67.215.11/dashboard/project/volumes/c8a8a689-b431-4529-97b2-97dd2fc8928b/" + }, + { + projectName: "Novotel", + projectURL: "http://118.67.215.11/dashboard/auth/switch/b4600c142d024e068972a9bf574ab662/?next=/dashboard/project/", + volumeName: "Live-Web-Server-Vol-02", + volumeURL: "http://118.67.215.11/dashboard/project/volumes/730a9a15-b5d9-4af8-944b-39ac1045279d/" + }, + { + projectName: "Zimbra mail (MAAS)", + projectURL: "http://118.67.215.11/dashboard/auth/switch/77659323516246abbd198ec924cadfe2/?next=/dashboard/project/", + volumeName: "Mailbox5-Vol-1", + volumeURL: "http://118.67.215.11/dashboard/project/volumes/42251910-80e5-485d-864f-3c7c0ba09cc0/" + }, + { + projectName: "Zimbra mail (MAAS)", + projectURL: "http://118.67.215.11/dashboard/auth/switch/77659323516246abbd198ec924cadfe2/?next=/dashboard/project/", + volumeName: "mailbox-5-backup-data", + volumeURL: "http://118.67.215.11/dashboard/project/volumes/943b0329-7785-494b-806a-38b45d4eef9d/" + }, + { + projectName: "Zimbra mail (MAAS)", + projectURL: "http://118.67.215.11/dashboard/auth/switch/77659323516246abbd198ec924cadfe2/?next=/dashboard/project/", + volumeName: "Zimbra mailbox", + volumeURL: "http://118.67.215.11/dashboard/project/volumes/174eef51-bb78-4cea-8790-00760c1d2b04/" + }, + { + projectName: "Zimbra mail (MAAS)", + projectURL: "http://118.67.215.11/dashboard/auth/switch/77659323516246abbd198ec924cadfe2/?next=/dashboard/project/", + volumeName: "Zimbra-MailBox-Backup", + volumeURL: "http://118.67.215.11/dashboard/project/volumes/b85b8ee2-873b-4034-9efb-4ba39fe3e81a/" + }, + { + projectName: "Zimbra mail (MAAS)", + projectURL: "http://118.67.215.11/dashboard/auth/switch/77659323516246abbd198ec924cadfe2/?next=/dashboard/project/", + volumeName: "Zimbra-mail", + volumeURL: "http://118.67.215.11/dashboard/project/volumes/3672d9e4-396e-49c0-b9e0-8ea45268633d/" + }, + { + projectName: "Zimbra mail (MAAS)", + projectURL: "http://118.67.215.11/dashboard/auth/switch/77659323516246abbd198ec924cadfe2/?next=/dashboard/project/", + volumeName: "Zimbra-mta", + volumeURL: "http://118.67.215.11/dashboard/project/volumes/4c1cdefe-3e32-42da-8a7d-00e42623df70/" + }, + { + projectName: "Zimbra mail (MAAS)", + projectURL: "http://118.67.215.11/dashboard/auth/switch/77659323516246abbd198ec924cadfe2/?next=/dashboard/project/", + volumeName: "Zimbra mzmta", + volumeURL: "http://118.67.215.11/dashboard/project/volumes/879779bd-1344-41f5-8265-f92c4d6726d1/" + }, + { + projectName: "Zimbra mail (MAAS)", + projectURL: "http://118.67.215.11/dashboard/auth/switch/77659323516246abbd198ec924cadfe2/?next=/dashboard/project/", + volumeName: "Zimbra slave ldap", + volumeURL: "http://118.67.215.11/dashboard/project/volumes/a92a4722-ec40-4ca1-8392-8b31c4fb4901/" + }, + { + projectName: "Zimbra mail (MAAS)", + projectURL: "http://118.67.215.11/dashboard/auth/switch/77659323516246abbd198ec924cadfe2/?next=/dashboard/project/", + volumeName: "Zimbra Master ldap", + volumeURL: "http://118.67.215.11/dashboard/project/volumes/c198c929-fdff-45a1-9f77-f6866b645a60/" + }, + { + projectName: "Zimbra mail (MAAS)", + projectURL: "http://118.67.215.11/dashboard/auth/switch/77659323516246abbd198ec924cadfe2/?next=/dashboard/project/", + volumeName: "Mailborder v5 Mail filter", + volumeURL: "http://118.67.215.11/dashboard/project/volumes/c2ccaee8-f9e7-402f-8a81-0dbbf9ce9cff/" + }, + { + projectName: "Zimbra mail (MAAS)", + projectURL: "http://118.67.215.11/dashboard/auth/switch/77659323516246abbd198ec924cadfe2/?next=/dashboard/project/", + volumeName: "Zimbra DNS", + volumeURL: "http://118.67.215.11/dashboard/project/volumes/12c5a3d2-85a9-4a03-b80b-4f356e586d4c/" + }, + { + projectName: "CommVault (BAAS)", + projectURL: "http://118.67.215.11/dashboard/auth/switch/cad590b54ab9483badee1a347f313c06/?next=/dashboard/project/", + volumeName: "Commvault Proxy-vol-1", + volumeURL: "http://118.67.215.11/dashboard/project/volumes/ab563c0e-ef20-4c24-80ab-b54d04282b86/" + }, + { + projectName: "CommVault (BAAS)", + projectURL: "http://118.67.215.11/dashboard/auth/switch/cad590b54ab9483badee1a347f313c06/?next=/dashboard/project/", + volumeName: "Commvault Backup new", + volumeURL: "http://118.67.215.11/dashboard/project/volumes/7f757d5e-a7d8-47fb-9ea5-116328b1ca19/" + }, + { + projectName: "CommVault (BAAS)", + projectURL: "http://118.67.215.11/dashboard/auth/switch/cad590b54ab9483badee1a347f313c06/?next=/dashboard/project/", + volumeName: "commserve-additional-300gb-new", + volumeURL: "http://118.67.215.11/dashboard/project/volumes/2916a834-d6d9-491e-ab94-a46736b7ce54/" + }, + { + projectName: "CommVault (BAAS)", + projectURL: "http://118.67.215.11/dashboard/auth/switch/cad590b54ab9483badee1a347f313c06/?next=/dashboard/project/", + volumeName: "Commserve-DR-Backup-200GB-from-old-server-new", + volumeURL: "http://118.67.215.11/dashboard/project/volumes/732ce2d7-88fd-4e3d-aa48-2eb20dd68152/" + }, + { + projectName: "CommVault (BAAS)", + projectURL: "http://118.67.215.11/dashboard/auth/switch/cad590b54ab9483badee1a347f313c06/?next=/dashboard/project/", + volumeName: "Commserve-DR-Backup-200GB-from-old-server-new", + volumeURL: "http://118.67.215.11/dashboard/project/volumes/732ce2d7-88fd-4e3d-aa48-2eb20dd68152/" + }, + { + projectName: "Cloud-Monioring", + projectURL: "http://118.67.215.11/dashboard/auth/switch/e21290ae6e9845ddacb7158ba1d35867/?next=/dashboard/project/", + volumeName: "Owncloud-Intercloud-VM-01-Vol-01-SAS", + volumeURL: "http://118.67.215.11/dashboard/project/volumes/b23b318f-2ad3-43d7-850b-83340b68ac0f/" + }, + { + projectName: "Cloud-Monioring", + projectURL: "http://118.67.215.11/dashboard/auth/switch/e21290ae6e9845ddacb7158ba1d35867/?next=/dashboard/project/", + volumeName: "Owncloud-Intercloud-VM-01-Vol-02-SAS", + volumeURL: "http://118.67.215.11/dashboard/project/volumes/7dde4fc3-7a0e-4a5d-bca8-12fe6832d8d5/" + } +] \ No newline at end of file diff --git a/src/app/components/pages/backup-list/backup-list.component.html b/src/app/components/pages/backup-list/backup-list.component.html new file mode 100644 index 0000000..f1c9f6c --- /dev/null +++ b/src/app/components/pages/backup-list/backup-list.component.html @@ -0,0 +1,24 @@ +
+
+ + + + + + + + + + + + + + + +
+ Project name + + backup volume + Copy Name
{{backup.projectName}}{{backup.volumeName}}{{backup.volumeName}}-{{currentDate | date: 'dd-MM-YYYY'}}-Cloud
+
+
diff --git a/src/app/components/pages/backup-list/backup-list.component.scss b/src/app/components/pages/backup-list/backup-list.component.scss new file mode 100644 index 0000000..6d9ddf2 --- /dev/null +++ b/src/app/components/pages/backup-list/backup-list.component.scss @@ -0,0 +1,47 @@ +@import './../../../shared/scss/colors.scss'; + +table { + margin-left: 1rem; +} + +table, tr, td { + border-collapse: collapse; + border: none; +} + +th{ + color: $txt-heading-color; + font-size: 1.5rem; +} + +tbody tr { + transition: all 0.3s +} + +tbody tr:hover { + transform: scale(1.03); + background-color: $hover-color; + border-collapse: collapse; + border: none; +} + +td:first-child{ + border-radius: 1rem 0rem 0rem 1rem; +} + +td:last-child{ + border-radius: 0rem 1rem 1rem 0rem; +} + + +td { + padding: 1rem; +} + +a{ + text-decoration: none; +} + +.copyName:hover { + cursor: pointer; +} \ No newline at end of file diff --git a/src/app/components/pages/backup-list/backup-list.component.spec.ts b/src/app/components/pages/backup-list/backup-list.component.spec.ts new file mode 100644 index 0000000..4afd133 --- /dev/null +++ b/src/app/components/pages/backup-list/backup-list.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { BackupListComponent } from './backup-list.component'; + +describe('BackupListComponent', () => { + let component: BackupListComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [BackupListComponent] + }) + .compileComponents(); + + fixture = TestBed.createComponent(BackupListComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/components/pages/backup-list/backup-list.component.ts b/src/app/components/pages/backup-list/backup-list.component.ts new file mode 100644 index 0000000..312f1bd --- /dev/null +++ b/src/app/components/pages/backup-list/backup-list.component.ts @@ -0,0 +1,30 @@ +import { Component, ElementRef, OnInit, QueryList, ViewChild, ViewChildren, viewChildren } from '@angular/core'; +import { BackupService } from './backup-list.service'; +import { Backup } from '../../../shared/model/backup.model'; +import { CommonModule } from '@angular/common'; + +@Component({ + selector: 'app-backup-list', + standalone: true, + imports: [CommonModule], + templateUrl: './backup-list.component.html', + styleUrl: './backup-list.component.scss', + providers: [BackupService] +}) +export class BackupListComponent implements OnInit{ + backupVolumes: Backup[] = [] + currentDate = new Date(); + innerHTML!: string; + constructor(private backupService: BackupService) {} + + ngOnInit(): void { + this.backupVolumes = this.backupService.allBackups; + } + + copyName(copyName: HTMLTableCellElement){ + this.innerHTML = copyName.innerHTML; + navigator.clipboard.writeText(this.innerHTML).then(()=>{ + console.log("Copied") + }).catch(err=>console.log(err)) + } +} diff --git a/src/app/components/pages/backup-list/backup-list.service.ts b/src/app/components/pages/backup-list/backup-list.service.ts new file mode 100644 index 0000000..c38203a --- /dev/null +++ b/src/app/components/pages/backup-list/backup-list.service.ts @@ -0,0 +1,12 @@ +import { Injectable } from "@angular/core"; +import { vols } from "../../../backup"; + +Injectable({ + providedIn: 'root' +}) + +export class BackupService { + get allBackups() { + return vols + } +} \ No newline at end of file diff --git a/src/app/shared/model/backup.model.ts b/src/app/shared/model/backup.model.ts new file mode 100644 index 0000000..776b063 --- /dev/null +++ b/src/app/shared/model/backup.model.ts @@ -0,0 +1,6 @@ +export class Backup{ + projectName!: string; + projectURL!: string; + volumeName!: string; + volumeURL!: string; +} \ No newline at end of file diff --git a/src/app/shared/scss/colors.scss b/src/app/shared/scss/colors.scss index 2b8f18e..19b6fdb 100644 --- a/src/app/shared/scss/colors.scss +++ b/src/app/shared/scss/colors.scss @@ -1 +1,4 @@ -$bg-color: #FEEFAD; \ No newline at end of file +$bg-color: #FEF9F2; +$txt-heading-color: #72BF78; +$txt-color: #1E201E; +$hover-color: #B6FFA1; \ No newline at end of file diff --git a/src/styles.scss b/src/styles.scss index f28e5f6..ca28407 100644 --- a/src/styles.scss +++ b/src/styles.scss @@ -1,6 +1,6 @@ /* You can add global styles to this file, and also import other style files */ @import "./app/shared/scss/colors.scss"; - +@import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,100..1000;1,9..40,100..1000&display=swap'); *{ box-sizing: border-box; } @@ -9,4 +9,8 @@ body { margin: 0; background: $bg-color; font-size: 16px; + font-family: "DM Sans", sans-serif; + font-optical-sizing: auto; + font-weight: 500; + font-style: normal; } \ No newline at end of file