metadata-validator-ui/src/app/pages/single-record-validator/single-record-validator.com...

100 lines
5.3 KiB
HTML

<div id="page_content">
<div id="page_content_header" class="uk-blur-background" offset="65">
<div class="uk-container uk-container-large">
<div class="uk-section" [formGroup]="form">
<h6>1. Select guidelines (*)</h6>
<div input class="uk-width-large" [formInput]="form.get('guidelines')" placeholder="Select a guideline" [options]="options" type="select"></div>
<h6>2. Paste metadata record (*)</h6>
<div input class="uk-width-1-1 uk-margin-top" [formInput]="form.get('xml')" placeholder="Paste your xml here" type="textarea" [rows]="15"></div>
<!-- <ngx-dropzone #drop class="" (change)="fileChangeEvent($event, true)"-->
<!-- [multiple]="false" [accept]="xml">-->
<!-- <ngx-dropzone-preview *ngIf="form.value.value && form.value.value.name" class="file-preview"-->
<!-- [removable]="true" (removed)="onRemove()">-->
<!-- <ngx-dropzone-label class="file-label">{{ form.value.value.name }}</ngx-dropzone-label>-->
<!-- </ngx-dropzone-preview>-->
<!-- </ngx-dropzone>-->
<!-- <button *ngIf="!form.value.value || filesToUpload" mat-button (click)="drop.showFileSelector()" type="button" class="attach-file-btn"-->
<!-- [disabled]="!!form.value.value">-->
<!-- <mat-icon class="mr-2">upload</mat-icon>-->
<!-- <mat-label>{{ (form.get('data').value.label | translate)}}</mat-label>-->
<!-- </button>-->
<div class="uk-margin-medium-top">
<button class="uk-button uk-flex uk-flex-middle uk-flex-wrap"
[class.uk-button-primary]="form.valid" [class.uk-disabled]="!form.valid" (click)="validate()">
<div name="cloud_upload">
<span class="uk-flex"><span class="material-icons" style="font-size: 20px;">check</span></span>
</div>
<span class="uk-margin-small-left">Validate!</span>
</button>
</div>
<div class="uk-margin-large-top">
<h6>Validation Results</h6>
<div *ngIf="!result" class="uk-alert uk-alert-primary">
No validated metadata record yet
</div>
<table *ngIf="result" class="uk-table uk-table-striped">
<thead>
<tr>
<th>Rule Name</th>
<th>Score</th>
<th>Status</th>
</tr>
</thead>
<tbody>
<tr *ngFor="let ruleResult of result">
<td>
<div>{{ruleResult.name ? ruleResult.name : '-'}}</div>
<div *ngIf="ruleResult.description" class="uk-text-small uk-text-meta">{{ruleResult.description}}</div>
</td>
<td>{{(ruleResult.score != undefined && ruleResult.score != null) ? ruleResult.score : '-'}}</td>
<td *ngIf="!ruleResult.status">-</td>
<td *ngIf="ruleResult.status">
<div *ngIf="(!ruleResult.errors || ruleResult.errors.length == 0) &&
(!ruleResult.warnings || ruleResult.warnings.length == 0) &&
(!ruleResult.internalError)" class="uk-text-success">{{ruleResult.status}}</div>
<a *ngIf="ruleResult.warnings?.length > 0 || ruleResult.errors?.length > 0 || ruleResult.internalError" (click)="openMessagesModal(ruleResult)">
<div *ngIf="ruleResult.warnings?.length > 0" class="uk-link-text uk-text-warning">warnings</div>
<div *ngIf="ruleResult.errors?.length > 0" class="uk-link-text uk-text-danger">errors</div>
<div *ngIf="ruleResult.internalError" class="uk-link-text uk-text-danger">error</div>
</a>
</td>
</tr>
</tbody>
</table>
<modal-alert #modal large="true" (alertOutput)="modalOpen=false">
<div *ngIf="modalOpen" class="uk-modal-body uk-height-min-medium uk-width-expand">
<div *ngIf="currentRule.warnings?.length > 0" class="uk-margin-bottom">
<span class="uk-text-warning">Warnings</span>
<div *ngFor="let message of currentRule.warnings">{{message}}</div>
</div>
<div *ngIf="currentRule.errors?.length > 0" class="uk-margin-bottom">
<span class="uk-text-error">Errors</span>
<div *ngFor="let message of currentRule.errors">{{message}}</div>
</div>
<div *ngIf="currentRule.internalError">Internal error: {{currentRule.internalError}}</div>
</div>
</modal-alert>
<!-- <div class="uk-margin-top uk-section-muted uk-padding-small">-->
<!-- Comments-->
<!-- <ul class="uk-list uk-list-bullet">-->
<!-- <li>returns success, not warning status</li>-->
<!-- <li>what is the score?</li>-->
<!-- <li>do we have rule weight?</li>-->
<!-- <li>no description or user friendly name provided</li>-->
<!-- <li>errors/ warning not user friendly</li>-->
<!-- <li>can return errors & warnings</li>-->
<!-- <li>on errors, only the 1st one is returned (this is what comments in code say)</li>-->
<!-- </ul>-->
<!-- </div>-->
</div>
</div>
</div>
</div>
</div>