Index: modules/uoa-repository-dashboard-gui/trunk/assets/imgs/zender_logo.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: modules/uoa-repository-dashboard-gui/trunk/assets/imgs/zender_logo.png
===================================================================
--- modules/uoa-repository-dashboard-gui/trunk/assets/imgs/zender_logo.png	(nonexistent)
+++ modules/uoa-repository-dashboard-gui/trunk/assets/imgs/zender_logo.png	(revision 51015)

Property changes on: modules/uoa-repository-dashboard-gui/trunk/assets/imgs/zender_logo.png
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: modules/uoa-repository-dashboard-gui/trunk/app/pages/sources/sources-register/register-datasource-shareable.component.html
===================================================================
--- modules/uoa-repository-dashboard-gui/trunk/app/pages/sources/sources-register/register-datasource-shareable.component.html	(revision 51014)
+++ modules/uoa-repository-dashboard-gui/trunk/app/pages/sources/sources-register/register-datasource-shareable.component.html	(revision 51015)
@@ -24,10 +24,10 @@
                 </div>
                 <div class="form-group">
                   <label class="control-label">Start typing in the name of your repository to narrow down the view</label>
-                  <input [(ngModel)]="searchBox" id="search" class="form-control" type="text" [disabled]="!hasSelectedCountry" />
+                  <input [(ngModel)]="searchBox" id="search" class="form-control" type="text" [disabled]="(!hasSelectedCountry)" />
                 </div>
               </div>
-              <div *ngIf="hasSelectedCountry">
+              <div *ngIf="selectedCountry">
                 <div>
                   <h2>{{ sourceTitle }} Repositories in {{ selectedCountry }}</h2>
                 </div>
Index: modules/uoa-repository-dashboard-gui/trunk/app/pages/sources/sources-register/register-datasource-shareable.component.ts
===================================================================
--- modules/uoa-repository-dashboard-gui/trunk/app/pages/sources/sources-register/register-datasource-shareable.component.ts	(revision 51014)
+++ modules/uoa-repository-dashboard-gui/trunk/app/pages/sources/sources-register/register-datasource-shareable.component.ts	(revision 51015)
@@ -73,30 +73,32 @@
     console.log(`I got ${country} and ${this.mode}`);
     this.selectedCountry = country;
 
-    setTimeout( () => {
-      this.countryRepos = [];
-      this.hasSelectedCountry = true;
-      this.loadingMessage = loadingReposMessage;
-      this.noRepositories = '';
-      this.repoService.getRepositoriesOfCountry(country, this.mode).subscribe(
-        repos => this.countryRepos = repos,
-        error => {
-          console.log(error.statusText);
-          this.loadingMessage = '';
-          this.alertMessage = noServiceMessage;
-        },
-        () => {
-          if (!this.countryRepos.length) {
-            this.noRepositories = noRepositoriesFound;
-            this.countryRepos = [];
-          } else {
-            this.noRepositories = '';
+    this.countryRepos = [];
+    this.hasSelectedCountry = false;
+    this.loadingMessage = loadingReposMessage;
+    this.noRepositories = '';
+    this.repoService.getRepositoriesOfCountry(country, this.mode).subscribe(
+      repos => this.countryRepos = repos,
+      error => {
+        console.log(error.statusText);
+        this.loadingMessage = '';
+        this.alertMessage = noServiceMessage;
+      },
+      () => {
+        if (!this.countryRepos.length) {
+          this.noRepositories = noRepositoriesFound;
+          this.countryRepos = [];
+        } else {
+          this.noRepositories = '';
+          if (this.selectedCountry == country) {
+            /* to make sure that the correct set of repositories is displayed - in case of consequent country selections */
+            this.hasSelectedCountry = true;
           }
-          this.loadingMessage = '';
-          this.alertMessage = '';
         }
-      );
-    }, 500 );
+        this.loadingMessage = '';
+        this.alertMessage = '';
+      }
+    );
   }
 
   onChooseRepository(id: string){
Index: modules/uoa-repository-dashboard-gui/trunk/app/pages/sources/sources-forms/datasource-interface-form.component.ts
===================================================================
--- modules/uoa-repository-dashboard-gui/trunk/app/pages/sources/sources-forms/datasource-interface-form.component.ts	(revision 51014)
+++ modules/uoa-repository-dashboard-gui/trunk/app/pages/sources/sources-forms/datasource-interface-form.component.ts	(revision 51015)
@@ -2,7 +2,8 @@
 import { MyGroup } from '../../../shared/reusablecomponents/forms/my-group.interface';
 import { FormBuilder, Validators } from '@angular/forms';
 import {
-  formErrorRequiredFields, formErrorWasntSaved, formSubmitting, formSuccessAddedInterface, formSuccessUpdatedInterface,
+  formErrorRequiredFields, formErrorWasntSaved, formInfoLoading, formSubmitting, formSuccessAddedInterface,
+  formSuccessUpdatedInterface,
   invalidCustomBaseUrl, noServiceMessage
 } from '../../../domain/shared-messages';
 import { ValidatorService } from '../../../services/validator.service';
@@ -9,6 +10,10 @@
 import { ActivatedRoute } from '@angular/router';
 import { RepositoryService } from '../../../services/repository.service';
 import { InterfaceInformation, Repository, RepositoryInterface } from '../../../domain/typeScriptClasses';
+import {
+  baseUrlDesc, compatibilityLevelDesc, customValSetDesc, Description,
+  existingValSetDesc
+} from '../../../domain/oa-description';
 
 @Component ({
   selector: 'datasource-interface-form',
@@ -22,6 +27,7 @@
   errorMessage: string;
 
   currentRepository: Repository;
+  isNew: boolean;
 
   identifiedBaseUrl: boolean;
   existingValSet: boolean;
@@ -38,6 +44,10 @@
     customValidationSet: [''],
     compatibilityLevel: ['', Validators.required]
   };
+  baseUrlDesc: Description = baseUrlDesc;
+  existingValSetDesc: Description = existingValSetDesc;
+  customValSetDesc: Description = customValSetDesc;
+  compatibilityLevelDesc: Description = compatibilityLevelDesc;
 
   constructor(injector: Injector,
               private valService: ValidatorService,
@@ -46,25 +56,25 @@
   }
 
   ngOnInit() {
-      this.currentRepository = <Repository>this.otherData;
-      this.getCompatibilityClasses();
-      console.log(`other data is: ${JSON.stringify(this.otherData)}`);
-      if (this.data && this.data.length) {
-        this.currentInterface = this.data[0];
-        this.patchData.next({
-            baseUrl: this.data[0].baseUrl,
-            selectValidationSet: '',
-            customValidationSet: '',
+    this.currentRepository = <Repository>this.otherData;
+    this.getCompatibilityClasses();
+    console.log(`other data is: ${JSON.stringify(this.otherData)}`);
+    if (this.data && this.data.length) {
+      this.currentInterface = this.data[0];
+      this.patchData.next({
+          baseUrl: this.data[0].baseUrl,
+          selectValidationSet: '',
+          customValidationSet: '',
           compatibilityLevel:this.data[0].desiredCompatibilityLevel
-          }
-        );
-        this.getInterfaceInfo(this.data[0].baseUrl);
-        this.data.splice(0,1);
-      }
-      super.ngOnInit();
-      console.log(this.group, this.parentGroup);
-      this.existingValSet = true;
-      this.getMyControl('customValidationSet').disable();
+      });
+      this.getMyControl('baseUrl').disable();
+      this.getInterfaceInfo(this.data[0].baseUrl);
+      this.data.splice(0,1);
+    }
+    super.ngOnInit();
+    console.log(this.group, this.parentGroup);
+    this.existingValSet = true;
+    this.getMyControl('customValidationSet').disable();
   }
 
   chooseValSet(existingValSet: boolean) {
@@ -82,7 +92,7 @@
   saveInterface() {
     this.errorMessage = '';
     this.successMessage = '';
-    if (this.group.valid) {
+    if (this.group.valid && ( this.getMyControl('selectValidationSet').value || this.getMyControl('customValidationSet').value ) ) {
       if (this.identifiedBaseUrl) {
         let baseUrl = this.getMyControl('baseUrl').value;
         let valset: string = '';
@@ -108,6 +118,9 @@
   }
 
   getInterfaceInfo(baseUrl: string) {
+    this.successMessage = '';
+    this.errorMessage = '';
+    this.loadingMessage = formInfoLoading;
     if(baseUrl) {
       this.valService.getInterfaceInformation(baseUrl).subscribe(
         info => {
@@ -114,7 +127,6 @@
           this.interfaceInfo = info;
           if (this.interfaceInfo.identified) {
             this.identifiedBaseUrl = true;
-            this.errorMessage = '';
           } else {
             this.errorMessage = invalidCustomBaseUrl;
           }
@@ -125,9 +137,11 @@
         },
         error => {
           console.log(error);
+          this.loadingMessage = '';
           this.identifiedBaseUrl = false;
           this.errorMessage = noServiceMessage;
-        }
+        },
+        () => this.loadingMessage = ''
       );
     }
   }
@@ -158,7 +172,6 @@
     this.repoService.updateInterface(this.currentInterface).subscribe(
       response => {
         console.log(`updateRepository responded ${response}`);
-        this.loadingMessage = '';
         if (response == '200') {
           this.successMessage = formSuccessUpdatedInterface;
         } else {
@@ -169,7 +182,8 @@
         console.log(error);
         this.loadingMessage = '';
         this.errorMessage = formErrorWasntSaved;
-      }
+      },
+      () => this.loadingMessage = ''
     );
   }
 
@@ -196,6 +210,7 @@
         this.loadingMessage = '';
         if (this.currentInterface.id) {
           this.successMessage = formSuccessAddedInterface;
+          this.isNew = true
         } else {
           this.errorMessage = formErrorWasntSaved;
         }
@@ -204,7 +219,7 @@
   }
 
   ngOnDestroy() {
-    if (this.currentInterface && this.toBeDeleted) {
+    if (this.currentInterface && this.currentInterface.id && this.toBeDeleted) {
 /*      this.repoService.deleteInterface(this.currentInterface.id).subscribe(
         response => console.log(`deleteInterface responded: ${response}`),
         error => console.log(error)
@@ -215,5 +230,6 @@
     }
   }
 
+  remove
 
 }
Index: modules/uoa-repository-dashboard-gui/trunk/app/pages/sources/sources-forms/datasource-update-form.component.html
===================================================================
--- modules/uoa-repository-dashboard-gui/trunk/app/pages/sources/sources-forms/datasource-update-form.component.html	(revision 51014)
+++ modules/uoa-repository-dashboard-gui/trunk/app/pages/sources/sources-forms/datasource-update-form.component.html	(revision 51015)
@@ -88,7 +88,7 @@
   <form-inline [description]="timezoneDesc" [valid]="updateGroup.get('timezone').valid">
     <select formControlName="timezone" class="form-control">
       <option value="">-- none selected --</option>
-      <option *ngFor="let timezone of timezones" value="{{ timezone.offset }}">{{ timezone.title }}</option>
+      <option *ngFor="let timezone of timezones" value="{{ timezone.offset }}">{{ timezone.name }}</option>
     </select>
   </form-inline>
   <form-inline [description]="datasourceTypeDesc" [valid]="updateGroup.get('datasourceType').valid">
@@ -109,5 +109,5 @@
 
 <confirmation-dialog #updateLogoUrlModal [title]="'Update Logo URL'" [isModalShown]="isModalShown"
                      [confirmActionButton]="'Update'" (emitObject)="updatedLogoUrl($event)">
-  <input type="text" #logoURLinput name="logoUrl" placeholder="Logo URL" class="form-control" value="{{ selectedRepo.logoUrl }}" (change)="changeLogoUrl(logoURLinput.value)">
+  <input type="text" #logoURLinput name="logoUrl" placeholder="Logo URL" class="form-control" value="{{ updateGroup.get('logoUrl').value }}" (change)="changeLogoUrl(logoURLinput.value)">
 </confirmation-dialog>
Index: modules/uoa-repository-dashboard-gui/trunk/app/pages/sources/sources-forms/datasource-create-form.component.html
===================================================================
--- modules/uoa-repository-dashboard-gui/trunk/app/pages/sources/sources-forms/datasource-create-form.component.html	(revision 51014)
+++ modules/uoa-repository-dashboard-gui/trunk/app/pages/sources/sources-forms/datasource-create-form.component.html	(revision 51015)
@@ -81,11 +81,11 @@
   <form-inline [description]="timezoneDesc" [valid]="group.get('timezone').valid">
     <select formControlName="timezone" class="form-control">
       <option value="">-- none selected --</option>
-      <option *ngFor="let timezone of timezones" value="{{ timezone.offset }}">{{ timezone.title }}</option>
+      <option *ngFor="let timezone of timezones" value="{{ timezone.offset }}">{{ timezone.name }}</option>
     </select>
   </form-inline>
-  <form-inline [description]="journalTypeDesc" [valid]="group.get('journalType').valid">
-    <select formControlName="journalType" class="form-control">
+  <form-inline [description]="datasourceTypeDesc" [valid]="group.get('datasourceType').valid">
+    <select formControlName="datasourceType" class="form-control">
       <option value="">-- none selected --</option>
       <option *ngFor="let key of classCodes" value="{{key}}">{{ datasourceClasses[key] }}</option>
     </select>
Index: modules/uoa-repository-dashboard-gui/trunk/app/pages/sources/sources-forms/datasource-update-form.component.ts
===================================================================
--- modules/uoa-repository-dashboard-gui/trunk/app/pages/sources/sources-forms/datasource-update-form.component.ts	(revision 51014)
+++ modules/uoa-repository-dashboard-gui/trunk/app/pages/sources/sources-forms/datasource-update-form.component.ts	(revision 51015)
@@ -2,15 +2,13 @@
 import {
   formErrorRequiredFields,
   formErrorWasntSaved,
-  formInfoLoading, formSubmitting,
-  formSuccessUpdatedRepo, loadingRepoError,
+  formSubmitting,
+  formSuccessUpdatedRepo,
   noServiceMessage
 } from '../../../domain/shared-messages';
 import { RepositoryService } from "../../../services/repository.service";
 import { AbstractControl, FormBuilder, FormGroup, Validators } from '@angular/forms';
-import { Country, Repository } from '../../../domain/typeScriptClasses';
-import { typologies } from '../../../domain/typologies';
-import { timezones } from '../../../domain/timezones';
+import { Country, Repository, Timezone, Typology } from '../../../domain/typeScriptClasses';
 import {
   Description,
   softwarePlatformDesc,
@@ -26,6 +24,8 @@
   logoUrlDesc,
   timezoneDesc,
   datasourceTypeDesc,
+  journalTypeDesc,
+  aggregatorTypeDesc,
   adminEmailDesc, lissnDesc, eissnDesc, issnDesc
 } from '../../../domain/oa-description';
 import { ConfirmationDialogComponent } from '../../../shared/reusablecomponents/confirmation-dialog.component';
@@ -41,8 +41,8 @@
   successMessage: string;
   loadingMessage: string;
 
-  typologies = typologies;
-  timezones = timezones;
+  typologies: Typology[] = [];
+  timezones: Timezone[] = [];
   countries: Country[] = [];
   datasourceClasses: Map<string,string> = new Map<string,string>();
   classCodes: string[] = [];
@@ -49,14 +49,15 @@
 
   @ViewChild('updateLogoUrlModal')
   public updateLogoUrlModal: ConfirmationDialogComponent;
-  urlToEmit: string;
 
+  /* in sources/update emits the new logUrl */
   @Output() emittedUrl: EventEmitter<string> = new EventEmitter();
 
+  /*  in sources/register (of literature or data repository) emits the updated repository */
+  @Output() emittedInfo: EventEmitter<Repository> = new EventEmitter();
+
   @Input() selectedRepo: Repository;
 
-  @Output() emittedInfo: EventEmitter<Repository> = new EventEmitter();
-
   @Input() showButton: boolean;
 
   updateGroup: FormGroup;
@@ -95,7 +96,7 @@
   englishNameDesc : Description = englishNameDesc;
   logoUrlDesc : Description = logoUrlDesc;
   timezoneDesc : Description = timezoneDesc;
-  datasourceTypeDesc : Description = datasourceTypeDesc;
+  datasourceTypeDesc : Description;
   adminEmailDesc : Description = adminEmailDesc;
 
   constructor(
@@ -112,10 +113,19 @@
     this.setupUpdateForm();
     this.getDatasourceClasses();
     this.getCountries();
+    this.getTypologies();
+    this.getTimezones();
   }
 
   setupUpdateForm(){
     if (this.selectedRepo) {
+      if (this.selectedRepo.datasourceType == 'journal') {
+        this.datasourceTypeDesc = journalTypeDesc;
+      } else if (this.selectedRepo.datasourceType == 'aggregator') {
+        this.datasourceTypeDesc = aggregatorTypeDesc;
+      } else {
+        this.datasourceTypeDesc = datasourceTypeDesc;
+      }
       this.updateGroup.setValue({
         softwarePlatform: this.selectedRepo.typology,
         platformName: '',
@@ -135,18 +145,14 @@
         datasourceType: this.selectedRepo.datasourceClass,
         adminEmail: this.selectedRepo.contactEmail
       });
-      if (!this.updateGroup.get('softwarePlatform').value) {
-        this.updateGroup.setValue({
-          softwarePlatform: '',
-          platformName: this.selectedRepo.typology
-        });
+      if ( this.typologies.filter(x => x.value == this.updateGroup.get('softwarePlatform').value) == [] ) {
+        this.updateGroup.get('softwarePlatform').setValue('');
+        this.updateGroup.get('platformName').setValue(this.selectedRepo.typology);
       }
       if (this.selectedRepo.datasourceType == 'journal') {
-        this.updateGroup.setValue({
-          issn: this.selectedRepo.issn,
-          eissn: this.selectedRepo.eissn,
-          lissn: this.selectedRepo.lissn
-        });
+        this.updateGroup.get('issn').setValue(this.selectedRepo.issn);
+          this.updateGroup.get('eissn').setValue(this.selectedRepo.eissn);
+        this.updateGroup.get('lissn').setValue(this.selectedRepo.lissn);
       }
     }
   }
@@ -184,6 +190,20 @@
     );
   }
 
+  getTypologies() {
+    this.repoService.getTypologies().subscribe(
+      types => this.typologies = types,
+      error => console.log(error)
+    );
+  }
+
+  getTimezones() {
+    this.repoService.getTimezones().subscribe(
+      zones => this.timezones = zones,
+      error => console.log(error)
+    );
+  }
+
   updateRepo(): boolean {
     let result: boolean;
 
@@ -193,7 +213,7 @@
     if (this.updateGroup.valid) {
       if ( this.selectedRepo.datasourceType != 'journal' || this.updateGroup.get('issn').value ) {
         this.refreshSelectedRepo();
-        this.loadingMessage = formSubmitting;
+/*        this.loadingMessage = formSubmitting;
         this.errorMessage = '';
         this.repoService.updateRepository(this.selectedRepo).subscribe(
           response => {
@@ -215,7 +235,9 @@
               this.errorMessage = formErrorWasntSaved;
             }
           }
-        );
+        );*/
+
+        this.emittedInfo.emit(this.selectedRepo); /* DELETE ME LATER !!! */
         result = true;
       } else {
         this.errorMessage = formErrorRequiredFields;
@@ -255,7 +277,7 @@
   }
 
   changeLogoUrl(logoUrl: string) {
-    this.urlToEmit = logoUrl;
+    this.updateGroup.get('logoUrl').setValue(logoUrl);
   }
 
   updateLogoUrl(logoUrl: string){
@@ -264,10 +286,7 @@
   }
 
   updatedLogoUrl() {
-    if (this.urlToEmit) {
-      this.updateGroup.setValue({logoUrl: this.urlToEmit});
-      this.emittedUrl.emit(this.urlToEmit);
-    }
+    this.emittedUrl.emit(this.updateGroup.get('logoUrl').value);
   }
 
 }
Index: modules/uoa-repository-dashboard-gui/trunk/app/pages/sources/sources-forms/datasource-create-form.component.ts
===================================================================
--- modules/uoa-repository-dashboard-gui/trunk/app/pages/sources/sources-forms/datasource-create-form.component.ts	(revision 51014)
+++ modules/uoa-repository-dashboard-gui/trunk/app/pages/sources/sources-forms/datasource-create-form.component.ts	(revision 51015)
@@ -9,7 +9,7 @@
 } from '../../../domain/shared-messages';
 import { RepositoryService } from "../../../services/repository.service";
 import { FormBuilder, FormGroup, Validators } from '@angular/forms';
-import { Country, Repository } from '../../../domain/typeScriptClasses';
+import { Country, Repository, Timezone, Typology } from '../../../domain/typeScriptClasses';
 import { typologies } from '../../../domain/typologies';
 import { timezones } from '../../../domain/timezones';
 import {
@@ -29,6 +29,7 @@
   logoUrlDesc,
   timezoneDesc,
   journalTypeDesc,
+  aggregatorTypeDesc,
   adminEmailDesc
 } from '../../../domain/oa-description';
 import { ValidatorService } from '../../../services/validator.service';
@@ -45,8 +46,8 @@
   successMessage: string;
   loadingMessage: string;
 
-  typologies = typologies;
-  timezones = timezones;
+  typologies: Typology[] = [];
+  timezones: Timezone[] = [];
   countries: Country[] = [];
   datasourceClasses: Map<string,string> = new Map<string,string>();
   classCodes: string[] = [];
@@ -71,7 +72,7 @@
     englishName: ['', Validators.required],
     logoUrl: '',
     timezone: ['', Validators.required],
-    journalType: ['', Validators.required],
+    datasourceType: ['', Validators.required],
     adminEmail: ['', [Validators.required, Validators.email] ]
   };
 
@@ -89,7 +90,7 @@
   englishNameDesc : Description = englishNameDesc;
   logoUrlDesc : Description = logoUrlDesc;
   timezoneDesc : Description = timezoneDesc;
-  journalTypeDesc : Description = journalTypeDesc;
+  datasourceTypeDesc : Description;
   adminEmailDesc : Description = adminEmailDesc;
 
   constructor(
@@ -105,8 +106,15 @@
 
   loadForm(){
     this.mode = this.route.snapshot.url[0].path.toString();
+    if (this.mode == 'journal') {
+      this.datasourceTypeDesc = journalTypeDesc;
+    } else if (this.mode == 'aggregator') {
+      this.datasourceTypeDesc = aggregatorTypeDesc;
+    }
     console.log(this.mode);
     this.group = this.fb.group(this.groupDefinition);
+    this.getTypologies();
+    this.getTimezones();
     this.getCountries();
     this.getDatasourceClasses();
   }
@@ -144,6 +152,20 @@
     );
   }
 
+  getTypologies() {
+    this.repoService.getTypologies().subscribe(
+      types => this.typologies = types,
+      error => console.log(error)
+    );
+  }
+
+  getTimezones() {
+    this.repoService.getTimezones().subscribe(
+      zones => this.timezones = zones,
+      error => console.log(error)
+    );
+  }
+
   registerDatasource(): boolean {
     let result: boolean;
 
@@ -202,7 +224,7 @@
     newRepo.latitude = this.group.get('latitude').value;
     newRepo.longitude = this.group.get('longtitude').value;
     newRepo.timezone = this.group.get('timezone').value;
-    newRepo.datasourceClass = this.group.get('journalType').value;
+    newRepo.datasourceClass = this.group.get('datasourceType').value;
     newRepo.typology = this.group.get('softwarePlatform').value;
     newRepo.description = this.group.get('repoDescription').value;
     newRepo.issn = this.group.get('issn').value;
Index: modules/uoa-repository-dashboard-gui/trunk/app/pages/sources/sources-forms/datasource-interface-form.component.html
===================================================================
--- modules/uoa-repository-dashboard-gui/trunk/app/pages/sources/sources-forms/datasource-interface-form.component.html	(revision 51014)
+++ modules/uoa-repository-dashboard-gui/trunk/app/pages/sources/sources-forms/datasource-interface-form.component.html	(revision 51015)
@@ -1,11 +1,12 @@
+<div>
+  <div class="interfaceActionsPanel">
+    <a (click)="saveInterface()"><i class="fa fa-save fa-lg"></i></a>
+  </div>
   <div>
-    <div class="interfaceActionsPanel">
-      <a (click)="saveInterface()"><i class="fa fa-save fa-lg"></i></a>
-    </div>
-    <div *ngIf="currentInterface">
-      <h5>OpenDOAR Interface (non-removable)</h5>
-    </div>
+    <h5 *ngIf="currentInterface && !isNew">OpenDOAR Interface (non-removable)</h5>
   </div>
+</div>
+<div>
   <div *ngIf="loadingMessage" class="loading-big">
     <div class="loader-big" style="text-align: center; padding-top: 170px; color: rgb(47, 64, 80); font-weight: bold;">
       {{ loadingMessage }}
@@ -12,48 +13,47 @@
     </div>
     <div class="whiteFilm"></div>
   </div>
-  <div *ngIf="group">
-    <div [formGroup]="group">
-      <div *ngIf="successMessage" class="uk-alert uk-alert-success">{{ successMessage }}</div>
-      <div *ngIf="errorMessage" class="uk-alert uk-alert-danger">{{ errorMessage }}</div>
-      <div class="form-group has-success">
-        <label class="control-label" for="baseUrl">Base OAI-PMH URL (*)</label>
-        <span *ngIf="identifiedBaseUrl" class="help-block inline" style="margin-top: 0px; margin-bottom: 0px; padding-left: 10px;">
-          Identified
-        </span>
-        <input id="baseUrl" type="text" class="form-control" formControlName="baseUrl" required="true" (blur)="getInterfaceInfo(this.group.get('baseUrl').value)">
+  <div *ngIf="group && !loadingMessage" [formGroup]="group">
+    <div *ngIf="successMessage" class="uk-alert uk-alert-success" style="clear: both">{{ successMessage }}</div>
+    <div *ngIf="errorMessage" class="uk-alert uk-alert-danger" style="clear: both">{{ errorMessage }}</div>
+    <div class="form-group has-success">
+      <label class="control-label" for="baseUrl" title="{{ baseUrlDesc.desc }}">Base OAI-PMH URL (*)</label>
+      <span *ngIf="identifiedBaseUrl" class="help-block inline" style="margin-top: 0px; margin-bottom: 0px; padding-left: 10px;">
+        Identified
+      </span>
+      <input id="baseUrl" type="text" class="form-control" formControlName="baseUrl" (blur)="getInterfaceInfo(group.get('baseUrl').value)" required>
+    </div>
+    <div class="form-group">
+      <label class="control-label">Validation Set (*)</label>
+      <div>
+        <label class="uk-button validationSetRadio" for="selectRadio{{index}}" title="{{ existingValSetDesc.desc }}">
+          <input id="selectRadio{{index}}" value="select" name="validationSet{{index}}" type="radio" (change)="chooseValSet(true)" checked>
+          <span>Choose existing</span>
+        </label>
       </div>
-      <div class="form-group">
-        <label class="control-label">Validation Set</label>
-        <div>
-          <label class="uk-button validationSetRadio" for="selectRadio{{index}}">
-            <input id="selectRadio{{index}}" value="select" name="validationSet{{index}}" type="radio" (change)="chooseValSet(true)" checked>
-            <span>Choose existing</span>
-          </label>
-        </div>
-        <select id="selectValidationSet{{index}}" formControlName="selectValidationSet" class="form-control" >
-          <option value="" selected>-- none selected --</option>
-          <option *ngFor="let set of valsetList" value="{{set}}">{{set}}</option>
-        </select>
-        <div>
-          <label class="uk-button validationSetRadio" for="customRadio{{index}}">
-            <input id="customRadio{{index}}" value="custom" name="validationSet{{index}}" type="radio" (change)="chooseValSet(false)">
-            <span>or a custom one</span>
-          </label>
-        </div>
-        <input id="customValidationSet{{index}}" formControlName="customValidationSet" class="form-control" type="text">
-      </div>
-      <div class="form-group">
-        <label class="control-label" for="compLvl">Desired Compatibility Level (*)</label>
-        <select class="form-control" #compLvl id="compLvl" formControlName="compatibilityLevel">
-          <option value="" selected>-- none selected --</option>
-          <option *ngFor="let key of classCodes" value="{{key}}">{{compClasses[key]}}</option>
-        </select>
-      </div>
+      <select id="selectValidationSet{{index}}" formControlName="selectValidationSet" class="form-control" >
+        <option value="" selected>-- none selected --</option>
+        <option *ngFor="let set of valsetList" value="{{set}}">{{set}}</option>
+      </select>
       <div>
-        <label class="uk-form-controls-text control-label">Current Compatibility Level</label>
-        <div *ngIf="compLvl == ''">not available</div>
-        <div *ngIf="currentInterface && currentInterface.desiredCompatibilityLevel">{{ compClasses[currentInterface.desiredCompatibilityLevel] }}</div>
+        <label class="uk-button validationSetRadio" for="customRadio{{index}}" title="{{ customValSetDesc.desc }}">
+          <input id="customRadio{{index}}" value="custom" name="validationSet{{index}}" type="radio" (change)="chooseValSet(false)">
+          <span>or a custom one</span>
+        </label>
       </div>
+      <input id="customValidationSet{{index}}" formControlName="customValidationSet" class="form-control" type="text">
     </div>
+    <div class="form-group">
+      <label class="control-label" for="compLvl" title="{{ compatibilityLevelDesc.desc }}">Desired Compatibility Level (*)</label>
+      <select class="form-control" #compLvl id="compLvl" formControlName="compatibilityLevel" required>
+        <option value="">-- none selected --</option>
+        <option *ngFor="let key of classCodes" value="{{key}}">{{compClasses[key]}}</option>
+      </select>
+    </div>
+    <div>
+      <label class="uk-form-controls-text control-label">Current Compatibility Level</label>
+      <div *ngIf="compLvl == ''">not available</div>
+      <div *ngIf="currentInterface && currentInterface.desiredCompatibilityLevel">{{ compClasses[currentInterface.desiredCompatibilityLevel] }}</div>
+    </div>
   </div>
+</div>
Index: modules/uoa-repository-dashboard-gui/trunk/app/pages/sources/sources-update-repo.component.html
===================================================================
--- modules/uoa-repository-dashboard-gui/trunk/app/pages/sources/sources-update-repo.component.html	(revision 51014)
+++ modules/uoa-repository-dashboard-gui/trunk/app/pages/sources/sources-update-repo.component.html	(revision 51015)
@@ -10,7 +10,6 @@
     <div *ngIf="repo" class="uk-margin-medium-bottom">
       <h1 class="uk-article-title">
         <a id="updateLogoURL" (click)="datasourceUpdateForm.updateLogoUrl(repo.logoUrl)">
-<!--        <a id="updateLogoURL">-->
           <img *ngIf="!logoURL" src="/assets/imgs/yourLogoHere.jpg" style="margin-right: 15px; margin-top:-8px" width="60">
           <img *ngIf="logoURL" src="{{ logoURL }}" style="margin-right: 15px; margin-top:-8px" width="60">
         </a>
@@ -17,7 +16,7 @@
         {{ repo.officialName }}
       </h1>
     </div>
-    <div>
+    <div *ngIf="repo">
       <div>
         <ul class="uk-margin el-nav uk-tab" uk-switcher="connect: .uk-switcher">
           <li routerLinkActive="uk-active">
@@ -29,7 +28,7 @@
         </ul>
         <ul class="uk-switcher">
           <li class="el-item">
-            <div *ngIf="repo">
+            <div>
               <datasource-update-form #datasourceUpdateForm
                                       [selectedRepo]="repo"
                                       [showButton]=true
@@ -55,13 +54,12 @@
   </div>
   <div class="tm-sidebar uk-width-1-4@m">
     <div>
-      <div class="uk-card uk-card-body uk-card-default sidemenu">
-        <h3 class="el-title uk-h3 uk-heading-bullet">Info / Help</h3>
-        <!--<p class="small">-->
-          <!--Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.-->
-
-        <!--</p>-->
-<!--        <pre>{{group.value | json}}</pre>-->
+      <div class="uk-card uk-card-body uk-card-default sidemenu"><h3>Info / Help</h3>
+        <p>You have access to edit&nbsp;the following repository listed on the left.&nbsp;Fields marked with * are mandatory.
+          &nbsp;Hover over each field to find more information about it.</p>
+        <p>The official repository administrator (his/her email address being retrieved from the OAI-PMH verb Identify) will be contacted and informed about the update request.
+          So please make sure that you are either this person or have access to the email address, or that you have notified them.</p>
+        <p>For any problems or questions please contact the <a href="https://www.openaire.eu/support/helpdesk" target="_blank">OpenAIRE helpdesk</a>.</p>
       </div>
     </div>
   </div>
Index: modules/uoa-repository-dashboard-gui/trunk/app/pages/sources/sources-update-repo.component.ts
===================================================================
--- modules/uoa-repository-dashboard-gui/trunk/app/pages/sources/sources-update-repo.component.ts	(revision 51014)
+++ modules/uoa-repository-dashboard-gui/trunk/app/pages/sources/sources-update-repo.component.ts	(revision 51015)
@@ -82,7 +82,7 @@
         console.log(error);
         this.loadingMessage = '';
         this.errorMessage = loadingRepoError;
-      }
+      }, () => this.loadingMessage = ''
     );
   }
 
Index: modules/uoa-repository-dashboard-gui/trunk/app/pages/sources/sources.routing.ts
===================================================================
--- modules/uoa-repository-dashboard-gui/trunk/app/pages/sources/sources.routing.ts	(revision 51014)
+++ modules/uoa-repository-dashboard-gui/trunk/app/pages/sources/sources.routing.ts	(revision 51015)
@@ -18,7 +18,7 @@
   {
     path: 'sources',
     component: SourcesComponent,
-//    canActivate: [AuthGuardService],
+    canActivate: [AuthGuardService],
     children: [
       {
         path: '',
Index: modules/uoa-repository-dashboard-gui/trunk/app/pages/compatibility/compatibility-validation-history.component.ts
===================================================================
--- modules/uoa-repository-dashboard-gui/trunk/app/pages/compatibility/compatibility-validation-history.component.ts	(revision 51014)
+++ modules/uoa-repository-dashboard-gui/trunk/app/pages/compatibility/compatibility-validation-history.component.ts	(revision 51015)
@@ -3,13 +3,11 @@
 
 
 /*DELETE ME LATER*/
-import { jobsOfUser } from '../../domain/dummyLists';
 import { MonitorService } from '../../services/monitor.service';
 import { AuthenticationService } from '../../services/authentication.service';
 import { JobsOfUser, StoredJob } from '../../domain/typeScriptClasses';
 import { ValidatorService } from '../../services/validator.service';
 import { loadingUserJobs, loadingUserJobsError, noUserJobsFound } from '../../domain/shared-messages';
-import { stat } from 'fs';
 import { URLParameter } from '../../domain/url-parameter';
 
 @Component ({
@@ -122,7 +120,7 @@
     if ( this.chosenJobType ) {
       params.push({key: 'jobType', value: [this.chosenJobType]});
     }
-    params.push({key: 'offset', value: [this.currentPage.toString()]});
+    params.push({key: 'offset', value: [( (this.currentPage)*this.itemsPerPage).toString()]});
     params.push({key: 'limit', value: [this.itemsPerPage.toString()]});
     /*  can also add dateFrom and dateTo if needed */
     params.push({key: 'validationStatus', value: [this.currentFilter]});
Index: modules/uoa-repository-dashboard-gui/trunk/app/pages/compatibility/compatibility-monitor-repo.component.ts
===================================================================
--- modules/uoa-repository-dashboard-gui/trunk/app/pages/compatibility/compatibility-monitor-repo.component.ts	(revision 51014)
+++ modules/uoa-repository-dashboard-gui/trunk/app/pages/compatibility/compatibility-monitor-repo.component.ts	(revision 51015)
@@ -1,8 +1,14 @@
 import { Component, OnInit } from '@angular/core';
 import { ActivatedRoute } from '@angular/router';
-import { Repository } from '../../domain/typeScriptClasses';
+import { Aggregations, Repository } from '../../domain/typeScriptClasses';
 import { RepositoryService } from '../../services/repository.service';
-import { loadingRepoError, loadingRepoMessage } from '../../domain/shared-messages';
+import {
+  loadingAggregationHistory,
+  loadingAggregationHistoryError,
+  loadingRepoError,
+  loadingRepoMessage,
+  noAggregationHistory
+} from '../../domain/shared-messages';
 
 @Component ({
   selector: 'app-compatibility-monitor-repo',
@@ -12,11 +18,14 @@
 export class CompatibilityMonitorRepoComponent implements OnInit {
   loadingMessage: string;
   errorMessage: string;
+  noAggregations: string;
 
   repoId: string = '';
   repoName: string = '';
   repo: Repository;
 
+  aggregations: Aggregations;
+
   constructor(private route: ActivatedRoute,
               private repoService: RepositoryService) {}
 
@@ -46,6 +55,7 @@
           this.loadingMessage = '';
           if (this.repo) {
             this.repoName = this.repo.officialName;
+            this.getAggregationHistory();
           } else {
             this.errorMessage = loadingRepoError;
           }
@@ -53,4 +63,21 @@
       );
     }
   }
+
+  getAggregationHistory() {
+    this.loadingMessage = loadingAggregationHistory;
+    this.repoService.getRepositoryAggregations(this.repo.id).subscribe(
+      aggr => this.aggregations = aggr,
+      error => {
+        this.loadingMessage = '';
+        this.errorMessage = loadingAggregationHistoryError;
+      },
+      () => {
+        this.loadingMessage = '';
+        if (this.aggregations && !this.aggregations.aggregationHistory.length) {
+          this.noAggregations = noAggregationHistory;
+        }
+      }
+    );
+  }
 }
Index: modules/uoa-repository-dashboard-gui/trunk/app/pages/compatibility/compatibility-monitor.component.html
===================================================================
--- modules/uoa-repository-dashboard-gui/trunk/app/pages/compatibility/compatibility-monitor.component.html	(revision 51014)
+++ modules/uoa-repository-dashboard-gui/trunk/app/pages/compatibility/compatibility-monitor.component.html	(revision 51015)
@@ -3,7 +3,6 @@
     <div class="uk-margin-medium-bottom">
       <h1 class="uk-article-title">Monitor</h1>
     </div>
-    <a [routerLink]="'bla'">PUSH ME</a>
     <repository-tiles [parent]="'compatibilityMonitor'"></repository-tiles>
   </div>
 </div>
Index: modules/uoa-repository-dashboard-gui/trunk/app/pages/compatibility/compatibility-validation-history.component.html
===================================================================
--- modules/uoa-repository-dashboard-gui/trunk/app/pages/compatibility/compatibility-validation-history.component.html	(revision 51014)
+++ modules/uoa-repository-dashboard-gui/trunk/app/pages/compatibility/compatibility-validation-history.component.html	(revision 51015)
@@ -3,7 +3,6 @@
     <div class="uk-margin-medium-bottom">
       <h1 class="uk-article-title">Previous validations</h1>
     </div>
-    <a [routerLink]="'bla'">PUSH ME</a>
     <div *ngIf="successMessage" class="uk-alert uk-alert-success">{{ successMessage }}</div>
     <div *ngIf="failureMessage" class="uk-alert uk-alert-danger">{{ failureMessage }}</div>
     <div *ngIf="infoMessage" class="uk-alert uk-alert-warning">{{ infoMessage }}</div>
Index: modules/uoa-repository-dashboard-gui/trunk/app/pages/compatibility/compatibility-validate.component.html
===================================================================
--- modules/uoa-repository-dashboard-gui/trunk/app/pages/compatibility/compatibility-validate.component.html	(revision 51014)
+++ modules/uoa-repository-dashboard-gui/trunk/app/pages/compatibility/compatibility-validate.component.html	(revision 51015)
@@ -3,7 +3,6 @@
     <div class="uk-margin-medium-bottom">
       <h1 class="uk-article-title">Validate your datasource</h1>
     </div>
-    <a [routerLink]="'bla'">PUSH ME</a>
     <div>
       <div class="uk-margin uk-grid repositoryTypeSelection">
         <div class="uk-width-expand@m uk-width-1-3@s uk-grid-item-match uk-first-column">
Index: modules/uoa-repository-dashboard-gui/trunk/app/pages/compatibility/compatibility-monitor-repo.component.html
===================================================================
--- modules/uoa-repository-dashboard-gui/trunk/app/pages/compatibility/compatibility-monitor-repo.component.html	(revision 51014)
+++ modules/uoa-repository-dashboard-gui/trunk/app/pages/compatibility/compatibility-monitor-repo.component.html	(revision 51015)
@@ -12,7 +12,10 @@
         <div class="whiteFilm"></div>
       </div>
       <div class="uk-alert uk-alert-danger" style="display: none;" aria-hidden="true"></div>
-      <div>There is no aggregation history for this repository at the moment</div>
+      <div *ngIf="noAggregations">{{ noHistory }}</div>
+      <div *ngIf="aggregations && !this.aggregations.aggregationHistory">
+        The aggregation History will be displayed here!
+      </div>
     </div>
   </div>
 </div>
Index: modules/uoa-repository-dashboard-gui/trunk/app/pages/content/content-events-of-repository.component.html
===================================================================
--- modules/uoa-repository-dashboard-gui/trunk/app/pages/content/content-events-of-repository.component.html	(revision 51014)
+++ modules/uoa-repository-dashboard-gui/trunk/app/pages/content/content-events-of-repository.component.html	(revision 51015)
@@ -3,7 +3,6 @@
     <div class="uk-margin-medium-bottom">
       <h1 class="uk-article-title">Enrichments for {{ repoName }}</h1>
     </div>
-    <a (click)="goToEventsList(chosenEvent)">PUSH ME</a>
     <div>
       <div *ngIf="errorMessage" class="uk-alert uk-alert-danger">{{errorMessage}}</div>
       <div *ngIf="loadingMessage" class="loading-big">
Index: modules/uoa-repository-dashboard-gui/trunk/app/pages/content/content-events.component.html
===================================================================
--- modules/uoa-repository-dashboard-gui/trunk/app/pages/content/content-events.component.html	(revision 51014)
+++ modules/uoa-repository-dashboard-gui/trunk/app/pages/content/content-events.component.html	(revision 51015)
@@ -3,7 +3,6 @@
     <div class="uk-margin-medium-bottom">
       <h1 class="uk-article-title">Enrich Your Content - Browse Events</h1>
     </div>
-    <a [routerLink]="'Nemertes'">PUSH ME</a>
     <repository-tiles [parent]="'contentEvents'"></repository-tiles>
   </div>
 </div>
Index: modules/uoa-repository-dashboard-gui/trunk/app/services/repository.service.ts
===================================================================
--- modules/uoa-repository-dashboard-gui/trunk/app/services/repository.service.ts	(revision 51014)
+++ modules/uoa-repository-dashboard-gui/trunk/app/services/repository.service.ts	(revision 51015)
@@ -11,8 +11,13 @@
 import 'rxjs/add/operator/map';
 import { Http, Response, Headers, RequestOptions } from '@angular/http';
 
-import { Country, MetricsInfo, Repository, RepositoryInterface, Timezone } from '../domain/typeScriptClasses';
+import {
+  Aggregations, Country, MetricsInfo, Repository, RepositoryInterface, Timezone,
+  Typology
+} from '../domain/typeScriptClasses';
 import { apiUrl } from '../domain/tempAPI';
+import { timezones } from '../domain/timezones';
+import { typologies } from '../domain/typologies';
 
 let headers = new Headers({ 'Content-Type': 'application/json' });
 let httpOptions = new RequestOptions({ headers: headers });
@@ -107,6 +112,7 @@
       .catch(this.handleError);
   }
 
+
   getUrlsOfUserRepos(userEmail: string): Observable<string[]>{
     let url = `${this.apiUrl}getUrlsOfUserRepos/${userEmail}/0/100/`;
     console.log(`knocking on: ${url}`);
@@ -115,20 +121,30 @@
       .catch(this.handleError);
   }
 
-  getTimezones(): Observable<Timezone[]>{
-    let url = `${this.apiUrl}getTimezones`;
+  getRepositoryAggregations(id: string): Observable<Aggregations>{
+    let url = `${this.apiUrl}getRepositoryAggregations/${id}`;
     console.log(`knocking on: ${url}`);
     return this.http.get(url)
-      .map( res => <Timezone[]>res.json())
+      .map(res => <Aggregations>res.json())
       .catch(this.handleError);
   }
 
-  getTypologies(): Observable<string[]>{
-    let url = `${this.apiUrl}getTypologies`;
+getTimezones(): Observable<Timezone[]>{
+/*    let url = `${this.apiUrl}getTimezones`;
     console.log(`knocking on: ${url}`);
     return this.http.get(url)
+      .map( res => <Timezone[]>res.json())
+      .catch(this.handleError);*/
+    return Observable.of(<Timezone[]>timezones);
+  }
+
+  getTypologies(): Observable<Typology[]>{
+/*    let url = `${this.apiUrl}getTypologies`;
+    console.log(`knocking on: ${url}`);
+    return this.http.get(url)
       .map( res => <string[]>res.json())
-      .catch(this.handleError);
+      .catch(this.handleError);*/
+    return Observable.of(<Typology[]>typologies);
   }
 
   getCountries(): Observable<Country[]> {
Index: modules/uoa-repository-dashboard-gui/trunk/app/shared/reusablecomponents/forms/my-group.interface.ts
===================================================================
--- modules/uoa-repository-dashboard-gui/trunk/app/shared/reusablecomponents/forms/my-group.interface.ts	(revision 51014)
+++ modules/uoa-repository-dashboard-gui/trunk/app/shared/reusablecomponents/forms/my-group.interface.ts	(revision 51015)
@@ -122,8 +122,8 @@
   selector : 'form-inline',
   template : `
     <div class="form-group">
-      <label class="control-label" *ngIf="description.label != ''" [ngClass]="{'required' : description.mandatory==true}">
-        {{description.label}}
+      <label class="control-label" *ngIf="description.label != ''" [ngClass]="{'required' : description.mandatory==true}" title="{{ description.desc }}">
+        {{ description.label }}
       </label>
       <ng-content></ng-content>
     </div>
Index: modules/uoa-repository-dashboard-gui/trunk/app/domain/shared-messages.ts
===================================================================
--- modules/uoa-repository-dashboard-gui/trunk/app/domain/shared-messages.ts	(revision 51014)
+++ modules/uoa-repository-dashboard-gui/trunk/app/domain/shared-messages.ts	(revision 51015)
@@ -11,6 +11,9 @@
 export const noRepositoryChosenMsg = 'You need to select a repository first.';
 export const loadingRepoMessage = 'Retrieving repository information ...';
 export const loadingRepoError = 'System error retrieving repository info';
+export const loadingAggregationHistory = 'Retrieving aggregation history ...';
+export const loadingAggregationHistoryError = 'System error retrieving repository aggregation history.';
+export const noAggregationHistory = 'There is no aggregation history for this repository at the moment';
 
 /* Loading Rules Messages */
 export const loadingRuleSets = 'Retrieving sets of rules ...';
@@ -67,7 +70,7 @@
 export const formSubmitting = 'Saving changes ...';
 export const formErrorRequiredFields = 'All the fields marked with (*) are mandatory';
 export const formErrorInvalidFields = 'There are invalid fields';
-export const formErrorWasntSaved = 'There was a problem with the form submission';
+export const formErrorWasntSaved = 'The form could not be submitted';
 export const formSuccessUpdatedRepo = 'The datasource was updated successfully.';
 export const formSuccessRegisteredDatasource = 'The datasource was registered successfully';
 export const formSuccessAddedInterface = 'The interface was added successfully.';
Index: modules/uoa-repository-dashboard-gui/trunk/app/domain/timezones.ts
===================================================================
--- modules/uoa-repository-dashboard-gui/trunk/app/domain/timezones.ts	(revision 51014)
+++ modules/uoa-repository-dashboard-gui/trunk/app/domain/timezones.ts	(revision 51015)
@@ -1,13 +1,13 @@
 export const timezones = [
-  { offset: -2.0, title:	'[GMT - 2] Fernando de Noronha Time,	South Georg...' },
-  { offset: -1.0, title:	'[GMT - 1] Azores Standard Time, Cape Verde Time...' },
-  { offset: 0.0, title:	'[GMT] Western European Time, Greenwich Mean Time' },
-  { offset: 1.0, title:	'[GMT + 1] Central European Time, West African Time' },
-  { offset: 2.0, title:	'[GMT + 2] Eastern European Time, Central Africa...' },
-  { offset: 3.0, title:	'[GMT + 3] Moscow Standard Time, Eastern African...' },
-  { offset: 3.5, title:	'[GMT + 3:30] Iran Standard Time' },
-  { offset: 4.0, title:	'[GMT + 4] Gulf Standard Time, Samara Standard Time' },
-  { offset: 4.5, title:	'[GMT + 4:30] Afghanistan Time' },
-  { offset: 5.0, title:	'[GMT + 5] Pakistan Standard Time, Yekaterinburg...' },
-  { offset: 8.0, title:	'[GMT + 8] Beijing, Hong Kong, Irkutsk, Kuala Lumpur, Manila, Perth' },
+  { offset: -2.0, name:	'[GMT - 2] Fernando de Noronha Time,	South Georg...' },
+  { offset: -1.0, name:	'[GMT - 1] Azores Standard Time, Cape Verde Time...' },
+  { offset: 0.0, name:	'[GMT] Western European Time, Greenwich Mean Time' },
+  { offset: 1.0, name:	'[GMT + 1] Central European Time, West African Time' },
+  { offset: 2.0, name:	'[GMT + 2] Eastern European Time, Central Africa...' },
+  { offset: 3.0, name:	'[GMT + 3] Moscow Standard Time, Eastern African...' },
+  { offset: 3.5, name:	'[GMT + 3:30] Iran Standard Time' },
+  { offset: 4.0, name:	'[GMT + 4] Gulf Standard Time, Samara Standard Time' },
+  { offset: 4.5, name:	'[GMT + 4:30] Afghanistan Time' },
+  { offset: 5.0, name:	'[GMT + 5] Pakistan Standard Time, Yekaterinburg...' },
+  { offset: 8.0, name:	'[GMT + 8] Beijing, Hong Kong, Irkutsk, Kuala Lumpur, Manila, Perth' },
 ];
Index: modules/uoa-repository-dashboard-gui/trunk/app/domain/oa-description.ts
===================================================================
--- modules/uoa-repository-dashboard-gui/trunk/app/domain/oa-description.ts	(revision 51014)
+++ modules/uoa-repository-dashboard-gui/trunk/app/domain/oa-description.ts	(revision 51015)
@@ -156,3 +156,31 @@
   mandatory : true,
   recommended : false
 };
+
+export let baseUrlDesc = {
+  desc : 'The baseUrl of the interface',
+  label : 'Base URL',
+  mandatory : true,
+  recommended : false
+};
+
+export let existingValSetDesc = {
+  desc : 'A list of existing validation sets',
+  label : 'Available validation sets',
+  mandatory : false,
+  recommended : false
+};
+
+export let customValSetDesc = {
+  desc : 'Custom validation set',
+  label : 'Custom validation set',
+  mandatory : false,
+  recommended : false
+};
+
+export let compatibilityLevelDesc = {
+  desc : 'A list of compatibility level choices',
+  label : 'Desired Compatibility Level',
+  mandatory : true,
+  recommended : false
+};
Index: modules/uoa-repository-dashboard-gui/trunk/app/domain/typeScriptClasses.ts
===================================================================
--- modules/uoa-repository-dashboard-gui/trunk/app/domain/typeScriptClasses.ts	(revision 51014)
+++ modules/uoa-repository-dashboard-gui/trunk/app/domain/typeScriptClasses.ts	(revision 51015)
@@ -587,3 +587,21 @@
   diagramsBaseURL: string;
   metricsNumbers: MetricsNumbers;
 }
+
+export class Typology {
+  value: string;
+  name: string;
+}
+
+export class AggregationDetails implements IsSerializable {
+  aggregationStage: string;
+  date: Date;
+  numberOfRecords: number;
+  collectionMode: string;
+}
+
+export class Aggregations implements IsSerializable {
+  aggregationHistory: AggregationDetails[];
+  lastCollection: AggregationDetails[];
+  lastTransformation: AggregationDetails[];
+}
