diff --git a/src/app/app.routing.ts b/src/app/app.routing.ts index 258e06a4a3..74ca79b893 100644 --- a/src/app/app.routing.ts +++ b/src/app/app.routing.ts @@ -1,100 +1,103 @@ /* eslint-disable */ -import { NgModule } from '@angular/core' -import { RouterModule, Routes } from '@angular/router' +import {NgModule} from '@angular/core' +import {RouterModule, Routes} from '@angular/router' // Layouts -import { ConsentInfoComponent } from './consent-info.component' -import { FullLayoutComponent } from './layouts/full-layout.component' -import { MemberGuardService } from './member-guard.service' -import { RegistrationInfoComponent } from './registration-info.component' -import { LoggedInGuard } from './logged-in-guard.service' -import { CreditsCalculatorComponent } from './credits-calculator/credits-calculator.component' +import {ConsentInfoComponent} from './consent-info.component' +import {FullLayoutComponent} from './layouts/full-layout.component' +import {MemberGuardService} from './member-guard.service' +import {RegistrationInfoComponent} from './registration-info.component' +import {LoggedInGuard} from './logged-in-guard.service' +import {CreditsCalculatorComponent} from './credits-calculator/credits-calculator.component' +import {VoGuardService} from './shared/guards/vo-guard.service'; export const routes: Routes = [ - { - path: '', - redirectTo: 'userinfo', - pathMatch: 'full', - }, - { - path: 'registration-info', - component: RegistrationInfoComponent, - pathMatch: 'full', - }, - { - path: 'consent-info', - component: ConsentInfoComponent, - pathMatch: 'full', - }, - { - path: '', - component: FullLayoutComponent, - canActivate: [MemberGuardService], - data: { - title: 'de.NBI Cloud Portal', + { + path: '', + redirectTo: 'userinfo', + pathMatch: 'full', }, - children: [ - { - path: 'userinfo', - canActivate: [LoggedInGuard], + { + path: 'registration-info', + component: RegistrationInfoComponent, + pathMatch: 'full', + }, + { + path: 'consent-info', + component: ConsentInfoComponent, + pathMatch: 'full', + }, + { + path: '', + component: FullLayoutComponent, + canActivate: [MemberGuardService], + data: { + title: 'de.NBI Cloud Portal', + }, + children: [ + { + path: 'userinfo', + canActivate: [LoggedInGuard], - // eslint-disable-next-line @typescript-eslint/promise-function-async - loadChildren: () => import('./userinfo/userinfo.module').then(m => m.UserinfoModule), - }, - { - path: 'help', - canActivate: [LoggedInGuard], + // eslint-disable-next-line @typescript-eslint/promise-function-async + loadChildren: () => import('./userinfo/userinfo.module').then(m => m.UserinfoModule), + }, + { + path: 'help', + canActivate: [LoggedInGuard], - // eslint-disable-next-line @typescript-eslint/promise-function-async - loadChildren: () => import('./help/help.module').then(m => m.HelpModule), - }, - { - path: 'project-management', - canActivate: [LoggedInGuard], + // eslint-disable-next-line @typescript-eslint/promise-function-async + loadChildren: () => import('./help/help.module').then(m => m.HelpModule), + }, + { + path: 'project-management', + canActivate: [LoggedInGuard], - loadChildren: () => import('./projectmanagement/projectmanagement.module').then(m => m.ProjectManagementModule), - }, - { - path: 'applications', - canActivate: [LoggedInGuard], + loadChildren: () => import('./projectmanagement/projectmanagement.module').then(m => m.ProjectManagementModule), + }, + { + path: 'applications', + canActivate: [LoggedInGuard], - loadChildren: () => import('./applications/applications.module').then(m => m.ApplicationsModule), - }, - { - path: 'virtualmachines', - canActivate: [LoggedInGuard], + loadChildren: () => import('./applications/applications.module').then(m => m.ApplicationsModule), + }, + { + path: 'virtualmachines', + canActivate: [LoggedInGuard], - loadChildren: () => import('./virtualmachines/vm.module').then(m => m.VmModule), - }, - { - path: 'vo-manager', - loadChildren: () => import('./vo_manager/VoManager.module').then(m => m.VoManagerModule), - }, - { - path: 'facility-manager', - canActivate: [LoggedInGuard], + loadChildren: () => import('./virtualmachines/vm.module').then(m => m.VmModule), + }, + { + path: 'vo-manager', + loadChildren: () => import('./vo_manager/VoManager.module').then(m => m.VoManagerModule), + canActivate: [VoGuardService] + }, + { + path: 'facility-manager', + canActivate: [LoggedInGuard], - loadChildren: () => import('./facility_manager/facilitymanager.module').then(m => m.FacilitymanagerModule), - }, - { - path: 'credits-calculator', - canActivate: [LoggedInGuard], - component: CreditsCalculatorComponent, + loadChildren: () => import('./facility_manager/facilitymanager.module').then(m => m.FacilitymanagerModule), + }, + { + path: 'credits-calculator', + canActivate: [LoggedInGuard], + component: CreditsCalculatorComponent, - loadChildren: () => - import('./credits-calculator/credits-calculator.module').then(m => m.CreditsCalculatorModule), - }, - ], - }, + loadChildren: () => + import('./credits-calculator/credits-calculator.module').then(m => m.CreditsCalculatorModule), + }, + ], + }, ] /** * App routing module. */ @NgModule({ - imports: [RouterModule.forRoot(routes, {})], - exports: [RouterModule], - providers: [MemberGuardService, LoggedInGuard], + imports: [RouterModule.forRoot(routes, {})], + exports: [RouterModule], + providers: [MemberGuardService, LoggedInGuard], }) -export class AppRoutingModule {} +export class AppRoutingModule { +} /* eslint-enable */ diff --git a/src/app/applications/application-facility-actions/application-facility-actions.component.html b/src/app/applications/application-facility-actions/application-facility-actions.component.html index 734ef802b7..cd541f612a 100644 --- a/src/app/applications/application-facility-actions/application-facility-actions.component.html +++ b/src/app/applications/application-facility-actions/application-facility-actions.component.html @@ -5,7 +5,7 @@ @if (application | hasstatusinlist: Application_States.WAIT_FOR_CONFIRMATION) { - - -
- - - -
- - -
- -
- -
- -
-
-
- SimpleVM -
-
-
-
- -
-
- Ease -
-
- Ease of Use – SimpleVM lets you start and stop VMs with a few clicks which means that - there is no additional configuration necessary. -
-
-
- -
-
- Curve -
-
- Flat Learning Curve – If you want to use SimpleVM you don’t have to learn about - resource management, like network configurations or storage management. No background knowledge in Cloud - Computing is necessary. -
-
-
- -
-
- Remote -
-
- Remote Desktop – If you don’t want to use SimpleVM via terminal you can easily connect - to your VM using a Remote Desktop. -
-
-
-
-
- -
-
- Workshop support – Create a workshop and start multiple configured VMs for your - participants with just a few clicks. To learn more about our workshop support click - here. -
-
-
- -
-
-
-
- Typical use cases: -
-
-
-
-
-
- • Tools and Pipelines - – SimpleVM is a quick way to get up and running with your tools and pipelines in the cloud. -
-
-
-
-
-
- • Remote Desktop - – Launch your own Desktop or a browser based IDE in the cloud (based on Apache Guacamole, RStudio, - Theia IDE and more) and be able to run programs with graphical user interfaces in addition to the - command-line. -
-
-
-
-
- -
-
-
- Want to learn more about SimpleVM? -
- -
-
- -
+@if (is_vo_admin) { +
+ +
+ +
+ Our de.NBI Cloud Project Types + +
+ +
+ +
+ +
+ +
+ + +
+
+
+ SimpleVM +
+
+
+
+ +
+
+ Ease +
+
+ Ease of Use – SimpleVM lets you start and stop VMs with a few + clicks + which means that + there is no additional configuration necessary. +
+
+
+ +
+
+ Curve +
+
+ Flat Learning Curve – If you want to use SimpleVM you don’t have to + learn about + resource management, like network configurations or storage management. No + background + knowledge in Cloud + Computing is necessary. +
+
+
+ +
+
+ Remote +
+
+ Remote Desktop – If you don’t want to use SimpleVM via terminal you + can + easily connect + to your VM using a Remote Desktop. +
+
+
+
+
+ +
+
+ Workshop support – Create a workshop and start multiple configured + VMs + for your + participants with just a few clicks. To learn more about our workshop support click + here. +
+
+
+ +
+
+ Typical use cases: +
    +
  • + Tools and Pipelines: SimpleVM is a quick way to get up and + running with your tools + and pipelines in the cloud. +
  • +
  • + Remote Desktop: Launch your own Desktop or a browser-based + IDE + in the cloud (based + on Apache Guacamole, RStudio, Theia IDE, and more) and be able to run + programs + with graphical user + interfaces in addition to the command-line. +
  • +
+
+
- - -
-
-
- Want to learn the Difference between SimpleVM and Openstack? -
- -
-
+
+
+ +
+
+
+ Want to learn more about SimpleVM? +
+ +
+
+
+ +
- -
- -
-
-
- Openstack -
-
-
-
- -
-
- Scale -
-
- Scalability – Easy scaling of virtual machines and distribution of data for efficient - computations. -
-
-
- -
-
- Configuration -
-
- Configurability – OpenStack allows the configuration of any resource type available, - such as virtual machines, network, block and object storage. -
-
-
- -
-
- API -
-
- API Access – Any interaction with OpenStack can be automated via its API enabling users - to script actions, e.g. starting and stopping of virtual machines. -
-
-
- -
-
-
-
- Typical use cases: -
-
-
-
-
-
- • Distributed Workflows - – Distribution of workflows on multiple virtual machines. -
-
-
-
-
-
- • Services - – The ability to offer services for other researchers. -
-
-
-
-
- -
-
-
- Want to learn more about Openstack? -
- -
-
-
- -
- -
- -
-
- -
-
- Want to learn more about SimpleVM? -
- -
- -
-
- Want to learn the Difference? -
- -
- -
-
- Want to learn more about Openstack? -
- -
-
-
- -
- -
- -
- -
- -
+ +
+ + +
+
+
+ Openstack +
+
+
+
+ +
+
+ Scale +
+
+ Scalability – Easy scaling of virtual machines and distribution of + data + for efficient + computations. +
+
+
+ +
+
+ Configuration +
+
+ Configurability – OpenStack allows the configuration of any + resource + type available, + such as virtual machines, network, block and object storage. +
+
+
+ +
+
+ API +
+
+ API Access – Any interaction with OpenStack can be automated via + its + API enabling users + to script actions, e.g. starting and stopping of virtual machines. +
+
+
+ +
+
+ Typical use cases: +
    +
  • + Distributed Workflows: Distribution of workflows on + multiple + virtual machines. +
  • +
  • Services: The ability to offer services for other + researchers. +
  • +
+
+
+ +
+
+ +
+
+
+ Want to learn more about Openstack? +
+ +
+
+
+ +
+
+ + +
+
+
+ Kubernetes +
+
+
+
+ +
+
+ Scale +
+
+ Scalability – Easy scaling of virtual machines and distribution of + data for efficient + computations. +
+
+
+ +
+
+ Configuration +
+
+ Configurability – Kubernetes allows the configuration of any + resource type available, + such as virtual machines, network. +
+
+
+ +
+
+ API +
+
+ API Access – Any interaction with Kubernetes can be automated via + its API enabling + users to script actions, e.g. starting and stopping of containerized services. +
+
+
+ +
+
+ Typical use cases: +
    +
  • + Workflow Engines: Workflow engines like Nextflow allow you + to run your analysis on + top of Kubernetes. +
  • +
  • + Services: The ability to offer stateless and stateful + (databases) services for + other researchers. +
  • +
+
+
+ +
+
+
+
+
+ Want to learn more about Kubernetes? +
+ +
+
+
+ +
+ + + +
+ +
+
+ +
+
+ Want to learn more about SimpleVM? +
+ +
+ + +
+
+ Want to learn more about Openstack? +
+ +
+
+
+ Want to learn more about Kubernetes? +
+ +
+ +
+
+
+
+
+
+ Want to learn the Difference? +
+ +
+
+
+
+ +
+ + + + + + + + +} @else { +
+ +
+ +
+ Our de.NBI Cloud Project Types + +
+ +
+ +
+ + +
+ +
+ +
+ +
+
+
+ SimpleVM +
+
+
+
+ +
+
+ Ease +
+
+ Ease of Use – SimpleVM lets you start and stop VMs with a few + clicks which means that + there is no additional configuration necessary. +
+
+
+ +
+
+ Curve +
+
+ Flat Learning Curve – If you want to use SimpleVM you don’t have to + learn about + resource management, like network configurations or storage management. No + background knowledge in Cloud + Computing is necessary. +
+
+
+ +
+
+ Remote +
+
+ Remote Desktop – If you don’t want to use SimpleVM via terminal you + can easily connect + to your VM using a Remote Desktop. +
+
+
+
+
+ +
+
+ Workshop support – Create a workshop and start multiple configured + VMs for your + participants with just a few clicks. To learn more about our workshop support click + here. +
+
+
+ +
+
+
+
+ Typical use cases: +
+
+
+
+
+
+ • Tools and Pipelines + – SimpleVM is a quick way to get up and running with your tools and pipelines in + the cloud. +
+
+
+
+
+
+ • Remote Desktop + – Launch your own Desktop or a browser based IDE in the cloud (based on Apache + Guacamole, RStudio, + Theia IDE and more) and be able to run programs with graphical user interfaces + in addition to the + command-line. +
+
+
+
+
+ +
+
+
+ Want to learn more about SimpleVM? +
+ +
+
+ +
+ + + +
+
+
+ Want to learn the Difference between SimpleVM and Openstack? +
+ +
+
+ + +
+ +
+
+
+ Openstack +
+
+
+
+ +
+
+ Scale +
+
+ Scalability – Easy scaling of virtual machines and distribution of + data for efficient + computations. +
+
+
+ +
+
+ Configuration +
+
+ Configurability – OpenStack allows the configuration of any + resource type available, + such as virtual machines, network, block and object storage. +
+
+
+ +
+
+ API +
+
+ API Access – Any interaction with OpenStack can be automated via + its API enabling users + to script actions, e.g. starting and stopping of virtual machines. +
+
+
+ +
+
+
+
+ Typical use cases: +
+
+
+
+
+
+ • Distributed Workflows + – Distribution of workflows on multiple virtual machines. +
+
+
+
+
+
+ • Services + – The ability to offer services for other researchers. +
+
+
+
+
+ +
+
+
+ Want to learn more about Openstack? +
+ +
+
+
+ +
+ +
+ +
+
+ +
+
+ Want to learn more about SimpleVM? +
+ +
+ +
+
+ Want to learn the Difference? +
+ +
+ +
+
+ Want to learn more about Openstack? +
+ +
+
+
+ +
+ +
+ +
+ +
+ +
+ +} \ No newline at end of file diff --git a/src/app/applications/type-overview.component.ts b/src/app/applications/type-overview.component.ts index b802721b07..13378e1502 100644 --- a/src/app/applications/type-overview.component.ts +++ b/src/app/applications/type-overview.component.ts @@ -3,6 +3,7 @@ import { MatomoTracker } from 'ngx-matomo-client'; import { WIKI_WORKSHOPS, OPENSTACK_LINK, PROJECT_TYPES_LINK, SIMPLE_VM_LINK, } from '../../links/links'; +import { is_vo } from '../shared/globalvar'; /** * The type overview of the different project classes. @@ -16,12 +17,19 @@ export class TypeOverviewComponent implements OnInit { private readonly tracker = inject(MatomoTracker); title: string = 'Project Type Overview'; + openstack_color: string = '#ed1944'; + simplevm_color: string = '#00adef'; + kubernetes_color: string = '#326ce5'; + is_vo_admin: boolean = is_vo; simpleVM_logo_link: String; simpleVM_ease_logo: String; simpleVM_curve_logo: String; simpleVM_remote_logo: String; + kubernetes_logo_link: string; + kubernetes_logo_border: string; + openstack_logo_link: String; openstack_api_logo: String; openstack_conf_logo: String; @@ -40,6 +48,9 @@ export class TypeOverviewComponent implements OnInit { this.simpleVM_ease_logo = `${this.static_img_folder}/simplevm-info-page/easytouse.svg`; this.simpleVM_remote_logo = `${this.static_img_folder}/simplevm-info-page/remote.svg`; + this.kubernetes_logo_link = `${this.static_img_folder}kubernetes_logo.svg`; + this.kubernetes_logo_border = `${this.static_img_folder}kubernetes_logo_border.svg`; + this.openstack_logo_link = `${this.static_img_folder}openstack_plain_red.svg`; this.openstack_api_logo = `${this.static_img_folder}/openstack-info-page/api.svg`; this.openstack_conf_logo = `${this.static_img_folder}/openstack-info-page/configuration.svg`; diff --git a/src/app/facility_manager/facility.application.component.html b/src/app/facility_manager/facility.application.component.html index 149fdc9b90..4de29ac3f9 100644 --- a/src/app/facility_manager/facility.application.component.html +++ b/src/app/facility_manager/facility.application.component.html @@ -1,260 +1,258 @@
-
- -
+
+ +
-
- -
Applications for review
-
- - + - + - + - + -
+ id="tab_state_button_termination_requests" + > + Termination Requests + {{ numberOfTerminationRequests }} + +
-
-
- Loading applications/requests ... -
-
+
+
+ Loading applications/requests ... +
+
- - @if (allApplicationsToCheck.length <= 0 && !loadingApplications) { -
- -
- } @else { - - } -
-
+ + @if (!loadingApplications) { -
-
Application history
-
-
-
-
- -
+ + } + +
-
-
- - - - - - - - - - - - - - - - - - - - - - + + + +
Project NameShort NameDate submitted (d/m/y)InstituteStatusActions
- - {{ application?.project_application_name }}{{ application?.project_application_shortname }}{{ application?.project_application_date_submitted }}{{ application?.project_application_institute }} - +
+
Application history
+
+
+
+
+ +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + - - - + + - - - -
Project NameShort NameDate submitted (d/m/y)InstituteStatusActions
+ + {{ application?.project_application_name }}{{ application?.project_application_shortname }}{{ application?.project_application_date_submitted }}{{ application?.project_application_institute }} + {{ getStatusById(st) }} - - - -
- +   + ShowHide + Information + + +
+ -
+
-
- Loading... -
-
-
-
-
-
- + > +
+ Loading... +
+ +
+
+
+ + diff --git a/src/app/layouts/full-layout.component.html b/src/app/layouts/full-layout.component.html index a7de433884..d1edbc4dc1 100644 --- a/src/app/layouts/full-layout.component.html +++ b/src/app/layouts/full-layout.component.html @@ -89,16 +89,16 @@ > + + + Credits Calculator + + --> + + + + + + + Image Tags +