Project

General

Profile

« Previous | Next » 

Revision 60672

[Admin | New UI]: Add content providers criteria

View differences:

modules/uoa-admin-portal/branches/new-UI/src/app/pages/community/content-providers/criteria/criteria-routing.module.ts
1
import { NgModule } from '@angular/core';
1
import {NgModule} from '@angular/core';
2 2
import {RouterModule} from '@angular/router';
3
import {IsCommunity} from '../../../../openaireLibrary/connect/communityGuard/isCommunity.guard';
4
import {ConnectAdminLoginGuard} from '../../../../openaireLibrary/connect/communityGuard/connectAdminLoginGuard.guard';
5 3
import {CriteriaComponent} from './criteria.component';
6 4

  
7 5
@NgModule({
8
    imports: [
9
        RouterModule.forChild([
10
            { path: '', canActivate: [IsCommunity, ConnectAdminLoginGuard], component: CriteriaComponent}
11
        ])
12
    ]
6
  imports: [
7
    RouterModule.forChild([
8
      {path: '', component: CriteriaComponent}
9
    ])
10
  ]
13 11
})
14
export class CriteriaRoutingModule { }
12
export class CriteriaRoutingModule {
13
}
modules/uoa-admin-portal/branches/new-UI/src/app/pages/community/content-providers/criteria/criteria.component.html
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>
1
<div page-content>
2
  <div header>
3
    <div class="uk-margin-top">
4
      <a routerLink="../" class="uk-text-secondary uk-text-uppercase uk-text-bold uk-text-small">
5
         <span class="uk-icon-button uk-icon small uk-button-secondary">
6
            <icon name="arrow_left"></icon>
7
         </span>
8
        <span class="space">
9
          Go back to Content Providers
10
        </span>
11
      </a>
13 12
    </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 13
  </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.
14
  <div inner>
15
    <div class="uk-card-header">
16
      <div class="uk-flex uk-flex-middle uk-child-width-1-1 uk-child-width-1-2@m uk-grid" uk-grid>
17
        <div>
18
          <div class="uk-text-small uk-text-muted">Criteria for</div>
19
          <div>
20
            <span *ngIf="dataProvider" class="uk-text-bold">{{dataProvider.officialname}}</span>
21
            <span *ngIf="dirty"> (unsaved changes)</span>
22
          </div>
23
        </div>
24
        <div class="  uk-flex uk-flex-right">
25
          <button (click)="reset()" [disabled]="loading  || !dirty"
26
                  class="uk-button uk-button-secondary outlined uk-margin-small-right">Reset
27
          </button>
28
          <button (click)="save()" class="uk-button uk-button-secondary uk-margin-small-right"
29
                  [disabled]="loading || !dirty || selectionCriteria.invalid ">Save
30
          </button>
31
        </div>
32
      </div>
23 33
    </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]="selectioncriteria">
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>
34
    <div class="uk-card uk-card-default uk-position-relative" style="min-height: 60vh">
35
      <div *ngIf="!loading" class="uk-padding-large uk-padding-remove-bottom uk-overflow-auto" style="max-height: 60vh;">
36
        <div *ngIf="criteria.length == 0" class="uk-padding-large uk-text-center uk-text-bold">
37
          <div *ngIf="dataProvider">No criteria for {{dataProvider.officialname}}.</div>
38
          <div>If no criteria are specified, all research results of this content provider will be included in your
39
            community.
51 40
          </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>
41
        </div>
42
        <form *ngIf="criteria.length > 0" [formGroup]="selectionCriteria">
43
          <div formArrayName="criteria" class="uk-margin-bottom">
44
            <div class="uk-margin-top" *ngFor="let criterion of criteria.controls; let i=index" [formGroupName]="i">
45
              <h6  class="uk-text-bold uk-form-label uk-margin-small-bottom">Criterion {{i + 1}}</h6>
46
              <div class="uk-padding criterion" formArrayName="constraint">
47
                <div class="uk-flex uk-flex-middle uk-grid-small uk-margin-small-bottom" uk-grid>
48
                  <div class="uk-width-small uk-visible@m"></div>
49
                  <div class="uk-width-1-4">
50
                    <label class="uk-text-uppercase uk-text-bold">Constraint Field</label>
51
                  </div>
52
                  <div class="uk-width-1-4">
53
                    <label class="uk-text-uppercase uk-text-bold">Operator</label>
54
                  </div>
55
                  <div class="uk-width-1-4">
56
                    <label class="uk-text-uppercase uk-text-bold">Term</label>
57
                  </div>
58
                </div>
59
                <div *ngFor="let constraint of getConstraint(i).controls; let j=index"
60
                     [formGroupName]="j" class="uk-margin-bottom">
61
                  <div class="uk-flex uk-flex-middle uk-grid-small" uk-grid>
62
                    <div class="uk-width-small@m uk-width-1-1 uk-flex uk-flex-center">
63
                      <span *ngIf="j > 0">AND</span>
64
                    </div>
65
                    <div class="uk-width-1-4" dashboard-input type="select" placeholder="Select a field" [options]="fields" [formInput]="constraint.get('field')"></div>
66
                    <div class="uk-width-1-4" dashboard-input type="select" placeholder="Select an operator" [options]="verbs" [formInput]="constraint.get('verb')"></div>
67
                    <div class="uk-width-1-4" dashboard-input placeholder="Write a term" [formInput]="constraint.get('value')"></div>
68
                    <div class="uk-width-expand uk-flex uk-flex-center">
69
                      <a class="remove" (click)="removeConstraint(i, j)">
70
                        <icon name="close" [attr.uk-tooltip]="(getConstraint(i).length === 1?'By removing this constraint, the criterion will be removed too':null)"></icon>
71
                      </a>
72
                    </div>
73
                  </div>
74
                </div>
75
                <div class="uk-flex uk-flex-middle uk-grid-small" uk-grid>
76
                  <div class="uk-width-small@m uk-width-1-1 uk-flex uk-flex-center"></div>
77
                  <a (click)="addConstraint(i)" class="uk-flex uk-flex-middle uk-text-uppercase">
78
                    <button class="large uk-icon-button uk-button-secondary">
79
                      <icon name="add"></icon>
80
                    </button>
81
                    <button class="uk-button uk-button-link uk-margin-small-left uk-text-secondary">
82
                      Add Constraint
83
                    </button>
84
                  </a>
85
                </div>
66 86
              </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 87
            </div>
93 88
          </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>
89
        </form>
90
        <div class="uk-flex uk-flex-center uk-margin-large-bottom">
91
          <a (click)="addCriteria()" class="uk-flex uk-flex-middle uk-text-uppercase"
92
             uk-tooltip="<div class='uk-padding-small'>Add criteria to limit research results.<br>Results which satisfy any of the selected criteria will be included in your community.</div>">
93
            <button class="large uk-icon-button uk-button-secondary">
94
              <icon name="add"></icon>
95
            </button>
96
            <button class="uk-button uk-button-link uk-margin-small-left uk-text-secondary">
97
              Add criterion
98
            </button>
99
          </a>
99 100
        </div>
100 101
      </div>
102
      <div *ngIf="loading" class="uk-position-center">
103
        <loading></loading>
104
      </div>
101 105
    </div>
102 106
  </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 107
</div>
modules/uoa-admin-portal/branches/new-UI/src/app/pages/community/content-providers/criteria/criteria.component.ts
1
import {Component, OnInit} from '@angular/core';
1
import {Component, OnDestroy, OnInit} from '@angular/core';
2 2
import {ActivatedRoute, Router} from '@angular/router';
3
import {HelperFunctions} from '../../../../openaireLibrary/utils/HelperFunctions.class';
4 3
import {SearchCommunityDataprovidersService} from '../../../../openaireLibrary/connect/contentProviders/searchDataproviders.service';
5 4
import {EnvProperties} from '../../../../openaireLibrary/utils/properties/env-properties';
6
import {ContentProvider} from '../../../../openaireLibrary/utils/entities/contentProvider';
5
import {ContentProvider, Criteria} from '../../../../openaireLibrary/utils/entities/contentProvider';
7 6
import {FormArray, FormBuilder, FormGroup, Validators} from '@angular/forms';
8 7
import {ManageCommunityContentProvidersService} from '../../../../services/manageContentProviders.service';
9 8
import {Title} from '@angular/platform-browser';
9
import {properties} from "../../../../../environments/environment";
10
import {Subscription} from "rxjs";
11
import {CommunityService} from "../../../../openaireLibrary/connect/community/community.service";
12
import {Option} from "../../../../openaireLibrary/sharedComponents/input/input.component";
10 13

  
14
declare var UIkit;
15

  
11 16
@Component({
12 17
  selector: 'criteria',
13
  templateUrl: './criteria.component.html'
18
  templateUrl: './criteria.component.html',
19
  styleUrls: ['criteria.component.css']
14 20
})
15

  
16
export class CriteriaComponent implements OnInit {
21
export class CriteriaComponent implements OnInit, OnDestroy {
17 22
  public community: string = '';
18 23
  public openaireId: string = '';
19 24
  public dataProvider: ContentProvider = null;
20
  public selectioncriteria: FormGroup;
21
  private properties: EnvProperties;
22
  showLoading = true;
23
  public errorMessage: string;
24

  
25
  constructor(private route: ActivatedRoute, private _router: Router,
25
  public selectionCriteria: FormGroup;
26
  public properties: EnvProperties = properties;
27
  public fields: Option[] = [
28
    {value: 'title', label: 'Title'},
29
    {value: 'author', label: 'Author\'s name'},
30
    {value: 'author ORCID', label: 'Author\'s ORCID'},
31
    {value: 'contributor', label: 'Contributor'},
32
    {value: 'description', label: 'Description'}
33
  ]
34
  public verbs: Option[] = [
35
    {value: 'contains', label: 'Contains'},
36
    {value: 'equals', label: 'Equals'},
37
    {value: 'not_contains', label: 'Not Contains'},
38
    {value: 'not_equals', label: 'Not equals'}
39
  ]
40
  public loading = true;
41
  private subs: any[] = [];
42
  
43
  constructor(private route: ActivatedRoute, private router: Router,
26 44
              private title: Title,
45
              private communityService: CommunityService,
27 46
              private searchCommunityDataprovidersService: SearchCommunityDataprovidersService,
28 47
              private manageCommunityContentProvidersService: ManageCommunityContentProvidersService,
29 48
              private fb: FormBuilder) {
30 49
  }
31

  
50
  
32 51
  ngOnInit() {
33
    this.route.data.subscribe((data: { envSpecific: EnvProperties }) => {
34
      this.properties = data.envSpecific;
35
      this.route.queryParams.subscribe(params => {
36
        if (params['communityId']) {
37
          this.community = params['communityId'];
52
    this.subs.push(this.communityService.getCommunityAsObservable().subscribe(community => {
53
      this.community = community.communityId;
54
      this.route.params.subscribe(params => {
55
        if (params['provider']) {
56
          this.openaireId = params['provider'];
38 57
        }
39
        if (params['openaireId']) {
40
          this.openaireId = params['openaireId'];
41
        }
42
        this.title.setTitle('Administration Dashboard | Criteria');
43 58
        this.searchCommunityDataprovidersService.searchDataproviders(this.properties, this.community).subscribe(dataProviders => {
44 59
          dataProviders.forEach(dataProvider => {
45 60
            if (dataProvider.openaireId == this.openaireId) {
46 61
              this.dataProvider = dataProvider;
62
              this.title.setTitle(community.shortTitle + ' | Criteria for ' + this.dataProvider.officialname);
47 63
            }
48 64
          });
49 65
          if (!this.dataProvider) {
50
            this._router.navigate(['manage-content-providers'],
51
              {queryParams: {'communityId': this.community}});
66
            this.navigateToError();
67
          } else {
68
            this.reset();
69
            this.loading = false;
52 70
          }
53
          this.buildForm();
54
          this.showLoading = false;
55 71
        });
56
        HelperFunctions.scroll();
57 72
      });
58
    });
73
    }));
59 74
  }
60

  
75
  
61 76
  public ngOnDestroy() {
77
    this.subs.forEach(subscription => {
78
      if (subscription instanceof Subscription) {
79
        subscription.unsubscribe();
80
      }
81
    })
62 82
  }
63

  
64
  buildForm() {
65
    this.selectioncriteria = this.fb.group({
66
      criteria: this.fb.array([])
67
    });
68
    let selectionCriteria = this.dataProvider.selectioncriteria;
69
    if (selectionCriteria) {
70
      selectionCriteria.criteria.forEach(criterion => {
71
        let constraintArray: FormArray = this.fb.array([]);
72
        criterion.constraint.forEach(constraint => {
73
          constraintArray.push(this.fb.group({
74
            field: this.fb.control(constraint.field, Validators.required),
75
            verb: this.fb.control(constraint.verb, Validators.required),
76
            value: this.fb.control(constraint.value, Validators.required)
83
  
84
  private navigateToError() {
85
    this.router.navigate(['/error'], {queryParams: {'page': this.properties.baseLink + this.router.url}});
86
  }
87
  
88
  reset() {
89
    if (this.dataProvider) {
90
      this.selectionCriteria = this.fb.group({
91
        criteria: this.fb.array([])
92
      });
93
      let selectionCriteria = this.dataProvider.selectioncriteria;
94
      if (selectionCriteria) {
95
        selectionCriteria.criteria.forEach(criterion => {
96
          let constraintArray: FormArray = this.fb.array([]);
97
          criterion.constraint.forEach(constraint => {
98
            constraintArray.push(this.fb.group({
99
              field: this.fb.control(constraint.field, Validators.required),
100
              verb: this.fb.control(constraint.verb, Validators.required),
101
              value: this.fb.control(constraint.value, Validators.required)
102
            }));
103
          });
104
          this.criteria.push(this.fb.group({
105
            constraint: constraintArray
77 106
          }));
78 107
        });
79
        this.criteria.push(this.fb.group({
80
          constraint: constraintArray
81
        }));
82
      });
108
      }
83 109
    }
84 110
  }
85

  
111
  
86 112
  public get criteria(): FormArray {
87
    return this.selectioncriteria.get('criteria') as FormArray;
113
    return this.selectionCriteria.get('criteria') as FormArray;
88 114
  }
89

  
115
  
90 116
  public getConstraint(i: number): FormArray {
91 117
    return this.criteria.at(i).get('constraint') as FormArray;
92 118
  }
93

  
119
  
94 120
  public addCriteria() {
95 121
    let constraintArray: FormArray = this.fb.array([
96 122
      this.fb.group({
......
103 129
      constraint: constraintArray
104 130
    }));
105 131
  }
106

  
132
  
107 133
  public addConstraint(i: number) {
108 134
    let constraintArray: FormArray = this.criteria.at(i).get('constraint') as FormArray;
109 135
    constraintArray.push(this.fb.group({
......
112 138
      value: this.fb.control('', Validators.required)
113 139
    }));
114 140
  }
115

  
141
  
116 142
  public removeConstraint(i: number, j: number) {
117 143
    let constraintArray: FormArray = this.criteria.at(i).get('constraint') as FormArray;
118 144
    constraintArray.removeAt(j);
......
120 146
      this.criteria.removeAt(i);
121 147
    }
122 148
  }
123

  
149
  
150
  get dataProviderCriteria(): Criteria[] {
151
    return (this.dataProvider && this.dataProvider.selectioncriteria && this.dataProvider.selectioncriteria.criteria)?this.dataProvider.selectioncriteria.criteria:[];
152
  }
153
  
154
  get dirty() {
155
    if(!this.dataProvider || !this.criteria) {
156
      return false;
157
    } else if(this.criteria.length !== this.dataProviderCriteria.length) {
158
      return true;
159
    } else {
160
      return this.dataProviderCriteria.filter((criterion, index) => {
161
        if(criterion.constraint.length !== this.getConstraint(index).length) {
162
          return true;
163
        } else {
164
          let temp = this.getConstraint(index).value;
165
          return  criterion.constraint.filter(constraint => {
166
            return constraint.field !== temp.field || constraint.verb !== temp.verb || constraint.value !== temp.value;
167
          }).length > 0;
168
        }
169
      }).length > 0;
170
    }
171
  }
172
  
124 173
  save() {
125
    this.errorMessage = null;
126
    if (this.selectioncriteria.status === 'VALID') {
127
      this.dataProvider.selectioncriteria = this.selectioncriteria.value;
128
      this.manageCommunityContentProvidersService.
129
      saveContentProvider(this.properties, this.dataProvider).subscribe( () => {
130
        this._router.navigate(['manage-content-providers'], {
131
          queryParams: {communityId: this.dataProvider.communityId}
174
    if (this.selectionCriteria.valid) {
175
      this.dataProvider.selectioncriteria = this.selectionCriteria.value;
176
      this.manageCommunityContentProvidersService.saveContentProvider(this.properties, this.dataProvider).subscribe(() => {
177
        UIkit.notification('Criteria has been <b>successfully updated</b>', {
178
          status: 'success',
179
          timeout: 6000,
180
          pos: 'bottom-right'
132 181
        });
182
        this.router.navigate(['../'], {relativeTo: this.route});
133 183
      });
134 184
    } else {
135
      this.errorMessage = 'Please fill all fields of each constraint or remove all constraints with empty fields.';
185
      UIkit.notification('An error has been occurred. Try again later!', {
186
        status: 'danger',
187
        timeout: 6000,
188
        pos: 'bottom-right'
189
      });
136 190
    }
137 191
  }
138 192
}
modules/uoa-admin-portal/branches/new-UI/src/app/pages/community/content-providers/criteria/criteria.component.css
1
.criterion {
2
  border: rgba(26,26,26,0.5) solid 1px;
3
  border-radius: 4px;
4
  max-height: 400px;
5
  overflow: auto;
6
}
7

  
8
a.remove {
9
  color: rgba(var(--text-color-rgb), 0.8);
10
}
11

  
12
a.remove:hover, a.remove:active {
13
  color: var(--primary-color);
14
}
modules/uoa-admin-portal/branches/new-UI/src/app/pages/community/content-providers/criteria/criteria.module.ts
1 1
import {NgModule} from '@angular/core';
2

  
3
import {EnvironmentSpecificResolver} from '../../../../openaireLibrary/utils/properties/environmentSpecificResolver';
4
import {EnvironmentSpecificService} from '../../../../openaireLibrary/utils/properties/environment-specific.service';
5 2
import {CommonModule} from '@angular/common';
6 3
import {CriteriaComponent} from './criteria.component';
7 4
import {CriteriaRoutingModule} from './criteria-routing.module';
......
9 6
import {RouterModule} from '@angular/router';
10 7
import {FormsModule, ReactiveFormsModule} from '@angular/forms';
11 8
import {ManageCommunityContentProvidersService} from '../../../../services/manageContentProviders.service';
9
import {PageContentModule} from "../../../../openaireLibrary/dashboard/sharedComponents/page-content/page-content.module";
10
import {IconsModule} from "../../../../openaireLibrary/utils/icons/icons.module";
11
import {IconsService} from "../../../../openaireLibrary/utils/icons/icons.service";
12
import {add, arrow_left, close} from "../../../../openaireLibrary/utils/icons/icons";
13
import {LoadingModule} from "../../../../openaireLibrary/utils/loading/loading.module";
14
import {InputModule} from "../../../../openaireLibrary/sharedComponents/input/input.module";
12 15

  
13 16
@NgModule({
14 17
  imports: [
......
17 20
    RouterModule,
18 21
    FormsModule,
19 22
    ReactiveFormsModule,
23
    PageContentModule,
24
    IconsModule,
25
    LoadingModule,
26
    InputModule,
20 27
  ],
21 28
    declarations: [
22 29
        CriteriaComponent
23 30
    ],
24 31
    providers: [
25 32
        SearchCommunityDataprovidersService,
26
        ManageCommunityContentProvidersService,
27
        EnvironmentSpecificResolver, EnvironmentSpecificService
33
        ManageCommunityContentProvidersService
28 34
    ],
29 35
    exports: [CriteriaComponent]
30 36
})
31 37

  
32
export class CriteriaModule { }
38
export class CriteriaModule {
39
  constructor(private iconsService: IconsService) {
40
    this.iconsService.registerIcons([arrow_left, add, close])
41
  }
42
}
modules/uoa-admin-portal/branches/new-UI/src/app/pages/community-info/community-info-routing.module.ts
9 9
      {path: 'profile', loadChildren: './profile/profile.module#ProfileModule'},
10 10
      {path: 'organizations', loadChildren: '../affiliations/affiliations.module#AffiliationsModule'},
11 11
      {path: 'zenodo-communities', loadChildren: '../zenodo-communities/zenodo-communities.module#ZenodoCommunitiesModule'},
12
      {path: 'subjects', canActivateChild: [ConnectCommunityGuard], loadChildren: '../subjects/subjects-edit-form/subjects-edit-form.module#SubjectsEditFormModule'}
12
      {path: 'subjects', canActivateChild: [ConnectCommunityGuard], loadChildren: '../subjects/subjects-edit-form/subjects-edit-form.module#SubjectsEditFormModule'},
13
      {path: 'content-providers/:provider', loadChildren: '../community/content-providers/criteria/criteria.module#CriteriaModule'},
13 14
    ])
14 15
  ],
15 16
  providers: [ConnectCommunityGuard]
modules/uoa-admin-portal/branches/new-UI/src/app/app.routing.ts
204 204
        canActivateChild: [AdminLoginGuard],
205 205
        data: {portal: 'openaire'}
206 206
    },
207
    {   path: 'icons',
207
    /*{   path: 'icons',
208 208
        pathMatch: 'full',
209 209
        loadChildren: './openaireLibrary/utils/icons/icons-preview/icons-preview.module#IconsPreviewModule',
210 210
        data: {hasSidebar: false, hasHeader: false}
211
    },
211
    },*/
212 212
    {
213 213
        path: 'admin-tools',
214 214
        loadChildren: './pages/admin-tools/portal-admin-tools-routing.module#PortalAdminToolsRoutingModule',

Also available in: Unified diff