[master | ADDED | DONE]: Add provide link if user is manager of this repository in provide.

This commit is contained in:
Konstantinos Triantafyllou 2024-01-07 13:21:01 +02:00
parent 26250ede6a
commit fdd11d2036
3 changed files with 35 additions and 4 deletions

@ -1 +1 @@
Subproject commit bc4e30c3f2dc0294cec798252c5c040fe3e377e3
Subproject commit f81f5d7bfb17dbaa5fd847926f70792e3631fd31

View File

@ -12,6 +12,7 @@ import {SearchCustomFilter} from "../openaireLibrary/searchPages/searchUtils/sea
import {LayoutService} from "../openaireLibrary/dashboard/sharedComponents/sidebar/layout.service";
import {OpenaireEntities} from "../openaireLibrary/utils/properties/searchFields";
import {SearchDataprovidersService} from "../openaireLibrary/services/searchDataproviders.service";
import {UserManagementService} from "../openaireLibrary/services/user-management.service";
@Component({
selector: 'repository',
@ -75,7 +76,7 @@ import {SearchDataprovidersService} from "../openaireLibrary/services/searchData
</div>
</div>
<div *ngIf="stakeholder" class="uk-banner-footer">
<div class="uk-container uk-container-large">
<div class="uk-container uk-container-large uk-flex uk-flex-between">
<ul class="uk-banner-tab uk-padding-small uk-padding-remove-vertical">
<li [class.uk-active]="!isSearch">
<a [routerLink]="['./', stakeholder.alias]" [relativeTo]="_route" (click)="isSearch = false">
@ -88,6 +89,11 @@ import {SearchDataprovidersService} from "../openaireLibrary/services/searchData
</a>
</li>
</ul>
<a *ngIf="isProvideManager" [href]="provideLink" target="_blank" class="uk-button uk-margin-large-right uk-flex uk-flex-middle">
<span class="uk-margin-small-right">Manage at</span>
<img class="uk-margin-xsmall-bottom" width="78" src="assets/common-assets/logo-small-provide.png">
<icon name="east" flex="true" class="uk-margin-small-left"></icon>
</a>
</div>
</div>
</div>
@ -104,8 +110,10 @@ export class RepositoryComponent extends StakeholderBaseComponent implements OnI
isSearch: boolean = false;
loading: boolean = false;
openaireEntities = OpenaireEntities;
isProvideManager: boolean;
constructor(private stakeholderService: StakeholderService,
private userManagementService: UserManagementService,
private searchDataprovidersService: SearchDataprovidersService,
private layoutService: LayoutService,
private _customFilterService: CustomFilterService,
@ -141,7 +149,10 @@ export class RepositoryComponent extends StakeholderBaseComponent implements OnI
new SearchCustomFilter("Repository", "collectedfromdatasourceid", this.stakeholder.index_id, this.stakeholder.index_name, true)
]);
this.subscriptions.push(this.searchDataprovidersService.searchDataproviderById(this.stakeholder.index_id).subscribe(data => {
this.stakeholder['details'] = data[0];
this.stakeholder.details = data[0];
this.subscriptions.push(this.userManagementService.getUserInfoAt(1).subscribe(user => {
this.isProvideManager = !!user.role.find(role => role.includes(this.stakeholder.details.originalId.toUpperCase()));
}));
this.loading = false;
}));
} else {
@ -154,6 +165,14 @@ export class RepositoryComponent extends StakeholderBaseComponent implements OnI
});
}
get provideLink() {
if(this.stakeholder?.details?.originalId) {
return 'https://' + (this.properties.environment != 'production'?'beta.':'') + 'provide.openaire.eu/repository/' + this.stakeholder.details.originalId + '/dashboard';
} else {
return null;
}
}
ngOnDestroy() {
super.ngOnDestroy();
this.layoutService.setRootClass(null);

View File

@ -11,6 +11,9 @@
@banner-tab-item-active-color: @banner-tab-item-hover-color;
@banner-tab-item-active-indicator: @global-background;
@banner-tab-button-background: @global-secondary-background;
@banner-tab-button-border-radius: 0;
.uk-banner:extend(.uk-section) {
background: @banner-background;
position: relative;
@ -27,7 +30,7 @@
backdrop-filter: blur(30px) opacity(10%) brightness(90%);
}
& ul.uk-banner-tab:extend(.uk-flex) {
& ul.uk-banner-tab:extend(.uk-flex):extend(.uk-margin-top) {
list-style: none;
margin: @banner-tab-margin-vertical 0;
@ -75,5 +78,14 @@
}
}
}
& .uk-button {
background: @banner-tab-button-background;
border-radius: @banner-tab-button-border-radius;
&:hover {
background: fade(@banner-tab-button-background, 80%);
}
}
}
}