2023-10-17 12:36:15 +02:00
|
|
|
<div class="uk-section">
|
|
|
|
<div class="uk-container uk-container-xlarge">
|
|
|
|
<h1 class="uk-margin-large-bottom">EOSC Metadata Harvester</h1>
|
|
|
|
|
|
|
|
<div class="uk-grid">
|
|
|
|
<div class="uk-width-1-4@m search-filters">
|
|
|
|
<div [class.filterLoading]="false">
|
|
|
|
<div class="uk-flex uk-flex-middle">
|
|
|
|
<h4 class="uk-margin-right uk-margin-remove-bottom">Filters</h4>
|
|
|
|
<!-- <a *ngIf="(selectedRangeFilters + selectedFilters + selectedTypesNum)>0"-->
|
|
|
|
<!-- (click)="clearFilters()" class="uk-text-small"-->
|
|
|
|
<!-- [class.uk-disabled]="disabled" [class.uk-link-muted]="disabled">-->
|
|
|
|
<!-- Clear All-->
|
|
|
|
<!-- </a>-->
|
|
|
|
</div>
|
|
|
|
<!-- <div *ngIf="searchUtils.refineStatus == errorCodes.LOADING && existingFiltersWithValues === 0"-->
|
|
|
|
<!-- class="uk-margin-top" role="alert">-->
|
|
|
|
<!-- <loading></loading>-->
|
|
|
|
<!-- </div>-->
|
|
|
|
<div>
|
|
|
|
<div class="uk-flex uk-flex-middle uk-margin-bottom">
|
|
|
|
<h6 title="compatibility" class="uk-margin-top uk-margin-remove-bottom">{{_formatTitle("Compatibility", compatibilityFilterValues.length)}}</h6>
|
|
|
|
<!-- <a *ngIf="filter.countSelectedValues>0" class="uk-text-small uk-margin-left" (click)="clearFilter()" [class.uk-disabled]="isDisabled">Clear</a>-->
|
|
|
|
</div>
|
|
|
|
<div>
|
|
|
|
<div *ngFor="let compatibilityFilter of compatibilityFilterValues"
|
|
|
|
class="uk-animation-fade uk-text-small uk-margin-small-bottom">
|
|
|
|
<div [title]="compatibilityFilter.compatibility">
|
|
|
|
<span class="uk-flex uk-flex-middle">
|
|
|
|
<!-- [class.uk-disabled]="isDisabled || (showResultCount && value.number === 0)">-->
|
|
|
|
<label>
|
|
|
|
<input type="checkbox" class="uk-checkbox"
|
|
|
|
[(ngModel)]="compatibilityFilter.selected"
|
|
|
|
(ngModelChange)="filterChange(compatibilityFilter.selected)"/>
|
|
|
|
<span class="uk-margin-small-left">
|
|
|
|
{{_formatName(compatibilityFilter.compatibility)}}
|
|
|
|
</span>
|
|
|
|
</label>
|
|
|
|
</span>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="uk-width-expand">
|
|
|
|
<results-and-pages
|
|
|
|
type="Services"
|
|
|
|
[page]="page" [pageSize]="pageSize"
|
|
|
|
[totalResults]="services.length">
|
|
|
|
</results-and-pages>
|
|
|
|
|
|
|
|
<ul *ngIf="services && services.length > 0" class="uk-list uk-list-large uk-list-divider">
|
|
|
|
<li *ngFor="let service of services.slice((page-1)*pageSize, page*pageSize)" class="uk-card uk-card-default">
|
|
|
|
<div class="uk-card-body uk-text-small">
|
|
|
|
<!-- {{service | json}}-->
|
|
|
|
<h1 *ngIf="service.name" class="uk-h6">{{service.name}}</h1>
|
|
|
|
<div *ngIf="service.webpage">
|
|
|
|
<span class="uk-text-meta">Web page: </span>
|
|
|
|
<a target="_blank" [href]="service.webpage" class="custom-external uk-link">{{service.webpage}}</a>
|
|
|
|
</div>
|
|
|
|
<div *ngIf="service.baseurl">
|
|
|
|
<span class="uk-text-meta">Base URL: </span>
|
|
|
|
<a target="_blank" [href]="service.baseurl" class="custom-external uk-link">{{service.baseurl}}</a>
|
|
|
|
</div>
|
2023-10-17 12:47:51 +02:00
|
|
|
<div *ngIf="service.compatibilities">
|
|
|
|
<span class="uk-text-meta">Compatibilities: </span>
|
|
|
|
{{service.compatibilities.join(', ')}}
|
2023-10-17 12:36:15 +02:00
|
|
|
</div>
|
|
|
|
<div *ngIf="service.description" class="uk-margin-top uk-height-max-medium uk-overflow-auto">
|
|
|
|
<p [innerHTML]="service.description"></p>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="uk-card-footer uk-flex uk-flex-right">
|
2023-11-06 16:19:59 +01:00
|
|
|
<button class="uk-button uk-button-text" (click)="openModal(service.name, service.baseurl)">Harvest</button>
|
2023-10-17 12:36:15 +02:00
|
|
|
</div>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
|
|
|
|
<paging-no-load *ngIf="services.length > 10"
|
|
|
|
class="uk-margin-top"
|
|
|
|
(pageChange)="updatePage($event)"
|
|
|
|
[currentPage]="page" [size]="pageSize"
|
|
|
|
[totalResults]="services.length">
|
|
|
|
</paging-no-load>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
2023-11-21 14:09:51 +01:00
|
|
|
<modal-alert #modal (alertOutput)="harvest()" (cancelOutput)="previousModalClicked($event)"
|
2023-11-21 12:03:09 +01:00
|
|
|
[okDisabled]="(!modalShowNext && (form.invalid || sending))" [classBody]="'uk-height-large'">
|
2023-11-06 16:19:59 +01:00
|
|
|
<div *ngIf="modalClicked" [formGroup]="form">
|
2023-11-21 12:03:09 +01:00
|
|
|
<div *ngIf="modalShowNext" class="uk-flex uk-flex-column">
|
2023-11-06 16:19:59 +01:00
|
|
|
<div class="uk-margin-bottom">
|
|
|
|
<span> Define the number of record to validate</span>
|
|
|
|
<div class="uk-margin-xsmall-left uk-margin-top uk-margin-small-bottom">
|
|
|
|
<input id="all" type="radio" name="recordsNum" value="-1" formControlName="recordsNum">
|
|
|
|
<label for="all" class="uk-margin-xsmall-left">All</label>
|
|
|
|
</div>
|
|
|
|
<div class="uk-flex uk-flex-middle uk-margin-xsmall-left">
|
|
|
|
<input #customRecordsNum id="custom" type="radio" name="recordsNum" [value]="recordsNum" formControlName="recordsNum">
|
|
|
|
<label for="custom" class="uk-margin-xsmall-left">
|
|
|
|
Custom
|
|
|
|
</label>
|
|
|
|
<span class="uk-margin-left uk-flex-inline uk-flex-middle">
|
|
|
|
<icon class="clickable" name="remove_circle_outline" flex="true" ratio="0.9" type="outlined"
|
|
|
|
[ngClass]="recordsNum <= 1000 ? 'uk-disabled uk-text-muted' : ''" (click)="updateRecordsNum(false)"></icon>
|
|
|
|
<span class="uk-margin-small-left uk-margin-small-right">{{recordsNum}}</span>
|
|
|
|
<icon class="clickable" name="add_circle_outline" flex="true" ratio="0.9" type="outlined"
|
|
|
|
(click)="updateRecordsNum(true)"></icon>
|
|
|
|
</span>
|
|
|
|
</div>
|
|
|
|
</div>
|
2023-10-17 12:36:15 +02:00
|
|
|
|
2023-11-06 16:19:59 +01:00
|
|
|
<!-- <div class="uk-flex uk-flex-inline">-->
|
|
|
|
<div [disabled]="!selectedFormats || formatsDisabled" input type="select" placeholder="Select format" inputClass="flat x-small"
|
|
|
|
[options]="selectedFormats" [formInput]="form.get('format')" class="uk-width-large uk-margin-medium-top uk-margin-xsmall-left"></div>
|
|
|
|
<!-- <loading></loading>-->
|
|
|
|
<!-- </div>-->
|
2023-10-17 12:36:15 +02:00
|
|
|
</div>
|
2023-11-06 16:19:59 +01:00
|
|
|
|
2023-11-21 12:03:09 +01:00
|
|
|
<!-- <hr class="uk-margin-xlarge-top uk-margin-xlarge-bottom">-->
|
2023-11-06 16:19:59 +01:00
|
|
|
|
2023-11-21 12:03:09 +01:00
|
|
|
<div *ngIf="!modalShowNext" class="uk-flex uk-flex-column uk-flex-middle">
|
2023-11-21 14:28:26 +01:00
|
|
|
<!-- <div>Want feedback on the harvest status?</div>-->
|
|
|
|
<div>Please provide us with your email address and click on the <i class="uk-text-bold">harvest</i> button.
|
|
|
|
You will soon receive an email with the harvest status.</div>
|
|
|
|
<!-- <div class="uk-margin-small-top">Otherwise, simply click the <i class="uk-text-bold">harvest</i> button to continue.</div>-->
|
2023-11-06 16:19:59 +01:00
|
|
|
|
2023-11-21 12:03:09 +01:00
|
|
|
<div input class="uk-width-2-3 uk-margin-medium-top"
|
2023-11-06 16:19:59 +01:00
|
|
|
[formInput]="form.get('email')" placeholder="E-mail">
|
2023-11-21 14:28:26 +01:00
|
|
|
<!-- <span note>(Optional)</span>-->
|
2023-11-06 16:19:59 +01:00
|
|
|
</div>
|
|
|
|
<div>
|
|
|
|
<!-- <re-captcha (resolved)="handleRecaptcha($event)" [siteKey]="properties.reCaptchaSiteKey"-->
|
|
|
|
<!-- [ngClass]="sending ? 'uk-hidden':''"></re-captcha>-->
|
|
|
|
<loading [ngClass]="sending ? '':'uk-hidden'"></loading>
|
|
|
|
</div>
|
2023-10-17 12:36:15 +02:00
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</modal-alert>
|