Skip to content
Snippets Groups Projects
Commit 7dd93859 authored by Joanna Kaźmierczak's avatar Joanna Kaźmierczak
Browse files

footer + visual fixes

parent 9712197a
Branches
No related tags found
1 merge request!186footer + visual fixes
Showing
with 72 additions and 55 deletions
...@@ -2,10 +2,10 @@ ...@@ -2,10 +2,10 @@
<div style=" display: flex; flex-direction: row; justify-content: space-between; padding-bottom: 50px"> <div style=" display: flex; flex-direction: row; justify-content: space-between; padding-bottom: 50px">
<div style="display: flex; align-items: center;"> <div style="display: flex; align-items: center;">
<div *ngIf="app"> <div *ngIf="app">
<img alt="App logo" [src]="(appImagesService.getAppLogoUrl(appId) | secure) || 'assets/images/app-logo-example.png'" height="90px"/> <img alt="App logo" [src]="(appImagesService.getAppLogoUrl(appId) | secure) || 'assets/images/app-logo-example.png'" height="90px" width="90px"/>
</div> </div>
<div *ngIf="!app"> <div *ngIf="!app">
<img alt="App logo" src="assets/images/app-logo-example.png" height="90px"/> <img alt="App logo" src="assets/images/app-logo-example.png" height="90px" width="90px"/>
</div> </div>
<h3 style="margin:0 20px;">{{app?.name}}</h3> <h3 style="margin:0 20px;">{{app?.name}}</h3>
</div> </div>
......
...@@ -50,8 +50,8 @@ ...@@ -50,8 +50,8 @@
</td> </td>
<td (click)="clickTableRow(i)">{{app?.name}}</td> <td (click)="clickTableRow(i)">{{app?.name}}</td>
<td (click)="clickTableRow(i)">{{app?.owner}}</td> <td (click)="clickTableRow(i)">{{app?.owner}}</td>
<td></td> <td (click)="clickTableRow(i)"></td>
<td></td> <td (click)="clickTableRow(i)"></td>
<td class="text-right"> <td class="text-right">
<span class="dropdown"> <span class="dropdown">
<a style="display: inline-block" class="dropdown-toggle " aria-expanded="false" aria-haspopup="true" data-toggle="dropdown" href="#" role="button"> <a style="display: inline-block" class="dropdown-toggle " aria-expanded="false" aria-haspopup="true" data-toggle="dropdown" href="#" role="button">
......
...@@ -81,28 +81,28 @@ ...@@ -81,28 +81,28 @@
<th pSortableColumn="state">{{'BULK.LIST.STATE' | translate}} <th pSortableColumn="state">{{'BULK.LIST.STATE' | translate}}
<p-sortIcon field="state"></p-sortIcon> <p-sortIcon field="state"></p-sortIcon>
</th> </th>
<th></th> <!-- <th></th>-->
</tr> </tr>
</ng-template> </ng-template>
<ng-template pTemplate="body" let-bulk> <ng-template pTemplate="body" let-bulk>
<tr class="table-row"> <tr class="table-row">
<td>{{bulk?.id}}</td> <td [routerLink]="['/admin/domains/bulks/', bulk?.id]">{{bulk?.id}}</td>
<td>{{bulk?.creator.username}}</td> <td [routerLink]="['/admin/domains/bulks/', bulk?.id]">{{bulk?.creator.username}}</td>
<td>{{bulk?.creationDate | date: 'dd-MM-yyyy HH:mm'}}</td> <td [routerLink]="['/admin/domains/bulks/', bulk?.id]">{{bulk?.creationDate | date: 'dd-MM-yyyy HH:mm'}}</td>
<td>{{'BULK.STATE.' + bulk?.state | translate}}</td> <td [routerLink]="['/admin/domains/bulks/', bulk?.id]">{{'BULK.STATE.' + bulk?.state | translate}}</td>
<td class="text-right"> <!-- <td class="text-right">-->
<span class="dropdown"> <!-- <span class="dropdown">-->
<a style="display: inline-block" class="dropdown-toggle " aria-expanded="false" aria-haspopup="true" data-toggle="dropdown" href="#" role="button"> <!-- <a style="display: inline-block" class="dropdown-toggle " aria-expanded="false" aria-haspopup="true" data-toggle="dropdown" href="#" role="button">-->
<em class="fas fa-cog icon-black icon-bigger"></em> <!-- <em class="fas fa-cog icon-black icon-bigger"></em>-->
</a> <!-- </a>-->
<ul class="dropdown-menu pull-right-drop"> <!-- <ul class="dropdown-menu pull-right-drop">-->
<li *ngIf="mode === bulkTypeDomain"> <!-- <li *ngIf="mode === bulkTypeDomain">-->
<a [routerLink]="['/admin/domains/bulks/', bulk?.id]">{{ 'BULK.LIST.DETAILS' | translate }}</a> <!-- <a [routerLink]="['/admin/domains/bulks/', bulk?.id]">{{ 'BULK.LIST.DETAILS' | translate }}</a>-->
</li> <!-- </li>-->
</ul> <!-- </ul>-->
</span> <!-- </span>-->
</td> <!-- </td>-->
</tr> </tr>
</ng-template> </ng-template>
</p-table> </p-table>
...@@ -180,21 +180,21 @@ ...@@ -180,21 +180,21 @@
<ng-template pTemplate="body" let-bulk> <ng-template pTemplate="body" let-bulk>
<tr class="table-row"> <tr class="table-row">
<td>{{bulk?.id}}</td> <td [routerLink]="['/admin/apps/bulks/', bulk?.id]">{{bulk?.id}}</td>
<td>{{bulk?.creator.username}}</td> <td [routerLink]="['/admin/apps/bulks/', bulk?.id]">{{bulk?.creator.username}}</td>
<td>{{getApplicationName(bulk?.details)}}</td> <td [routerLink]="['/admin/apps/bulks/', bulk?.id]">{{getApplicationName(bulk?.details)}}</td>
<td>{{getInstancesNumber(bulk?.details)}}</td> <td [routerLink]="['/admin/apps/bulks/', bulk?.id]">{{getInstancesNumber(bulk?.details)}}</td>
<td>{{bulk?.creationDate | date: 'dd-MM-yyyy HH:mm'}}</td> <td [routerLink]="['/admin/apps/bulks/', bulk?.id]">{{bulk?.creationDate | date: 'dd-MM-yyyy HH:mm'}}</td>
<td>{{'BULK.STATE.' + bulk?.state | translate}}</td> <td [routerLink]="['/admin/apps/bulks/', bulk?.id]">{{'BULK.STATE.' + bulk?.state | translate}}</td>
<td class="text-right"> <td class="text-right">
<span class="dropdown"> <span class="dropdown">
<a style="display: inline-block" class="dropdown-toggle " aria-expanded="false" aria-haspopup="true" data-toggle="dropdown" href="#" role="button"> <a style="display: inline-block" class="dropdown-toggle " aria-expanded="false" aria-haspopup="true" data-toggle="dropdown" href="#" role="button">
<em class="fas fa-cog icon-black icon-bigger"></em> <em class="fas fa-cog icon-black icon-bigger"></em>
</a> </a>
<ul class="dropdown-menu pull-right-drop"> <ul class="dropdown-menu pull-right-drop">
<li *ngIf="mode === bulkTypeApp"> <!-- <li *ngIf="mode === bulkTypeApp">-->
<a [routerLink]="['/admin/apps/bulks/', bulk?.id]">{{ 'BULK.LIST.DETAILS' | translate }}</a> <!-- <a [routerLink]="['/admin/apps/bulks/', bulk?.id]">{{ 'BULK.LIST.DETAILS' | translate }}</a>-->
</li> <!-- </li>-->
<li *ngIf="mode === bulkTypeApp && bulk?.state !== 'REMOVED'"> <li *ngIf="mode === bulkTypeApp && bulk?.state !== 'REMOVED'">
<a (click)="getAppBulkDetails(bulk?.id)"> {{"BULK.APP.DOWNLOAD_CSV" | translate}}</a> <a (click)="getAppBulkDetails(bulk?.id)"> {{"BULK.APP.DOWNLOAD_CSV" | translate}}</a>
</li> </li>
......
...@@ -18,10 +18,18 @@ ...@@ -18,10 +18,18 @@
<ng-template pTemplate="header"> <ng-template pTemplate="header">
<tr> <tr>
<th></th> <th></th>
<th>{{'APPS_MANAGEMENT.NAME' | translate}}</th> <th pSortableColumn="name">{{'APPS_MANAGEMENT.NAME' | translate}}
<th>{{'DOMAINS.CODE_NAME' | translate}}</th> <p-sortIcon field="name"></p-sortIcon>
<th>{{'DOMAINS.LIST.DOMAIN_NAME' | translate}}</th> </th>
<th>{{'DOMAINS.LIST.DOMAIN_CODE_NAME' | translate}}</th> <th pSortableColumn="codenam">{{'DOMAINS.CODE_NAME' | translate}}
<p-sortIcon field="codename"></p-sortIcon>
</th>
<th pSortableColumn="domainName">{{'DOMAINS.LIST.DOMAIN_NAME' | translate}}
<p-sortIcon field="domainName"></p-sortIcon>
</th>
<th pSortableColumn="domainCode">{{'DOMAINS.LIST.DOMAIN_CODE_NAME' | translate}}
<p-sortIcon field="domainCode"></p-sortIcon>
</th>
<th></th> <th></th>
</tr> </tr>
</ng-template> </ng-template>
......
...@@ -120,6 +120,9 @@ ...@@ -120,6 +120,9 @@
</thead> </thead>
<tbody> <tbody>
<tr *ngIf="domainUsers.length === 0" >
<td colspan="6" style="text-align: center">None</td>
</tr>
<ng-template ngFor let-user [ngForOf]="domainUsers"> <ng-template ngFor let-user [ngForOf]="domainUsers">
<tr> <tr>
<td *ngIf="authService.hasRole('ROLE_SYSTEM_ADMIN')">{{user.id}}</td> <td *ngIf="authService.hasRole('ROLE_SYSTEM_ADMIN')">{{user.id}}</td>
...@@ -248,6 +251,9 @@ ...@@ -248,6 +251,9 @@
</thead> </thead>
<tbody> <tbody>
<tr *ngIf="domain.groups.length === 0" >
<td colspan="6" style="text-align: center">None</td>
</tr>
<ng-template ngFor let-group [ngForOf]="domain.groups"> <ng-template ngFor let-group [ngForOf]="domain.groups">
<tr> <tr>
<td>{{group.name}}</td> <td>{{group.name}}</td>
......
...@@ -36,7 +36,7 @@ export class DomainComponent extends BaseComponent implements OnInit { ...@@ -36,7 +36,7 @@ export class DomainComponent extends BaseComponent implements OnInit {
public domainId: number; public domainId: number;
public domain: Domain; public domain: Domain;
public dcnUpdated = false; public dcnUpdated = false;
public domainUsers: User[]; public domainUsers: User[] = [];
protected domainCache: CacheService<number, Domain> = new CacheService<number, Domain>(); protected domainCache: CacheService<number, Domain> = new CacheService<number, Domain>();
public keys: any = Object.keys(DcnDeploymentType).filter((type) => { public keys: any = Object.keys(DcnDeploymentType).filter((type) => {
return isNaN(Number(type)); return isNaN(Number(type));
...@@ -64,6 +64,7 @@ export class DomainComponent extends BaseComponent implements OnInit { ...@@ -64,6 +64,7 @@ export class DomainComponent extends BaseComponent implements OnInit {
} }
ngOnInit() { ngOnInit() {
console.warn('WWWWWWWWWWWWWWWWwwww', this.domainUsers)
console.log(this.getCurrentMode()); console.log(this.getCurrentMode());
this.modal.setModalType('warning'); this.modal.setModalType('warning');
this.modal.setStatusOfIcons(true); this.modal.setStatusOfIcons(true);
......
...@@ -46,8 +46,8 @@ ...@@ -46,8 +46,8 @@
<ng-template pTemplate="body" let-domain> <ng-template pTemplate="body" let-domain>
<tr *ngIf="!domain.deleted"> <tr *ngIf="!domain.deleted">
<td [routerLink]="['view/', domain.id]">{{domain?.codename}}</td> <td [routerLink]="['view/', domain.id]">{{domain?.codename}}</td>
<td>{{domain?.name}}</td> <td [routerLink]="['view/', domain.id]">{{domain?.name}}</td>
<td> <td [routerLink]="['view/', domain.id]">
<span class="glyphicon glyphicon-ok" *ngIf="domain?.active"></span> <span class="glyphicon glyphicon-ok" *ngIf="domain?.active"></span>
<span class="glyphicon glyphicon-remove" *ngIf="!(domain?.active)"></span> <span class="glyphicon glyphicon-remove" *ngIf="!(domain?.active)"></span>
</td> </td>
...@@ -57,9 +57,6 @@ ...@@ -57,9 +57,6 @@
<em class="pi pi-cog" style="font-size: 1.8rem; color: var(--l-text-color)"></em> <em class="pi pi-cog" style="font-size: 1.8rem; color: var(--l-text-color)"></em>
</a> </a>
<ul class="dropdown-menu pull-right-drop" [appendTo]="'body'" > <ul class="dropdown-menu pull-right-drop" [appendTo]="'body'" >
<li><a [routerLink]="['view/', domain.id]" class="">
{{ 'DOMAINS.DETAILS_BUTTON' | translate }}</a>
</li>
<li><a *roles="['ROLE_SYSTEM_ADMIN', 'ROLE_OPERATOR']" [routerLink]="['edit/', domain.id]" <li><a *roles="['ROLE_SYSTEM_ADMIN', 'ROLE_OPERATOR']" [routerLink]="['edit/', domain.id]"
class="">{{ 'DOMAINS.EDIT_BUTTON' | translate }}</a> class="">{{ 'DOMAINS.EDIT_BUTTON' | translate }}</a>
</li> </li>
......
...@@ -2,13 +2,13 @@ ...@@ -2,13 +2,13 @@
<div class="container-width"> <div class="container-width">
<div class="" style="display: flex; justify-content: space-between"> <div class="" style="display: flex; justify-content: space-between">
<div style="width:50%; display: flex"> <div style="width:50%; display: flex">
<div class="" style="margin-right: 20px"> <div *ngIf="!isLoggedIn" class="" style="margin-right: 20px">
<!-- nmaas Logo optionally --> <!-- nmaas Logo optionally -->
<a href="https://www.geant.org/"> <a href="https://www.geant.org/">
<img alt="GÉANT Logo" src="/assets/images/geant-logo.png" width="100" class="image-link"/> <img alt="GÉANT Logo" src="/assets/images/geant-logo.png" width="100" class="image-link"/>
</a> </a>
</div> </div>
<div class=""> <div *ngIf="!isLoggedIn" class="">
<img alt="EU flag" src="/assets/images/cofunded.png" width="180" style="padding-top: 5px; "/> <img alt="EU flag" src="/assets/images/cofunded.png" width="180" style="padding-top: 5px; "/>
</div> </div>
</div> </div>
......
...@@ -3,6 +3,7 @@ import { Router } from '@angular/router'; ...@@ -3,6 +3,7 @@ import { Router } from '@angular/router';
import {AppConfigService, ChangelogService} from '../../service'; import {AppConfigService, ChangelogService} from '../../service';
import {GitInfo} from '../../model/gitinfo'; import {GitInfo} from '../../model/gitinfo';
import {TranslateService} from '@ngx-translate/core'; import {TranslateService} from '@ngx-translate/core';
import {AuthService} from '../../auth/auth.service';
@Component({ @Component({
selector: 'nmaas-footer', selector: 'nmaas-footer',
...@@ -14,12 +15,14 @@ export class FooterComponent implements OnInit { ...@@ -14,12 +15,14 @@ export class FooterComponent implements OnInit {
public gitInfo: GitInfo; public gitInfo: GitInfo;
public landingProfile = ''; public landingProfile = '';
public isLoggedIn = false;
constructor(private changelogService: ChangelogService, private router: Router, constructor(private changelogService: ChangelogService, private router: Router, private authService: AuthService,
public appConfigService: AppConfigService, public translate: TranslateService, private appConfig: AppConfigService) { public appConfigService: AppConfigService, public translate: TranslateService, private appConfig: AppConfigService) {
} }
ngOnInit() { ngOnInit() {
this.isLoggedIn = this.authService.isLogged() ;
if (this.appConfigService.getShowGitInfo()) { if (this.appConfigService.getShowGitInfo()) {
this.changelogService.getGitInfo().subscribe(info => this.gitInfo = info); this.changelogService.getGitInfo().subscribe(info => this.gitInfo = info);
} }
......
...@@ -52,8 +52,8 @@ ...@@ -52,8 +52,8 @@
background: var(--user-button-background-hover) background: var(--user-button-background-hover)
} }
:host ::ng-deep .p-menu.p-menu-overlay{ :host ::ng-deep .p-menu.p-menu-overlay{
position: static; position: absolute;
width:100%; width:93%;
margin-bottom:5px; margin-bottom:5px;
border:none; border:none;
} }
......
...@@ -6,7 +6,8 @@ ...@@ -6,7 +6,8 @@
<img *ngIf="isCollapsed" class="logo" src="../../../assets/images/nmaas-cloud.png" width="50px"> <img *ngIf="isCollapsed" class="logo" src="../../../assets/images/nmaas-cloud.png" width="50px">
</div> </div>
<div class="toggle-button" (click)="toggleMenu()" [ngStyle]="{'left': isCollapsed ? '85px' : '284px'}"> <div class="toggle-button" (click)="toggleMenu()" [ngStyle]="{'left': isCollapsed ? '85px' : '284px'}">
<i style="font-size: 1.8rem" class="pi pi-angle-left"></i> <i *ngIf="!isCollapsed" style="font-size: 1.8rem" class="pi pi-angle-left"></i>
<i *ngIf="isCollapsed" style="font-size: 1.8rem" class="pi pi-angle-right"></i>
</div> </div>
</div> </div>
<div style="margin-top: 30px"> <div style="margin-top: 30px">
...@@ -156,7 +157,7 @@ ...@@ -156,7 +157,7 @@
User User
</span> </span>
</p-button> </p-button>
<div style="margin-top:10px" [routerLink]="['admin/dashboard']"> <div *roles="['ROLE_DOMAIN_ADMIN', 'ROLE_SYSTEM_ADMIN']" style="margin-top:10px" [routerLink]="['admin/dashboard']">
<p-button *ngIf="!toggleAdmin" (onClick)="adminPanel()" ><i class="pi pi-sign-in" style="margin-right:10px; font-size: 18px"[ngClass]="{'collapsed': isCollapsed}" title=" Go to admin panel"></i> <p-button *ngIf="!toggleAdmin" (onClick)="adminPanel()" ><i class="pi pi-sign-in" style="margin-right:10px; font-size: 18px"[ngClass]="{'collapsed': isCollapsed}" title=" Go to admin panel"></i>
<span *ngIf="!isCollapsed"> <span *ngIf="!isCollapsed">
Admin panel Admin panel
......
...@@ -115,17 +115,17 @@ ...@@ -115,17 +115,17 @@
<ng-template pTemplate="body" let-user> <ng-template pTemplate="body" let-user>
<tr> <tr>
<td (click)="view(user.id)">{{ user.username }}</td> <td (click)="view(user.id)">{{ user.username }}</td>
<td>{{(user.firstname || '') + ' ' + (user.lastname || '')}}</td> <td (click)="view(user.id)">{{(user.firstname || '') + ' ' + (user.lastname || '')}}</td>
<td *ngIf="!domainMode">{{user.email}}</td> <td *ngIf="!domainMode" (click)="view(user.id)">{{user.email}}</td>
<td *ngIf="domainId === domainService.getGlobalDomainId()"> <td *ngIf="domainId === domainService.getGlobalDomainId()" (click)="view(user.id)">
<span *ngFor="let role of filterDomainNames(user); let isLast = last"> <span *ngFor="let role of filterDomainNames(user); let isLast = last">
{{ getDomainName(role.domainId) | async }}{{ !isLast ? ', ' : '' }} {{ getDomainName(role.domainId) | async }}{{ !isLast ? ', ' : '' }}
</span> </span>
</td> </td>
<td *ngIf="domainId === domainService.getGlobalDomainId()"> <td *ngIf="domainId === domainService.getGlobalDomainId()" (click)="view(user.id)">
<span>{{"ENUM.USER_ROLES." + getGlobalRole(user).toUpperCase() | translate}}</span> <span>{{"ENUM.USER_ROLES." + getGlobalRole(user).toUpperCase() | translate}}</span>
</td> </td>
<td *ngIf="domainId !== domainService.getGlobalDomainId() && !isModeAllowed(ComponentMode.EDIT)"> <td *ngIf="domainId !== domainService.getGlobalDomainId() && !isModeAllowed(ComponentMode.EDIT)" >
<div *roles="['ROLE_DOMAIN_ADMIN'];excluded:['ROLE_SYSTEM_ADMIN']"> <div *roles="['ROLE_DOMAIN_ADMIN'];excluded:['ROLE_SYSTEM_ADMIN']">
<div *ngIf="!checkUserIfIsCurrentUser(user.username)"> <div *ngIf="!checkUserIfIsCurrentUser(user.username)">
<li [routerLinkActiveOptions]="{exact:true}" <li [routerLinkActiveOptions]="{exact:true}"
...@@ -156,13 +156,13 @@ ...@@ -156,13 +156,13 @@
</div> </div>
</div> </div>
</td> </td>
<td *ngIf="!isModeAllowed(ComponentMode.EDIT) && !domainMode"> <td *ngIf="!isModeAllowed(ComponentMode.EDIT) && !domainMode" (click)="view(user.id)">
{{ user.firstLoginDate | date:'dd-MM-yyyy HH:mm' }} {{ user.firstLoginDate | date:'dd-MM-yyyy HH:mm' }}
</td> </td>
<td *ngIf="!isModeAllowed(ComponentMode.EDIT) && !domainMode"> <td *ngIf="!isModeAllowed(ComponentMode.EDIT) && !domainMode" (click)="view(user.id)">
{{ user.lastSuccessfulLoginDate | date:'dd-MM-yyyy HH:mm' }} {{ user.lastSuccessfulLoginDate | date:'dd-MM-yyyy HH:mm' }}
</td> </td>
<td> <td (click)="view(user.id)">
<i class="pi" [ngClass]="{'pi-check': user?.enabled, 'pi-times': !user?.enabled}"></i> <i class="pi" [ngClass]="{'pi-check': user?.enabled, 'pi-times': !user?.enabled}"></i>
</td> </td>
<td *ngIf="!domainMode && !isModeAllowed(ComponentMode.EDIT)"> <td *ngIf="!domainMode && !isModeAllowed(ComponentMode.EDIT)">
......
...@@ -190,6 +190,7 @@ body .p-datatable .p-datatable-tbody > tr > td { ...@@ -190,6 +190,7 @@ body .p-datatable .p-datatable-tbody > tr > td {
border: 1px solid #E0E2E5; border: 1px solid #E0E2E5;
border-width: 0 0 1px 0; border-width: 0 0 1px 0;
padding: 1rem 1rem; padding: 1rem 1rem;
cursor: pointer;
} }
body .p-datatable .p-paginator-bottom{ body .p-datatable .p-paginator-bottom{
height: 40px; height: 40px;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment