eosc-metadata-harvester/src/app/harvester/harvester.component.html

144 lines
7.3 KiB
HTML

<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>
<div *ngIf="service.compatibilities">
<span class="uk-text-meta">Compatibilities: </span>
{{service.compatibilities.join(', ')}}
</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">
<button class="uk-button uk-button-text" (click)="openModal(service.name, service.baseurl)">Harvest</button>
</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>
<modal-alert #modal (alertOutput)="harvest()" (cancelOutput)="previousModalClicked($event)"
[okDisabled]="(!modalShowNext && (form.invalid || sending))" [classBody]="'uk-height-large'">
<div *ngIf="modalClicked" [formGroup]="form">
<div *ngIf="modalShowNext" class="uk-flex uk-flex-column">
<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>
<!-- <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>-->
</div>
<!-- <hr class="uk-margin-xlarge-top uk-margin-xlarge-bottom">-->
<div *ngIf="!modalShowNext" class="uk-flex uk-flex-column uk-flex-middle">
<!-- <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>-->
<div input class="uk-width-2-3 uk-margin-medium-top"
[formInput]="form.get('email')" placeholder="E-mail">
<!-- <span note>(Optional)</span>-->
</div>
<div>
<!-- <re-captcha (resolved)="handleRecaptcha($event)" [siteKey]="properties.reCaptchaSiteKey"-->
<!-- [ngClass]="sending ? 'uk-hidden':''"></re-captcha>-->
<loading [ngClass]="sending ? '':'uk-hidden'"></loading>
</div>
</div>
</div>
</modal-alert>