Project

General

Profile

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>
(2-2/4)