1
|
<div *ngIf="showLoading" class="uk-animation-fade uk-width-1-1" role="alert">
|
2
|
<span class="loading-gif uk-align-center"></span>
|
3
|
</div>
|
4
|
<div *ngIf="dataProvider" class="uk-padding uk-padding-remove-bottom">
|
5
|
<div class="uk-flex uk-flex-middle" uk-grid>
|
6
|
<div class="uk-flex uk-flex-middle uk-width-4-5">
|
7
|
<a class="uk-icon uk-margin-right" uk-icon="icon: arrow-left; ratio: 2"
|
8
|
routerLink="/manage-content-providers" [queryParams]="{communityId: community}"></a>
|
9
|
<div class="uk-width-expand">
|
10
|
<span>Criteria for</span><br>
|
11
|
<span class="uk-text-large uk-text-bold">{{dataProvider.officialname}}</span>
|
12
|
</div>
|
13
|
</div>
|
14
|
<div class="uk-width-expand uk-text-right">
|
15
|
<button class="uk-button uk-width-1-2@l uk-button-danger"
|
16
|
(click)="save()">Save</button>
|
17
|
</div>
|
18
|
</div>
|
19
|
<div class="uk-alert uk-alert-primary uk-flex uk-flex-middle uk-margin-medium-top">
|
20
|
<span class="uk-icon uk-margin-small-right" uk-icon="info"></span>
|
21
|
<div class="uk-width-expand">
|
22
|
If no criteria are specified, all research results of this content provider will be included in your community.
|
23
|
</div>
|
24
|
</div>
|
25
|
<div class="uk-margin-top uk-margin-bottom">
|
26
|
<span>Add criteria to limit research results.</span><br>
|
27
|
<span>Results which satisfy any of the above criteria will be included in your community.</span>
|
28
|
</div>
|
29
|
<div *ngIf="errorMessage" class="uk-alert uk-alert-danger" role="alert">{{errorMessage}}</div>
|
30
|
<div *ngIf="criteria.length === 0"
|
31
|
class="uk-padding uk-position-relative">
|
32
|
<div class="uk-position-center">
|
33
|
No criteria are specified
|
34
|
</div>
|
35
|
</div>
|
36
|
<div *ngIf="criteria.controls.length > 0" [formGroup]="selcrit">
|
37
|
<div formArrayName="criteria">
|
38
|
<div class="uk-margin-top" *ngFor="let criterion of criteria.controls; let i=index" [formGroupName]="i">
|
39
|
<span class="uk-text-uppercase uk-text-large uk-margin-small-bottom">Criterion {{i + 1}}</span><br>
|
40
|
<div class="uk-padding" style="border: solid 1px;" formArrayName="constraint">
|
41
|
<div class="uk-flex uk-flex-middle uk-grid-small uk-margin-small-bottom" uk-grid>
|
42
|
<div class="uk-width-1-5">
|
43
|
<label class="uk-text-uppercase uk-text-muted">Constraint Field</label>
|
44
|
</div>
|
45
|
<div class="uk-width-1-5">
|
46
|
<label class="uk-text-uppercase uk-text-muted">Operator</label>
|
47
|
</div>
|
48
|
<div class="uk-width-2-5">
|
49
|
<label class="uk-text-uppercase uk-text-muted">Term</label>
|
50
|
</div>
|
51
|
</div>
|
52
|
<div *ngFor="let constraint of getConstraint(i).controls; let j=index"
|
53
|
[formGroupName]="j" class="uk-margin-bottom">
|
54
|
<div class="uk-flex uk-flex-middle uk-grid-small" uk-grid>
|
55
|
<div class="uk-width-1-5">
|
56
|
<select formControlName="field" class="form-control uk-select"
|
57
|
[class.uk-text-muted]="constraint.get('field').value === ''"
|
58
|
[class.uk-form-danger]="constraint.get('field').status === 'INVALID'">
|
59
|
<option [value]="''" disabled selected hidden>Select a field...</option>
|
60
|
<option [value]="'title'">title</option>
|
61
|
<option [value]="'author'">author's name</option>
|
62
|
<option [value]="'author ORCID'">author's ORCID</option>
|
63
|
<option [value]="'contributor'">contributor</option>
|
64
|
<option [value]="'description'">description</option>
|
65
|
</select>
|
66
|
</div>
|
67
|
<div class="uk-width-1-5">
|
68
|
<select formControlName="verb" class="form-control uk-select"
|
69
|
[class.uk-form-danger]="constraint.get('verb').status === 'INVALID'">
|
70
|
<option [value]="'contains'">contains</option>
|
71
|
<option [value]="'equals'">equals</option>
|
72
|
<option [value]="'not_contains'">not contains</option>
|
73
|
<option [value]="'not_equals'">not equals</option>
|
74
|
</select>
|
75
|
</div>
|
76
|
<div class="uk-width-2-5">
|
77
|
<input type="text" class="uk-input" formControlName="value" placeholder="Type term..."
|
78
|
[class.uk-form-danger]="constraint.get('value').status === 'INVALID'">
|
79
|
</div>
|
80
|
<div class="uk-width-1-6">
|
81
|
<span *ngIf="getConstraint(i).length > j + 1">AND</span>
|
82
|
</div>
|
83
|
<div class="uk-width-expand" *ngIf="getConstraint(i).length > 1">
|
84
|
<button class="uk-icon-button uk-button-danger uk-icon uk-margin-small-right"
|
85
|
uk-icon="minus" (click)="removeConstraint(i, j)"></button>
|
86
|
</div>
|
87
|
<div class="uk-width-expand" *ngIf="getConstraint(i).length === 1">
|
88
|
<button class="uk-icon-button uk-button-danger uk-icon uk-margin-small-right"
|
89
|
uk-icon="minus" (click)="removeConstraint(i, j)"
|
90
|
uk-tooltip="title: By removing this constraint, the criterion will be removed too."></button>
|
91
|
</div>
|
92
|
</div>
|
93
|
</div>
|
94
|
<div class="uk-margin-top uk-flex uk-flex-middle uk-flex-right">
|
95
|
<button class="uk-icon-button uk-button-danger uk-icon uk-margin-small-right"
|
96
|
(click)="addConstraint(i)" uk-icon="plus"></button>
|
97
|
<span class="uk-text-uppercase clickable" (click)="addConstraint(i)">Add Constraint</span>
|
98
|
</div>
|
99
|
</div>
|
100
|
</div>
|
101
|
</div>
|
102
|
</div>
|
103
|
<div class="uk-margin-top uk-flex uk-flex-middle">
|
104
|
<button class="uk-icon-button uk-button-danger uk-icon uk-margin-small-right"
|
105
|
(click)="addCriteria()" uk-icon="plus"></button>
|
106
|
<span class="uk-text-uppercase clickable" (click)="addCriteria()">Add Criterion</span>
|
107
|
</div>
|
108
|
</div>
|