Project

General

Profile

« Previous | Next » 

Revision 56635

View differences:

modules/uoa-repository-dashboard-gui/trunk/src/app/pages/adminPg/registration.component.ts
1
import {Component, OnInit} from '@angular/core';
2
import {noServiceMessage} from '../../domain/shared-messages';
3
import {Country, RepositorySnippet} from '../../domain/typeScriptClasses';
4
import {RepositoryService} from '../../services/repository.service';
5
import {FormBuilder, FormGroup} from '@angular/forms';
6
import {ActivatedRoute, Params, Router} from '@angular/router';
7
import {URLParameter} from '../../domain/url-parameter';
8

  
9
@Component({
10
  selector: 'app-registration',
11
  templateUrl: 'registration.component.html',
12
  styleUrls: ['./registration.component.css']
13
})
14

  
15
export class RegistrationComponent implements OnInit {
16

  
17
  errorMessage: string;
18
  successMessage: string;
19
  loadingMessage: string;
20
  countries: Country[] = [];
21
  repositorySnippet: RepositorySnippet[] = [];
22
  urlParams: URLParameter[] = [];
23
  thisIsForBadUse: RepositorySnippet[] = []; // remove if page total is fixed!!!
24

  
25
  formPrepare = {
26
    country: '',
27
    typology: '',
28
    englishName: '',
29
    officialName: '',
30
    requestSortBy: 'registrationdate',
31
    order: 'DESCENDING',
32
    page: '0',
33
    size: '25'
34
  };
35

  
36
  dataForm: FormGroup;
37

  
38
  constructor(private repoService: RepositoryService,
39
              private fb: FormBuilder,
40
              private route: ActivatedRoute,
41
              private router: Router) { }
42

  
43
  ngOnInit() {
44
    this.dataForm = this.fb.group(this.formPrepare);
45
    const tempUrlParams = new Array<URLParameter>();
46

  
47
    this.route.queryParams
48
      .subscribe(params => {
49
        for (const i in params) {
50
          this.dataForm.get(i).setValue(params[i]);
51
        }
52
        for (let i in this.dataForm.controls) {
53
          if (this.dataForm.get(i).value) {
54
            tempUrlParams.push({key: i, value: [this.dataForm.get(i).value]});
55
          }
56
        }
57
        this.handleChange();
58
      },
59
      error => this.errorMessage = <any>error
60
    );
61

  
62
    this.getCountries();
63

  
64

  
65
  }
66

  
67
  getCountries() {
68
    this.repoService.getCountries()
69
      .subscribe(
70
        countries => this.countries = countries.sort(function (a, b) {
71
          if (a.name < b.name) {
72
            return -1;
73
          } else if (a.name > b.name) {
74
            return 1;
75
          } else {
76
            return 0;
77
          }
78
        }),
79
        error => {
80
          this.loadingMessage = '';
81
          this.errorMessage = noServiceMessage;
82
          console.log(error);
83
        }
84
      );
85
  }
86

  
87
  getRegisteredRepositories(urlParams: URLParameter[]) {
88
    this.repoService.searchRegisteredRepositories(this.dataForm.get('page').value,
89
      this.dataForm.get('size').value, urlParams).subscribe(
90
        suc => this.repositorySnippet = suc,
91
        error => console.log(error),
92
      );
93
  }
94

  
95
  handleChange() {
96
    const tempUrlParams = new Array<URLParameter>();
97
    const map: { [name: string]: string; } = {};
98

  
99
    for (let i in this.dataForm.controls) {
100
      if (this.dataForm.get(i).value !== '') {
101
        tempUrlParams.push({key: i, value: [this.dataForm.get(i).value]});
102
        map[i] = this.dataForm.get(i).value;
103
      }
104
    }
105

  
106
    this.router.navigate([`/admin/registrations`],
107
      {queryParams: map});
108
    this.getRegisteredRepositories(tempUrlParams);
109
  }
110

  
111
  handleChangeAndResetPage() {
112
    this.dataForm.get('page').setValue(0);
113
    this.handleChange();
114
  }
115

  
116
  getCountryName(countryCode): string {
117
    for (const country of Object.values(this.countries)) {
118
      if (country.code === countryCode) {
119
        return country.name;
120
      }
121
    }
122
  }
123

  
124
  previousPage() {
125
    if (this.dataForm.get('page').value > 0) {
126
      this.dataForm.get('page').setValue(+this.dataForm.get('page').value - 1);
127
      this.handleChange();
128
    }
129
  }
130

  
131
  nextPage() {
132
    /** remove when page total is fixed!!! **/
133
    const tempUrlParams = new Array<URLParameter>();
134
    for (let i in this.dataForm.controls) {
135
      if (this.dataForm.get(i).value !== '') {
136
        tempUrlParams.push({key: i, value: [this.dataForm.get(i).value]});
137
      }
138
    }
139
      this.repoService.searchRegisteredRepositories(+this.dataForm.get('page').value + 1,
140
      this.dataForm.get('size').value, tempUrlParams).subscribe(
141
      suc => this.thisIsForBadUse = suc,
142
      error => console.log(error),
143
      () => {
144
        if (!(this.thisIsForBadUse.length === 0)) {
145
          this.dataForm.get('page').setValue(+this.dataForm.get('page').value + 1);
146
          this.handleChange();
147
        }
148
      }
149
    );
150
    /** **/
151

  
152
  }
153

  
154
}
modules/uoa-repository-dashboard-gui/trunk/src/app/pages/adminPg/registration.component.css
1
.uk-form-horizontal .uk-form-label {
2
  width: 100px;
3
}
4

  
5
.uk-form-horizontal .uk-form-controls {
6
  margin-left: 115px;
7
}
8

  
9
.uk-search-default .uk-search-input {
10
  padding-left: 15px;
11
  padding-right: 15px;
12
}
modules/uoa-repository-dashboard-gui/trunk/src/app/pages/adminPg/adminPg.module.ts
1 1
import { NgModule } from '@angular/core';
2 2
import { CommonModule } from '@angular/common';
3 3
import { TabsModule } from 'ngx-bootstrap';
4
import { FormsModule } from '@angular/forms';
4
import {FormsModule, ReactiveFormsModule} from '@angular/forms';
5 5
import { AdminPgRouting } from './adminPg.routing';
6 6
import { ReusableComponentsModule } from '../../shared/reusablecomponents/reusable-components.module';
7 7
import { AdminPgComponent } from './adminPg.component';
8 8
import { AdminPgMetricsComponent } from './adminPg-metrics.component';
9
import {RegistrationComponent} from './registration.component';
9 10

  
10 11
@NgModule ({
11 12
  imports: [
12 13
    CommonModule,
13 14
    TabsModule.forRoot(),
14 15
    FormsModule,
16
    ReactiveFormsModule,
15 17
    AdminPgRouting,
16
    ReusableComponentsModule
18
    ReusableComponentsModule,
17 19
  ],
18 20
  declarations: [
19 21
    AdminPgComponent,
20
    AdminPgMetricsComponent
22
    AdminPgMetricsComponent,
23
    RegistrationComponent
21 24
  ]
22 25
})
23 26

  
modules/uoa-repository-dashboard-gui/trunk/src/app/pages/adminPg/adminPg.routing.ts
4 4
import { AdminPgComponent } from './adminPg.component';
5 5
import { AdminPgMetricsComponent } from './adminPg-metrics.component';
6 6
import { AuthGuardService } from '../../services/auth-guard.service';
7
import {RegistrationComponent} from './registration.component';
7 8

  
8 9
const adminRoutes: Routes = [
9 10
  {
......
15 16
      {
16 17
        path: 'metrics',
17 18
        component: AdminPgMetricsComponent
19
      },
20
      {
21
        path: 'registrations',
22
        component: RegistrationComponent
18 23
      }
19 24
    ]
20 25
  }
modules/uoa-repository-dashboard-gui/trunk/src/app/pages/adminPg/registration.component.html
1
<div class="uk-grid-margin uk-grid uk-grid-stack" uk-grid="">
2
  <div class="uk-width-1-1@m uk-first-column">
3

  
4
    <h1 class="uk-h2">Registrations Admin Page</h1>
5

  
6
    <!-- TOP HELP CONTENT -->
7
    <help-content #topHelperContent [position]="'top'"
8
                  [ngClass]="topHelperContent.isPresent()?'uk-margin-medium-top uk-margin-medium-bottom':'clear-style'">
9
    </help-content>
10

  
11
    <div class="uk-container uk-container-expand  uk-margin-medium-top uk-margin-medium-bottom">
12
      <div class="uk-grid">
13

  
14
        <!-- LEFT HELP CONTENT -->
15
        <aside-help-content #leftHelperContent [position]="'left'"
16
                            [ngClass]="leftHelperContent.isPresent()?'tm-sidebar uk-width-1-4@m uk-first-column':'clear-style'">
17
        </aside-help-content>
18

  
19
        <!-- MIDDLE -->
20
        <div class="uk-width-expand@m">
21

  
22
          <div *ngIf="errorMessage" class="uk-alert uk-alert-danger">{{ errorMessage }}</div>
23
          <div *ngIf="successMessage" class="uk-alert uk-alert-success">{{ successMessage }}</div>
24
          <div *ngIf="loadingMessage" class="loading-big">
25
            <div class="loader-big"
26
                 style="text-align: center; padding-top: 170px; color: rgb(47, 64, 80); font-weight: bold;">
27
              {{ loadingMessage }}
28
            </div>
29
            <div class="whiteFilm"></div>
30
          </div>
31

  
32

  
33

  
34

  
35
          <div class="uk-grid">
36
            <div class="uk-width-1-1@m uk-padding" style="background-color: #fff; text-align: center">
37
              <form [formGroup]="dataForm" class="uk-search uk-search-default uk-width-1-1@m">
38
                <input class="uk-width-1-2 uk-search-input" type="search" formControlName="officialName" placeholder="Search (official name) ..." style="background-color: #fff">
39
                <button class="uk-button" (click)="handleChangeAndResetPage()">Search</button>
40
              </form>
41
            </div>
42
          </div>
43

  
44
          <div class="uk-grid">
45
            <div class="uk-width-1-4@m">
46
              <form [formGroup]="dataForm" class="uk-form-stacked">
47

  
48
                <div class="uk-form-label uk-text-large">Filtered By</div>
49

  
50
                <div class="uk-margin">
51
                  <div class="uk-form-label uk-text-large">Datasource Type</div>
52
                  <div class="uk-form-controls">
53
                    <label><input class="uk-radio" type="radio" value="" (change)="handleChangeAndResetPage()" formControlName="typology"> Any</label><br>
54
                    <label><input class="uk-radio" type="radio" value="Aggregator" (change)="handleChangeAndResetPage()" formControlName="typology"> Aggregator</label><br>
55
                    <label><input class="uk-radio" type="radio" value="Journal" (change)="handleChangeAndResetPage()" formControlName="typology"> Journal</label><br>
56
                    <label><input class="uk-radio" type="radio" value="datarepository" (change)="handleChangeAndResetPage()" formControlName="typology"> Data Repository</label><br>
57
                    <label><input class="uk-radio" type="radio" value="pubsrepository" (change)="handleChangeAndResetPage()" formControlName="typology"> Public Repository</label><br>
58
                    <label><input class="uk-radio" type="radio" value="entityregistry" (change)="handleChangeAndResetPage()" formControlName="typology"> Entity Registry</label><br>
59
                    <label><input class="uk-radio" type="radio" value="Institutional" (change)="handleChangeAndResetPage()" formControlName="typology"> Institutional</label><br>
60
                    <label><input class="uk-radio" type="radio" value="Thematic" (change)="handleChangeAndResetPage()" formControlName="typology"> Thematic</label><br>
61
                    <label><input class="uk-radio" type="radio" value="Products" (change)="handleChangeAndResetPage()" formControlName="typology"> Products</label><br>
62
                    <label><input class="uk-radio" type="radio" value="Unknown" (change)="handleChangeAndResetPage()" formControlName="typology"> Unknown</label>
63
                  </div>
64
                </div>
65

  
66
                <div class="uk-margin">
67
                  <div class="uk-form-label uk-text-large">Countries</div>
68
                  <div class="uk-form-controls">
69
                    <ng-container *ngIf="countries && countries.length>0">
70
                      <read-more [maxHeight]="238">
71
                        <div><input class="uk-radio" type="radio" value="" (change)="handleChangeAndResetPage()" formControlName="country"> Any</div>
72
                        <ng-container *ngFor="let country of countries">
73
                          <div class="">
74
                            <input class="uk-radio" type="radio" value="{{country.code}}"
75
                                   (change)="handleChangeAndResetPage()" formControlName="country"> {{country.name}}
76
                          </div>
77
                        </ng-container>
78
                      </read-more>
79
                    </ng-container>
80
                  </div>
81
                </div>
82

  
83
              </form>
84
            </div>
85
            <div class="uk-width-expand@m">
86
              <div class="uk-grid">
87
                <div class="uk-width-1-1@m uk-margin-medium">
88
                  <form [formGroup]="dataForm" class="uk-form-horizontal uk-grid">
89

  
90
                    <div class="uk-width-2-5@m">
91
                      <div class="uk-margin">
92
                        <label class="uk-form-label uk-text-right" for="size">Items per page: </label>
93
                        <div class="uk-form-controls">
94
                          <select class="uk-select" id="size" (change)="handleChangeAndResetPage()" formControlName="size">
95
                            <option value="10">10</option>
96
                            <option value="25" selected>25</option>
97
                            <option value="50">50</option>
98
                            <option value="100">100</option>
99
                          </select>
100
                        </div>
101
                      </div>
102
                    </div>
103

  
104
                    <div class="uk-width-expand@m ">
105

  
106
                      <div class="uk-float-right">
107
                        <label class="uk-form-label uk-text-right" for="orderBy">Order by: </label>
108
                        <div class="uk-form-controls">
109
                          <select class="uk-select" id="orderBy" (change)="handleChangeAndResetPage()" formControlName="order">
110
                            <option value="DESCENDING" selected>Descending</option>
111
                            <option value="ASCENDING">Ascending</option>
112
                          </select>
113
                        </div>
114
                      </div>
115

  
116
                      <div class="uk-float-right">
117
                        <label class="uk-form-label uk-text-right" for="sortBy">Sort by: </label>
118
                        <div class="uk-form-controls">
119
                          <select class="uk-select" id="sortBy" (change)="handleChangeAndResetPage()" formControlName="requestSortBy">
120
                            <option value="registrationdate" selected>Date</option>
121
                            <option value="officialname">Name</option>
122
                          </select>
123
                        </div>
124
                      </div>
125

  
126
                    </div>
127

  
128

  
129
                  </form>
130
                </div>
131

  
132
                <div class="uk-width-1-1@m">
133

  
134
                  <table class="uk-table uk-table-striped">
135
                    <thead>
136
                    <tr>
137
                      <th>Repository</th>
138
                      <th>Date</th>
139
                      <th>Organization</th>
140
                      <th>Type</th>
141
                    </tr>
142
                    </thead>
143
                    <tbody>
144
                    <tr *ngFor="let res of repositorySnippet">
145
                      <td class="uk-width-1-6@m">{{res.officialname}} <br> ({{res.id}}) <br> {{res.registeredby}}</td>
146
                      <td >{{res.registrationdate}}</td>
147
                      <td> <div *ngFor="let organization of res.organizations">{{organization.legalname + ' (' + getCountryName(organization.country)}})<br></div></td>
148
                      <td>{{res.typology.split('::')[0]}}<br>{{res.typology.split('::')[1]}}<br>{{res.typology.split('::')[2]}}</td>
149
                    </tr>
150
                    </tbody>
151
                  </table>
152

  
153
                  <ul class="uk-pagination uk-flex-center" uk-margin>
154
                    <li><a (click)="previousPage()"><span uk-pagination-previous></span></a></li>
155
                    <li class="uk-active"><span>{{+dataForm.get('page').value + 1}}</span></li>
156
                    <li><a (click)="nextPage()"><span uk-pagination-next></span></a></li>
157
                  </ul>
158

  
159
                </div>
160

  
161
              </div>
162
            </div>
163
          </div>
164

  
165
        </div>
166
      </div>
167
    </div>
168
  </div>
169
</div>
modules/uoa-repository-dashboard-gui/trunk/src/app/pages/dashboard/dashboard.component.html
1 1
<div *ngIf="getIsUserLoggedIn()" id="contentWrapper" class="tm-main uk-section uk-section-default" uk-height-viewport="expand: true" style="box-sizing: border-box;" >
2 2

  
3
  <div>
4
    <div class="uk-container uk-container-large">
5
      <div class="uk-grid uk-grid-stack">
6
        <div class="uk-width-expand@m">
7
          <div>
8
            <div>
9
              <!-- MARGIN-TOP  -->
10
              <div class="uk-sticky-placeholder" style="height: 84px; margin: 0px;" aria-hidden="aria-hidden"></div>
11
              <div class="uk-width-1-1@m uk-first-column">
12
                <div class="uk-margin uk-grid-match uk-child-width-1-1 uk-child-width-1-2@m uk-grid-small uk-grid uk-scrollspy-inview uk-animation-fade" uk-scrollspy-class="" uk-grid="" style="">
13
                  <div class="uk-first-column">
14
                    <div class="el-item uk-card uk-card-hover uk-card-body uk-scrollspy-inview uk-animation-fade" uk-scrollspy-class="" style="">
15
                      <a class="el-link uk-position-cover uk-margin-remove-adjacent"  [routerLink]="['/sources','register']" uk-scroll=""></a>
16
                      <div class="uk-child-width-expand uk-flex-middle uk-grid" uk-grid="">
17
                        <div class="uk-width-1-2@m uk-first-column">
18
                          <img  class="el-image uk-border-rounded" src="../../../assets/imgs/iStock-153949408.jpg" >
19
                        </div>
20
                        <div>
21
                          <div>
22
                            <h3 class="el-title uk-margin uk-card-title">Register</h3>
23
                            <div class="el-content uk-margin">
24
                              Register data sources in the OpenAIRE infrastructure
25
                            </div>
26
                          </div>
27
                        </div>
28
                      </div>
3

  
4
  <div class="uk-container uk-container-expand">
5
    <div class="uk-sticky-placeholder" style="height: 84px; margin: 0px;" aria-hidden="aria-hidden"></div>
6
    <div class="uk-grid uk-padding">
7
      <div class="uk-width-3-4@m uk-first-column">
8
        <div class="uk-margin uk-grid-match uk-child-width-1-1 uk-child-width-1-2@m uk-grid-small uk-grid uk-scrollspy-inview uk-animation-fade" uk-scrollspy-class="" uk-grid="" style="">
9
          <div class="uk-first-column">
10
            <div class="el-item uk-card uk-card-hover uk-card-body uk-scrollspy-inview uk-animation-fade" uk-scrollspy-class="" style="">
11
              <a class="el-link uk-position-cover uk-margin-remove-adjacent"  [routerLink]="['/sources','register']" uk-scroll=""></a>
12
              <div class="uk-child-width-expand uk-flex-middle uk-grid" uk-grid="">
13
                <div class="uk-width-1-2@m uk-first-column">
14
                  <img  class="el-image uk-border-rounded" src="../../../assets/imgs/iStock-153949408.jpg" >
15
                </div>
16
                <div>
17
                  <div>
18
                    <h3 class="el-title uk-margin uk-card-title">Register</h3>
19
                    <div class="el-content uk-margin">
20
                      Register data sources in the OpenAIRE infrastructure
29 21
                    </div>
30 22
                  </div>
23
                </div>
24
              </div>
25
            </div>
26
          </div>
27
          <div>
28
            <div class="el-item uk-card uk-card-hover uk-card-body uk-scrollspy-inview uk-animation-fade" uk-scrollspy-class="" style="">
29
              <a class="el-link uk-position-cover uk-margin-remove-adjacent" [routerLink]="['/compatibility','validate']" uk-scroll=""></a>
30
              <div class="uk-child-width-expand uk-flex-middle uk-grid" uk-grid="">
31
                <div class="uk-width-1-2@m uk-first-column">
32
                  <img  class="el-image uk-border-rounded" src="../../../assets/imgs/iStock-516286898.jpg" >
33
                </div>
34
                <div>
31 35
                  <div>
32
                    <div class="el-item uk-card uk-card-hover uk-card-body uk-scrollspy-inview uk-animation-fade" uk-scrollspy-class="" style="">
33
                      <a class="el-link uk-position-cover uk-margin-remove-adjacent" [routerLink]="['/compatibility','validate']" uk-scroll=""></a>
34
                      <div class="uk-child-width-expand uk-flex-middle uk-grid" uk-grid="">
35
                        <div class="uk-width-1-2@m uk-first-column">
36
                          <img  class="el-image uk-border-rounded" src="../../../assets/imgs/iStock-516286898.jpg" >
37
                        </div>
38
                        <div>
39
                          <div>
40
                            <h3 class="el-title uk-margin uk-card-title">Validate</h3>
41
                            <div class="el-content uk-margin">
42
                              Validate data sources against OpenAIRE guidelines
43
                            </div>
44
                          </div>
45
                        </div>
46
                      </div>
36
                    <h3 class="el-title uk-margin uk-card-title">Validate</h3>
37
                    <div class="el-content uk-margin">
38
                      Validate data sources against OpenAIRE guidelines
47 39
                    </div>
48 40
                  </div>
49
                  <div class="uk-grid-margin uk-first-column">
50
                    <div class="el-item uk-card uk-card-hover uk-card-body uk-scrollspy-inview uk-animation-fade" uk-scrollspy-class="" style="">
51
                      <a class="el-link uk-position-cover uk-margin-remove-adjacent" [routerLink]="['/content','notifications']" uk-scroll=""></a>
52
                      <div class="uk-child-width-expand uk-flex-middle uk-grid" uk-grid="">
53
                        <div class="uk-width-1-2@m uk-first-column">
54
                          <img  class="el-image uk-border-rounded" src="../../../assets/imgs/iStock-466267165.jpg" >
55
                        </div>
56
                        <div>
57
                          <div>
58
                            <h3 class="el-title uk-margin uk-card-title">Notifications</h3>
59
                            <div class="el-content uk-margin">
60
                              View notifications to enrich the metadata and the content
61
                            </div>
62
                          </div>
63
                        </div>
64
                      </div>
41
                </div>
42
              </div>
43
            </div>
44
          </div>
45
          <div class="uk-grid-margin uk-first-column">
46
            <div class="el-item uk-card uk-card-hover uk-card-body uk-scrollspy-inview uk-animation-fade" uk-scrollspy-class="" style="">
47
              <a class="el-link uk-position-cover uk-margin-remove-adjacent" [routerLink]="['/content','notifications']" uk-scroll=""></a>
48
              <div class="uk-child-width-expand uk-flex-middle uk-grid" uk-grid="">
49
                <div class="uk-width-1-2@m uk-first-column">
50
                  <img  class="el-image uk-border-rounded" src="../../../assets/imgs/iStock-466267165.jpg" >
51
                </div>
52
                <div>
53
                  <div>
54
                    <h3 class="el-title uk-margin uk-card-title">Notifications</h3>
55
                    <div class="el-content uk-margin">
56
                      View notifications to enrich the metadata and the content
65 57
                    </div>
66 58
                  </div>
67
                  <div class="uk-grid-margin">
68
                    <div class="el-item uk-card uk-card-hover uk-card-body uk-scrollspy-inview uk-animation-fade" uk-scrollspy-class="" style="">
69
                      <a class="el-link uk-position-cover uk-margin-remove-adjacent" uk-scroll="" [routerLink]="['/getImpact']"></a>
70
                      <div class="uk-child-width-expand uk-flex-middle uk-grid" uk-grid="">
71
                        <div class="uk-width-1-2@m uk-first-column">
72
                          <img  class="el-image uk-border-rounded" src="../../../assets/imgs/iStock-659630328.jpg" >
73
                        </div>
74
                        <div>
75
                          <div>
76
                            <h3 class="el-title uk-margin uk-card-title">Metrics</h3>
77
                            <div class="el-content uk-margin">
78
                              View aggregated, cleaned usage statistics for repository access
79
                            </div>
80
                          </div>
81
                        </div>
82
                      </div>
59
                </div>
60
              </div>
61
            </div>
62
          </div>
63
          <div class="uk-grid-margin">
64
            <div class="el-item uk-card uk-card-hover uk-card-body uk-scrollspy-inview uk-animation-fade" uk-scrollspy-class="" style="">
65
              <a class="el-link uk-position-cover uk-margin-remove-adjacent" uk-scroll="" [routerLink]="['/getImpact']"></a>
66
              <div class="uk-child-width-expand uk-flex-middle uk-grid" uk-grid="">
67
                <div class="uk-width-1-2@m uk-first-column">
68
                  <img  class="el-image uk-border-rounded" src="../../../assets/imgs/iStock-659630328.jpg" >
69
                </div>
70
                <div>
71
                  <div>
72
                    <h3 class="el-title uk-margin uk-card-title">Metrics</h3>
73
                    <div class="el-content uk-margin">
74
                      View aggregated, cleaned usage statistics for repository access
83 75
                    </div>
84 76
                  </div>
85 77
                </div>
......
88 80
          </div>
89 81
        </div>
90 82
      </div>
83

  
84
      <div class="uk-width-1-4@m">
85
        <div class="uk-card uk-card-body uk-card-grey" style="min-height: 300px;">
86
          <h5 class="">MY DATASOURCES AT A GLANCE</h5>
87

  
88
          <div *ngIf="loading">
89
            <div class="loader-big" style="text-align: center; padding-top: 100px; color: rgb(47, 64, 80); font-weight: bold;">
90
              Retrieving your datasources...
91
            </div>
92
            <div class="whiteFilm"></div>
93
          </div>
94

  
95
          <div *ngIf="!loading">
96
            <div *ngIf="repositories && repositories.length>0">
97
              <div *ngFor="let repository of repositories" class="uk-margin-bottom uk-margin-top">
98

  
99
                <div class="uk-padding-small" style="background-color: #fff">
100
                  <div class="uk-inline uk-width-1-3@m">
101
                    <img src="{{repository.logoURL ? repository.logoURL : '../../../assets/imgs/yourLogoHere.jpg'}}" alt="">
102
                  </div>
103
                  <div class="uk-inline uk-width-2-3@m">
104
                    <div class="uk-margin-left">{{repository.repositoryName}}</div>
105
                  </div>
106
                </div>
107

  
108
                <div class="uk-margin-small-top">
109
                  <div>Number of records collected:
110
                    <span *ngIf="repository.recordsCollected">{{repository.recordsCollected}}</span>
111
                    <span *ngIf="!repository.recordsCollected">not available</span>
112
                  </div>
113
                  <div>Last indexed version:
114
                    <span *ngIf="repository.lastIndexedVersion">{{repository.lastIndexedVersion | date :'short'}}</span>
115
                    <span *ngIf="!repository.lastIndexedVersion">not available</span>
116
                  </div>
117
                  <div>Content enrichment events:
118
                    <span *ngIf="repository.enrichmentEvents">{{repository.enrichmentEvents}}</span>
119
                    <span *ngIf="!repository.enrichmentEvents">not available</span>
120
                  </div>
121
                  <div>Views:
122
                    <span *ngIf="repository.totalViews">{{repository.totalViews}}</span>
123
                    <span *ngIf="!repository.totalViews">not available</span>
124
                  </div>
125
                  <div>Downloads:
126
                    <span *ngIf="repository.totalDownloads">{{repository.totalDownloads}}</span>
127
                    <span *ngIf="!repository.totalDownloads">not available</span>
128
                  </div>
129
                </div>
130

  
131
              </div>
132
            </div>
133
            <div *ngIf="!repositories || repositories.length==0">
134
              No repositories available...
135
            </div>
136
          </div>
137

  
138

  
139

  
140
        </div>
141
      </div>
142

  
91 143
    </div>
92 144
  </div>
93 145
</div>
modules/uoa-repository-dashboard-gui/trunk/src/app/pages/dashboard/dashboard.component.ts
1 1
import { Component, OnInit } from '@angular/core';
2 2
import { AuthenticationService } from '../../services/authentication.service';
3
import { RepositoryService } from '../../services/repository.service';
4
import {Repository, RepositorySnippet, RepositorySummaryInfo} from '../../domain/typeScriptClasses';
3 5

  
4 6
@Component ({
5 7
  selector: 'app-dashboard',
......
8 10

  
9 11
export class DashboardComponent implements OnInit {
10 12

  
11
  constructor(private authService: AuthenticationService) { }
13
  constructor(private authService: AuthenticationService,
14
              private repositoryService: RepositoryService) { }
12 15

  
13
  ngOnInit() {}
16
  repositories: RepositorySummaryInfo[] = [];
17
  userEmail: string;
14 18

  
19
  loading: boolean = true;
20

  
21
  ngOnInit() {
22
    // this.getUserEmail();
23
    this.userEmail = sessionStorage.getItem('email');
24
    if (this.userEmail) {
25
      this.getRepositoriesSummaryInfo(this.userEmail);
26
    }
27
  }
28

  
15 29
  getIsUserLoggedIn() {
16 30
    return this.authService.getIsUserLoggedIn();
17 31
  }
32

  
33
  getUserEmail() {
34
    this.userEmail = this.authService.getUserEmail();
35
  }
36

  
37
  getRepos() {
38
    console.log('in getRepos');
39
    this.getRepositoriesSummaryInfo(this.userEmail);
40
  }
41

  
42
  getRepositoriesSummaryInfo(userEmail: string) {
43
    this.repositoryService.getRepositoriesSummaryInfo(userEmail).subscribe(
44
      repositories => { this.repositories = repositories; this.loading=false },
45
      error => { console.log('Errrrror'); this.loading=false },
46
      () => { console.log(this.repositories); this.loading=false }
47
    );
48
  }
18 49
}
modules/uoa-repository-dashboard-gui/trunk/src/app/pages/compatibility/compatibility-monitor-repo.component.html
35 35
                <div class="uk-container uk-container-center">
36 36
                  <div class="al_timeline">
37 37
                    <div *ngFor="let aggr of latestAggregations" class="al_timeline_block versionChange">
38
                      <div class="al_timeline_image uk-scrollspy-init-inview uk-scrollspy-inview uk-animation-scale-up"></div>
38
                      <div class="al_timeline_image uk-scrollspy-init-inview uk-scrollspy-inview uk-animation-scale-up">
39
                        <ng-container *ngIf="aggr.indexedVersion">
40
                          <img src="https://www.openaire.eu/images/Logos/Favicon-90x90.png" style="width: 80%;margin-top: 9%;">
41
                        </ng-container>
42
                      </div>
39 43
                      <div class="al_timeline_content uk-scrollspy-init-inview uk-scrollspy-inview uk-animation-slide-left">
40
                        <h3 *ngIf="aggr.date">{{ aggr.date | date : "yyyy-MM-dd" }}</h3>
44
                        <h3 *ngIf="aggr.date" class="uk-inline">{{ aggr.date | date : "yyyy-MM-dd" }}</h3>
45
                        <span *ngIf="aggr.indexedVersion" class="ng-star-inserted uk-inline uk-float-right uk-badge"
46
                              style="padding-top: 10px;padding-left: 10px;padding-right: 10px;margin-top: 5px;">Indexed version</span>
41 47
                        <p *ngIf="aggr.aggregationStage">Aggregation stage - {{ aggr.aggregationStage }}</p>
42 48
                        <p *ngIf="aggr.collectionMode">CollectionMode - {{ aggr.collectionMode }}</p>
43 49
                        <p *ngIf="aggr.numberOfRecords">Number of records - {{ aggr.numberOfRecords }}</p>
44
                        <p *ngIf="aggr.indexedVersion !== null">Is the indexed version - {{ (aggr.indexedVersion === true) ? 'Yes': 'No' }}</p>
50
                        <!--<p *ngIf="aggr.indexedVersion !== null">Is the indexed version - {{ (aggr.indexedVersion === true) ? 'Yes': 'No' }}</p>-->
45 51
                      </div>
46 52
                    </div>
47 53
                  </div>
modules/uoa-repository-dashboard-gui/trunk/src/app/services/repository.service.ts
2 2
* Created by myrto on 12/05/2017
3 3
*/
4 4

  
5
import { HttpClient, HttpHeaders } from '@angular/common/http';
5
import {HttpClient, HttpHeaders, HttpParams} from '@angular/common/http';
6 6
import { Injectable } from '@angular/core';
7 7
import { environment } from '../../environments/environment';
8 8
import {
......
10 10
  Country, MetricsInfo,
11 11
  Repository,
12 12
  RepositoryInterface,
13
  RepositorySnippet,
13
  RepositorySnippet, RepositorySummaryInfo,
14 14
  Timezone,
15 15
  Typology
16 16
} from '../domain/typeScriptClasses';
17 17
import { Observable, of } from 'rxjs';
18 18
import { timezones } from '../domain/timezones';
19 19
import { typologies } from '../domain/typologies';
20
import {URLParameter} from '../domain/url-parameter';
20 21

  
21 22
const headerOptions = {
22 23
  headers : new HttpHeaders().set('Content-Type', 'application/json')
......
28 29
@Injectable ()
29 30
export class RepositoryService {
30 31
  private apiUrl = environment.API_ENDPOINT + '/repository/';
32
  private dashboardAPIUrl = environment.API_ENDPOINT + '/dashboard/';
31 33

  
32 34
  constructor(private httpClient: HttpClient) { }
33 35

  
......
156 158
    return this.httpClient.get<any>(url, headerOptions);
157 159
  }
158 160

  
161
  searchRegisteredRepositories(page, size, urlParams: URLParameter[]) {
162
    const url = `${this.apiUrl}searchRegisteredRepositories/${page}/${size}`;
163
    console.log(`knocking on: ${url}`);
164
    let params = new HttpParams();
165
    for (const urlParameter of urlParams) {
166
      for (const value of urlParameter.value) {
167
        params = params.append(urlParameter.key, value);
168
      }
169
    }
170

  
171
    return this.httpClient.get<RepositorySnippet[]>(url, {params, withCredentials: true});
172
  }
173

  
174
  getRepositoriesSummaryInfo(userEmail: string): Observable<RepositorySummaryInfo[]> {
175
    const url = `${this.dashboardAPIUrl}getRepositoriesSummary/${userEmail}/0/100`;
176
    console.log(`knocking on: ${url}`);
177
    return this.httpClient.get<RepositorySummaryInfo[]>(url, headerOptions);
178
  }
159 179
}
modules/uoa-repository-dashboard-gui/trunk/src/app/shared/topmenu/topmenu.component.html
60 60
                    Admin
61 61
                    <ul>
62 62
                      <li><a href="{{adminHomePage}}" target="_blank">Help Texts</a></li>
63
                      <li><a [routerLink]="['admin', 'metrics']" [routerLinkActive]="['uk-active']">Validate</a></li>
63
                      <li><a [routerLink]="['admin', 'metrics']" [routerLinkActive]="['uk-active']">Validate</a></li>s
64 64
                    </ul>
65 65
                  </li>
66 66
                  <li><a (click)="logout()">Logout</a></li>
......
212 212
                            <ul *ngIf="getIsUserAdmin()" class="uk-nav uk-navbar-dropdown-nav">
213 213
                              <li class="uk-nav-header" style="display: block;">Admin</li>
214 214
                              <li style="display: block"><a href="{{adminHomePage}}" target="_blank">Help Texts</a></li>
215
                              <li style="display: block" class="uk-margin-small-bottom"><a [routerLink]="['/admin','metrics']">Metrics</a></li>
215
                              <li style="display: block"><a [routerLink]="['/admin','metrics']">Metrics</a></li>
216
                              <li style="display: block" class="uk-margin-small-bottom"><a [routerLink]="['/admin/registrations']">Registrations</a></li>
216 217
                            </ul>
217 218
                            <li><a class="" (click)="logout()">Log out</a></li>
218 219
                          </ul>
modules/uoa-repository-dashboard-gui/trunk/src/app/shared/reusablecomponents/read-more.component.ts
1
/**
2
 * Created by stefania on 4/6/17.
3
 */
4
import {AfterContentInit, AfterViewInit, Component, ElementRef, Input, OnChanges, ViewChild} from "@angular/core";
5

  
6
@Component({
7
    selector: "read-more",
8
    template: `
9
        <div [class.collapsed]="isCollapsed" [style.height]="isCollapsed ? maxHeight+'px' : 'auto'" #readMoreDiv>
10
            <ng-content></ng-content>
11
        </div>
12
        <a *ngIf="isCollapsable" (click)="isCollapsed =! isCollapsed">View {{isCollapsed ? 'more' : 'less'}}...</a>
13
    `,
14
    styles: [`
15
        div.collapsed {
16
            overflow: hidden;
17
        }
18
    `]
19
})
20
export class ReadMoreComponent implements AfterContentInit {
21
    //the text that need to be put in the container
22
    //@Input() text: string;
23
    //maximum height of the container
24
    @Input("maxHeight") maxHeight: number = 100;
25
    @ViewChild("readMoreDiv")
26
    readMoreDiv: ElementRef;
27
    //set these to false to get the height of the expended container
28
    public isCollapsed: boolean = false;
29
    public isCollapsable: boolean = false;
30

  
31
    constructor(public elementRef: ElementRef) {
32
    }
33

  
34
    ngAfterContentInit() {
35
        setTimeout(_ => {
36
            let currentHeight = this.readMoreDiv.nativeElement.offsetHeight;
37
            //collapsable only if the contents make container exceed the max height
38
            if (currentHeight > this.maxHeight) {
39
                this.isCollapsed = true;
40
                this.isCollapsable = true;
41
            } else {
42
            }
43
        }, 200);
44
    }
45
}
46

  
47
@Component({
48
    selector: "read-more-text",
49
    template: `
50
        <div [innerHTML]="text" [class.collapsed]="isCollapsed" [style.height]="isCollapsed ? maxHeight+'px' : 'auto'" #readMoreDiv>
51
            <!--{{text}}-->
52
        </div>
53
        <a *ngIf="isCollapsable" (click)="isCollapsed =! isCollapsed">View {{isCollapsed ? 'more' : 'less'}}...</a>
54
    `,
55
    styles: [`
56
        div.collapsed {
57
            overflow: hidden;
58
        }
59
    `]
60
})
61
export class ReadMoreTextComponent extends ReadMoreComponent implements OnChanges, AfterViewInit {
62
    @Input()
63
    text: string = "";
64

  
65
    ngAfterViewInit(): void {
66
        this.ngAfterContentInit();
67
    }
68

  
69
    ngOnChanges(): void {
70
        this.ngAfterContentInit();
71
    }
72
}
73

  
modules/uoa-repository-dashboard-gui/trunk/src/app/shared/reusablecomponents/reusable-components.module.ts
17 17
import { ModalModule, TabsModule } from 'ngx-bootstrap';
18 18
import { TopMenuComponent } from '../topmenu/topmenu.component';
19 19
import { FooterComponent } from '../footer/footer.component';
20
import {ReadMoreComponent, ReadMoreTextComponent} from './read-more.component';
20 21

  
21 22
const myGroups = [
22 23
  MyGroup,
......
49 50
    FooterComponent,
50 51
    RepositoryTilesComponent,
51 52
    ForbiddenPageComponent,
53
    ReadMoreComponent,
54
    ReadMoreTextComponent,
52 55
    ...myGroups
53 56
  ],
54 57
  exports: [
......
59 62
    FooterComponent,
60 63
    RepositoryTilesComponent,
61 64
    ForbiddenPageComponent,
62
    ...myGroups
65
    ...myGroups,
66
    ReadMoreComponent
63 67
  ],
64 68
  providers: [
65 69
    HelpContentService
modules/uoa-repository-dashboard-gui/trunk/src/app/domain/typeScriptClasses.ts
158 158
  officialname: string;
159 159
  englishname: string;
160 160
  websiteurl: string;
161
  typology: string;
161 162
  registeredby: string;
163
  organizations: Organization[];
164
  registrationdate: Date;
162 165
}
163 166

  
167
export class Organization {
168
  country: string;
169
  legalname: string;
170
  websiteurl: string;
171
  legalshortname: string;
172
  logourl: string;
173
}
174

  
164 175
export class RepositoryAccessProtocol {
165 176
    value: string;
166 177
    username: string;
......
631 642
  datasets: string;
632 643
  publications: string;
633 644
}
645

  
646
export class RepositorySummaryInfo {
647
  id: string;
648
  repositoryName: string;
649
  logoURL: string;
650
  recordsCollected: number;
651
  lastIndexedVersion: Date;
652
  enrichmentEvents: number;
653
  totalViews: string;
654
  totalDownloads: string;
655
}
modules/uoa-repository-dashboard-gui/trunk/src/assets/css/custom.css
14 14
@import url('https://fonts.googleapis.com/css?family=Sura:400,700');
15 15

  
16 16

  
17
/* yard */ 
17
/* yard */
18 18
.tm-page {
19 19
 border-width:0px!important;
20 20
 border:0px!important;
......
96 96
}
97 97
.wk-twitter-firstpage .wk-margin {
98 98
font-size:13px;
99
margin-top:10px; 
99
margin-top:10px;
100 100
line-height:20px;
101 101
padding-bottom:10px;
102 102
border-bottom:1px #c5c5c5 solid;
......
144 144
.wk-panel { }
145 145

  
146 146
.dark_overlay .wk-overlay-active :not(.wk-active)>.wk-overlay-panel:not(.wk-ignore),
147
.dark_overlay .wk-overlay-active :not(.wk-active)>.wk-overlay-panel:not(.wk-ignore), 
147
.dark_overlay .wk-overlay-active :not(.wk-active)>.wk-overlay-panel:not(.wk-ignore),
148 148
.dark_overlay .wk-overlay-hover:not(:hover):not(.wk-hover) .wk-overlay-panel:not(.wk-ignore),
149 149
.dark_overlay .wk-overlay-background{background:rgba(5,0,93,.6);}
150
 
150

  
151 151
 /*guide pages*/
152 152
.guides .wk-nav-side {border: 1px solid #ccc}
153 153
.guides .wk-nav-side > li.wk-active >a {background-color:#4687E6;}
154 154
.guides h2, .guides .wk-h2 {color: #040067;}
155 155

  
156 156
/* service pages */
157
.service-button .wk-dotnav>li>a, 
158
.service-button .wk-icon-button, .service-button .wk-list>li>a, .service-button .wk-nav ul>li>a, .service-button .wk-nav>li>a, 
157
.service-button .wk-dotnav>li>a,
158
.service-button .wk-icon-button, .service-button .wk-list>li>a, .service-button .wk-nav ul>li>a, .service-button .wk-nav>li>a,
159 159
.service-button .wk-overlay, .service-button .wk-slidenav {}
160 160

  
161 161
.service-button > .wk-subnav>li>a,
......
169 169
.service-button .wk-subnav-pill>*>:hover,
170 170
.boxedpills .uk-subnav-pill>*>:hover
171 171
 {
172
    border: 1px solid #213BAA!important;    
173
    color:#213BAA!important;    
172
    border: 1px solid #213BAA!important;
173
    color:#213BAA!important;
174 174
    text-decoration: none;
175 175
    outline: 0;
176 176
    box-shadow: none!important;
......
186 186

  
187 187
 {
188 188
    background: #213BAA;
189
    border: 1px solid #213BAA!important;    
189
    border: 1px solid #213BAA!important;
190 190
    color: #fff!important;
191 191
    box-shadow: none;
192 192
}
193 193
.service-button .wk-panel-box-primary,
194 194
.boxedpills .uk-panel-box-primary
195 195
 {background:none!important;}
196
 
196

  
197 197
.service-button .wk-panel-box,
198 198
.boxedpills .uk-panel-box
199 199
 {
......
214 214
.yoo-zoo ul.zoo-alphaindex.uk-subnav>.uk-disabled>a{color: #cbcbcb!important;}
215 215

  
216 216
/*.uk-button-default:focus, .uk-button-default:hover {color:#fff;}*/
217
.btn, .btn-info, .btn-primary{ 
217
.btn, .btn-info, .btn-primary{
218 218
/*
219 219
text-shadow:none!important;
220
background: #3870DF!important; 
220
background: #3870DF!important;
221 221
color:#fff!important;
222 222
*/
223 223
}
224 224

  
225
.btn:focus, .btn:hover, 
226
.btn-info:focus, .btn-info:hover, .btn-primary:focus, .btn-primary:hover, 
225
.btn:focus, .btn:hover,
226
.btn-info:focus, .btn-info:hover, .btn-primary:focus, .btn-primary:hover,
227 227
.uk-button-primary:focus, .uk-button-primary:hover {
228 228
/*
229
	background: #223CAA!important; 
229
	background: #223CAA!important;
230 230
	color:#fff!important;
231 231
*/
232 232
}
......
248 248

  
249 249
.uk-button-secondary:hover {
250 250
      color: #fff!important;
251
    border: 1px solid #192699!important;   
251
    border: 1px solid #192699!important;
252 252
}
253 253
*/
254 254

  
......
274 274
ol.big-numbers-list li::before {
275 275
    content: counter(step-counter);
276 276
    margin-right: 5px;
277
    text-align: center; 
277
    text-align: center;
278 278

  
279 279
    font-size: 100%;
280 280
    vertical-align: middle;
......
286 286
    -moz-border-radius:50%;
287 287
    -webkit-border-radius:50%;
288 288
    border: 1px solid #192699;
289
        /* 
289
        /*
290 290
    border: 1px solid #192699;
291 291
    color: #192699;
292 292
    border-radius: 12px;
......
312 312
}
313 313
@media only screen and (min-width: 1200px) {
314 314
.image-front-topbar {margin-top:-80px;}
315
} 
315
}
316 316

  
317 317
@media only screen and (max-width: 600px) {
318 318
.tm-toolbar {display:block;
......
357 357
 padding:10px 10px  0px 0px;
358 358
  -ms-transform: skew(25deg);
359 359
  -webkit-transform: skew(25deg);
360
  transform: skew(25deg);  
360
  transform: skew(25deg);
361 361
  margin-right:10px;
362 362
   background-color: #222080;
363 363
}
......
396 396
  text-decoration:none;
397 397
  -ms-transform: skew(-25deg);
398 398
  -webkit-transform: skew(-25deg);
399
  transform: skew(-25deg); 
399
  transform: skew(-25deg);
400 400
  font-family:Roboto:900!important;
401 401
  text-transform:uppercase!important;
402 402
  font-size:13px!important;
......
432 432
}
433 433

  
434 434
.tm-toolbar .uk-subnav-line li a:hover,
435
.tm-toolbar .uk-subnav li a:hover, 
435
.tm-toolbar .uk-subnav li a:hover,
436 436
.tm-toolbar .uk-subnav-line li:hover a,
437 437
.tm-toolbar .uk-subnav li:hover a{
438 438
  display: block;
......
467 467
}
468 468

  
469 469
.tm-toolbar .uk-subnav a[title]:hover:before{
470
    content: "";  
470
    content: "";
471 471
}
472 472
/*
473 473
.tm-toolbar .uk-subnav a[title]:hover:after {
......
507 507
}
508 508

  
509 509
.uk-navbar-container:not(.uk-navbar-transparent) .uk-navbar-toggle {color:#4F5260!important;}
510
 
510

  
511 511
.uk-navbar-container:not(.uk-navbar-transparent) {
512 512
	background: #fff;
513 513
	box-shadow: 2px 15px 50px rgba(41, 44, 61, .1);
......
547 547
.uk-nav>li>a,
548 548
.uk-navbar-dropdown-nav>li>a,
549 549
.uk-navbar-dropdown-nav .uk-nav-sub a {
550
	/* yard 
550
	/* yard
551 551
	color: rgba(255,255,255, 0.7);
552 552
	font-weight:300;
553 553
	padding:4px 0;
......
574 574

  
575 575
/*
576 576
.uk-navbar-nav>li>a, .uk-navbar-item, .uk-navbar-toggle, .navbar .brand, .navbar-search, .navbar .nav>li>a {
577
	
577

  
578 578
	font-family: 'Roboto Slab', serif;
579 579
	font-size: 16px;
580 580
	line-height: 22px;
581 581
	text-transform:none;
582 582
	color: #222080;
583 583
	font-weight: 400 !important;
584
	
584

  
585 585
}
586 586
.uk-navbar-nav>li.uk-active>a {
587 587

  
......
649 649

  
650 650

  
651 651
/*
652
.uk-navbar-container:not(.uk-navbar-transparent) a, .uk-navbar-container:not(.uk-navbar-transparent) .uk-link, 
652
.uk-navbar-container:not(.uk-navbar-transparent) a, .uk-navbar-container:not(.uk-navbar-transparent) .uk-link,
653 653
.uk-offcanvas-bar a, .uk-offcanvas-bar .uk-link, .tm-toolbar a, .tm-toolbar .uk-link {
654 654
	color:rgba(255,255,255,0.8);
655 655
}
......
673 673
 color: #D33A24;
674 674
}
675 675
/* remover of theme yard
676
.uk-light .uk-navbar-nav>li.uk-active>a, 
677
.uk-section-primary:not(.uk-preserve-color) .uk-navbar-nav>li.uk-active>a, 
678
.uk-section-secondary:not(.uk-preserve-color) .uk-navbar-nav>li.uk-active>a, 
679
.uk-card-primary.uk-card-body .uk-navbar-nav>li.uk-active>a, 
680
.uk-card-primary>:not([class*='uk-card-media']) .uk-navbar-nav>li.uk-active>a, 
681
.uk-card-secondary.uk-card-body .uk-navbar-nav>li.uk-active>a, 
682
.uk-card-secondary>:not([class*='uk-card-media']) .uk-navbar-nav>li.uk-active>a, 
683
.uk-overlay-primary .uk-navbar-nav>li.uk-active>a, 
684
.uk-navbar-container:not(.uk-navbar-transparent) .uk-navbar-nav>li.uk-active>a, 
685
.uk-offcanvas-bar .uk-navbar-nav>li.uk-active>a, 
676
.uk-light .uk-navbar-nav>li.uk-active>a,
677
.uk-section-primary:not(.uk-preserve-color) .uk-navbar-nav>li.uk-active>a,
678
.uk-section-secondary:not(.uk-preserve-color) .uk-navbar-nav>li.uk-active>a,
679
.uk-card-primary.uk-card-body .uk-navbar-nav>li.uk-active>a,
680
.uk-card-primary>:not([class*='uk-card-media']) .uk-navbar-nav>li.uk-active>a,
681
.uk-card-secondary.uk-card-body .uk-navbar-nav>li.uk-active>a,
682
.uk-card-secondary>:not([class*='uk-card-media']) .uk-navbar-nav>li.uk-active>a,
683
.uk-overlay-primary .uk-navbar-nav>li.uk-active>a,
684
.uk-navbar-container:not(.uk-navbar-transparent) .uk-navbar-nav>li.uk-active>a,
685
.uk-offcanvas-bar .uk-navbar-nav>li.uk-active>a,
686 686
.tm-toolbar .uk-navbar-nav>li.uk-active>a {
687 687
color:#292C3D;
688 688
}
689 689

  
690
.uk-light .uk-navbar-nav>li>a::before, .uk-section-primary:not(.uk-preserve-color) .uk-navbar-nav>li>a::before, 
691
.uk-section-secondary:not(.uk-preserve-color) .uk-navbar-nav>li>a::before, 
692
.uk-card-primary.uk-card-body .uk-navbar-nav>li>a::before, 
690
.uk-light .uk-navbar-nav>li>a::before, .uk-section-primary:not(.uk-preserve-color) .uk-navbar-nav>li>a::before,
691
.uk-section-secondary:not(.uk-preserve-color) .uk-navbar-nav>li>a::before,
692
.uk-card-primary.uk-card-body .uk-navbar-nav>li>a::before,
693 693
.uk-card-primary>:not([class*='uk-card-media']) .uk-navbar-nav>li>a::before, .
694
uk-card-secondary.uk-card-body .uk-navbar-nav>li>a::before, 
695
.uk-card-secondary>:not([class*='uk-card-media']) .uk-navbar-nav>li>a::before, 
696
.uk-overlay-primary .uk-navbar-nav>li>a::before, .uk-navbar-container:not(.uk-navbar-transparent) .uk-navbar-nav>li>a::before, 
694
uk-card-secondary.uk-card-body .uk-navbar-nav>li>a::before,
695
.uk-card-secondary>:not([class*='uk-card-media']) .uk-navbar-nav>li>a::before,
696
.uk-overlay-primary .uk-navbar-nav>li>a::before, .uk-navbar-container:not(.uk-navbar-transparent) .uk-navbar-nav>li>a::before,
697 697
.uk-offcanvas-bar .uk-navbar-nav>li>a::before, .tm-toolbar .uk-navbar-nav>li>a::before {
698 698
background-color: #128DD5;
699 699
background-color: #17106E;
......
705 705
background-color: #3773DB!important;
706 706
}
707 707

  
708
.uk-light .uk-navbar-nav>li:hover>a, .uk-light .uk-navbar-nav>li>a:focus, .uk-light .uk-navbar-nav>li>a.uk-open, 
709
.uk-section-primary:not(.uk-preserve-color) .uk-navbar-nav>li:hover>a, 
710
.uk-section-primary:not(.uk-preserve-color) .uk-navbar-nav>li>a:focus, 
711
.uk-section-primary:not(.uk-preserve-color) .uk-navbar-nav>li>a.uk-open, 
712
.uk-section-secondary:not(.uk-preserve-color) .uk-navbar-nav>li:hover>a, 
713
.uk-section-secondary:not(.uk-preserve-color) .uk-navbar-nav>li>a:focus, 
714
.uk-section-secondary:not(.uk-preserve-color) .uk-navbar-nav>li>a.uk-open, 
715
.uk-card-primary.uk-card-body .uk-navbar-nav>li:hover>a, .uk-card-primary.uk-card-body .uk-navbar-nav>li>a:focus, 
716
.uk-card-primary.uk-card-body .uk-navbar-nav>li>a.uk-open, 
717
.uk-card-primary>:not([class*='uk-card-media']) .uk-navbar-nav>li:hover>a, 
718
.uk-card-primary>:not([class*='uk-card-media']) .uk-navbar-nav>li>a:focus, 
719
.uk-card-primary>:not([class*='uk-card-media']) .uk-navbar-nav>li>a.uk-open, 
720
.uk-card-secondary.uk-card-body .uk-navbar-nav>li:hover>a, 
721
.uk-card-secondary.uk-card-body .uk-navbar-nav>li>a:focus, 
722
.uk-card-secondary.uk-card-body .uk-navbar-nav>li>a.uk-open, 
723
.uk-card-secondary>:not([class*='uk-card-media']) .uk-navbar-nav>li:hover>a, 
724
.uk-card-secondary>:not([class*='uk-card-media']) .uk-navbar-nav>li>a:focus, 
725
.uk-card-secondary>:not([class*='uk-card-media']) .uk-navbar-nav>li>a.uk-open, 
726
.uk-overlay-primary .uk-navbar-nav>li:hover>a, .uk-overlay-primary .uk-navbar-nav>li>a:focus, 
727
.uk-overlay-primary .uk-navbar-nav>li>a.uk-open, .uk-navbar-container:not(.uk-navbar-transparent) .uk-navbar-nav>li:hover>a, 
728
.uk-navbar-container:not(.uk-navbar-transparent) .uk-navbar-nav>li>a:focus, 
729
.uk-navbar-container:not(.uk-navbar-transparent) .uk-navbar-nav>li>a.uk-open, 
730
.uk-offcanvas-bar .uk-navbar-nav>li:hover>a, .uk-offcanvas-bar .uk-navbar-nav>li>a:focus, 
731
.uk-offcanvas-bar .uk-navbar-nav>li>a.uk-open, .tm-toolbar .uk-navbar-nav>li:hover>a, 
708
.uk-light .uk-navbar-nav>li:hover>a, .uk-light .uk-navbar-nav>li>a:focus, .uk-light .uk-navbar-nav>li>a.uk-open,
709
.uk-section-primary:not(.uk-preserve-color) .uk-navbar-nav>li:hover>a,
710
.uk-section-primary:not(.uk-preserve-color) .uk-navbar-nav>li>a:focus,
711
.uk-section-primary:not(.uk-preserve-color) .uk-navbar-nav>li>a.uk-open,
712
.uk-section-secondary:not(.uk-preserve-color) .uk-navbar-nav>li:hover>a,
713
.uk-section-secondary:not(.uk-preserve-color) .uk-navbar-nav>li>a:focus,
714
.uk-section-secondary:not(.uk-preserve-color) .uk-navbar-nav>li>a.uk-open,
715
.uk-card-primary.uk-card-body .uk-navbar-nav>li:hover>a, .uk-card-primary.uk-card-body .uk-navbar-nav>li>a:focus,
716
.uk-card-primary.uk-card-body .uk-navbar-nav>li>a.uk-open,
717
.uk-card-primary>:not([class*='uk-card-media']) .uk-navbar-nav>li:hover>a,
718
.uk-card-primary>:not([class*='uk-card-media']) .uk-navbar-nav>li>a:focus,
719
.uk-card-primary>:not([class*='uk-card-media']) .uk-navbar-nav>li>a.uk-open,
720
.uk-card-secondary.uk-card-body .uk-navbar-nav>li:hover>a,
721
.uk-card-secondary.uk-card-body .uk-navbar-nav>li>a:focus,
722
.uk-card-secondary.uk-card-body .uk-navbar-nav>li>a.uk-open,
723
.uk-card-secondary>:not([class*='uk-card-media']) .uk-navbar-nav>li:hover>a,
724
.uk-card-secondary>:not([class*='uk-card-media']) .uk-navbar-nav>li>a:focus,
725
.uk-card-secondary>:not([class*='uk-card-media']) .uk-navbar-nav>li>a.uk-open,
726
.uk-overlay-primary .uk-navbar-nav>li:hover>a, .uk-overlay-primary .uk-navbar-nav>li>a:focus,
727
.uk-overlay-primary .uk-navbar-nav>li>a.uk-open, .uk-navbar-container:not(.uk-navbar-transparent) .uk-navbar-nav>li:hover>a,
728
.uk-navbar-container:not(.uk-navbar-transparent) .uk-navbar-nav>li>a:focus,
729
.uk-navbar-container:not(.uk-navbar-transparent) .uk-navbar-nav>li>a.uk-open,
730
.uk-offcanvas-bar .uk-navbar-nav>li:hover>a, .uk-offcanvas-bar .uk-navbar-nav>li>a:focus,
731
.uk-offcanvas-bar .uk-navbar-nav>li>a.uk-open, .tm-toolbar .uk-navbar-nav>li:hover>a,
732 732
.tm-toolbar .uk-navbar-nav>li>a:focus, .tm-toolbar .uk-navbar-nav>li>a.uk-open {
733 733
color: #128DD5;
734 734
color: #17106E;
......
762 762
    color:#299CDD!important;
763 763

  
764 764
}
765
.uk-light .uk-navbar-nav>li.uk-active>a, 
766
.uk-section-primary:not(.uk-preserve-color) .uk-navbar-nav>li.uk-active>a, 
767
.uk-section-secondary:not(.uk-preserve-color) .uk-navbar-nav>li.uk-active>a, 
768
.uk-card-primary.uk-card-body .uk-navbar-nav>li.uk-active>a, 
769
.uk-card-primary>:not([class*='uk-card-media']) .uk-navbar-nav>li.uk-active>a, 
770
.uk-card-secondary.uk-card-body .uk-navbar-nav>li.uk-active>a, 
771
.uk-card-secondary>:not([class*='uk-card-media']) .uk-navbar-nav>li.uk-active>a, 
772
.uk-overlay-primary .uk-navbar-nav>li.uk-active>a, 
773
.uk-navbar-container:not(.uk-navbar-transparent) .uk-navbar-nav>li.uk-active>a, 
765
.uk-light .uk-navbar-nav>li.uk-active>a,
766
.uk-section-primary:not(.uk-preserve-color) .uk-navbar-nav>li.uk-active>a,
767
.uk-section-secondary:not(.uk-preserve-color) .uk-navbar-nav>li.uk-active>a,
768
.uk-card-primary.uk-card-body .uk-navbar-nav>li.uk-active>a,
769
.uk-card-primary>:not([class*='uk-card-media']) .uk-navbar-nav>li.uk-active>a,
770
.uk-card-secondary.uk-card-body .uk-navbar-nav>li.uk-active>a,
771
.uk-card-secondary>:not([class*='uk-card-media']) .uk-navbar-nav>li.uk-active>a,
772
.uk-overlay-primary .uk-navbar-nav>li.uk-active>a,
773
.uk-navbar-container:not(.uk-navbar-transparent) .uk-navbar-nav>li.uk-active>a,
774 774
.uk-offcanvas-bar .uk-navbar-nav>li.uk-active>a, .tm-toolbar .uk-navbar-nav>li.uk-active>a {
775 775
   color: #128DD5!important;
776 776
   color: #17106E!important;
......
778 778

  
779 779
/*.uk-light a:hover, .uk-light .uk-link:hover, */
780 780
/* remove for yard theme
781
.uk-section-primary:not(.uk-preserve-color) a:hover, .uk-section-primary:not(.uk-preserve-color) .uk-link:hover, 
782
.uk-section-secondary:not(.uk-preserve-color) a:hover, .uk-section-secondary:not(.uk-preserve-color) .uk-link:hover, 
783
.uk-card-primary.uk-card-body a:hover, .uk-card-primary.uk-card-body .uk-link:hover, 
784
.uk-card-primary>:not([class*='uk-card-media']) a:hover, .uk-card-primary>:not([class*='uk-card-media']) .uk-link:hover, 
785
.uk-card-secondary.uk-card-body a:hover, .uk-card-secondary.uk-card-body .uk-link:hover, 
786
.uk-card-secondary>:not([class*='uk-card-media']) a:hover, .uk-card-secondary>:not([class*='uk-card-media']) .uk-link:hover, 
787
.uk-overlay-primary a:hover, .uk-overlay-primary .uk-link:hover, 
788
.uk-navbar-container:not(.uk-navbar-transparent) a:hover, 
789
.uk-navbar-container:not(.uk-navbar-transparent) .uk-link:hover, 
790
.uk-offcanvas-bar a:hover, .uk-offcanvas-bar .uk-link:hover, 
781
.uk-section-primary:not(.uk-preserve-color) a:hover, .uk-section-primary:not(.uk-preserve-color) .uk-link:hover,
782
.uk-section-secondary:not(.uk-preserve-color) a:hover, .uk-section-secondary:not(.uk-preserve-color) .uk-link:hover,
783
.uk-card-primary.uk-card-body a:hover, .uk-card-primary.uk-card-body .uk-link:hover,
784
.uk-card-primary>:not([class*='uk-card-media']) a:hover, .uk-card-primary>:not([class*='uk-card-media']) .uk-link:hover,
785
.uk-card-secondary.uk-card-body a:hover, .uk-card-secondary.uk-card-body .uk-link:hover,
786
.uk-card-secondary>:not([class*='uk-card-media']) a:hover, .uk-card-secondary>:not([class*='uk-card-media']) .uk-link:hover,
787
.uk-overlay-primary a:hover, .uk-overlay-primary .uk-link:hover,
788
.uk-navbar-container:not(.uk-navbar-transparent) a:hover,
789
.uk-navbar-container:not(.uk-navbar-transparent) .uk-link:hover,
790
.uk-offcanvas-bar a:hover, .uk-offcanvas-bar .uk-link:hover,
791 791
.tm-toolbar a:hover, .tm-toolbar .uk-link:hover {
792 792
   color:#299CDD!important;
793 793
}
......
806 806
.uk-tile-primary {background-color: #17106E;}
807 807
*/
808 808
/* remove for Yard theme
809
.uk-light .uk-navbar-nav > li > a:active, 
809
.uk-light .uk-navbar-nav > li > a:active,
810 810
.uk-section-primary:not(.uk-preserve-color) .uk-navbar-nav > li > a:active,
811 811
.uk-section-secondary:not(.uk-preserve-color) .uk-navbar-nav > li > a:active,
812
.uk-card-primary.uk-card-body .uk-navbar-nav > li > a:active, 
812
.uk-card-primary.uk-card-body .uk-navbar-nav > li > a:active,
813 813
.uk-card-primary > :not([class * ='uk-card-media']) .uk-navbar-nav > li > a:active,
814
.uk-card-secondary.uk-card-body .uk-navbar-nav > li > a:active, 
814
.uk-card-secondary.uk-card-body .uk-navbar-nav > li > a:active,
815 815
.uk-card-secondary > :not([class * ='uk-card-media']) .uk-navbar-nav > li > a:active,
816
.uk-overlay-primary .uk-navbar-nav > li > a:active, 
816
.uk-overlay-primary .uk-navbar-nav > li > a:active,
817 817
.uk-navbar-container:not(.uk-navbar-transparent) .uk-navbar-nav > li > a:active,
818
.uk-offcanvas-bar .uk-navbar-nav > li > a:active, 
818
.uk-offcanvas-bar .uk-navbar-nav > li > a:active,
819 819
.tm-toolbar .uk-navbar-nav > li > a:active {
820 820
    color: #292C3D!important;
821 821
}
......
825 825
.uk-card-primary.uk-card-body .uk-navbar-nav > li.uk-active > a, .uk-card-primary > :not([class * ='uk-card-media']) .uk-navbar-nav > li.uk-active > a,
826 826
.uk-card-secondary.uk-card-body .uk-navbar-nav > li.uk-active > a,
827 827
.uk-card-secondary > :not([class * ='uk-card-media']) .uk-navbar-nav > li.uk-active > a,
828
.uk-overlay-primary .uk-navbar-nav > li.uk-active > a, 
828
.uk-overlay-primary .uk-navbar-nav > li.uk-active > a,
829 829
.uk-navbar-container:not(.uk-navbar-transparent) .uk-navbar-nav > li.uk-active > a,
830
.uk-offcanvas-bar .uk-navbar-nav > li.uk-active > a, 
830
.uk-offcanvas-bar .uk-navbar-nav > li.uk-active > a,
831 831
.tm-toolbar .uk-navbar-nav > li.uk-active > a {
832 832
    color: #292C3D!important;
833 833
}
834 834

  
835
.uk-light .uk-navbar-nav>li>a:active, 
836
.uk-section-primary:not(.uk-preserve-color) .uk-navbar-nav>li>a:active, 
837
.uk-section-secondary:not(.uk-preserve-color) .uk-navbar-nav>li>a:active, 
838
.uk-card-primary.uk-card-body .uk-navbar-nav>li>a:active, 
839
.uk-card-primary>:not([class*='uk-card-media']) .uk-navbar-nav>li>a:active, 
840
.uk-card-secondary.uk-card-body .uk-navbar-nav>li>a:active, 
841
.uk-card-secondary>:not([class*='uk-card-media']) .uk-navbar-nav>li>a:active, 
842
.uk-overlay-primary .uk-navbar-nav>li>a:active, 
843
.uk-navbar-container:not(.uk-navbar-transparent) .uk-navbar-nav>li>a:active, 
835
.uk-light .uk-navbar-nav>li>a:active,
836
.uk-section-primary:not(.uk-preserve-color) .uk-navbar-nav>li>a:active,
837
.uk-section-secondary:not(.uk-preserve-color) .uk-navbar-nav>li>a:active,
838
.uk-card-primary.uk-card-body .uk-navbar-nav>li>a:active,
839
.uk-card-primary>:not([class*='uk-card-media']) .uk-navbar-nav>li>a:active,
840
.uk-card-secondary.uk-card-body .uk-navbar-nav>li>a:active,
841
.uk-card-secondary>:not([class*='uk-card-media']) .uk-navbar-nav>li>a:active,
842
.uk-overlay-primary .uk-navbar-nav>li>a:active,
843
.uk-navbar-container:not(.uk-navbar-transparent) .uk-navbar-nav>li>a:active,
844 844
.uk-offcanvas-bar .uk-navbar-nav>li>a:active, .tm-toolbar .uk-navbar-nav>li>a:active {
845 845
color:#128DD5!important;
846 846
}
......
872 872
}
873 873
*/
874 874

  
875
.uk-light .uk-text-meta, .uk-section-primary:not(.uk-preserve-color) .uk-text-meta, 
876
.uk-section-secondary:not(.uk-preserve-color) .uk-text-meta, 
877
.uk-card-primary.uk-card-body .uk-text-meta, .uk-card-primary>:not([class*='uk-card-media']) .uk-text-meta, 
878
.uk-card-secondary.uk-card-body .uk-text-meta, .uk-card-secondary>:not([class*='uk-card-media']) .uk-text-meta, 
879
.uk-overlay-primary .uk-text-meta, .uk-navbar-container:not(.uk-navbar-transparent) .uk-text-meta, 
875
.uk-light .uk-text-meta, .uk-section-primary:not(.uk-preserve-color) .uk-text-meta,
876
.uk-section-secondary:not(.uk-preserve-color) .uk-text-meta,
877
.uk-card-primary.uk-card-body .uk-text-meta, .uk-card-primary>:not([class*='uk-card-media']) .uk-text-meta,
878
.uk-card-secondary.uk-card-body .uk-text-meta, .uk-card-secondary>:not([class*='uk-card-media']) .uk-text-meta,
879
.uk-overlay-primary .uk-text-meta, .uk-navbar-container:not(.uk-navbar-transparent) .uk-text-meta,
880 880
.uk-offcanvas-bar .uk-text-meta, .tm-toolbar .uk-text-meta{
881 881
color: #90929D;
882 882
}
......
906 906
  color:#fff;
907 907
}
908 908
.first_page_panel h3.uk-h1 {
909
  color:#fff; 
909
  color:#fff;
910 910
}
911 911
.first_page_panel {
912 912
  border: 0px solid #e5e5e7!important;
......
915 915
  font-size:24pt!important;
916 916
  padding:20px!important;
917 917
  color:#fff;
918
}  
918
}
919 919
.first_page_panel .banner_text_bottom {
920 920
  font-size:20pt;
921 921
  padding:20px;
......
934 934
}
935 935
.wk-tab>li.wk-active>a {
936 936
border-color: transparent transparent #1678CB transparent !important;
937
background:tranparent;
937
background:transparent;
938 938
border-bottom: 2px solid #1678CB;
939 939
}
940 940
.wk-tab>*>a {
......
977 977

  
978 978

  
979 979
/*custom classes */
980
.partner_slider .wk-link-reset, .partner_slider .wk-link-reset a, .partner_slider .wk-link-reset a:focus, 
980
.partner_slider .wk-link-reset, .partner_slider .wk-link-reset a, .partner_slider .wk-link-reset a:focus,
981 981
.partner_slider .wk-link-reset a:hover, .partner_slider .wk-link-reset:focus, .partner_slider .wk-link-reset:hover {
982 982
color: black;
983 983
}
......
997 997
	margin-top:0px;
998 998
}
999 999

  
1000
.mod_events_latest_date { 
1000
.mod_events_latest_date {
1001 1001
	/*
1002 1002
	width: 18%;
1003 1003
	float: left;
......
1017 1017
	font-size: 13px!important;
1018 1018
	line-height: 18px;
1019 1019
}
1020
	
1020

  
1021 1021
.mod_events_latest_time {
1022 1022
	//float: left;
1023 1023
	/*
......
1041 1041
	font-weight:300;
1042 1042
	text-transform:none;
1043 1043
}
1044
.mod_events_latest_table td .hdr, 
1044
.mod_events_latest_table td .hdr,
1045 1045
.mod_events_latest_table td .hdr a{
1046 1046
	font-family: 'Heebo', sans-serif;
1047 1047
	font-size:15px!important;
......
1122 1122
	text-decoration: underline;
1123 1123
}
1124 1124
.newsletter .uk-h2 {font-size:28px!important;}
1125
.newsletter .uk-icon { 
1125
.newsletter .uk-icon {
1126 1126
padding-left: 10px;
1127 1127
padding-bottom: 15px;
1128 1128
vertical-align: middle;
......
1133 1133
margin-bottom:0;
1134 1134
}
1135 1135

  
1136
.newsletter .acymailing_mootoolsbutton a:link, 
1136
.newsletter .acymailing_mootoolsbutton a:link,
1137 1137
.newsletter .acymailing_mootoolsbutton a:visited {
1138 1138
background:none!important;
1139 1139
border:none!important;
......
1179 1179
background-image:none!important;
1180 1180
}
1181 1181

  
1182
.newsletter .acysubbuttons input.button:hover, .newsletter .acysubbuttons .button:hover, 
1183
.newsletter .acysubbuttons button.validate:hover, .newsletter .acymailing_mootoolsbutton a:hover, 
1182
.newsletter .acysubbuttons input.button:hover, .newsletter .acysubbuttons .button:hover,
1183
.newsletter .acysubbuttons button.validate:hover, .newsletter .acymailing_mootoolsbutton a:hover,
1184 1184
.newsletter .acymailing_mootoolsbutton a:active {
1185 1185
box-shadow:none!important;
1186 1186
-moz-box-shadow:none!important;
......
1210 1210
	box-shadow: 0px 0px 0px;
1211 1211
	border-radius:0px!important;
1212 1212
	display: inline-table!important;
1213
	text-transform:none!important;	
1213
	text-transform:none!important;
1214 1214
	font-size: 14px;
1215 1215
	font-family: 'Roboto Slab', serif;
1216 1216
	font-size: 16px;
1217 1217
	line-height: 23px;
1218 1218
	font-weight: 500 !important;
1219 1219
}
1220
.loginLink { 
1220
.loginLink {
1221 1221
text-transform:none!important;
1222 1222
color: rgba(0, 0, 0, 0.8)!important;
1223 1223
}
1224 1224

  
1225 1225
#btl-panel-login >span {
1226
	border: 5px solid #d0d0d0!important;	
1226
	border: 5px solid #d0d0d0!important;
1227 1227
}
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff