diff --git a/drupal/modules/epal/src/Controller/DirectorView.php b/drupal/modules/epal/src/Controller/DirectorView.php
index 509ed6cf20345eab63d11d437ffda32c7847c89c..c558221aa8dcce12721e05f52a5d1a211fce4157 100755
--- a/drupal/modules/epal/src/Controller/DirectorView.php
+++ b/drupal/modules/epal/src/Controller/DirectorView.php
@@ -362,6 +362,13 @@ public function SaveCapacity(Request $request,$taxi,$tomeas,$specialit)
             {
                  $postData = json_decode($content);
                  $cap = $postData->capacity;
+                 if ($cap<= 0 || $cap > 99)
+                 {
+                    return $this->respondWithStatus([
+                    'message' => t("Number out of limits!"),
+                ], Response::HTTP_BAD_REQUEST);
+                 }
+
                 if (($tomeas == 0) && ($specialit == 0))
                 {
                  $CapacityPerClass = $this->entityTypeManager->getStorage('eepal_school')->loadByProperties(array('id' => $schoolid ));
diff --git a/source/components/director/director-classcapacity.ts b/source/components/director/director-classcapacity.ts
index 59ca8aa4e9084ad400051b7c01abdb4703552fff..78d18e9ec738bedeffe6bb25045705c0e4477f6f 100644
--- a/source/components/director/director-classcapacity.ts
+++ b/source/components/director/director-classcapacity.ts
@@ -9,6 +9,9 @@ import { IAppState } from '../../store/store';
 import {Router, ActivatedRoute, Params} from '@angular/router';
 import { BehaviorSubject, Subscription } from 'rxjs/Rx';
 import { ILoginInfo } from '../../store/logininfo/logininfo.types';
+import { VALID_CAPACITY_PATTERN} from '../../constants';
+import {maxValue} from '../../constants';
+
 
 import {
     FormBuilder,
@@ -48,7 +51,14 @@ import {
 
 
       <p style="margin-top: 20px; line-height: 2em;"> ΑλλάξτΡ Ο€Ξ±ΟΞ±ΞΊΞ±Ξ»ΟŽ τον αριθμό των τμημάτων που μπορΡίτΡ Ξ½Ξ± δημιουργΞ�σΡτΡ στο σχολΡίο σας ΞΊΞ±ΞΉ πατΞ�στΡ  <i>ΑποθΞ�κΡυση</i>.</p>
-       <input  type="number" formControlName="capacity" min="1" max="10">
+       <input  type="number" formControlName="capacity" min="1" max="10" ng-min="1" ng-max="99" >
+
+        <div class="alert alert-danger" *ngIf="formGroup.get('capacity').touched && formGroup.get('capacity').hasError('maxValue')">
+      Ξ£Ο…ΞΌΟ€Ξ»Ξ·ΟΟŽΟƒΟ„Ξ΅ την Ξ΄ΞΉΞ±ΞΈΞ΅ΟƒΞΉΞΌΟŒΟ„Ξ·Ο„Ξ± σας σΡ τμΞ�ματα !
+      </div>
+       <div class="alert alert-danger" *ngIf="formGroup.get('capacity').touched && formGroup.get('capacity').hasError('required')">
+          Παρακαλώ ΟƒΟ…ΞΌΟ€Ξ»Ξ·ΟΟŽΟƒΟ„Ξ΅ Ξ­Ξ½Ξ± ΞΌΞΉΞΊΟΟŒΟ„Ξ΅ΟΞΏ αριθμό!
+      </div>
 
             <button type="button" class="btn-primary btn-sm pull-right" (click) ="saveCapacity()">
                 ΑποθΞ�κΡυση
@@ -148,11 +158,15 @@ import {
             tomeas: ['', []],
             taxi: ['', []],
             specialit: ['', []],
-            capacity: ['', []],
+            capacity: ['', [Validators.pattern(VALID_CAPACITY_PATTERN),Validators.required, maxValue(99)]],
             });
 
     }
 
+
+    
+
+
     public showModal(popupMsgId):void {
         console.log("about to show modal");
         //(<any>$('#distributionWaitingNotice')).modal('show');
@@ -325,8 +339,6 @@ import {
     }
 
 
-
-
     saveCapacity() {
 
         var taxi = +this.formGroup.value.taxi;
@@ -336,7 +348,9 @@ import {
         
 
          if ((taxi === 2 && tomeas === 0) || (taxi === 3  && tomeas === 0 ) || (taxi ===3  && specialit === 0 ) 
-             || (taxi === 4  && tomeas === 0 ) || (taxi ===4  && specialit === 0 ) || (taxi = 0) || (capc ===0))
+             || (taxi === 4  && tomeas === 0 ) || (taxi ===4  && specialit === 0 ) || (taxi = 0) || (this.formGroup.invalid)
+
+             )
           {
               this.showModal("#checksaved");
           } else 
diff --git a/source/components/infoviews/eduadmin-view.ts b/source/components/infoviews/eduadmin-view.ts
index 079fa4c132eff2992f97c157abd8035ce622d795..47dfdfcc87b517c70ea9869c498da946093007f3 100644
--- a/source/components/infoviews/eduadmin-view.ts
+++ b/source/components/infoviews/eduadmin-view.ts
@@ -19,13 +19,16 @@ import {
 @Component({
     selector: 'eduadmin-view',
     template: `
-            <h3> Ξ‘ΟΞΉΞΈΞΌΟŒΟ‚ ΞœΞ±ΞΈΞ·Ο„ΟŽΞ½ Ξ±Ξ½Ξ± τμΞ�ΞΌΞ± σχολΡίου </h3>
-
+            <h4> Ξ‘ΟΞΉΞΈΞΌΟŒΟ‚ ΞœΞ±ΞΈΞ·Ο„ΟŽΞ½ Ξ±Ξ½Ξ± τμΞ�ΞΌΞ± σχολΡίου!!! </h4>
+            <div class = "loading" *ngIf="(SchoolsPerPerf$ | async).size === 0">
+            </div>
             <ul class="list-group main-view">
               <div *ngFor="let SchoolNames$  of SchoolsPerPerf$  | async; let i=index; let isOdd=odd; let isEven=even"  >
                   <li class="list-group-item isclickable" (click)="setActiveRegion(SchoolNames$.id)" [class.changelistcolor]= "SchoolNames$.status === false" [class.oddout]="isOdd" [class.evenout]="isEven" [class.selectedout]="regionActive === SchoolNames$.id" >
                      <h5> {{SchoolNames$.name}}</h5>
                   </li>
+                <div class = "loading" *ngIf="(CoursesPerPerf$ | async).size === 0">
+                </div>
                  <div *ngFor="let CoursesNames$  of CoursesPerPerf$  | async; let j=index; let isOdd2=odd; let isEven2=even" [class.oddin]="isOdd2" [class.evenin]="isEven2" [class.changecolor]="calccolor(CoursesNames$.size,CoursesNames$.limitdown)" [hidden]="SchoolNames$.id !== regionActive" >
                     <div> {{CoursesNames$.name}}</div> <div class= "aastyle"><strong>Ξ‘ΟΞΉΞΈΞΌΟŒΟ‚ ΞœΞ±ΞΈΞ·Ο„ΟŽΞ½:</strong>{{CoursesNames$.size}} </div>
 
diff --git a/source/constants.ts b/source/constants.ts
index 0088cf9f85009b39b905ad57dc797f8454e86e1d..6137c4699d9358afb33b340aab1991cfd028a9ee 100644
--- a/source/constants.ts
+++ b/source/constants.ts
@@ -1,3 +1,8 @@
+
+import {ValidatorFn} from '@angular/forms';
+import {AbstractControl} from '@angular/forms';
+
+
 export const COURSEFIELDS_RECEIVED = 'COURSEFIELDS_RECEIVED';
 export const COURSEFIELDS_SELECTED_SAVE = 'COURSEFIELDS_SELECTED_SAVE';
 
@@ -40,6 +45,8 @@ export const VALID_NAMES_PATTERN = '[A-Za-zΞ‘-Ξ©Ξ†ΞˆΞ‰ΞŠΞ™ΞŽΞŒΞΞ±-ωάέΞ�ίΐ
 export const VALID_ADDRESS_PATTERN = '[0-9A-Za-zΞ‘-Ξ©Ξ†ΞˆΞ‰ΞŠΞŽΞŒΞΞ±-ωάέΞ�ίύόώ ]*$';
 export const VALID_ADDRESSTK_PATTERN = '[0-9 ]*$';
 export const VALID_DIGITS_PATTERN = '69[0-9]*$';
+export const VALID_CAPACITY_PATTERN = '[0-9]*$';
+
 
 export const VALID_EMAIL_PATTERN = '[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,64}';
 
@@ -57,3 +64,14 @@ export const STUDENT_ROLE = 'student';
 export const PDE_ROLE = 'pde';
 export const DIDE_ROLE = 'dide';
 export const MINISTRY_ROLE = 'supervisor';
+
+export function maxValue(max: Number): ValidatorFn {
+  return (control: AbstractControl): {[key: string]: any} => {
+    const input = control.value,
+          isValid = input > 99;
+    if(isValid) 
+        return { 'maxValue': {max} }
+    else 
+        return null;
+  };
+}