Merge branch 'develop' into DATALAB-2347
diff --git a/services/self-service/src/main/resources/webapp/src/app/administration/configuration/configuration.component.html b/services/self-service/src/main/resources/webapp/src/app/administration/configuration/configuration.component.html
index faab5da..62b11be 100644
--- a/services/self-service/src/main/resources/webapp/src/app/administration/configuration/configuration.component.html
+++ b/services/self-service/src/main/resources/webapp/src/app/administration/configuration/configuration.component.html
@@ -15,7 +15,7 @@
   ~ KIND, either express or implied.  See the License for the
   ~ specific language governing permissions and limitations
   ~ under the License.
-  -->
+-->
 
 <div class="base-retreat configuration">
   <div class="sub-nav">
@@ -49,15 +49,17 @@
     </div>
     <div>
       <ng-template [ngIf]="activeTab.index !== 0">
-        <button mat-raised-button class="butt"
-                (click)="action('save')"
-                [disabled]="!services['provisioning'].isConfigChanged && !services['self-service'].isConfigChanged && !services['billing'].isConfigChanged"
+        <button 
+          mat-raised-button class="butt"
+          (click)="action('save')"
+          [disabled]="!services['provisioning'].isConfigChanged && !services['self-service'].isConfigChanged && !services['billing'].isConfigChanged"
         >
           Save
         </button>
-        <button mat-raised-button class="butt"
-                (click)="action('discard')"
-                [disabled]="!services['provisioning'].isConfigChanged && !services['self-service'].isConfigChanged && !services['billing'].isConfigChanged"
+        <button 
+          mat-raised-button class="butt"
+          (click)="action('discard')"
+          [disabled]="!services['provisioning'].isConfigChanged && !services['self-service'].isConfigChanged && !services['billing'].isConfigChanged"
         >
           Discard changes
         </button>
@@ -70,16 +72,28 @@
       >
         Restart
       </button>
-      <button mat-raised-button class="butt" (click)="refreshConfig()">
+      <button 
+        mat-raised-button 
+        class="butt" 
+        (click)="refreshConfig()"
+      >
         <i class="material-icons refresh-icon">autorenew</i>Refresh
       </button>
     </div>
   </div>
   <mat-divider></mat-divider>
   <div class="configuration-wrapper">
-    <mat-tab-group animationDuration="0.5ms" (selectedTabChange)="tabChanged($event)" [selectedIndex]=activeTab.index>
-      <mat-tab label="Main"
-               [disabled]="!(!services['provisioning'].isConfigChanged && !services['self-service'].isConfigChanged && !services['billing'].isConfigChanged) && activeTab.index !== 0"
+    <mat-tab-group 
+      animationDuration="0.5ms" 
+      (selectedTabChange)="tabChanged($event)" 
+      [selectedIndex]="activeTab.index"
+    >
+      <mat-tab 
+        label="Main"
+        [disabled]="!(!services['provisioning'].isConfigChanged && 
+                      !services['self-service'].isConfigChanged && 
+                      !services['billing'].isConfigChanged) && 
+                      activeTab.index !== 0"
       >
         <h4>Main settings</h4>
         <div class="main-wrapper">
@@ -89,16 +103,18 @@
               <ul class="list-menu selection-list">
                 <li *ngFor="let service of services | keys">
                   <p 
+                    *ngIf="(activeEndpoint !== 'local' 
+                          && (service.key === 'provisioning' || service.key === 'billing') 
+                          || activeEndpoint === 'local')"
                     class="list-item" 
                     role="menuitem" 
-                    *ngIf="(activeEndpoint !== 'local' && (service.key === 'provisioning' || service.key === 'billing') || activeEndpoint === 'local')">
+                  >
                     <span (click)="toggleSettings(service.key);$event.stopPropagation()" class="d-flex">
                       <div class="checkbox-wrap">
                         <datalab-checkbox
                           [checked]="services[service.key].selected"
                           (toggleSelection)="toggleSettings(service.key)"
-                        >
-                        </datalab-checkbox>
+                        ></datalab-checkbox>
                       </div>
                       {{service.value.label}}
                     </span>
@@ -110,36 +126,64 @@
         </div>
       </mat-tab>
 
-      <mat-tab label="Self-service"
-              *ngIf="activeEndpoint === 'local'"
-               [disabled]="!(!services['provisioning'].isConfigChanged && !services['self-service'].isConfigChanged && !services['billing'].isConfigChanged) && activeTab.index !== 1"
-
+      <mat-tab 
+        label="Self-service"
+        *ngIf="activeEndpoint === 'local'"
+        [disabled]="!(!services['provisioning'].isConfigChanged 
+                  && !services['self-service'].isConfigChanged 
+                  && !services['billing'].isConfigChanged) 
+                  && activeTab.index !== 1"
       >
         <h4>Edit self-service.yml</h4>
         <div class="editor-wrap">
-          <div #selfEditor ace-editor mode="yaml" [(text)]="services['self-service'].config" [autoUpdateContent]="true" (textChange)="configUpdate('self-service')"></div>
+          <div 
+            #selfEditor 
+            ace-editor 
+            mode="yaml" 
+            [(text)]="services['self-service'].config" 
+            [autoUpdateContent]="true" 
+            (textChange)="configUpdate('self-service')"
+          ></div>
         </div>
       </mat-tab>
 
-      <mat-tab label="Provisioning"
-               [disabled]="!(!services['provisioning'].isConfigChanged
-               && !services['self-service'].isConfigChanged
-               && !services['billing'].isConfigChanged)
-               && activeTab.index !== 2">
-
+      <mat-tab 
+        label="Provisioning"
+        [disabled]="!(!services['provisioning'].isConfigChanged
+                  && !services['self-service'].isConfigChanged
+                  && !services['billing'].isConfigChanged)
+                  && activeTab.index !== 2"
+      >
         <h4>Edit provisioning.yml</h4>
         <div class="editor-wrap">
-          <div #provEditor ace-editor [(text)]="services['provisioning'].config" [autoUpdateContent]="true" mode="yaml" (textChange)="configUpdate('provisioning')"></div>
+          <div 
+            #provEditor 
+            ace-editor 
+            mode="yaml" 
+            [(text)]="services['provisioning'].config" 
+            [autoUpdateContent]="true" 
+            (textChange)="configUpdate('provisioning')"
+          ></div>
         </div>
       </mat-tab>
 
-      <mat-tab label="Billing"
-               [disabled]="!(!services['provisioning'].isConfigChanged && !services['self-service'].isConfigChanged && !services['billing'].isConfigChanged) && activeTab.index !== 3"
+      <mat-tab 
+        label="Billing"
+        [disabled]="!(!services['provisioning'].isConfigChanged 
+                  && !services['self-service'].isConfigChanged 
+                  && !services['billing'].isConfigChanged) 
+                  && activeTab.index !== 3"
       >
         <h4>Edit billing.yml</h4>
         <div class="editor-wrap">
-          <div #billingEditor ace-editor mode="yaml" [(text)]="services['billing'].config" [autoUpdateContent]="true" (textChange)="configUpdate('billing')"></div>
-
+          <div 
+            #billingEditor 
+            ace-editor 
+            mode="yaml" 
+            [(text)]="services['billing'].config" 
+            [autoUpdateContent]="true" 
+            (textChange)="configUpdate('billing')"
+          ></div>
         </div>
       </mat-tab>
     </mat-tab-group>
diff --git a/services/self-service/src/main/resources/webapp/src/app/administration/configuration/configuration.component.scss b/services/self-service/src/main/resources/webapp/src/app/administration/configuration/configuration.component.scss
index 2df3042..e230032 100644
--- a/services/self-service/src/main/resources/webapp/src/app/administration/configuration/configuration.component.scss
+++ b/services/self-service/src/main/resources/webapp/src/app/administration/configuration/configuration.component.scss
@@ -17,44 +17,44 @@
  * under the License.
  */
 
-.configuration-wrapper{
-  box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);
-  padding-top: 0;
+.configuration-wrapper {
   height: calc(100vh - 130px);
+  padding-top: 0;
+  box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 
+              0px 6px 10px 0px rgba(0, 0, 0, 0.14),
+              0px 1px 18px 0px rgba(0, 0, 0, 0.12);
 
-  .sub-nav{
+  .sub-nav {
     justify-content: flex-end;
     padding: 0 30px;
   }
 
-  h4{
+  h4 {
     padding: 10px 30px;
-    color: rgba(0,0,0,.87);
-    font-family: 'Open Sans', sans-serif;
+    color: rgba(0, 0, 0, 0.87);
+    font-family: "Open Sans", sans-serif;
   }
 
-  .editor-wrap{
+  .editor-wrap {
     height: calc(100% - 60px);
-    box-shadow: 0 2px 24px 0 rgba(73,93,112,0.3);
     margin: 0 30px;
+    box-shadow: 0 2px 24px 0 rgba(73, 93, 112, 0.3);
   }
 
-  .main-wrapper{
+  .main-wrapper {
     padding: 10px 30px;
-    font-family: 'Open Sans', sans-serif;
+    font-family: "Open Sans", sans-serif;
 
-    .section{
-
-      &-title{
+    .section {
+      &-title {
         font-size: 15px;
       }
 
       &-content {
-
         .list-menu {
+          left: 0;
           width: 100%;
           max-height: 450px;
-          left: 0;
           padding: 10px 0;
           margin: 0;
           overflow-y: auto;
@@ -66,15 +66,15 @@
             margin: 0;
           }
 
-          .list-item{
-            padding: 5px 10px;
+          .list-item {
             display: flex;
+            padding: 5px 10px;
 
-            span{
+            span {
               cursor: pointer;
             }
 
-            .checkbox-wrap{
+            .checkbox-wrap {
               display: flex;
               align-items: center;
               margin-right: 5px;
@@ -86,10 +86,11 @@
     }
   }
 }
-.sub-nav{
+
+.sub-nav {
   justify-content: space-between;
 
-  .label{
+  .label {
     display: flex;
     align-items: center;
     margin-right: 10px;
@@ -100,10 +101,9 @@
     font-family: "Open Sans", sans-serif;
   }
 
-  .butt{
+  .butt {
     margin-left: 10px;
   }
-
 }
 
 .mat-option-disabled {
diff --git a/services/self-service/src/main/resources/webapp/src/app/administration/configuration/configuration.component.ts b/services/self-service/src/main/resources/webapp/src/app/administration/configuration/configuration.component.ts
index 919799f..72157b7 100644
--- a/services/self-service/src/main/resources/webapp/src/app/administration/configuration/configuration.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/administration/configuration/configuration.component.ts
@@ -17,17 +17,18 @@
  * under the License.
  */
 
-import {Component, OnInit, Inject, HostListener, OnDestroy, ViewChild, ElementRef} from '@angular/core';
+import { Component, OnInit, Inject, HostListener, OnDestroy, ViewChild, ElementRef } from '@angular/core';
+import { Router } from '@angular/router';
 import { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
-import {HealthStatusService, AppRoutingService, EndpointService} from '../../core/services';
-import {MatTabChangeEvent} from '@angular/material/tabs';
-import {Router} from '@angular/router';
-import {ConfigurationService} from '../../core/services/configutration.service';
+import { MatTabChangeEvent } from '@angular/material/tabs';
 import 'brace';
 import 'brace/mode/yaml';
-import {ToastrService} from 'ngx-toastr';
-import {Observable, Subject} from 'rxjs';
-import {takeUntil} from 'rxjs/operators';
+import { Observable, Subject } from 'rxjs';
+import { takeUntil } from 'rxjs/operators';
+import { ToastrService } from 'ngx-toastr';
+
+import { HealthStatusService, AppRoutingService, EndpointService } from '../../core/services';
+import { ConfigurationService } from '../../core/services/configutration.service';
 import { EnvironmentsDataService } from '../management/management-data.service';
 import { EnvironmentModel } from '../management/management.model';
 
@@ -42,12 +43,12 @@
   @ViewChild('billingEditor') billingEditor: ElementRef<HTMLElement>;
   private unsubscribe$ = new Subject();
   private healthStatus: any;
-  public activeTab = {index: 0};
+  public activeTab = { index: 0 };
   public activeService: string;
   public services = {
-    'self-service': {label: 'Self-service', selected: false, config: '', serverConfig: '', isConfigChanged: false},
-    'provisioning': {label: 'Provisioning', selected: false, config: '', serverConfig: '', isConfigChanged: false},
-    'billing': {label: 'Billing', selected: false, config: '', serverConfig: '', isConfigChanged: false},
+    'self-service': { label: 'Self-service', selected: false, config: '', serverConfig: '', isConfigChanged: false },
+    'provisioning': { label: 'Provisioning', selected: false, config: '', serverConfig: '', isConfigChanged: false },
+    'billing': { label: 'Billing', selected: false, config: '', serverConfig: '', isConfigChanged: false },
   };
 
   public messagesStatus = {
@@ -55,7 +56,7 @@
     error: [],
     counter: 0
   };
-  
+
   public environmentStatuses = {};
   public environments = [];
   public ingStatuses = ['creating', 'configuring', 'reconfiguring', 'creating image', 'stopping', 'starting', 'terminating'];
@@ -96,25 +97,26 @@
     this.getEnvironmentHealthStatus();
     this.getEndpoints()
       .subscribe(endpoints => {
-      this.endpoints = endpoints;
-      
-      this.endpoints = this.endpoints.map(endpoint => ({name: endpoint.name, status: endpoint.status }));
+        this.endpoints = endpoints;
 
-      this.activeEndpoint = this.endpoints[0].name;
-      this.getServicesConfig(this.activeEndpoint);
-    });
+        this.endpoints = this.endpoints.map(endpoint => ({ name: endpoint.name, status: endpoint.status }));
 
-    this.environmentsDataService.getEnvironmentDataDirect().subscribe((data: any) => {
-      this.environments = EnvironmentModel.loadEnvironments(data);
-      this.environments.map(env => {
-        this.checkResource(env.status, env.endpoint);
-        if(env.resources?.length > 0) {
-          env.resources.map(resource => {
-            this.checkResource(resource.status, env.endpoint);
-          })
-        }
+        this.activeEndpoint = this.endpoints[0].name;
+        this.getServicesConfig(this.activeEndpoint);
       });
-    });
+
+    this.environmentsDataService.getEnvironmentDataDirect()
+      .subscribe((data: any) => {
+        this.environments = EnvironmentModel.loadEnvironments(data);
+        this.environments.map(env => {
+          this.checkResource(env.status, env.endpoint);
+          if (env.resources?.length > 0) {
+            env.resources.map(resource => {
+              this.checkResource(resource.status, env.endpoint);
+            });
+          }
+        });
+      });
   }
 
   ngOnDestroy() {
@@ -123,8 +125,8 @@
   }
 
   public checkResource(resourceStatus: string, endpoint: string) {
-    if( this.ingStatuses.includes(resourceStatus) ) {
-      if(!this.environmentStatuses[endpoint]) {
+    if (this.ingStatuses.includes(resourceStatus)) {
+      if (!this.environmentStatuses[endpoint]) {
         this.environmentStatuses[endpoint] = [];
         this.environmentStatuses[endpoint].push(resourceStatus);
       } else {
@@ -139,10 +141,9 @@
         takeUntil(this.unsubscribe$)
       )
       .subscribe((result: any) => {
-          this.healthStatus = result;
-          !this.healthStatus.admin && !this.healthStatus.projectAdmin && this.appRoutingService.redirectToHomePage();
-          }
-      );
+        this.healthStatus = result;
+        !this.healthStatus.admin && !this.healthStatus.projectAdmin && this.appRoutingService.redirectToHomePage();
+      });
   }
 
   private getEndpoints(): Observable<{}> {
@@ -154,34 +155,34 @@
   }
 
   public action(action: string): void {
-    this.dialog.open(SettingsConfirmationDialogComponent, { data: {
-        action: action, 
+    this.dialog.open(SettingsConfirmationDialogComponent, {
+      data: {
+        action: action,
         message: action === 'discard' ? this.confirmMessages.discardChanges : this.confirmMessages.saveChanges,
         environmentStatuses: this.environmentStatuses,
         activeEndpoint: this.activeEndpoint
-      }, panelClass: 'modal-sm' })
+      }, panelClass: 'modal-sm'
+    })
       .afterClosed().subscribe(result => {
-      if (result && action === 'save') this.setServiceConfig(this.activeService, this.services[this.activeService].config);
-      if (result && action === 'discard') this.services[this.activeService].config = this.services[this.activeService].serverConfig;
-      this.configUpdate(this.activeService);
-    });
+        if (result && action === 'save') this.setServiceConfig(this.activeService, this.services[this.activeService].config);
+        if (result && action === 'discard') this.services[this.activeService].config = this.services[this.activeService].serverConfig;
+        this.configUpdate(this.activeService);
+      });
   }
 
   private getServicesConfig(endpoint): void {
-      this.configurationService.getServiceSettings(endpoint)
-        .pipe(
-          takeUntil(this.unsubscribe$)
-        )
-        .subscribe(config => {
-          for (const service in this.services) {
-            const file = `${service}.yml`;
-            this.services[service].config = config[file];
-            this.services[service].serverConfig = config[file];
-            this.configUpdate(service);
-          }
+    this.configurationService.getServiceSettings(endpoint)
+      .pipe(
+        takeUntil(this.unsubscribe$)
+      )
+      .subscribe(config => {
+        for (const service in this.services) {
+          const file = `${service}.yml`;
+          this.services[service].config = config[file];
+          this.services[service].serverConfig = config[file];
+          this.configUpdate(service);
         }
-      );
-
+      });
     this.clearSelectedServices();
   }
 
@@ -190,16 +191,17 @@
       .pipe(
         takeUntil(this.unsubscribe$)
       )
-      .subscribe(res => {
-      this.getServicesConfig(this.activeEndpoint);
-      this.toastr.success('Service configuration saved!', 'Success!');
-      },
-      error => this.toastr.error( error.message || 'Service configuration is not saved', 'Oops!')
-    );
+      .subscribe(
+        res => {
+          this.getServicesConfig(this.activeEndpoint);
+          this.toastr.success('Service configuration saved!', 'Success!');
+        },
+        error => this.toastr.error(error.message || 'Service configuration is not saved', 'Oops!')
+      );
   }
 
   refreshServiceEditor(editor: ElementRef<HTMLElement>) {
-    if(editor) {
+    if (editor) {
       editor.nativeElement.children[3].scrollTop = 100;
       editor.nativeElement.children[3].scrollTop = 0;
     }
@@ -207,16 +209,16 @@
 
   public tabChanged(tabChangeEvent: MatTabChangeEvent): void {
     this.activeTab = tabChangeEvent;
-    
+
     if (this.activeTab.index === 1 && this.activeEndpoint === 'local') {
       this.activeService = 'self-service';
       this.refreshServiceEditor(this.selfEditor);
-    } else if ((this.activeEndpoint !== 'local' && this.activeTab.index === 1) || 
-            (this.activeTab.index === 2 && this.activeEndpoint === 'local')) {
+    } else if ((this.activeEndpoint !== 'local' && this.activeTab.index === 1) ||
+              (this.activeTab.index === 2 && this.activeEndpoint === 'local')) {
       this.activeService = 'provisioning';
       this.refreshServiceEditor(this.provEditor);
-    } else if ((this.activeEndpoint !== 'local' && this.activeTab.index === 2) || 
-            (this.activeTab.index === 3 && this.activeEndpoint === 'local')) {
+    } else if ((this.activeEndpoint !== 'local' && this.activeTab.index === 2) ||
+              (this.activeTab.index === 3 && this.activeEndpoint === 'local')) {
       this.activeService = 'billing';
       this.refreshServiceEditor(this.billingEditor);
     } else {
@@ -225,18 +227,20 @@
 
     if (!!this.activeService) {
       if (this.services[this.activeService].config !== this.services[this.activeService].serverConfig) {
-        this.dialog.open(SettingsConfirmationDialogComponent, { data: {
+        this.dialog.open(SettingsConfirmationDialogComponent, {
+          data: {
             action: 'Was changed',
             environmentStatuses: this.environmentStatuses,
             activeEndpoint: this.activeEndpoint
-          }, panelClass: 'modal-sm' })
+          }, panelClass: 'modal-sm'
+        })
           .afterClosed().subscribe(result => {
-          if (result) {
-            this.services[this.activeService].serverConfig = this.services[this.activeService].config;
-          } else {
-            this.services[this.activeService].config = this.services[this.activeService].serverConfig;
-          }
-        });
+            if (result) {
+              this.services[this.activeService].serverConfig = this.services[this.activeService].config;
+            } else {
+              this.services[this.activeService].config = this.services[this.activeService].serverConfig;
+            }
+          });
       }
     }
     this.clearSelectedServices();
@@ -271,7 +275,7 @@
       );
   }
 
-  public restartServices(): void  {
+  public restartServices(): void {
     const selectedServices = [];
     for (const service in this.services) {
       if (this.services[service].selected) {
@@ -280,56 +284,56 @@
     }
 
     this.dialog.open(
-      SettingsConfirmationDialogComponent, 
-      { 
+      SettingsConfirmationDialogComponent,
+      {
         data: {
-          action: 'restart', 
+          action: 'restart',
           services: selectedServices,
           environmentStatuses: this.environmentStatuses,
-          activeEndpoint: this.activeEndpoint 
-        }, 
-        panelClass: 'modal-sm' 
+          activeEndpoint: this.activeEndpoint
+        },
+        panelClass: 'modal-sm'
       })
       .afterClosed().subscribe(result => {
         if (result) {
           this.messagesStatus.error = [];
           this.messagesStatus.success = [];
-          
-          if(this.environmentStatuses[this.activeEndpoint] && this.services['provisioning'].selected) {
+
+          if (this.environmentStatuses[this.activeEndpoint] && this.services['provisioning'].selected) {
             this.services['provisioning'].selected = false;
           }
 
-          if(this.services['self-service'].selected) {
+          if (this.services['self-service'].selected) {
             this.messagesStatus.counter += 1;
             this.restartSingleService(true, false, false, 'Self-service')
-          } 
-          if(this.services['provisioning'].selected) {
+          }
+          if (this.services['provisioning'].selected) {
             this.messagesStatus.counter += 1;
             this.restartSingleService(false, true, false, 'Provisioning service')
-          } 
-          if(this.services['billing'].selected) {
+          }
+          if (this.services['billing'].selected) {
             this.messagesStatus.counter += 1;
             this.restartSingleService(false, false, true, 'Billing service')
           }
 
           let timer = setInterval(() => {
-            
-            if(this.messagesStatus.counter === 0) {
-              for(let key in this.messagesStatus) {
-                if(key === 'error' && this.messagesStatus[key].length > 0) {
+
+            if (this.messagesStatus.counter === 0) {
+              for (let key in this.messagesStatus) {
+                if (key === 'error' && this.messagesStatus[key].length > 0) {
                   this.toastr.error(`${this.messagesStatus[key].join(', ')} restarting failed`, 'Oops!');
-                } else if(key === 'success' && this.messagesStatus[key].length > 0) {
+                } else if (key === 'success' && this.messagesStatus[key].length > 0) {
                   this.toastr.success(`${this.messagesStatus[key].join(', ')} restarting started!`, 'Success!');
                 }
               }
               clearInterval(timer);
-            } 
+            }
           }, 200);
           this.clearSelectedServices();
         } else {
           this.clearSelectedServices();
         }
-    });
+      });
   }
 
   public configUpdate(service: string): void {
@@ -412,8 +416,7 @@
   constructor(
     public dialogRef: MatDialogRef<SettingsConfirmationDialogComponent>,
     @Inject(MAT_DIALOG_DATA) public data: any
-  ) {
-  }
+  ) {}
   ngOnInit() {
     this.filterProvisioning = this.data?.services?.filter(service => service !== 'provisioning');
   }
diff --git a/services/self-service/src/main/resources/webapp/src/app/administration/management/backup-dilog/backup-dilog.component.html b/services/self-service/src/main/resources/webapp/src/app/administration/management/backup-dilog/backup-dilog.component.html
index 545c236..3b3c9f7 100644
--- a/services/self-service/src/main/resources/webapp/src/app/administration/management/backup-dilog/backup-dilog.component.html
+++ b/services/self-service/src/main/resources/webapp/src/app/administration/management/backup-dilog/backup-dilog.component.html
@@ -20,7 +20,11 @@
 <div class="backup-dialog" id="dialog-box">
   <header class="dialog-header">
     <h4 class="modal-title">Backup options</h4>
-    <button type="button" class="close" (click)="dialogRef.close()">&times;</button>
+    <button 
+      type="button" 
+      class="close" 
+      (click)="dialogRef.close()"
+    >&times;</button>
   </header>
   <div class="dialog-content">
     <div id="backup-options" class="content-box" *ngIf="backupOptions">
@@ -28,7 +32,8 @@
         <mat-slide-toggle
           labelPosition="before"
           [checked]="backupOptions.configFiles[0] === 'all'"
-          (change)="onHoldChanged($event, 'configFiles')">
+          (change)="onHoldChanged($event, 'configFiles')"
+        >
           <span class="hold-label">Configuration files</span>
         </mat-slide-toggle>
       </div>
@@ -36,7 +41,8 @@
         <mat-slide-toggle
           labelPosition="before"
           [checked]="backupOptions.keys[0] === 'all'"
-          (change)="onHoldChanged($event, 'keys')">
+          (change)="onHoldChanged($event, 'keys')"
+        >
           <span class="hold-label">User keys</span>
         </mat-slide-toggle>
       </div>
@@ -44,7 +50,8 @@
         <mat-slide-toggle
           labelPosition="before"
           [checked]="backupOptions.databaseBackup"
-          (change)="onHoldChanged($event, 'databaseBackup')">
+          (change)="onHoldChanged($event, 'databaseBackup')"
+        >
           <span class="hold-label">Database</span>
         </mat-slide-toggle>
       </div>
@@ -52,7 +59,8 @@
         <mat-slide-toggle
           labelPosition="before"
           [checked]="backupOptions.certificates[0] === 'all'"
-          (change)="onHoldChanged($event, 'certificates')">
+          (change)="onHoldChanged($event, 'certificates')"
+        >
           <span class="hold-label">SSL Certificates</span>
         </mat-slide-toggle>
       </div>
@@ -60,7 +68,8 @@
         <mat-slide-toggle
           labelPosition="before"
           [checked]="backupOptions.jars[0] === 'all'"
-          (change)="onHoldChanged($event, 'jars')">
+          (change)="onHoldChanged($event, 'jars')"
+        >
           <span class="hold-label">JAR files</span>
         </mat-slide-toggle>
       </div>
@@ -68,15 +77,29 @@
         <mat-slide-toggle
           labelPosition="before"
           [checked]="backupOptions.logsBackup"
-          (change)="onHoldChanged($event, 'logsBackup')">
+          (change)="onHoldChanged($event, 'logsBackup')"
+        >
           <span class="hold-label">Log files</span>
         </mat-slide-toggle>
       </div>
       <div class="text-center m-top-30 m-bott-10">
-        <button mat-raised-button type="button" class="butt" (click)="dialogRef.close(); backupOptions.setDegault()">
+        <button 
+          mat-raised-button 
+          type="button" 
+          class="butt" 
+          (click)="dialogRef.close(); backupOptions.setDegault()"
+        >
           Cancel
         </button>
-        <button mat-raised-button type="button" (click)="applyOptions()" class="butt butt-success" [disabled]="!valid">Apply</button>
+        <button 
+          mat-raised-button 
+          type="button" 
+          class="butt butt-success" 
+          (click)="applyOptions()" 
+          [disabled]="!valid"
+        >
+          Apply
+        </button>
       </div>
     </div>
   </div>
diff --git a/services/self-service/src/main/resources/webapp/src/app/administration/management/backup-dilog/backup-dilog.component.ts b/services/self-service/src/main/resources/webapp/src/app/administration/management/backup-dilog/backup-dilog.component.ts
index fd7b4bd..3ee9f7d 100644
--- a/services/self-service/src/main/resources/webapp/src/app/administration/management/backup-dilog/backup-dilog.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/administration/management/backup-dilog/backup-dilog.component.ts
@@ -18,10 +18,10 @@
  */
 
 import { Component, OnInit, Output, EventEmitter, Inject } from '@angular/core';
-import { DICTIONARY } from '../../../../dictionary/global.dictionary';
 import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
 import { ToastrService } from 'ngx-toastr';
 
+import { DICTIONARY } from '../../../../dictionary/global.dictionary';
 import { BackupOptionsModel } from '../management.model';
 import { BackupService } from '../../../core/services';
 
@@ -54,18 +54,20 @@
     this.backupOptions[key] instanceof Array
       ? (this.backupOptions[key][0] = $event.checked ? 'all' : 'skip')
       : (this.backupOptions[key] = !this.backupOptions[key]);
-
     this.checkValidity();
   }
 
   public applyOptions(): void {
-    this.backupService.createBackup(this.backupOptions).subscribe(result => {
-      this.getBackupStatus(result);
-      this.toastr.success('Backup configuration is processing!', 'Processing!');
-      this.clear = window.setInterval(() => this.getBackupStatus(result), 3000);
-      this.dialogRef.close(this.backupOptions);
-    },
-      error => this.toastr.error(error.message, 'Oops!'));
+    this.backupService.createBackup(this.backupOptions)
+      .subscribe(
+        result => {
+          this.getBackupStatus(result);
+          this.toastr.success('Backup configuration is processing!', 'Processing!');
+          this.clear = window.setInterval(() => this.getBackupStatus(result), 3000);
+          this.dialogRef.close(this.backupOptions);
+        },
+        error => this.toastr.error(error.message, 'Oops!')
+      );
   }
 
   private checkValidity(): void {
@@ -85,17 +87,20 @@
   private getBackupStatus(result) {
     const uuid = result.body;
     this.backupService.getBackupStatus(uuid)
-      .subscribe((backupStatus: any) => {
-        if (!this.creatingBackup) {
-          backupStatus.status === 'FAILED'
-            ? this.toastr.error('Backup configuration failed!', 'Oops!')
-            : this.toastr.success('Backup configuration completed!', 'Success!');
+      .subscribe(
+        (backupStatus: any) => {
+          if (!this.creatingBackup) {
+            backupStatus.status === 'FAILED'
+              ? this.toastr.error('Backup configuration failed!', 'Oops!')
+              : this.toastr.success('Backup configuration completed!', 'Success!');
+            clearInterval(this.clear);
+          }
+        }, 
+        () => {
           clearInterval(this.clear);
+          this.toastr.error('Backup configuration failed!', 'Oops!');
         }
-      }, () => {
-        clearInterval(this.clear);
-        this.toastr.error('Backup configuration failed!', 'Oops!');
-      });
+      );
   }
 
   get creatingBackup(): boolean {
diff --git a/services/self-service/src/main/resources/webapp/src/app/administration/management/endpoints/endpoints.component.html b/services/self-service/src/main/resources/webapp/src/app/administration/management/endpoints/endpoints.component.html
index 2181f9b..f198e53 100644
--- a/services/self-service/src/main/resources/webapp/src/app/administration/management/endpoints/endpoints.component.html
+++ b/services/self-service/src/main/resources/webapp/src/app/administration/management/endpoints/endpoints.component.html
@@ -21,7 +21,11 @@
 <div class="endpoints-dialog" id="dialog-box">
   <header class="dialog-header">
     <h4 class="modal-title">Connect endpoint</h4>
-    <button type="button" class="close" (click)="dialogRef.close()">&times;</button>
+    <button 
+      type="button" 
+      class="close" 
+      (click)="dialogRef.close()"
+    >&times;</button>
   </header>
   <div class="dialog-content tabs">
     <div class="content-box">
@@ -32,24 +36,33 @@
               <div class="control-group">
                 <label class="label">Name</label>
                 <div class="control">
-                  <input type="text" formControlName="name" placeholder="Enter endpoint name"
-                    (blur)="generateEndpointTag($event)">
-                  <span class="error"
+                  <input 
+                    type="text" 
+                    formControlName="name" 
+                    placeholder="Enter endpoint name"
+                    (blur)="generateEndpointTag($event)"
+                  />
+                  <span 
+                    class="error"
                     *ngIf="!createEndpointForm?.controls.name.valid
-                    && createEndpointForm?.controls.name.touched
-                    && !createEndpointForm?.controls['name'].hasError('isDuplicate')
-                    && !createEndpointForm?.controls['name'].hasError('limit')"
+                        && createEndpointForm?.controls.name.touched
+                        && !createEndpointForm?.controls['name'].hasError('isDuplicate')
+                        && !createEndpointForm?.controls['name'].hasError('limit')"
                   >
                     Endpoint name can only contain letters, numbers, hyphens and '_' but can not end with special
                     characters.
                   </span>
-                  <span class="error"
-                        *ngIf="createEndpointForm?.controls['name'].hasError('isDuplicate')">
+                  <span 
+                    class="error"
+                    *ngIf="createEndpointForm?.controls['name'].hasError('isDuplicate')"
+                  >
                     This endpoint name already exists.
                   </span>
-                  <span class="error"
-                        *ngIf="createEndpointForm?.controls['name'].hasError('limit')">
-                     Endpoint name cannot be longer than {{ maxEndpointNameLength }} characters.
+                  <span 
+                    class="error"
+                    *ngIf="createEndpointForm?.controls['name'].hasError('limit')"
+                  >
+                    Endpoint name cannot be longer than {{ maxEndpointNameLength }} characters.
                   </span>
                 </div>
               </div>
@@ -58,8 +71,12 @@
                 <div class="control">
                   <input type="text" formControlName="url" placeholder="Enter endpoint url">
                   <span class="error" *ngIf="createEndpointForm?.controls['url'].hasError('isDuplicate')">This endpoint url already exists.</span>
-                  <span class="error"
-                        *ngIf="!createEndpointForm?.controls.url.valid && createEndpointForm.controls.url.touched && !createEndpointForm?.controls['url'].hasError('isDuplicate')">
+                  <span 
+                    class="error"
+                    *ngIf="!createEndpointForm?.controls.url.valid 
+                        && createEndpointForm.controls.url.touched 
+                        && !createEndpointForm?.controls['url'].hasError('isDuplicate')"
+                  >
                     Please provide a valid endpoint url with slash in the end.
                   </span>
                 </div>
@@ -68,8 +85,10 @@
                 <label class="label">Account</label>
                 <div class="control">
                   <input type="text" formControlName="account" placeholder="Enter account">
-                  <span class="error"
-                    *ngIf="!createEndpointForm?.controls.account.valid && createEndpointForm.controls.account.touched">
+                  <span 
+                    class="error"
+                    *ngIf="!createEndpointForm?.controls.account.valid && createEndpointForm.controls.account.touched"
+                  >
                     Endpoint account can only contain letters, numbers, hyphens and '_' but can not end with special
                     characters.
                   </span>
@@ -78,10 +97,18 @@
               <div class="control-group">
                 <label class="label">Endpoint tag</label>
                 <div class="control">
-                  <input readonly type="text" formControlName="endpoint_tag" placeholder="< equal to endpoint name >"
-                    class="not-allowed">
-                  <span class="error"
-                    *ngIf="!createEndpointForm?.controls.endpoint_tag.valid && createEndpointForm.controls.endpoint_tag.touched">
+                  <input 
+                    readonly 
+                    type="text" 
+                    formControlName="endpoint_tag" 
+                    placeholder="< equal to endpoint name >"
+                    class="not-allowed"
+                  />
+                  <span 
+                    class="error"
+                    *ngIf="!createEndpointForm?.controls.endpoint_tag.valid 
+                        && createEndpointForm.controls.endpoint_tag.touched"
+                  >
                     Endpoint tag can only contain letters, numbers, hyphens and '_' but can not end with special
                     characters.
                   </span>
@@ -89,25 +116,45 @@
               </div>
             </form>
             <div class="action-group m-bott-10">
-              <button mat-raised-button
-                      type="button"
-                      [disabled]="!this.createEndpointForm.value.url || !createEndpointForm.valid"
-                      class="butt action"
-                      (click)="getEndpoinConnectionStatus(createEndpointForm.value.url)"
+              <button 
+                mat-raised-button
+                type="button"
+                [disabled]="!this.createEndpointForm.value.url || !createEndpointForm.valid"
+                class="butt action"
+                (click)="getEndpoinConnectionStatus(createEndpointForm.value.url)"
               >
                 Test
               </button>
               <div class="action-butt">
-                <button mat-raised-button type="button" class="butt action" (click)="dialogRef.close()">Cancel</button>
-                <button mat-raised-button type="button" [disabled]="!createEndpointForm.valid"
-                  (click)="assignChanges(createEndpointForm.value)" class="butt butt-success action">Connect</button>
+                <button 
+                  mat-raised-button 
+                  type="button" 
+                  class="butt action" 
+                  (click)="dialogRef.close()"
+                >
+                  Cancel
+                </button>
+                <button 
+                  mat-raised-button 
+                  type="button" 
+                  [disabled]="!createEndpointForm.valid"
+                  (click)="assignChanges(createEndpointForm.value)" 
+                  class="butt butt-success action"
+                >
+                  Connect
+                </button>
               </div>
             </div>
           </div>
         </mat-tab>
         <mat-tab label="ENDPOINTS LIST">
           <div class="endpoints scrolling">
-            <table mat-table [dataSource]="endpoints" class="endpoints-table" *ngIf="endpoints?.length; else empty">
+            <table 
+              mat-table 
+              [dataSource]="endpoints" 
+              class="endpoints-table" 
+              *ngIf="endpoints?.length; else empty"
+            >
               <ng-container matColumnDef="name">
                 <th mat-header-cell *matHeaderCellDef class="name"> Endpoint name </th>
                 <td mat-cell *matCellDef="let element"> {{element.name}} </td>
@@ -115,9 +162,7 @@
 
               <ng-container matColumnDef="url">
                 <th mat-header-cell *matHeaderCellDef class="url"> Url </th>
-                <td mat-cell
-                    *matCellDef="let element"
-                >
+                <td mat-cell *matCellDef="let element">
                   <span matTooltip="{{element.url}}" matTooltipPosition="above">{{element.url}}</span>
                 </td>
               </ng-container>
@@ -135,10 +180,18 @@
               <ng-container matColumnDef="actions">
                 <th mat-header-cell *matHeaderCellDef class="actions"></th>
                 <td mat-cell *matCellDef="let element" class="actions">
-                  <span (click)="getEndpoinConnectionStatus(element.url)" matTooltip="Test" matTooltipPosition="above">
+                  <span 
+                    matTooltip="Test" 
+                    matTooltipPosition="above"
+                    (click)="getEndpoinConnectionStatus(element.url)" 
+                  >
                     <mat-icon>compare_arrows</mat-icon>
                   </span>
-                  <span (click)="deleteEndpoint(element)" matTooltip="Disconnect" matTooltipPosition="above">
+                  <span 
+                    matTooltip="Disconnect" 
+                    matTooltipPosition="above"
+                    (click)="deleteEndpoint(element)" 
+                  >
                     <mat-icon>delete_forever</mat-icon>
                   </span>
                 </td>
@@ -152,7 +205,6 @@
               <div class="info empty-box">
                 <div class="content">
                   <p>Looks like you don't have any endpoints</p>
-
                   <button mat-raised-button class="butt" (click)="tabGroup.selectedIndex = 0">
                     <i class="material-icons">settings_system_daydream</i>New endpoint
                   </button>
diff --git a/services/self-service/src/main/resources/webapp/src/app/administration/management/endpoints/endpoints.component.scss b/services/self-service/src/main/resources/webapp/src/app/administration/management/endpoints/endpoints.component.scss
index 53eaaf6..520faf7 100644
--- a/services/self-service/src/main/resources/webapp/src/app/administration/management/endpoints/endpoints.component.scss
+++ b/services/self-service/src/main/resources/webapp/src/app/administration/management/endpoints/endpoints.component.scss
@@ -18,8 +18,8 @@
  */
 .endpoints-dialog {
   .content-box {
-    padding: 10px 30px 30px;
     height: 400px;
+    padding: 10px 30px 30px;
 
     .split {
       display: flex;
@@ -35,9 +35,9 @@
             position: absolute;
             right: 0;
             bottom: 5px;
-            font-family: 'Open Sans', sans-serif;
-            font-weight: 300;
             top: 34px;
+            font-family: "Open Sans", sans-serif;
+            font-weight: 300;
           }
         }
       }
@@ -56,37 +56,37 @@
 
       table.mat-table {
         width: 100%;
-        thead{
+        thead {
           background: transparent;
-          .mat-header-row{
-            background-clip:padding-box;
+          .mat-header-row {
+            background-clip: padding-box;
           }
         }
         tr {
           td {
-            vertical-align: middle;
             max-width: 150px;
+            vertical-align: middle;
             overflow: hidden;
             text-overflow: ellipsis;
-            &::after{
-              content: '';
+            &::after {
+              content: "";
               display: block;
             }
           }
         }
 
         .actions {
+          width: 14%;
           color: #607d8b;
           text-align: center;
-          width: 14%;
 
           span {
-            transition: all .5s ease-in-out;
+            transition: all 0.5s ease-in-out;
             cursor: pointer;
 
             .mat-icon {
-              font-size: 18px;
               padding-top: 5px;
+              font-size: 18px;
             }
 
             &:hover {
diff --git a/services/self-service/src/main/resources/webapp/src/app/administration/management/endpoints/endpoints.component.ts b/services/self-service/src/main/resources/webapp/src/app/administration/management/endpoints/endpoints.component.ts
index 5f13786..0dfffeb 100644
--- a/services/self-service/src/main/resources/webapp/src/app/administration/management/endpoints/endpoints.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/administration/management/endpoints/endpoints.component.ts
@@ -21,11 +21,11 @@
 import { FormGroup, FormBuilder, Validators } from '@angular/forms';
 import { MatDialogRef, MAT_DIALOG_DATA, MatDialog } from '@angular/material/dialog';
 import { ToastrService } from 'ngx-toastr';
+import { map } from 'rxjs/operators';
 
 import { EndpointService } from '../../../core/services';
 import { NotificationDialogComponent } from '../../../shared/modal-dialog/notification-dialog';
 import { PATTERNS } from '../../../core/util';
-import { map } from 'rxjs/operators';
 
 export interface Endpoint {
   name: string;
@@ -71,51 +71,75 @@
 
   public deleteEndpoint(data): void {
     this.endpointService.getEndpointsResource(data.name)
-      .pipe(map(resource =>
-        resource.projects.map(project =>
-          EndpointsComponent.createResourceList(
-            project.name,
-            resource.exploratories.filter(notebook => notebook.project === project.name),
-            project.endpoints.filter(endpoint => endpoint.name === data.name)[0].status))
-          .filter(project => project.nodeStatus !== 'TERMINATED'
-            && project.nodeStatus !== 'TERMINATING'
-            && project.nodeStatus !== 'FAILED'
-          )))
+      .pipe(
+        map(resource =>
+          resource.projects
+            .map(project =>
+              EndpointsComponent.createResourceList(
+                project.name,
+                resource.exploratories.filter(notebook => notebook.project === project.name),
+                project.endpoints.filter(endpoint => endpoint.name === data.name)[0].status)
+            )
+            .filter(project => project.nodeStatus !== 'TERMINATED'
+              && project.nodeStatus !== 'TERMINATING'
+              && project.nodeStatus !== 'FAILED'
+            )
+        )
+      )
       .subscribe((resource: any) => {
-         this.dialog.open(NotificationDialogComponent, { data: {
-           type: 'confirmation', item: data, list:  resource
-           }, panelClass: 'modal-sm' })
-         .afterClosed().subscribe(result => {
-         result && this.deleteEndpointOption(data);
-       });
-    });
+        this.dialog.open(NotificationDialogComponent, {
+          data: {
+            type: 'confirmation', item: data, list: resource
+          }, panelClass: 'modal-sm'
+        })
+          .afterClosed().subscribe(result => {
+            result && this.deleteEndpointOption(data);
+          });
+      });
   }
 
   public getEndpoinConnectionStatus(url) {
     const getStatus = this.endpointService.getEndpoinConnectionStatus(encodeURIComponent(url));
-    this.dialog.open(EndpointTestResultDialogComponent, { data: {url: url, getStatus}, panelClass: 'modal-sm' });
+    this.dialog.open(EndpointTestResultDialogComponent, { data: { url: url, getStatus }, panelClass: 'modal-sm' });
   }
 
   private static createResourceList(name: string, resource: Array<any>, nodeStatus: string): Object {
-    return {name, resource, nodeStatus};
+    return { name, resource, nodeStatus };
   }
 
   private initFormModel(): void {
     this.createEndpointForm = this._fb.group({
       name: ['', Validators.compose([
-        Validators.required, Validators.pattern(PATTERNS.namePattern), this.validateName.bind(this), this.providerMaxLength.bind(this)
+        Validators.required, 
+        Validators.pattern(PATTERNS.namePattern), 
+        this.validateName.bind(this), 
+        this.providerMaxLength.bind(this)
       ])],
-      url: ['', Validators.compose([Validators.required, Validators.pattern(PATTERNS.fullUrl), this.validateUrl.bind(this)])],
-      account: ['', Validators.compose([Validators.required, Validators.pattern(PATTERNS.namePattern)])],
-      endpoint_tag: ['', Validators.compose([Validators.required, Validators.pattern(PATTERNS.namePattern)])]
+      url: ['', Validators.compose([
+        Validators.required, 
+        Validators.pattern(PATTERNS.fullUrl), 
+        this.validateUrl.bind(this)
+      ])],
+      account: ['', Validators.compose([
+        Validators.required, 
+        Validators.pattern(PATTERNS.namePattern)
+      ])],
+      endpoint_tag: ['', Validators.compose([
+        Validators.required, 
+        Validators.pattern(PATTERNS.namePattern)
+      ])]
     });
   }
 
   private deleteEndpointOption(data): void {
-    this.endpointService.deleteEndpoint(`${data.name}`).subscribe(() => {
-      this.toastr.success( 'Endpoint successfully disconnected. All related resources are terminating!', 'Success!');
-      this.getEndpointList();
-    }, error => this.toastr.error(error.message || 'Endpoint creation failed!', 'Oops!'));
+    this.endpointService.deleteEndpoint(`${data.name}`)
+      .subscribe(
+        () => {
+          this.toastr.success('Endpoint successfully disconnected. All related resources are terminating!', 'Success!');
+          this.getEndpointList();
+        }, 
+        error => this.toastr.error(error.message || 'Endpoint creation failed!', 'Oops!')
+      );
   }
 
   private getEndpointList(): void {
@@ -218,19 +242,20 @@
     public dialogRef: MatDialogRef<EndpointTestResultDialogComponent>,
     @Inject(MAT_DIALOG_DATA) public data: any
   ) {
-    this.data.getStatus.subscribe(() => {
-        this.isConnected = true;
-        this.response = true;
-        return;
-      },
-      () => {
-        this.isConnected = false;
-        this.response = true;
-        return;
-      });
+    this.data.getStatus
+      .subscribe(
+        () => {
+          this.isConnected = true;
+          this.response = true;
+          return;
+        },
+        () => {
+          this.isConnected = false;
+          this.response = true;
+          return;
+        });
   }
   public cutToLongUrl(url) {
     return url.length > 25 ? url.slice(0, 25) + '...' : url;
   }
-
 }
diff --git a/services/self-service/src/main/resources/webapp/src/app/administration/management/manage-environment/manage-environment-dilog.component.html b/services/self-service/src/main/resources/webapp/src/app/administration/management/manage-environment/manage-environment-dilog.component.html
index 8c879af..6e2b288 100644
--- a/services/self-service/src/main/resources/webapp/src/app/administration/management/manage-environment/manage-environment-dilog.component.html
+++ b/services/self-service/src/main/resources/webapp/src/app/administration/management/manage-environment/manage-environment-dilog.component.html
@@ -25,7 +25,11 @@
   <div class="dialog-content">
     <div class="content-box">
       <div *ngIf="data.projectsList?.length">
-        <form [formGroup]="manageUsersForm" (submit)="setBudgetLimits(manageUsersForm.value)" novalidate>
+        <form 
+          [formGroup]="manageUsersForm" 
+          (submit)="setBudgetLimits(manageUsersForm.value)" 
+          novalidate
+        >
           <mat-list>
             <mat-list-item class="list-header">
               <div class="username">Project</div>
@@ -33,54 +37,93 @@
               <div class="quotes">Limit</div>
             </mat-list-item>
             <div class="scrolling-content" id="scrolling" formArrayName="projects">
-              <mat-list-item *ngFor="let item of usersEnvironments.controls; let i=index" [formGroupName]="i"
-                class="list-item">
+              <mat-list-item 
+                *ngFor="let item of usersEnvironments.controls; let i=index" 
+                [formGroupName]="i"
+                class="list-item"
+              >
                 <div class="username ellipsis">
-                  <span class="ellipsis"
-                  matTooltip="{{ manageUsersForm.controls['projects']['controls'][i].value['project'] }}"
-                  matTooltipPosition="above">{{ manageUsersForm.controls['projects']['controls'][i].value['project'] }}
-                    </span>
+                  <span 
+                    class="ellipsis"
+                    matTooltip="{{ manageUsersForm.controls['projects']['controls'][i].value['project'] }}"
+                    matTooltipPosition="above"
+                  >
+                    {{ manageUsersForm.controls['projects']['controls'][i].value['project'] }}
+                  </span>
                 </div>
                 <div class="period">
-                  <mat-slide-toggle formControlName="monthlyBudget">
-                  </mat-slide-toggle>
+                  <mat-slide-toggle formControlName="monthlyBudget"></mat-slide-toggle>
                 </div>
                 <div class="quotes">
-                  <input type="number" (keypress)="CheckUtils.numberOnly($event)" min="0"
-                    placeholder="Enter limit, in USD" formControlName="budget">
-                  <span class="error"
-                    *ngIf="manageUsersForm?.controls['projects']['controls'][i].controls['budget'].hasError('overrun') &&
-                     !manageUsersForm?.controls['projects']['controls'][i].controls['budget'].hasError('max')"
+                  <input 
+                    type="number" 
+                    (keypress)="CheckUtils.numberOnly($event)" 
+                    min="0"
+                    placeholder="Enter limit, in USD" formControlName="budget" 
+                  />
+                  <span 
+                    class="error"
+                    *ngIf="manageUsersForm?.controls['projects']['controls'][i].controls['budget'].hasError('overrun') 
+                        && !manageUsersForm?.controls['projects']['controls'][i].controls['budget'].hasError('max')"
                   >
                     Projects budget cannot be higher than total budget.
                   </span>
-                  <span class="error"
-                        *ngIf="manageUsersForm?.controls['projects']['controls'][i].controls['budget'].hasError('max')">Project budget cannot be higher than 1000000000.</span>
+                  <span 
+                    class="error"
+                    *ngIf="manageUsersForm?.controls['projects']['controls'][i].controls['budget'].hasError('max')"
+                  >
+                    Project budget cannot be higher than 1000000000.
+                  </span>
                 </div>
               </mat-list-item>
             </div>
             <div class="control-group total-budget">
-
               <mat-list-item class="list-item">
                 <div class="username ellipsis">
                   <span class="ellipsis">Total budget</span>
                 </div>
-                <div class="period">
-                </div>
+                <div class="period"></div>
                 <div class="quotes">
-                  <input type="number" (keypress)="CheckUtils.numberOnly($event)" formControlName="total"
-                         placeholder="Enter total budget, in USD">
-                  <span class="error" *ngIf="manageUsersForm?.controls['total'].hasError('overrun')
-                  && !manageUsersForm?.controls['total'].hasError('max')">Total budget cannot be lower than a sum of project quotes.</span>
-                  <span class="error"
-                        *ngIf="manageUsersForm?.controls['total'].hasError('max')">Total budget cannot be higher than 1000000000.</span>
+                  <input 
+                    type="number" 
+                    (keypress)="CheckUtils.numberOnly($event)" 
+                    formControlName="total"
+                    placeholder="Enter total budget, in USD" 
+                  />
+                  <span 
+                    class="error" 
+                    *ngIf="manageUsersForm?.controls['total'].hasError('overrun')
+                        && !manageUsersForm?.controls['total'].hasError('max')"
+                  >
+                    Total budget cannot be lower than a sum of project quotes.
+                  </span>
+                  <span 
+                    class="error"
+                    *ngIf="manageUsersForm?.controls['total'].hasError('max')"
+                  >
+                    Total budget cannot be higher than 1000000000.
+                  </span>
                 </div>
               </mat-list-item>
             </div>
             <div class="text-center m-top-30">
-              <button mat-raised-button type="button" (click)="dialogRef.close()" class="butt action">Cancel</button>
-              <button mat-raised-button type="submit" [disabled]="!manageUsersForm.valid || isFormChanged" class="butt butt-success"
-                [ngClass]="{'not-allowed': !manageUsersForm.valid}">Apply</button>
+              <button 
+                mat-raised-button 
+                type="button" 
+                (click)="dialogRef.close()" 
+                class="butt action"
+              >
+                Cancel
+              </button>
+              <button 
+                mat-raised-button 
+                type="submit" 
+                [disabled]="!manageUsersForm.valid || isFormChanged" 
+                class="butt butt-success"
+                [ngClass]="{'not-allowed': !manageUsersForm.valid}"
+              >
+                Apply
+              </button>
             </div>
           </mat-list>
         </form>
diff --git a/services/self-service/src/main/resources/webapp/src/app/administration/management/manage-environment/manage-environment-dilog.component.scss b/services/self-service/src/main/resources/webapp/src/app/administration/management/manage-environment/manage-environment-dilog.component.scss
index 1cea435..d04b101 100644
--- a/services/self-service/src/main/resources/webapp/src/app/administration/management/manage-environment/manage-environment-dilog.component.scss
+++ b/services/self-service/src/main/resources/webapp/src/app/administration/management/manage-environment/manage-environment-dilog.component.scss
@@ -20,9 +20,9 @@
 .manage-env-dialog {
   .mat-list {
     .mat-list-item {
+      position: relative;
       height: 63px;
       margin: 5px 0;
-      position: relative;
 
       .mat-list-item-content {
         padding: 0 !important;
@@ -43,20 +43,20 @@
   }
 
   .quotes {
+    position: relative;
     width: 45%;
     margin-right: 10px;
-    position: relative;
 
     .error {
       position: absolute;
       left: 0;
       top: 37px;
-      font-family: 'Open Sans', sans-serif;
+      font-family: "Open Sans", sans-serif;
       font-size: 11px;
     }
   }
 
-  .period{
+  .period {
     width: 25%;
   }
 
diff --git a/services/self-service/src/main/resources/webapp/src/app/administration/management/manage-environment/manage-environment-dilog.component.ts b/services/self-service/src/main/resources/webapp/src/app/administration/management/manage-environment/manage-environment-dilog.component.ts
index 6fd04c9..2c154ef 100644
--- a/services/self-service/src/main/resources/webapp/src/app/administration/management/manage-environment/manage-environment-dilog.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/administration/management/manage-environment/manage-environment-dilog.component.ts
@@ -20,6 +20,7 @@
 import { Component, Output, EventEmitter, ViewEncapsulation, Inject, OnInit } from '@angular/core';
 import { Validators, FormBuilder, FormGroup, FormArray } from '@angular/forms';
 import { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
+
 import { DICTIONARY } from '../../../../dictionary/global.dictionary';
 import { CheckUtils } from '../../../core/util';
 
@@ -63,12 +64,12 @@
       if (this.getCurrentTotalValue()) {
         if (this.getCurrentTotalValue() >= this.getCurrentUsersTotal()) {
           this.manageUsersForm.controls['total'].setErrors(null);
-          if (this.manageUsersForm.controls['total'].value > 1000000000) this.manageUsersForm.controls['total'].setErrors({max: true});
+          if (this.manageUsersForm.controls['total'].value > 1000000000) this.manageUsersForm.controls['total'].setErrors({ max: true });
           this.manageUsersForm.controls['projects']['controls'].forEach(v => {
-              v.controls['budget'].errors &&
-              'max' in v.controls['budget'].errors ? null : v.controls['budget'].setErrors(null);
-            }
-          );
+            v.controls['budget'].errors && 'max' in v.controls['budget'].errors 
+              ? null 
+              : v.controls['budget'].setErrors(null);
+          });
         } else {
           this.manageUsersForm.controls['total'].setErrors({ overrun: true });
         }
@@ -85,8 +86,8 @@
       value.projects = value.projects.filter((v, i) =>
         this.initialFormState.projects[i].budget !== v.budget ||
         this.initialFormState.projects[i].monthlyBudget !== v.monthlyBudget);
-        value.isTotalChanged = this.initialFormState.total !== value.total;
-        this.dialogRef.close(value);
+      value.isTotalChanged = this.initialFormState.total !== value.total;
+      this.dialogRef.close(value);
     } else {
       this.manageUsersForm.controls['total'].setErrors({ overrun: true });
     }
@@ -94,16 +95,19 @@
 
   public setProjectsControl() {
     this.manageUsersForm.setControl('projects',
-      this._fb.array((this.data.projectsList || []).map((x: any, index: number) => this._fb.group({
-        project: x.name,
-        budget: [x.budget.value, [ Validators.max(1000000000), this.userValidityCheck.bind(this)]],
-        monthlyBudget: x.budget.monthlyBudget,
-      }))));
+      this._fb.array((this.data.projectsList || [])
+        .map((x: any, index: number) => this._fb.group({
+          project: x.name,
+          budget: [x.budget.value, [Validators.max(1000000000), this.userValidityCheck.bind(this)]],
+          monthlyBudget: x.budget.monthlyBudget,
+        }))
+      )
+    );
   }
 
   private initForm(): void {
     this.manageUsersForm = this._fb.group({
-      total: [null, [Validators.min(0), this.totalValidityCheck.bind(this),  Validators.max(1000000000) ]],
+      total: [null, [Validators.min(0), this.totalValidityCheck.bind(this), Validators.max(1000000000)]],
       projects: this._fb.array([this._fb.group({ project: '', budget: null, status: '' })])
     });
   }
@@ -124,7 +128,9 @@
 
   private userValidityCheck(control) {
     if (control && control.value) {
-      if (control.parent)this.manageUsersForm.value.projects.find(v => v.project === control.parent.value.project).budget = control.value;
+      if (control.parent) {
+        this.manageUsersForm.value.projects.find(v => v.project === control.parent.value.project).budget = control.value;
+      }
       return (this.getCurrentTotalValue() && this.getCurrentTotalValue() < this.getCurrentUsersTotal()) ? { overrun: true } : null;
     }
   }
diff --git a/services/self-service/src/main/resources/webapp/src/app/administration/management/management-data.service.ts b/services/self-service/src/main/resources/webapp/src/app/administration/management/management-data.service.ts
index a3aa218..5779249 100644
--- a/services/self-service/src/main/resources/webapp/src/app/administration/management/management-data.service.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/administration/management/management-data.service.ts
@@ -40,7 +40,9 @@
   }
 
   private getAllEnvironmentData() {
-    this.manageEnvironmentsService.getAllEnvironmentData().subscribe(
-      (response) => this._data.next(response));
+    this.manageEnvironmentsService.getAllEnvironmentData()
+      .subscribe(
+        (response) => this._data.next(response)
+      );
   }
 }
\ No newline at end of file
diff --git a/services/self-service/src/main/resources/webapp/src/app/administration/management/management-grid/management-grid.component.html b/services/self-service/src/main/resources/webapp/src/app/administration/management/management-grid/management-grid.component.html
index 8686e4b..54d9b2c 100644
--- a/services/self-service/src/main/resources/webapp/src/app/administration/management/management-grid/management-grid.component.html
+++ b/services/self-service/src/main/resources/webapp/src/app/administration/management/management-grid/management-grid.component.html
@@ -27,22 +27,25 @@
             *ngIf="allActiveNotebooks?.length"
             [checked]="selected?.length === allActiveNotebooks?.length"
             (toggleSelection)="toggleSelectionAll()"
-          >
-          </datalab-checkbox>
+          ></datalab-checkbox>
           <button mat-icon-button aria-label="More" class="ar checkbox-border" (click)="toggleFilterRow()">
             <i class="material-icons">
-  <!--            <span *ngIf="filtering && filterForm.users.length > 0 && !collapsedFilterRow">filter_list</span>-->
+              <!-- <span *ngIf="filtering && filterForm.users.length > 0 && !collapsedFilterRow">filter_list</span> -->
               <span>more_vert</span>
             </i>
           </button>
         </th>
         <td mat-cell *matCellDef="let element">
-          <ng-template [ngIf]="element.type !== 'odahu' && element.type !== 'edge node' && (element.status==='running' || element.status==='stopped') && !clustersInProgress(element.resources)">
+          <ng-template 
+            [ngIf]="element.type !== 'odahu' 
+                  && element.type !== 'edge node' 
+                  && (element.status==='running' || element.status==='stopped') 
+                  && !clustersInProgress(element.resources)"
+          >
             <datalab-checkbox
               [checked]="element.isSelected"
               (toggleSelection)="toggleActionForAll(element)"
-            >
-            </datalab-checkbox>
+            ></datalab-checkbox>
           </ng-template>
         </td>
       </ng-container>
@@ -50,12 +53,18 @@
       <ng-container matColumnDef="user">
         <th mat-header-cell *matHeaderCellDef class="user label-header">
           <span class="label">User</span>
-          <button mat-icon-button aria-label="More" class="ar" (click)="toggleFilterRow()">
+          <button 
+            mat-icon-button 
+            aria-label="More" 
+            class="ar" 
+            (click)="toggleFilterRow()"
+          >
             <i class="material-icons">
               <span *ngIf="filtering && filterForm.users.length > 0 && !collapsedFilterRow">filter_list</span>
               <span [hidden]="filtering && filterForm.users.length > 0 && !collapsedFilterRow">more_vert</span>
             </i>
-          </button> </th>
+          </button>
+        </th>
         <td
           mat-cell *matCellDef="let element"
           class="user-name ellipsis"
@@ -70,36 +79,54 @@
       <ng-container matColumnDef="project">
         <th mat-header-cell *matHeaderCellDef class="project label-header">
           <span class="label">Project</span>
-          <button mat-icon-button aria-label="More" class="ar" (click)="toggleFilterRow()">
+          <button 
+            mat-icon-button 
+            aria-label="More" 
+            class="ar" 
+            (click)="toggleFilterRow()"
+          >
             <i class="material-icons">
               <span *ngIf="filtering && filterForm.projects.length > 0 && !collapsedFilterRow">filter_list</span>
               <span [hidden]="filtering && filterForm.projects.length > 0 && !collapsedFilterRow">more_vert</span>
             </i>
-          </button> </th>
+          </button> 
+        </th>
         <td mat-cell *matCellDef="let element">{{ element.project }}</td>
       </ng-container>
 
       <ng-container matColumnDef="endpoint">
         <th mat-header-cell *matHeaderCellDef class="endpoint label-header">
           <span class="label">Endpoint</span>
-          <button mat-icon-button aria-label="More" class="ar" (click)="toggleFilterRow()">
+          <button 
+            mat-icon-button 
+            aria-label="More" 
+            class="ar" 
+            (click)="toggleFilterRow()"
+          >
             <i class="material-icons">
               <span *ngIf="filtering && filterForm.endpoints.length > 0 && !collapsedFilterRow">filter_list</span>
               <span [hidden]="filtering && filterForm.endpoints.length > 0 && !collapsedFilterRow">more_vert</span>
             </i>
-          </button> </th>
+          </button>
+        </th>
         <td mat-cell *matCellDef="let element">{{ element.endpoint }}</td>
       </ng-container>
 
       <ng-container matColumnDef="type">
         <th mat-header-cell *matHeaderCellDef class="type label-header">
           <span class="label">Name</span>
-          <button mat-icon-button aria-label="More" class="ar" (click)="toggleFilterRow()">
+          <button 
+            mat-icon-button 
+            aria-label="More" 
+            class="ar" 
+            (click)="toggleFilterRow()"
+          >
             <i class="material-icons">
               <span *ngIf="filtering && filterForm.type.length > 0 && !collapsedFilterRow">filter_list</span>
               <span [hidden]="filtering && filterForm.type.length > 0 && !collapsedFilterRow">more_vert</span>
             </i>
-          </button> </th>
+          </button>
+        </th>
         <td type mat-cell *matCellDef="let element">
           <span
             *ngIf="element.name"
@@ -115,12 +142,18 @@
       <ng-container matColumnDef="shape">
         <th mat-header-cell *matHeaderCellDef class="shape label-header">
           <span class="label">Shape / Resource id</span>
-          <button mat-icon-button aria-label="More" class="ar" (click)="toggleFilterRow()">
+          <button 
+            mat-icon-button 
+            aria-label="More" 
+            class="ar" 
+            (click)="toggleFilterRow()"
+          >
             <i class="material-icons">
               <span *ngIf="filtering && filterForm.shapes.length > 0 && !collapsedFilterRow">filter_list</span>
               <span [hidden]="filtering && filterForm.shapes.length > 0 && !collapsedFilterRow">more_vert</span>
             </i>
-          </button> </th>
+          </button>
+        </th>
         <td mat-cell *matCellDef="let element" class="shape">
           <div>{{ element.shape || element.ip }}</div>
           <div *ngIf="element.gpu_type">{{ element.gpu_type }}</div>
@@ -131,13 +164,18 @@
       <ng-container matColumnDef="status">
         <th mat-header-cell *matHeaderCellDef class="status label-header">
           <span class="label">Status</span>
-
-          <button mat-icon-button aria-label="More" class="ar" (click)="toggleFilterRow()">
+          <button 
+            mat-icon-button 
+            aria-label="More" 
+            class="ar" 
+            (click)="toggleFilterRow()"
+          >
             <i class="material-icons">
               <span *ngIf="filtering && filterForm.statuses.length > 0 && !collapsedFilterRow">filter_list</span>
               <span [hidden]="filtering && filterForm.statuses.length > 0 && !collapsedFilterRow">more_vert</span>
             </i>
-          </button> </th>
+          </button>
+        </th>
         <td mat-cell *matCellDef="let element" class="ani status" >
           <span ngClass="{{element.status || ''}}">{{ element.status }}</span>
         </td>
@@ -146,12 +184,18 @@
       <ng-container matColumnDef="resources">
         <th mat-header-cell *matHeaderCellDef class="resources label-header">
           <span class="label">Compute</span>
-          <button mat-icon-button aria-label="More" class="ar" (click)="toggleFilterRow()">
+          <button 
+            mat-icon-button 
+            aria-label="More" 
+            class="ar" 
+            (click)="toggleFilterRow()"
+          >
             <i class="material-icons">
               <span *ngIf="filtering && filterForm.resources.length > 0 && !collapsedFilterRow">filter_list</span>
               <span [hidden]="filtering && filterForm.resources.length > 0 && !collapsedFilterRow">more_vert</span>
             </i>
-          </button> </th>
+          </button>
+        </th>
         <td mat-cell *matCellDef="let element" class="ani resources">
           <div class="source" *ngIf="element.resources">
             <div *ngIf="!element.resources?.length">
@@ -160,21 +204,27 @@
             <div *ngIf="element.resources?.length">
               <div *ngFor="let resource of element.resources" class="resource-wrap">
                 <div class="resource-name">
-                  <a>
-                    {{ resource.computational_name }}
-                  </a>
+                  <a>{{ resource.computational_name }}</a>
                 </div>
                 <span ngClass="{{resource.status || ''}}" class="resource-status">{{ resource.status }}</span>
                 <div class="resource-actions">
                   <span class="not-allow">
                     <a class="start-stop-action" *ngIf="resource.image === 'docker.datalab-dataengine'">
-                      <i class="material-icons" (click)="toggleResourceAction(element, 'stop', resource)"
-                         [ngClass]="{'not-allowed' : resource.status !== 'running' || selected?.length }">pause_circle_outline</i>
+                      <i 
+                        class="material-icons" 
+                        (click)="toggleResourceAction(element, 'stop', resource)"
+                        [ngClass]="{'not-allowed' : resource.status !== 'running' || selected?.length }"
+                      >
+                        pause_circle_outline
+                      </i>
                     </a>
                   </span>
                   <span class="not-allow">
-                    <a class="remove_butt" (click)="toggleResourceAction(element, 'terminate', resource)"
-                      [ngClass]="{ 'disabled' : element.status !== 'running' || (resource.status !== 'running' && resource.status !== 'stopped') || selected?.length }">
+                    <a 
+                      class="remove_butt" 
+                      (click)="toggleResourceAction(element, 'terminate', resource)"
+                      [ngClass]="{ 'disabled' : element.status !== 'running' || (resource.status !== 'running' && resource.status !== 'stopped') || selected?.length }"
+                    >
                       <i class="material-icons">highlight_off</i>
                     </a>
                   </span>
@@ -191,30 +241,49 @@
         </th>
         <td mat-cell *matCellDef="let element" class="settings actions-col">
           <span [ngClass]="{'not-allow' : selected?.length}">
-            <span #settings class="actions" (click)="actions.toggle($event, settings)" *ngIf="element.type !== 'edge node' && element.type !== 'odahu'"
+            <span 
+              #settings 
+              class="actions" 
+              (click)="actions.toggle($event, settings)" 
+              *ngIf="element.type !== 'edge node' && element.type !== 'odahu'"
               [ngClass]="{
                 'disabled' : (element.status !== 'running' && element.status !== 'stopped')
-                 || selected?.length || inProgress(element.resources)}">
-
+                          || selected?.length || inProgress(element.resources)}"
+            >
             </span>
           </span>
           <bubble-up #actions class="list-menu" position="bottom-left" alternative="top-left">
             <ul class="list-unstyled">
               <li
-                matTooltip="{{ element.type !== 'edge node' ? 'Unable to stop notebook because at least one computational resource is in progress' : 'Unable to stop edge node because at least one resource of this user is in progress' }}"
-                matTooltipPosition="above" [matTooltipDisabled]="!isResourcesInProgress(element)"
-                [hidden]="element.name === 'edge node' && element.status === 'stopped'">
-                <div (click)="toggleResourceAction(element, 'stop')"
-                  [ngClass]="{'not-allowed' : element.status === 'stopped' || element.status === 'stopping' || element.status === 'starting' || element.status === 'creating image' || element.status === 'failed' || isResourcesInProgress(element)}">
+                matTooltip="{{ element.type !== 'edge node' 
+                  ? 'Unable to stop notebook because at least one computational resource is in progress' 
+                  : 'Unable to stop edge node because at least one resource of this user is in progress' }}"
+                matTooltipPosition="above" 
+                [matTooltipDisabled]="!isResourcesInProgress(element)"
+                [hidden]="element.name === 'edge node' && element.status === 'stopped'"
+              >
+                <div 
+                  (click)="toggleResourceAction(element, 'stop')"
+                  [ngClass]="{'not-allowed' : element.status === 'stopped' || element.status === 'stopping' || 
+                                              element.status === 'starting' || element.status === 'creating image' || 
+                                              element.status === 'failed' || isResourcesInProgress(element)}"
+                >
                   <i class="material-icons">pause_circle_outline</i>
                   <span>Stop</span>
                 </div>
               </li>
-              <li *ngIf="element.name !== 'edge node'"
+              <li 
+                *ngIf="element.name !== 'edge node'"
                 matTooltip="Unable to terminate notebook because at least one compute is in progress"
-                matTooltipPosition="above" [matTooltipDisabled]="!isResourcesInProgress(element)">
-                <div (click)="toggleResourceAction(element, 'terminate')"
-                  [ngClass]="{'not-allowed' : element.status !== 'running' && element.status !== 'stopped' || isResourcesInProgress(element)}">
+                matTooltipPosition="above" 
+                [matTooltipDisabled]="!isResourcesInProgress(element)"
+              >
+                <div 
+                  (click)="toggleResourceAction(element, 'terminate')"
+                  [ngClass]="{'not-allowed' : element.status !== 'running' && 
+                                              element.status !== 'stopped' || 
+                                              isResourcesInProgress(element)}"
+                >
                   <i class="material-icons">phonelink_off</i>
                   <span>Terminate</span>
                 </div>
@@ -234,113 +303,186 @@
 
       <!-- FILTERING -->
       <ng-container matColumnDef="checkbox-filter" sticky>
-        <th mat-header-cell *matHeaderCellDef class="filter-row-item">
-
-        </th>
+        <th mat-header-cell *matHeaderCellDef class="filter-row-item"></th>
       </ng-container>
 
       <ng-container matColumnDef="user-filter" sticky>
         <th mat-header-cell *matHeaderCellDef class="filter-row-item">
-          <multi-select-dropdown (selectionChange)="onUpdate($event)" [type]="'users'" [items]="filterConfiguration.users"
-            [model]="filterForm.users"></multi-select-dropdown>
+          <multi-select-dropdown 
+            (selectionChange)="onUpdate($event)" 
+            [type]="'users'" 
+            [items]="filterConfiguration.users"
+            [model]="filterForm.users"
+          ></multi-select-dropdown>
         </th>
       </ng-container>
+
       <ng-container matColumnDef="type-filter" sticky>
         <th mat-header-cell *matHeaderCellDef class="filter-row-item">
-          <input placeholder="Filter by name" type="text" class="form-control filter-field"
-            [value]="filterForm.type" (input)="onFilterNameUpdate($event.target['value'])"/>
+          <input 
+            placeholder="Filter by name" 
+            type="text" 
+            class="form-control filter-field"
+            [value]="filterForm.type" 
+            (input)="onFilterNameUpdate($event.target['value'])"
+          />
         </th>
       </ng-container>
+
       <ng-container matColumnDef="project-filter" sticky>
         <th mat-header-cell *matHeaderCellDef class="filter-row-item">
-          <multi-select-dropdown (selectionChange)="onUpdate($event)" [type]="'projects'"
-            [items]="filterConfiguration.projects" [model]="filterForm.projects"></multi-select-dropdown>
+          <multi-select-dropdown 
+            (selectionChange)="onUpdate($event)" 
+            [type]="'projects'"
+            [items]="filterConfiguration.projects" 
+            [model]="filterForm.projects"
+          ></multi-select-dropdown>
         </th>
       </ng-container>
       <ng-container matColumnDef="endpoint-filter" sticky>
         <th mat-header-cell *matHeaderCellDef class="filter-row-item">
-          <multi-select-dropdown (selectionChange)="onUpdate($event)" [type]="'endpoints'"
-                                 [items]="filterConfiguration.endpoints" [model]="filterForm.endpoints"></multi-select-dropdown>
+          <multi-select-dropdown 
+            (selectionChange)="onUpdate($event)" 
+            [type]="'endpoints'"
+            [items]="filterConfiguration.endpoints" 
+            [model]="filterForm.endpoints"
+          ></multi-select-dropdown>
         </th>
       </ng-container>
+
       <ng-container matColumnDef="shape-filter" sticky>
         <th mat-header-cell *matHeaderCellDef class="filter-row-item">
-          <multi-select-dropdown (selectionChange)="onUpdate($event)" [type]="'shapes'"
-            [items]="filterConfiguration.shapes" [model]="filterForm.shapes"></multi-select-dropdown>
+          <multi-select-dropdown 
+            (selectionChange)="onUpdate($event)" 
+            [type]="'shapes'"
+            [items]="filterConfiguration.shapes" 
+            [model]="filterForm.shapes"
+          ></multi-select-dropdown>
         </th>
       </ng-container>
+
       <ng-container matColumnDef="status-filter" sticky>
         <th mat-header-cell *matHeaderCellDef class="filter-row-item">
-          <multi-select-dropdown (selectionChange)="onUpdate($event)" [type]="'statuses'"
-            [items]="filterConfiguration.statuses" [model]="filterForm.statuses"></multi-select-dropdown>
+          <multi-select-dropdown 
+            (selectionChange)="onUpdate($event)" 
+            [type]="'statuses'"
+            [items]="filterConfiguration.statuses" 
+            [model]="filterForm.statuses"
+          ></multi-select-dropdown>
         </th>
       </ng-container>
+
       <ng-container matColumnDef="resource-filter" sticky>
         <th mat-header-cell *matHeaderCellDef class="filter-row-item">
-          <multi-select-dropdown (selectionChange)="onUpdate($event)" [type]="'resources'"
-            [items]="filterConfiguration.resources" [model]="filterForm.resources"></multi-select-dropdown>
+          <multi-select-dropdown 
+            (selectionChange)="onUpdate($event)" 
+            [type]="'resources'"
+            [items]="filterConfiguration.resources" 
+            [model]="filterForm.resources"
+          ></multi-select-dropdown>
         </th>
       </ng-container>
+
       <ng-container matColumnDef="actions-filter" sticky>
         <th mat-header-cell *matHeaderCellDef  class="actions-col filter-row-item">
           <div class="actions">
-            <button mat-icon-button class="btn reset" (click)="resetFilterConfigurations()" [disabled]="!isFilterSelected">
+            <button 
+              mat-icon-button 
+              class="btn reset" 
+              (click)="resetFilterConfigurations()" 
+              [disabled]="!isFilterSelected"
+            >
               <i class="material-icons">close</i>
             </button>
 
-            <button mat-icon-button class="btn apply" (click)="applyFilter(filterForm)"
-              [disabled]="isFilterChanged">
-              <i class="material-icons"
-                [ngClass]="{'not-allowed': allFilteredEnvironmentData?.length == 0 && !filtering}">done</i>
+            <button 
+              mat-icon-button 
+              class="btn apply" 
+              (click)="applyFilter(filterForm)"
+              [disabled]="isFilterChanged"
+            >
+              <i 
+                class="material-icons"
+                [ngClass]="{'not-allowed': allFilteredEnvironmentData?.length == 0 && !filtering}"
+              >
+                done
+              </i>
             </button>
           </div>
         </th>
       </ng-container>
 
-
       <ng-container matColumnDef="placeholder">
         <td mat-footer-cell *matFooterCellDef colspan="8">
-          <div class="info"
-            *ngIf="(!allFilteredEnvironmentData) && !filtering || (allFilteredEnvironmentData?.length == 0) && !filtering">
-            To start working, please, create new environment</div>
+          <div 
+            class="info"
+            *ngIf="(!allFilteredEnvironmentData) && !filtering || (allFilteredEnvironmentData?.length == 0) && !filtering"
+          >
+            To start working, please, create new environment
+          </div>
           <div *ngIf="(allFilteredEnvironmentData?.length == 0) && filtering" class="info">No matches found</div>
         </td>
       </ng-container>
 
       <ng-container matColumnDef="scrollButtons">
-          <td mat-footer-cell *matFooterCellDef colspan="9" class="buttons-wrap">
-            <div class="buttons" [ngStyle]="{'width.px': tableWrapperWidth }" [hidden]="!tableWrapperWidth">
-              <div class="button-container">
-                <button mat-mini-fab aria-label="Scroll left"
-                        (click)="sctollTo('left')"
-                        [ngClass]="{'not-allowed': wrapper.scrollLeft === 0 }"
-                >
-                  <mat-icon [ngClass]="{'highlight': wrapper.scrollLeft !== 0 }">keyboard_arrow_left</mat-icon>
-                </button>
-              </div>
-              <div class="button-container" [ngClass]="{'not-allowed': checkMaxRight()}">
-                <button mat-mini-fab aria-label="Scroll right"
-                        (click)="sctollTo('right')"
-
-                        [ngClass]="{'not-allowed': !(isMaxRight | async)}"
-                >
-                  <mat-icon [ngClass]="{'highlight': (isMaxRight | async) || false}">keyboard_arrow_right</mat-icon>
-                </button>
-              </div>
+        <td 
+          mat-footer-cell 
+          *matFooterCellDef 
+          colspan="9" 
+          class="buttons-wrap"
+        >
+          <div 
+            class="buttons" 
+            [ngStyle]="{'width.px': tableWrapperWidth }" 
+            [hidden]="!tableWrapperWidth"
+          >
+            <div class="button-container">
+              <button 
+                mat-mini-fab aria-label="Scroll left"
+                (click)="sctollTo('left')"
+                [ngClass]="{'not-allowed': wrapper.scrollLeft === 0 }"
+              >
+                <mat-icon [ngClass]="{'highlight': wrapper.scrollLeft !== 0 }">keyboard_arrow_left</mat-icon>
+              </button>
             </div>
-          </td>
-        </ng-container>
+            <div class="button-container" [ngClass]="{'not-allowed': checkMaxRight()}">
+              <button 
+                mat-mini-fab aria-label="Scroll right"
+                (click)="sctollTo('right')"
+                [ngClass]="{'not-allowed': !(isMaxRight | async)}"
+              >
+                <mat-icon [ngClass]="{'highlight': (isMaxRight | async) || false}">keyboard_arrow_right</mat-icon>
+              </button>
+            </div>
+          </div>
+        </td>
+      </ng-container>
 
-      <tr mat-header-row *matHeaderRowDef="displayedColumns; sticky: true" class="header-row"></tr>
-      <tr [hidden]="!collapsedFilterRow" mat-header-row *matHeaderRowDef="displayedFilterColumns; sticky: true"
-        class="filter-row"></tr>
+      <tr 
+        mat-header-row 
+        *matHeaderRowDef="displayedColumns; sticky: true" 
+        class="header-row"
+      ></tr>
+      <tr 
+        [hidden]="!collapsedFilterRow" 
+        mat-header-row 
+        *matHeaderRowDef="displayedFilterColumns; sticky: true"
+        class="filter-row"
+      ></tr>
       <tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
 
-
-      <tr [hidden]="allFilteredEnvironmentData?.length" mat-footer-row *matFooterRowDef="['placeholder']" class="info"></tr>
-      <tr [hidden]="!tableEl || !tableEl['offsetWidth'] || tableWrapper.offsetWidth - tableEl['offsetWidth'] > -16 || !allFilteredEnvironmentData?.length" mat-footer-row *matFooterRowDef="['scrollButtons']; sticky: true" class="info"></tr>
+      <tr 
+        [hidden]="allFilteredEnvironmentData?.length" 
+        mat-footer-row *matFooterRowDef="['placeholder']" 
+        class="info"
+      ></tr>
+      <tr 
+        [hidden]="!tableEl || !tableEl['offsetWidth'] || tableWrapper.offsetWidth - tableEl['offsetWidth'] > -16 || !allFilteredEnvironmentData?.length" 
+        mat-footer-row 
+        *matFooterRowDef="['scrollButtons']; sticky: true" 
+        class="info"
+      ></tr>
     </table>
-
     </div>
   </div>
 </div>
diff --git a/services/self-service/src/main/resources/webapp/src/app/administration/management/management-grid/management-grid.component.scss b/services/self-service/src/main/resources/webapp/src/app/administration/management/management-grid/management-grid.component.scss
index 59d5254..888cfbb 100644
--- a/services/self-service/src/main/resources/webapp/src/app/administration/management/management-grid/management-grid.component.scss
+++ b/services/self-service/src/main/resources/webapp/src/app/administration/management/management-grid/management-grid.component.scss
@@ -17,60 +17,61 @@
  * under the License.
  */
 
-.managment-wrapper{
+.managment-wrapper {
   position: relative;
   height: calc(100vh - 130px);
-  scroll-behavior: smooth;
   margin-left: -15px;
   margin-right: -15px;
   padding-left: 15px;
   padding-right: 15px;
+  scroll-behavior: smooth;
   overflow: auto;
 
   .scroll-wrapper {
     overflow: auto;
     scroll-behavior: smooth;
-    box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);
+    box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 
+                0px 6px 10px 0px rgba(0, 0, 0, 0.14),
+                0px 1px 18px 0px rgba(0, 0, 0, 0.12);
   }
 
-  .ani{
+  .ani {
     max-height: calc(100vh - 130px);
     position: relative;
-    .wrapper{
-      width: 100%;
+    .wrapper {
+      position: relative;
       display: block;
+      width: 100%;
       max-height: calc(100vh - 130px);
       overflow: unset;
-      position: relative;
       scroll-behavior: smooth;
     }
   }
 }
 
 .data-grid {
-
   &.management {
-    .filter-row-item{
+    .filter-row-item {
       padding: 5px;
     }
 
-    .settings{
+    .settings {
       min-width: 7%;
     }
 
-    .mat-column-checkbox{
+    .mat-column-checkbox {
+      min-width: 38px;
       padding-left: 10px;
       padding-right: 0px;
-      min-width: 38px;
 
-      &.label-header{
-         .empty-checkbox{
-           z-index: 1011
-         }
+      &.label-header {
+        .empty-checkbox {
+          z-index: 1011;
+        }
       }
     }
 
-    .user{
+    .user {
       width: 15%;
       min-width: 180px;
     }
@@ -87,13 +88,13 @@
     .shape {
       width: 15% !important;
 
-      .label{
+      .label {
         position: absolute;
       }
       min-width: 150px;
     }
 
-    .endpoint{
+    .endpoint {
       width: 10% !important;
       min-width: 140px;
     }
@@ -115,15 +116,13 @@
 
     .settings {
       padding-right: 14px;
-
-
     }
 
     .actions {
+      position: sticky;
       margin-top: 0px;
       padding-right: 10px;
-      position: sticky;
-      .label{
+      .label {
         padding-right: 5px;
       }
     }
@@ -132,39 +131,37 @@
       width: 6%;
     }
 
-    .label-header{
+    .label-header {
       padding-left: 15px;
       height: 56px;
 
-      .ar{
-        left: 21px;
+      .ar {
+        left: 20px;
         top: 2px;
-        &.checkbox-border
-        {
-          left: 19px;
+        &.checkbox-border {
+          left: 18px;
         }
       }
 
-      .settings{
+      .settings {
         min-width: 7%;
       }
 
-      &.mat-column-checkbox{
+      &.mat-column-checkbox {
         z-index: 12 !important;
         padding-left: 10px;
 
-        .ar{
+        .ar {
           position: absolute;
           top: 10px;
         }
       }
 
-      &.user{
+      &.user {
         z-index: 11 !important;
-
       }
 
-      &.type{
+      &.type {
         z-index: 10 !important;
       }
 
@@ -203,37 +200,36 @@
     }
 
     .dashboard_table_body {
-
       td:first-child {
         cursor: default;
       }
     }
 
-    .user-name{
+    .user-name {
+      max-width: 250px;
       padding-right: 22px;
       overflow: hidden;
       word-break: break-all;
       white-space: nowrap;
-      max-width: 250px;
     }
 
-    .buttons-wrap{
+    .buttons-wrap {
       padding: 0;
-      border-top: 1px solid rgba(0,0,0,.12);
+      border-top: 1px solid rgba(0, 0, 0, 0.12);
       transform: translateY(-1px);
     }
 
-    .buttons{
+    .buttons {
       position: sticky;
       left: 0;
     }
 
-    button{
+    button {
       background-color: #fff;
       box-shadow: none;
-      mat-icon{
+      mat-icon {
         color: lightgrey;
-        &.highlight{
+        &.highlight {
           color: #35afd5;
         }
       }
@@ -258,8 +254,8 @@
     .label {
       display: inline-block;
       padding-top: 14px;
-      vertical-align: super !important;
       padding-left: 5px;
+      vertical-align: super !important;
     }
     .actions {
       text-align: right;
@@ -273,26 +269,26 @@
   .filter-row {
     background: inherit;
 
-    .filter-row-item{
+    .filter-row-item {
       left: auto !important;
-       &.actions-col{
-         right: -15px;
-       }
+      &.actions-col {
+        right: -15px;
+      }
     }
 
-    .filter-field{
+    .filter-field {
       font-size: 13px;
       padding-left: 15px;
     }
   }
 
-  .info{
+  .info {
     padding: 40px;
     text-align: center;
   }
 
   .source .resource-wrap {
-    .resource-actions{
+    .resource-actions {
       padding-right: 0;
     }
     .resource-name .detailed-link {
@@ -301,24 +297,22 @@
   }
 }
 
-.computation{
+.computation {
   cursor: pointer;
   color: #35afd5;
 }
 
-.table-footer{
+.table-footer {
   height: 48px;
 }
 
-.header-checkbox{
+.header-checkbox {
   margin-top: 7px;
   float: left;
 }
 
-
-
 @media screen and (max-width: 1550px) {
-  .managment-wrapper{
+  .managment-wrapper {
     .source {
       .resource-wrap {
         .resource-name {
@@ -331,11 +325,8 @@
 
         .resource-actions {
           width: 20%;
-
         }
       }
     }
   }
 }
-
-
diff --git a/services/self-service/src/main/resources/webapp/src/app/administration/management/management-grid/management-grid.component.ts b/services/self-service/src/main/resources/webapp/src/app/administration/management/management-grid/management-grid.component.ts
index 7871156..78ecf28 100644
--- a/services/self-service/src/main/resources/webapp/src/app/administration/management/management-grid/management-grid.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/administration/management/management-grid/management-grid.component.ts
@@ -30,18 +30,17 @@
   AfterViewChecked,
   ApplicationRef
 } from '@angular/core';
+import { ChangeDetectorRef } from '@angular/core';
 import { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
 import { ToastrService } from 'ngx-toastr';
+import { BehaviorSubject, Subject, timer } from 'rxjs';
 
-import { HealthStatusService } from '../../../core/services';
 import { SortUtils } from '../../../core/util';
 import { EnvironmentsDataService } from '../management-data.service';
 import { EnvironmentModel, ManagementConfigModel } from '../management.model';
-import {ProgressBarService} from '../../../core/services/progress-bar.service';
-import {DetailDialogComponent} from '../../../resources/exploratory/detail-dialog';
-import {BehaviorSubject, Subject, timer} from 'rxjs';
-import { ChangeDetectorRef } from '@angular/core';
-import {CompareUtils} from '../../../core/util/compareUtils';
+import { ProgressBarService } from '../../../core/services/progress-bar.service';
+import { DetailDialogComponent } from '../../../resources/exploratory/detail-dialog';
+import { CompareUtils } from '../../../core/util/compareUtils';
 
 export interface ManageAction {
   action: string;
@@ -93,7 +92,7 @@
     this.checkMaxRight();
   }
 
-  displayedColumns: string[] = [ 'checkbox', 'user', 'type', 'project', 'endpoint', 'shape', 'status', 'resources', 'actions'];
+  displayedColumns: string[] = ['checkbox', 'user', 'type', 'project', 'endpoint', 'shape', 'status', 'resources', 'actions'];
   displayedFilterColumns: string[] = ['checkbox-filter', 'user-filter', 'type-filter', 'project-filter', 'endpoint-filter', 'shape-filter', 'status-filter', 'resource-filter', 'actions-filter'];
   public selected;
   public allActiveNotebooks: any;
@@ -102,7 +101,6 @@
   public isFilterChanged: boolean;
 
   constructor(
-    private healthStatusService: HealthStatusService,
     private environmentsDataService: EnvironmentsDataService,
     public toastr: ToastrService,
     public dialog: MatDialog,
@@ -115,7 +113,6 @@
     this.getEnvironmentData();
   }
 
-
   ngAfterViewInit() {
     this.progressBarService.startProgressBar();
     this.tableEl = this.table._elementRef.nativeElement;
@@ -134,16 +131,20 @@
 
   getEnvironmentData() {
     this.progressBarService.startProgressBar();
-    this.environmentsDataService._data.subscribe(data => {
-      if (data) {
-        this.allEnvironmentData = EnvironmentModel.loadEnvironments(data);
-        this.getDefaultFilterConfiguration(data);
-        this.applyFilter(this.cashedFilterForm || this.filterForm);
-      }
-      this.progressBarService.stopProgressBar();
-    }, () => {
-      this.progressBarService.stopProgressBar();
-    });
+    this.environmentsDataService._data
+      .subscribe(
+        data => {
+          if (data) {
+            this.allEnvironmentData = EnvironmentModel.loadEnvironments(data);
+            this.getDefaultFilterConfiguration(data);
+            this.applyFilter(this.cashedFilterForm || this.filterForm);
+          }
+          this.progressBarService.stopProgressBar();
+        }, 
+        () => {
+          this.progressBarService.stopProgressBar();
+        }
+    );
   }
 
   buildGrid(): void {
@@ -183,7 +184,9 @@
 
     const containsStatus = (list, selectedItems) => {
       if (list) {
-        return list.filter((item: any) => { if (selectedItems.indexOf(item.status) !== -1) return item; });
+        return list.filter((item: any) => { 
+          if (selectedItems.indexOf(item.status) !== -1) return item; 
+        });
       }
     };
 
@@ -191,19 +194,31 @@
     if (config) {
       filteredData = filteredData.filter(item => {
         const isUser = config.users.length > 0 ? (config.users.indexOf(item.user) !== -1) : true;
-        const isTypeName = item.name ? item.name.toLowerCase()
-          .indexOf(config.type.toLowerCase()) !== -1 : item.type.toLowerCase().indexOf(config.type.toLowerCase()) !== -1;
-        const isStatus = config.statuses.length > 0 ? (config.statuses.indexOf(item.status) !== -1) : (config.type !== 'active');
-        const isShape = config.shapes.length > 0 ? 
-              (config.shapes.indexOf(item.shape) !== -1 || 
-              config.shapes.indexOf(item.gpu_type) !== -1 ||
-              config.shapes.indexOf(`GPU count: ${item.gpu_count}`) !== -1 ) : true;
-        const isProject = config.projects.length > 0 ? (config.projects.indexOf(item.project) !== -1) : true;
-        const isEndpoint = config.endpoints.length > 0 ? (config.endpoints.indexOf(item.endpoint) !== -1) : true;
+        const isTypeName = item.name 
+          ? item.name.toLowerCase().indexOf(config.type.toLowerCase()) !== -1 
+          : item.type.toLowerCase().indexOf(config.type.toLowerCase()) !== -1;
+        const isStatus = config.statuses.length > 0 
+          ? (config.statuses.indexOf(item.status) !== -1) 
+          : (config.type !== 'active');
+        const isShape = config.shapes.length > 0 
+          ? (config.shapes.indexOf(item.shape) !== -1 ||
+            config.shapes.indexOf(item.gpu_type) !== -1 ||
+            config.shapes.indexOf(`GPU count: ${item.gpu_count}`) !== -1) 
+          : true;
+        const isProject = config.projects.length > 0 
+          ? (config.projects.indexOf(item.project) !== -1) 
+          : true;
+        const isEndpoint = config.endpoints.length > 0 
+          ? (config.endpoints.indexOf(item.endpoint) !== -1) 
+          : true;
 
         const modifiedResources = containsStatus(item.resources, config.resources);
-        let isResources = config.resources.length > 0 ? (modifiedResources && modifiedResources.length > 0) : true;
-        if (config.resources.length > 0 && modifiedResources && modifiedResources.length > 0) { item.resources = modifiedResources; }
+        let isResources = config.resources.length > 0 
+          ? (modifiedResources && modifiedResources.length > 0) 
+          : true;
+        if (config.resources.length > 0 && modifiedResources && modifiedResources.length > 0) { 
+          item.resources = modifiedResources; 
+        }
 
         if (config.resources && config.resources.length === 0 && config.type === 'active' ||
           modifiedResources && modifiedResources.length >= 0 && config.resources.length > 0 && config.type === 'active') {
@@ -217,8 +232,8 @@
     this.allFilteredEnvironmentData = filteredData;
     this.allActiveNotebooks = this.allFilteredEnvironmentData
       .filter(v => v.name &&
-      (v.status === 'running' || v.status === 'stopped') &&
-      !this.clustersInProgress(v.resources || []));
+        (v.status === 'running' || v.status === 'stopped') &&
+        !this.clustersInProgress(v.resources || []));
     this.checkFilters();
   }
 
@@ -252,8 +267,8 @@
   }
 
   private getDefaultFilterConfiguration(data): void {
-    const users = [], projects = [], shapes = [],  statuses = [], 
-          resources = [], endpoints = [], gpuTypes = [], gpuCounts = [];
+    const users = [], projects = [], shapes = [], statuses = [],
+      resources = [], endpoints = [], gpuTypes = [], gpuCounts = [];
 
     data && data.forEach((item: any) => {
       if (item.user && users.indexOf(item.user) === -1) users.push(item.user);
@@ -264,10 +279,10 @@
       if (item.gpu_type && gpuTypes.indexOf(item.gpu_type) === -1) gpuTypes.push(item.gpu_type);
       if (item.gpu_count && gpuCounts.indexOf(`GPU count: ${item.gpu_count}`) === -1) gpuCounts.push(`GPU count: ${item.gpu_count}`);
       if (item.computational_resources) {
-         item.computational_resources.map((resource: any) => {
-              if (resources.indexOf(resource.status) === -1) resources.push(resource.status);
-              resources.sort(SortUtils.statusSort);
-            });
+        item.computational_resources.map((resource: any) => {
+          if (resources.indexOf(resource.status) === -1) resources.push(resource.status);
+          resources.sort(SortUtils.statusSort);
+        });
       }
     });
 
@@ -278,8 +293,9 @@
     if (!data.exploratory_urls || !data.exploratory_urls.length) {
       return;
     }
-    this.dialog.open(DetailDialogComponent, { data:
-        {notebook: data, buckets: [], type: 'environment'},
+    this.dialog.open(DetailDialogComponent, {
+      data:
+        { notebook: data, buckets: [], type: 'environment' },
       panelClass: 'modal-lg'
     })
       .afterClosed().subscribe(() => {});
@@ -321,12 +337,12 @@
 
   public checkMaxRight() {
     let arg;
-      if (this.wrapper && this.table) {
-        arg = this.wrapper.nativeElement.offsetWidth +
-          this.wrapper.nativeElement.scrollLeft + 2 <= this.table._elementRef.nativeElement.offsetWidth;
-      }
-      
-      return this.isMaxRight.next(arg);
+    if (this.wrapper && this.table) {
+      arg = this.wrapper.nativeElement.offsetWidth +
+        this.wrapper.nativeElement.scrollLeft + 2 <= this.table._elementRef.nativeElement.offsetWidth;
+    }
+
+    return this.isMaxRight.next(arg);
   }
 }
 
@@ -436,7 +452,7 @@
         if (notebook.resources.length) {
           this.isClusterLength = true;
         }
-          return notebook;
+        return notebook;
       });
     }
   }
diff --git a/services/self-service/src/main/resources/webapp/src/app/administration/management/management.component.html b/services/self-service/src/main/resources/webapp/src/app/administration/management/management.component.html
index 240a9e0..4a4cf55 100644
--- a/services/self-service/src/main/resources/webapp/src/app/administration/management/management.component.html
+++ b/services/self-service/src/main/resources/webapp/src/app/administration/management/management.component.html
@@ -23,7 +23,8 @@
       <div class="action-select-wrapper admin-group" >
         <span class="action-button-wrapper">
           <button
-            type="button" class="butt actions-btn"
+            type="button" 
+            class="butt actions-btn"
             mat-raised-button
             [disabled]="!selected.length"
             (click)="toogleActions();$event.stopPropagation()"
@@ -34,18 +35,20 @@
           </span>
         <div class="action-menu" *ngIf="isActionsOpen">
           <span>
+            <button
+              type="button" 
+              class="butt action-menu-item"
+              [ngClass]="{'disabled': selectedRunning.length === 0  || selectedStopped.length !== 0 }"
+              mat-raised-button
+              [disabled]="selectedRunning.length === 0"
+              (click)="resourseAction('stop');$event.stopPropagation()"
+            >
+              Stop
+            </button>
+          </span>
           <button
-           type="button" class="butt action-menu-item"
-            [ngClass]="{'disabled': selectedRunning.length === 0  || selectedStopped.length !== 0 }"
-            mat-raised-button
-            [disabled]="selectedRunning.length === 0"
-            (click)="resourseAction('stop');$event.stopPropagation()"
-          >
-            Stop
-          </button>
-            </span>
-          <button
-            type="button" class="butt action-menu-item"
+            type="button" 
+            class="butt action-menu-item"
             mat-raised-button
             (click)="resourseAction('terminate');$event.stopPropagation()"
           >
@@ -53,26 +56,42 @@
           </button>
         </div>
       </div>
-      <button mat-raised-button class="butt ssn" (click)="showEndpointsDialog()">
+      <button 
+        mat-raised-button 
+        class="butt ssn" 
+        (click)="showEndpointsDialog()"
+      >
         <i class="material-icons"></i>Endpoints
       </button>
       <!-- <button mat-raised-button class="butt ssn" (click)="openSsnMonitorDialog()">
         <i class="material-icons"></i>SSN Monitor
       </button> -->
-      <button mat-raised-button class="butt env" (click)="openManageEnvironmentDialog()">
-          Manage DataLab quotas
+      <button 
+        mat-raised-button 
+        class="butt env" 
+        (click)="openManageEnvironmentDialog()"
+      >
+        Manage DataLab quotas
       </button>
       <!-- <button mat-raised-button class="butt" (click)="showBackupDialog()" [disabled]="creatingBackup">
         <i class="material-icons">backup</i>Backup
       </button> -->
     </div>
-    <button mat-raised-button class="butt" (click)="refreshGrid()">
+    <button 
+      mat-raised-button 
+      class="butt" 
+      (click)="refreshGrid()"
+    >
       <i class="material-icons refresh-icon">autorenew</i>Refresh
     </button>
   </div>
   <mat-divider></mat-divider>
-  <management-grid [currentUser]="user.toLowerCase()" [isAdmin]="healthStatus?.admin"
-    [environmentsHealthStatuses]="healthStatus?.list_resources" (refreshGrid)="buildGrid()"
-    (actionToggle)="toggleResourceAction($event)" (emitSelectedList)="selectedList($event)">
-  </management-grid>
+  <management-grid 
+    [currentUser]="user.toLowerCase()" 
+    [isAdmin]="healthStatus?.admin"
+    [environmentsHealthStatuses]="healthStatus?.list_resources" 
+    (refreshGrid)="buildGrid()"
+    (actionToggle)="toggleResourceAction($event)" 
+    (emitSelectedList)="selectedList($event)"
+  ></management-grid>
 </div>
diff --git a/services/self-service/src/main/resources/webapp/src/app/administration/management/management.component.ts b/services/self-service/src/main/resources/webapp/src/app/administration/management/management.component.ts
index 38779fc..9ce01ad 100644
--- a/services/self-service/src/main/resources/webapp/src/app/administration/management/management.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/administration/management/management.component.ts
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-import {Component, OnInit, ViewChild} from '@angular/core';
+import { Component, OnInit, ViewChild } from '@angular/core';
 import { MatDialog } from '@angular/material/dialog';
 import { ToastrService } from 'ngx-toastr';
 
@@ -39,9 +39,9 @@
 
 import { EnvironmentsDataService } from './management-data.service';
 import { ProjectService } from '../../core/services';
-import {ConfirmationDialogComponent, ConfirmationDialogType} from '../../shared/modal-dialog/confirmation-dialog';
-import {ManagementGridComponent, ReconfirmationDialogComponent} from './management-grid/management-grid.component';
-import {FolderTreeComponent} from '../../resources/bucket-browser/folder-tree/folder-tree.component';
+import { ConfirmationDialogComponent, ConfirmationDialogType } from '../../shared/modal-dialog/confirmation-dialog';
+import { ManagementGridComponent, ReconfirmationDialogComponent } from './management-grid/management-grid.component';
+import { FolderTreeComponent } from '../../resources/bucket-browser/folder-tree/folder-tree.component';
 
 @Component({
   selector: 'environments-management',
@@ -58,8 +58,7 @@
   public selectedRunning: any[];
   public selectedStopped: any[];
 
-  @ViewChild(ManagementGridComponent, {static: true}) managementGrid;
-
+  @ViewChild(ManagementGridComponent, { static: true }) managementGrid;
 
   constructor(
     public toastr: ToastrService,
@@ -84,7 +83,7 @@
   }
 
   public refreshGrid() {
-     this.buildGrid();
+    this.buildGrid();
   }
 
   public manageEnvironmentAction($event) {
@@ -95,9 +94,11 @@
         $event.environment.project,
         $event.environment.type === 'edge node' ? 'edge' : $event.environment.name,
         $event.resource ? $event.resource.computational_name : null
-      ).subscribe(
+      )
+      .subscribe(
         () => this.buildGrid(),
-        error => this.toastr.error('Environment management failed!', 'Oops!'));
+        error => this.toastr.error('Environment management failed!', 'Oops!')
+      );
   }
 
   // showBackupDialog() {
@@ -111,10 +112,14 @@
 
   openManageEnvironmentDialog() {
     this.projectService.getProjectsList().subscribe(projectsList => {
-      this.getTotalBudgetData().subscribe(total => {
-        this.dialogRef = this.dialog.open(ManageEnvironmentComponent, { data: { projectsList, total }, panelClass: 'modal-xl-s' });
-        this.dialogRef.afterClosed().subscribe(result => result && this.setBudgetLimits(result));
-      }, () => this.toastr.error('Failed users list loading!', 'Oops!'));
+      this.getTotalBudgetData()
+        .subscribe(
+          total => {
+            this.dialogRef = this.dialog.open(ManageEnvironmentComponent, { data: { projectsList, total }, panelClass: 'modal-xl-s' });
+            this.dialogRef.afterClosed().subscribe(result => result && this.setBudgetLimits(result));
+          }, 
+          () => this.toastr.error('Failed users list loading!', 'Oops!')
+        );
     });
   }
 
@@ -131,28 +136,31 @@
 
   setBudgetLimits($event) {
     if ($event.projects.length) {
-      this.projectService.updateProjectsBudget($event.projects).subscribe((result: any) => {
-        if ($event.isTotalChanged) {
-          this.healthStatusService.updateTotalBudgetData($event.total).subscribe((res: any) => {
-            result.status === HTTP_STATUS_CODES.OK
-            && res.status === HTTP_STATUS_CODES.NO_CONTENT
-            && this.toastr.success('Budget limits updated!', 'Success!');
-            this.buildGrid();
-          });
-        } else {
-          result.status === HTTP_STATUS_CODES.OK && this.toastr.success('Budget limits updated!', 'Success!');
-          this.buildGrid();
-        }
-
-      }, error => this.toastr.error(error.message, 'Oops!'));
+      this.projectService.updateProjectsBudget($event.projects)
+        .subscribe(
+          (result: any) => {
+            if ($event.isTotalChanged) {
+              this.healthStatusService.updateTotalBudgetData($event.total).subscribe((res: any) => {
+                result.status === HTTP_STATUS_CODES.OK
+                  && res.status === HTTP_STATUS_CODES.NO_CONTENT
+                  && this.toastr.success('Budget limits updated!', 'Success!');
+                this.buildGrid();
+              });
+            } else {
+              result.status === HTTP_STATUS_CODES.OK && this.toastr.success('Budget limits updated!', 'Success!');
+              this.buildGrid();
+            }
+          }, 
+          error => this.toastr.error(error.message, 'Oops!'));
     } else {
-      this.healthStatusService.updateTotalBudgetData($event.total).subscribe((res: any) => {
-        res.status === HTTP_STATUS_CODES.NO_CONTENT
-        && this.toastr.success('Budget limits updated!', 'Success!');
-        this.buildGrid();
-      });
+      this.healthStatusService.updateTotalBudgetData($event.total)
+        .subscribe((res: any) => {
+          res.status === HTTP_STATUS_CODES.NO_CONTENT
+            && this.toastr.success('Budget limits updated!', 'Success!');
+          this.buildGrid();
+        });
     }
-    }
+  }
 
 
   // manageEnvironment(event: { action: string, project: any }) {
@@ -216,12 +224,18 @@
   }
 
   toggleResourceAction($event): void {
-    const {environment, action, resource} = $event;
+    const { environment, action, resource } = $event;
     if (resource) {
       const resource_name = resource ? resource.computational_name : environment.name;
       this.dialog.open(ReconfirmationDialogComponent, {
-        data: { action, resource_name, user: environment.user, type: 'cluster'},
-        width: '550px', panelClass: 'error-modalbox'
+        data: { 
+          action, 
+          resource_name, 
+          user: environment.user, 
+          type: 'cluster' 
+        },
+        width: '550px', 
+        panelClass: 'error-modalbox'
       }).afterClosed().subscribe(result => {
         result && this.manageEnvironmentAction({ action, environment, resource });
       });
@@ -230,15 +244,20 @@
       if (action === 'stop') {
         notebooks = notebooks.filter(note => note.status !== 'stopped');
         this.dialog.open(ReconfirmationDialogComponent, {
-          data: { notebooks: notebooks, type: 'notebook', action },
-          width: '550px', panelClass: 'error-modalbox'
+          data: { 
+            notebooks: notebooks, 
+            type: 'notebook', 
+            action 
+          },
+          width: '550px', 
+          panelClass: 'error-modalbox'
         }).afterClosed().subscribe((res) => {
           if (res) {
             notebooks.forEach((env) => {
               this.manageEnvironmentsService.environmentManagement(env.user, 'stop', env.project, env.name)
                 .subscribe(response => {
-                    this.buildGrid();
-                  },
+                  this.buildGrid();
+                },
                   error => console.log(error)
                 );
             });
@@ -250,7 +269,13 @@
         });
       } else if (action === 'terminate') {
         this.dialog.open(ReconfirmationDialogComponent, {
-          data: { notebooks: notebooks, type: 'notebook', action }, width: '550px', panelClass: 'error-modalbox'
+          data: { 
+            notebooks: notebooks, 
+            type: 'notebook', 
+            action 
+          }, 
+          width: '550px', 
+          panelClass: 'error-modalbox'
         }).afterClosed().subscribe((res) => {
           if (res) {
             notebooks.forEach((env) => {
@@ -268,16 +293,16 @@
           }
           this.isActionsOpen = false;
         });
-      // } else if (action === 'run') {
-      //   this.healthStatusService.runEdgeNode().subscribe(() => {
-      //     this.buildGrid();
-      //     this.toastr.success('Edge node is starting!', 'Processing!');
-      //   }, () => this.toastr.error('Edge Node running failed!', 'Oops!'));
-      // } else if (action === 'recreate') {
-      //   this.healthStatusService.recreateEdgeNode().subscribe(() => {
-      //     this.buildGrid();
-      //     this.toastr.success('Edge Node recreation is processing!', 'Processing!');
-      //   }, () => this.toastr.error('Edge Node recreation failed!', 'Oops!'));
+        // } else if (action === 'run') {
+        //   this.healthStatusService.runEdgeNode().subscribe(() => {
+        //     this.buildGrid();
+        //     this.toastr.success('Edge node is starting!', 'Processing!');
+        //   }, () => this.toastr.error('Edge Node running failed!', 'Oops!'));
+        // } else if (action === 'recreate') {
+        //   this.healthStatusService.recreateEdgeNode().subscribe(() => {
+        //     this.buildGrid();
+        //     this.toastr.success('Edge Node recreation is processing!', 'Processing!');
+        //   }, () => this.toastr.error('Edge Node recreation failed!', 'Oops!'));
       }
     }
   }
@@ -291,8 +316,7 @@
     }
   }
 
-
   public resourseAction(action) {
-      this.toggleResourceAction({environment: this.selected, action: action});
+    this.toggleResourceAction({ environment: this.selected, action: action });
   }
 }
diff --git a/services/self-service/src/main/resources/webapp/src/app/administration/management/management.model.ts b/services/self-service/src/main/resources/webapp/src/app/administration/management/management.model.ts
index 7e9dda2..2e67871 100644
--- a/services/self-service/src/main/resources/webapp/src/app/administration/management/management.model.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/administration/management/management.model.ts
@@ -102,7 +102,6 @@
     public statuses: Array<string>,
     public resources: Array<string>,
     public endpoints: Array<string>,
-
   ) { }
 
   defaultConfigurations(): void {
diff --git a/services/self-service/src/main/resources/webapp/src/app/administration/management/ssn-monitor/ssn-monitor.component.html b/services/self-service/src/main/resources/webapp/src/app/administration/management/ssn-monitor/ssn-monitor.component.html
index 30c818d..a1b2e9f 100644
--- a/services/self-service/src/main/resources/webapp/src/app/administration/management/ssn-monitor/ssn-monitor.component.html
+++ b/services/self-service/src/main/resources/webapp/src/app/administration/management/ssn-monitor/ssn-monitor.component.html
@@ -107,7 +107,14 @@
           </mat-tab>
         </mat-tab-group>
         <div class="text-center">
-          <button type="button" class="butt" mat-raised-button (click)="dialogRef.close()">Close</button>
+          <button 
+            type="button" 
+            class="butt" 
+            mat-raised-button 
+            (click)="dialogRef.close()"
+          >
+            Close
+          </button>
         </div>
       </div>
       <div class="info message" *ngIf="isEmpty(data)">
diff --git a/services/self-service/src/main/resources/webapp/src/app/administration/management/ssn-monitor/ssn-monitor.component.scss b/services/self-service/src/main/resources/webapp/src/app/administration/management/ssn-monitor/ssn-monitor.component.scss
index 9881165..107908c 100644
--- a/services/self-service/src/main/resources/webapp/src/app/administration/management/ssn-monitor/ssn-monitor.component.scss
+++ b/services/self-service/src/main/resources/webapp/src/app/administration/management/ssn-monitor/ssn-monitor.component.scss
@@ -19,8 +19,8 @@
 
 .ssn-monitor-dialog {
   .content-box {
-    padding-top: 10px !important;
     position: relative;
+    padding-top: 10px !important;
   }
   .ssn-info {
     min-height: 400px;
@@ -39,13 +39,13 @@
   .mat-list-item-content {
     display: flex;
     justify-content: initial;
-    color: #577289;
     padding: 15px 5px;
-    border-bottom: 1px solid #f3f2f2;
+    color: #577289;
     font-size: 15px;
+    border-bottom: 1px solid #f3f2f2;
     .col {
       width: 50%;
       font-weight: 300;
-     }
+    }
   }
 }
diff --git a/services/self-service/src/main/resources/webapp/src/app/administration/management/ssn-monitor/ssn-monitor.component.ts b/services/self-service/src/main/resources/webapp/src/app/administration/management/ssn-monitor/ssn-monitor.component.ts
index 1ef7634..5aedc1f 100644
--- a/services/self-service/src/main/resources/webapp/src/app/administration/management/ssn-monitor/ssn-monitor.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/administration/management/ssn-monitor/ssn-monitor.component.ts
@@ -20,6 +20,7 @@
 import { Component, OnInit, ViewEncapsulation } from '@angular/core';
 import { MatDialogRef } from '@angular/material/dialog';
 import { ToastrService } from 'ngx-toastr';
+
 import { DICTIONARY } from '../../../../dictionary/global.dictionary';
 import { HealthStatusService } from '../../../core/services';
 
@@ -42,9 +43,11 @@
   ) { }
 
   ngOnInit() {
-    this.healthStatusService.getSsnMonitorData().subscribe(
+    this.healthStatusService.getSsnMonitorData()
+    .subscribe(
       monitorData => this.data = monitorData,
-      () => this.toastr.error('Failed ssn data loading!', 'Oops!'));
+      () => this.toastr.error('Failed ssn data loading!', 'Oops!')
+    );
   }
 
   public isEmpty(obj) {
diff --git a/services/self-service/src/main/resources/webapp/src/app/administration/project/project-data.service.ts b/services/self-service/src/main/resources/webapp/src/app/administration/project/project-data.service.ts
index a461686..0cb20d2 100644
--- a/services/self-service/src/main/resources/webapp/src/app/administration/project/project-data.service.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/administration/project/project-data.service.ts
@@ -46,17 +46,10 @@
         mergeMap ((response: Project[]) => {
             if (response && this.endpointsList.length) {
               response.forEach(project => project.endpoints.forEach(endpoint => {
-                const filtredEndpoints =  this.endpointsList.filter(v => v.name === endpoint.name);
                 const idx = this.endpointsList.findIndex(v => v.name === endpoint.name);
-                // console.log('IDX ', idx);
-                // if (filtredEndpoints.length) {
                 if (idx >= 0) {
                   endpoint.endpointStatus = this.endpointsList[idx].status;
                 }
-
-                // } else {
-                //   endpoint.endpointStatus = 'N/A';
-                // }
               }));
             }
           return of(response);
diff --git a/services/self-service/src/main/resources/webapp/src/app/administration/project/project-form/project-form.component.html b/services/self-service/src/main/resources/webapp/src/app/administration/project/project-form/project-form.component.html
index 463c344..cd76e97 100644
--- a/services/self-service/src/main/resources/webapp/src/app/administration/project/project-form/project-form.component.html
+++ b/services/self-service/src/main/resources/webapp/src/app/administration/project/project-form/project-form.component.html
@@ -31,7 +31,8 @@
               <div>
                 <a href="#/help/publickeyguide" target="_blank">
                   <small class="helper_instruction">
-                    <i class="material-icons">help_outline</i>Where can I get public key?</small>
+                    <i class="material-icons">help_outline</i>Where can I get public key?
+                  </small>
                 </a>
               </div>
             </div>
@@ -40,40 +41,69 @@
                 <span class="upload-icon"></span> Upload
                 <input (change)="onFileChange($event)" type="file" name="file" accept=".pub" />
               </span>
-              <button mat-raised-button type="button" class="butt butt-generate" [ngClass]="{ 'not-allowed' : item }"
-                (click)="generateUserAccessKey()">
+              <button 
+                mat-raised-button 
+                type="button" 
+                class="butt butt-generate" 
+                [ngClass]="{ 'not-allowed' : item }"
+                (click)="generateUserAccessKey()"
+              >
                 <i class="material-icons">move_to_inbox</i> Generate
               </button>
 
               <div *ngIf="keyLabel" class="m-bott-10 m-top-10 ellipsis" [class.danger_color]="!accessKeyValid">
-                {{ keyLabel }}</div>
+                {{ keyLabel }}
+              </div>
             </div>
           </div>
           <div class="text-center m-bott-10">
-            <button mat-raised-button type="button" class="butt" [disabled]="item" (click)="reset()">Clear</button>
-            <button mat-raised-button type="button" class="butt next" matStepperNext>Next
-              <i class="material-icons arrow-icon">keyboard_arrow_right</i></button>
+            <button 
+              mat-raised-button 
+              type="button" 
+              class="butt" 
+              [disabled]="item" 
+              (click)="reset()"
+            >
+              Clear
+            </button>
+            <button 
+              mat-raised-button 
+              type="button" 
+              class="butt next" 
+              matStepperNext
+            >
+              Next
+              <i class="material-icons arrow-icon">keyboard_arrow_right</i>
+            </button>
           </div>
         </div>
       </section>
     </mat-step>
+
     <mat-step [completed]='false'>
       <ng-template matStepLabel>Project</ng-template>
       <section class="inner-step mat-reset">
-
         <div class="form-block">
           <div>
             <div class="control-group m-bott-10">
               <label class="label">Project name</label>
               <div class="control">
-                <input type="text" formControlName="name" placeholder="Enter project name"
-                  (blur)="generateProjectTag($event)" [ngClass]="{ 'not-allowed' : item }">
-                <span class="error" *ngIf="projectForm?.controls.name.hasError('duplication')">This project name already
-                  exists.</span>
-                <span class="error" *ngIf="!projectForm?.controls.name.valid
-                  && !projectForm?.controls.name.hasError('duplication')
-                  && !projectForm?.controls.name.hasError('limit')
-                  && projectForm?.controls.name.dirty">
+                <input 
+                  type="text" 
+                  formControlName="name" 
+                  placeholder="Enter project name"
+                  (blur)="generateProjectTag($event)" 
+                  [ngClass]="{ 'not-allowed' : item }"
+                />
+                <span class="error" *ngIf="projectForm?.controls.name.hasError('duplication')">
+                  This project name already exists.
+                </span>
+                <span 
+                  class="error" 
+                  *ngIf="!projectForm?.controls.name.valid
+                      && !projectForm?.controls.name.hasError('duplication')
+                      && !projectForm?.controls.name.hasError('limit')
+                      && projectForm?.controls.name.dirty">
                   Project name can only contain letters and numbers.
                 </span>
                 <span class="error" *ngIf="projectForm?.controls.name.hasError('limit')">
@@ -84,8 +114,13 @@
             <div class="control-group m-bott-10">
               <label class="label">Project tag</label>
               <div class="control">
-                <input readonly type="text" formControlName="tag" placeholder="< equal to project name >"
-                  class="not-allowed">
+                <input 
+                  readonly 
+                  type="text" 
+                  formControlName="tag" 
+                  placeholder="< equal to project name >"
+                  class="not-allowed"
+                />
               </div>
             </div>
             <div class="control-group m-bott-10">
@@ -97,7 +132,8 @@
                     disableOptionCentering 
                     formControlName="endpoints" 
                     placeholder="Select endpoints"
-                    panelClass="crete-project-dialog scrolling">
+                    panelClass="crete-project-dialog scrolling"
+                  >
                     <mat-option class="multiple-select" disabled>
                       <a class="select ani" (click)="selectOptions(endpointsList, 'endpoints', 'all')">
                         <i class="material-icons">playlist_add_check</i>&nbsp;All
@@ -107,12 +143,20 @@
                         <i class="material-icons">clear</i>&nbsp;None
                       </a>
                     </mat-option>
-                    <mat-option *ngFor="let endpoint of endpointsList" [value]="endpoint.name"
-                      [disabled]="isDisabled(endpoint.name) || endpoint.status !== 'ACTIVE'">
+                    <mat-option 
+                      *ngFor="let endpoint of endpointsList" 
+                      [value]="endpoint.name"
+                      [disabled]="isDisabled(endpoint.name) || endpoint.status !== 'ACTIVE'"
+                    >
                       {{ endpoint.name === 'local' ? endpoint.name : endpoint.name + (endpoint.status !== 'ACTIVE' ? ' (inactive)' : '')}}
                     </mat-option>
-                    <mat-option *ngIf="!endpointsList.length" class="multiple-select empty ml-10" disabled>
-                      Endpoints list is empty</mat-option>
+                    <mat-option 
+                      *ngIf="!endpointsList.length" 
+                      class="multiple-select empty ml-10" 
+                      disabled
+                    >
+                      Endpoints list is empty
+                    </mat-option>
                   </mat-select>
                   <button class="caret">
                     <i class="material-icons">keyboard_arrow_down</i>
@@ -123,16 +167,35 @@
           </div>
 
           <div class="text-center m-bott-10">
-            <button mat-raised-button type="button" class="butt" [disabled]="item" (click)="reset()">Clear</button>
-            <button mat-raised-button matStepperPrevious class="butt"><i
-                class="material-icons arrow-icon">keyboard_arrow_left</i>Back</button>
-            <button mat-raised-button type="button" class="butt next" matStepperNext>Next<i
-                class="material-icons arrow-icon">keyboard_arrow_right</i></button>
+            <button 
+              mat-raised-button 
+              type="button" 
+              class="butt" 
+              [disabled]="item" 
+              (click)="reset()"
+            >
+              Clear
+            </button>
+            <button 
+              mat-raised-button 
+              matStepperPrevious 
+              class="butt"
+            >
+              <i class="material-icons arrow-icon">keyboard_arrow_left</i>Back
+            </button>
+            <button 
+              mat-raised-button 
+              type="button" 
+              class="butt next" 
+              matStepperNext
+            >
+              Next<i class="material-icons arrow-icon">keyboard_arrow_right</i>
+            </button>
           </div>
         </div>
-
       </section>
     </mat-step>
+
     <mat-step [completed]='false'>
       <ng-template matStepLabel>Groups</ng-template>
       <div class="inner-step mat-reset">
@@ -146,7 +209,8 @@
                   disableOptionCentering 
                   formControlName="groups" 
                   placeholder="Select user groups"
-                  panelClass="crete-project-dialog scrolling">
+                  panelClass="crete-project-dialog scrolling"
+                >
                   <mat-option class="multiple-select" disabled>
                     <a class="select ani" (click)="selectOptions(groupsList, 'groups', 'all')">
                       <i class="material-icons">playlist_add_check</i>&nbsp;All
@@ -158,7 +222,8 @@
                   <mat-option *ngFor="let group of groupsList" [value]="group">
                     {{ group }}
                   </mat-option>
-                  <mat-option *ngIf="!groupsList.length" class="multiple-select ml-10" disabled>Groups list is empty
+                  <mat-option *ngIf="!groupsList.length" class="multiple-select ml-10" disabled>
+                    Groups list is empty
                   </mat-option>
                 </mat-select>
                 <button class="caret">
@@ -173,11 +238,29 @@
 <!--                <span class="hold-label">Use shared image</span>-->
 <!--              </mat-slide-toggle>-->
 <!--            </div>-->
-            <button mat-raised-button type="button" class="butt" [disabled]="item" (click)="reset()">Clear</button>
-            <button mat-raised-button matStepperPrevious class="butt"><i
-                class="material-icons arrow-icon">keyboard_arrow_left</i>Back</button>
-            <button mat-raised-button type="button" class="butt butt-success" [disabled]="!projectForm.valid"
-              (click)="confirm(projectForm.value)">
+            <button 
+              mat-raised-button 
+              type="button" 
+              class="butt" 
+              [disabled]="item" 
+              (click)="reset()"
+            >
+              Clear
+            </button>
+            <button 
+              mat-raised-button 
+              matStepperPrevious 
+              class="butt"
+            >
+              <i class="material-icons arrow-icon">keyboard_arrow_left</i>Back
+            </button>
+            <button 
+              mat-raised-button 
+              type="button" 
+              class="butt butt-success" 
+              [disabled]="!projectForm.valid"
+              (click)="confirm(projectForm.value)"
+            >
               <span *ngIf="item; else update">Update</span>
               <ng-template #update>Create</ng-template>
             </button>
diff --git a/services/self-service/src/main/resources/webapp/src/app/administration/project/project-form/project-form.component.scss b/services/self-service/src/main/resources/webapp/src/app/administration/project/project-form/project-form.component.scss
index 54a9244..3e11ea2 100644
--- a/services/self-service/src/main/resources/webapp/src/app/administration/project/project-form/project-form.component.scss
+++ b/services/self-service/src/main/resources/webapp/src/app/administration/project/project-form/project-form.component.scss
@@ -32,16 +32,16 @@
 
         .ellipsis {
           position: absolute;
-          width: 100%;
           right: 0;
+          width: 100%;
         }
       }
     }
   }
 
   &.split {
-    flex-direction: column;
     display: flex;
+    flex-direction: column;
     justify-content: space-between;
     height: 240px;
   }
@@ -58,7 +58,7 @@
     position: absolute;
     right: 0;
     bottom: -2px;
-    font-family: 'Open Sans', sans-serif;
+    font-family: "Open Sans", sans-serif;
     font-weight: 300;
   }
 }
@@ -76,6 +76,6 @@
 
 .mat-form-field {
   .mat-select {
-    font-family: 'Open Sans', sans-serif;
+    font-family: "Open Sans", sans-serif;
   }
 }
diff --git a/services/self-service/src/main/resources/webapp/src/app/administration/project/project-form/project-form.component.ts b/services/self-service/src/main/resources/webapp/src/app/administration/project/project-form/project-form.component.ts
index 69c709d..b5cd1b8 100644
--- a/services/self-service/src/main/resources/webapp/src/app/administration/project/project-form/project-form.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/administration/project/project-form/project-form.component.ts
@@ -20,6 +20,7 @@
 import { Component, OnInit, Input, Output, EventEmitter, ViewChild, ChangeDetectorRef } from '@angular/core';
 import { FormGroup, FormBuilder, Validators } from '@angular/forms';
 import { MatStepper } from '@angular/material/stepper';
+import {MatDialog} from '@angular/material/dialog';
 import { ToastrService } from 'ngx-toastr';
 import { Subscription } from 'rxjs';
 
@@ -29,7 +30,6 @@
 import { Project } from '../project.component';
 import { DICTIONARY } from '../../../../dictionary/global.dictionary';
 import {ConfirmationDialogComponent} from '../../../shared/modal-dialog/confirmation-dialog';
-import {MatDialog} from '@angular/material/dialog';
 
 export interface GenerateKey { privateKey: string; publicKey: string; }
 
@@ -83,15 +83,20 @@
   }
 
   private updateProject(data: any) {
-    this.projectService.updateProject(data).subscribe(() => {
-      this.toastr.success('Project updated successfully!', 'Success!');
-      this.update.emit();
-    }, error => this.toastr.error(error.message || 'Project update failed!', 'Oops!'));
+    this.projectService.updateProject(data)
+      .subscribe(
+        () => {
+          this.toastr.success('Project updated successfully!', 'Success!');
+          this.update.emit();
+        }, 
+        error => this.toastr.error(error.message || 'Project update failed!', 'Oops!')
+      );
   }
 
   public confirm(data) {
     if (this.item) {
       const deletedGroups = this.item.groups.filter((v) => !(this.projectForm.value.groups.includes(v)));
+      
       if (deletedGroups.length) {
         this.dialog.open(ConfirmationDialogComponent, {
           data: {notebook: deletedGroups, type: 5, manageAction: true}, panelClass: 'modal-md'
diff --git a/services/self-service/src/main/resources/webapp/src/app/administration/project/project-list/project-list.component.html b/services/self-service/src/main/resources/webapp/src/app/administration/project/project-list/project-list.component.html
index 1831faa..c1f54d1 100644
--- a/services/self-service/src/main/resources/webapp/src/app/administration/project/project-list/project-list.component.html
+++ b/services/self-service/src/main/resources/webapp/src/app/administration/project/project-list/project-list.component.html
@@ -18,107 +18,106 @@
   -->
 <div class="table-wrapper scrolling">
   <table mat-table [dataSource]="dataSource" class="projects-table mat-elevation-z6 selection">
-  <ng-container matColumnDef="name">
-    <th mat-header-cell *matHeaderCellDef class="name"> Project name </th>
-    <td mat-cell *matCellDef="let element" class="name project-name"> {{element.name}} </td>
-  </ng-container>
+    <ng-container matColumnDef="name">
+      <th mat-header-cell *matHeaderCellDef class="name"> Project name </th>
+      <td mat-cell *matCellDef="let element" class="name project-name"> {{element.name}} </td>
+    </ng-container>
 
-  <ng-container matColumnDef="groups">
-    <th mat-header-cell *matHeaderCellDef class="groups"> Group </th>
-    <td mat-cell *matCellDef="let element" class="groups">
-      <div class="mat-chip-list-wrap scrolling">
-        <mat-chip-list>
-          <mat-chip *ngFor="let group of element.groups"
-                    [matTooltip]="group"
-                    matTooltipPosition="above"
-                    class="ellipsis"
-          >
-            {{ group }}
-          </mat-chip>
-        </mat-chip-list>
-      </div>
-    </td>
-  </ng-container>
+    <ng-container matColumnDef="groups">
+      <th mat-header-cell *matHeaderCellDef class="groups"> Group </th>
+      <td mat-cell *matCellDef="let element" class="groups">
+        <div class="mat-chip-list-wrap scrolling">
+          <mat-chip-list>
+            <mat-chip 
+              *ngFor="let group of element.groups"
+              [matTooltip]="group"
+              matTooltipPosition="above"
+              class="ellipsis"
+            >
+              {{ group }}
+            </mat-chip>
+          </mat-chip-list>
+        </div>
+      </td>
+    </ng-container>
 
-  <ng-container matColumnDef="endpoints">
-    <th mat-header-cell *matHeaderCellDef class="endpoints">
-      <span class="label-endpoint"> Endpoint </span>
-      <span class="label-endpoint-status"> Endpoint status </span>
-      <span class="label-status">Edge node status </span>
-    </th>
-    <td mat-cell *matCellDef="let element" class="source endpoints">
-      <div *ngIf="!element.endpoints?.length; else list">
-        <span *ngIf="!element.endpoints.length" class="no-details">no details</span>
-      </div>
-      <ng-template #list>
-        <div *ngFor="let endpoint of element.endpoints" class="resource-wrap">
-          <div class="resource-name">
-            <a class="project-endpoint-name">
-              {{ endpoint.name }}
-            </a>
-          </div>
-          <div class="resource-status">
-            <span [ngClass]="{'active' : endpoint.endpointStatus === 'ACTIVE', 'failed': endpoint.endpointStatus === 'INACTIVE'}">
-              {{ (endpoint.endpointStatus | titlecase) || 'N/A'}}
+    <ng-container matColumnDef="endpoints">
+      <th mat-header-cell *matHeaderCellDef class="endpoints">
+        <span class="label-endpoint"> Endpoint </span>
+        <span class="label-endpoint-status"> Endpoint status </span>
+        <span class="label-status">Edge node status </span>
+      </th>
+      <td mat-cell *matCellDef="let element" class="source endpoints">
+        <div *ngIf="!element.endpoints?.length; else list">
+          <span *ngIf="!element.endpoints.length" class="no-details">no details</span>
+        </div>
+        <ng-template #list>
+          <div *ngFor="let endpoint of element.endpoints" class="resource-wrap">
+            <div class="resource-name">
+              <a class="project-endpoint-name">
+                {{ endpoint.name }}
+              </a>
+            </div>
+            <div class="resource-status">
+              <span [ngClass]="{'active' : endpoint.endpointStatus === 'ACTIVE', 'failed': endpoint.endpointStatus === 'INACTIVE'}">
+                {{ (endpoint.endpointStatus | titlecase) || 'N/A'}}
+              </span>
+            </div>
+            
+            <span class="status resource-status" [ngClass]="endpoint?.status.toLowerCase() || ''">
+              {{ endpoint?.status.toLowerCase() }}
             </span>
           </div>
+        </ng-template>
+      </td>
+    </ng-container>
 
-          <span class="status resource-status"
-            [ngClass]="endpoint?.status.toLowerCase() || ''">{{ endpoint?.status.toLowerCase() }}</span>
-        </div>
-      </ng-template>
-    </td>
-  </ng-container>
+    <ng-container matColumnDef="actions">
+      <th mat-header-cell *matHeaderCellDef class="project-actions">
+        <span class="label"> Actions </span>
+      </th>
+      <td mat-cell *matCellDef="let element" class="settings">
+        <span #settings (click)="actions.toggle($event, settings)" class="actions"></span>
+        <bubble-up #actions class="list-menu" position="bottom-left" alternative="top-left">
+          <ul class="list-unstyled actions-list">
+            <div class="active-items"></div>
+            <li class="project-seting-item" *ngIf="element.areStoppedNode" (click)="openEdgeDialog('start', element)">
+              <i class="material-icons">play_circle_outline</i>
+              <a class="action">
+                Start edge node
+              </a>
+            </li>
+            <li class="project-seting-item" *ngIf="element.areRunningNode" (click)="openEdgeDialog('stop', element )">
+              <i class="material-icons">pause_circle_outline</i>
+              <a class="action" >
+                Stop edge node
+              </a>
+            </li>
+            <li class="project-seting-item " *ngIf="element.areTerminatedNode" (click)="openEdgeDialog('recreate', element)">
+              <i class="material-icons">refresh</i>
+              <a class="action">
+                Recreate edge node
+              </a>
+            </li>
+            <li class="project-seting-item " *ngIf="element.areStoppedNode || element.areRunningNode" (click)="openEdgeDialog('terminate', element)">
+              <i class="material-icons">phonelink_off</i>
+              <a class="action">
+                Terminate edge node
+              </a>
+            </li>
+            <li class="project-seting-item" (click)="editProject(element)" *ngIf="!isProjectAdmin">
+              <i class="material-icons">mode_edit</i>
+              <a >
+                Edit project
+              </a>
+            </li>
+          </ul>
+        </bubble-up>
+      </td>
+      <td class="settings"></td>
+    </ng-container>
 
-  <ng-container matColumnDef="actions">
-    <th mat-header-cell *matHeaderCellDef class="project-actions">
-      <span class="label"> Actions </span>
-    </th>
-    <td mat-cell *matCellDef="let element" class="settings">
-      <span #settings (click)="actions.toggle($event, settings)" class="actions"></span>
-      <bubble-up #actions class="list-menu" position="bottom-left" alternative="top-left">
-        <ul class="list-unstyled actions-list">
-          <div class="active-items"></div>
-          <li class="project-seting-item" *ngIf="element.areStoppedNode" (click)="openEdgeDialog('start', element)">
-            <i class="material-icons">play_circle_outline</i>
-            <a class="action">
-              Start edge node
-            </a>
-          </li>
-          <li class="project-seting-item" *ngIf="element.areRunningNode" (click)="openEdgeDialog('stop', element )">
-            <i class="material-icons">pause_circle_outline</i>
-            <a class="action" >
-              Stop edge node
-            </a>
-          </li>
-           <li class="project-seting-item " *ngIf="element.areTerminatedNode" (click)="openEdgeDialog('recreate', element)">
-            <i class="material-icons">refresh</i>
-            <a class="action">
-              Recreate edge node
-            </a>
-          </li>
-          <li class="project-seting-item " *ngIf="element.areStoppedNode || element.areRunningNode" (click)="openEdgeDialog('terminate', element)">
-            <i class="material-icons">phonelink_off</i>
-            <a class="action">
-              Terminate edge node
-            </a>
-          </li>
-          <li class="project-seting-item" (click)="editProject(element)" *ngIf="!isProjectAdmin">
-            <i class="material-icons">mode_edit</i>
-            <a >
-              Edit project
-            </a>
-          </li>
-        </ul>
-      </bubble-up>
-    </td>
-    <td class="settings">
-
-    </td>
-
-  </ng-container>
-
-  <tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
-  <tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
-</table>
+    <tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
+    <tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
+  </table>
 </div>
diff --git a/services/self-service/src/main/resources/webapp/src/app/administration/project/project-list/project-list.component.scss b/services/self-service/src/main/resources/webapp/src/app/administration/project/project-list/project-list.component.scss
index 140feb4..836b822 100644
--- a/services/self-service/src/main/resources/webapp/src/app/administration/project/project-list/project-list.component.scss
+++ b/services/self-service/src/main/resources/webapp/src/app/administration/project/project-list/project-list.component.scss
@@ -17,13 +17,12 @@
  * under the License.
  */
 
-
-.table-wrapper{
+.table-wrapper {
+  position: relative;
+  margin: 0 -15px -15px -15px;
+  padding: 0 15px 15px 15px;
   height: calc(100vh - 120px);
   overflow: auto;
-  position: relative;
-  margin:  0 -15px -15px -15px;
-  padding: 0 15px 15px 15px;
   .mat-header-cell {
     position: sticky;
     top: 0;
@@ -31,6 +30,7 @@
     background: white;
   }
 }
+
 table {
   width: 100%;
 
@@ -41,16 +41,16 @@
   .name {
     width: 25%;
     padding: 20px 0 10px 24px;
-    &.project-name{
+    &.project-name {
       padding-top: 10px;
     }
   }
 
-  th.name{
+  th.name {
     padding-top: 10px;
   }
 
-  .mat-header-row{
+  .mat-header-row {
     padding-top: 12px;
   }
 
@@ -59,13 +59,15 @@
     padding: 15px 0;
 
     .resource-wrap {
-      .resource-name, .resource-status {
+      .resource-name,
+      .resource-status {
         width: 30%;
         padding-left: 0;
       }
     }
 
-    .label-endpoint, .label-endpoint-status {
+    .label-endpoint,
+    .label-endpoint-status {
       display: inline-block;
       width: 30%;
     }
@@ -75,7 +77,7 @@
     }
 
     &.source {
-      &.endpoints .resource-wrap{
+      &.endpoints .resource-wrap {
         justify-content: flex-start;
       }
       .no-details {
@@ -94,19 +96,19 @@
   }
 
   .project-actions {
-    color: #607d8b;
     width: 10%;
+    padding: 10px 24px;
+    color: #607d8b;
     text-align: right;
     vertical-align: top;
-    padding: 10px 24px;
 
-    &.mat-header-cell{
+    &.mat-header-cell {
       padding-top: 19px;
-      color: rgba(0,0,0,.54);
+      color: rgba(0, 0, 0, 0.54);
     }
 
     span:not(.mat-header-cell span) {
-      transition: all .5s ease-in-out;
+      transition: all 0.5s ease-in-out;
       cursor: pointer;
 
       .mat-icon {
@@ -126,47 +128,49 @@
   vertical-align: middle !important;
   text-align: right;
   .actions {
-    margin-top: 3px;
-    background-image: url(../../../../assets/svg/settings_icon.svg);
+    display: inline-block;
     width: 16px;
     height: 16px;
-    display: inline-block;
+    margin-top: 3px;
+    background-image: url(../../../../assets/svg/settings_icon.svg);
     text-align: center;
     cursor: pointer;
   }
 }
-.project-seting-item{
+
+.project-seting-item {
   display: flex;
-  padding: 10px;
   align-items: center;
+  padding: 10px;
   border-bottom: 1px solid #edf1f5;
   cursor: pointer;
   color: #577289;
-  &:last-child{
+  &:last-child {
     border-bottom: none;
   }
-  &:hover{
+  &:hover {
     color: #36afd5;
-    transition: all .45s ease-in-out;
+    transition: all 0.45s ease-in-out;
   }
-  a{
+  a {
     padding-left: 5px;
   }
 }
+
 .material-icons {
   font-size: 18px;
   padding-top: 1px;
 }
 
-.list-menu{
+.list-menu {
   min-width: 205px;
 }
 
-.project-endpoint-name{
-   color: #577289;
+.project-endpoint-name {
+  color: #577289;
 }
 
-.actions-list{
+.actions-list {
   padding: 10px 15px;
 }
 
@@ -174,8 +178,4 @@
   max-width: 200px !important;
   white-space: nowrap;
   display: inline-block;
-}
-
-
-
-
+}
\ No newline at end of file
diff --git a/services/self-service/src/main/resources/webapp/src/app/administration/project/project-list/project-list.component.ts b/services/self-service/src/main/resources/webapp/src/app/administration/project/project-list/project-list.component.ts
index 6ee2f2a..41a2127 100644
--- a/services/self-service/src/main/resources/webapp/src/app/administration/project/project-list/project-list.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/administration/project/project-list/project-list.component.ts
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-import {Component, OnInit, Output, EventEmitter, OnDestroy, Inject, Input} from '@angular/core';
+import { Component, OnInit, Output, EventEmitter, OnDestroy, Inject, Input } from '@angular/core';
 import { ToastrService } from 'ngx-toastr';
 import { MatTableDataSource } from '@angular/material/table';
 import { Subscription } from 'rxjs';
@@ -25,11 +25,8 @@
 
 import { ProjectDataService } from '../project-data.service';
 import { Project, Endpoint } from '../project.component';
-import { CheckUtils } from '../../../core/util';
 import {ProgressBarService} from '../../../core/services/progress-bar.service';
 import {EdgeActionDialogComponent} from '../../../shared/modal-dialog/edge-action-dialog';
-import {EndpointService} from '../../../core/services';
-
 
 @Component({
   selector: 'project-list',
@@ -47,16 +44,14 @@
   @Output() toggleStatus: EventEmitter<{}> = new EventEmitter();
   private subscriptions: Subscription = new Subscription();
 
-  constructor(
+  constructor (
     public toastr: ToastrService,
     private projectDataService: ProjectDataService,
     private progressBarService: ProgressBarService,
     @Inject(MAT_DIALOG_DATA) public data: any,
     public dialogRef: MatDialogRef<ProjectListComponent>,
     public dialog: MatDialog,
-  ) {
-  }
-
+  ) { }
 
   ngOnInit() {
     this.getProjectList();
@@ -68,23 +63,30 @@
 
   private getProjectList() {
     this.progressBarService.startProgressBar();
-    this.subscriptions.add(this.projectDataService._projects.subscribe((value: Project[]) => {
-      this.projectList = value;
-      if (this.projectList) {
-        this.projectList.forEach(project => {
-          project.areRunningNode = this.areResoursesInStatuses(project.endpoints, ['RUNNING']);
-          project.areStoppedNode = this.areResoursesInStatuses(project.endpoints, ['STOPPED']);
-          project.areTerminatedNode = this.areResoursesInStatuses(project.endpoints, ['TERMINATED', 'FAILED']);
-        });
-      }
-      if (value) this.dataSource = new MatTableDataSource(value);
-      this.progressBarService.stopProgressBar();
-    }, () => this.progressBarService.stopProgressBar()));
+    this.subscriptions.add(this.projectDataService._projects
+      .subscribe(
+        (value: Project[]) => {
+          this.projectList = value;
+          if (this.projectList) {
+            this.projectList.forEach(project => {
+              project.areRunningNode = this.areResoursesInStatuses(project.endpoints, ['RUNNING']);
+              project.areStoppedNode = this.areResoursesInStatuses(project.endpoints, ['STOPPED']);
+              project.areTerminatedNode = this.areResoursesInStatuses(project.endpoints, ['TERMINATED', 'FAILED']);
+            });
+          }
+          if (value) this.dataSource = new MatTableDataSource(value);
+          this.progressBarService.stopProgressBar();
+        }, 
+        () => this.progressBarService.stopProgressBar()
+      )
+    );
   }
 
   public showActiveInstances(): void {
     const filteredList = this.projectList.map(project => {
-      project.endpoints = project.endpoints.filter((endpoint: Endpoint) => endpoint.status !== 'TERMINATED' && endpoint.status !== 'TERMINATING' && endpoint.status !== 'FAILED');
+      project.endpoints = project.endpoints.filter((endpoint: Endpoint) => {
+        return endpoint.status !== 'TERMINATED' && endpoint.status !== 'TERMINATING' && endpoint.status !== 'FAILED'
+      });
       return project;
     });
 
@@ -96,32 +98,34 @@
   }
 
   public openEdgeDialog(action, project) {
-      const endpoints = project.endpoints.filter(endpoint => {
-        if (action === 'stop') {
-          return endpoint.status === 'RUNNING';
-        }
-        if (action === 'start') {
-          return endpoint.status === 'STOPPED';
-        }
-        if (action === 'terminate') {
-          return endpoint.status === 'RUNNING' || endpoint.status === 'STOPPED';
-        }
-        if (action === 'recreate') {
-          return endpoint.status === 'TERMINATED' || endpoint.status === 'FAILED';
-        }
-      });
-      if (action === 'terminate' && endpoints.length === 1) {
-        this.toggleStatus.emit({project, endpoint: endpoints, action, oneEdge: true});
-      } else {
-        this.dialog.open(EdgeActionDialogComponent, {data: {type: action, item: endpoints}, panelClass: 'modal-sm'})
-          .afterClosed().subscribe(endpoint => {
+    const endpoints = project.endpoints.filter(endpoint => {
+      if (action === 'stop') {
+        return endpoint.status === 'RUNNING';
+      }
+      if (action === 'start') {
+        return endpoint.status === 'STOPPED';
+      }
+      if (action === 'terminate') {
+        return endpoint.status === 'RUNNING' || endpoint.status === 'STOPPED';
+      }
+      if (action === 'recreate') {
+        return endpoint.status === 'TERMINATED' || endpoint.status === 'FAILED';
+      }
+    });
+    if (action === 'terminate' && endpoints.length === 1) {
+      this.toggleStatus.emit({ project, endpoint: endpoints, action, oneEdge: true });
+    } else {
+      this.dialog.open(EdgeActionDialogComponent, { data: { type: action, item: endpoints }, panelClass: 'modal-sm' })
+        .afterClosed().subscribe(
+          endpoint => {
             if (endpoint && endpoint.length) {
               this.toggleStatus.emit({project, endpoint, action});
             }
-          }, error => this.toastr.error(error.message || `Endpoint ${action} failed!`, 'Oops!')
+          }, 
+          error => this.toastr.error(error.message || `Endpoint ${action} failed!`, 'Oops!')
         );
-      }
     }
+  }
 
   public areResoursesInStatuses(resources, statuses: Array<string>) {
     return resources.some(resource => statuses.some(status => resource.status === status));
diff --git a/services/self-service/src/main/resources/webapp/src/app/administration/project/project.component.html b/services/self-service/src/main/resources/webapp/src/app/administration/project/project.component.html
index 76f0be1..22c759d 100644
--- a/services/self-service/src/main/resources/webapp/src/app/administration/project/project.component.html
+++ b/services/self-service/src/main/resources/webapp/src/app/administration/project/project.component.html
@@ -25,12 +25,21 @@
       matTooltipPosition="above"
       [matTooltipDisabled]="healthStatus?.admin"
     >
-      <button mat-raised-button class="butt butt-create" (click)="createProject()" [disabled]="!projectList.length || !healthStatus?.admin && healthStatus?.projectAdmin">
+      <button 
+        mat-raised-button 
+        class="butt butt-create" 
+        (click)="createProject()" 
+        [disabled]="!projectList.length || !healthStatus?.admin && healthStatus?.projectAdmin"
+      >
         <i class="material-icons">add</i>Create new
       </button>
     </div>
     <div>
-      <button mat-raised-button class="butt butt-tool mr-10" (click)="toggleFiltering()">
+      <button 
+        mat-raised-button 
+        class="butt butt-tool mr-10" 
+        (click)="toggleFiltering()"
+      >
         <span *ngIf="!activeFiltering">
           <i class="material-icons">visibility_off</i> Show active
         </span>
@@ -38,7 +47,12 @@
           <i class="material-icons">visibility</i> Show all
         </span>
       </button>
-      <button mat-raised-button class="butt" (click)="refreshGrid()" [hidden]="!projectList.length">
+      <button 
+        mat-raised-button 
+        class="butt" 
+        (click)="refreshGrid()" 
+        [hidden]="!projectList.length"
+      >
         <i class="material-icons refresh-icon">autorenew</i>Refresh
       </button>
     </div>
@@ -51,8 +65,11 @@
   </mat-card>
 
   <div [hidden]="!projectList.length">
-    <project-list (editItem)="editProject($event)" (toggleStatus)="toggleStatus($event)" [isProjectAdmin]="!healthStatus?.admin && healthStatus?.projectAdmin">
-    </project-list>
+    <project-list 
+      (editItem)="editProject($event)" 
+      (toggleStatus)="toggleStatus($event)" 
+      [isProjectAdmin]="!healthStatus?.admin && healthStatus?.projectAdmin"
+    ></project-list>
   </div>
 
   <inform-message [message]="noPermissionMessage" *ngIf="!healthStatus?.admin && healthStatus?.projectAdmin && !projectList.length"></inform-message>
diff --git a/services/self-service/src/main/resources/webapp/src/app/administration/project/project.component.ts b/services/self-service/src/main/resources/webapp/src/app/administration/project/project.component.ts
index a646ebb..1409c7b 100644
--- a/services/self-service/src/main/resources/webapp/src/app/administration/project/project.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/administration/project/project.component.ts
@@ -23,7 +23,7 @@
 import { ToastrService } from 'ngx-toastr';
 
 import { ProjectDataService } from './project-data.service';
-import {HealthStatusService, ProjectService, UserResourceService} from '../../core/services';
+import {HealthStatusService, ProjectService } from '../../core/services';
 import { NotificationDialogComponent } from '../../shared/modal-dialog/notification-dialog';
 import { ProjectListComponent } from './project-list/project-list.component';
 import { EnvironmentsDataService } from '../management/management-data.service';
@@ -72,10 +72,11 @@
 
   ngOnInit() {
     this.getEnvironmentHealthStatus();
-    this.subscriptions.add(this.projectDataService._projects.subscribe(
-      (value: Project[]) => {
+    this.subscriptions.add(this.projectDataService._projects
+      .subscribe((value: Project[]) => {
         if (value) this.projectList = value;
-      }));
+      })
+    );
     this.refreshGrid();
     this.getResources();
   }
@@ -85,9 +86,10 @@
   }
 
   private getResources() {
-    this.environmentsDataService.getEnvironmentDataDirect().subscribe((data: any) => {
-      this.resources = data;
-    });
+    this.environmentsDataService.getEnvironmentDataDirect()
+      .subscribe((data: any) => {
+        this.resources = data;
+      });
   }
 
   refreshGrid() {
@@ -105,9 +107,7 @@
 
   public toggleFiltering(): void {
     this.activeFiltering = !this.activeFiltering;
-
     this.activeFiltering ? this.list.showActiveInstances() : this.projectDataService.updateProjects();
-
   }
 
   public editProject($event) {
@@ -143,7 +143,8 @@
         this.edgeNodeAction(data, action);
       } else {
         this.dialog.open(NotificationDialogComponent, { data: {
-            type: 'terminateNode', item: {action: data, resources: termResources}
+            type: 'terminateNode', 
+            item: {action: data, resources: termResources}
           }, panelClass: 'modal-sm' })
           .afterClosed().subscribe(result => {
           result && this.edgeNodeAction(data, action);
@@ -155,12 +156,16 @@
   }
 
   private edgeNodeAction(data, action) {
-    this.projectService.toggleProjectStatus(data, action).subscribe(() => {
-      this.refreshGrid();
-      this.toastr.success(`Edge node ${this.toEndpointAction(action)} is in progress!`, 'Processing!');
-    }, error => {
-      this.toastr.error(error.message, 'Oops!');
-    });
+    this.projectService.toggleProjectStatus(data, action)
+      .subscribe(
+        () => {
+          this.refreshGrid();
+          this.toastr.success(`Edge node ${this.toEndpointAction(action)} is in progress!`, 'Processing!');
+        }, 
+        error => {
+          this.toastr.error(error.message, 'Oops!');
+        }
+      );
   }
 
   private getEnvironmentHealthStatus() {
@@ -169,15 +174,10 @@
   }
 
   private toEndpointAction(action) {
-    if (action === 'start') {
-      return 'starting';
-    } else if (action === 'stop') {
-      return 'stopping';
-    } else if (action === 'terminate') {
-      return 'terminating';
-    } else {
-      return action;
-    }
+    if (action === 'start') return 'starting';
+    else if (action === 'stop') return 'stopping';
+    else if (action === 'terminate') return 'terminating';
+    else return action;
   }
 }
 
diff --git a/services/self-service/src/main/resources/webapp/src/app/administration/roles/roles.component.html b/services/self-service/src/main/resources/webapp/src/app/administration/roles/roles.component.html
index 400048c..c5d04a7 100644
--- a/services/self-service/src/main/resources/webapp/src/app/administration/roles/roles.component.html
+++ b/services/self-service/src/main/resources/webapp/src/app/administration/roles/roles.component.html
@@ -23,8 +23,12 @@
          matTooltipPosition="above"
          [matTooltipDisabled]="healthStatus?.admin"
     >
-      <button mat-raised-button class="butt add-group" (click)="stepperView = !stepperView" [disabled]="!healthStatus?.admin"
-              >
+      <button 
+        mat-raised-button 
+        class="butt add-group" 
+        (click)="stepperView = !stepperView" 
+        [disabled]="!healthStatus?.admin"
+      >
         <i class="material-icons">people_outline</i>Add group
       </button>
     </div>
@@ -36,19 +40,35 @@
       <mat-step [completed]='false'>
         <ng-template matStepLabel>Groups</ng-template>
         <div class="inner-step mat-reset">
-          <input [validator]="groupValidation()" type="text" placeholder="Enter group name" [(ngModel)]="setupGroup"
-            #setupGroupName="ngModel">
-          <div class="error" *ngIf="setupGroupName.errors?.patterns && setupGroupName.dirty">Group name can only
-            contain letters, numbers, hyphens and '_'.</div>
-          <div class="error" *ngIf="setupGroupName.errors?.duplicate && setupGroupName.dirty">Group name already
-            exists.</div>
-          <div class="error" *ngIf="setupGroupName.errors?.long">Group name cannot be longer than {{maxGroupLength}} characters.</div>
+          <input 
+            [validator]="groupValidation()" 
+            type="text" 
+            placeholder="Enter group name" 
+            [(ngModel)]="setupGroup"
+            #setupGroupName="ngModel" 
+          />
+          <div class="error" *ngIf="setupGroupName.errors?.patterns && setupGroupName.dirty">
+            Group name can only contain letters, numbers, hyphens and '_'.
+          </div>
+          <div class="error" *ngIf="setupGroupName.errors?.duplicate && setupGroupName.dirty">
+            Group name already exists.
+          </div>
+          <div class="error" *ngIf="setupGroupName.errors?.long">
+            Group name cannot be longer than {{maxGroupLength}} characters.
+          </div>
         </div>
         <div class="text-center m-bott-10">
-          <button mat-raised-button (click)="resetDialog()" class="butt">Cancel</button>
-          <button mat-raised-button
-                  matStepperNext class="butt"
-                  [disabled]="!setupGroup || setupGroupName.errors?.long || setupGroupName.errors?.duplicate || setupGroupName.errors?.patterns"
+          <button 
+            mat-raised-button 
+            (click)="resetDialog()" 
+            class="butt"
+          >
+            Cancel
+          </button>
+          <button 
+            mat-raised-button
+            matStepperNext class="butt"
+            [disabled]="!setupGroup || setupGroupName.errors?.long || setupGroupName.errors?.duplicate || setupGroupName.errors?.patterns"
           >
             Next
             <i class="material-icons arrow-icon">keyboard_arrow_right</i>
@@ -59,14 +79,20 @@
       <mat-step [completed]='false'>
         <ng-template matStepLabel>Users</ng-template>
         <div class="inner-step mat-reset">
-          <input type="text" placeholder="Enter user login" [(ngModel)]="setupUser">
+          <input type="text" placeholder="Enter user login" [(ngModel)]="setupUser" />
         </div>
         <div class="text-center m-bott-10">
-          <button mat-raised-button matStepperPrevious class="butt"><i
-              class="material-icons arrow-icon">keyboard_arrow_left</i>Back</button>
-          <button mat-raised-button (click)="resetDialog()" class="butt">Cancel</button>
-          <button mat-raised-button matStepperNext class="butt">Next<i
-              class="material-icons arrow-icon">keyboard_arrow_right</i></button>
+          <button mat-raised-button matStepperPrevious class="butt">
+            <i class="material-icons arrow-icon">keyboard_arrow_left</i>
+            Back
+          </button>
+          <button mat-raised-button (click)="resetDialog()" class="butt">
+            Cancel
+          </button>
+          <button mat-raised-button matStepperNext class="butt">
+            Next
+            <i class="material-icons arrow-icon">keyboard_arrow_right</i>
+          </button>
         </div>
       </mat-step>
 
@@ -80,16 +106,29 @@
               [items]="rolesList"
               [model]="setupRoles"
               [isAdmin]="healthStatus?.admin"
-            >
-            </multi-level-select-dropdown>
+            ></multi-level-select-dropdown>
           </div>
         </div>
         <div class="text-center m-bott-10">
-          <button mat-raised-button matStepperPrevious class="butt"><i
-              class="material-icons arrow-icon">keyboard_arrow_left</i>Back</button>
-          <button mat-raised-button (click)="resetDialog()" class="butt">Cancel</button>
-          <button mat-raised-button (click)="manageAction('create', 'group')" class="butt butt-success"
-            [disabled]="!setupGroup || setupGroupName.errors?.patterns || setupGroupName.errors?.duplicate || !setupRoles.length">Create</button>
+          <button mat-raised-button matStepperPrevious class="butt">
+            <i class="material-icons arrow-icon">keyboard_arrow_left</i>
+            Back
+          </button>
+          <button 
+            mat-raised-button 
+            (click)="resetDialog()" 
+            class="butt"
+          >
+            Cancel
+          </button>
+          <button 
+            mat-raised-button 
+            (click)="manageAction('create', 'group')" 
+            class="butt butt-success"
+            [disabled]="!setupGroup || setupGroupName.errors?.patterns || setupGroupName.errors?.duplicate || !setupRoles.length"
+          >
+            Create
+          </button>
         </div>
       </mat-step>
 
@@ -124,8 +163,7 @@
                 [items]="rolesList"
                 [model]="element.selected_roles"
                 [isAdmin]="healthStatus?.admin"
-              >
-              </multi-level-select-dropdown>
+              ></multi-level-select-dropdown>
           </div>
         </td>
       </ng-container>
@@ -134,10 +172,27 @@
         <th mat-header-cell *matHeaderCellDef class="users"> Users </th>
         <td mat-cell *matCellDef="let element" class="users-list ani">
           <mat-form-field class="chip-list">
-            <input #user matInput placeholder="Enter user login" pattern="[@.-_0-9a-zA-Z]"
-                   (keydown.enter)="addUser(user, element);" (keyup)="checkIfUserAdded(element, user.value)">
-            <button mat-icon-button matSuffix (click)="addUser(user, element); user.value = ''" [disabled]="element.isUserAdded">
-              <mat-icon matTooltip="User is already added to this group" matTooltipPosition="above" [matTooltipDisabled]="!element.isUserAdded">person_add</mat-icon>
+            <input 
+              #user 
+              matInput 
+              placeholder="Enter user login" 
+              pattern="[@.-_0-9a-zA-Z]"
+              (keydown.enter)="addUser(user, element);" 
+              (keyup)="checkIfUserAdded(element, user.value)"
+            />
+            <button 
+              mat-icon-button 
+              matSuffix 
+              (click)="addUser(user, element); user.value = ''" 
+              [disabled]="element.isUserAdded"
+            >
+              <mat-icon 
+                matTooltip="User is already added to this group" 
+                matTooltipPosition="above" 
+                [matTooltipDisabled]="!element.isUserAdded"
+              >
+                person_add
+              </mat-icon>
             </button>
           </mat-form-field>
           <div class="list-selected list-container ani">
@@ -163,7 +218,8 @@
         <th mat-header-cell *matHeaderCellDef class="actions"></th>
         <td mat-cell *matCellDef="let element" class="actions">
           <div class="actions-wrapper">
-            <span class="action-disabled"
+            <span 
+              class="action-disabled"
               matTooltip="Only admin can delete group."
               matTooltipPosition="above"
               [matTooltipDisabled]="healthStatus?.admin"
@@ -172,16 +228,19 @@
                 (click)="manageAction('delete', 'group', element)"
                 class="reset ani"
                 [ngClass]="{ 'not-allowed' : !healthStatus?.admin}"
-
               >
-              <mat-icon >delete_forever</mat-icon>
-            </span>
+                <mat-icon >delete_forever</mat-icon>
+              </span>
             </span>
 
-            <span class="apply ani big-icon" matTooltip="Group cannot be updated without any selected role"
-              matTooltipPosition="above" [matTooltipDisabled]="element.selected_roles.length > 0"
+            <span 
+              class="apply ani big-icon" 
+              matTooltip="Group cannot be updated without any selected role"
+              matTooltipPosition="above" 
+              [matTooltipDisabled]="element.selected_roles.length > 0"
               [ngClass]="{ 'not-allowed' : !element.selected_roles.length || isGroupChanded(element)}"
-              (click)="manageAction('update', 'group', element)">
+              (click)="manageAction('update', 'group', element)"
+            >
               <mat-icon [ngClass]="{'big-icon': !isGroupChanded(element) && element.selected_roles.length}">done</mat-icon>
             </span>
           </div>
diff --git a/services/self-service/src/main/resources/webapp/src/app/administration/roles/roles.component.scss b/services/self-service/src/main/resources/webapp/src/app/administration/roles/roles.component.scss
index 993d387..a429649 100644
--- a/services/self-service/src/main/resources/webapp/src/app/administration/roles/roles.component.scss
+++ b/services/self-service/src/main/resources/webapp/src/app/administration/roles/roles.component.scss
@@ -22,15 +22,15 @@
 }
 
 .caret {
+  position: absolute;
+  top: 0px;
+  right: 0;
   width: 40px;
+  height: 36px;
   color: #4ab8dc;
+  background-color: #fff;
   border: none;
   border-left: 1px solid #ececec;
-  background-color: #fff;
-  position: absolute;
-  right: 0;
-  top: 0px;
-  height: 36px;
   line-height: 1;
   cursor: pointer;
 
@@ -40,8 +40,8 @@
 }
 
 .content-box {
-  padding: 20px 30px 35px;
   height: 85vh;
+  padding: 20px 30px 35px;
   overflow-y: auto;
 }
 
@@ -54,13 +54,13 @@
   margin-top: 10px;
 
   .inner-step {
-    height: 70px;
-    padding: 5px;
+    position: relative;
     display: flex;
     justify-content: center;
     flex-direction: column;
+    height: 70px;
+    padding: 5px;
     text-align: center;
-    position: relative;
 
     input {
       width: 490px;
@@ -88,7 +88,7 @@
   }
 }
 
-.mat-horizontal-content-container{
+.mat-horizontal-content-container {
   overflow: visible !important;
 }
 
@@ -98,11 +98,11 @@
   width: 490px;
   height: 32px;
   padding-left: 0;
-  font-family: 'Open Sans', sans-serif;
+  font-family: "Open Sans", sans-serif;
   font-size: 15px;
   font-weight: 300;
   box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
-  multi-level-select-dropdown{
+  multi-level-select-dropdown {
     width: 100%;
   }
   mat-form-field {
@@ -120,7 +120,7 @@
   .dropdown-multiselect {
     width: 100% !important;
 
-    >button {
+    > button {
       padding: 6px 22px;
     }
   }
@@ -131,11 +131,11 @@
 }
 
 .scrolling-content {
+  display: block;
   max-height: 450px;
+  padding: 15px 5px;
   overflow-x: hidden;
   overflow-y: auto;
-  display: block;
-  padding: 15px 5px;
 
   &.stepper-opened {
     height: 250px;
@@ -143,7 +143,6 @@
 }
 
 .roles {
-
   .selector-wrapper-edit {
     position: relative;
     display: flex;
@@ -157,7 +156,7 @@
       width: 100%;
 
       .dropdown-multiselect {
-        >button {
+        > button {
           padding: 8px 22px 5px;
         }
       }
@@ -165,7 +164,7 @@
 
     .caret {
       &:hover {
-        box-shadow: 0 3px 1px -10px rgba(0, 0, 0, 0.2), 0 2px 1px 0 rgba(0, 0, 0, 0.17), 0 1px 5px 0 rgba(0, 0, 0, 0.12)
+        box-shadow: 0 3px 1px -10px rgba(0, 0, 0, 0.2), 0 2px 1px 0 rgba(0, 0, 0, 0.17), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
       }
     }
   }
@@ -181,29 +180,28 @@
 }
 
 .users-list {
+  position: relative;
   padding: 5px 10px;
-  font-family: 'Open Sans', sans-serif;
+  font-family: "Open Sans", sans-serif;
   font-size: 15px;
   font-weight: 300;
   color: #577289;
-  position: relative;
 
   i {
-    color: #FF5722;
+    color: #ff5722;
     font-size: 18px;
     cursor: pointer;
   }
 
   .list-selected {
     width: 100%;
-    margin-top: 50px;
     height: inherit;
     min-height: 0;
+    margin-top: 50px;
     overflow: hidden;
   }
 }
 
-
 .expanded-panel {
   display: flex;
   align-items: flex-end;
@@ -217,9 +215,9 @@
 
     input {
       height: 36px;
+      width: 170px;
       padding: 0;
       padding-left: 10px;
-      width: 170px;
     }
 
     .caret {
@@ -228,10 +226,9 @@
   }
 }
 
-
 mat-expansion-panel-header {
   &.mat-expansion-panel-header {
-    font-family: 'Open Sans', sans-serif;
+    font-family: "Open Sans", sans-serif;
     font-size: 15px;
     font-weight: 300;
     color: #577289;
@@ -244,7 +241,7 @@
   }
 
   .mat-step-label {
-    font-family: 'Open Sans', sans-serif;
+    font-family: "Open Sans", sans-serif;
     font-size: 16px;
     font-weight: 300;
   }
@@ -274,19 +271,19 @@
   }
 }
 
-.mat-chip-list{
+.mat-chip-list {
   pointer-events: auto;
 }
 
 .mat-chip:not(.mat-basic-chip) {
-  transition: box-shadow 280ms cubic-bezier(.4, 0, .2, 1);
+  position: relative;
+  display: inline-block;
+  max-width: 100%;
   padding: 7px 25px 7px 10px;
+  transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);
   border-radius: 24px;
   cursor: default;
-  display: inline-block;
-  position: relative;  ;
   white-space: nowrap;
-  max-width: 100%;
   overflow: hidden;
 }
 
@@ -351,7 +348,7 @@
     max-width: 200px;
     padding-right: 10px;
     overflow: hidden;
-    span{
+    span {
       cursor: default;
     }
   }
@@ -361,32 +358,32 @@
   }
 
   .actions {
-    color: #607d8b;
     width: 10%;
+    color: #607d8b;
     text-align: center;
 
-    .actions-wrapper{
-      height: 41px;
+    .actions-wrapper {
       display: flex;
       align-items: center;
       justify-content: flex-end;
+      height: 41px;
     }
 
     span {
-      transition: all .35s ease-in-out;
+      transition: all 0.35s ease-in-out;
       cursor: pointer;
 
-      &.action-disabled{
+      &.action-disabled {
         cursor: not-allowed;
       }
 
       .mat-icon {
         font-size: 18px;
         padding-top: 12px;
-        &.big-icon{
+        &.big-icon {
           font-size: 25px;
           padding-top: 10px;
-          transition: .25s;
+          transition: 0.25s;
         }
       }
 
diff --git a/services/self-service/src/main/resources/webapp/src/app/administration/roles/roles.component.ts b/services/self-service/src/main/resources/webapp/src/app/administration/roles/roles.component.ts
index 6729729..dc119c7 100644
--- a/services/self-service/src/main/resources/webapp/src/app/administration/roles/roles.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/administration/roles/roles.component.ts
@@ -17,15 +17,16 @@
  * under the License.
  */
 
-import {Component, OnInit, Output, EventEmitter, Inject, ViewChild} from '@angular/core';
+import { Component, OnInit, Output, EventEmitter, Inject } from '@angular/core';
 import { ValidatorFn, FormControl } from '@angular/forms';
 import { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
 import { ToastrService } from 'ngx-toastr';
-import {RolesGroupsService, HealthStatusService, ApplicationSecurityService, AppRoutingService} from '../../core/services';
-import {CheckUtils, SortUtils} from '../../core/util';
+
+import { RolesGroupsService, HealthStatusService, ApplicationSecurityService, AppRoutingService } from '../../core/services';
+import { CheckUtils, SortUtils } from '../../core/util';
 import { DICTIONARY } from '../../../dictionary/global.dictionary';
-import {ProgressBarService} from '../../core/services/progress-bar.service';
-import {ConfirmationDialogComponent, ConfirmationDialogType} from '../../shared/modal-dialog/confirmation-dialog';
+import { ProgressBarService } from '../../core/services/progress-bar.service';
+import { ConfirmationDialogComponent, ConfirmationDialogType } from '../../shared/modal-dialog/confirmation-dialog';
 
 @Component({
   selector: 'datalab-roles',
@@ -35,6 +36,10 @@
 export class RolesComponent implements OnInit {
   readonly DICTIONARY = DICTIONARY;
 
+  @Output() manageRolesGroupAction: EventEmitter<{}> = new EventEmitter();
+
+  private startedGroups: Array<any>;
+
   public groupsData: Array<any> = [];
   public roles: Array<any> = [];
   public rolesList: Array<any> = [];
@@ -46,13 +51,11 @@
   public healthStatus: any;
   public delimitersRegex = /[-_]?/g;
   public groupnamePattern = new RegExp(/^[a-zA-Z0-9_\-]+$/);
+  public noPermissionMessage: string = 'You have not permissions for groups which are not assigned to your projects.';
+  public maxGroupLength: number = 25;
 
   stepperView: boolean = false;
   displayedColumns: string[] = ['name', 'roles', 'users', 'actions'];
-  @Output() manageRolesGroupAction: EventEmitter<{}> = new EventEmitter();
-  private startedGroups: Array<any>;
-  public noPermissionMessage: string = 'You have not permissions for groups which are not assigned to your projects.';
-  public maxGroupLength: number = 25;
 
   constructor(
     public toastr: ToastrService,
@@ -74,45 +77,57 @@
       this.rolesService.getRolesData().subscribe(
         (roles: any) => {
           this.roles = roles;
-          this.rolesList = roles.map((role) => {
-              return {role: role.description, type: role.type, cloud: role.cloud};
-          });
+          this.rolesList = roles.map((role) => ({
+            role: role.description,
+            type: role.type,
+            cloud: role.cloud
+          }));
           this.rolesList = SortUtils.sortByKeys(this.rolesList, ['role', 'cloud', 'type']);
           this.updateGroupData(groups);
           this.stepperView = false;
         },
         error => this.toastr.error(error.message, 'Oops!'));
-        this.progressBarService.stopProgressBar();
-      },
-      error => {
-      this.toastr.error(error.message, 'Oops!');
       this.progressBarService.stopProgressBar();
-    });
+    },
+      error => {
+        this.toastr.error(error.message, 'Oops!');
+        this.progressBarService.stopProgressBar();
+      }
+    );
   }
 
   getGroupsData() {
-    this.rolesService.getGroupsData().subscribe(
-      list => this.updateGroupData(list),
-      error => this.toastr.error(error.message, 'Oops!'));
+    this.rolesService.getGroupsData()
+      .subscribe(
+        list => this.updateGroupData(list),
+        error => this.toastr.error(error.message, 'Oops!')
+      );
   }
 
   public selectAllOptions(item, values, byKey?) {
-    byKey ? (item[byKey] = values ? values : []) : this.setupRoles = values ? values : [];
+    if (byKey) {
+      item[byKey] = values ? values : [];
+    } else {
+      this.setupRoles = values ? values : [];
+    }
   }
 
   public manageAction(action: string, type: string, item?: any, value?) {
     if (action === 'create') {
-      this.manageRolesGroups(
-        {
-          action, type, value: {
-            name: this.setupGroup,
-            users: this.setupUser ? this.setupUser.split(',').map(elem => elem.trim()).filter(el => !!el) : [],
-            roleIds: this.extractIds(this.roles, this.setupRoles.map(v => v.role))
-          }
-        });
+      this.manageRolesGroups({
+        action,
+        type,
+        value: {
+          name: this.setupGroup,
+          users: this.setupUser ? this.setupUser.split(',').map(elem => elem.trim()).filter(el => !!el) : [],
+          roleIds: this.extractIds(this.roles, this.setupRoles.map(v => v.role))
+        }
+      });
       this.stepperView = false;
     } else if (action === 'delete') {
-      const data = (type === 'users') ? { group: item.group, user: value } : { group: item.group, id: item };
+      const data = (type === 'users')
+        ? { group: item.group, user: value }
+        : { group: item.group, id: item };
       const dialogRef: MatDialogRef<ConfirmDeleteUserAccountDialogComponent> = this.dialog.open(
         ConfirmDeleteUserAccountDialogComponent,
         { data: data, width: '550px', panelClass: 'error-modalbox' }
@@ -128,28 +143,34 @@
       });
     } else if (action === 'update') {
       const currGroupSource = this.startedGroups.filter(cur => cur.group === item.group)[0];
-      let deletedUsers = currGroupSource.users.filter(user => {
-        return !item.users.includes(user);
-      });
-      this.dialog.open(ConfirmationDialogComponent, { data:
-          { notebook: deletedUsers, type: ConfirmationDialogType.deleteUser }, panelClass: 'modal-sm' })
+      let deletedUsers = currGroupSource.users.filter(user => !item.users.includes(user));
+
+      this.dialog.open(ConfirmationDialogComponent, {
+        data: {
+          notebook: deletedUsers,
+          type: ConfirmationDialogType.deleteUser
+        },
+        panelClass: 'modal-sm'
+      })
         .afterClosed().subscribe((res) => {
-        if (!res) {
-          item.users = [...currGroupSource.users];
-          item.selected_roles = [...currGroupSource.selected_roles];
-          item.roles = [...currGroupSource.roles];
-        } else {
-          const selectedRoles = item.selected_roles.map(v => v.role);
-          this.manageRolesGroups({
-            action, type, value: {
-              name: item.group,
-              roles: this.extractIds(this.roles, selectedRoles),
-              users: item.users || []
-            }
-          });
-        }
-        deletedUsers = [];
-      });
+          if (!res) {
+            item.users = [...currGroupSource.users];
+            item.selected_roles = [...currGroupSource.selected_roles];
+            item.roles = [...currGroupSource.roles];
+          } else {
+            const selectedRoles = item.selected_roles.map(v => v.role);
+            this.manageRolesGroups({
+              action,
+              type,
+              value: {
+                name: item.group,
+                roles: this.extractIds(this.roles, selectedRoles),
+                users: item.users || []
+              }
+            });
+          }
+          deletedUsers = [];
+        });
     }
     this.resetDialog();
   }
@@ -157,31 +178,42 @@
   public manageRolesGroups($event) {
     switch ($event.action) {
       case 'create':
-        this.rolesService.setupNewGroup($event.value).subscribe(() => {
-          this.toastr.success('Group creation success!', 'Created!');
-          this.getGroupsData();
-        }, () => this.toastr.error('Group creation failed!', 'Oops!'));
+        this.rolesService.setupNewGroup($event.value)
+          .subscribe(
+            () => {
+              this.toastr.success('Group creation success!', 'Created!');
+              this.getGroupsData();
+            },
+            () => this.toastr.error('Group creation failed!', 'Oops!'));
         break;
 
       case 'update':
-        this.rolesService.updateGroup($event.value).subscribe(() => {
-          this.toastr.success(`Group data is updated successfully!`, 'Success!');
-            this.openManageRolesDialog();
-        }, (re) => this.toastr.error('Failed group data updating!', 'Oops!'));
-
+        this.rolesService.updateGroup($event.value)
+          .subscribe(
+            () => {
+              this.toastr.success(`Group data is updated successfully!`, 'Success!');
+              this.openManageRolesDialog();
+            },
+            () => this.toastr.error('Failed group data updating!', 'Oops!'));
         break;
 
       case 'delete':
         if ($event.type === 'users') {
-          this.rolesService.removeUsersForGroup($event.value).subscribe(() => {
-            this.toastr.success('Users was successfully deleted!', 'Success!');
-            this.getGroupsData();
-          }, () => this.toastr.error('Failed users deleting!', 'Oops!'));
+          this.rolesService.removeUsersForGroup($event.value)
+            .subscribe(
+              () => {
+                this.toastr.success('Users was successfully deleted!', 'Success!');
+                this.getGroupsData();
+              },
+              () => this.toastr.error('Failed users deleting!', 'Oops!'));
         } else if ($event.type === 'group') {
-          this.rolesService.removeGroupById($event.value).subscribe(() => {
-            this.toastr.success('Group was successfully deleted!', 'Success!');
-            this.getGroupsData();
-          }, (error) => this.toastr.error(error.message, 'Oops!'));
+          this.rolesService.removeGroupById($event.value)
+            .subscribe(
+              () => {
+                this.toastr.success('Group was successfully deleted!', 'Success!');
+                this.getGroupsData();
+              },
+              (error) => this.toastr.error(error.message, 'Oops!'));
         }
         break;
 
@@ -197,7 +229,11 @@
       return v;
     }).sort((a, b) => (a.group > b.group) ? 1 : ((b.group > a.group) ? -1 : 0));
     this.groupsData.forEach(item => {
-      const selectedRoles = item.roles.map(role => ({role: role.description, type: role.type, cloud: role.cloud}));
+      const selectedRoles = item.roles.map(role => ({
+        role: role.description,
+        type: role.type,
+        cloud: role.cloud
+      }));
       item.selected_roles = SortUtils.sortByKeys(selectedRoles, ['role', 'type']);
     });
     this.getGroupsListCopy();
@@ -206,7 +242,7 @@
   public extractIds(sourceList, target) {
     const map = new Map();
     const mapped = sourceList.reduce((acc, item) => {
-      target.includes(item.description) && acc.set( item._id, item.description);
+      target.includes(item.description) && acc.set(item._id, item.description);
       return acc;
     }, map);
 
@@ -216,7 +252,7 @@
   mapToObj(inputMap) {
     const obj = {};
 
-    inputMap.forEach(function(value, key) {
+    inputMap.forEach((value, key) => {
       obj[key] = value;
     });
 
@@ -247,17 +283,17 @@
 
   public isGroupChanded(currGroup) {
     const currGroupSource = this.startedGroups.filter(cur => cur.group === currGroup.group)[0];
-   if (currGroup.users.length !== currGroupSource.users.length &&
-     currGroup.selected_roles.length !== currGroupSource.selected_roles.length) {
-     return false;
-   }
-   return JSON.stringify(currGroup.users) === JSON.stringify(currGroupSource.users) &&
-     JSON.stringify(
-       currGroup.selected_roles.map(role => role.role).sort()
-     ) === JSON
-       .stringify(
-         currGroupSource.selected_roles.map(role => role.role).sort()
-       );
+    if (currGroup.users.length !== currGroupSource.users.length &&
+      currGroup.selected_roles.length !== currGroupSource.selected_roles.length) {
+      return false;
+    }
+    return JSON.stringify(currGroup.users) === JSON.stringify(currGroupSource.users) &&
+      JSON.stringify(
+        currGroup.selected_roles.map(role => role.role).sort()
+      ) === JSON
+        .stringify(
+          currGroupSource.selected_roles.map(role => role.role).sort()
+        );
   }
 
   public resetDialog() {
@@ -288,29 +324,29 @@
     this.healthStatusService.getEnvironmentHealthStatus()
       .subscribe((result: any) => {
         this.healthStatus = result;
-          if (!this.healthStatus.admin && !this.healthStatus.projectAdmin) {
-            this.appRoutingService.redirectToHomePage();
-          } else {
-            this.openManageRolesDialog();
-          }
-      }
-      );
+        if (!this.healthStatus.admin && !this.healthStatus.projectAdmin) {
+          this.appRoutingService.redirectToHomePage();
+        } else {
+          this.openManageRolesDialog();
+        }
+      });
   }
 
   public onUpdate($event): void {
-   if ($event.type) {
-     this.groupsData.filter(group => group.group === $event.type)[0].selected_roles = $event.model;
-   } else {
-     this.setupRoles = $event.model;
-   }
+    if ($event.type) {
+      this.groupsData.filter(group => group.group === $event.type)[0].selected_roles = $event.model;
+    } else {
+      this.setupRoles = $event.model;
+    }
   }
 
   public checkIfUserAdded(element: any, value: string) {
-    element.isUserAdded = element.users.map(v => v.toLowerCase()).includes(value.toLowerCase());
+    element.isUserAdded = element.users
+      .map(v => v.toLowerCase())
+      .includes(value.toLowerCase());
   }
 }
 
-
 @Component({
   selector: 'dialog-result-example-dialog',
   template: `
@@ -320,14 +356,33 @@
   </div>
   <div mat-dialog-content class="content">
 
-    <p *ngIf="data.user">User <span class="strong">{{ data.user }}</span> will be deleted from <span class="strong">{{ data.group }}</span> group.
+    <p *ngIf="data.user">User <span class="strong">
+      {{ data.user }}</span> will be deleted from <span class="strong">{{ data.group }}</span> group.
     </p>
-    <p *ngIf="data.id">Group <span class="ellipsis group-name strong">{{ data.group }}</span> will be decommissioned.</p>
-    <p class="m-top-20"><span class="strong">Do you want to proceed?</span></p>
+    <p *ngIf="data.id">Group <span class="ellipsis group-name strong">
+      {{ data.group }}</span> will be decommissioned.
+    </p>
+    <p class="m-top-20">
+      <span class="strong">Do you want to proceed?</span>
+    </p>
   </div>
   <div class="text-center">
-    <button type="button" class="butt" mat-raised-button (click)="dialogRef.close()">No</button>
-    <button type="button" class="butt butt-success" mat-raised-button (click)="dialogRef.close(true)">Yes</button>
+    <button 
+      type="button" 
+      class="butt" 
+      mat-raised-button 
+      (click)="dialogRef.close()"
+    >
+      No
+    </button>
+    <button 
+      type="button" 
+      class="butt butt-success" 
+      mat-raised-button 
+      (click)="dialogRef.close(true)"
+    >
+      Yes
+    </button>
   </div>
   `,
   styles: [`.group-name { max-width: 96%; display: inline-block; vertical-align: bottom; }`]
@@ -338,4 +393,4 @@
     public dialogRef: MatDialogRef<ConfirmDeleteUserAccountDialogComponent>,
     @Inject(MAT_DIALOG_DATA) public data: any
   ) { }
-}
+}
\ No newline at end of file
diff --git a/services/self-service/src/main/resources/webapp/src/app/app.routing.module.ts b/services/self-service/src/main/resources/webapp/src/app/app.routing.module.ts
index d7990bd..d166b7d 100644
--- a/services/self-service/src/main/resources/webapp/src/app/app.routing.module.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/app.routing.module.ts
@@ -38,77 +38,90 @@
 import {OdahuComponent} from './administration/odahu/odahu.component';
 import {AuditComponent} from './reports/audit/audit.component';
 
-const routes: Routes = [{
-  path: 'login',
-  component: LoginComponent
-}, {
-  path: '',
-  canActivate: [CheckParamsGuard],
-  component: LayoutComponent,
-  children: [
-    {
-      path: '',
-      redirectTo: 'resources_list',
-      pathMatch: 'full'
-    }, {
-      path: 'resources_list',
-      component: ResourcesComponent,
-      canActivate: [AuthorizationGuard]
-    }, {
-      path: 'billing_report',
-      component: ReportingComponent,
-      canActivate: [AuthorizationGuard, CloudProviderGuard]
-    }, {
-      path: 'projects',
-      component: ProjectComponent,
-      canActivate: [AuthorizationGuard, AdminGuard],
-    },
-     {
-    //   path: 'odahu',
-    //   component: OdahuComponent,
-    //   canActivate: [AuthorizationGuard, AdminGuard],
-    // }, {
-      path: 'roles',
-      component: RolesComponent,
-      canActivate: [AuthorizationGuard, AdminGuard],
-    }, {
-      path: 'environment_management',
-      component: ManagementComponent,
-      canActivate: [AuthorizationGuard, AdminGuard]
-    }, {
-      path: 'configuration',
-      component: ConfigurationComponent,
-      canActivate: [AuthorizationGuard, AdminGuard, ProjectAdminGuard]
-    },
-    {
-      path: 'swagger',
-      component: SwaggerComponent,
-      canActivate: [AuthorizationGuard]
-    }, {
-      path: 'help/publickeyguide',
-      component: PublicKeyGuideComponent,
-      canActivate: [AuthorizationGuard]
-    }, {
-      path: 'help/accessnotebookguide',
-      component: AccessNotebookGuideComponent,
-      canActivate: [AuthorizationGuard]
-    },
-    {
-      path: 'audit',
-      component: AuditComponent,
-      canActivate: [AuthorizationGuard, AuditGuard],
-    },
-  ]
-}, {
-  path: 'terminal/:id/:endpoint',
-  component: WebterminalComponent
-}, {
-  path: '403',
-  component: AccessDeniedComponent,
-  canActivate: [AuthorizationGuard]
-}, {
+const routes: Routes = [
+  {
+    path: 'login',
+    component: LoginComponent
+  }, 
+  {
+    path: '',
+    canActivate: [CheckParamsGuard],
+    component: LayoutComponent,
+    children: [
+      {
+        path: '',
+        redirectTo: 'resources_list',
+        pathMatch: 'full'
+      }, 
+      {
+        path: 'resources_list',
+        component: ResourcesComponent,
+        canActivate: [AuthorizationGuard]
+      }, 
+      {
+        path: 'billing_report',
+        component: ReportingComponent,
+        canActivate: [AuthorizationGuard, CloudProviderGuard]
+      }, 
+      {
+        path: 'projects',
+        component: ProjectComponent,
+        canActivate: [AuthorizationGuard, AdminGuard],
+      },
+      {
+      //   path: 'odahu',
+      //   component: OdahuComponent,
+      //   canActivate: [AuthorizationGuard, AdminGuard],
+      // }, {
+        path: 'roles',
+        component: RolesComponent,
+        canActivate: [AuthorizationGuard, AdminGuard],
+      }, 
+      {
+        path: 'environment_management',
+        component: ManagementComponent,
+        canActivate: [AuthorizationGuard, AdminGuard]
+      }, 
+      {
+        path: 'configuration',
+        component: ConfigurationComponent,
+        canActivate: [AuthorizationGuard, AdminGuard, ProjectAdminGuard]
+      },
+      {
+        path: 'swagger',
+        component: SwaggerComponent,
+        canActivate: [AuthorizationGuard]
+      }, 
+      {
+        path: 'help/publickeyguide',
+        component: PublicKeyGuideComponent,
+        canActivate: [AuthorizationGuard]
+      }, 
+      {
+        path: 'help/accessnotebookguide',
+        component: AccessNotebookGuideComponent,
+        canActivate: [AuthorizationGuard]
+      },
+      {
+        path: 'audit',
+        component: AuditComponent,
+        canActivate: [AuthorizationGuard, AuditGuard],
+      },
+    ]
+  }, 
+  {
+    path: 'terminal/:id/:endpoint',
+    component: WebterminalComponent
+  }, 
+  {
+    path: '403',
+    component: AccessDeniedComponent,
+    canActivate: [AuthorizationGuard]
+  }, 
+  {
   path: '**',
   component: NotFoundComponent
-}];
+  }
+];
 
 export const AppRoutingModule: ModuleWithProviders<RouterModule> = RouterModule.forRoot(routes, { useHash: true });
diff --git a/services/self-service/src/main/resources/webapp/src/app/core/directives/click-outside.directive.ts b/services/self-service/src/main/resources/webapp/src/app/core/directives/click-outside.directive.ts
index 5ad3baa..ad34ab2 100644
--- a/services/self-service/src/main/resources/webapp/src/app/core/directives/click-outside.directive.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/core/directives/click-outside.directive.ts
@@ -18,14 +18,11 @@
  */
 
 
-import {fromEvent as observableFromEvent,  Observable } from 'rxjs';
+import { fromEvent as observableFromEvent } from 'rxjs';
 
-import {tap, delay} from 'rxjs/operators';
+import { tap, delay } from 'rxjs/operators';
 import { Directive, OnInit, OnDestroy, Output, EventEmitter, ElementRef } from '@angular/core';
 
-
-
-
 @Directive({
   selector: '[clickOutside]'
 })
@@ -79,4 +76,4 @@
     }
     return false;
   }
-}
+}
\ No newline at end of file
diff --git a/services/self-service/src/main/resources/webapp/src/app/core/directives/scrollTo.directive.ts b/services/self-service/src/main/resources/webapp/src/app/core/directives/scrollTo.directive.ts
index fb6e0c3..7160489 100644
--- a/services/self-service/src/main/resources/webapp/src/app/core/directives/scrollTo.directive.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/core/directives/scrollTo.directive.ts
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-import { ElementRef, HostBinding, Input } from '@angular/core';
+import { ElementRef, Input } from '@angular/core';
 import { Directive } from '@angular/core';
 
 @Directive({
diff --git a/services/self-service/src/main/resources/webapp/src/app/core/interceptors/error.interceptor.ts b/services/self-service/src/main/resources/webapp/src/app/core/interceptors/error.interceptor.ts
index ac57d6c..e60be4e 100644
--- a/services/self-service/src/main/resources/webapp/src/app/core/interceptors/error.interceptor.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/core/interceptors/error.interceptor.ts
@@ -60,7 +60,8 @@
           this.jwtService.destroyTokens();
           return throwError(error);
         }
-      }));
+      })
+    );
   }
 
   private addToken(request: HttpRequest<any>, token: string) {
@@ -92,4 +93,4 @@
     if (error.url.indexOf('refresh') > -1) this.routingService.redirectToLoginPage();
     return next.handle(request);
   }
-}
+}
\ No newline at end of file
diff --git a/services/self-service/src/main/resources/webapp/src/app/core/interceptors/http.token.interceptor.ts b/services/self-service/src/main/resources/webapp/src/app/core/interceptors/http.token.interceptor.ts
index 5b6309a..acd92fa 100644
--- a/services/self-service/src/main/resources/webapp/src/app/core/interceptors/http.token.interceptor.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/core/interceptors/http.token.interceptor.ts
@@ -18,10 +18,10 @@
  */
 
 import { Injectable } from '@angular/core';
-import { StorageService } from '../services';
+import { Observable } from 'rxjs';
 import { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent } from '@angular/common/http';
 
-import { Observable } from 'rxjs';
+import { StorageService } from '../services';
 
 @Injectable() export class HttpTokenInterceptor implements HttpInterceptor {
   constructor(private jwtService: StorageService) { }
@@ -30,16 +30,18 @@
     const token = this.jwtService.getToken();
     const headersConfig = {};
 
-    if (token)
+    if (token) {
       headersConfig['Authorization'] = `Bearer ${token}`;
+    }
 
     if (!request.headers.has('Content-Type')
       && !request.headers.has('Upload')
       && request.url.indexOf('upload') === -1
       && request.url.indexOf('download') === -1
       && request.url.indexOf('admin') === -1
-    )
-    headersConfig['Content-Type'] = 'application/json; charset=UTF-8';
+    ) {
+      headersConfig['Content-Type'] = 'application/json; charset=UTF-8';
+    }
 
     const header = request.clone({ setHeaders: headersConfig });
     return next.handle(header);
diff --git a/services/self-service/src/main/resources/webapp/src/app/core/models/computationalResourceApplicationTemplate.model.ts b/services/self-service/src/main/resources/webapp/src/app/core/models/computationalResourceApplicationTemplate.model.ts
index 4833bba..8818179 100644
--- a/services/self-service/src/main/resources/webapp/src/app/core/models/computationalResourceApplicationTemplate.model.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/core/models/computationalResourceApplicationTemplate.model.ts
@@ -36,9 +36,10 @@
     this.template_name = template_name;
     this.description = description;
 
-    if (jsonModel.applications && jsonModel.applications.length > 0)
-      for (let index = 0; index < jsonModel.applications.length; index++)
+    if (jsonModel.applications && jsonModel.applications.length > 0) {
+      for (let index = 0; index < jsonModel.applications.length; index++) {
         this.applications.push(new ComputationalResourceApplication(jsonModel.applications[index]));
-
+      }
+    }
   }
 }
diff --git a/services/self-service/src/main/resources/webapp/src/app/core/models/computationalResourceImage.model.ts b/services/self-service/src/main/resources/webapp/src/app/core/models/computationalResourceImage.model.ts
index 102f1dc..b721b26 100644
--- a/services/self-service/src/main/resources/webapp/src/app/core/models/computationalResourceImage.model.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/core/models/computationalResourceImage.model.ts
@@ -40,11 +40,16 @@
     this.limits = jsonModel.limits;
     this.shapes = new ResourceShapeTypesModel(SortUtils.shapesSort(jsonModel.computation_resources_shapes));
 
-    if (jsonModel.templates && jsonModel.templates.length > 0)
-      for (let index = 0; index < jsonModel.templates.length; index++)
-        this.application_templates.push(
-          new ComputationalResourceApplicationTemplate(jsonModel.templates[index],
-            this.shapes, this.image, this.template_name, this.description));
-
+    if (jsonModel.templates && jsonModel.templates.length > 0) {
+      for (let index = 0; index < jsonModel.templates.length; index++) {
+        this.application_templates.push(new ComputationalResourceApplicationTemplate(
+          jsonModel.templates[index],
+          this.shapes, 
+          this.image, 
+          this.template_name, 
+          this.description)
+        );
+      }
+    }
   }
 }
diff --git a/services/self-service/src/main/resources/webapp/src/app/core/models/resourceShapeTypes.model.ts b/services/self-service/src/main/resources/webapp/src/app/core/models/resourceShapeTypes.model.ts
index 1f9cda5..b4b93ba 100644
--- a/services/self-service/src/main/resources/webapp/src/app/core/models/resourceShapeTypes.model.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/core/models/resourceShapeTypes.model.ts
@@ -27,8 +27,9 @@
     for (const parentIndex in jsonModel) {
       if (jsonModel[parentIndex] && jsonModel[parentIndex].length > 0) {
         const tmpl = [];
-        for (let index = 0; index < jsonModel[parentIndex].length; index++)
+        for (let index = 0; index < jsonModel[parentIndex].length; index++) {
           tmpl.push(new ResourceShapeModel(jsonModel[parentIndex][index]));
+        }
 
         this.resourcesShapeTypes[parentIndex] = tmpl;
       }
diff --git a/services/self-service/src/main/resources/webapp/src/app/core/pipes/highlight.pipe.ts b/services/self-service/src/main/resources/webapp/src/app/core/pipes/highlight.pipe.ts
index 4770cb3..2e8a10a 100644
--- a/services/self-service/src/main/resources/webapp/src/app/core/pipes/highlight.pipe.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/core/pipes/highlight.pipe.ts
@@ -19,13 +19,14 @@
 
 import { NgModule } from '@angular/core';
 import { CommonModule } from '@angular/common';
-import {PipeTransform, Pipe} from '@angular/core';
+import { PipeTransform, Pipe } from '@angular/core';
 
 @Pipe({ name: 'highlight' })
 export class HighLightPipe implements PipeTransform {
   transform(text: string, search: string): string {
-    return search ? text.replace(new RegExp(search, 'i'), function(str) {
-      return `<span class="highlight">${str}</span>`; }) : text;
+    return search 
+      ? text.replace(new RegExp(search, 'i'), (str) => `<span class="highlight">${str}</span>`) 
+      : text;
   }
 }
 
diff --git a/services/self-service/src/main/resources/webapp/src/app/core/pipes/lib-sort-pipe/lib-sort.pipe.ts b/services/self-service/src/main/resources/webapp/src/app/core/pipes/lib-sort-pipe/lib-sort.pipe.ts
index e8ba377..e40f85c 100644
--- a/services/self-service/src/main/resources/webapp/src/app/core/pipes/lib-sort-pipe/lib-sort.pipe.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/core/pipes/lib-sort-pipe/lib-sort.pipe.ts
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-import { Pipe, PipeTransform } from '@angular/core';
+import { Pipe } from '@angular/core';
 
 @Pipe({name: 'libStatusSort', pure: false})
 
diff --git a/services/self-service/src/main/resources/webapp/src/app/core/pipes/local-currency-pipe/local-currency.pipe.ts b/services/self-service/src/main/resources/webapp/src/app/core/pipes/local-currency-pipe/local-currency.pipe.ts
index 41c2988..ab8b094 100644
--- a/services/self-service/src/main/resources/webapp/src/app/core/pipes/local-currency-pipe/local-currency.pipe.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/core/pipes/local-currency-pipe/local-currency.pipe.ts
@@ -18,8 +18,8 @@
  */
 
 import { Pipe, PipeTransform } from '@angular/core';
-import {formatCurrency, getCurrencySymbol} from '@angular/common';
-import {LocalizationService} from '../../services/localization.service';
+import { formatCurrency, getCurrencySymbol } from '@angular/common';
+import { LocalizationService } from '../../services/localization.service';
 
 @Pipe({ name: 'localcurrency' })
 
diff --git a/services/self-service/src/main/resources/webapp/src/app/core/pipes/local-date-pipe/index.ts b/services/self-service/src/main/resources/webapp/src/app/core/pipes/local-date-pipe/index.ts
index 2f29b6a..1dbbded 100644
--- a/services/self-service/src/main/resources/webapp/src/app/core/pipes/local-date-pipe/index.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/core/pipes/local-date-pipe/index.ts
@@ -19,7 +19,7 @@
 
 import { NgModule } from '@angular/core';
 import { CommonModule } from '@angular/common';
-import {LocalDatePipe} from './local-date.pipe';
+import { LocalDatePipe } from './local-date.pipe';
 
 @NgModule({
   imports: [CommonModule],
diff --git a/services/self-service/src/main/resources/webapp/src/app/core/pipes/local-date-pipe/local-date.pipe.ts b/services/self-service/src/main/resources/webapp/src/app/core/pipes/local-date-pipe/local-date.pipe.ts
index c55953b..d0e51e7 100644
--- a/services/self-service/src/main/resources/webapp/src/app/core/pipes/local-date-pipe/local-date.pipe.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/core/pipes/local-date-pipe/local-date.pipe.ts
@@ -18,8 +18,8 @@
  */
 
 import { Pipe, PipeTransform } from '@angular/core';
-import {LocalizationService} from '../../services/localization.service';
-import {formatDate} from '@angular/common';
+import { LocalizationService } from '../../services/localization.service';
+import { formatDate } from '@angular/common';
 
 @Pipe({ name: 'localDate' })
 
@@ -27,7 +27,7 @@
   constructor(private localizationService: LocalizationService) { }
 
   transform(value: any, format: string = 'shortDate') {
-    if (!value) { return ; }
+    if (!value) { return; }
 
     return formatDate(value, format, this.localizationService.locale);
   }
diff --git a/services/self-service/src/main/resources/webapp/src/app/core/pipes/long-date-pipe/long-date.pipe.ts b/services/self-service/src/main/resources/webapp/src/app/core/pipes/long-date-pipe/long-date.pipe.ts
index ba64e45..0b77648 100644
--- a/services/self-service/src/main/resources/webapp/src/app/core/pipes/long-date-pipe/long-date.pipe.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/core/pipes/long-date-pipe/long-date.pipe.ts
@@ -18,8 +18,8 @@
  */
 
 import { Pipe, PipeTransform } from '@angular/core';
-import {LocalizationService} from '../../services/localization.service';
-import {formatDate} from '@angular/common';
+import { LocalizationService } from '../../services/localization.service';
+import { formatDate } from '@angular/common';
 
 @Pipe({ name: 'longDate' })
 
@@ -27,8 +27,8 @@
   constructor(private localizationService: LocalizationService) { }
 
   transform(value: any, format: string = 'full') {
-    if (!value) { return ; }
+    if (!value) { return; }
 
-    return formatDate(value, format, (this.localizationService.locale  === 'en') ? 'en' : 'en-GB');
+    return formatDate(value, format, (this.localizationService.locale === 'en') ? 'en' : 'en-GB');
   }
 }
diff --git a/services/self-service/src/main/resources/webapp/src/app/core/services/applicationSecurity.service.ts b/services/self-service/src/main/resources/webapp/src/app/core/services/applicationSecurity.service.ts
index 1bcd4f8..6108067 100644
--- a/services/self-service/src/main/resources/webapp/src/app/core/services/applicationSecurity.service.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/core/services/applicationSecurity.service.ts
@@ -74,7 +74,8 @@
     const refreshToken = `/${this.storage.getRefreshToken()}`;
     return this.serviceFacade.buildRefreshToken(refreshToken)
       .pipe(
-        tap((tokens) => this.storage.storeTokens(tokens)));
+        tap((tokens) => this.storage.storeTokens(tokens))
+      );
   }
 
   public logout(): Observable<boolean> {
diff --git a/services/self-service/src/main/resources/webapp/src/app/core/services/applicationServiceFacade.service.ts b/services/self-service/src/main/resources/webapp/src/app/core/services/applicationServiceFacade.service.ts
index ed78447..3bb326d 100644
--- a/services/self-service/src/main/resources/webapp/src/app/core/services/applicationServiceFacade.service.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/core/services/applicationServiceFacade.service.ts
@@ -725,7 +725,6 @@
     this.requestRegistry.Add(ApplicationServiceFacade.SCHEDULER,
       '/api/infrastructure_provision/exploratory_environment/scheduler');
 
-
     // Computational Resources
     this.requestRegistry.Add(ApplicationServiceFacade.COMPUTATIONAL_RESOURCES,
       '/infrastructure_provision/computational_resources');
@@ -786,7 +785,6 @@
     this.requestRegistry.Add(ApplicationServiceFacade.AUDIT, '/api/audit');
 
     // configuration
-
     this.requestRegistry.Add(ApplicationServiceFacade.CONFIG, '/api/config/multiple');
   }
 
@@ -807,5 +805,4 @@
       return this.http.get(body ? (url + body) : url, opt);
     }
   }
-
-}
+}
\ No newline at end of file
diff --git a/services/self-service/src/main/resources/webapp/src/app/core/services/audit.service.ts b/services/self-service/src/main/resources/webapp/src/app/core/services/audit.service.ts
index 520f623..23cdc3b 100644
--- a/services/self-service/src/main/resources/webapp/src/app/core/services/audit.service.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/core/services/audit.service.ts
@@ -30,21 +30,27 @@
 
   public getAuditData(filterData, page, itemsPrPage) {
     let queryString = `?page-number=${page}&page-size=${itemsPrPage}`;
+
     if (filterData.projects.length) {
       queryString += `&projects=${filterData.projects.join(',')}`;
     }
+
     if (filterData.resources.length) {
       queryString += `&resource-names=${filterData.resources.join(',')}`;
     }
+
     if (filterData.resource_types.length) {
       queryString += `&resource-types=${filterData.resource_types.join(',')}`;
     }
+
     if (filterData.users.length) {
       queryString += `&users=${filterData.users.join(',')}`;
     }
+
     if (filterData.date_start) {
       queryString += `&date-start=${filterData.date_start}`;
     }
+    
     if (filterData.date_end) {
       queryString += `&date-end=${filterData.date_end}`;
     }
diff --git a/services/self-service/src/main/resources/webapp/src/app/core/services/authorization.guard.ts b/services/self-service/src/main/resources/webapp/src/app/core/services/authorization.guard.ts
index 93c0fbb..f086f6a 100644
--- a/services/self-service/src/main/resources/webapp/src/app/core/services/authorization.guard.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/core/services/authorization.guard.ts
@@ -21,14 +21,10 @@
 import { map } from 'rxjs/operators';
 import { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';
 import { ApplicationSecurityService } from './applicationSecurity.service';
-import { AppRoutingService } from './appRouting.service';
 
 @Injectable()
 export class AuthorizationGuard implements CanActivate {
-  constructor(
-    private appRoutingService: AppRoutingService,
-    private applicationSecurityService: ApplicationSecurityService
-  ) { }
+  constructor(private applicationSecurityService: ApplicationSecurityService) { }
 
   canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
     return this.applicationSecurityService.isLoggedIn().pipe(
diff --git a/services/self-service/src/main/resources/webapp/src/app/core/services/bucket-browser.service.ts b/services/self-service/src/main/resources/webapp/src/app/core/services/bucket-browser.service.ts
index f412a00..447c0f0 100644
--- a/services/self-service/src/main/resources/webapp/src/app/core/services/bucket-browser.service.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/core/services/bucket-browser.service.ts
@@ -18,10 +18,10 @@
  */
 
 import { Injectable } from '@angular/core';
-import {Observable} from 'rxjs';
-import {catchError, map} from 'rxjs/operators';
-import {ErrorUtils} from '../util';
-import {ApplicationServiceFacade} from './applicationServiceFacade.service';
+import { Observable } from 'rxjs';
+import { catchError, map } from 'rxjs/operators';
+import { ErrorUtils } from '../util';
+import { ApplicationServiceFacade } from './applicationServiceFacade.service';
 
 export class TodoItemNode {
   children: TodoItemNode[];
@@ -41,8 +41,7 @@
   providedIn: 'root'
 })
 export class BucketBrowserService {
-  constructor(private applicationServiceFacade: ApplicationServiceFacade) {
-  }
+  constructor(private applicationServiceFacade: ApplicationServiceFacade) { }
 
   public getBucketData(bucket, endpoint): Observable<{}> {
     const url = `/${bucket}/endpoint/${endpoint}`;
diff --git a/services/self-service/src/main/resources/webapp/src/app/core/services/checkParams.guard.ts b/services/self-service/src/main/resources/webapp/src/app/core/services/checkParams.guard.ts
index cc3032d..da042ff 100644
--- a/services/self-service/src/main/resources/webapp/src/app/core/services/checkParams.guard.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/core/services/checkParams.guard.ts
@@ -23,16 +23,12 @@
 import { map } from 'rxjs/operators';
 
 import { ApplicationSecurityService } from './applicationSecurity.service';
-import { AppRoutingService } from './appRouting.service';
 
 @Injectable()
 export class CheckParamsGuard implements CanActivate {
   result: any;
 
-  constructor(
-    private applicationSecurityService: ApplicationSecurityService,
-    private appRoutingService: AppRoutingService
-  ) { }
+  constructor(private applicationSecurityService: ApplicationSecurityService) { }
 
   canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<any> | Promise<boolean> | boolean {
     return this.applicationSecurityService.isLoggedIn().pipe(
diff --git a/services/self-service/src/main/resources/webapp/src/app/core/services/configutration.service.ts b/services/self-service/src/main/resources/webapp/src/app/core/services/configutration.service.ts
index 8ab0b7f..5ba030e 100644
--- a/services/self-service/src/main/resources/webapp/src/app/core/services/configutration.service.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/core/services/configutration.service.ts
@@ -18,7 +18,7 @@
  */
 
 import { Injectable } from '@angular/core';
-import {Observable, of} from 'rxjs';
+import { Observable } from 'rxjs';
 import { map, catchError } from 'rxjs/operators';
 import { ApplicationServiceFacade } from './applicationServiceFacade.service';
 import { ErrorUtils } from '../util';
@@ -38,7 +38,6 @@
 
   public setServiceConfig(service: string, config: string, endpoint: string): Observable<{}> {
     const settings = {
-
       ymlString: config,
       endpointName: endpoint
     };
diff --git a/services/self-service/src/main/resources/webapp/src/app/core/services/healthStatus.service.ts b/services/self-service/src/main/resources/webapp/src/app/core/services/healthStatus.service.ts
index 204e712..5474cf0 100644
--- a/services/self-service/src/main/resources/webapp/src/app/core/services/healthStatus.service.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/core/services/healthStatus.service.ts
@@ -40,12 +40,14 @@
   }
 
   public reloadInitialStatusData() {
-    this.getEnvironmentHealthStatus().subscribe(
-      (res: GeneralEnvironmentStatus) => {
-        this._statusData.next(res);
-        console.log('reload Initial Status Data');
-      },
-      err => console.error('Error retrieving status'));
+    this.getEnvironmentHealthStatus()
+      .subscribe(
+        (res: GeneralEnvironmentStatus) => {
+          this._statusData.next(res);
+          console.log('reload Initial Status Data');
+        },
+        err => console.error('Error retrieving status')
+      );
   }
 
   public isHealthStatusOk(): Observable<boolean> {
diff --git a/services/self-service/src/main/resources/webapp/src/app/core/services/odahu-deployment.service.ts b/services/self-service/src/main/resources/webapp/src/app/core/services/odahu-deployment.service.ts
index cb35758..68c0a83 100644
--- a/services/self-service/src/main/resources/webapp/src/app/core/services/odahu-deployment.service.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/core/services/odahu-deployment.service.ts
@@ -47,9 +47,9 @@
 
   public odahuAction(data, action) {
     return this.applicationServiceFacade
-        .odahuStartStop(data, action)
-        .pipe(
-            map(response => response),
-            catchError(ErrorUtils.handleServiceError));
+      .odahuStartStop(data, action)
+      .pipe(
+        map(response => response),
+        catchError(ErrorUtils.handleServiceError));
   }
 }
diff --git a/services/self-service/src/main/resources/webapp/src/app/core/services/progress-bar.service.ts b/services/self-service/src/main/resources/webapp/src/app/core/services/progress-bar.service.ts
index 095d937..e52eaca 100644
--- a/services/self-service/src/main/resources/webapp/src/app/core/services/progress-bar.service.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/core/services/progress-bar.service.ts
@@ -17,9 +17,8 @@
  * under the License.
  */
 
-import {ApplicationRef, ChangeDetectorRef, Injectable} from '@angular/core';
-import {BehaviorSubject, Subject, timer} from 'rxjs';
-import {take} from 'rxjs/operators';
+import { Injectable } from '@angular/core';
+import {BehaviorSubject, timer} from 'rxjs';
 
 @Injectable({
   providedIn: 'root'
diff --git a/services/self-service/src/main/resources/webapp/src/app/core/services/project.service.ts b/services/self-service/src/main/resources/webapp/src/app/core/services/project.service.ts
index e912503..ccf93f8 100644
--- a/services/self-service/src/main/resources/webapp/src/app/core/services/project.service.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/core/services/project.service.ts
@@ -19,11 +19,10 @@
 
 import { Injectable } from '@angular/core';
 import { Observable } from 'rxjs';
-import {map, catchError, tap} from 'rxjs/operators';
+import { map, catchError } from 'rxjs/operators';
 
 import { ApplicationServiceFacade } from './applicationServiceFacade.service';
 import { ErrorUtils } from '../util';
-import {logger} from 'codelyzer/util/logger';
 
 @Injectable()
 export class ProjectService {
diff --git a/services/self-service/src/main/resources/webapp/src/app/core/services/userAccessKey.service.ts b/services/self-service/src/main/resources/webapp/src/app/core/services/userAccessKey.service.ts
index 81e8008..a48219f 100644
--- a/services/self-service/src/main/resources/webapp/src/app/core/services/userAccessKey.service.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/core/services/userAccessKey.service.ts
@@ -40,12 +40,15 @@
   }
 
   public initialUserAccessKeyCheck() {
-    this.checkUserAccessKey().subscribe(
-      response => {
-        this._accessKeyEmitter.next(response);
-      }, error => {
-        this._accessKeyEmitter.next(error);
-      });
+    this.checkUserAccessKey()
+      .subscribe(
+        response => {
+          this._accessKeyEmitter.next(response);
+        }, 
+        error => {
+          this._accessKeyEmitter.next(error);
+        }
+      );
   }
 
   public checkUserAccessKey(): Observable<{}> {
diff --git a/services/self-service/src/main/resources/webapp/src/app/core/services/userResource.service.ts b/services/self-service/src/main/resources/webapp/src/app/core/services/userResource.service.ts
index 6f7c254..3f2d5f8 100644
--- a/services/self-service/src/main/resources/webapp/src/app/core/services/userResource.service.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/core/services/userResource.service.ts
@@ -108,7 +108,12 @@
         catchError(ErrorUtils.handleServiceError));
   }
 
-  public suspendComputationalResource(projectName: string, notebookName: string, computationalResourceName: string, provider: string): Observable<{}> {
+  public suspendComputationalResource(
+    projectName: string, 
+    notebookName: string, 
+    computationalResourceName: string, 
+    provider: string
+  ): Observable<{}> {
     const body = JSON.stringify('/' + projectName + '/' + notebookName + '/' + computationalResourceName + '/terminate');
     return this.applicationServiceFacade
       .buildDeleteComputationalResourcesRequest(body, provider)
@@ -117,7 +122,13 @@
         catchError(ErrorUtils.handleServiceError));
   }
 
-  public toggleStopStartAction(project: string, notebook: string, resource: string, action, provider: string): Observable<{}> {
+  public toggleStopStartAction(
+    project: string, 
+    notebook: string, 
+    resource: string, 
+    action, 
+    provider: string
+  ): Observable<{}> {
     const url = `/${project}/${notebook}/${resource}/${action}`;
     if (action === 'stop') {
       return this.applicationServiceFacade
diff --git a/services/self-service/src/main/resources/webapp/src/app/core/util/checkUtils.ts b/services/self-service/src/main/resources/webapp/src/app/core/util/checkUtils.ts
index ab70476..d1e6f53 100644
--- a/services/self-service/src/main/resources/webapp/src/app/core/util/checkUtils.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/core/util/checkUtils.ts
@@ -28,6 +28,7 @@
     STOPPING: 'DISCONNECTING',
     STOPPED: 'DISCONNECTED'
   };
+  
   public static isJSON(str) {
     try {
       JSON.parse(str);
diff --git a/services/self-service/src/main/resources/webapp/src/app/core/util/compareUtils.ts b/services/self-service/src/main/resources/webapp/src/app/core/util/compareUtils.ts
index 919aa26..ad490e1 100644
--- a/services/self-service/src/main/resources/webapp/src/app/core/util/compareUtils.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/core/util/compareUtils.ts
@@ -21,7 +21,6 @@
   public static compareFilters(currentData, previousData) {
     return Object.keys(currentData).every(el => {
       if (Array.isArray(previousData[el])) {
-        // console.log('arr', el, previousData[el], currentData[el]);
         if (previousData[el].length === 0 && currentData[el].length === 0) return true;
         if (previousData[el].length === currentData[el].length) {
           return currentData[el].every(element => previousData[el].includes(element));
@@ -29,10 +28,8 @@
           return false;
         }
       } else {
-        // console.log(el, previousData[el] === currentData[el]);
         return previousData[el] === currentData[el];
       }
     });
   }
-
 }
diff --git a/services/self-service/src/main/resources/webapp/src/app/core/util/dateUtils.ts b/services/self-service/src/main/resources/webapp/src/app/core/util/dateUtils.ts
index 718ddf4..9e66835 100644
--- a/services/self-service/src/main/resources/webapp/src/app/core/util/dateUtils.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/core/util/dateUtils.ts
@@ -29,8 +29,8 @@
   }
 
   public getQuarterRange() {
-    const currentMonth = (new Date()).getMonth();
-    const yyyy = (new Date()).getFullYear();
+    const currentMonth = new Date().getMonth();
+    const yyyy = new Date().getFullYear();
     const start = (Math.floor(currentMonth / 3) * 3 ) + 1,
           end = start + 3,
           startDate = new Date(start + '-01-' + yyyy);
diff --git a/services/self-service/src/main/resources/webapp/src/app/core/util/http-status-codes.ts b/services/self-service/src/main/resources/webapp/src/app/core/util/http-status-codes.ts
index d2323e7..c365052 100644
--- a/services/self-service/src/main/resources/webapp/src/app/core/util/http-status-codes.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/core/util/http-status-codes.ts
@@ -18,57 +18,57 @@
  */
 
 export class HTTP_STATUS_CODES {
-    public static readonly ACCEPTED = 202;
-    public static readonly BAD_GATEWAY = 502;
-    public static readonly BAD_REQUEST = 400;
-    public static readonly CONFLICT = 409;
-    public static readonly CONTINUE = 100;
-    public static readonly CREATED = 201;
-    public static readonly EXPECTATION_FAILED = 417;
-    public static readonly FAILED_DEPENDENCY = 424;
-    public static readonly FORBIDDEN = 403;
-    public static readonly GATEWAY_TIMEOUT = 504;
-    public static readonly GONE = 410;
-    public static readonly HTTP_VERSION_NOT_SUPPORTED = 505;
-    public static readonly INSUFFICIENT_SPACE_ON_RESOURCE = 419;
-    public static readonly INSUFFICIENT_STORAGE = 507;
-    public static readonly INTERNAL_SERVER_ERROR = 500;
-    public static readonly LENGTH_REQUIRED = 411;
-    public static readonly LOCKED = 423;
-    public static readonly METHOD_FAILURE = 420;
-    public static readonly METHOD_NOT_ALLOWED = 405;
-    public static readonly MOVED_PERMANENTLY = 301;
-    public static readonly MOVED_TEMPORARILY = 302;
-    public static readonly MULTI_STATUS = 207;
-    public static readonly MULTIPLE_CHOICES = 300;
-    public static readonly NETWORK_AUTHENTICATION_REQUIRED = 511;
-    public static readonly NO_CONTENT = 204;
-    public static readonly NON_AUTHORITATIVE_INFORMATION = 203;
-    public static readonly NOT_ACCEPTABLE = 406;
-    public static readonly NOT_FOUND = 404;
-    public static readonly NOT_IMPLEMENTED = 501;
-    public static readonly NOT_MODIFIED = 304;
-    public static readonly OK = 200;
-    public static readonly PARTIAL_CONTENT = 206;
-    public static readonly PAYMENT_REQUIRED = 402;
-    public static readonly PERMANENT_REDIRECT = 308;
-    public static readonly PRECONDITION_FAILED = 412;
-    public static readonly PRECONDITION_REQUIRED = 428;
-    public static readonly PROCESSING = 102;
-    public static readonly PROXY_AUTHENTICATION_REQUIRED = 407;
-    public static readonly REQUEST_HEADER_FIELDS_TOO_LARGE = 431;
-    public static readonly REQUEST_TIMEOUT = 408;
-    public static readonly REQUEST_TOO_LONG = 413;
-    public static readonly REQUEST_URI_TOO_LONG = 414;
-    public static readonly REQUESTED_RANGE_NOT_SATISFIABLE = 416;
-    public static readonly RESET_CONTENT = 205;
-    public static readonly SEE_OTHER = 303;
-    public static readonly SERVICE_UNAVAILABLE = 503;
-    public static readonly SWITCHING_PROTOCOLS = 101;
-    public static readonly TEMPORARY_REDIRECT = 307;
-    public static readonly TOO_MANY_REQUESTS = 429;
-    public static readonly UNAUTHORIZED = 401;
-    public static readonly UNPROCESSABLE_ENTITY = 422;
-    public static readonly UNSUPPORTED_MEDIA_TYPE = 415;
-    public static readonly USE_PROXY = 305;
+	public static readonly ACCEPTED = 202;
+	public static readonly BAD_GATEWAY = 502;
+	public static readonly BAD_REQUEST = 400;
+	public static readonly CONFLICT = 409;
+	public static readonly CONTINUE = 100;
+	public static readonly CREATED = 201;
+	public static readonly EXPECTATION_FAILED = 417;
+	public static readonly FAILED_DEPENDENCY = 424;
+	public static readonly FORBIDDEN = 403;
+	public static readonly GATEWAY_TIMEOUT = 504;
+	public static readonly GONE = 410;
+	public static readonly HTTP_VERSION_NOT_SUPPORTED = 505;
+	public static readonly INSUFFICIENT_SPACE_ON_RESOURCE = 419;
+	public static readonly INSUFFICIENT_STORAGE = 507;
+	public static readonly INTERNAL_SERVER_ERROR = 500;
+	public static readonly LENGTH_REQUIRED = 411;
+	public static readonly LOCKED = 423;
+	public static readonly METHOD_FAILURE = 420;
+	public static readonly METHOD_NOT_ALLOWED = 405;
+	public static readonly MOVED_PERMANENTLY = 301;
+	public static readonly MOVED_TEMPORARILY = 302;
+	public static readonly MULTI_STATUS = 207;
+	public static readonly MULTIPLE_CHOICES = 300;
+	public static readonly NETWORK_AUTHENTICATION_REQUIRED = 511;
+	public static readonly NO_CONTENT = 204;
+	public static readonly NON_AUTHORITATIVE_INFORMATION = 203;
+	public static readonly NOT_ACCEPTABLE = 406;
+	public static readonly NOT_FOUND = 404;
+	public static readonly NOT_IMPLEMENTED = 501;
+	public static readonly NOT_MODIFIED = 304;
+	public static readonly OK = 200;
+	public static readonly PARTIAL_CONTENT = 206;
+	public static readonly PAYMENT_REQUIRED = 402;
+	public static readonly PERMANENT_REDIRECT = 308;
+	public static readonly PRECONDITION_FAILED = 412;
+	public static readonly PRECONDITION_REQUIRED = 428;
+	public static readonly PROCESSING = 102;
+	public static readonly PROXY_AUTHENTICATION_REQUIRED = 407;
+	public static readonly REQUEST_HEADER_FIELDS_TOO_LARGE = 431;
+	public static readonly REQUEST_TIMEOUT = 408;
+	public static readonly REQUEST_TOO_LONG = 413;
+	public static readonly REQUEST_URI_TOO_LONG = 414;
+	public static readonly REQUESTED_RANGE_NOT_SATISFIABLE = 416;
+	public static readonly RESET_CONTENT = 205;
+	public static readonly SEE_OTHER = 303;
+	public static readonly SERVICE_UNAVAILABLE = 503;
+	public static readonly SWITCHING_PROTOCOLS = 101;
+	public static readonly TEMPORARY_REDIRECT = 307;
+	public static readonly TOO_MANY_REQUESTS = 429;
+	public static readonly UNAUTHORIZED = 401;
+	public static readonly UNPROCESSABLE_ENTITY = 422;
+	public static readonly UNSUPPORTED_MEDIA_TYPE = 415;
+	public static readonly USE_PROXY = 305;
 }
diff --git a/services/self-service/src/main/resources/webapp/src/app/core/util/sortUtils.ts b/services/self-service/src/main/resources/webapp/src/app/core/util/sortUtils.ts
index 24dbf49..fa220da 100644
--- a/services/self-service/src/main/resources/webapp/src/app/core/util/sortUtils.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/core/util/sortUtils.ts
@@ -56,7 +56,8 @@
   }
 
   public static flatDeep(arr, d = 1) {
-    return d > 0 ? arr.reduce((acc, val) => acc.concat(Array.isArray(val) ? this.flatDeep(val, d - 1) : val), [])
+    return d > 0 
+      ? arr.reduce((acc, val) => acc.concat(Array.isArray(val) ? this.flatDeep(val, d - 1) : val), [])
       : arr.slice();
   }
 
diff --git a/services/self-service/src/main/resources/webapp/src/app/login/login.component.css b/services/self-service/src/main/resources/webapp/src/app/login/login.component.css
index 890b9f4..c12189f 100644
--- a/services/self-service/src/main/resources/webapp/src/app/login/login.component.css
+++ b/services/self-service/src/main/resources/webapp/src/app/login/login.component.css
@@ -22,49 +22,49 @@
 }
 
 .butt-azure {
+  padding: 0 15px;
+  margin-left: 10px;
   color: #fff;
   background-color: #5bc0de;
-  margin-left: 10px;
-  padding: 0 15px;
 }
 
 .butt-login.mat-raised-button {
   display: block;
-  margin: 0 auto;
   height: 38px;
+  width: 200px;
+  margin: 0 auto;
   background-color: #5bc0de;
   color: #fff;
   border-color: #46b8da;
-  width: 200px;
 }
 
 .butt-login.mat-raised-button:disabled {
   color: #35afd6;
   background-color: rgba(0, 0, 0, 0.28);
   border: 1px solid;
-  box-shadow: 0 3px 1px -2px rgba(53, 175, 213, 0.74),
-    0 2px 2px 0 rgba(53, 175, 213, 0.65), 0 1px 5px 0 rgba(53, 175, 213, 0.47);
+  box-shadow: 0 3px 1px -2px rgba(53, 175, 213, 0.74), 0 2px 2px 0 rgba(53, 175, 213, 0.65),
+    0 1px 5px 0 rgba(53, 175, 213, 0.47);
 }
 
 .login_page .logo {
   display: flex;
   justify-content: center;
-  margin-bottom: 45px;
-  cursor: default;
   height: 250px;
   width: 360px;
+  margin-bottom: 45px;
+  cursor: default;
 }
 
 .login_page {
-  background: url(../../assets/img/login-background.png) top center;
-  background-size: cover;
   position: absolute;
   left: 0;
   top: 0;
+  display: table;
   width: 100%;
   height: 100%;
   text-align: center;
-  display: table;
+  background: url(../../assets/img/login-background.png) top center;
+  background-size: cover;
 }
 
 .login_page .content {
@@ -95,27 +95,27 @@
 .input-icon-group {
   display: flex;
   flex-direction: row;
-  background: #fff;
   margin-bottom: 20px;
+  background: #fff;
 }
 
 .input-with-icon {
   width: 100%;
-  outline: none;
-  background-color: #fff;
   height: 40px !important;
-  color: #555;
   padding: 6px 12px;
+  color: #555;
+  background-color: #fff;
   box-sizing: border-box;
   border: 1px solid #35afd5 !important;
   border-left: 1px solid #35afd5;
-  transition: all 0.35s ease-in-out;
   /* font: 300 14px/24px 'Open Sans', sans-serif !important; */
   font-style: normal;
   font-weight: 300;
   font-size: 14px;
   line-height: 24px;
-  font-family: 'Open Sans', sans-serif !important;
+  font-family: "Open Sans", sans-serif !important;
+  transition: all 0.35s ease-in-out;
+  outline: none;
 }
 
 .input-icon {
@@ -143,8 +143,8 @@
 }
 
 .validation-block {
-  text-align: left;
   display: table-caption;
+  text-align: left;
   color: red;
 }
 
@@ -156,9 +156,9 @@
 .fountainG {
   position: absolute;
   top: 0;
-  background-color: rgb(79, 163, 189);
   width: 6px;
   height: 6px;
+  background-color: rgb(79, 163, 189);
   animation-name: bounce_fountainG;
   -o-animation-name: bounce_fountainG;
   -ms-animation-name: bounce_fountainG;
diff --git a/services/self-service/src/main/resources/webapp/src/app/reports/audit/audit-grid/audit-grid.component.html b/services/self-service/src/main/resources/webapp/src/app/reports/audit/audit-grid/audit-grid.component.html
index cce35e1..1e3b8df 100644
--- a/services/self-service/src/main/resources/webapp/src/app/reports/audit/audit-grid/audit-grid.component.html
+++ b/services/self-service/src/main/resources/webapp/src/app/reports/audit/audit-grid/audit-grid.component.html
@@ -23,7 +23,12 @@
     <ng-container matColumnDef="date">
       <th mat-header-cell *matHeaderCellDef class="th_date label-header">
         <div class="label"><span class="text">Date</span></div>
-        <button mat-icon-button aria-label="More" class="ar" (click)="toggleFilterRow()">
+        <button 
+          mat-icon-button 
+          aria-label="More" 
+          class="ar" 
+          (click)="toggleFilterRow()"
+        >
           <i class="material-icons">
             <span>more_vert</span>
           </i>
@@ -37,7 +42,12 @@
     <ng-container matColumnDef="user">
       <th mat-header-cell *matHeaderCellDef class="th_user label-header" [ngStyle]="{'z-index': 99}">
         <div class="label"><span class="audit-user"> User</span></div>
-        <button mat-icon-button aria-label="More" class="ar" (click)="toggleFilterRow()">
+        <button 
+          mat-icon-button 
+          aria-label="More" 
+          class="ar" 
+          (click)="toggleFilterRow()"
+        >
           <i class="material-icons">
             <span *ngIf="filterAuditData.users.length > 0; else user_filtered">filter_list</span>
             <ng-template #user_filtered>more_vert</ng-template>
@@ -57,7 +67,12 @@
         <div class="label">
           <span class="text"> Action </span>
         </div>
-        <button mat-icon-button aria-label="More" class="ar" (click)="toggleFilterRow()">
+        <button 
+          mat-icon-button 
+          aria-label="More" 
+          class="ar" 
+          (click)="toggleFilterRow()"
+        >
           <i class="material-icons">
             <span>more_vert</span>
           </i>
@@ -71,7 +86,9 @@
             [matTooltipClass]="'full-size-tooltip'"
             matTooltipPosition="above"
             [matTooltipDisabled]="element.action?.length < 12"
-          >{{element.action | convertaction }}</span>
+          >
+            {{element.action | convertaction }}
+          </span>
           <div class="audit-info" (click)="openActionInfo(element)" *ngIf="element.info">
             <i class="material-icons">info</i>
           </div>
@@ -83,7 +100,12 @@
     <ng-container matColumnDef="project">
       <th mat-header-cell *matHeaderCellDef class="th_project label-header">
         <div class="label"><span class="text">Project</span></div>
-        <button mat-icon-button aria-label="More" class="ar" (click)="toggleFilterRow()">
+        <button 
+          mat-icon-button 
+          aria-label="More" 
+          class="ar" 
+          (click)="toggleFilterRow()"
+        >
           <i class="material-icons">
             <span *ngIf="filterAuditData.projects.length > 0; else user_filtered">filter_list</span>
             <ng-template #user_filtered>more_vert</ng-template>
@@ -101,7 +123,12 @@
     <ng-container matColumnDef="resource-type">
       <th mat-header-cell *matHeaderCellDef class="th_resource-type label-header">
         <div class="label"><span class="text">Resource type</span></div>
-        <button mat-icon-button aria-label="More" class="ar" (click)="toggleFilterRow()">
+        <button 
+          mat-icon-button 
+          aria-label="More" 
+          class="ar" 
+          (click)="toggleFilterRow()"
+        >
           <i class="material-icons">
             <span *ngIf="filterAuditData.resource_types.length > 0; else user_filtered">filter_list</span>
             <ng-template #user_filtered>more_vert</ng-template>
@@ -125,8 +152,13 @@
                   <mat-form-field>
                     <mat-label></mat-label>
                     <mat-select [(value)]="showItemsPrPage">
-                      <mat-option *ngFor="let item of itemsPrPage" [value]="item" (click)="setItemsPrPage(item)">
-                        {{ item }}</mat-option>
+                      <mat-option 
+                        *ngFor="let item of itemsPrPage" 
+                        [value]="item" 
+                        (click)="setItemsPrPage(item)"
+                      >
+                        {{ item }}
+                      </mat-option>
                     </mat-select>
                     <button class="caret">
                       <i class="material-icons">keyboard_arrow_down</i>
@@ -141,22 +173,38 @@
           </span>
           <span>
             <span [ngClass]="{'not-active':  !isNavigationDisabled || firstItem === 1}">
-              <span class="navigation-butts" (click)="loadItemsForPage('first')" [ngClass]="{'not-allowed': firstItem === 1 || !isNavigationDisabled}">
+              <span 
+                class="navigation-butts" 
+                (click)="loadItemsForPage('first')" 
+                [ngClass]="{'not-allowed': firstItem === 1 || !isNavigationDisabled}"
+              >
                 <i class="material-icons">first_page</i>
               </span>
             </span>
             <span [ngClass]="{'not-active': firstItem === 1 || !isNavigationDisabled}">
-              <span class="navigation-butts" (click)="loadItemsForPage('previous')" [ngClass]="{'not-allowed': firstItem === 1 || !isNavigationDisabled}">
+              <span 
+                class="navigation-butts" 
+                (click)="loadItemsForPage('previous')" 
+                [ngClass]="{'not-allowed': firstItem === 1 || !isNavigationDisabled}"
+              >
                 <i class="material-icons">keyboard_arrow_left</i>
               </span>
             </span>
             <span [ngClass]="{'not-active': lastItem >= allItems || !isNavigationDisabled}">
-              <span class="navigation-butts" (click)="loadItemsForPage('next')" [ngClass]="{'not-allowed': lastItem >= allItems || !isNavigationDisabled}">
+              <span 
+                class="navigation-butts" 
+                (click)="loadItemsForPage('next')" 
+                [ngClass]="{'not-allowed': lastItem >= allItems || !isNavigationDisabled}"
+              >
                 <i class="material-icons">keyboard_arrow_right</i>
               </span>
             </span>
             <span [ngClass]="{'not-active': lastItem >= allItems || !isNavigationDisabled}">
-              <span class="navigation-butts" (click)="loadItemsForPage('last')" [ngClass]="{'not-allowed': lastItem >= allItems || !isNavigationDisabled}">
+              <span 
+                class="navigation-butts" 
+                (click)="loadItemsForPage('last')" 
+                [ngClass]="{'not-allowed': lastItem >= allItems || !isNavigationDisabled}"
+              >
                 <i class="material-icons">last_page</i>
               </span>
             </span>
@@ -168,7 +216,12 @@
     <ng-container matColumnDef="resource">
       <th mat-header-cell *matHeaderCellDef class="th_resource label-header">
         <div class="label"><span class="text">Resource</span></div>
-        <button mat-icon-button aria-label="More" class="ar" (click)="toggleFilterRow()">
+        <button 
+          mat-icon-button 
+          aria-label="More" 
+          class="ar" 
+          (click)="toggleFilterRow()"
+        >
           <i class="material-icons">
             <span *ngIf="filterAuditData.resources.length > 0; else user_filtered">filter_list</span>
             <ng-template #user_filtered>more_vert</ng-template>
@@ -185,9 +238,7 @@
           </span>
         </div>
       </td>
-      <td mat-footer-cell *matFooterCellDef class="table-footer" [hidden]="true">
-
-      </td>
+      <td mat-footer-cell *matFooterCellDef class="table-footer" [hidden]="true"></td>
     </ng-container>
 
     <ng-container matColumnDef="buttons">
@@ -197,18 +248,28 @@
       </td>
     </ng-container>
 
-<!--   AUDIT FILTER-->
+    <!--   AUDIT FILTER-->
     <ng-container matColumnDef="user-filter">
       <th mat-header-cell *matHeaderCellDef class="filter-row-item">
-        <multi-select-dropdown *ngIf="filterConfiguration" (selectionChange)="onUpdate($event)" [type]="'users'"
-                               [items]="filterConfiguration.users" [model]="filterAuditData.users"></multi-select-dropdown>
+        <multi-select-dropdown 
+          *ngIf="filterConfiguration" 
+          (selectionChange)="onUpdate($event)" 
+          [type]="'users'"
+          [items]="filterConfiguration.users" 
+          [model]="filterAuditData.users"
+        ></multi-select-dropdown>
       </th>
     </ng-container>
 
     <ng-container matColumnDef="project-filter">
       <th mat-header-cell *matHeaderCellDef class="filter-row-item">
-        <multi-select-dropdown *ngIf="filterConfiguration" (selectionChange)="onUpdate($event)" [type]="'projects'"
-                               [items]="filterConfiguration.projects" [model]="filterAuditData.projects"></multi-select-dropdown>
+        <multi-select-dropdown 
+          *ngIf="filterConfiguration" 
+          (selectionChange)="onUpdate($event)" 
+          [type]="'projects'"
+          [items]="filterConfiguration.projects" 
+          [model]="filterAuditData.projects"
+        ></multi-select-dropdown>
       </th>
     </ng-container>
 
@@ -216,37 +277,53 @@
       <th mat-header-cell *matHeaderCellDef class="filter-row-item">
         <multi-select-dropdown
           class="audit-resources"
-          *ngIf="filterConfiguration" (selectionChange)="onUpdate($event)" [type]="'resources'"
-                               [items]="filterConfiguration.resources" [model]="filterAuditData.resources"></multi-select-dropdown>
+          *ngIf="filterConfiguration" 
+          (selectionChange)="onUpdate($event)" 
+          [type]="'resources'"
+          [items]="filterConfiguration.resources" 
+          [model]="filterAuditData.resources"
+        ></multi-select-dropdown>
       </th>
     </ng-container>
 
     <ng-container matColumnDef="resource-type-filter">
       <th mat-header-cell *matHeaderCellDef class="filter-row-item">
-        <multi-select-dropdown *ngIf="filterConfiguration" (selectionChange)="onUpdate($event)" [type]="'resource_types'"
-                               [items]="filterConfiguration.resource_types" [model]="filterAuditData.resource_types"></multi-select-dropdown>
+        <multi-select-dropdown 
+          *ngIf="filterConfiguration" 
+          (selectionChange)="onUpdate($event)" 
+          [type]="'resource_types'"
+          [items]="filterConfiguration.resource_types" 
+          [model]="filterAuditData.resource_types"
+        ></multi-select-dropdown>
       </th>
     </ng-container>
 
     <ng-container matColumnDef="actions-filter">
-      <th mat-header-cell *matHeaderCellDef class="filter-row-item">
-
-      </th>
+      <th mat-header-cell *matHeaderCellDef class="filter-row-item"></th>
     </ng-container>
 
     <ng-container matColumnDef="date-filter">
-      <th mat-header-cell *matHeaderCellDef class="filter-row-item">
-      </th>
+      <th mat-header-cell *matHeaderCellDef class="filter-row-item"></th>
     </ng-container>
 
     <ng-container matColumnDef="filter-buttons" stickyEnd>
       <th mat-header-cell *matHeaderCellDef class="filter-row-item">
         <div class="actions audit-actions">
-          <button mat-icon-button class="btn reset" (click)="resetFilterConfigurations()" [disabled]="!isFilterSelected">
+          <button 
+            mat-icon-button 
+            class="btn reset" 
+            (click)="resetFilterConfigurations()" 
+            [disabled]="!isFilterSelected"
+          >
             <i class="material-icons">close</i>
           </button>
 
-          <button mat-icon-button class="btn apply" (click)="buildAuditGrid(true)" [disabled]="isNavigationDisabled">
+          <button 
+            mat-icon-button 
+            class="btn apply" 
+            (click)="buildAuditGrid(true)" 
+            [disabled]="isNavigationDisabled"
+          >
             <i class="material-icons">done</i>
           </button>
         </div>
@@ -264,11 +341,14 @@
 
     <tr mat-header-row *matHeaderRowDef="displayedColumns; sticky: true" class="header-row"></tr>
 
-    <tr [hidden]="!collapseFilterRow" mat-header-row *matHeaderRowDef="displayedFilterColumns; sticky: true"
-      class="filter-row"></tr>
+    <tr 
+      [hidden]="!collapseFilterRow" 
+      mat-header-row 
+      *matHeaderRowDef="displayedFilterColumns; sticky: true"
+      class="filter-row"
+    ></tr>
     <tr mat-row *matRowDef="let row; columns: displayedColumns;" class="content-row"></tr>
     <tr [hidden]="!auditData?.length" mat-footer-row *matFooterRowDef="displayedColumns"></tr>
-
     <tr [hidden]="auditData?.length" mat-footer-row *matFooterRowDef="['placeholder']"></tr>
   </table>
 </section>
diff --git a/services/self-service/src/main/resources/webapp/src/app/reports/audit/audit-grid/audit-grid.component.scss b/services/self-service/src/main/resources/webapp/src/app/reports/audit/audit-grid/audit-grid.component.scss
index 4b289b6..555d7ad 100644
--- a/services/self-service/src/main/resources/webapp/src/app/reports/audit/audit-grid/audit-grid.component.scss
+++ b/services/self-service/src/main/resources/webapp/src/app/reports/audit/audit-grid/audit-grid.component.scss
@@ -24,9 +24,9 @@
   max-height: -moz-calc(100vh - 130px);
   max-height: -webkit-calc(100vh - 130px);
   overflow: visible;
-  box-shadow: 0 3px 5px -1px rgba(0,0,0,.2), 0 6px 10px 0 rgba(0,0,0,.14), 0 1px 18px 0 rgba(0,0,0,.12);
+  box-shadow: 0 3px 5px -1px rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.14), 0 1px 18px 0 rgba(0, 0, 0, 0.12);
 
-  &.scroll{
+  &.scroll {
     overflow: auto;
   }
 
@@ -43,49 +43,49 @@
 
     tr {
       .th_user {
-        width: 19%;
         z-index: 9 !important;
+        width: 19%;
       }
 
       .th_action {
-        width: 11%;
         z-index: 8 !important;
+        width: 11%;
         max-width: 250px;
       }
 
       .th_date {
-        width: 14%;
         z-index: 10 !important;
-        padding-left: 0;
+        width: 14%;
         max-width: 240px;
+        padding-left: 0;
       }
 
       .th_project {
-        width: 11%;
         z-index: 7 !important;
+        width: 11%;
         max-width: 206px;
       }
 
       .th_resource {
-        width: 14%;
         z-index: 5 !important;
+        width: 14%;
         max-width: 240px;
       }
 
       .th_resource-type {
-        width: 14%;
         z-index: 6 !important;
+        width: 14%;
         max-width: 240px;
       }
 
       .th_buttons {
-        width: 6%;
         z-index: 4 !important;
+        width: 6%;
       }
 
       th {
-        padding-right: 5px;
         z-index: 2 !important;
+        padding-right: 5px;
 
         &.th_charges {
           z-index: 3 !important;
@@ -93,27 +93,26 @@
       }
 
       td {
-        font-size: 13px;
         padding-left: 20px;
+        font-size: 13px;
 
         &.info {
           z-index: 1 !important;
-          text-align: center;
           padding: 40px;
+          text-align: center;
         }
       }
 
       &.filter-row {
         th {
           padding: 5px;
-          font-size: 13px;
           z-index: 103 !important;
+          font-size: 13px;
         }
 
         .filter-field {
           font-size: 13px;
         }
-
       }
 
       &.header-row {
@@ -127,7 +126,6 @@
       }
     }
 
-
     .tags {
       .label {
         padding-top: 0;
@@ -175,14 +173,14 @@
       padding: 5px;
 
       mat-chip {
-        min-height: 20px;
-        padding: 5px 10px;
-        font-size: 13px;
-        max-width: 110px !important;
-        white-space: nowrap;
         display: inline-block;
-        line-height: 10px;
+        min-height: 20px;
+        max-width: 110px !important;
+        padding: 5px 10px;
         margin: 2px;
+        font-size: 13px;
+        white-space: nowrap;
+        line-height: 10px;
       }
     }
 
@@ -219,8 +217,8 @@
           width: 6px;
           height: 6px;
           border: 3px solid transparent;
-          border-bottom: 3px solid rgba(0, 0, 0, .54);
-          border-left: 3px solid rgba(0, 0, 0, .54);
+          border-bottom: 3px solid rgba(0, 0, 0, 0.54);
+          border-left: 3px solid rgba(0, 0, 0, 0.54);
           cursor: pointer;
 
           &.active {
@@ -240,16 +238,16 @@
     }
   }
 
-  .table-item-wrapper{
+  .table-item-wrapper {
     display: flex;
     align-items: center;
     justify-content: space-between;
     padding-right: 10px;
-    span{
+    span {
       cursor: default;
 
-      &::after{
-        content: '';
+      &::after {
+        content: "";
         display: block;
       }
     }
@@ -260,7 +258,7 @@
     align-items: center;
     justify-content: space-between;
     padding-right: 10px;
-    span{
+    span {
       max-width: 85%;
     }
 
@@ -278,9 +276,9 @@
 
     .dropdown-multiselect {
       button {
-        font-size: 13px;
         height: 34px;
         padding: 7px 20px;
+        font-size: 13px;
       }
     }
   }
@@ -308,16 +306,15 @@
     }
   }
 
-    .navigation-butts {
-      cursor: pointer;
-      color: #35afd5;
+  .navigation-butts {
+    cursor: pointer;
+    color: #35afd5;
 
-      .not-active {
-        color: lightgray;
-      }
+    .not-active {
+      color: lightgray;
     }
   }
-
+}
 
 .audit-actions {
   text-align: right;
@@ -332,8 +329,7 @@
   position: -webkit-sticky;
   bottom: -1px;
   background: inherit;
-  border-top: 1px solid #E0E0E0;
+  border-top: 1px solid #e0e0e0;
   transform: translateY(-1px);
   border-bottom: none;
-}
-
+}
\ No newline at end of file
diff --git a/services/self-service/src/main/resources/webapp/src/app/reports/audit/audit-grid/audit-grid.component.ts b/services/self-service/src/main/resources/webapp/src/app/reports/audit/audit-grid/audit-grid.component.ts
index 2dc50a2..090dcb3 100644
--- a/services/self-service/src/main/resources/webapp/src/app/reports/audit/audit-grid/audit-grid.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/reports/audit/audit-grid/audit-grid.component.ts
@@ -22,10 +22,8 @@
 import {MAT_DIALOG_DATA, MatDialog, MatDialogRef} from '@angular/material/dialog';
 import {AuditService} from '../../../core/services/audit.service';
 import {SortUtils} from '../../../core/util';
-import {LocalizationService} from '../../../core/services/localization.service';
 import {CompareUtils} from '../../../core/util/compareUtils';
 
-
 export interface AuditItem {
   action: string;
   info: string;
@@ -61,13 +59,11 @@
 
   @Output() resetDateFilter: EventEmitter<any> = new EventEmitter();
 
-
   constructor(
     public dialogRef: MatDialogRef<AuditInfoDialogComponent>,
     public dialog: MatDialog,
     private auditService: AuditService,
-  ) {
-  }
+  ) { }
 
   ngOnInit() {}
 
@@ -130,9 +126,11 @@
 
   public openActionInfo(element: AuditItem): void {
     if (element.type === 'GROUP' && element.info.indexOf('role') !== -1) {
-      this.dialog.open(AuditInfoDialogComponent, { data: {element, dialogSize: 'big'}, panelClass: 'modal-xl-m' });
+      this.dialog.open(AuditInfoDialogComponent, 
+        { data: { element, dialogSize: 'big' }, panelClass: 'modal-xl-m' });
     } else {
-      this.dialog.open(AuditInfoDialogComponent, { data: {element, dialogSize: 'small'}, panelClass: 'modal-md' });
+      this.dialog.open(AuditInfoDialogComponent, 
+        { data:  {element, dialogSize: 'small' }, panelClass: 'modal-md' });
     }
   }
 
@@ -151,15 +149,18 @@
       this.lastItem = this.showItemsPrPage;
     } else if (action === 'previous') {
       this.firstItem = this.firstItem - this.showItemsPrPage;
-      this.lastItem = this.lastItem % this.showItemsPrPage === 0 ?
-        this.lastItem - this.showItemsPrPage : this.lastItem - (this.lastItem % this.showItemsPrPage);
+      this.lastItem = this.lastItem % this.showItemsPrPage === 0 
+        ? this.lastItem - this.showItemsPrPage 
+        : this.lastItem - (this.lastItem % this.showItemsPrPage);
     } else if (action === 'next') {
       this.firstItem = this.firstItem + this.showItemsPrPage;
-      this.lastItem = (this.lastItem + this.showItemsPrPage) > this.allItems ?
-        this.allItems : this.lastItem + this.showItemsPrPage;
+      this.lastItem = (this.lastItem + this.showItemsPrPage) > this.allItems 
+        ? this.allItems 
+        : this.lastItem + this.showItemsPrPage;
     } else if (action === 'last') {
-      this.firstItem = this.allItems % this.showItemsPrPage === 0 ?
-        this.allItems - this.showItemsPrPage : this.allItems - (this.allItems % this.showItemsPrPage) + 1;
+      this.firstItem = this.allItems % this.showItemsPrPage === 0 
+        ? this.allItems - this.showItemsPrPage 
+        : this.allItems - (this.allItems % this.showItemsPrPage) + 1;
       this.lastItem = this.allItems;
     }
   }
@@ -176,7 +177,6 @@
   }
 }
 
-
 @Component({
   selector: 'audit-info-dialog',
   template: `
@@ -185,8 +185,15 @@
               <h4 class="modal-title">{{data.element.action | convertaction}}</h4>
               <button type="button" class="close" (click)="dialogRef.close()">&times;</button>
           </header>
-          <div mat-dialog-content class="content audit-info-content" [ngClass]="{'pb-40': actionList[0].length > 1}">
-            <mat-list *ngIf="actionList[0].length > 1 && data.element.action !== 'FOLLOW_LINK'|| data.element.info.indexOf('Update quota') !== -1;else message">
+          <div 
+            mat-dialog-content 
+            class="content audit-info-content" 
+            [ngClass]="{'pb-40': actionList[0].length > 1}"
+          >
+            <mat-list 
+              *ngIf="actionList[0].length > 1 && data.element.action !== 'FOLLOW_LINK'
+                    || data.element.info.indexOf('Update quota') !== -1;else message"
+            >
               <ng-container *ngIf="data.element.info.indexOf('Update quota') === -1;else quotas">
 
                 <mat-list-item class="list-header">
@@ -196,15 +203,27 @@
 
                 <div class="scrolling-content mat-list-wrapper" id="scrolling">
                   <mat-list-item class="list-item" *ngFor="let action of actionList">
-                    <div *ngIf="(data.element.action === 'upload' && action[0] === 'File(s)') || (data.element.action === 'download' && action[0] === 'File(s)');else multiAction" class="info-item-title">File</div>
+                    <div 
+                      *ngIf="(data.element.action === 'upload' && action[0] === 'File(s)') 
+                          || (data.element.action === 'download' && action[0] === 'File(s)');else multiAction" 
+                      class="info-item-title"
+                    >
+                      File
+                    </div>
                     <ng-template #multiAction>
                        <div class="info-item-title" [ngClass]="{'same-column-width': data.dialogSize === 'small'}">{{action[0]}}</div>
                     </ng-template>
-                    <div class="info-item-data" [ngClass]="{'same-column-width': data.dialogSize === 'small'}" *ngIf="action[0] === 'File(s)'">
-                      <div class="file-description ellipsis"
-                           *ngFor="let description of action[1]?.split(',')"
-                           [matTooltip]="description"
-                           matTooltipPosition="above">
+                    <div 
+                      class="info-item-data" 
+                      [ngClass]="{'same-column-width': data.dialogSize === 'small'}" 
+                      *ngIf="action[0] === 'File(s)'"
+                    >
+                      <div 
+                        class="file-description ellipsis"
+                        *ngFor="let description of action[1]?.split(',')"
+                        [matTooltip]="description"
+                        matTooltipPosition="above"
+                      >
                         {{description}}
                       </div>
                     </div>
@@ -215,7 +234,8 @@
                           class="ellipsis"
                           [ngStyle]="description.length < 20 ? {'width' :'fit-content'} : {'width':'100%'}"
                           matTooltipPosition="above"
-                          matTooltipClass="mat-tooltip-description">
+                          matTooltipClass="mat-tooltip-description"
+                      >
                         {{description}}
                         </div>
                     </div>
@@ -333,6 +353,4 @@
     }
     this.actionList = data.element.info.split('\n').map(v => v.split(':')).filter(v => v[0] !== '');
   }
-}
-
-
+}
\ No newline at end of file
diff --git a/services/self-service/src/main/resources/webapp/src/app/reports/audit/audit-toolbar/audit-toolbar.component.scss b/services/self-service/src/main/resources/webapp/src/app/reports/audit/audit-toolbar/audit-toolbar.component.scss
index 0bf0071..4d87aeb 100644
--- a/services/self-service/src/main/resources/webapp/src/app/reports/audit/audit-toolbar/audit-toolbar.component.scss
+++ b/services/self-service/src/main/resources/webapp/src/app/reports/audit/audit-toolbar/audit-toolbar.component.scss
@@ -20,18 +20,18 @@
 section.audit-toolbar {
   display: flex;
   justify-content: space-between;
-  font-weight: 300;
   width: 100%;
+  font-weight: 300;
 
-  >div {
+  > div {
     width: 33%;
   }
 
-  >div:nth-child(2) {
+  > div:nth-child(2) {
     text-align: center;
   }
 
-  >div:nth-child(3) {
+  > div:nth-child(3) {
     text-align: right;
   }
 
@@ -61,6 +61,3 @@
     }
   }
 }
-
-
-
diff --git a/services/self-service/src/main/resources/webapp/src/app/reports/audit/audit-toolbar/audit-toolbar.component.ts b/services/self-service/src/main/resources/webapp/src/app/reports/audit/audit-toolbar/audit-toolbar.component.ts
index 680dc0b..9110818 100644
--- a/services/self-service/src/main/resources/webapp/src/app/reports/audit/audit-toolbar/audit-toolbar.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/reports/audit/audit-toolbar/audit-toolbar.component.ts
@@ -17,13 +17,12 @@
  * under the License.
  */
 
-import { Component, OnInit, AfterViewInit, Output, EventEmitter, ViewEncapsulation, ViewChild } from '@angular/core';
+import { Component, OnInit, AfterViewInit, Output, EventEmitter, ViewEncapsulation } from '@angular/core';
 import { NgDateRangePickerOptions } from 'ng-daterangepicker';
 import { DICTIONARY } from '../../../../dictionary/global.dictionary';
-import {skip} from 'rxjs/operators';
-import {Subscription} from 'rxjs';
-import {HealthStatusService} from '../../../core/services';
-import {GeneralEnvironmentStatus} from '../../../administration/management/management.model';
+import { Subscription } from 'rxjs';
+import { HealthStatusService } from '../../../core/services';
+import { GeneralEnvironmentStatus } from '../../../administration/management/management.model';
 
 @Component({
   selector: 'audit-toolbar',
diff --git a/services/self-service/src/main/resources/webapp/src/app/reports/audit/audit.component.ts b/services/self-service/src/main/resources/webapp/src/app/reports/audit/audit.component.ts
index 168f6df..dd75463 100644
--- a/services/self-service/src/main/resources/webapp/src/app/reports/audit/audit.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/reports/audit/audit.component.ts
@@ -42,16 +42,16 @@
       left: 0;
       bottom: 0;
       width: 100%;
+      padding: 5px 15px;
       background: #a1b7d1;
       color: #ffffff;
       text-align: right;
-      padding: 5px 15px;
       font-size: 18px;
       box-shadow: 0 9px 18px 15px #f5f5f5;
     }
   `]
 })
-export class AuditComponent implements OnInit, OnDestroy {
+export class AuditComponent implements OnInit {
   readonly DICTIONARY = DICTIONARY;
 
   @ViewChild(AuditGridComponent, { static: true }) auditGrid: AuditGridComponent;
@@ -67,9 +67,6 @@
     this.buildAuditReport();
   }
 
-  ngOnDestroy() {
-  }
-
   public buildAuditReport(): void {
     this.auditGrid.buildAuditGrid();
   }
diff --git a/services/self-service/src/main/resources/webapp/src/app/reports/reporting/reporting-grid/reporting-grid.component.html b/services/self-service/src/main/resources/webapp/src/app/reports/reporting/reporting-grid/reporting-grid.component.html
index 11a3411..976b189 100644
--- a/services/self-service/src/main/resources/webapp/src/app/reports/reporting/reporting-grid/reporting-grid.component.html
+++ b/services/self-service/src/main/resources/webapp/src/app/reports/reporting/reporting-grid/reporting-grid.component.html
@@ -17,30 +17,35 @@
   ~ under the License.
   -->
 <div 
-    class="billing-page-wrapper scrolling" 
-    #pageWrapper 
-    [ngClass]="{'scroll': reportData?.length < 5}" 
-    (scroll)="scrollTable($event)">
+  class="billing-page-wrapper scrolling" 
+  #pageWrapper 
+  [ngClass]="{'scroll': reportData?.length < 5}" 
+  (scroll)="scrollTable($event)"
+>
   <div class="wrapper" #wrapper>
     <div 
-        class="nav-buttons" 
-        [ngStyle]="tableWrapper.scrollHeight === tableWrapper.clientHeight ? {'width': '100%'} : 
-          {'width': userAgentIndex === -1 ? 'calc(100% - 3px)' : 'calc(100% - 8px)'}"
-        *ngIf="tableWrapper.offsetWidth - tableEl['offsetWidth'] < 0 && reportData?.length">
+      class="nav-buttons" 
+      [ngStyle]="tableWrapper.scrollHeight === tableWrapper.clientHeight ? {'width': '100%'} : 
+        {'width': userAgentIndex === -1 ? 'calc(100% - 3px)' : 'calc(100% - 8px)'}"
+      *ngIf="tableWrapper.offsetWidth - tableEl['offsetWidth'] < 0 && reportData?.length"
+    >
       <div class="button-container" >
         <button 
-            mat-mini-fab aria-label="Scroll left" 
-            (click)="scrollTo('left')" 
-            [ngClass]="{'not-allowed': tableWrapper.scrollLeft === 0 && reportData?.length}">
+          mat-mini-fab aria-label="Scroll left" 
+          (click)="scrollTo('left')" 
+          [ngClass]="{'not-allowed': tableWrapper.scrollLeft === 0 && reportData?.length}"
+        >
           <mat-icon [ngClass]="{'highlight': tableWrapper.scrollLeft !== 0 || pageWrapper.scrollLeft !== 0 && reportData?.length < 5}">
             keyboard_arrow_left
           </mat-icon>
         </button>
       </div>
       <div class="button-container" [ngClass]="{'not-allowed': this.checkMaxRight()}">
-        <button mat-mini-fab aria-label="Scroll right"
-                (click)="scrollTo('right')"
-                [ngClass]="{'not-allowed': !(isMaxRight | async)}">
+        <button 
+          mat-mini-fab aria-label="Scroll right"
+          (click)="scrollTo('right')"
+          [ngClass]="{'not-allowed': !(isMaxRight | async)}"
+        >
           <mat-icon [ngClass]="{'highlight': isMaxRight | async }">keyboard_arrow_right</mat-icon>
         </button>
       </div>
@@ -49,17 +54,26 @@
       </div>
     </div>
 
-    <div class="nav-buttons"
-        [ngStyle]="tableWrapper.scrollHeight === tableWrapper.clientHeight ? {'width': '100%'} : 
-          {'width': userAgentIndex === -1 ? 'calc(100% - 3px)' : 'calc(100% - 8px)'}" 
-        *ngIf="!(tableWrapper.offsetWidth - tableEl['offsetWidth'] < 0) && reportData?.length">
+    <div 
+      class="nav-buttons"
+      [ngStyle]="tableWrapper.scrollHeight === tableWrapper.clientHeight 
+          ? {'width': '100%'} 
+          : {'width': userAgentIndex === -1 ? 'calc(100% - 3px)' : 'calc(100% - 8px)'}" 
+        *ngIf="!(tableWrapper.offsetWidth - tableEl['offsetWidth'] < 0) && reportData?.length"
+    >
       <div class="totaL-item strong" >
         Total <span>{{fullReport.total_cost | localcurrency}}</span>
       </div>
     </div>
     
-    <section class="table-wrapper" id="scrolling" #tableWrapper (scroll)="scrollTable($event)" [ngStyle]="!reportData?.length && {'overflow': 'auto'}" [ngClass]="{'scroll': reportData?.length}">
-
+    <section 
+      class="table-wrapper" 
+      id="scrolling" 
+      #tableWrapper 
+      (scroll)="scrollTable($event)" 
+      [ngStyle]="!reportData?.length && {'overflow': 'auto'}" 
+      [ngClass]="{'scroll': reportData?.length}"
+    >
       <table mat-table [dataSource]="reportData" class="data-grid reporting" #table>
 
         <ng-container matColumnDef="name">
@@ -72,7 +86,7 @@
               </i>
             </button>
           </th>
-            <td mat-cell *matCellDef="let element"><span class="table-item">{{element.datalabId}}</span></td>
+          <td mat-cell *matCellDef="let element"><span class="table-item">{{element.datalabId}}</span></td>
           <td mat-footer-cell *matFooterCellDef class="table-footer"></td>
         </ng-container>
 
@@ -87,7 +101,12 @@
               <span class="text"> User </span>
             </div>
 
-            <button mat-icon-button aria-label="More" class="ar" (click)="toggleFilterRow()">
+            <button 
+              mat-icon-button 
+              aria-label="More" 
+              class="ar" 
+              (click)="toggleFilterRow()"
+            >
               <i class="material-icons">
                 <span *ngIf="filteredReportData.users.length > 0; else user_filtered">filter_list</span>
                 <ng-template #user_filtered>more_vert</ng-template>
@@ -100,7 +119,8 @@
               [ngStyle]="element.user?.length < 20 ? {'max-width' :'fit-content'} : {'max-width':'200px'}"
               [matTooltip]="element.user"
               matTooltipPosition="above"
-              matTooltipClass="billing-user-name">
+              matTooltipClass="billing-user-name"
+            >
               {{element.user}}
             </div>
           </td>
@@ -132,7 +152,12 @@
         <ng-container matColumnDef="type">
           <th mat-header-cell *matHeaderCellDef class="th_type label-header">
             <div class="label"><span class="text"> Resource Type</span> </div>
-            <button mat-icon-button aria-label="More" class="ar" (click)="toggleFilterRow()">
+            <button 
+              mat-icon-button 
+              aria-label="More" 
+              class="ar" 
+              (click)="toggleFilterRow()"
+            >
               <i class="material-icons">
                 <span *ngIf="filteredReportData.resource_type.length > 0; else type_filtered">filter_list</span>
                 <ng-template #type_filtered>more_vert</ng-template>
@@ -146,7 +171,12 @@
         <ng-container matColumnDef="status">
           <th mat-header-cell *matHeaderCellDef class="th_status label-header">
             <div class="label"><span class="text"> Status</span> </div>
-            <button mat-icon-button aria-label="More" class="ar" (click)="toggleFilterRow()">
+            <button 
+              mat-icon-button 
+              aria-label="More" 
+              class="ar" 
+              (click)="toggleFilterRow()"
+            >
               <i class="material-icons">
                 <span *ngIf="filteredReportData.statuses.length > 0; else status_filtered">filter_list</span>
                 <ng-template #status_filtered>more_vert</ng-template>
@@ -154,8 +184,13 @@
             </button>
           </th>
           <td mat-cell *matCellDef="let element">
-        <span class="status" ngClass="{{ element.status.toLowerCase() || '' }}"
-              *ngIf="element.status">{{ element.status.toLowerCase() }}</span>
+            <span 
+              class="status" 
+              ngClass="{{ element.status.toLowerCase() || '' }}"
+              *ngIf="element.status"
+            >
+              {{ element.status.toLowerCase() }}
+            </span>
             <span *ngIf="!element.status">N/A</span>
           </td>
           <td mat-footer-cell *matFooterCellDef class="table-footer"></td>
@@ -164,10 +199,14 @@
         <ng-container matColumnDef="shape">
           <th mat-header-cell *matHeaderCellDef class="th_shape label-header">
             <div class="label"><span class="text"> Instance size</span></div>
-            <button mat-icon-button aria-label="More" class="ar" (click)="toggleFilterRow()">
+            <button 
+              mat-icon-button 
+              aria-label="More" 
+              class="ar" 
+              (click)="toggleFilterRow()"
+            >
               <i class="material-icons">
-            <span
-              *ngIf="filteredReportData['shapes'].length > 0; else shape_filtered">filter_list</span>
+                <span *ngIf="filteredReportData['shapes'].length > 0; else shape_filtered">filter_list</span>
                 <ng-template #shape_filtered>more_vert</ng-template>
               </i>
             </button>
@@ -183,10 +222,14 @@
         <ng-container matColumnDef="service">
           <th mat-header-cell *matHeaderCellDef class="service label-header">
             <div class="label"><span class="text"> Product</span> </div>
-            <button mat-icon-button aria-label="More" class="ar" (click)="toggleFilterRow()">
+            <button 
+              mat-icon-button 
+              aria-label="More" 
+              class="ar" 
+              (click)="toggleFilterRow()"
+            >
               <i class="material-icons">
-            <span
-              *ngIf="filteredReportData['products'].length > 0; else service_filtered">filter_list</span>
+                <span *ngIf="filteredReportData['products'].length > 0; else service_filtered">filter_list</span>
                 <ng-template #service_filtered>more_vert</ng-template>
               </i>
             </button>
@@ -199,21 +242,29 @@
         </ng-container>
 
         <ng-container matColumnDef="empty">
-          <th mat-header-cell *matHeaderCellDef class="th_empty label-header">
-          </th>
-          <td mat-cell *matCellDef="let element">
-          </td>
-          <td mat-footer-cell *matFooterCellDef class="table-footer total-cost" [colSpan]="2" [ngClass]="{'right-sticky': reportData?.length < 5}" [style]="{zIndex: 99999}">
+          <th mat-header-cell *matHeaderCellDef class="th_empty label-header"></th>
+          <td mat-cell *matCellDef="let element"></td>
+          <td 
+            mat-footer-cell 
+            *matFooterCellDef 
+            class="table-footer total-cost" 
+            [colSpan]="2" 
+            [ngClass]="{'right-sticky': reportData?.length < 5}" 
+            [style]="{zIndex: 99999}"
+          >
 <!--            <span class="strong">-->
 <!--                Total <span *ngIf="reportData?.length">{{fullReport['total_cost'] | localcurrency}}</span>-->
 <!--            </span>-->
           </td>
         </ng-container>
 
-
-
         <ng-container matColumnDef="charge" stickyEnd>
-          <th mat-header-cell *matHeaderCellDef class="th_charges label-header index-105 charges-th" [ngClass]="{'right-sticky': reportData?.length < 5}">
+          <th 
+            mat-header-cell 
+            *matHeaderCellDef 
+            class="th_charges label-header index-105 charges-th" 
+            [ngClass]="{'right-sticky': reportData?.length < 5}"
+          >
             <div class="label">
               <div class="sort">
                 <div class="sort-arrow up" (click)="sortBy('cost', 'down')" [ngClass]="{'active': !!this.active['costdown']}"></div>
@@ -223,7 +274,11 @@
             </div>
           </th>
 
-          <td mat-cell *matCellDef="let element" [ngClass]="{'right-sticky': reportData?.length < 5, 'charges-th': reportData?.length}" >
+          <td 
+            mat-cell 
+            *matCellDef="let element" 
+            [ngClass]="{'right-sticky': reportData?.length < 5, 'charges-th': reportData?.length}"
+          >
             {{element.cost | localcurrency }}
           </td >
           <td mat-footer-cell *matFooterCellDef class="table-footer total-cost d-none">
@@ -234,43 +289,74 @@
         <ng-container matColumnDef="name-filter">
           <th mat-header-cell *matHeaderCellDef class="filter-row-item">
             <div class="input-wrapper">
-                <input #nameFilter type="text" placeholder="Filter by environment name"
-                       class="form-control filter-field"
-                       [value]="filtered?.datalabId" (input)="onFilterNameUpdate($event.target['value'])"
+                <input 
+                  #nameFilter type="text" 
+                  placeholder="Filter by environment name"
+                  class="form-control filter-field"
+                  [value]="filtered?.datalabId" 
+                  (input)="onFilterNameUpdate($event.target['value'])"
                 />
             </div>
           </th>
         </ng-container>
+
         <ng-container matColumnDef="user-filter">
           <th mat-header-cell *matHeaderCellDef class="filter-row-item">
-            <multi-select-dropdown *ngIf="filterConfiguration" (selectionChange)="onUpdate($event)" [type]="'users'"
-                                   [items]="filterConfiguration.users" [model]="filteredReportData.users"></multi-select-dropdown>
+            <multi-select-dropdown 
+              *ngIf="filterConfiguration" 
+              (selectionChange)="onUpdate($event)" 
+              [type]="'users'"
+              [items]="filterConfiguration.users" 
+              [model]="filteredReportData.users"
+            ></multi-select-dropdown>
           </th>
         </ng-container>
+
         <ng-container matColumnDef="project-filter">
           <th mat-header-cell *matHeaderCellDef class="filter-row-item">
-            <multi-select-dropdown *ngIf="filterConfiguration" (selectionChange)="onUpdate($event)" [type]="'projects'"
-                                   [items]="filterConfiguration.projects" [model]="filteredReportData.projects"></multi-select-dropdown>
+            <multi-select-dropdown 
+              *ngIf="filterConfiguration" 
+              (selectionChange)="onUpdate($event)" 
+              [type]="'projects'"
+              [items]="filterConfiguration.projects" 
+              [model]="filteredReportData.projects"
+            ></multi-select-dropdown>
           </th>
         </ng-container>
+
         <ng-container matColumnDef="type-filter">
           <th mat-header-cell *matHeaderCellDef class="filter-row-item">
-            <multi-select-dropdown *ngIf="filterConfiguration" (selectionChange)="onUpdate($event)" [type]="'resource_type'"
-                                   [items]="filterConfiguration.resource_type" [model]="filteredReportData.resource_type">
-            </multi-select-dropdown>
+            <multi-select-dropdown 
+              *ngIf="filterConfiguration" 
+              (selectionChange)="onUpdate($event)" 
+              [type]="'resource_type'"
+              [items]="filterConfiguration.resource_type" 
+              [model]="filteredReportData.resource_type"
+            ></multi-select-dropdown>
           </th>
         </ng-container>
+
         <ng-container matColumnDef="status-filter">
           <th mat-header-cell *matHeaderCellDef class="filter-row-item">
-            <multi-select-dropdown *ngIf="filterConfiguration" (selectionChange)="onUpdate($event)" [type]="'statuses'"
-                                   [items]="filterConfiguration.statuses" [model]="filteredReportData.statuses"></multi-select-dropdown>
+            <multi-select-dropdown 
+              *ngIf="filterConfiguration" 
+              (selectionChange)="onUpdate($event)" 
+              [type]="'statuses'"
+              [items]="filterConfiguration.statuses" 
+              [model]="filteredReportData.statuses"
+            ></multi-select-dropdown>
           </th>
         </ng-container>
+
         <ng-container matColumnDef="shape-filter">
           <th mat-header-cell *matHeaderCellDef class="filter-row-item">
-            <multi-select-dropdown *ngIf="filterConfiguration" (selectionChange)="onUpdate($event)"
-                                   [type]="'shapes'" [items]="filterConfiguration['shapes']"
-                                   [model]="filteredReportData['shapes']"></multi-select-dropdown>
+            <multi-select-dropdown 
+              *ngIf="filterConfiguration" 
+              (selectionChange)="onUpdate($event)"
+              [type]="'shapes'" 
+              [items]="filterConfiguration['shapes']"
+              [model]="filteredReportData['shapes']"
+            ></multi-select-dropdown>
           </th>
         </ng-container>
 
@@ -281,25 +367,46 @@
 
         <ng-container matColumnDef="service-filter">
           <th mat-header-cell *matHeaderCellDef class="filter-row-item">
-            <multi-select-dropdown *ngIf="filterConfiguration" (selectionChange)="onUpdate($event)"
-                                   [type]="['products']"
-                                   [items]="filterConfiguration['products']"
-                                   [model]="filteredReportData['products']"></multi-select-dropdown>
+            <multi-select-dropdown 
+              *ngIf="filterConfiguration" 
+              (selectionChange)="onUpdate($event)"
+              [type]="['products']"
+              [items]="filterConfiguration['products']"
+              [model]="filteredReportData['products']"
+            ></multi-select-dropdown>
           </th>
         </ng-container>
+
         <ng-container matColumnDef="actions" stickyEnd>
-          <th mat-header-cell *matHeaderCellDef class="filter-row-item index-105" [ngClass]="{'right-sticky': reportData?.length < 5}" [ngStyle]="{'zIndex': '101 !important'}">
+          <th 
+            mat-header-cell 
+            *matHeaderCellDef 
+            class="filter-row-item index-105" 
+            [ngClass]="{'right-sticky': reportData?.length < 5}" 
+            [ngStyle]="{'zIndex': '101 !important'}"
+          >
             <div class="actions">
-              <button mat-icon-button class="btn reset" (click)="resetFiltering(); isFiltered = !isFiltered" [disabled]="!isFilterSelected">
+              <button 
+                mat-icon-button 
+                class="btn reset" 
+                (click)="resetFiltering(); isFiltered = !isFiltered" 
+                [disabled]="!isFilterSelected"
+              >
                 <i class="material-icons">close</i>
               </button>
 
-              <button mat-icon-button class="btn apply" (click)="filter_btnClick()" [disabled]="isFilterChanged">
+              <button 
+                mat-icon-button 
+                class="btn apply" 
+                (click)="filter_btnClick()" 
+                [disabled]="isFilterChanged"
+              >
                 <i class="material-icons">done</i>
               </button>
             </div>
           </th>
         </ng-container>
+
         <ng-container matColumnDef="placeholder">
           <td mat-footer-cell *matFooterCellDef colspan="9" class="info">
             <span *ngIf="!isFilterSelected; else notFound">No data available</span>
@@ -311,14 +418,22 @@
 
         <tr mat-header-row *matHeaderRowDef="displayedColumns; sticky: true" class="header-row"></tr>
 
-        <tr [hidden]="!collapseFilterRow" mat-header-row *matHeaderRowDef="displayedFilterColumns; sticky: true"
-            class="filter-row"></tr>
+        <tr 
+          [hidden]="!collapseFilterRow" 
+          mat-header-row 
+          *matHeaderRowDef="displayedFilterColumns; sticky: true"
+          class="filter-row"
+        ></tr>
         <tr mat-row *matRowDef="let row; columns: displayedColumns;" class="content-row"></tr>
 
-        <tr [hidden]="!reportData?.length" mat-footer-row *matFooterRowDef="displayedColumns; sticky: true"
-            class="header-row"></tr>
+        <tr 
+          [hidden]="!reportData?.length" 
+          mat-footer-row 
+          *matFooterRowDef="displayedColumns; sticky: true"
+          class="header-row"
+        ></tr>
         <tr [hidden]="reportData?.length" mat-footer-row *matFooterRowDef="['placeholder']"></tr>
       </table>
     </section>
   </div>
-</div>
+</div>
\ No newline at end of file
diff --git a/services/self-service/src/main/resources/webapp/src/app/reports/reporting/reporting-grid/reporting-grid.component.scss b/services/self-service/src/main/resources/webapp/src/app/reports/reporting/reporting-grid/reporting-grid.component.scss
index 2d5304f..e209705 100644
--- a/services/self-service/src/main/resources/webapp/src/app/reports/reporting/reporting-grid/reporting-grid.component.scss
+++ b/services/self-service/src/main/resources/webapp/src/app/reports/reporting/reporting-grid/reporting-grid.component.scss
@@ -16,28 +16,29 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-.billing-page-wrapper{
+.billing-page-wrapper {
   height: calc(100vh - 130px);
-  scroll-behavior: smooth;
   margin-left: -15px;
   margin-right: -15px;
   padding-left: 15px;
   padding-right: 15px;
-  &.scroll{
+  scroll-behavior: smooth;
+
+  &.scroll {
     overflow: auto;
   }
 }
 
-
 .table-wrapper {
-  width: 100%;
+  position: relative;
   display: block;
+  width: 100%;
   max-height: calc(100vh - 130px);
   overflow: unset;
-  position: relative;
   scroll-behavior: smooth;
-  box-shadow: 0 3px 5px -1px rgba(0,0,0,.2), 0 6px 10px 0 rgba(0,0,0,.14), 0 1px 18px 0 rgba(0,0,0,.12);
-  &.scroll{
+  box-shadow: 0 3px 5px -1px rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.14), 0 1px 18px 0 rgba(0, 0, 0, 0.12);
+
+  &.scroll {
     overflow: auto;
   }
 }
@@ -46,42 +47,43 @@
   right: 0px !important;
 }
 
-.wrapper{
+.wrapper {
   position: relative;
 
   .nav-buttons {
     position: absolute;
-    z-index: 105;
     bottom: 0;
+    z-index: 105;
     display: flex;
     justify-content: space-around;
     align-items: center;
     height: 48px;
     background-color: #ffffff;
-  
+
     .mat-mini-fab {
       height: 25px;
       width: 25px;
-  
+
       .mat-button-wrapper {
-        padding: 0;
-        line-height: unset;
         display: flex;
         align-items: center;
         justify-content: center;
-        padding-top: 2px;
+        padding: 2px 0 0;
+        line-height: unset;
       }
     }
   }
-  
-  button{
+
+  button {
     display: flex;
     align-items: center;
     background-color: #fff;
     box-shadow: none;
-    mat-icon{
+
+    mat-icon {
       color: lightgrey;
-      &.highlight{
+
+      &.highlight {
         color: #35afd5;
       }
     }
@@ -99,18 +101,20 @@
   }
 
   tr {
+
     th {
       padding-right: 5px;
-      &.th_charges{
+
+      &.th_charges {
         z-index: 16 !important;
       }
     }
 
     td {
-      font-size: 13px;
       padding-left: 20px;
+      font-size: 13px;
 
-      &.mat-cell{
+      &.mat-cell {
         border-bottom-color: #e3e5e8;
       }
 
@@ -123,24 +127,21 @@
 
     &.filter-row {
       th {
+        z-index: 103 !important;
         padding: 5px;
         font-size: 13px;
-        z-index: 103 !important;
-
       }
 
       .filter-field {
         font-size: 13px;
       }
-
     }
 
     &.header-row {
       th {
-
-        .label{
-          padding-left: 0;
+        .label {
           position: relative;
+          padding-left: 0;
           font-size: 13px;
         }
       }
@@ -148,9 +149,9 @@
   }
 
   .th_shape {
+    z-index: 10 !important;
     width: 12%;
     min-width: 150px;
-    z-index: 10 !important;
   }
 
   .th_user,
@@ -162,7 +163,7 @@
     word-wrap: break-word;
   }
 
-  .service{
+  .service {
     width: 10%;
   }
 
@@ -173,42 +174,42 @@
   }
 
   .service {
-    min-width: 175px;
     z-index: 9 !important;
+    min-width: 175px;
   }
 
   .env_name {
+    z-index: 15 !important;
     width: 21%;
     min-width: 200px;
-    z-index: 15 !important;
     padding-left: 0;
   }
 
-  .th_user{
+  .th_user {
     z-index: 14 !important;
   }
 
   .th_empty {
-    width: 3%;
     z-index: 4 !important;
+    width: 3%;
   }
 
-  .th_project{
-    width: 12%;
+  .th_project {
     z-index: 13 !important;
+    width: 12%;
     min-width: 150px;
   }
 
   .th_type {
+    z-index: 12 !important;
     width: 12%;
     min-width: 170px;
-    z-index: 12 !important;
   }
 
   .th_status {
+    z-index: 11 !important;
     width: 8%;
     min-width: 150px;
-    z-index: 11 !important;
   }
 
   .th_charges {
@@ -224,20 +225,20 @@
     padding: 5px;
 
     mat-chip {
+      display: inline-block;
       min-height: 20px;
+      max-width: 110px !important;
+      margin: 2px;
       padding: 5px 10px;
       font-size: 13px;
-      max-width: 110px !important;
       white-space: nowrap;
-      display: inline-block;
       line-height: 10px;
-      margin: 2px;
     }
   }
 
   .mat-column-charge,
   .filter-row-item:last-child,
-  .table-footer.mat-column-charge{
+  .table-footer.mat-column-charge {
     text-align: right;
     background-color: #f8f8f8;
   }
@@ -252,7 +253,7 @@
         padding-top: 10px;
       }
 
-      &.label-header{
+      &.label-header {
         box-shadow: none;
         border-bottom: 1px solid lightgrey !important;
       }
@@ -263,39 +264,39 @@
       padding-top: 13px;
       vertical-align: super !important;
 
-      .text{
-     padding-left: 20px;
+      .text {
+        padding-left: 20px;
       }
     }
 
-    .sort{
+    .sort {
       position: absolute;
       bottom: 2px;
 
       &-user,
-      &-project{
+      &-project {
         right: -15px;
       }
 
-      &-arrow{
+      &-arrow {
         width: 6px;
         height: 6px;
         border: 3px solid transparent;
-        border-bottom: 3px solid rgba(0,0,0,.54);
-        border-left: 3px solid rgba(0,0,0,.54);
+        border-bottom: 3px solid rgba(0, 0, 0, 0.54);
+        border-left: 3px solid rgba(0, 0, 0, 0.54);
         cursor: pointer;
 
-        &.active{
+        &.active {
           border-bottom: 3px solid #35afd5;
           border-left: 3px solid #35afd5;
         }
       }
 
-      .down{
+      .down {
         transform: rotate(-45deg);
       }
 
-      .up{
+      .up {
         transform: rotate(135deg);
       }
     }
@@ -305,20 +306,20 @@
     .actions {
       text-align: right;
 
-      button{
+      button {
         background: inherit;
       }
     }
   }
 
-  .table-footer{
+  .table-footer {
     position: sticky;
     bottom: -1px;
+    padding-left: 0 !important;
     background: inherit;
-    border-top: 1px solid #E0E0E0;
+    border-top: 1px solid #e0e0e0;
     transform: translateY(-1px);
     border-bottom: none;
-    padding-left: 0 !important;
   }
 }
 
@@ -329,29 +330,29 @@
 
   .dropdown-multiselect {
     button {
-      font-size: 14px;
       height: 34px;
       padding: 7px 20px;
+      font-size: 14px;
     }
   }
 }
 
-.table-footer{
+.table-footer {
   position: sticky;
   bottom: -1px;
   background: inherit;
-  border-top: 1px solid #E0E0E0;
-  transform: translateY(-1px);
+  border-top: 1px solid #e0e0e0;
   border-bottom: none;
+  transform: translateY(-1px);
 
-  &.total-cost{
-    min-width: 140px;
-    padding-left: 0 !important;
-    text-align: right;
-    padding-right: 25px;
+  &.total-cost {
     position: sticky;
     right: 0;
     z-index: 101;
+    min-width: 140px;
+    padding-right: 25px;
+    padding-left: 0 !important;
+    text-align: right;
   }
 }
 
@@ -364,13 +365,12 @@
   right: 0;
 }
 
-.wrapper{
-  .table-wrapper{
-    .reporting{
-      tr{
+.wrapper {
+  .table-wrapper {
+    .reporting {
+      tr {
         th.th_charges.index-105,
-        .filter-row-item.index-105
-        {
+        .filter-row-item.index-105 {
           z-index: 105 !important;
         }
       }
@@ -378,8 +378,6 @@
   }
 }
 
-
-
 @media screen and (max-width: 1280px) {
   .dashboard_table.reporting {
     .env_name,
@@ -399,18 +397,18 @@
   }
 }
 
-.totaL-item{
+.totaL-item {
   position: absolute;
   right: 0;
-  padding-right: 24px;
   z-index: 115;
+  padding-right: 24px;
   font-size: 13px;
 
-  &.scrollbar-right{
+  &.scrollbar-right {
     right: 3px;
   }
 
-  &.scrollbar-bottom{
+  &.scrollbar-bottom {
     bottom: 3px;
   }
 
@@ -419,16 +417,14 @@
   }
 }
 
-
-
 @-moz-document url-prefix() {
   .totaL-item {
-    &.scrollbar-right{
+    &.scrollbar-right {
       right: 8px !important;
     }
 
-    &.scrollbar-bottom{
+    &.scrollbar-bottom {
       bottom: 8px !important;
     }
   }
-}
+}
\ No newline at end of file
diff --git a/services/self-service/src/main/resources/webapp/src/app/reports/reporting/reporting-grid/reporting-grid.component.ts b/services/self-service/src/main/resources/webapp/src/app/reports/reporting/reporting-grid/reporting-grid.component.ts
index ff67351..513ac45 100644
--- a/services/self-service/src/main/resources/webapp/src/app/reports/reporting/reporting-grid/reporting-grid.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/reports/reporting/reporting-grid/reporting-grid.component.ts
@@ -25,14 +25,11 @@
   ViewChild,
   Input,
   HostListener,
-  AfterViewInit,
   ChangeDetectorRef,
   ChangeDetectionStrategy
 } from '@angular/core';
 import { ReportingConfigModel } from '../../../../dictionary/global.dictionary';
-import {BehaviorSubject, fromEvent, Observable, of, Subject, timer} from 'rxjs';
-import {logger} from 'codelyzer/util/logger';
-import {take} from 'rxjs/operators';
+import {BehaviorSubject, Subject } from 'rxjs';
 import {CompareUtils} from '../../../core/util/compareUtils';
 
 export interface IFullReport {
@@ -64,8 +61,16 @@
   fullReport: IFullReport;
   isFiltered: boolean = false;
   active: object = {};
-  displayedColumns: string[] = ['name', 'user', 'project', 'type', 'status', 'shape', 'service', 'empty', 'charge'];
-  displayedFilterColumns: string[] = ['name-filter', 'user-filter', 'project-filter', 'type-filter', 'status-filter', 'shape-filter',  'service-filter', 'empty-filter', 'actions'];
+  displayedColumns: string[] = [
+    'name', 'user', 'project', 
+    'type', 'status', 'shape', 
+    'service', 'empty', 'charge'
+  ];
+  displayedFilterColumns: string[] = [
+    'name-filter', 'user-filter', 'project-filter', 
+    'type-filter', 'status-filter', 'shape-filter',  
+    'service-filter', 'empty-filter', 'actions'
+  ];
   filtered: any;
   isMaxRight: Subject<boolean> = new BehaviorSubject(false);
   isFilterSelected: boolean;
@@ -97,8 +102,7 @@
     this.checkMaxRight();
   }
 
-  constructor(private changeDetector: ChangeDetectorRef) {
-  }
+  constructor(private changeDetector: ChangeDetectorRef) { }
 
   ngOnInit() {
     this.userAgentIndex = window.navigator.userAgent.indexOf('Firefox');
@@ -137,35 +141,37 @@
   }
 
   sortBy(sortItem, direction) {
-  if (this.previousItem === sortItem && this.previousDirection === direction) {
-    return;
-  }
-  let report: Array<object>;
-  this.previousItem = sortItem;
-  this.previousDirection = direction;
-  if (direction === 'down') {
-    report = this.reportData.sort((a, b) => {
-      if (a[sortItem] === null) a[sortItem] = '';
-      if (b[sortItem] === null) b[sortItem] = '';
+    if (this.previousItem === sortItem && this.previousDirection === direction) return;
 
-      if ((a[sortItem] > b[sortItem])) return 1;
-      if ((a[sortItem] < b[sortItem])) return -1;
-      return 0;
-    });
-  }
-  if (direction === 'up') {
-    report = this.reportData.sort((a, b) => {
-      if (a[sortItem] === null) a[sortItem] = '';
-      if (b[sortItem] === null) b[sortItem] = '';
+    let report: Array<object>;
+    this.previousItem = sortItem;
+    this.previousDirection = direction;
 
-      if ((a[sortItem] < b[sortItem])) return 1;
-      if ((a[sortItem] > b[sortItem])) return -1;
-      return 0;
-    });
-  }
-  this.refreshData(this.fullReport, report);
-  this.removeSorting();
-  this.active[sortItem + direction] = true;
+    if (direction === 'down') {
+      report = this.reportData.sort((a, b) => {
+        if (a[sortItem] === null) a[sortItem] = '';
+        if (b[sortItem] === null) b[sortItem] = '';
+
+        if ((a[sortItem] > b[sortItem])) return 1;
+        if ((a[sortItem] < b[sortItem])) return -1;
+        return 0;
+      });
+    }
+
+    if (direction === 'up') {
+      report = this.reportData.sort((a, b) => {
+        if (a[sortItem] === null) a[sortItem] = '';
+        if (b[sortItem] === null) b[sortItem] = '';
+
+        if ((a[sortItem] < b[sortItem])) return 1;
+        if ((a[sortItem] > b[sortItem])) return -1;
+        return 0;
+      });
+    }
+    
+    this.refreshData(this.fullReport, report);
+    this.removeSorting();
+    this.active[sortItem + direction] = true;
   }
 
   removeSorting() {
diff --git a/services/self-service/src/main/resources/webapp/src/app/reports/reporting/reporting.component.ts b/services/self-service/src/main/resources/webapp/src/app/reports/reporting/reporting.component.ts
index 20f835e..514ce53 100644
--- a/services/self-service/src/main/resources/webapp/src/app/reports/reporting/reporting.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/reports/reporting/reporting.component.ts
@@ -20,23 +20,24 @@
 
 import { Component, OnInit, OnDestroy, ViewChild } from '@angular/core';
 import { ToastrService } from 'ngx-toastr';
-import {ApplicationSecurityService, BillingReportService, HealthStatusService} from '../../core/services';
+import { BillingReportService, HealthStatusService } from '../../core/services';
 import { ReportingGridComponent } from './reporting-grid/reporting-grid.component';
 import { ToolbarComponent } from './toolbar/toolbar.component';
 
 import { FileUtils } from '../../core/util';
 import { DICTIONARY, ReportingConfigModel } from '../../../dictionary/global.dictionary';
-import {ProgressBarService} from '../../core/services/progress-bar.service';
-import {LocalizationService} from '../../core/services/localization.service';
+import { ProgressBarService } from '../../core/services/progress-bar.service';
+import { LocalizationService } from '../../core/services/localization.service';
 
 @Component({
   selector: 'datalab-reporting',
   template: `
     <div class="base-retreat">
-      <datalab-toolbar (rebuildReport)="rebuildBillingReport()"
-                        (exportReport)="exportBillingReport()"
-                        (setRangeOption)="setRangeOption($event)">
-      </datalab-toolbar>
+      <datalab-toolbar 
+        (rebuildReport)="rebuildBillingReport()"
+        (exportReport)="exportBillingReport()"
+        (setRangeOption)="setRangeOption($event)"
+      ></datalab-toolbar>
       <mat-divider></mat-divider>
       <datalab-reporting-grid
         (filterReport)="filterReport($event)"
@@ -53,10 +54,10 @@
       left: 0;
       bottom: 0;
       width: 100%;
+      padding: 5px 15px;
       background: #a1b7d1;
       color: #ffffff;
       text-align: right;
-      padding: 5px 15px;
       font-size: 18px;
       box-shadow: 0 9px 18px 15px #f5f5f5;
     }
@@ -136,27 +137,32 @@
     this.billingReportService.downloadReport(this.reportData)
       .subscribe(
         data => FileUtils.downloadFile(data),
-        () => this.toastr.error('Billing report export failed!', 'Oops!'));
+        () => this.toastr.error('Billing report export failed!', 'Oops!')
+      );
   }
 
   getDefaultFilterConfiguration(data): void {
     const users = [], types = [], shapes = [], services = [], statuses = [], projects = [];
 
     data.report_lines.forEach((item: any) => {
-      if (item.user && users.indexOf(item.user) === -1)
+      if (item.user && users.indexOf(item.user) === -1) {
         users.push(item.user);
+      }
 
-      if (item.status && statuses.indexOf(item.status.toLowerCase()) === -1)
+      if (item.status && statuses.indexOf(item.status.toLowerCase()) === -1) {
         statuses.push(item.status.toLowerCase());
+      }
 
-      if (item.project && projects.indexOf(item.project) === -1)
+      if (item.project && projects.indexOf(item.project) === -1) {
         projects.push(item.project);
+      }
 
-      if (item['resource_type'] && types.indexOf(item['resource_type']) === -1)
+      if (item['resource_type'] && types.indexOf(item['resource_type']) === -1) {
         types.push(item['resource_type']);
+      }
 
       if (item.shape && types.indexOf(item.shape)) {
-       if (item.shape.indexOf('Master') > -1) {
+        if (item.shape.indexOf('Master') > -1) {
           for (let shape of item.shape.split(/(?=Slave)/g)) {
             shape = shape.replace('Master: ', '');
             shape = shape.replace(/Slave: /, '');
@@ -175,8 +181,9 @@
         }
       }
 
-      if (item.product && services.indexOf(item.product) === -1)
+      if (item.product && services.indexOf(item.product) === -1) {
         services.push(item.product);
+      }
     });
 
     if (!this.reportingGrid.filterConfiguration || !localStorage.getItem('report_config')) {
@@ -213,4 +220,4 @@
         this.admin = result.admin;
       });
   }
-}
+}
\ No newline at end of file
diff --git a/services/self-service/src/main/resources/webapp/src/app/reports/reporting/reporting.module.ts b/services/self-service/src/main/resources/webapp/src/app/reports/reporting/reporting.module.ts
index efcbfd9..c61c1d8 100644
--- a/services/self-service/src/main/resources/webapp/src/app/reports/reporting/reporting.module.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/reports/reporting/reporting.module.ts
@@ -27,8 +27,8 @@
 import { KeysPipeModule, LineBreaksPipeModule } from '../../core/pipes';
 import { ReportingGridComponent } from './reporting-grid/reporting-grid.component';
 import { ToolbarComponent } from './toolbar/toolbar.component';
-import {LocalCurrencyModule} from '../../core/pipes/local-currency-pipe';
-import {LocalDatePipeModule} from '../../core/pipes/local-date-pipe';
+import { LocalCurrencyModule } from '../../core/pipes/local-currency-pipe';
+import { LocalDatePipeModule } from '../../core/pipes/local-date-pipe';
 
 @NgModule({
     imports: [
diff --git a/services/self-service/src/main/resources/webapp/src/app/reports/reporting/toolbar/toolbar.component.html b/services/self-service/src/main/resources/webapp/src/app/reports/reporting/toolbar/toolbar.component.html
index ca883aa..e8aba28 100644
--- a/services/self-service/src/main/resources/webapp/src/app/reports/reporting/toolbar/toolbar.component.html
+++ b/services/self-service/src/main/resources/webapp/src/app/reports/reporting/toolbar/toolbar.component.html
@@ -20,8 +20,9 @@
   <div class="info_color" >
     <div class="general" *ngIf="reportData">
       <div><span>Service base name: </span><strong>{{ reportData.sbn }}</strong></div>
-      <div *ngIf="reportData.tag_resource_id"><span>Resource tag ID:
-        </span><strong>{{ reportData.tag_resource_id }}</strong></div>
+      <div *ngIf="reportData.tag_resource_id">
+        <span>Resource tag ID:</span><strong>{{ reportData.tag_resource_id }}</strong>
+      </div>
       <div class="report-period info_color" *ngIf="availablePeriodFrom && availablePeriodTo">
         <span>Available reporting period from:</span>
         <strong>{{ availablePeriodFrom.join('/') | localDate }} </strong>
@@ -31,10 +32,19 @@
   </div>
 
   <div id="range-picker">
-    <ng-daterangepicker [(ngModel)]="value" [options]="options" (ngModelChange)="onChange($event)"></ng-daterangepicker>
+    <ng-daterangepicker 
+      [(ngModel)]="value" 
+      [options]="options" 
+      (ngModelChange)="onChange($event)"
+    ></ng-daterangepicker>
   </div>
   <div class="action-butt">
-    <button mat-raised-button class="butt" (click)="export($event)" [disabled]="!reportData?.report_lines.length">
+    <button 
+      mat-raised-button 
+      class="butt" 
+      (click)="export($event)" 
+      [disabled]="!reportData?.report_lines.length"
+    >
       <i class="material-icons">file_download</i>Export
     </button>
     <button mat-raised-button class="butt" (click)="rebuild($event)">
diff --git a/services/self-service/src/main/resources/webapp/src/app/reports/reporting/toolbar/toolbar.component.scss b/services/self-service/src/main/resources/webapp/src/app/reports/reporting/toolbar/toolbar.component.scss
index f23b8a9..7b454fa 100644
--- a/services/self-service/src/main/resources/webapp/src/app/reports/reporting/toolbar/toolbar.component.scss
+++ b/services/self-service/src/main/resources/webapp/src/app/reports/reporting/toolbar/toolbar.component.scss
@@ -20,18 +20,18 @@
 section.toolbar {
   display: flex;
   justify-content: space-between;
-  font-weight: 300;
   width: 100%;
+  font-weight: 300;
 
-  >div {
+  > div {
     width: 33%;
   }
 
-  >div:nth-child(2) {
+  > div:nth-child(2) {
     text-align: center;
   }
 
-  >div:nth-child(3) {
+  > div:nth-child(3) {
     text-align: right;
   }
 
@@ -60,5 +60,4 @@
       }
     }
   }
-}
-
+}
\ No newline at end of file
diff --git a/services/self-service/src/main/resources/webapp/src/app/reports/reporting/toolbar/toolbar.component.ts b/services/self-service/src/main/resources/webapp/src/app/reports/reporting/toolbar/toolbar.component.ts
index 2b13c8e..af4aee8 100644
--- a/services/self-service/src/main/resources/webapp/src/app/reports/reporting/toolbar/toolbar.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/reports/reporting/toolbar/toolbar.component.ts
@@ -17,13 +17,13 @@
  * under the License.
  */
 
-import { Component, OnInit, AfterViewInit, Output, EventEmitter, ViewEncapsulation, ViewChild } from '@angular/core';
+import { Component, OnInit, AfterViewInit, Output, EventEmitter, ViewEncapsulation } from '@angular/core';
 import { NgDateRangePickerOptions } from 'ng-daterangepicker';
 import { DICTIONARY } from '../../../../dictionary/global.dictionary';
-import {skip} from 'rxjs/operators';
-import {Subscription} from 'rxjs';
-import {HealthStatusService} from '../../../core/services';
-import {GeneralEnvironmentStatus} from '../../../administration/management/management.model';
+import { skip } from 'rxjs/operators';
+import { Subscription } from 'rxjs';
+import { HealthStatusService } from '../../../core/services';
+import { GeneralEnvironmentStatus } from '../../../administration/management/management.model';
 
 @Component({
   selector: 'datalab-toolbar',
@@ -102,11 +102,13 @@
   onChange(dateRange: string): void {
     const rangeLabels = <NodeListOf<Element>>document.querySelectorAll('.value-txt');
 
-    for (let label = 0; label < rangeLabels.length; ++label)
+    for (let label = 0; label < rangeLabels.length; ++label) {
       if (rangeLabels[label].classList.contains('untouched')) {
         rangeLabels[label].classList.remove('untouched');
         rangeLabels[label].classList.remove('d-none');
       }
+    }
+
     const labels = <NodeListOf<Element>>document.querySelectorAll('.label-txt');
     labels[0].innerHTML = 'From:';
     labels[1].innerHTML = 'To:';
@@ -125,4 +127,4 @@
   export($event): void {
     this.exportReport.emit($event);
   }
-}
+}
\ No newline at end of file
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/bucket-browser.component.html b/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/bucket-browser.component.html
index 93ff8f4..1c38bc3 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/bucket-browser.component.html
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/bucket-browser.component.html
@@ -26,79 +26,99 @@
   <div class="dialog-content tabs">
     <div class="submit m-bott-10 m-top-10">
       <div class="left-side-butts">
-      <span [matTooltip]="isQueueFull ? 'Previous upload is still in progress, please wait.' : 'You have not permission to upload data'" matTooltipPosition="above" matTooltipDisabled="{{this.bucketStatus.upload && !isQueueFull}}">
-        <button 
-          mat-raised-button 
-          type="button" 
-          class="butt first-btn" 
-          [disabled]="!this.bucketStatus.upload || allDisable || isSelectionOpened || !path || isQueueFull" 
-          (click)="handleFileInput($event)"
+        <span 
+          [matTooltip]="isQueueFull ? 'Previous upload is still in progress, please wait.' : 'You have not permission to upload data'" 
+          matTooltipPosition="above" 
+          matTooltipDisabled="{{this.bucketStatus.upload && !isQueueFull}}"
         >
-          <input 
-            [ngClass]="{'not-allowed': !this.bucketStatus.upload || allDisable || isSelectionOpened || !path || isQueueFull}" 
-            type="file" 
-            (change)="handleFileInput($event)" 
-            title="" 
-            multiple
+          <button 
+            mat-raised-button 
+            type="button" 
+            class="butt first-btn" 
+            [disabled]="!this.bucketStatus.upload || allDisable || isSelectionOpened || !path || isQueueFull" 
+            (click)="handleFileInput($event)"
           >
-          Upload files
-        </button>
-      </span>
-      <span [matTooltip]="'You have not permission to create folder'" matTooltipPosition="above" matTooltipDisabled="{{this.bucketStatus.upload}}">
-        <button
-          mat-raised-button
-          type="button"
-          class="butt"
-          (click)="createFolder(selectedFolder)"
-          [disabled]="!this.bucketStatus.upload || allDisable || !path || isSelectionOpened"
-        >
-          Create folder
-        </button>
-      </span>
-      <span [matTooltip]="'You have not permission to delete data'" matTooltipPosition="above" matTooltipDisabled="{{this.bucketStatus.delete}}">
-        <button
-          type="button"
-          class="butt"
-          mat-raised-button
-          (click)="fileAction('delete')"
-          [disabled]="(!selected?.length && !selectedFolderForAction?.length) || !this.bucketStatus.delete || allDisable || !path || isSelectionOpened"
-        >
-        Delete
-      </button>
-      </span>
-      <div class="action-select-wrapper" >
-        <span class="action-button-wrapper">
-          <button
-            type="button" class="butt actions-btn"
-            mat-raised-button
-            [disabled]=" selectedItems?.length !== 1 || allDisable || !path || isSelectionOpened"
-            (click)="toogleActions();$event.stopPropagation()"
-          >
-            Actions <i class="material-icons" >{{ !isActionsOpen ?  'expand_more' : 'expand_less' }}</i>
+            <input 
+              [ngClass]="{'not-allowed': !this.bucketStatus.upload || allDisable || isSelectionOpened || !path || isQueueFull}" 
+              type="file" 
+              (change)="handleFileInput($event)" 
+              title="" 
+              multiple
+            />
+            Upload files
           </button>
+        </span>
+        <span 
+          [matTooltip]="'You have not permission to create folder'" 
+          matTooltipPosition="above" 
+          matTooltipDisabled="{{this.bucketStatus.upload}}"
+        >
+          <button
+            mat-raised-button
+            type="button"
+            class="butt"
+            (click)="createFolder(selectedFolder)"
+            [disabled]="!this.bucketStatus.upload || allDisable || !path || isSelectionOpened"
+          >
+            Create folder
+          </button>
+        </span>
+        <span 
+          [matTooltip]="'You have not permission to delete data'" 
+          matTooltipPosition="above" 
+          matTooltipDisabled="{{this.bucketStatus.delete}}"
+        >
+          <button
+            type="button"
+            class="butt"
+            mat-raised-button
+            (click)="fileAction('delete')"
+            [disabled]="(!selected?.length && !selectedFolderForAction?.length) || 
+                        !this.bucketStatus.delete || allDisable || !path || isSelectionOpened"
+          >
+            Delete
+          </button>
+        </span>
+        <div class="action-select-wrapper" >
+          <span class="action-button-wrapper">
+            <button
+              type="button" 
+              class="butt actions-btn"
+              mat-raised-button
+              [disabled]=" selectedItems?.length !== 1 || allDisable || !path || isSelectionOpened"
+              (click)="toogleActions();$event.stopPropagation()"
+            >
+              Actions <i class="material-icons" >{{ !isActionsOpen ?  'expand_more' : 'expand_less' }}</i>
+            </button>
           </span>
-        <div class="action-menu" *ngIf="isActionsOpen">
-          <span [matTooltip]="'You have not permission to download data'" matTooltipPosition="above" matTooltipDisabled="{{this.bucketStatus.download}}">
-          <button
-            type="button" class="butt action-menu-item"
-            [ngClass]="{'disabled': !selected?.length || this.selectedItems?.length > 1 || !this.bucketStatus.download || allDisable || isSelectionOpened}"
-            mat-raised-button
-            [disabled]=" !selected?.length || this.selectedItems?.length > 1 || !this.bucketStatus.download || allDisable || isSelectionOpened"
-            (click)="fileAction('download');$event.stopPropagation()"
-          >
-            Download
-          </button>
+          <div class="action-menu" *ngIf="isActionsOpen">
+            <span 
+              [matTooltip]="'You have not permission to download data'" 
+              matTooltipPosition="above" 
+              matTooltipDisabled="{{this.bucketStatus.download}}"
+            >
+              <button
+                type="button" 
+                class="butt action-menu-item"
+                [ngClass]="{'disabled': !selected?.length || this.selectedItems?.length > 1 || !this.bucketStatus.download || allDisable || isSelectionOpened}"
+                mat-raised-button
+                [disabled]=" !selected?.length || this.selectedItems?.length > 1 || !this.bucketStatus.download || allDisable || isSelectionOpened"
+                (click)="fileAction('download');$event.stopPropagation()"
+              >
+                Download
+              </button>
             </span>
-          <button
-            type="button" class="butt action-menu-item"
-            mat-raised-button
-            (click)="copyPath();$event.stopPropagation()"
-          >
-            Copy path
-          </button>
+            <button
+              type="button" 
+              class="butt action-menu-item"
+              mat-raised-button
+              (click)="copyPath();$event.stopPropagation()"
+            >
+              Copy path
+            </button>
+          </div>
         </div>
       </div>
-      </div>
       <button
         mat-raised-button
         type="button"
@@ -111,51 +131,70 @@
     </div>
     <p class="path"><span>Bucket path:</span>
       <span class="url ellipsis"  [ngClass]="{'cursor-not-allow': bucketDataService.emptyFolder}">
-       <span class="path-folder" *ngFor="let folder of this.objectPath">
-         <span class="url-icon" *ngIf="this.objectPath.indexOf(folder) !== 0">
-           >
-         </span>
-         <span class="url-folder" (click)="folderTreeComponent.showItem(folder);" [ngClass]="{'not-allowed': bucketDataService.emptyFolder}">{{folder.item}}</span>
-       </span>
+        <span class="path-folder" *ngFor="let folder of this.objectPath">
+          <span class="url-icon" *ngIf="this.objectPath.indexOf(folder) !== 0">
+            >
+          </span>
+          <span 
+            class="url-folder" 
+            (click)="folderTreeComponent.showItem(folder);" 
+            [ngClass]="{'not-allowed': bucketDataService.emptyFolder}"
+          >
+            {{folder.item}}
+          </span>
+        </span>
       </span>
     </p>
     <div class="bucket-wrapper" [ngClass]="{'added-upload': addedFiles.length}" id="scrolling">
       <div class="bucket-selection" [ngClass]="{'opened': isSelectionOpened}">
         <div class="button-wrapper" [ngClass]="{'cursor-not-allow': bucketDataService.emptyFolder}">
-          <i (click)="toggleBucketSelection()" class="material-icons close" *ngIf="!isSelectionOpened" [ngClass]="{'not-allowed': bucketDataService.emptyFolder}">chevron_right</i>
+          <i 
+            (click)="toggleBucketSelection()" 
+            class="material-icons close" 
+            *ngIf="!isSelectionOpened" 
+            [ngClass]="{'not-allowed': bucketDataService.emptyFolder}"
+          >
+            chevron_right
+          </i>
         </div>
         <datalab-bucket-tree
-                [hidden]="!isSelectionOpened"
-                (emitActiveBucket)=openBucket($event)
-                [buckets]='buckets'
-                [openedBucket]=this.bucketName
-        >
-        </datalab-bucket-tree>
+          [hidden]="!isSelectionOpened"
+          (emitActiveBucket)=openBucket($event)
+          [buckets]='buckets'
+          [openedBucket]=this.bucketName
+        ></datalab-bucket-tree>
       </div>
       <div class="navigation scrolling" [ngClass]="{'selection-opened': isSelectionOpened}" [hidden]="!path">
-          <datalab-folder-tree
-                  (showFolderContent)=onFolderClick($event)
-                  (disableAll)=dissableAll($event)
-                  [folders]=folders
-                  [endpoint]=endpoint
-                  [cloud]="cloud"
-          ></datalab-folder-tree>
+        <datalab-folder-tree
+          (showFolderContent)=onFolderClick($event)
+          (disableAll)=dissableAll($event)
+          [folders]=folders
+          [endpoint]=endpoint
+          [cloud]="cloud"
+        ></datalab-folder-tree>
       </div>
       <div class="directory" [ngClass]="{'selection-opened': isSelectionOpened}" [hidden]="!path">
         <div class="folder-item t_header">
           <div class="folder-item-wrapper header-wrapper folder-tree header-item">
             <div class="name" [ngClass]="{'cursor-not-allow': bucketDataService.emptyFolder}">
-              <span class="th_name" (click)="isFilterVisible = true" *ngIf="!isFilterVisible" [ngClass]="{'not-allowed': bucketDataService.emptyFolder}">Name</span>
-              <div class="filter-files"  *ngIf="isFilterVisible">
-                <input _ngcontent-yns-c13=""
-                       [(ngModel)]="searchValue"
-                       (keyup)=filterObjects()
-                       class="form-control filter-field filter-name"
-                       placeholder="Filter by name" type="text"
-                >
+              <span 
+                class="th_name" 
+                (click)="isFilterVisible = true" 
+                *ngIf="!isFilterVisible" 
+                [ngClass]="{'not-allowed': bucketDataService.emptyFolder}"
+              >
+                Name
+              </span>
+              <div class="filter-files" *ngIf="isFilterVisible">
+                <input 
+                  _ngcontent-yns-c13=""
+                  [(ngModel)]="searchValue"
+                  (keyup)=filterObjects()
+                  class="form-control filter-field filter-name"
+                  placeholder="Filter by name" type="text"
+                />
                 <span><i (click)="closeFilterInput()" class="material-icons close">close</i></span>
               </div>
-
             </div>
             <div class="size"><span class="th_size">Size</span></div>
             <div class="date"><span class="th_date">Last modified</span></div>
@@ -168,30 +207,32 @@
                 <datalab-checkbox
                   [checked]="file.isFolderSelected"
                   (toggleSelection)="toggleSelectedFile(file, 'folder')"
+                ></datalab-checkbox>
+                <i class="material-icons folder-icon folder-name">folder</i>
+                <span 
+                  class="item-name name-wrap ellipsis"
+                  matTooltip="{{file.item}}"
+                  matTooltipPosition="above"
+                  matTooltipShowDelay="1000"
+                  [matTooltipClass]="'full-size-tooltip'"
                 >
-                </datalab-checkbox>
-
-                  <i class="material-icons folder-icon folder-name">folder</i>
-                  <span class="item-name name-wrap ellipsis"
-                        matTooltip="{{file.item}}"
-                        matTooltipPosition="above"
-                        matTooltipShowDelay="1000"
-                        [matTooltipClass]="'full-size-tooltip'"
-                  >
-                    {{file.item}}
+                  {{file.item}}
                 </span>
               </div>
               <div class="size size-folder">-</div>
               <div class="date" *ngIf="!file.isDownloading">-</div>
             </div>
-            <div class="folder-item-wrapper"  (click)="toggleSelectedFile(file, 'file')" *ngIf="!file.children && file.item !== 'ا'">
+            <div 
+              class="folder-item-wrapper" 
+              (click)="toggleSelectedFile(file, 'file')" 
+              *ngIf="!file.children && file.item !== 'ا'"
+            >
               <div class="name name-file">
                 <datalab-checkbox
                   [checked]="file.isSelected"
                   [disabled]="file.isDownloading"
                   (toggleSelection)="toggleSelectedFile(file, 'file')"
-                >
-                </datalab-checkbox>
+                ></datalab-checkbox>
                 <i class="material-icons folder-icon" >description</i>
                 <span
                   class="item-name name-wrap ellipsis"
@@ -208,8 +249,7 @@
               <div class="progress-wrapper" *ngIf="file.isDownloading">
                 <div class="progres">
                   <span class="progress-bar-text">{{file.progress || 0}}% Downloading...</span>
-                  <div class="bar" [ngStyle]="{width: file.progress + '%'}">
-                  </div>
+                  <div class="bar" [ngStyle]="{width: file.progress + '%'}"></div>
                 </div>
               </div>
             </div>
@@ -218,7 +258,7 @@
       </div>
       <div class="loading-block" *ngIf="!path">
         <div class="uploading">
-            <p>Please wait until DataLab loads bucket: <span class="strong">{{bucketName}}</span>...</p>
+          <p>Please wait until DataLab loads bucket: <span class="strong">{{bucketName}}</span>...</p>
           <mat-progress-bar mode="indeterminate"></mat-progress-bar>
         </div>
       </div>
@@ -226,8 +266,19 @@
     <div class="upload-window" *ngIf="addedFiles.length">
       <header class="upload-header">
         <h4 class="modal-title">Upload files</h4>
-        <span class="close" matTooltip="Upload is still in progress, please wait." matTooltipPosition="above" [ngClass]="{'not-allow': isFileUploading}" [matTooltipDisabled]="!isFileUploading">
-           <button type="button" class="close" (click)="closeUploadWindow()" [disabled]="isFileUploading" [ngClass]="{'not-allow': isFileUploading}" >&times;</button>
+        <span 
+          class="close" 
+          matTooltip="Upload is still in progress, please wait." 
+          matTooltipPosition="above" 
+          [ngClass]="{'not-allow': isFileUploading}" [matTooltipDisabled]="!isFileUploading"
+        >
+          <button 
+            type="button" 
+            class="close" 
+            (click)="closeUploadWindow()" 
+            [disabled]="isFileUploading" 
+            [ngClass]="{'not-allow': isFileUploading}"
+          >&times;</button>
         </span>
       </header>
       <ul class="upload-files scrolling">
@@ -239,7 +290,6 @@
             <div class="state"></div>
             <div class="remove"></div>
           </div>
-
         </li>
         <li *ngFor="let file of addedFiles" class="file">
           <div class="name">
@@ -254,15 +304,21 @@
           </div>
           <div class="second-block">
             <div class="upload-path">
-              <span class="ellipsis" matTooltip="{{file.path}}" matTooltipPosition="above" [matTooltipClass]="'full-size-tooltip'">{{file.path}}</span>
+              <span 
+                class="ellipsis" 
+                matTooltip="{{file.path}}" 
+                matTooltipPosition="above" 
+                [matTooltipClass]="'full-size-tooltip'"
+              >
+                {{file.path}}
+              </span>
             </div>
             <div class="size">{{file.size | convertFileSize}} </div>
             <div class="state">
               <span *ngIf="file.status === 'uploaded'" class="running">Uploaded</span>
               <div class="progres" *ngIf="file.status === 'uploading'">
                 <span class="progress-bar-text">{{file.progress || 0}}% Uploading...</span>
-                <div class="bar" [ngStyle]="{width: file.progress + '%'}">
-                </div>
+                <div class="bar" [ngStyle]="{width: file.progress + '%'}"></div>
               </div>
               <span *ngIf="file.status === 'failed'" class="error">Failed</span>
               <span *ngIf="file.status === 'waiting'" class="stopped">Waiting for uploading...</span>
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/bucket-browser.component.scss b/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/bucket-browser.component.scss
index f8e6e11..d5a4eee 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/bucket-browser.component.scss
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/bucket-browser.component.scss
@@ -25,53 +25,55 @@
   font-size: 14px;
   font-weight: 400;
 
-  .loading-block{
-    width: 80%;
-    margin: 0 auto;
+  .loading-block {
     display: flex;
     align-items: center;
     justify-content: center;
+    width: 80%;
     height: 100%;
-    .uploading{
+    margin: 0 auto;
+
+    .uploading {
       width: 100%;
-      text-align: center;
       padding-bottom: 50px;
-      p{
+      text-align: center;
+
+      p {
         margin-bottom: 20px;
       }
     }
   }
 
-  .path{
+  .path {
+    display: flex;
     margin: 0 4px 30px 0;
     padding: 4px 4px 4px 0;
-    color: rgba(0,0,0,.87);
+    color: rgba(0, 0, 0, 0.87);
     overflow: hidden;
     white-space: nowrap;
-    display: flex;
 
-    &-folder{
+    &-folder {
       position: relative;
     }
 
-    .url{
+    .url {
+      display: block;
       font-weight: 600;
       overflow: hidden;
-      display: block;
       direction: rtl;
 
-     &-folder{
-       padding-left: 5px;
-       padding-right: 5px;
-       color: #00bcd4;
-       cursor: pointer;
+      &-folder {
+        padding-left: 5px;
+        padding-right: 5px;
+        color: #00bcd4;
+        cursor: pointer;
 
-       &:first-of-type{
-         padding-left: 5px;
-       }
-     }
+        &:first-of-type {
+          padding-left: 5px;
+        }
+      }
 
-      &-icon{
+      &-icon {
         color: lightgrey;
       }
     }
@@ -79,7 +81,7 @@
 
   bottom: 0;
 
-  .dialog-content{
+  .dialog-content {
     padding: 0 35px;
   }
 
@@ -87,48 +89,48 @@
     height: 500px;
   }
 
-  .submit{
+  .submit {
     display: flex;
     justify-content: space-between;
 
-    .left-side-butts{
+    .left-side-butts {
       display: flex;
     }
 
-    .butt:not(.action-menu-item){
+    .butt:not(.action-menu-item) {
       position: relative;
-      overflow: hidden;
       margin: 10px;
+      overflow: hidden;
 
-      &.actions-btn{
+      &.actions-btn {
         margin: 10px 10px 0 10px;
         padding-right: 38px;
 
-          .material-icons{
-            transition: ease-in-out 1s;
-            font-size: 25px;
-            position: absolute;
-            top: 7px;
-            right: 30px;
-          }
+        .material-icons {
+          position: absolute;
+          top: 7px;
+          right: 30px;
+          font-size: 25px;
+          transition: ease-in-out 1s;
+        }
       }
 
-      &.first-btn{
+      &.first-btn {
         margin-left: 0;
       }
 
-      &.refresh{
+      &.refresh {
         margin-right: 0;
       }
 
-      &.action-menu-item{
-        &:hover{
-          color:  #00bcd4;
+      &.action-menu-item {
+        &:hover {
+          color: #00bcd4;
           background-color: #fafafa;
         }
 
-        &.disabled{
-          &:hover{
+        &.disabled {
+          &:hover {
             color: #577289;
           }
         }
@@ -137,266 +139,264 @@
   }
 }
 
-.bucket-wrapper{
-  height: 57vh;
-  border: 2px solid rgba(0,0,0,.12);
-  border-radius: 5px;
+.bucket-wrapper {
   display: flex;
   width: 100%;
+  height: 57vh;
+  border: 2px solid rgba(0, 0, 0, 0.12);
+  border-radius: 5px;
 
-  &.added-upload{
+  &.added-upload {
     height: 40vh;
   }
-   .bucket-selection{
-     position: relative;
-     width: 2%;
-     border-right: 2px solid rgba(0,0,0,.12);
-     padding-top: 6px;
-     transition: .2s;
 
-     &.opened{
-       width: 33.3%;
-
-       .button-wrapper {
-         text-align: right;
-         left: auto;
-
-         i{
-           padding-right: 3px;
-         }
-       }
-     }
-
-     .button-wrapper {
-       position: absolute;
-       left: 0;
-       right: 0;
-       top: 9px;
-       text-align: center;
-
-       i{
-         cursor: pointer;
-         font-size: 18px;
-
-         &:hover{
-           color:  #00bcd4;
-         }
-       }
-     }
-   }
-
-   }
-
-  .navigation{
-    transition: .2s;
-    width: 31.3%;
-    height: 100%;
-    overflow: auto;
-    padding-top: 6px;
-
-    &.selection-opened{
-      width: 66.7%;
-    }
-
-    .folder-tree{
-      .folder{
-        line-height: 30px;
-      }
-    }
-
-    .mat-tree-node{
-      min-height: auto;
-    }
-  }
-
-  .directory{
-    width: 66.7%;
-    max-height: 100%;
-    font-size: 14px;
-    font-weight: 400;
+  .bucket-selection {
     position: relative;
-    border-left: 2px solid rgba(0,0,0,.12);
+    width: 2%;
+    padding-top: 6px;
+    border-right: 2px solid rgba(0, 0, 0, 0.12);
+    transition: 0.2s;
 
-    &.selection-opened{
-      display: none;
+    &.opened {
+      width: 33.3%;
+
+      .button-wrapper {
+        text-align: right;
+        left: auto;
+
+        i {
+          padding-right: 3px;
+        }
+      }
     }
 
-    .folder-tree{
-      overflow-x: auto;
-      overflow-y: overlay;
-      max-height: 100%;
-      padding: 6px 15px 15px 15px;
-
-      .name{
-        width: 60%;
-        display: flex;
-        align-items: center;
-        overflow: hidden;
-
-        .name-wrap {
-          overflow: hidden;
-          white-space: nowrap;
-          padding-right: 10px;
-        }
-
-        &-folder{
-          .folder-name{
-            padding-left: 8px;
-          }
-        }
-
-        &-file{
-          i{
-            transform: translateX(6px);
-          }
-          span.item-name{
-            padding-left: 4px;
-
-            &.removed-checkbox{
-              padding-left: 4px;
-            }
-          }
-        }
-      }
-
-      .size{
-        width: 15%;
-
-        &-folder{
-          padding-left: 4px;
-        }
-      }
-
-      .date{
-        width: 25%;
-
-        .th_date{
-          font-size: 13px;
-        }
-      }
-
-      .progress-wrapper{
-        flex:1;
-      }
-
-      .material-icons.close{
-        font-size: 15px;
-        margin: 0 10px;
-        cursor: pointer;
-      }
-    }
-  }
-
-  .folder-item{
-     display: flex;
-     align-items: center;
-
-    &.t_header{
-      top: -41px;
+    .button-wrapper {
       position: absolute;
       left: 0;
       right: 0;
+      top: 9px;
+      text-align: center;
 
-      .folder-item-wrapper{
-        height: 52px;
-      }
-
-      .th_name{
-        padding-left: 29px;
-        font-size: 14px;
+      i {
         cursor: pointer;
+        font-size: 18px;
 
-        &:hover{
+        &:hover {
           color: #00bcd4;
         }
       }
+    }
+  }
+}
 
-      .filter-files{
-        width: 100%;
-        padding: 3px 0;
-        padding-left: 3px;
-        display: flex;
-        align-items: center;
+.navigation {
+  width: 31.3%;
+  height: 100%;
+  padding-top: 6px;
+  overflow: auto;
+  transition: 0.2s;
 
-        .filter-name{
-          font-size: 14px;
-          height: 20px;
-          width: 90%;
+  &.selection-opened {
+    width: 66.7%;
+  }
+
+  .folder-tree {
+    .folder {
+      line-height: 30px;
+    }
+  }
+
+  .mat-tree-node {
+    min-height: auto;
+  }
+}
+
+.directory {
+  position: relative;
+  width: 66.7%;
+  max-height: 100%;
+  font-size: 14px;
+  font-weight: 400;
+  border-left: 2px solid rgba(0, 0, 0, 0.12);
+
+  &.selection-opened {
+    display: none;
+  }
+
+  .folder-tree {
+    max-height: 100%;
+    padding: 6px 15px 15px 15px;
+    overflow-x: auto;
+    overflow-y: overlay;
+
+    .name {
+      display: flex;
+      align-items: center;
+      width: 60%;
+      overflow: hidden;
+
+      .name-wrap {
+        padding-right: 10px;
+        overflow: hidden;
+        white-space: nowrap;
+      }
+
+      &-folder {
+        .folder-name {
+          padding-left: 8px;
         }
+      }
 
-        span{
-          transform: translateY(2px);
+      &-file {
+        i {
+          transform: translateX(6px);
+        }
+        span.item-name {
+          padding-left: 4px;
 
-          &:hover{
-            i{
-              color: #00bcd4;
-            }
+          &.removed-checkbox {
+            padding-left: 4px;
           }
         }
       }
+    }
 
-      .th_size{
-        font-size: 14px;
-        padding-left: 3px;
-        cursor: auto;
-      }
+    .size {
+      width: 15%;
 
-      .th_date{
-        font-size: 14px !important;
-        cursor: auto;
+      &-folder {
+        padding-left: 4px;
       }
     }
-     .folder-item-wrapper{
-       width: 100%;
-       display: flex;
-       justify-content: space-between;
-       align-items: center;
-       cursor: pointer;
-       color: rgba(0,0,0,.87);
 
-       &.header-item{
-         cursor: auto;
+    .date {
+      width: 25%;
 
-         .name{
-           margin-left: -3px;
-         }
+      .th_date {
+        font-size: 13px;
+      }
+    }
 
-       }
+    .progress-wrapper {
+      flex: 1;
+    }
 
-       i{
-         color: rgb(232, 232, 232);
-       }
+    .material-icons.close {
+      font-size: 15px;
+      margin: 0 10px;
+      cursor: pointer;
+    }
+  }
+}
 
-       &:hover:not(.header-wrapper){
-         color: #00bcd4;
-         transition: .3s ease-in-out;
-         i{
-           color: #00bcd4;
-           transition: .3s ease-in-out;
-         }
+.folder-item {
+  display: flex;
+  align-items: center;
 
-         .empty-checkbox{
-           border-color: #00bcd4
-         }
+  &.t_header {
+    position: absolute;
+    top: -41px;
+    left: 0;
+    right: 0;
 
-         .progress-wrapper{
+    .folder-item-wrapper {
+      height: 52px;
+    }
 
-           .progres{
-             border-color: #00bcd4 !important;
-           }
-         }
-       }
-     }
-   }
+    .th_name {
+      padding-left: 29px;
+      font-size: 14px;
+      cursor: pointer;
+
+      &:hover {
+        color: #00bcd4;
+      }
+    }
+
+    .filter-files {
+      display: flex;
+      align-items: center;
+      width: 100%;
+      padding: 3px 0 3px 3px;
+
+      .filter-name {
+        height: 20px;
+        width: 90%;
+        font-size: 14px;
+      }
+
+      span {
+        transform: translateY(2px);
+
+        &:hover {
+          i {
+            color: #00bcd4;
+          }
+        }
+      }
+    }
+
+    .th_size {
+      padding-left: 3px;
+      font-size: 14px;
+      cursor: auto;
+    }
+
+    .th_date {
+      font-size: 14px !important;
+      cursor: auto;
+    }
+  }
+  .folder-item-wrapper {
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+    width: 100%;
+    cursor: pointer;
+    color: rgba(0, 0, 0, 0.87);
+
+    &.header-item {
+      cursor: auto;
+
+      .name {
+        margin-left: -3px;
+      }
+    }
+
+    i {
+      color: rgb(232, 232, 232);
+    }
+
+    &:hover:not(.header-wrapper) {
+      color: #00bcd4;
+      transition: 0.3s ease-in-out;
+
+      i {
+        color: #00bcd4;
+        transition: 0.3s ease-in-out;
+      }
+
+      .empty-checkbox {
+        border-color: #00bcd4;
+      }
+
+      .progress-wrapper {
+        .progres {
+          border-color: #00bcd4 !important;
+        }
+      }
+    }
+  }
+}
 
 .empty-checkbox {
+  position: relative;
   min-width: 16px;
   width: 16px;
   height: 16px;
+  margin-top: 2px;
   border-radius: 2px;
   border: 2px solid lightgrey;
-  margin-top: 2px;
-  position: relative;
 
   &.checked {
     border-color: #35afd5;
@@ -404,19 +404,19 @@
   }
 
   .checked-checkbox {
+    position: absolute;
     top: 0;
     left: 4px;
     width: 5px;
     height: 10px;
     border-bottom: 2px solid white;
     border-right: 2px solid white;
-    position: absolute;
     transform: rotate(45deg);
   }
 }
 
-.folder-item-name{
-  span{
+.folder-item-name {
+  span {
     color: #000;
   }
 
@@ -426,19 +426,19 @@
 }
 
 .upload-window {
+  height: 15vh;
   margin-top: 2vh;
-  border: 2px solid rgba(0, 0, 0, .12);
+  border: 2px solid rgba(0, 0, 0, 0.12);
   border-radius: 5px;
   background-color: white;
-  height: 15vh;
   color: black;
 
   .upload-header {
+    position: relative;
+    height: 30px;
     padding-left: 8px;
     background: #f6fafe;
-    height: 30px;
     line-height: 30px;
-    position: relative;
 
     .modal-title {
       width: 90%;
@@ -452,7 +452,7 @@
       background: #f6fafe;
 
       &::after {
-        content: '';
+        content: "";
         display: block;
       }
     }
@@ -479,14 +479,6 @@
   }
 }
 
-.events-none{
+.events-none {
   pointer-events: none;
 }
-
-
-
-
-
-
-
-
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/bucket-browser.component.ts b/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/bucket-browser.component.ts
index 6a6aacd..507ac2a 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/bucket-browser.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/bucket-browser.component.ts
@@ -17,21 +17,21 @@
  * under the License.
  */
 
-import {Component, OnInit, ViewChild, Inject, OnDestroy} from '@angular/core';
+import { Component, OnInit, ViewChild, Inject, OnDestroy } from '@angular/core';
 import { FormBuilder } from '@angular/forms';
 import { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
 import { ToastrService } from 'ngx-toastr';
-import {ApplicationSecurityService, ManageUngitService, StorageService} from '../../core/services';
+import { ApplicationSecurityService, ManageUngitService, StorageService } from '../../core/services';
 
-import {FolderTreeComponent} from './folder-tree/folder-tree.component';
-import {BucketBrowserService, TodoItemNode} from '../../core/services/bucket-browser.service';
-import {FileUtils, HelpUtils} from '../../core/util';
-import {BucketDataService} from './bucket-data.service';
-import {BucketConfirmationDialogComponent} from './bucket-confirmation-dialog/bucket-confirmation-dialog.component';
-import {HttpEventType} from '@angular/common/http';
-import {CopyPathUtils} from '../../core/util/copyPathUtils';
-import {Subject} from 'rxjs';
-import {takeUntil} from 'rxjs/operators';
+import { FolderTreeComponent } from './folder-tree/folder-tree.component';
+import { BucketBrowserService } from '../../core/services/bucket-browser.service';
+import { FileUtils, HelpUtils } from '../../core/util';
+import { BucketDataService } from './bucket-data.service';
+import { BucketConfirmationDialogComponent } from './bucket-confirmation-dialog/bucket-confirmation-dialog.component';
+import { HttpEventType } from '@angular/common/http';
+import { CopyPathUtils } from '../../core/util/copyPathUtils';
+import { Subject } from 'rxjs';
+import { takeUntil } from 'rxjs/operators';
 
 @Component({
   selector: 'datalab-bucket-browser',
@@ -69,7 +69,7 @@
   public isFileUploading: boolean;
   public cloud: string;
 
-  @ViewChild(FolderTreeComponent, {static: true}) folderTreeComponent;
+  @ViewChild(FolderTreeComponent, { static: true }) folderTreeComponent;
 
   constructor(
     @Inject(MAT_DIALOG_DATA) public data: any,
@@ -82,9 +82,7 @@
     public bucketDataService: BucketDataService,
     private auth: ApplicationSecurityService,
     private storage: StorageService,
-  ) {
-
-  }
+  ) { }
 
   ngOnInit() {
     this.bucketName = this.data.bucket;
@@ -113,10 +111,10 @@
         takeUntil(this.unsubscribe$)
       )
       .subscribe(tokens => {
-      this.storage.storeTokens(tokens);
-      this.isTokenRefreshing = false;
-      this.sendFile();
-    });
+        this.storage.storeTokens(tokens);
+        this.isTokenRefreshing = false;
+        this.sendFile();
+      });
   }
 
   public showItem(item): void {
@@ -130,7 +128,9 @@
 
   public toggleSelectedFile(file, type): void {
     console.log(file, type);
-    type === 'file' ?  file.isSelected = !file.isSelected : file.isFolderSelected = !file.isFolderSelected;
+    type === 'file' 
+      ? file.isSelected = !file.isSelected 
+      : file.isFolderSelected = !file.isFolderSelected;
     this.selected = this.folderItems.filter(item => item.isSelected);
     this.selectedFolderForAction = this.folderItems.filter(item => item.isFolderSelected);
     this.selectedItems = [...this.selected, ...this.selectedFolderForAction];
@@ -156,15 +156,18 @@
       if (toMany) {
         files.length = 50;
       }
+
       if (toBigFile || toMany) {
-        this.dialog.open(BucketConfirmationDialogComponent, {data: {
-          items: {toBig: toBigFile, toMany: toMany}, type: 'upload_limitation'
-          } , width: '550px'})
+        this.dialog.open(BucketConfirmationDialogComponent, {
+          data: {
+            items: { toBig: toBigFile, toMany: toMany }, type: 'upload_limitation'
+          }, width: '550px'
+        })
           .afterClosed().subscribe((res) => {
-         if (res) {
-           this.checkQueue(files);
-         }
-        });
+            if (res) {
+              this.checkQueue(files);
+            }
+          });
       } else {
         this.checkQueue(files);
       }
@@ -235,7 +238,7 @@
 
   async openResolveDialog(existFile) {
     const dialog = this.dialog.open(BucketConfirmationDialogComponent, {
-      data: {items: existFile, type: 'resolve_conflicts'} , width: '550px'
+      data: { items: existFile, type: 'resolve_conflicts' }, width: '550px'
     });
     return dialog.afterClosed().toPromise().then(result => {
       return Promise.resolve(result);
@@ -257,7 +260,9 @@
       this.objectPath = event.pathObject;
       this.path = event.path;
       this.originFolderItems = this.folderItems.map(v => v);
-      this.pathInsideBucket = this.path.indexOf('/') !== -1 ?  this.path.slice(this.path.indexOf('/') + 1) + '/' : '';
+      this.pathInsideBucket = this.path.indexOf('/') !== -1 
+        ? this.path.slice(this.path.indexOf('/') + 1) + '/' 
+        : '';
       this.folderItems.forEach(item => item.isSelected = false);
     }
   }
@@ -275,17 +280,17 @@
   }
 
   public deleteAddedFile(file): void {
-    if ( file.subscr && file.request) {
-      this.dialog.open(BucketConfirmationDialogComponent, {data: {items: file, type: 'cancel'} , width: '550px'})
+    if (file.subscr && file.request) {
+      this.dialog.open(BucketConfirmationDialogComponent, { data: { items: file, type: 'cancel' }, width: '550px' })
         .afterClosed().subscribe((res) => {
           res && file.subscr.unsubscribe();
           res && this.addedFiles.splice(this.addedFiles.indexOf(file), 1);
           this.isFileUploading = this.addedFiles.some(v => v.status === 'uploading');
           this.sendFile();
-      }, () => {
-        this.isFileUploading = this.addedFiles.some(v => v.status === 'uploading');
-        this.sendFile();
-      });
+        }, () => {
+          this.isFileUploading = this.addedFiles.some(v => v.status === 'uploading');
+          this.sendFile();
+        });
     } else {
       this.addedFiles.splice(this.addedFiles.indexOf(file), 1);
       this.isFileUploading = this.addedFiles.some(v => v.status === 'uploading');
@@ -294,7 +299,7 @@
   }
 
   private uploadNewFile(file): void {
-    const path = file.path.indexOf('/') !== -1 ?  this.path.slice(this.path.indexOf('/') + 1) : '';
+    const path = file.path.indexOf('/') !== -1 ? this.path.slice(this.path.indexOf('/') + 1) : '';
     const fullPath = path ? `${path}/${file.name}` : file.name;
     const formData = new FormData();
     formData.append('size', file.file.size);
@@ -317,39 +322,43 @@
     if ((this.refreshTokenLimit > this.getTokenValidTime()) && !this.isTokenRefreshing) {
       this.refreshToken();
     }
+
     if (waitUploading.length && uploading.length < this.uploadingQueueLength) {
       if (!file) {
         file = waitUploading[0];
       }
+      
       file.status = 'uploading';
       this.isFileUploading = this.addedFiles.some(v => v.status === 'uploading');
       this.isQueueFull = this.addedFiles.some(v => v.status === 'waiting');
-      file.subscr =  file.request.subscribe((event: any) => {
-          if (event.type === HttpEventType.UploadProgress) {
-             file.progress = Math.round(95 * event.loaded / event.total);
-            if (file.progress === 95 && !file.interval) {
-              file.interval = setInterval(() => {
-                if (file.progress < 99) {
-                  return file.progress++;
-                }
-              }, file.size < 1094967296 ? 12000 : 20000);
+      file.subscr = file.request
+        .subscribe(
+          (event: any) => {
+            if (event.type === HttpEventType.UploadProgress) {
+              file.progress = Math.round(95 * event.loaded / event.total);
+              if (file.progress === 95 && !file.interval) {
+                file.interval = setInterval(() => {
+                  if (file.progress < 99) {
+                    return file.progress++;
+                  }
+                }, file.size < 1094967296 ? 12000 : 20000);
+              }
+            } else if (event['type'] === HttpEventType.Response) {
+              window.clearInterval(file.interval);
+              file.status = 'uploaded';
+              delete file.request;
+              this.sendFile(this.addedFiles.find(v => v.status === 'waiting'));
+              this.bucketDataService.refreshBucketdata(this.bucketName, this.endpoint);
             }
-          } else if (event['type'] === HttpEventType.Response) {
+          }, 
+          error => {
             window.clearInterval(file.interval);
-            file.status = 'uploaded';
+            file.status = 'failed';
             delete file.request;
             this.sendFile(this.addedFiles.find(v => v.status === 'waiting'));
-            this.bucketDataService.refreshBucketdata(this.bucketName, this.endpoint);
           }
-        }, error => {
-        window.clearInterval(file.interval);
-          file.status = 'failed';
-          delete file.request;
-          this.sendFile(this.addedFiles.find(v => v.status === 'waiting'));
-        }
-      );
+        );
     }
-
   }
 
   public refreshBucket(): void {
@@ -391,7 +400,8 @@
         .pipe(
           takeUntil(this.unsubscribe$)
         )
-        .subscribe(event =>  {
+        .subscribe(
+          event => {
             if (event['type'] === HttpEventType.DownloadProgress) {
               selected[0].progress = Math.round(100 * event['loaded'] / selected[0].object.size);
             }
@@ -402,7 +412,8 @@
                 selected[0].progress = 0;
               }, 1000);
             }
-        }, error => {
+          }, 
+          error => {
             this.toastr.error(error.message || 'File downloading error!', 'Oops!');
             selected[0]['isDownloading'] = false;
           }
@@ -417,24 +428,24 @@
         dataForServer.push(...this.bucketDataService.serverData.map(v => v.object).filter(v => v.indexOf(object) === 0));
       });
       dataForServer = [...dataForServer, ...objects].filter((v, i, arr) => i === arr.indexOf(v));
-      this.dialog.open(BucketConfirmationDialogComponent, {data: {items: itemsForDeleting, type: 'delete'} , width: '550px'})
+      this.dialog.open(BucketConfirmationDialogComponent, { data: { items: itemsForDeleting, type: 'delete' }, width: '550px' })
         .afterClosed().subscribe((res) => {
-        !res && this.clearSelection();
-        res && this.bucketBrowserService.deleteFile({
-          bucket: this.bucketName, endpoint: this.endpoint, 'objects': dataForServer
-        })
-          .pipe(
-            takeUntil(this.unsubscribe$)
-          )
-          .subscribe(() => {
-            this.bucketDataService.refreshBucketdata(this.bucketName, this.endpoint);
-            this.toastr.success('Objects successfully deleted!', 'Success!');
-            this.clearSelection();
-          }, error => {
-          this.toastr.error(error.message || 'Objects deleting error!', 'Oops!');
-          this.clearSelection();
+          !res && this.clearSelection();
+          res && this.bucketBrowserService.deleteFile({
+            bucket: this.bucketName, endpoint: this.endpoint, 'objects': dataForServer
+          })
+            .pipe(
+              takeUntil(this.unsubscribe$)
+            )
+            .subscribe(() => {
+              this.bucketDataService.refreshBucketdata(this.bucketName, this.endpoint);
+              this.toastr.success('Objects successfully deleted!', 'Success!');
+              this.clearSelection();
+            }, error => {
+              this.toastr.error(error.message || 'Objects deleting error!', 'Oops!');
+              this.clearSelection();
+            });
         });
-      });
 
     }
   }
@@ -473,8 +484,4 @@
     this.searchValue = '';
     this.filterObjects();
   }
-
 }
-
-
-
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/bucket-browser.module.ts b/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/bucket-browser.module.ts
index 21deedf..7f9260f 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/bucket-browser.module.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/bucket-browser.module.ts
@@ -25,31 +25,31 @@
 import { ResourcesGridModule } from '../resources-grid';
 import { ExploratoryEnvironmentCreateModule } from '../exploratory/create-environment';
 
-import {BucketBrowserComponent} from './bucket-browser.component';
-import {FolderTreeComponent} from './folder-tree/folder-tree.component';
-import {MatTreeModule} from '@angular/material/tree';
-import {BucketDataService} from './bucket-data.service';
-import {BucketConfirmationDialogComponent} from './bucket-confirmation-dialog/bucket-confirmation-dialog.component';
-import {BucketTreeComponent} from './buckets-tree/bucket-tree.component';
-import {ConvertFileSizePipeModule} from '../../core/pipes/convert-file-size';
-import {LocalDatePipeModule} from '../../core/pipes/local-date-pipe';
-import {ConvertActionPipeModule} from '../../core/pipes/convert-action-pipe';
-import {CheckboxModule} from '../../shared/checkbox';
+import { BucketBrowserComponent } from './bucket-browser.component';
+import { FolderTreeComponent } from './folder-tree/folder-tree.component';
+import { MatTreeModule } from '@angular/material/tree';
+import { BucketDataService } from './bucket-data.service';
+import { BucketConfirmationDialogComponent } from './bucket-confirmation-dialog/bucket-confirmation-dialog.component';
+import { BucketTreeComponent } from './buckets-tree/bucket-tree.component';
+import { ConvertFileSizePipeModule } from '../../core/pipes/convert-file-size';
+import { LocalDatePipeModule } from '../../core/pipes/local-date-pipe';
+import { ConvertActionPipeModule } from '../../core/pipes/convert-action-pipe';
+import { CheckboxModule } from '../../shared/checkbox';
 
 @NgModule({
-    imports: [
-        CommonModule,
-        FormsModule,
-        ReactiveFormsModule,
-        ResourcesGridModule,
-        ExploratoryEnvironmentCreateModule,
-        MaterialModule,
-        MatTreeModule,
-        ConvertFileSizePipeModule,
-        LocalDatePipeModule,
-        ConvertActionPipeModule,
-        CheckboxModule
-    ],
+  imports: [
+    CommonModule,
+    FormsModule,
+    ReactiveFormsModule,
+    ResourcesGridModule,
+    ExploratoryEnvironmentCreateModule,
+    MaterialModule,
+    MatTreeModule,
+    ConvertFileSizePipeModule,
+    LocalDatePipeModule,
+    ConvertActionPipeModule,
+    CheckboxModule
+  ],
   declarations: [
     BucketBrowserComponent,
     FolderTreeComponent,
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/bucket-confirmation-dialog/bucket-confirmation-dialog.component.html b/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/bucket-confirmation-dialog/bucket-confirmation-dialog.component.html
index 3d31f7d..b9e5253 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/bucket-confirmation-dialog/bucket-confirmation-dialog.component.html
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/bucket-confirmation-dialog/bucket-confirmation-dialog.component.html
@@ -21,7 +21,7 @@
 
   <header class="dialog-header">
     <h4 class="modal-title">
-        <span>{{ data.type.toUpperCase() | convertaction}} </span>
+      <span>{{ data.type.toUpperCase() | convertaction}} </span>
     </h4>
     <button type="button" class="close" (click)="dialogRef.close()">&times;</button>
   </header>
@@ -42,11 +42,15 @@
               <div class="object">
                 <span *ngIf="object['children']"><i class="material-icons folder-icon" >folder</i></span>
                 <span *ngIf="!object['children']"><i class="material-icons folder-icon file-icon" >description</i></span>
-                <div class="ellipsis"
-                     matTooltip="{{object['item']}}"
-                     matTooltipPosition="above"
-                     matTooltipShowDelay="1000"
-                     [matTooltipClass]="'full-size-tooltip'">{{object['item']}}</div>
+                <div 
+                  class="ellipsis"
+                  matTooltip="{{object['item']}}"
+                  matTooltipPosition="above"
+                  matTooltipShowDelay="1000"
+                  [matTooltipClass]="'full-size-tooltip'"
+                >
+                  {{object['item']}}
+                </div>
               </div>
               <div  class="size">{{object['children'] ? '-' : object['object'].size | convertFileSize}}</div>
             </mat-list-item>
@@ -67,30 +71,51 @@
       <div *ngIf="data.type === 'resolve_conflicts'">
         <p>
           <span
-          class="strong upload-item-name ellipsis"
-          matTooltip="{{data.items}}"
-          matTooltipPosition="above"
-          matTooltipShowDelay="1000"
-          [matTooltipClass]="'full-size-tooltip'"
-        >{{data.items}}</span> already exists in selected folder. How would you like to resolve this conflict?</p>
+            class="strong upload-item-name ellipsis"
+            matTooltip="{{data.items}}"
+            matTooltipPosition="above"
+            matTooltipShowDelay="1000"
+            [matTooltipClass]="'full-size-tooltip'"
+          >
+            {{data.items}}
+          </span> already exists in selected folder. How would you like to resolve this conflict?
+        </p>
+
         <mat-radio-group
           aria-labelledby="upload-radio-group-label"
           class="upload-radio-group"
-          [(ngModel)]="fileAction">
-          <mat-radio-button class="upload-radio-button" *ngFor="let action of uploadActions" [value]="action">
+          [(ngModel)]="fileAction"
+        >
+          <mat-radio-button 
+            class="upload-radio-button" 
+            *ngFor="let action of uploadActions" 
+            [value]="action"
+          >
             {{action}}
           </mat-radio-button>
         </mat-radio-group>
+
         <div class="repeat-for-all" >
-          <div class="empty-checkbox" [ngClass]="{'checked': actionForAll}" (click)="toggleActionForAll();$event.stopPropagation()" >
+          <div 
+            class="empty-checkbox" 
+            [ngClass]="{'checked': actionForAll}" 
+            (click)="toggleActionForAll();$event.stopPropagation()" 
+          >
             <span class="checked-checkbox" *ngIf="actionForAll"></span>
           </div>
-          <span class="repeat-message" (click)="toggleActionForAll();$event.stopPropagation()">Repeat for all remaining conflicts</span>
+          <span 
+            class="repeat-message" 
+            (click)="toggleActionForAll();$event.stopPropagation()"
+          >
+            Repeat for all remaining conflicts
+          </span>
         </div>
       </div>
 
       <div *ngIf="data.type === 'cancel'">
-        <p class="upload-message"><span>Cancel uploading file </span> <span class="strong ellipsis upload-item-name">{{data.items.name}}.</span></p>
+        <p class="upload-message">
+          <span>Cancel uploading file </span> <span class="strong ellipsis upload-item-name">{{data.items.name}}.</span>
+        </p>
         <div class="text-center m-top-20">
           <span class="strong">Do you want to proceed?</span>
         </div>
@@ -105,15 +130,42 @@
       </div>
 
       <div class="text-center m-top-20" *ngIf="data.type === 'delete' || data.type === 'cancel' || data.type === 'upload_limitation'">
-        <button  mat-raised-button type="button" class="butt action" (click)="dialogRef.close()">No</button>
-        <button mat-raised-button type="button" class="butt butt-success action" (click)="dialogRef.close(true)">Yes</button>
+        <button  
+          mat-raised-button 
+          type="button" 
+          class="butt action" 
+          (click)="dialogRef.close()"
+        >
+          No
+        </button>
+        <button 
+          mat-raised-button 
+          type="button" 
+          class="butt butt-success action" 
+          (click)="dialogRef.close(true)"
+        >
+          Yes
+        </button>
       </div>
 
       <div class="text-center m-top-20" *ngIf="data.type === 'resolve_conflicts'">
-        <button  mat-raised-button type="button" class="butt action" (click)="dialogRef.close()">Cancel</button>
-        <button mat-raised-button type="button" class="butt butt-success action" (click)="submitResolving()">Continue</button>
+        <button  
+          mat-raised-button 
+          type="button" 
+          class="butt action" 
+          (click)="dialogRef.close()"
+        >
+          Cancel
+        </button>
+        <button 
+          mat-raised-button 
+          type="button" 
+          class="butt butt-success action" 
+          (click)="submitResolving()"
+        >
+          Continue
+        </button>
       </div>
-
     </div>
   </div>
-</div>
+</div>
\ No newline at end of file
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/bucket-confirmation-dialog/bucket-confirmation-dialog.component.scss b/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/bucket-confirmation-dialog/bucket-confirmation-dialog.component.scss
index ab9ade2..554bdc3 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/bucket-confirmation-dialog/bucket-confirmation-dialog.component.scss
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/bucket-confirmation-dialog/bucket-confirmation-dialog.component.scss
@@ -18,94 +18,107 @@
  */
 
 .confirmation-dialog {
+  color: #718ba6;
 
-  .folder-icon{
-    color: rgb(232, 232, 232);
+  .folder-icon {
     margin-right: 3px;
+    color: rgb(232, 232, 232);
     transform: translateX(-2px);
-    &.file-icon{
+
+    &.file-icon {
       transform: translateX(-4px);
       margin-right: -2px;
     }
   }
-  h3{
+
+  h3 {
     margin-bottom: 20px;
   }
-  color: #718ba6;
+
   p {
+    margin: 0 0 10px;
     font-size: 14px;
     font-weight: 400;
-    margin: 0;
-    margin-bottom: 10px;
-    &.upload-limit-message{
+
+    &.upload-limit-message {
       text-align: center;
       color: red;
       font-size: 14px;
     }
+
     &.info {
       font-weight: 500;
     }
   }
+
   .resources {
-    .mat-list-base .mat-list-item.delete-item{
+    .mat-list-base .mat-list-item.delete-item {
       height: 30px;
     }
 
     .object {
-      width: 70%;
       display: flex;
       align-items: center;
+      width: 70%;
       padding-right: 10px;
     }
 
     .size {
       width: 30%;
     }
+
     .scrolling-content.delete-list {
       max-height: 200px;
-      overflow-y: auto;
       padding-top: 11px;
+      overflow-y: auto;
     }
   }
 
   .list-header {
+    width: 100%;
     border-top: 1px solid #edf1f5;
     border-bottom: 1px solid #edf1f5;
     color: #577289;
-    width: 100%;
   }
 
-  .bottom-message{
+  .bottom-message {
     padding-top: 20px;
     text-align: center;
-    .confirm-message{
+
+    .confirm-message {
+      min-height: 18px;
+      padding-top: 20px;
       color: #ef5c4b;
       font-size: 13px;
-      min-height: 18px;
       text-align: center;
-      padding-top: 20px}
+    }
   }
-.upload-item-name{
-  max-width: 300px;
-  display: inline-flex;
-}
 
-.mat-radio-button{
-  font-family: inherit;
-  .mat-radio-ripple{
-    display: none;
+  .upload-item-name {
+    display: inline-flex;
+    max-width: 300px;
   }
-}
-  .upload-radio-group{
+
+  .mat-radio-button {
+    font-family: inherit;
+    .mat-radio-ripple {
+      display: none;
+    }
+  }
+
+  .upload-radio-group {
     display: flex;
     flex-direction: column;
+
     .upload-radio-button {
       padding: 10px 0;
 
       .mat-radio-container {
         width: 15px;
         height: 15px;
-        .mat-radio-outer-circle, .mat-radio-inner-circle  {
+
+        .mat-radio-outer-circle,
+        .mat-radio-inner-circle {
           width: 15px;
           height: 15px;
           border-color: lightgrey;
@@ -123,47 +136,53 @@
       }
     }
   }
-  .repeat-for-all{
+
+  .repeat-for-all {
     display: flex;
     margin-top: 15px;
     margin-bottom: 40px;
-    .repeat-message{
+
+    .repeat-message {
       padding-left: 5px;
       cursor: pointer;
     }
   }
+
   .empty-checkbox {
+    position: relative;
     min-width: 16px;
     width: 16px;
     height: 16px;
+    margin-top: 2px;
     border-radius: 2px;
     border: 2px solid lightgrey;
-    margin-top: 2px;
-    position: relative;
     cursor: pointer;
+
     &.checked {
       border-color: #35afd5;
       background-color: #35afd5;
     }
+
     .checked-checkbox {
+      position: absolute;
       top: 0;
       left: 4px;
       width: 5px;
       height: 10px;
       border-bottom: 2px solid white;
       border-right: 2px solid white;
-      position: absolute;
       transform: rotate(45deg);
     }
   }
 }
-.upload-message{
+
+.upload-message {
   display: flex;
   justify-content: center;
-  .upload-item-name{
-    max-width: 340px;
+
+  .upload-item-name {
     display: block;
+    max-width: 340px;
     padding-left: 4px;
   }
-}
-
+}
\ No newline at end of file
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/bucket-confirmation-dialog/bucket-confirmation-dialog.component.ts b/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/bucket-confirmation-dialog/bucket-confirmation-dialog.component.ts
index 7c8e49a..33620d0 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/bucket-confirmation-dialog/bucket-confirmation-dialog.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/bucket-confirmation-dialog/bucket-confirmation-dialog.component.ts
@@ -33,13 +33,12 @@
   uploadActions = ['Replace existing object', 'Skip uploading object'];
   fileAction: string = this.uploadActions[1];
   actionForAll: boolean = false;
+
   constructor(
     @Inject(MAT_DIALOG_DATA) public data: any,
     public dialogRef: MatDialogRef<BucketConfirmationDialogComponent>,
     public toastr: ToastrService
-  ) {
-
-  }
+  ) { }
 
   ngOnInit() {
     if (this.data.type === 'delete') {
@@ -52,7 +51,11 @@
   }
 
   submitResolving() {
-    const submitObj = {replaceObject: !this.uploadActions.indexOf(this.fileAction), forAll: this.actionForAll};
+    const submitObj = {
+      replaceObject: !this.uploadActions.indexOf(this.fileAction), 
+      forAll: this.actionForAll
+    };
+
     this.dialogRef.close(submitObj);
   }
-}
+}
\ No newline at end of file
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/bucket-data.service.ts b/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/bucket-data.service.ts
index 8a5bf48..3f47421 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/bucket-data.service.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/bucket-data.service.ts
@@ -88,8 +88,7 @@
 
   constructor(
     private bucketBrowserService: BucketBrowserService,
-  ) {
-  }
+  ) { }
 
   public refreshBucketdata(bucket, endpoint) {
     let backetData = [];
@@ -114,59 +113,59 @@
   }
 
   public buildFileTree(obj: {[key: string]: any}, level: number): TodoItemNode[] {
-      return Object.keys(obj).reduce<TodoItemNode[]>((accumulator, key) => {
-        if (key === '') {
-          return accumulator;
-        }
-        const value = obj[key];
-        const node = new TodoItemNode();
-        node.item = key;
-        if (value === '') {
-          node.children = this.buildFileTree({}, level + 1);
-          return accumulator.concat(node);
-        }
-        if (Object.keys(value).filter(v => v !== 'obj').length > 0) {
-          if (typeof value === 'object') {
-            node.object = value.obj || {'bucket': node.item, 'object': '', 'size': '', 'lastModifiedDate': ''};
-            delete value.obj;
-            node.children = this.buildFileTree(value, level + 1);
-          } else {
-            node.item = value;
-          }
-        } else {
-          node.object = value.obj;
-        }
+    return Object.keys(obj).reduce<TodoItemNode[]>((accumulator, key) => {
+      if (key === '') {
+        return accumulator;
+      }
+      const value = obj[key];
+      const node = new TodoItemNode();
+      node.item = key;
+      if (value === '') {
+        node.children = this.buildFileTree({}, level + 1);
         return accumulator.concat(node);
-      }, []);
-    }
+      }
+      if (Object.keys(value).filter(v => v !== 'obj').length > 0) {
+        if (typeof value === 'object') {
+          node.object = value.obj || {'bucket': node.item, 'object': '', 'size': '', 'lastModifiedDate': ''};
+          delete value.obj;
+          node.children = this.buildFileTree(value, level + 1);
+        } else {
+          node.item = value;
+        }
+      } else {
+        node.object = value.obj;
+      }
+      return accumulator.concat(node);
+    }, []);
+  }
 
   public insertItem(parent: TodoItemNode, name, isFile, emptyFolderObj?) {
     if (parent.children) {
-        if (isFile) {
-          parent.children.unshift(name as TodoItemNode);
+      if (isFile) {
+        parent.children.unshift(name as TodoItemNode);
+      } else {
+        if (name) {
+          console.log('parentObject', parent.object);
+          const child = {item: name, children: [], object: JSON.parse(JSON.stringify(parent.object))};
+          child.object.object = child.object.object.replace(/ا/g, '') + child.item + '/';
+          parent.children.unshift(child as TodoItemNode);
         } else {
-          if (name) {
-            console.log('parentObject', parent.object);
-            const child = {item: name, children: [], object: JSON.parse(JSON.stringify(parent.object))};
-            child.object.object = child.object.object.replace(/ا/g, '') + child.item + '/';
-            parent.children.unshift(child as TodoItemNode);
-          } else {
-            parent.children.unshift({item: '', children: [], object: {}} as TodoItemNode);
-            this.emptyFolder = emptyFolderObj;
-            this._bucketData.next(this.data);
-          }
+          parent.children.unshift({item: '', children: [], object: {}} as TodoItemNode);
+          this.emptyFolder = emptyFolderObj;
+          this._bucketData.next(this.data);
         }
       }
     }
+  }
 
   public updateItem(node: TodoItemNode, file) {
-      node.item = file;
-      this._bucketData.next(this.data);
+    node.item = file;
+    this._bucketData.next(this.data);
   }
 
   public removeItem(parent, child) {
-     parent.children.splice( parent.children.indexOf(child), 1);
-     this._bucketData.next(this.data);
+    parent.children.splice( parent.children.indexOf(child), 1);
+    this._bucketData.next(this.data);
   }
 
   public processFiles = (files, target, object) => {
@@ -179,7 +178,6 @@
       if (!pointer.obj) {
         pointer.obj = object;
       }
-
     });
   }
 
@@ -197,5 +195,4 @@
     }
     return finalData;
   }
-
 }
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/buckets-tree/bucket-tree.component.html b/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/buckets-tree/bucket-tree.component.html
index 621370c..e8f7d56 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/buckets-tree/bucket-tree.component.html
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/buckets-tree/bucket-tree.component.html
@@ -20,9 +20,11 @@
 <mat-tree [dataSource]="dataSource" [treeControl]="treeControl">
   <mat-tree-node
     *matTreeNodeDef="let node"
-    matTreeNodePadding matTreeNodePaddingIndent="17"
+    matTreeNodePadding 
+    matTreeNodePaddingIndent="17"
     (click)="openBucketData(node)"
-    [ngClass]="{'active-item': activeBacket === node}">
+    [ngClass]="{'active-item': activeBacket === node}"
+  >
     <button mat-icon-button disabled></button>
     <div
       class="ellipsis"
@@ -30,15 +32,25 @@
       matTooltipPosition="above"
       matTooltipShowDelay="1000"
       [matTooltipClass]="'full-size-tooltip'"
-    >{{node.name}}</div>
+    >
+      {{node.name}}
+    </div>
   </mat-tree-node>
-  <mat-tree-node *matTreeNodeDef="let node;when: hasChild" matTreeNodePadding matTreeNodePaddingIndent="17">
-    <button mat-icon-button matTreeNodeToggle
-            [attr.aria-label]="'toggle ' + node.name">
+
+  <mat-tree-node 
+    *matTreeNodeDef="let node;when: hasChild" 
+    matTreeNodePadding 
+    matTreeNodePaddingIndent="17"
+  >
+    <button 
+      mat-icon-button 
+      matTreeNodeToggle
+      [attr.aria-label]="'toggle ' + node.name"
+    >
       <mat-icon class="mat-icon-rtl-mirror">
         {{treeControl.isExpanded(node) ? 'expand_more' : 'chevron_right'}}
       </mat-icon>
     </button>
     <span (click)="toggleProject(node, treeControl.isExpanded(node))">{{node.name}}</span>
   </mat-tree-node>
-</mat-tree>
+</mat-tree>
\ No newline at end of file
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/buckets-tree/bucket-tree.component.scss b/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/buckets-tree/bucket-tree.component.scss
index 06ea47e..6341141 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/buckets-tree/bucket-tree.component.scss
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/buckets-tree/bucket-tree.component.scss
@@ -17,65 +17,65 @@
  * under the License.
  */
 
-.folder{
-  padding-left: 5px;
+.folder {
   max-width: 350px;
+  padding-left: 5px;
   white-space: nowrap;
   overflow: hidden;
 }
 
-.mat-tree{
-  font-family: 'Open Sans', sans-serif;
+.mat-tree {
+  font-family: "Open Sans", sans-serif;
 }
 
-.folder-icon{
+.folder-icon {
   color: rgb(232, 232, 232);
 }
 
-.folder-item-line{
+.folder-item-line {
   display: flex;
   align-items: center;
   cursor: pointer;
-
 }
 
 .active-item {
   color: #00bcd4;
-  i{
+
+  i {
     color: #00bcd4;
   }
 }
 
-.add-folder-form{
+.add-folder-form {
   display: flex;
   align-items: center;
 }
 
-.mat-tree-node:not(.input-node){
-  cursor: pointer;
-  transition: .3s;
-  overflow: unset;
+.mat-tree-node:not(.input-node) {
   min-height: auto;
-  button.mat-icon-button{
+  overflow: unset;
+  cursor: pointer;
+  transition: 0.3s;
+
+  button.mat-icon-button {
     width: 25px;
     height: 25px;
     line-height: 28px;
   }
 
-  &:hover{
+  &:hover {
     color: #00bcd4;
 
-    i{
+    i {
       color: #00bcd4;
     }
   }
 }
 
 .input-node {
-  overflow: unset;
   padding-top: 5px;
   padding-bottom: 7px;
-
+  overflow: unset;
 
   button.mat-icon-button {
     &.action-btn {
@@ -108,10 +108,4 @@
   .mat-error {
     background-color: #ffffff;
   }
-}
-
-
-
-
-
-
+}
\ No newline at end of file
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/buckets-tree/bucket-tree.component.ts b/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/buckets-tree/bucket-tree.component.ts
index e00375a..09218bb 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/buckets-tree/bucket-tree.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/buckets-tree/bucket-tree.component.ts
@@ -21,7 +21,6 @@
 import {FlatTreeControl} from '@angular/cdk/tree';
 import {MatTreeFlatDataSource, MatTreeFlattener} from '@angular/material/tree';
 
-
 interface BucketNode {
   name: string;
   endpoint?: string;
@@ -64,8 +63,7 @@
   private activeBucketName: string;
   public activeBacket: any;
 
-  constructor() {
-  }
+  constructor() {}
 
   ngOnInit() {
     this.activeBucketName = this.openedBucket || '';
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/folder-tree/folder-tree.component.html b/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/folder-tree/folder-tree.component.html
index ffa5900..f84495d 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/folder-tree/folder-tree.component.html
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/folder-tree/folder-tree.component.html
@@ -21,7 +21,8 @@
 
   <mat-tree-node
     *matTreeNodeDef="let node"
-    matTreeNodeToggle matTreeNodePadding
+    matTreeNodeToggle 
+    matTreeNodePadding
     matTreeNodePaddingIndent="17"
     [ngStyle]="{'display': 'none'}"
   >
@@ -29,11 +30,21 @@
     {{node.item}}
   </mat-tree-node>
 
-  <mat-tree-node *matTreeNodeDef="let node; when: hasNoContent" matTreeNodePadding matTreeNodePaddingIndent="17" class="input-node">
+  <mat-tree-node 
+    *matTreeNodeDef="let node; when: hasNoContent" 
+    matTreeNodePadding 
+    matTreeNodePaddingIndent="17" 
+    class="input-node"
+  >
     <form class="add-folder-form" id="folder-form">
       <mat-form-field>
         <mat-label>New folder</mat-label>
-        <input matInput #itemValue [formControl]="folderFormControl" [errorStateMatcher]="matcher">
+        <input 
+          matInput 
+          #itemValue 
+          [formControl]="folderFormControl" 
+          [errorStateMatcher]="matcher"
+        />
         <mat-error *ngIf="!folderFormControl.hasError('required') && !folderFormControl.hasError('isDuplicate')">
           The folder name can only contain Latin letters, numbers and special characters except for #, ?, /, \, %."
         </mat-error>
@@ -45,22 +56,39 @@
         </mat-error>
         <mat-hint *ngIf="cloud === 'azure'">If you do not upload any object to the folder, this folder will be removed on MS Azure</mat-hint>
       </mat-form-field>
-      <button (click)="createFolder(node, itemValue.value)"
-              [ngClass]="{'check': folderFormControl.valid && folderFormControl.dirty && !folderCreating}"
-              mat-icon-button class="btn action-btn"
-              [disabled]="!folderFormControl.valid || !folderFormControl.dirty"
-              matTooltip="Please wait! Folder is creating."
-              [matTooltipDisabled]="!folderCreating"
-              matTooltipPosition="above"
+      <button 
+        (click)="createFolder(node, itemValue.value)"
+        [ngClass]="{'check': folderFormControl.valid && folderFormControl.dirty && !folderCreating}"
+        mat-icon-button 
+        class="btn action-btn"
+        [disabled]="!folderFormControl.valid || !folderFormControl.dirty"
+        matTooltip="Please wait! Folder is creating."
+        [matTooltipDisabled]="!folderCreating"
+        matTooltipPosition="above"
       >
         <span><i class="material-icons ">check</i></span></button>
-      <button (click)="removeItem(node)" mat-icon-button class="btn close action-btn"><span ><i class="material-icons ">close</i></span></button>
+      <button 
+        (click)="removeItem(node)" 
+        mat-icon-button 
+        class="btn close action-btn"
+      >
+        <span ><i class="material-icons ">close</i></span>
+      </button>
     </form>
   </mat-tree-node>
 
-  <mat-tree-node *matTreeNodeDef="let node; when: hasChild" matTreeNodePadding matTreeNodePaddingIndent="17" [ngClass]="{'cursor-not-allow': bucketDataService.emptyFolder}">
-    <button mat-icon-button matTreeNodeToggle
-            [attr.aria-label]="'toggle ' + node.filename" [ngClass]="{'not-allowed': bucketDataService.emptyFolder}">
+  <mat-tree-node 
+    *matTreeNodeDef="let node; when: hasChild" 
+    matTreeNodePadding 
+    matTreeNodePaddingIndent="17" 
+    [ngClass]="{'cursor-not-allow': bucketDataService.emptyFolder}"
+  >
+    <button 
+      mat-icon-button 
+      matTreeNodeToggle
+      [attr.aria-label]="'toggle ' + node.filename" 
+      [ngClass]="{'not-allowed': bucketDataService.emptyFolder}"
+    >
       <mat-icon class="mat-icon-rtl-mirror" [ngClass]="{'active-item': (selectedFolder === node && !bucketDataService.emptyFolder)}">
         {{treeControl.isExpanded(node) ? 'expand_more' : 'chevron_right'}}
       </mat-icon>
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/folder-tree/folder-tree.component.scss b/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/folder-tree/folder-tree.component.scss
index 2cd5cae..f048c57 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/folder-tree/folder-tree.component.scss
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/folder-tree/folder-tree.component.scss
@@ -17,68 +17,67 @@
  * under the License.
  */
 
-.folder{
-  padding-left: 5px;
+.folder {
   max-width: 350px;
+  padding-left: 5px;
   white-space: nowrap;
   overflow: hidden;
 }
 
-.mat-tree{
-  font-family: 'Open Sans', sans-serif;
+.mat-tree {
+  font-family: "Open Sans", sans-serif;
 }
 
-.folder-icon{
+.folder-icon {
   color: rgb(232, 232, 232);
 }
 
-.folder-item-line{
+.folder-item-line {
   display: flex;
   align-items: center;
   cursor: pointer;
-
 }
 
 .active-item {
   color: #00bcd4;
-  i{
+
+  i {
     color: #00bcd4;
   }
-
-
 }
 
-.add-folder-form{
+.add-folder-form {
   display: flex;
   align-items: center;
 }
 
-.mat-tree-node:not(.input-node){
-  cursor: pointer;
-  transition: .3s;
-  overflow: unset;
+.mat-tree-node:not(.input-node) {
   min-height: auto;
-  button.mat-icon-button{
+  cursor: pointer;
+  transition: 0.3s;
+  overflow: unset;
+
+  button.mat-icon-button {
     width: 25px;
     height: 25px;
     line-height: 28px;
   }
 }
 
-.mat-tree-node:not(.input-node):not(.cursor-not-allow){
-  &:hover{
+.mat-tree-node:not(.input-node):not(.cursor-not-allow) {
+  &:hover {
     color: #00bcd4;
-    i{
+
+    i {
       color: #00bcd4;
     }
   }
 }
 
 .input-node {
-  overflow: unset;
   padding-top: 5px;
   padding-bottom: 7px;
-
+  overflow: unset;
 
   button.mat-icon-button {
     &.action-btn {
@@ -112,9 +111,3 @@
     background-color: #ffffff;
   }
 }
-
-
-
-
-
-
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/folder-tree/folder-tree.component.ts b/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/folder-tree/folder-tree.component.ts
index 900723d..5a23058 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/folder-tree/folder-tree.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/folder-tree/folder-tree.component.ts
@@ -17,16 +17,16 @@
  * under the License.
  */
 
-import {Component, Output, EventEmitter, OnDestroy, Input, OnInit} from '@angular/core';
-import {FlatTreeControl} from '@angular/cdk/tree';
-import {MatTreeFlatDataSource, MatTreeFlattener} from '@angular/material/tree';
-import {BucketBrowserService, TodoItemFlatNode, TodoItemNode} from '../../../core/services/bucket-browser.service';
-import {BucketDataService} from '../bucket-data.service';
-import {Subscription} from 'rxjs';
-import {FormControl, FormGroupDirective, NgForm, Validators} from '@angular/forms';
-import {ErrorStateMatcher} from '@angular/material/core';
-import {PATTERNS} from '../../../core/util';
-import {ToastrService} from 'ngx-toastr';
+import { Component, Output, EventEmitter, OnDestroy, Input } from '@angular/core';
+import { FlatTreeControl } from '@angular/cdk/tree';
+import { MatTreeFlatDataSource, MatTreeFlattener } from '@angular/material/tree';
+import { BucketBrowserService, TodoItemFlatNode, TodoItemNode } from '../../../core/services/bucket-browser.service';
+import { BucketDataService } from '../bucket-data.service';
+import { Subscription } from 'rxjs';
+import { FormControl, FormGroupDirective, NgForm, Validators } from '@angular/forms';
+import { ErrorStateMatcher } from '@angular/material/core';
+import { PATTERNS } from '../../../core/util';
+import { ToastrService } from 'ngx-toastr';
 
 export class MyErrorStateMatcher implements ErrorStateMatcher {
   isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean {
@@ -35,8 +35,6 @@
   }
 }
 
-
-
 @Component({
   selector: 'datalab-folder-tree',
   templateUrl: './folder-tree.component.html',
@@ -76,32 +74,35 @@
         this.dataSource.data = data;
         const subject = this.dataSource._flattenedData;
         const subjectData = subject.getValue();
-          if (this.selectedFolder) {
-            if (this.cloud !== 'azure') {
-              this.selectedFolder = subjectData.find(v => v.item === this.selectedFolder.item &&
-                v.level === this.selectedFolder.level && v.obj === this.selectedFolder.obj);
-            } else {
-              const selectedFolderPath = this.selectedFolder.obj.slice(0, this.selectedFolder.obj.lastIndexOf('/') + 1);
-              this.selectedFolder = subjectData.find(v => {
-                const objectPath = v.obj.slice(0, v.obj.lastIndexOf('/') + 1);
-                return v.item === this.selectedFolder.item &&
-                  v.level === this.selectedFolder.level && objectPath === selectedFolderPath;
-              });
-            }
+
+        if (this.selectedFolder) {
+          if (this.cloud !== 'azure') {
+            this.selectedFolder = subjectData.find(v => v.item === this.selectedFolder.item &&
+              v.level === this.selectedFolder.level && v.obj === this.selectedFolder.obj);
+          } else {
+            const selectedFolderPath = this.selectedFolder.obj.slice(0, this.selectedFolder.obj.lastIndexOf('/') + 1);
+            this.selectedFolder = subjectData.find(v => {
+              const objectPath = v.obj.slice(0, v.obj.lastIndexOf('/') + 1);
+              return v.item === this.selectedFolder.item &&
+                v.level === this.selectedFolder.level && objectPath === selectedFolderPath;
+            });
           }
-          this.expandAllParents(this.selectedFolder || subjectData[0]);
-          this.showItem(this.selectedFolder || subjectData[0]);
-          if (this.selectedFolder && !this.bucketDataService.emptyFolder) {
-            setTimeout(() => {
-              const element = document.querySelector('.folder-item-line.active-item');
-              element && element.scrollIntoView({ block: 'start', behavior: 'smooth' });
-            }, 0);
-          } else if (this.selectedFolder && this.bucketDataService.emptyFolder) {
-            setTimeout(() => {
-              const element = document.querySelector('#folder-form');
-              element && element.scrollIntoView({ block: 'end', behavior: 'smooth' });
-            }, 0);
-          }
+        }
+
+        this.expandAllParents(this.selectedFolder || subjectData[0]);
+        this.showItem(this.selectedFolder || subjectData[0]);
+
+        if (this.selectedFolder && !this.bucketDataService.emptyFolder) {
+          setTimeout(() => {
+            const element = document.querySelector('.folder-item-line.active-item');
+            element && element.scrollIntoView({ block: 'start', behavior: 'smooth' });
+          }, 0);
+        } else if (this.selectedFolder && this.bucketDataService.emptyFolder) {
+          setTimeout(() => {
+            const element = document.querySelector('#folder-form');
+            element && element.scrollIntoView({ block: 'end', behavior: 'smooth' });
+          }, 0);
+        }
       }
     }));
     this.dataSource._flattenedData.subscribe();
@@ -213,21 +214,24 @@
   }
 
 
-private addNewItem(node: TodoItemFlatNode, file, isFile) {
-  const currNode = this.flatNodeMap.get(node);
-  if (!currNode.object) {
-    currNode.object = {bucket: currNode.item, object: ''};
-  }
-  const emptyFolderObject = currNode.object;
-  if (emptyFolderObject.object.lastIndexOf('ا') !== emptyFolderObject.object.length - 1 || emptyFolderObject.object === '') {
-    emptyFolderObject.object += 'ا';
-  }
-  this.bucketDataService.insertItem(currNode!, file, isFile, emptyFolderObject);
-  this.treeControl.expand(node);
-  setTimeout(() => {
-    const element = document.querySelector('#folder-form');
-    element && element.scrollIntoView({ block: 'end', behavior: 'smooth' });
-  }, 0);
+  private addNewItem(node: TodoItemFlatNode, file, isFile) {
+    const currNode = this.flatNodeMap.get(node);
+    if (!currNode.object) {
+      currNode.object = {
+        bucket: currNode.item, 
+        object: ''
+      };
+    }
+    const emptyFolderObject = currNode.object;
+    if (emptyFolderObject.object.lastIndexOf('ا') !== emptyFolderObject.object.length - 1 || emptyFolderObject.object === '') {
+      emptyFolderObject.object += 'ا';
+    }
+    this.bucketDataService.insertItem(currNode!, file, isFile, emptyFolderObject);
+    this.treeControl.expand(node);
+    setTimeout(() => {
+      const element = document.querySelector('#folder-form');
+      element && element.scrollIntoView({ block: 'end', behavior: 'smooth' });
+    }, 0);
   }
 
   public removeItem(node: TodoItemFlatNode) {
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/upload-window.component.scss b/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/upload-window.component.scss
index e8e9a1e..03ace72 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/upload-window.component.scss
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/bucket-browser/upload-window.component.scss
@@ -17,20 +17,20 @@
  * under the License.
  */
 
-.upload-window{
+.upload-window {
+  height: 15vh;
   margin-top: 2vh;
-  border: 2px solid rgba(0,0,0,.12);
+  border: 2px solid rgba(0, 0, 0, 0.12);
   border-radius: 5px;
   background-color: white;
-  height: 15vh;
   color: black;
 
-  .upload-header{
+  .upload-header {
+    position: relative;
+    height: 30px;
     padding-left: 8px;
     background: #f6fafe;
-    height: 30px;
     line-height: 30px;
-    position: relative;
 
     .modal-title {
       font-weight: 500;
@@ -39,7 +39,7 @@
       background: #f6fafe;
     }
 
-    .close{
+    .close {
       position: absolute;
       top: 0;
       right: 0;
@@ -54,60 +54,63 @@
       cursor: pointer;
       transition: all 0.45s ease-in-out;
 
-      &:hover{
+      &:hover {
         color: #36afd5;
       }
     }
-
   }
 
-  .upload-files{
+  .upload-files {
+    width: 100%;
     padding: 5px 0;
     height: calc(100% - 30px);
     overflow: auto;
     overflow-y: overlay;
-    width: 100%;
-    .file{
-      padding: 2px;
-      display: flex;
-      font-size: 12px;
-      position: relative;
 
-      &.upload-table-header{
+    .file {
+      position: relative;
+      display: flex;
+      padding: 2px;
+      font-size: 12px;
+
+      &.upload-table-header {
         font-size: 11px;
       }
 
-      .name{
-        width: 33.3%;
-        padding-left: 5px;
+      .name {
         position: relative;
         display: flex;
+        width: 33.3%;
+        padding-left: 5px;
 
-        span{
+        span {
           position: absolute;
           max-width: calc(100% + 30px);
         }
       }
 
-      .second-block{
-        width: 66.7%;
+      .second-block {
         display: flex;
+        width: 66.7%;
         padding: 0 14px 0 17px;
-        .upload-path{
+
+        .upload-path {
+          display: flex;
           width: 60%;
           padding-left: 24px;
           padding-right: 1%;
-          display: flex;
         }
 
-        .size{
+        .size {
           width: 15%;
         }
-        .state{
-          width: 22%;
+
+        .state {
           display: flex;
           align-items: center;
-          .mat-raised-button{
+          width: 22%;
+
+          .mat-raised-button {
             width: 60px;
             padding: 5px;
             border-radius: 0;
@@ -119,24 +122,26 @@
             line-height: 8px;
           }
         }
-        .remove{
+
+        .remove {
+          position: absolute;
+          right: 20px;
           display: flex;
           align-items: center;
           width: 5%;
-          position: absolute;
-          right: 20px;
-          .close{
-            color: #577289;
-            font-size: 12px;
-            cursor: pointer;
+
+          .close {
             position: absolute;
             top: 3px;
             right: 0;
             height: 18px;
             width: 14px;
+            color: #577289;
+            font-size: 12px;
+            cursor: pointer;
             transition: all 0.45s ease-in-out;
 
-            &:hover{
+            &:hover {
               color: #f1696e;
             }
           }
@@ -146,14 +151,11 @@
   }
 }
 
-
-
-
-
 @media only screen and (max-height: 920px) {
   .bucket-wrapper {
     height: 55vh;
-    &.added-upload{
+
+    &.added-upload {
       height: 38vh;
     }
   }
@@ -162,7 +164,8 @@
 @media only screen and (max-height: 840px) {
   .bucket-wrapper {
     height: 53vh;
-    &.added-upload{
+
+    &.added-upload {
       height: 36vh;
     }
   }
@@ -171,7 +174,8 @@
 @media only screen and (max-height: 760px) {
   .bucket-wrapper {
     height: 51vh;
-    &.added-upload{
+
+    &.added-upload {
       height: 34vh;
     }
   }
@@ -180,7 +184,8 @@
 @media only screen and (max-height: 700px) {
   .bucket-wrapper {
     height: 49vh;
-    &.added-upload{
+
+    &.added-upload {
       height: 32vh;
     }
   }
@@ -189,7 +194,8 @@
 @media only screen and (max-height: 650px) {
   .bucket-wrapper {
     height: 47vh;
-    &.added-upload{
+    
+    &.added-upload {
       height: 30vh;
     }
   }
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/computational/cluster-details/cluster-details.component.html b/services/self-service/src/main/resources/webapp/src/app/resources/computational/cluster-details/cluster-details.component.html
index e353385..be41219 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/computational/cluster-details/cluster-details.component.html
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/computational/cluster-details/cluster-details.component.html
@@ -61,8 +61,7 @@
           </div>
         </div>
         <div class="row-wrap">
-          <div class="col"
-              *ngIf="DICTIONARY[PROVIDER].cloud_provider === 'gcp'; else inst">
+          <div class="col" *ngIf="DICTIONARY[PROVIDER].cloud_provider === 'gcp'; else inst">
             <p>Master instance number:</p>
           </div>
           <ng-template #inst>
@@ -71,13 +70,14 @@
             </div>
           </ng-template>
           <div class="col">
-            <span *ngIf="DICTIONARY[PROVIDER].cloud_provider === 'aws'">{{ resource.totalInstanceCount > 0 ? resource.totalInstanceCount : resource.dataengine_instance_count}}</span>
+            <span *ngIf="DICTIONARY[PROVIDER].cloud_provider === 'aws'">
+              {{ resource.totalInstanceCount > 0 ? resource.totalInstanceCount : resource.dataengine_instance_count}}
+            </span>
             <span *ngIf="DICTIONARY[PROVIDER].cloud_provider === 'azure'">{{resource.dataengine_instance_count}}</span>
             <span *ngIf="DICTIONARY[PROVIDER].cloud_provider === 'gcp'">1</span>
           </div>
         </div>
-        <div class="row-wrap"
-          *ngIf="DICTIONARY[PROVIDER].cloud_provider === 'gcp'">
+        <div class="row-wrap" *ngIf="DICTIONARY[PROVIDER].cloud_provider === 'gcp'">
           <div class="col">
             <p>Slave instance number:</p>
           </div>
@@ -123,14 +123,15 @@
         </ng-template>
         <div *ngIf="resource.status === 'running'">
           <div class="row-wrap">
-            <p class="time_info">Up time {{upTimeInHours}} hour(s) since {{resource.up_time ? (resource.up_time | longDate) : "not specified."
-              }}
+            <p class="time_info">
+              Up time {{upTimeInHours}} hour(s) since {{resource.up_time ? (resource.up_time | longDate) : "not specified."}}
             </p>
           </div>
           <div class="m-top-10">
             <p *ngFor="let item of resource.computational_url" class="ellipsis flex" (mouseleave)="hideCopyIcon()">
               <span class="strong spark-url-desc">{{ item.description }}:</span>&nbsp;
-              <a (click)="logAction(resource, environment, 'follow')"
+              <a 
+                (click)="logAction(resource, environment, 'follow')"
                  href="{{item.url}}"
                  target="_blank"
                  matTooltip="{{item.url}}"
@@ -138,11 +139,15 @@
                  (mouseover)="showCopyIcon(item.description)"
                  class="spark-url ellipsis"
                  (contextmenu)="false"
-              >{{ item.url }}</a>
+              >
+                {{ item.url }}
+              </a>
               <span
                 (click)="logAction(resource, environment, 'copy');$event.stopPropagation()"
                 *ngIf="isCopyIconVissible[item.description]"
-                [matTooltip]="isCopied ? 'Copy ' + item.description + (item.description.indexOf('url')  === -1 ? ' url' : ''): 'Copied'" matTooltipPosition="above" class="copy-icon-wrapper"
+                [matTooltip]="isCopied ? 'Copy ' + item.description + (item.description.indexOf('url')  === -1 ? ' url' : ''): 'Copied'" 
+                matTooltipPosition="above" 
+                class="copy-icon-wrapper"
               >
                 <span  class="link-icon" (click)="copyLink(item.url)" >
                   <span _ngcontent-xpv-c19="" class="material-icons" (click)="this.isCopied = false">content_copy</span>
@@ -151,53 +156,59 @@
             </p>
           </div>
         </div>
-          <div class="checkbox-group" 
-            *ngIf="resource.image === 'docker.datalab-dataengine'
-                && resource.status === 'running'
-                && environment.image !== 'docker.datalab-zeppelin'
-                && environment.image !== 'docker.datalab-superset'
-                && environment.image !== 'docker.datalab-jupyterlab'"
+        <div 
+          class="checkbox-group" 
+          *ngIf="resource.image === 'docker.datalab-dataengine'
+              && resource.status === 'running'
+              && environment.image !== 'docker.datalab-zeppelin'
+              && environment.image !== 'docker.datalab-superset'
+              && environment.image !== 'docker.datalab-jupyterlab'"
+        >
+          <label>
+            <input #configurationNode type="checkbox" (change)="selectConfiguration()"/> Cluster configurations
+          </label>
+          <div class="checkbox-group">
+            <form [formGroup]="configurationForm" novalidate>
+              <div class="config-details" [ngClass]="{ show: configuration?.nativeElement['checked'] || false }">
+                <textarea 
+                  formControlName="configuration_parameters" 
+                  placeholder="Cluster configuration template, JSON"
+                  data-gramm_editor="false"
+                ></textarea>
+                <span class="danger_color"
+                  *ngIf="!configurationForm.controls.configuration_parameters.valid 
+                      && configurationForm.controls['configuration_parameters'].dirty">
+                      Configuration parameters is not in a valid format
+                </span>
+              </div>
+            </form>
+          </div>
+        </div>
+        <div *ngIf="environment.image === 'docker.datalab-zeppelin' && resource.status === 'running'">
+          <small>Spark default configuration for Apache Zeppelin can not be changed from DataLab UI. 
+            Currently it can be done directly through Apache Zeppelin interpreter menu.
+              For more details please refer for Apache Zeppelin 
+              <a href="https://zeppelin.apache.org/docs/0.9.0/usage/interpreter/overview.html" target="_blank">official
+                  documentation</a>.
+          </small>
+        </div>
+        <div class="text-center m-top-30" *ngIf="configuration?.nativeElement['checked'] || false">
+          <button 
+            mat-raised-button type="button" 
+            (click)="dialogRef.close()" 
+            class="butt action"
           >
-            <label>
-              <input #configurationNode type="checkbox" (change)="selectConfiguration()"/> Cluster configurations
-            </label>
-            <div class="checkbox-group">
-              <form [formGroup]="configurationForm" novalidate>
-                <div class="config-details"
-                    [ngClass]="{ show: configuration?.nativeElement['checked'] || false }">
-                  <textarea 
-                    formControlName="configuration_parameters" 
-                    placeholder="Cluster configuration template, JSON"
-                    data-gramm_editor="false">
-                  </textarea>
-                  <span class="danger_color"
-                    *ngIf="!configurationForm.controls.configuration_parameters.valid 
-                        && configurationForm.controls['configuration_parameters'].dirty">
-                        Configuration parameters is not in a valid format
-                  </span>
-                </div>
-              </form>
-            </div>
-          </div>
-          <div *ngIf="environment.image === 'docker.datalab-zeppelin' && resource.status === 'running'">
-            <small>Spark default configuration for Apache Zeppelin can not be changed from DataLab UI. 
-              Currently it can be done directly through Apache Zeppelin interpreter menu.
-                For more details please refer for Apache Zeppelin 
-                <a href="https://zeppelin.apache.org/docs/0.9.0/usage/interpreter/overview.html" target="_blank">official
-                    documentation</a>.
-            </small>
-          </div>
-          <div class="text-center m-top-30" *ngIf="configuration?.nativeElement['checked'] || false">
-            <button mat-raised-button type="button" 
-                    (click)="dialogRef.close()" 
-                    class="butt action">Cancel
-            </button>
-            <button mat-raised-button type="submit" 
-                    [disabled]="!configurationForm.valid"
-                    class="butt butt-success action"
-                    [ngClass]="{'not-allowed': !configurationForm.valid}"
-                    (click)="editClusterConfiguration(configurationForm.value)">Update
-            </button>
+            Cancel
+          </button>
+          <button 
+            mat-raised-button type="submit" 
+            [disabled]="!configurationForm.valid"
+            class="butt butt-success action"
+            [ngClass]="{'not-allowed': !configurationForm.valid}"
+            (click)="editClusterConfiguration(configurationForm.value)"
+          >
+            Update
+          </button>
         </div>
       </div>
 
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/computational/cluster-details/cluster-details.component.scss b/services/self-service/src/main/resources/webapp/src/app/resources/computational/cluster-details/cluster-details.component.scss
index be579fd..1c9d19b 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/computational/cluster-details/cluster-details.component.scss
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/computational/cluster-details/cluster-details.component.scss
@@ -40,11 +40,11 @@
 }
 
 .config-details {
+  position: relative;
   height: 0;
   opacity: 0;
   visibility: hidden;
   text-align: left;
-  position: relative;
 
   &.show {
     height: 200px;
@@ -69,12 +69,12 @@
   }
 }
 
-.spark-url{
+.spark-url {
   max-width: 250px;
   overflow: hidden;
 }
 
-.copy-icon-wrapper{
+.copy-icon-wrapper {
   margin-top: -2px;
   margin-left: 5px;
 }
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/computational/cluster-details/cluster-details.component.ts b/services/self-service/src/main/resources/webapp/src/app/resources/computational/cluster-details/cluster-details.component.ts
index f5e8f45..1e6526b 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/computational/cluster-details/cluster-details.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/computational/cluster-details/cluster-details.component.ts
@@ -26,8 +26,8 @@
 import { DataengineConfigurationService } from '../../../core/services';
 import { DICTIONARY } from '../../../../dictionary/global.dictionary';
 import { CLUSTER_CONFIGURATION } from '../computational-resource-create-dialog/cluster-configuration-templates';
-import {AuditService} from '../../../core/services/audit.service';
-import {CopyPathUtils} from '../../../core/util/copyPathUtils';
+import { AuditService } from '../../../core/services/audit.service';
+import { CopyPathUtils } from '../../../core/util/copyPathUtils';
 
 @Component({
   selector: 'datalab-cluster-details',
@@ -68,21 +68,22 @@
     this.resource = resource;
     this.environment = environment;
 
-
     this.upTimeInHours = (this.resource.up_time) ? DateUtils.diffBetweenDatesInHours(this.resource.up_time) : 0;
     this.initFormModel();
 
-    if (this.resource.image === 'docker.datalab-dataengine') this.getClusterConfiguration();
+    if (this.resource.image === 'docker.datalab-dataengine') {
+      this.getClusterConfiguration();
+    }
   }
 
   public isEllipsisActive($event): void {
-    if ($event.target.offsetWidth < $event.target.scrollWidth)
+    if ($event.target.offsetWidth < $event.target.scrollWidth) {
       this.tooltip = true;
+    }
   }
 
   public selectConfiguration() {
     if (this.configuration.nativeElement.checked) {
-
       this.configurationForm.controls['configuration_parameters']
         .setValue(JSON.stringify(this.config.length ? this.config : CLUSTER_CONFIGURATION.SPARK, undefined, 2));
     } else {
@@ -93,8 +94,10 @@
   public getClusterConfiguration(): void {
     this.dataengineConfigurationService
       .getClusterConfiguration(this.environment.project, this.environment.name, this.resource.computational_name, this.PROVIDER)
-      .subscribe((result: any) => this.config = result,
-        error => this.toastr.error(error.message || 'Configuration loading failed!', 'Oops!'));
+      .subscribe(
+        (result: any) => this.config = result,
+        error => this.toastr.error(error.message || 'Configuration loading failed!', 'Oops!')
+      );
   }
 
   public editClusterConfiguration(data): void {
@@ -106,10 +109,12 @@
         this.resource.computational_name,
         this.PROVIDER
       )
-      .subscribe(result => {
-        this.dialogRef.close();
-      },
-        error => this.toastr.error(error.message || 'Edit onfiguration failed!', 'Oops!'));
+      .subscribe(
+        result => {
+          this.dialogRef.close();
+        },
+        error => this.toastr.error(error.message || 'Edit onfiguration failed!', 'Oops!')
+      );
   }
 
   private initFormModel(): void {
@@ -134,8 +139,12 @@
     };
 
     this.auditService.sendDataToAudit(
-      {resource_name: resource.computational_name, info: JSON.stringify(clusterInfo), type: 'COMPUTE'}
-      ).subscribe();
+      { 
+        resource_name: resource.computational_name, 
+        info: JSON.stringify(clusterInfo), 
+        type: 'COMPUTE'
+      }
+    ).subscribe();
   }
 
   public copyLink(url: string) {
@@ -145,6 +154,7 @@
   public showCopyIcon(element) {
     this.isCopyIconVissible[element] = true;
   }
+  
   public hideCopyIcon() {
     for (const key in this.isCopyIconVissible) {
       this.isCopyIconVissible[key] = false;
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/computational/cluster-details/index.ts b/services/self-service/src/main/resources/webapp/src/app/resources/computational/cluster-details/index.ts
index 1cc87c8..234c5d2 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/computational/cluster-details/index.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/computational/cluster-details/index.ts
@@ -23,12 +23,18 @@
 
 import { MaterialModule } from '../../../shared/material.module';
 import { DetailComputationalResourcesComponent } from './cluster-details.component';
-import {LongDatePipeModule} from '../../../core/pipes/long-date-pipe';
+import { LongDatePipeModule } from '../../../core/pipes/long-date-pipe';
 
 export * from './cluster-details.component';
 
 @NgModule({
-  imports: [CommonModule, FormsModule, ReactiveFormsModule, MaterialModule, LongDatePipeModule],
+  imports: [
+    CommonModule, 
+    FormsModule, 
+    ReactiveFormsModule, 
+    MaterialModule, 
+    LongDatePipeModule
+  ],
   declarations: [DetailComputationalResourcesComponent],
   entryComponents: [DetailComputationalResourcesComponent],
   exports: [DetailComputationalResourcesComponent],
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/computational/computational-resource-create-dialog/computational-resource-create-dialog.component.html b/services/self-service/src/main/resources/webapp/src/app/resources/computational/computational-resource-create-dialog/computational-resource-create-dialog.component.html
index 7b339f7..5e9095c 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/computational/computational-resource-create-dialog/computational-resource-create-dialog.component.html
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/computational/computational-resource-create-dialog/computational-resource-create-dialog.component.html
@@ -25,80 +25,102 @@
   <div class="dialog-content selection">
     <div class="content-box mat-reset">
       <form [formGroup]="resourceForm" *ngIf="clusterTypes.length && resourceForm; else placeholder">
-
         <div class="form-wrapper">
           <div class="col">
-              <div class="control-group" *ngIf="PROVIDER !== 'azure'" [hidden]="clusterTypes.length === 1">
-                  <label class="label">Select cluster type</label>
-                  <div class="control selector-wrapper">
-                    <mat-form-field>
-                      <mat-select formControlName="template_name" 
-                                  disableOptionCentering
-                                  panelClass="scrolling"
-                                  placeholder="Select cluster type">
-                        <mat-option *ngFor="let type of clusterTypes" [value]="type.template_name"
-                                    (click)="selectImage(type)">{{ type.template_name }}
-                        </mat-option>
-                        <mat-option *ngIf="!clusterTypes.length" class="multiple-select ml-10" disabled>Clusters types list
-                          is empty</mat-option>
-                      </mat-select>
-                      <button class="caret">
-                        <i class="material-icons">keyboard_arrow_down</i>
-                      </button>
-                    </mat-form-field>
-                  </div>
-              </div>
-
-              <div class="control-group alias-name" *ngIf="selectedImage?.image">
-                <label class="label">Cluster alias</label>
-                <div class="control">
-                  <input
-                    [class.danger_field]="!resourceForm?.controls['cluster_alias_name'].valid
-                          && resourceForm?.controls['cluster_alias_name'].dirty 
-                          && resourceForm?.controls['cluster_alias_name'].hasError('duplication')"
-                    type="text" class="form-control" placeholder="Enter cluster alias"
-                    formControlName="cluster_alias_name" />
-                  <span class="error" *ngIf="resourceForm?.controls['cluster_alias_name'].hasError('user-duplication')">You have cluster with this name in current project.</span>
-                  <span class="error" *ngIf="resourceForm?.controls['cluster_alias_name'].hasError('other-user-duplication')">Other user has cluster with this name in current project.</span>
-                  <span class="error" *ngIf="resourceForm?.controls['cluster_alias_name'].hasError('maxlength') &&
-                  !resourceForm?.controls['cluster_alias_name'].hasError('pattern')"
+            <div class="control-group" *ngIf="PROVIDER !== 'azure'" [hidden]="clusterTypes.length === 1">
+              <label class="label">Select cluster type</label>
+              <div class="control selector-wrapper">
+                <mat-form-field>
+                  <mat-select 
+                    formControlName="template_name" 
+                    disableOptionCentering
+                    panelClass="scrolling"
+                    placeholder="Select cluster type"
                   >
-                    Cluster name cannot be longer than {{maxClusterNameLength}} characters.
-                  </span>
-                  <span class="error" *ngIf="resourceForm?.controls['cluster_alias_name'].hasError('pattern')">
-                    Cluster name can only contain letters, numbers, hyphens and '_' but can not end with special
-                    characters.
-                  </span>
-                </div>
+                    <mat-option 
+                      *ngFor="let type of clusterTypes" 
+                      [value]="type.template_name"
+                      (click)="selectImage(type)"
+                    >
+                      {{ type.template_name }}
+                    </mat-option>
+                    <mat-option *ngIf="!clusterTypes.length" class="multiple-select ml-10" disabled>
+                      Clusters types list is empty
+                    </mat-option>
+                  </mat-select>
+                  <button class="caret">
+                    <i class="material-icons">keyboard_arrow_down</i>
+                  </button>
+                </mat-form-field>
               </div>
+            </div>
 
-              <div class="control-group" *ngIf="selectedImage?.image">
-                <label class="label">Master instance size</label>
-                <div class="control selector-wrapper">
-                  <mat-form-field>
-                    <mat-label>Select instance size</mat-label>
-                    <mat-select panelClass="scrolling" formControlName="shape_master" disableOptionCentering>
-                      <mat-optgroup *ngFor="let item of (selectedImage.computation_resources_shapes | keys)"
-                        [label]="item.key | underscoreless">
-                        <mat-option *ngFor="let list_item of item.value" [value]="list_item.Type" (click)="clearGpuType('master')">
-                          <strong class="highlight icon-label">{{ list_item.Size }}</strong> {{ list_item.Type }}
-                        </mat-option>
-                      </mat-optgroup>
-                    </mat-select>
-                    <button class="caret">
-                      <i class="material-icons">keyboard_arrow_down</i>
-                    </button>
-                  </mat-form-field>
-                </div>
+            <div class="control-group alias-name" *ngIf="selectedImage?.image">
+              <label class="label">Cluster alias</label>
+              <div class="control">
+                <input
+                  [class.danger_field]="!resourceForm?.controls['cluster_alias_name'].valid
+                        && resourceForm?.controls['cluster_alias_name'].dirty 
+                        && resourceForm?.controls['cluster_alias_name'].hasError('duplication')"
+                  type="text" 
+                  class="form-control" 
+                  placeholder="Enter cluster alias"
+                  formControlName="cluster_alias_name" 
+                />
+                <span class="error" *ngIf="resourceForm?.controls['cluster_alias_name'].hasError('user-duplication')">
+                  You have cluster with this name in current project.
+                </span>
+                <span class="error" *ngIf="resourceForm?.controls['cluster_alias_name'].hasError('other-user-duplication')">
+                  Other user has cluster with this name in current project.
+                </span>
+                <span 
+                  class="error" 
+                  *ngIf="resourceForm?.controls['cluster_alias_name'].hasError('maxlength') 
+                    && !resourceForm?.controls['cluster_alias_name'].hasError('pattern')"
+                >
+                  Cluster name cannot be longer than {{maxClusterNameLength}} characters.
+                </span>
+                <span class="error" *ngIf="resourceForm?.controls['cluster_alias_name'].hasError('pattern')">
+                  Cluster name can only contain letters, numbers, hyphens and '_' but can not end with special
+                  characters.
+                </span>
               </div>
+            </div>
+
+            <div class="control-group" *ngIf="selectedImage?.image">
+              <label class="label">Master instance size</label>
+              <div class="control selector-wrapper">
+                <mat-form-field>
+                  <mat-label>Select instance size</mat-label>
+                  <mat-select panelClass="scrolling" formControlName="shape_master" disableOptionCentering>
+                    <mat-optgroup 
+                      *ngFor="let item of (selectedImage.computation_resources_shapes | keys)"
+                      [label]="item.key | underscoreless"
+                    >
+                      <mat-option *ngFor="let list_item of item.value" [value]="list_item.Type" (click)="clearGpuType('master')">
+                        <strong class="highlight icon-label">{{ list_item.Size }}</strong> {{ list_item.Type }}
+                      </mat-option>
+                    </mat-optgroup>
+                  </mat-select>
+                  <button class="caret">
+                    <i class="material-icons">keyboard_arrow_down</i>
+                  </button>
+                </mat-form-field>
+              </div>
+            </div>
           </div>
 
           <div class="col">
             <div class="control-group" *ngIf="selectedImage?.image">
               <label class="label">Total instance number</label>
               <div class="control">
-                <input type="number" class="form-control" min="{{minInstanceNumber}}" max="{{maxInstanceNumber}}"
-                  formControlName="instance_number" (keypress)="CheckUtils.isNumberKey($event)" />
+                <input 
+                  type="number" 
+                  class="form-control" 
+                  min="{{minInstanceNumber}}" 
+                  max="{{maxInstanceNumber}}"
+                  formControlName="instance_number" (keypress)="CheckUtils.isNumberKey($event)" 
+                />
                 <span class="error" *ngIf="!resourceForm?.controls.instance_number.valid">
                   <span>Only integer values greater than or equal to {{ minInstanceNumber }} and less than
                     {{ maxInstanceNumber }} are allowed.</span>
@@ -114,8 +136,9 @@
                   <mat-select panelClass="scrolling" formControlName="version" disableOptionCentering>
                     <mat-option *ngFor="let template of selectedImage.templates" [value]="template.version">
                       {{ template.version }}</mat-option>
-                    <mat-option *ngIf="!selectedImage.templates" class="multiple-select ml-10" disabled>Templates list
-                      is empty</mat-option>
+                    <mat-option *ngIf="!selectedImage.templates" class="multiple-select ml-10" disabled>
+                      Templates list is empty
+                    </mat-option>
                   </mat-select>
                   <button class="caret">
                     <i class="material-icons">keyboard_arrow_down</i>
@@ -124,31 +147,35 @@
               </div>
             </div>
 
-              <div class="control-group" *ngIf="selectedImage?.image">
-                <label class="label">Slave instance size</label>
-                <div class="control selector-wrapper">
-                  <mat-form-field>
-                    <mat-label>Select instance size</mat-label>
-                      <mat-select panelClass="scrolling" formControlName="shape_slave" disableOptionCentering>
-                        <mat-optgroup *ngFor="let item of (selectedImage.computation_resources_shapes | keys)"
-                                        [label]="item.key | underscoreless">
-                          <mat-option *ngFor="let list_item of item.value" [value]="list_item.Type" (click)="clearGpuType('slave')">
-                              <strong class="highlight icon-label">{{ list_item.Size }}</strong> {{
-                              list_item.Type }}
-                          </mat-option>
-                        </mat-optgroup>
-                      </mat-select>
-                      <button class="caret">
-                        <i class="material-icons">keyboard_arrow_down</i>
-                      </button>
-                  </mat-form-field>
-                </div>
+            <div class="control-group" *ngIf="selectedImage?.image">
+              <label class="label">Slave instance size</label>
+              <div class="control selector-wrapper">
+                <mat-form-field>
+                  <mat-label>Select instance size</mat-label>
+                  <mat-select panelClass="scrolling" formControlName="shape_slave" disableOptionCentering>
+                    <mat-optgroup 
+                      *ngFor="let item of (selectedImage.computation_resources_shapes | keys)"
+                      [label]="item.key | underscoreless"
+                    >
+                      <mat-option 
+                        *ngFor="let list_item of item.value" 
+                        [value]="list_item.Type" 
+                        (click)="clearGpuType('slave')"
+                      >
+                        <strong class="highlight icon-label">{{ list_item.Size }}</strong> {{
+                          list_item.Type }}
+                      </mat-option>
+                    </mat-optgroup>
+                  </mat-select>
+                  <button class="caret">
+                    <i class="material-icons">keyboard_arrow_down</i>
+                  </button>
+                </mat-form-field>
               </div>
-
+            </div>
           </div>
         </div>
-        <div class="checkbox-group control-group"
-             *ngIf="PROVIDER === 'gcp'">
+        <div class="checkbox-group control-group" *ngIf="PROVIDER === 'gcp'">
           <div class="d-flex cursor-pointer label m-bott-20" (click)="addAdditionalParams('gpu')">
             <div class="empty-checkbox ml-10" [ngClass]="{'checked': isSelected.gpu}">
               <span class="checked-checkbox" *ngIf="isSelected.gpu"></span>
@@ -159,19 +186,21 @@
             <div class="col">
               <div class="control-group">
                 <label class="label">Master GPU type</label>
-                <div class="control selector-wrapper"
-                     [ngClass]="{ 'not-active' : !resourceForm.controls['shape_master'].value}"
-                     [matTooltip]="'Please, select master instance size.'"
-                     [matTooltipPosition]="'above'"
-                     [matTooltipClass]="'full-size-tooltip'"
-                     [matTooltipDisabled]="!!resourceForm.controls['shape_master'].value.length"
+                <div 
+                  class="control selector-wrapper"
+                  [ngClass]="{ 'not-active' : !resourceForm.controls['shape_master'].value}"
+                  [matTooltip]="'Please, select master instance size.'"
+                  [matTooltipPosition]="'above'"
+                  [matTooltipClass]="'full-size-tooltip'"
+                  [matTooltipDisabled]="!!resourceForm.controls['shape_master'].value.length"
                 >
                   <mat-form-field>
-                    <mat-select formControlName="master_GPU_type" disableOptionCentering
-                                placeholder="Select master GPU type"
-                                [disabled]="!resourceForm.controls['shape_master'].value">
-                      <mat-option *ngFor="let type of sortGpuTypes(selectedImage.computationGPU); index as i"
-                                  [value]="type" >
+                    <mat-select 
+                      formControlName="master_GPU_type" disableOptionCentering
+                      placeholder="Select master GPU type"
+                      [disabled]="!resourceForm.controls['shape_master'].value"
+                    >
+                      <mat-option *ngFor="let type of sortGpuTypes(selectedImage.computationGPU); index as i" [value]="type">
                         <strong class="highlight icon-label">{{ addSizeToGpuType(i) }}</strong> {{ type }}
                       </mat-option>
                       <mat-option *ngIf="!selectedImage.computationGPU?.length" class="multiple-select ml-10" disabled>
@@ -186,12 +215,13 @@
               </div>
               <div class="control-group">
                 <label class="label">Master GPU сount</label>
-                <div class="control selector-wrapper"
-                     [ngClass]="{'not-active': !resourceForm.controls['master_GPU_type'].value}"
-                     [matTooltip]="'Please, select master GPU type.'"
-                     [matTooltipPosition]="'above'"
-                     [matTooltipClass]="'full-size-tooltip'"
-                     [matTooltipDisabled]="!!resourceForm.controls['master_GPU_type'].value"
+                <div 
+                  class="control selector-wrapper"
+                  [ngClass]="{'not-active': !resourceForm.controls['master_GPU_type'].value}"
+                  [matTooltip]="'Please, select master GPU type.'"
+                  [matTooltipPosition]="'above'"
+                  [matTooltipClass]="'full-size-tooltip'"
+                  [matTooltipDisabled]="!!resourceForm.controls['master_GPU_type'].value"
                 >
                   <mat-form-field>
                     <mat-label>Select master GPU count</mat-label>
@@ -212,12 +242,13 @@
             <div class="col">
               <div class="control-group">
                 <label class="label">Slave GPU type</label>
-                <div class="control selector-wrapper"
-                     [ngClass]="{ 'not-active': !resourceForm.controls['shape_slave'].value}"
-                     [matTooltip]="'Please, select slave instance size.'"
-                     [matTooltipPosition]="'above'"
-                     [matTooltipClass]="'full-size-tooltip'"
-                     [matTooltipDisabled]="!!resourceForm.controls['shape_slave'].value.length"
+                <div 
+                  class="control selector-wrapper"
+                  [ngClass]="{ 'not-active': !resourceForm.controls['shape_slave'].value}"
+                  [matTooltip]="'Please, select slave instance size.'"
+                  [matTooltipPosition]="'above'"
+                  [matTooltipClass]="'full-size-tooltip'"
+                  [matTooltipDisabled]="!!resourceForm.controls['shape_slave'].value.length"
                 >
                   <!--                  <span class="form-field-wrapper"  >-->
                   <mat-form-field>
@@ -240,12 +271,13 @@
 
               <div class="control-group">
                 <label class="label">Slave GPU сount</label>
-                <div class="control selector-wrapper"
-                     [ngClass]="{'not-active': !resourceForm.controls['slave_GPU_type'].value}"
-                     [matTooltip]="'Please, select slave GPU type.'"
-                     [matTooltipPosition]="'above'"
-                     [matTooltipClass]="'full-size-tooltip'"
-                     [matTooltipDisabled]="!!resourceForm.controls['slave_GPU_type'].value"
+                <div 
+                  class="control selector-wrapper"
+                  [ngClass]="{'not-active': !resourceForm.controls['slave_GPU_type'].value}"
+                  [matTooltip]="'Please, select slave GPU type.'"
+                  [matTooltipPosition]="'above'"
+                  [matTooltipClass]="'full-size-tooltip'"
+                  [matTooltipDisabled]="!!resourceForm.controls['slave_GPU_type'].value"
                 >
                   <mat-form-field>
                     <mat-label>Select slave GPU сount</mat-label>
@@ -266,20 +298,29 @@
             </div>
           </div>
         </div>
-        <div class="preemptible checkbox-group control-group"
-              *ngIf="PROVIDER === 'gcp' && selectedImage?.image === 'docker.datalab-dataengine-service'">
+        <div 
+          class="preemptible checkbox-group control-group"
+          *ngIf="PROVIDER === 'gcp' && selectedImage?.image === 'docker.datalab-dataengine-service'"
+        >
           <div class="d-flex cursor-pointer label" (click)="addAdditionalParams('preemptible')">
             <div class="empty-checkbox ml-10" [ngClass]="{'checked': isSelected.preemptible}" (click)="selectPreemptibleNodes(isSelected.preemptible)">
               <span class="checked-checkbox" *ngIf="isSelected.preemptible"></span>
             </div>
             <span class="pl-5">Preemptible node</span>
           </div>
-          <div *ngIf="isSelected.preemptible" class="preemptible-details control"
-                [ngClass]="{ show: isSelected.preemptible}">
-            <input type="text" class="form-control" formControlName="preemptible_instance_number"
-                    (keypress)="CheckUtils.isNumberKey($event)"
-                    (keydown.arrowup)="preemptibleCounter($event, 'increment')"
-                    (keydown.arrowdown)="preemptibleCounter($event, 'decrement')"/>
+          <div 
+            *ngIf="isSelected.preemptible" 
+            class="preemptible-details control"
+            [ngClass]="{ show: isSelected.preemptible}"
+          >
+            <input 
+              type="text" 
+              class="form-control" 
+              formControlName="preemptible_instance_number"
+              (keypress)="CheckUtils.isNumberKey($event)"
+              (keydown.arrowup)="preemptibleCounter($event, 'increment')"
+              (keydown.arrowdown)="preemptibleCounter($event, 'decrement')"
+            />
             <span class="error error-bottom" *ngIf="!resourceForm?.controls.preemptible_instance_number.valid">
               <span *ngIf="minPreemptibleInstanceNumber !== maxPreemptibleInstanceNumber; else equal">
                 Only integer values greater than or equal to {{ minPreemptibleInstanceNumber }} and less than
@@ -297,31 +338,45 @@
             </div>
             <span class="pl-5">Spot instance</span><span [hidden]="!isSelected.spotInstances">&nbsp;bid, %</span>
           </div>
-          <div class="control spot-details" [ngClass]="{ show: isSelected.spotInstances }"
-            *ngIf="isSelected.spotInstances">
-            <input type="number" class="form-control" step="5" min="{{minSpotPrice}}" max="{{maxSpotPrice}}"
-              formControlName="instance_price" (keypress)="CheckUtils.isNumberKey($event)">
+          <div 
+            class="control spot-details" 
+            [ngClass]="{ show: isSelected.spotInstances }"
+            *ngIf="isSelected.spotInstances"
+          >
+            <input 
+              type="number" 
+              class="form-control" 
+              step="5" 
+              min="{{minSpotPrice}}" 
+              max="{{maxSpotPrice}}"
+              formControlName="instance_price" 
+              (keypress)="CheckUtils.isNumberKey($event)"
+            />
             <span class="error error-bottom" *ngIf="!resourceForm?.controls.instance_price.valid">
               Only integer values greater than or equal to {{minSpotPrice}} and less than {{maxSpotPrice}} are allowed.
             </span>
           </div>
           <span class="info ml-10" *ngIf="isSelected.spotInstances">When the current Spot price
             rises above your bid price, the Spot instance is reclaimed by AWS so that it can be given to another
-            customer. Make sure to backup your data on periodic basis.</span>
+            customer. Make sure to backup your data on periodic basis.
+          </span>
         </div>
-        <div class="checkbox-group control-group m-top-10"
-              [hidden]="PROVIDER === 'gcp' && selectedImage?.image === 'docker.datalab-dataengine-service'"
-              *ngIf="notebook_instance?.image !== 'docker.datalab-zeppelin'">
+        <div 
+          class="checkbox-group control-group m-top-10"
+          [hidden]="PROVIDER === 'gcp' && selectedImage?.image === 'docker.datalab-dataengine-service'"
+          *ngIf="notebook_instance?.image !== 'docker.datalab-zeppelin'"
+        >
           <div class="d-flex cursor-pointer label" (click)="addAdditionalParams('configuration')">
             <div class="empty-checkbox ml-10" [ngClass]="{'checked': isSelected.configuration}">
               <span class="checked-checkbox" *ngIf="isSelected.configuration"></span>
             </div>
             <span class="pl-5">Cluster configurations</span>
           </div>
-          <div class="config-link" 
-              *ngIf="(isSelected.configuration) 
-                && selectedImage?.image === 'docker.datalab-dataengine-service'
-                && PROVIDER === 'aws'"
+          <div 
+            class="config-link" 
+            *ngIf="(isSelected.configuration) 
+              && selectedImage?.image === 'docker.datalab-dataengine-service'
+              && PROVIDER === 'aws'"
           >
             To view example JSON of configurations refer for <a
                 href="https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-configure-apps.html"
@@ -331,14 +386,17 @@
         </div>
         <div class="checkbox-group ml-10">
           <div class="config-details" [ngClass]="{ show: isSelected.configuration }">
-            <textarea formControlName="configuration_parameters" 
-                      placeholder="Cluster configuration template, JSON"
-                      data-gramm_editor="false">
+            <textarea 
+              formControlName="configuration_parameters" 
+              placeholder="Cluster configuration template, JSON"
+              data-gramm_editor="false">
             </textarea>
-            <span class="error"
-                  *ngIf="!resourceForm?.controls.configuration_parameters.valid 
-                  && resourceForm?.controls['configuration_parameters'].dirty">
-                  Configuration parameters is not in a valid format.
+            <span 
+              class="error"
+              *ngIf="!resourceForm?.controls.configuration_parameters.valid 
+                && resourceForm?.controls['configuration_parameters'].dirty"
+            >
+              Configuration parameters is not in a valid format.
             </span>
           </div>
         </div>
@@ -352,29 +410,35 @@
           </small>
         </div>
         <div class="text-center m-top-30">
-          <button mat-raised-button 
-                  type="button" 
-                  (click)="dialogRef.close()" 
-                  class="butt action">Cancel
+          <button 
+            mat-raised-button 
+            type="button" 
+            (click)="dialogRef.close()" 
+            class="butt action"
+          >
+            Cancel
           </button>
-          <button mat-raised-button 
-                  type="button" 
-                  [disabled]="!resourceForm?.valid 
-                    || (!resourceForm.value.shape_slave) 
-                    || (selectedImage?.image === 'docker.datalab-dataengine-service' && !resourceForm.value.version)"
-                  (click)="createComputationalResource(resourceForm.value)" 
-                  class="butt butt-success action"
-                  [ngClass]="{'not-allowed': !resourceForm?.valid 
-                    || (selectedImage?.image === 'docker.datalab-dataengine-service' && !resourceForm.value.shape_slave) 
-                    || (selectedImage?.image === 'docker.datalab-dataengine-service' && !resourceForm.value.version) }">
-                  Create
+          <button 
+            mat-raised-button 
+            type="button" 
+            [disabled]="!resourceForm?.valid 
+              || (!resourceForm.value.shape_slave) 
+              || (selectedImage?.image === 'docker.datalab-dataengine-service' && !resourceForm.value.version)"
+            (click)="createComputationalResource(resourceForm.value)" 
+            class="butt butt-success action"
+            [ngClass]="{'not-allowed': !resourceForm?.valid 
+              || (selectedImage?.image === 'docker.datalab-dataengine-service' && !resourceForm.value.shape_slave) 
+              || (selectedImage?.image === 'docker.datalab-dataengine-service' && !resourceForm.value.version) }"
+          >
+            Create
           </button>
         </div>
       </form>
     </div>
     <ng-template #placeholder>
       <div *ngIf="!loading && !clusterTypes?.length" class="info message">
-        Compute creations are not available. Please, check your permissions.</div>
+        Compute creations are not available. Please, check your permissions.
+      </div>
       <div *ngIf="loading" class="info message">
         Compute data is processing
         <mat-progress-bar mode="indeterminate"></mat-progress-bar>
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/computational/computational-resource-create-dialog/computational-resource-create-dialog.component.scss b/services/self-service/src/main/resources/webapp/src/app/resources/computational/computational-resource-create-dialog/computational-resource-create-dialog.component.scss
index c849fc8..e2b8405 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/computational/computational-resource-create-dialog/computational-resource-create-dialog.component.scss
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/computational/computational-resource-create-dialog/computational-resource-create-dialog.component.scss
@@ -21,12 +21,15 @@
   display: flex;
   .col {
     width: 50%;
+
     .control-group {
       position: relative;
+
       .label {
         width: 40%;
         padding-left: 10px;
       }
+
       .control {
         width: 60%;
       }
@@ -34,19 +37,22 @@
     span {
       &.error {
         position: absolute;
-        padding-left: 10px;
         right: 0;
         top: 36px;
+        padding-left: 10px;
       }
     }
+
     .alias-name {
       .danger-color {
         right: auto;
       }
     }
   }
+
   &.compress {
     flex-direction: column;
+
     .col {
       width: 100%;
     }
@@ -54,12 +60,14 @@
 }
 .checkbox-group {
   text-align: left;
+
   input[type="checkbox"] {
-    vertical-align: middle;
     margin-left: 10px;
     margin-right: 5px;
     margin-bottom: 4px;
+    vertical-align: middle;
   }
+
   .spot-details,
   .preemptible-details,
   .config-details {
@@ -74,21 +82,28 @@
       opacity: 1;
     }
   }
+
   &.preemptible {
     height: 50px;
+
     .label {
       height: 36px;
       padding-bottom: 14px;
     }
+
     .control {
       position: relative;
     }
   }
+
   .align {
     margin-left: 25px;
   }
-  .spot-details, .preemptible-details {
+
+  .spot-details,
+  .preemptible-details {
     position: relative;
+
     .error {
       bottom: 0;
     }
@@ -98,15 +113,17 @@
       text-align: right;
     }
   }
+
   .config-details {
     &.show {
+      position: relative;
       height: 240px;
       padding-top: 10px;
       text-align: right;
-      position: relative;
+
       textarea {
-        background: #f8f8f8 !important;
         height: 100%;
+        background: #f8f8f8 !important;
         resize: none;
         font-size: 14px;
         line-height: 1.5;
@@ -114,12 +131,14 @@
       }
     }
   }
+
   & > label {
+    padding-bottom: 10px;
     font-size: 15px;
     font-weight: 600;
-    padding-bottom: 10px;
     cursor: pointer;
   }
+
   span {
     &.error {
       position: absolute;
@@ -127,16 +146,19 @@
       right: 0;
     }
   }
+
   &.control-group {
     padding: 0;
+
     span.info {
-      color: #35afd5;
-      font-size: 13px;
-      text-align: justify;
       display: inline-block;
       padding-top: 5px;
       padding-bottom: 10px;
+      color: #35afd5;
+      font-size: 13px;
+      text-align: justify;
     }
+
     span {
       &.error {
         position: absolute;
@@ -144,13 +166,16 @@
         right: 0;
       }
     }
+    
     .label {
       width: 20%;
     }
+
     .control {
       width: 80%;
     }
   }
+
   .config-link {
     font-size: 13px;
     padding-top: 5px;
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/computational/computational-resource-create-dialog/computational-resource-create-dialog.component.ts b/services/self-service/src/main/resources/webapp/src/app/resources/computational/computational-resource-create-dialog/computational-resource-create-dialog.component.ts
index 714eb92..6fd9991 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/computational/computational-resource-create-dialog/computational-resource-create-dialog.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/computational/computational-resource-create-dialog/computational-resource-create-dialog.component.ts
@@ -24,7 +24,7 @@
 
 import { ComputationalResourceModel } from './computational-resource-create.model';
 import { UserResourceService } from '../../../core/services';
-import {HTTP_STATUS_CODES, PATTERNS, CheckUtils, SortUtils, HelpUtils} from '../../../core/util';
+import { HTTP_STATUS_CODES, PATTERNS, CheckUtils, SortUtils, HelpUtils } from '../../../core/util';
 
 import { DICTIONARY } from '../../../../dictionary/global.dictionary';
 import { CLUSTER_CONFIGURATION } from './cluster-configuration-templates';
@@ -91,8 +91,9 @@
     this.filterShapes();
     this.getComputationalResourceLimits();
 
-    if ($event.templates && $event.templates.length)
+    if ($event.templates && $event.templates.length) {
       this.resourceForm.controls['version'].setValue($event.templates[0].version);
+    }
   }
 
   public selectSpotInstances(): void {
@@ -131,8 +132,9 @@
   }
 
   public isAvailableSpots(): boolean {
-    if (this.PROVIDER === 'aws' && this.selectedImage.image === 'docker.datalab-dataengine-service')
+    if (this.PROVIDER === 'aws' && this.selectedImage.image === 'docker.datalab-dataengine-service') {
       return !!Object.keys(this.filterAvailableSpots()).length;
+    }
 
     return false;
   }
@@ -140,9 +142,12 @@
   public createComputationalResource(data) {
     this.model.createComputationalResource(data, this.selectedImage, this.notebook_instance,
       this.spotInstance, this.PROVIDER.toLowerCase(), this.isSelected.gpu)
-      .subscribe((response: any) => {
-        if (response.status === HTTP_STATUS_CODES.OK) this.dialogRef.close(true);
-      }, error => this.toastr.error(error.message, 'Oops!'));
+      .subscribe(
+        (response: any) => {
+          if (response.status === HTTP_STATUS_CODES.OK) this.dialogRef.close(true);
+        }, 
+        error => this.toastr.error(error.message, 'Oops!')
+      );
   }
 
   private initFormModel(): void {
@@ -202,22 +207,24 @@
   //  Validation
 
   private validInstanceNumberRange(control) {
-    if (control && control.value)
+    if (control && control.value) {
       if (this.PROVIDER === 'gcp' && this.selectedImage.image === 'docker.datalab-dataengine-service') {
         this.validPreemptibleNumberRange();
         return control.value >= this.minInstanceNumber && control.value <= this.maxInstanceNumber ? null : { valid: false };
       } else {
         return control.value >= this.minInstanceNumber && control.value <= this.maxInstanceNumber ? null : { valid: false };
       }
+    }
   }
 
   private validPreemptibleRange(control) {
-    if (this.isSelected.preemptible)
+    if (this.isSelected.preemptible) {
       return this.isSelected.preemptible
         ? (control.value !== null
           && control.value >= this.minPreemptibleInstanceNumber
           && control.value <= this.maxPreemptibleInstanceNumber ? null : { valid: false })
         : control.value;
+    }
   }
 
   private validPreemptibleNumberRange() {
@@ -233,17 +240,19 @@
   }
 
   private validInstanceSpotRange(control) {
-    if (this.isSelected.spotInstances)
+    if (this.isSelected.spotInstances) {
       return this.isSelected.spotInstances
         ? (control.value >= this.minSpotPrice && control.value <= this.maxSpotPrice ? null : { valid: false })
         : control.value;
+    }
   }
 
   private validConfiguration(control) {
-    if (this.isSelected.configuration)
-      return this.isSelected.configuration ?
-        (control.value && control.value !== null && CheckUtils.isJSON(control.value) ? null : { valid: false })
+    if (this.isSelected.configuration) {
+      return this.isSelected.configuration 
+        ? (control.value && control.value !== null && CheckUtils.isJSON(control.value) ? null : { valid: false })
         : null;
+    }
   }
 
   private checkDuplication(control) {
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/computational/computational-resources-list/computational-resources-list.component.html b/services/self-service/src/main/resources/webapp/src/app/resources/computational/computational-resources-list/computational-resources-list.component.html
index dec0ebd..b1965fd 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/computational/computational-resources-list/computational-resources-list.component.html
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/computational/computational-resources-list/computational-resources-list.component.html
@@ -18,7 +18,6 @@
   -->
 
 <div class="source">
-
   <div *ngIf="!resources?.length">
     <span *ngIf="!resources.length" class="no-details">no details</span>
   </div>
@@ -32,25 +31,44 @@
       <span ngClass="{{resource.status.toLowerCase() || ''}}" class="resource-status">{{resource.status}}</span>
 
       <div class="resource-actions">
-        <a class="schedule" [ngClass]="{'active': resource.scheduler_data,
-              'not-allowed': environment.status !== 'running' && environment.status !== 'stopped'
-              || resource.status !== 'running' && resource.status !== 'stopped' }">
+        <a 
+          class="schedule" 
+          [ngClass]="{
+            'active': resource.scheduler_data,
+            'not-allowed': environment.status !== 'running' && environment.status !== 'stopped'
+              || resource.status !== 'running' && resource.status !== 'stopped' }"
+        >
           <i class="material-icons" (click)="openScheduleDialog(resource)">schedule</i>
         </a>
 
-        <a class="start-stop-action"
-           *ngIf="resource.image === 'docker.datalab-dataengine' && environment.status === 'running'">
-            <i class="material-icons" *ngIf="resource.status === 'running' || resource.status === 'stopping'"
-               (click)="toggleResourceAction(resource, 'stop')"
-               [ngClass]="{'not-allowed' : resource.status === 'stopping' }">pause_circle_outline</i>
-            <i class="material-icons" *ngIf="resource.status === 'stopped' || resource.status === 'starting'"
-               (click)="toggleResourceAction(resource, 'start')"
-               [ngClass]="{'not-allowed' : resource.status === 'starting' }">play_circle_outline</i>
+        <a 
+          class="start-stop-action"
+          *ngIf="resource.image === 'docker.datalab-dataengine' && environment.status === 'running'"
+        >
+          <i 
+            class="material-icons" 
+            *ngIf="resource.status === 'running' || resource.status === 'stopping'"
+            (click)="toggleResourceAction(resource, 'stop')"
+            [ngClass]="{'not-allowed' : resource.status === 'stopping' }"
+          >
+            pause_circle_outline
+          </i>
+          <i 
+            class="material-icons" 
+            *ngIf="resource.status === 'stopped' || resource.status === 'starting'"
+            (click)="toggleResourceAction(resource, 'start')"
+            [ngClass]="{'not-allowed' : resource.status === 'starting' }"
+          >
+            play_circle_outline
+          </i>
         </a>
 
-        <a class="remove_butt" [ngClass]="{'disabled' : environment.status !== 'running' || environment.status !== 'stopped'
+        <a 
+          class="remove_butt" 
+          [ngClass]="{'disabled' : environment.status !== 'running' || environment.status !== 'stopped'
               && resource.status != 'running' && resource.status != 'failed' && resource.status != 'stopped' }"
-          (click)="toggleResourceAction(resource, 'terminate')">
+          (click)="toggleResourceAction(resource, 'terminate')"
+        >
           <i class="material-icons">highlight_off</i>
         </a>
       </div>
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/computational/computational-resources-list/computational-resources-list.component.scss b/services/self-service/src/main/resources/webapp/src/app/resources/computational/computational-resources-list/computational-resources-list.component.scss
index 2d9d8a5..88afbcc 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/computational/computational-resources-list/computational-resources-list.component.scss
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/computational/computational-resources-list/computational-resources-list.component.scss
@@ -1,4 +1,4 @@
- /*!
+/*!
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
  * distributed with this work for additional information
@@ -17,116 +17,96 @@
  * under the License.
  */
 
- :host{
- width:100%;
- }
+:host {
+  width: 100%;
+}
 
- .source {
-   .no-details {
-     color: #bdc9d5;
-   }
+.source {
+  .no-details {
+    color: #bdc9d5;
+  }
 
-   .resource-wrap {
-     display: flex;
-     justify-content: space-between;
-     height: 26px;
-     align-items: center;
+  .resource-wrap {
+    display: flex;
+    justify-content: space-between;
+    height: 26px;
+    align-items: center;
 
-     .resource-name {
-       width: 50%;
-       white-space: nowrap;
-       overflow: hidden;
+    .resource-name {
+      width: 50%;
+      white-space: nowrap;
+      overflow: hidden;
 
-       .detailed-link {
-         color: #35afd5;
-         cursor: pointer;
-       }
-     }
+      .detailed-link {
+        color: #35afd5;
+        cursor: pointer;
+      }
+    }
 
-     .resource-status {
-       width: 35%;
-       text-transform: capitalize;
-     }
+    .resource-status {
+      width: 35%;
+      text-transform: capitalize;
+    }
 
-     .resource-actions {
-       width: 15%;
-       display: flex;
-       justify-content: flex-end;
-       padding-right: 10px;
+    .resource-actions {
+      display: flex;
+      justify-content: flex-end;
+      width: 15%;
+      padding-right: 10px;
 
-       a {
-         text-decoration: none;
-         color: #748ba3;
-         font-size: 18px;
-         text-align: center;
+      a {
+        text-decoration: none;
+        color: #748ba3;
+        font-size: 18px;
+        text-align: center;
 
-         i {
-           font-size: 18px;
-           padding: 0 2px;
-         }
-       }
+        i {
+          font-size: 18px;
+          padding: 0 2px;
+        }
+      }
 
-       .schedule {
-         cursor: pointer;
-         display: flex;
-         align-items: center;
-         font-size: 18px;
+      .schedule {
+        display: flex;
+        align-items: center;
+        font-size: 18px;
+        cursor: pointer;
 
-         &.not-allowed {
-           pointer-events: none;
-         }
+        &.not-allowed {
+          pointer-events: none;
+        }
 
-         &.active {
-           color: #49af38;
-         }
-       }
+        &.active {
+          color: #49af38;
+        }
+      }
 
-       .start-stop-action {
-         display: flex;
-         align-items: center;
-         font-size: 18px;
-         color: #36afd5;
+      .start-stop-action {
+        display: flex;
+        align-items: center;
+        font-size: 18px;
+        color: #36afd5;
 
-         i {
-           cursor: pointer;
+        i {
+          cursor: pointer;
 
-           &.not-allowed {
-             pointer-events: none;
-           }
-         }
-       }
+          &.not-allowed {
+            pointer-events: none;
+          }
+        }
+      }
 
-       .remove_butt {
-         cursor: pointer;
-         color: #ef5c4b;
-         display: flex;
-         align-items: center;
+      .remove_butt {
+        display: flex;
+        align-items: center;
+        color: #ef5c4b;
+        cursor: pointer;
 
-         &.disabled {
-           color: #f5d3d3;
-           pointer-events: none;
-         }
-       }
-     }
-   }
- }
- //@media screen and (max-width: 1520px) {
- //  .resources,
- //  managment {
- //    .source {
- //      .resource-wrap {
- //        .resource-name {
- //          width: 42%;
- //        }
- //
- //        .resource-status {
- //          width: 43%;
- //        }
- //
- //        .resource-actions {
- //          width: 15%;
- //        }
- //      }
- //    }
- //  }
- //}
+        &.disabled {
+          color: #f5d3d3;
+          pointer-events: none;
+        }
+      }
+    }
+  }
+}
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/computational/computational-resources-list/computational-resources-list.component.ts b/services/self-service/src/main/resources/webapp/src/app/resources/computational/computational-resources-list/computational-resources-list.component.ts
index 7bc5126..b59b9e5 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/computational/computational-resources-list/computational-resources-list.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/computational/computational-resources-list/computational-resources-list.component.ts
@@ -88,7 +88,6 @@
   }
 }
 
-
 @Component({
   selector: 'confirmation-dialog',
   template: `
@@ -116,6 +115,7 @@
   </div>
   `
 })
+
 export class ConfirmationDialogComponent {
   constructor(
     public dialogRef: MatDialogRef<ConfirmationDialogComponent>,
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/ami-create-dialog/ami-create-dialog.component.html b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/ami-create-dialog/ami-create-dialog.component.html
index b628122..ae576f2 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/ami-create-dialog/ami-create-dialog.component.html
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/ami-create-dialog/ami-create-dialog.component.html
@@ -45,9 +45,23 @@
         </div>
       </form>
       <div class="text-center m-top-30 m-bott-10">
-        <button mat-raised-button type="button" class="butt action" (click)="dialogRef.close()">Cancel</button>
-        <button mat-raised-button type="button" [disabled]="!createAMIForm.valid"
-          (click)="assignChanges(createAMIForm.value)" class="butt butt-success action">Create</button>
+        <button 
+          mat-raised-button 
+          type="button" 
+          class="butt action" 
+          (click)="dialogRef.close()"
+        >
+          Cancel
+        </button>
+        <button 
+          mat-raised-button 
+          type="button" 
+          [disabled]="!createAMIForm.valid"
+          (click)="assignChanges(createAMIForm.value)" 
+          class="butt butt-success action"
+        >
+          Create
+        </button>
       </div>
     </div>
   </div>
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/ami-create-dialog/ami-create-dialog.component.scss b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/ami-create-dialog/ami-create-dialog.component.scss
index 367b1a4..9fca02a 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/ami-create-dialog/ami-create-dialog.component.scss
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/ami-create-dialog/ami-create-dialog.component.scss
@@ -20,7 +20,6 @@
 form {
   textarea {
     height: 70px;
-    resize: none;
     padding-top: 8px;
     // font: 300 16px/26px 'Open Sans', sans-serif;
     font-style: normal;
@@ -28,6 +27,7 @@
     font-size: 16px;
     line-height: 26px;
     font-family:'Open Sans', sans-serif;
+    resize: none;
   }
 }
 .ami-dialog{
@@ -35,8 +35,8 @@
     &.name {
       padding-bottom: 30px;
       .error{
-        top: 37px;
         position: absolute;
+        top: 37px;
         right: 0;
       }
     }
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/ami-create-dialog/ami-create-dialog.component.ts b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/ami-create-dialog/ami-create-dialog.component.ts
index 56cb2a4..315f8f3 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/ami-create-dialog/ami-create-dialog.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/ami-create-dialog/ami-create-dialog.component.ts
@@ -23,7 +23,7 @@
 import { ToastrService } from 'ngx-toastr';
 
 import { UserResourceService } from '../../../core/services';
-import {HTTP_STATUS_CODES, PATTERNS} from '../../../core/util';
+import { HTTP_STATUS_CODES, PATTERNS } from '../../../core/util';
 import { DICTIONARY } from '../../../../dictionary/global.dictionary';
 
 @Component({
@@ -63,7 +63,12 @@
 
   private initFormModel(): void {
     this.createAMIForm = this._fb.group({
-      name: ['', [Validators.required, Validators.pattern(PATTERNS.namePattern), Validators.maxLength(10), this.checkDuplication.bind(this)]],
+      name: ['', [
+        Validators.required, 
+        Validators.pattern(PATTERNS.namePattern), 
+        Validators.maxLength(10), 
+        this.checkDuplication.bind(this)
+      ]],
       description: [''],
       exploratory_name: [this.notebook.name],
       project_name: [this.notebook.project]
@@ -71,14 +76,16 @@
   }
 
   private checkDuplication(control) {
-    if (control.value)
+    if (control.value) {
       return this.isDuplicate(control.value) ? { duplication: true } : null;
+    }
   }
 
   private isDuplicate(value: string) {
     for (let index = 0; index < this.imagesList.length; index++) {
-      if (this.delimitersFiltering(value) === this.delimitersFiltering(this.imagesList[index].name))
+      if (this.delimitersFiltering(value) === this.delimitersFiltering(this.imagesList[index].name)) {
         return true;
+      }
     }
     return false;
   }
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/cost-details-dialog/cost-details-dialog.component.html b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/cost-details-dialog/cost-details-dialog.component.html
index a194a3d..3bf0518 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/cost-details-dialog/cost-details-dialog.component.html
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/cost-details-dialog/cost-details-dialog.component.html
@@ -33,29 +33,28 @@
       </table>
       <div class="billing-detail content-box">
         <mat-list>
-            <mat-list-item class="list-header" [ngClass]="{'pr-3': notebook.billing.report_lines.length > 6}">
-              <div class="resource-name ellipsis" [ngClass]="{ 'wide-name-field' : provider === 'azure' }">Name</div>
-              <div class="service">Product</div>
+          <mat-list-item class="list-header" [ngClass]="{'pr-3': notebook.billing.report_lines.length > 6}">
+            <div class="resource-name ellipsis" [ngClass]="{ 'wide-name-field' : provider === 'azure' }">Name</div>
+            <div class="service">Product</div>
 <!--              <div class="resource-type" *ngIf="provider === 'aws'">Type</div>-->
-              <div class="usage-date-start">Start</div>
-              <div class="usage-date-end">End</div>
-              <div class="cost-currency">Cost</div>
-            </mat-list-item>
-            <div class="scrolling-content" id="scrolling">
-              <mat-list-item *ngFor="let item of notebook.billing.report_lines">
-                <div class="resource-name ellipsis" [ngClass]="{ 'wide-name-field' : provider === 'azure' }"
-                     matTooltip="{{ item.resource_name }}"
-                     matTooltipPosition="above">
-                     {{ item.resource_name }}
-                </div>
-                <div class="service">{{ item.product }}</div>
+            <div class="usage-date-start">Start</div>
+            <div class="usage-date-end">End</div>
+            <div class="cost-currency">Cost</div>
+          </mat-list-item>
+          <div class="scrolling-content" id="scrolling">
+            <mat-list-item *ngFor="let item of notebook.billing.report_lines">
+              <div class="resource-name ellipsis" [ngClass]="{ 'wide-name-field' : provider === 'azure' }"
+                    matTooltip="{{ item.resource_name }}"
+                    matTooltipPosition="above">
+                    {{ item.resource_name }}
+              </div>
+              <div class="service">{{ item.product }}</div>
 <!--                <div class="resource-type" >{{ item.resourse_type }}</div>-->
-                <div class="usage-date-start ellipsis">{{ item.from.join('/') | localDate : 'shortDate'}}</div>
-                <div class="usage-date-end ellipsis">{{ item.to.join('/') | localDate : 'shortDate'}}</div>
-                <div class="cost-currency">{{ item.cost | localcurrency }}</div>
-              </mat-list-item>
-            </div>
-
+              <div class="usage-date-start ellipsis">{{ item.from.join('/') | localDate : 'shortDate'}}</div>
+              <div class="usage-date-end ellipsis">{{ item.to.join('/') | localDate : 'shortDate'}}</div>
+              <div class="cost-currency">{{ item.cost | localcurrency }}</div>
+            </mat-list-item>
+          </div>
         </mat-list>
         <div class="total">
           <strong>Total: </strong>{{ notebook.cost | localcurrency }}</div>
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/cost-details-dialog/cost-details-dialog.component.scss b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/cost-details-dialog/cost-details-dialog.component.scss
index 897482c..615145c 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/cost-details-dialog/cost-details-dialog.component.scss
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/cost-details-dialog/cost-details-dialog.component.scss
@@ -21,17 +21,15 @@
   table {
     width: 100%;
 
-    th,
-    td {
-      border: 1px solid #edf1f5;
+    th, td {
       padding: 18px 15px;
+      border: 1px solid #edf1f5;
       text-align: left;
     }
   }
 }
 
 .billing-detail {
-
   div {
     font-size: 13px;
   }
@@ -48,17 +46,17 @@
   .resource-name,
   .usage-date-start,
   .usage-date-end {
-    overflow: hidden;
     padding-right: 10px;
+    overflow: hidden;
     white-space: nowrap;
   }
 
-  .resource-name{
+  .resource-name {
     width: 20%;
   }
 
   .usage-date-start,
-  .usage-date-end{
+  .usage-date-end {
     width: 17%;
   }
 
@@ -67,8 +65,8 @@
   }
 
   .resource-name {
-    cursor: pointer;
     width: 20%;
+    cursor: pointer;
   }
 
   .total {
@@ -86,10 +84,10 @@
 }
 
 .mat-list-item-content {
-  font-size: 14px !important;
   justify-content: space-between;
+  font-size: 14px !important;
 }
 
-mat-tooltip-component>.mat-tooltip {
+mat-tooltip-component > .mat-tooltip {
   white-space: pre;
 }
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/create-environment/create-environment.component.html b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/create-environment/create-environment.component.html
index 90e2ba4..db3615d 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/create-environment/create-environment.component.html
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/create-environment/create-environment.component.html
@@ -29,10 +29,17 @@
           <label class="label">Select project</label>
           <div class="control selector-wrapper">
             <mat-form-field>
-              <mat-select formControlName="project" disableOptionCentering panelClass="create-resources-dialog scrolling" placeholder="Select project">
+              <mat-select 
+                formControlName="project" 
+                disableOptionCentering 
+                panelClass="create-resources-dialog scrolling" 
+                placeholder="Select project"
+              >
                 <mat-option *ngFor="let project of projects" [value]="project.name" (click)="setEndpoints(project)">
-                  {{ project.name }}</mat-option>
-                <mat-option *ngIf="!projects.length" class="multiple-select ml-10" disabled>Projects list is empty
+                  {{ project.name }}
+                </mat-option>
+                <mat-option *ngIf="!projects.length" class="multiple-select ml-10" disabled>
+                  Projects list is empty
                 </mat-option>
               </mat-select>
               <button class="caret">
@@ -46,12 +53,22 @@
           <label class="label">Select endpoint</label>
           <div class="control selector-wrapper" [ngClass]="{ 'not-active' : !endpoints.length }">
             <mat-form-field>
-              <mat-select formControlName="endpoint" disableOptionCentering [disabled]="!endpoints.length"
-                panelClass="create-resources-dialog scrolling" placeholder="Select endpoint">
-                <mat-option *ngFor="let endpoint of endpoints" [value]="endpoint"
-                  (click)="getTemplates(createExploratoryForm?.controls['project'].value, endpoint)">{{ endpoint }}
+              <mat-select 
+                formControlName="endpoint" 
+                disableOptionCentering 
+                [disabled]="!endpoints.length"
+                panelClass="create-resources-dialog scrolling" 
+                placeholder="Select endpoint"
+              >
+                <mat-option 
+                  *ngFor="let endpoint of endpoints" 
+                  [value]="endpoint"
+                  (click)="getTemplates(createExploratoryForm?.controls['project'].value, endpoint)"
+                >
+                  {{ endpoint }}
                 </mat-option>
-                <mat-option *ngIf="!endpoints.length" class="multiple-select ml-10" disabled>Endpoints list is empty
+                <mat-option *ngIf="!endpoints.length" class="multiple-select ml-10" disabled>
+                  Endpoints list is empty
                 </mat-option>
               </mat-select>
               <button class="caret">
@@ -60,23 +77,34 @@
             </mat-form-field>
           </div>
         </div>
+
         <div class="control-group">
           <label class="label">Select template</label>
-          <div class="control selector-wrapper"
-               [matTooltip]="'Notebook creations are not available. Please, check your permissions.'"
-               matTooltipPosition="above"
-               [matTooltipClass]="'full-size-tooltip'"
-               [matTooltipDisabled]="!(templates.length === 0 && this.createExploratoryForm.controls.endpoint.value)"
+          <div 
+            class="control selector-wrapper"
+            [matTooltip]="'Notebook creations are not available. Please, check your permissions.'"
+            matTooltipPosition="above"
+            [matTooltipClass]="'full-size-tooltip'"
+            [matTooltipDisabled]="!(templates.length === 0 && this.createExploratoryForm.controls.endpoint.value)"
           >
             <span class="form-field-wrapper"  [ngClass]="{ 'not-active' : !templates.length  || (templates.length === 0 && this.createExploratoryForm.controls.endpoint.value)}">
               <mat-form-field>
-                <mat-select formControlName="version" disableOptionCentering [disabled]="!templates.length || (templates.length === 0 && this.createExploratoryForm.controls.endpoint.value)"
-                  panelClass="create-resources-dialog scrolling" placeholder="Select template">
-                  <mat-option *ngFor="let template of templates"
-                    [value]="template.exploratory_environment_versions[0].version" (click)="getShapes(template)">
+                <mat-select 
+                  formControlName="version" 
+                  disableOptionCentering 
+                  [disabled]="!templates.length || (templates.length === 0 && this.createExploratoryForm.controls.endpoint.value)"
+                  panelClass="create-resources-dialog scrolling" 
+                  placeholder="Select template"
+                >
+                  <mat-option 
+                    *ngFor="let template of templates"
+                    [value]="template.exploratory_environment_versions[0].version" 
+                    (click)="getShapes(template)"
+                  >
                     {{ template.exploratory_environment_versions[0].template_name }}
                   </mat-option>
-                  <mat-option *ngIf="!templates.length" class="multiple-select ml-10" disabled>Templates list is empty
+                  <mat-option *ngIf="!templates.length" class="multiple-select ml-10" disabled>
+                    Templates list is empty
                   </mat-option>
                 </mat-select>
                 <button class="caret">
@@ -118,7 +146,8 @@
                 >
                   {{ image?.status ? image?.name + ' (custom image)' : image?.name }}
                 </mat-option>
-                <mat-option *ngIf="!images?.length" class="multiple-select ml-10" disabled>Images list is empty
+                <mat-option *ngIf="!images?.length" class="multiple-select ml-10" disabled>
+                  Images list is empty
                 </mat-option>
               </mat-select>
               <button class="caret">
@@ -142,13 +171,20 @@
         <div class="control-group name-control">
           <label class="label">Name</label>
           <div class="control">
-            <input [class.danger_field]=" !createExploratoryForm?.controls['name'].valid
-                    && createExploratoryForm?.controls['name'].dirty
-                    && createExploratoryForm?.controls['name'].hasError('duplication')" type="text"
-              class="form-control" placeholder="Enter Name" formControlName="name">
+            <input 
+              [class.danger_field]=" !createExploratoryForm?.controls['name'].valid
+                && createExploratoryForm?.controls['name'].dirty
+                && createExploratoryForm?.controls['name'].hasError('duplication')" 
+              type="text"
+              class="form-control" 
+              placeholder="Enter Name" 
+              formControlName="name"
+            />
             <span class="error" *ngIf="createExploratoryForm?.controls['name'].hasError('duplication')">This name already exists in current project.</span>
-            <span class="error" *ngIf="createExploratoryForm?.controls['name'].hasError('maxlength') &&
-            !createExploratoryForm?.controls['name'].hasError('pattern')"
+            <span 
+              class="error" 
+              *ngIf="createExploratoryForm?.controls['name'].hasError('maxlength') 
+                && !createExploratoryForm?.controls['name'].hasError('pattern')"
             >
               Name cannot be longer than {{maxNotebookLength}} characters.
             </span>
@@ -160,27 +196,33 @@
 
         <div class="control-group">
           <label class="label">Instance size</label>
-          <div class="control selector-wrapper"
-               [matTooltip]="'Instance size are not available. Please, check your permissions.'"
-               matTooltipPosition="above"
-               [matTooltipClass]="'full-size-tooltip'"
-               [matTooltipDisabled]="!(!areShapes && currentTemplate)"
+          <div 
+            class="control selector-wrapper"
+            [matTooltip]="'Instance size are not available. Please, check your permissions.'"
+            matTooltipPosition="above"
+            [matTooltipClass]="'full-size-tooltip'"
+            [matTooltipDisabled]="!(!areShapes && currentTemplate)"
           >
             <span class="form-field-wrapper" [ngClass]="{ 'not-active': !currentTemplate || !areShapes && currentTemplate}">
-            <mat-form-field>
-              <mat-label>Select instance size</mat-label>
-              <mat-select formControlName="shape" disableOptionCentering [disabled]="!currentTemplate || !areShapes && currentTemplate"
-                panelClass="create-resources-shapes scrolling" placeholder="Instance size">
-                <mat-optgroup *ngFor="let item of (shapes | keys)" [label]="item.key | underscoreless">
-                  <mat-option *ngFor="let list_item of item.value" [value]="list_item.Type" (click)="setInstanceSize()">
-                    <strong class="highlight icon-label">{{ list_item.Size }}</strong> {{ list_item.Type }}
-                  </mat-option>
-                </mat-optgroup>
-              </mat-select>
-              <button class="caret">
-                <i class="material-icons">keyboard_arrow_down</i>
-              </button>
-            </mat-form-field>
+              <mat-form-field>
+                <mat-label>Select instance size</mat-label>
+                <mat-select 
+                  formControlName="shape" 
+                  disableOptionCentering 
+                  [disabled]="!currentTemplate || !areShapes && currentTemplate"
+                  panelClass="create-resources-shapes scrolling" 
+                  placeholder="Instance size"
+                >
+                  <mat-optgroup *ngFor="let item of (shapes | keys)" [label]="item.key | underscoreless">
+                    <mat-option *ngFor="let list_item of item.value" [value]="list_item.Type" (click)="setInstanceSize()">
+                      <strong class="highlight icon-label">{{ list_item.Size }}</strong> {{ list_item.Type }}
+                    </mat-option>
+                  </mat-optgroup>
+                </mat-select>
+                <button class="caret">
+                  <i class="material-icons">keyboard_arrow_down</i>
+                </button>
+              </mat-form-field>
             </span>
           </div>
         </div>
@@ -196,20 +238,23 @@
           <span 
             class="error"
             *ngIf="createExploratoryForm?.controls['custom_tag'].hasError('maxlength') &&
-                  !createExploratoryForm?.controls['custom_tag'].hasError('pattern')">
-              Custom tag name cannot be longer than {{maxCustomTagLength}} characters.
-            </span>
-          <span class="error"
-            *ngIf="createExploratoryForm?.controls['custom_tag'].hasError('pattern')">
+                  !createExploratoryForm?.controls['custom_tag'].hasError('pattern')"
+          >
+            Custom tag name cannot be longer than {{maxCustomTagLength}} characters.
+          </span>
+          <span 
+            class="error"
+            *ngIf="createExploratoryForm?.controls['custom_tag'].hasError('pattern')"
+          >
             Custom tag can only contain letters, numbers, hyphens and '_' but can not end with special characters.</span>
         </div>
 
         <div *ngIf="currentTemplate">
           <ng-template 
-            [ngIf]="selectedCloud === 'gcp' && 
-              (currentTemplate?.image === 'docker.datalab-jupyter' || 
-              currentTemplate?.image === 'docker.datalab-deeplearning' ||
-              currentTemplate?.image === 'docker.datalab-tensor')"
+            [ngIf]="selectedCloud === 'gcp' 
+              && (currentTemplate?.image === 'docker.datalab-jupyter' 
+              || currentTemplate?.image === 'docker.datalab-deeplearning'
+              || currentTemplate?.image === 'docker.datalab-tensor')"
           >
             <div class="checkbox-group">
               <div 
@@ -229,60 +274,76 @@
               >
                 <div class="control-group">
                   <label class="label">GPU type</label>
-                  <div class="control selector-wrapper"
-                       [matTooltip]="'Please, select instance size.'"
-                       matTooltipPosition="above"
-                       [matTooltipClass]="'full-size-tooltip'"
-                       [matTooltipDisabled]="!!createExploratoryForm.controls['shape'].value"
+                  <div 
+                    class="control selector-wrapper"
+                    [matTooltip]="'Please, select instance size.'"
+                    matTooltipPosition="above"
+                    [matTooltipClass]="'full-size-tooltip'"
+                    [matTooltipDisabled]="!!createExploratoryForm.controls['shape'].value"
                   >
-                <span class="form-field-wrapper" [ngClass]="{ 'not-active': !createExploratoryForm.controls['shape'].value}">
-                <mat-form-field>
-                  <mat-label>Select GPU type</mat-label>
-                  <mat-select formControlName="gpu_type" disableOptionCentering [disabled]="!createExploratoryForm.controls['shape'].value"
-                              panelClass="create-resources-dialog" placeholder="GPU type">
-                      <mat-option *ngFor="let list_item of gpuTypes; index as i" [value]="list_item" (click)="setCount('', list_item)">
-                        <strong class="highlight icon-label">{{ addSizeToGpuType(i) }}</strong> {{ list_item }}
-                      </mat-option>
-                      <mat-option *ngIf="!gpuTypes.length" class="multiple-select ml-10" disabled>
-                        GPU list is empty
-                      </mat-option>
-                  </mat-select>
-                  <button class="caret">
-                    <i class="material-icons">keyboard_arrow_down</i>
-                  </button>
-                </mat-form-field>
-                </span>
+                    <span class="form-field-wrapper" [ngClass]="{ 'not-active': !createExploratoryForm.controls['shape'].value}">
+                      <mat-form-field>
+                        <mat-label>Select GPU type</mat-label>
+                        <mat-select 
+                          formControlName="gpu_type" 
+                          disableOptionCentering 
+                          [disabled]="!createExploratoryForm.controls['shape'].value"
+                          panelClass="create-resources-dialog" 
+                          placeholder="GPU type"
+                        >
+                          <mat-option *ngFor="let list_item of gpuTypes; index as i" [value]="list_item" (click)="setCount('', list_item)">
+                            <strong class="highlight icon-label">{{ addSizeToGpuType(i) }}</strong> {{ list_item }}
+                          </mat-option>
+                          <mat-option *ngIf="!gpuTypes.length" class="multiple-select ml-10" disabled>
+                            GPU list is empty
+                          </mat-option>
+                        </mat-select>
+                        <button class="caret">
+                          <i class="material-icons">keyboard_arrow_down</i>
+                        </button>
+                      </mat-form-field>
+                    </span>
                   </div>
                 </div>
                 <div class="control-group">
                   <label class="label">GPU count</label>
-                  <div class="control selector-wrapper"
-                       [matTooltip]="'Please, select GPU type.'"
-                       matTooltipPosition="above"
-                       [matTooltipClass]="'full-size-tooltip'"
-                       [matTooltipDisabled]="!!createExploratoryForm.controls['gpu_type'].value"
+                  <div 
+                    class="control selector-wrapper"
+                    [matTooltip]="'Please, select GPU type.'"
+                    matTooltipPosition="above"
+                    [matTooltipClass]="'full-size-tooltip'"
+                    [matTooltipDisabled]="!!createExploratoryForm.controls['gpu_type'].value"
                   >
-                <span class="form-field-wrapper" [ngClass]="{ 'not-active': !createExploratoryForm.controls['gpu_type'].value}">
-                <mat-form-field>
-                  <mat-label>Select GPU count</mat-label>
-                  <mat-select formControlName="gpu_count" disableOptionCentering [disabled]="!createExploratoryForm.controls['gpu_type'].value"
-                              panelClass="create-resources-dialog" placeholder="GPU count">
-                      <mat-option *ngFor="let list_item of gpuCount" [value]="list_item">
-                        {{ list_item }}
-                      </mat-option>
-                  </mat-select>
-                  <button class="caret">
-                    <i class="material-icons">keyboard_arrow_down</i>
-                  </button>
-                </mat-form-field>
-                </span>
+                    <span class="form-field-wrapper" [ngClass]="{ 'not-active': !createExploratoryForm.controls['gpu_type'].value}">
+                      <mat-form-field>
+                        <mat-label>Select GPU count</mat-label>
+                        <mat-select 
+                          formControlName="gpu_count" 
+                          disableOptionCentering 
+                          [disabled]="!createExploratoryForm.controls['gpu_type'].value"
+                          panelClass="create-resources-dialog"
+                          placeholder="GPU count"
+                        >
+                          <mat-option *ngFor="let list_item of gpuCount" [value]="list_item">
+                            {{ list_item }}
+                          </mat-option>
+                        </mat-select>
+                        <button class="caret">
+                          <i class="material-icons">keyboard_arrow_down</i>
+                        </button>
+                      </mat-form-field>
+                    </span>
                   </div>
                 </div>
               </ng-template>
-          </div>
+            </div>
           </ng-template>
-          <div class="checkbox-group"
-               *ngIf="currentTemplate?.image !== 'docker.datalab-zeppelin' && currentTemplate?.image !== 'docker.datalab-superset' && currentTemplate?.image !== 'docker.datalab-jupyterlab'">
+          <div 
+            class="checkbox-group"
+            *ngIf="currentTemplate?.image !== 'docker.datalab-zeppelin' 
+              && currentTemplate?.image !== 'docker.datalab-superset' 
+              && currentTemplate?.image !== 'docker.datalab-jupyterlab'"
+          >
             <div class="d-flex cursor-pointer label m-bott-20" (click)="selectConfiguration()">
               <div class="empty-checkbox" [ngClass]="{'checked': this.additionalParams.configurationNode}">
                 <span class="checked-checkbox" *ngIf="this.additionalParams.configurationNode"></span>
@@ -290,27 +351,48 @@
               <span class=" pl-5">Spark configurations</span>
             </div>
             <div class="config-details" [ngClass]="{ show: this.additionalParams.configurationNode}">
-              <textarea formControlName="cluster_config" placeholder="Cluster configuration template, JSON"
-                        data-gramm_editor="false" id="config"></textarea>
-              <span class="error spark-config"
-                    *ngIf="!createExploratoryForm?.controls.cluster_config.valid && createExploratoryForm?.controls['cluster_config'].dirty">Configuration
-                parameters is not in a valid format.</span>
+              <textarea 
+                formControlName="cluster_config" 
+                placeholder="Cluster configuration template, JSON"
+                data-gramm_editor="false" 
+                id="config"
+              ></textarea>
+              <span 
+                class="error spark-config"
+                *ngIf="!createExploratoryForm?.controls.cluster_config.valid 
+                  && createExploratoryForm?.controls['cluster_config'].dirty"
+              >
+                Configuration parameters is not in a valid format.
+              </span>
             </div>
           </div>
-            <small *ngIf="currentTemplate?.image === 'docker.datalab-zeppelin'">
-                Spark default configuration for Apache Zeppelin can not be changed from DataLab UI. Currently it can be
-                done directly through Apache Zeppelin interpreter menu.
-                For more details please refer for Apache Zeppelin <a
-                    href="https://zeppelin.apache.org/docs/0.9.0/usage/interpreter/overview.html" target="_blank">official
-                documentation</a>.
-            </small>
+          <small *ngIf="currentTemplate?.image === 'docker.datalab-zeppelin'">
+              Spark default configuration for Apache Zeppelin can not be changed from DataLab UI. Currently it can be
+              done directly through Apache Zeppelin interpreter menu.
+              For more details please refer for Apache Zeppelin <a
+                  href="https://zeppelin.apache.org/docs/0.9.0/usage/interpreter/overview.html" target="_blank">official
+              documentation</a>.
+          </small>
         </div>
 
         <div class="text-center m-top-30"  id="buttons">
-          <button mat-raised-button type="button" class="butt action" (click)="dialogRef.close()">Cancel</button>
-          <button mat-raised-button type="button" class="butt butt-success action"
+          <button 
+            mat-raised-button 
+            type="button" 
+            class="butt action" 
+            (click)="dialogRef.close()"
+          >
+            Cancel
+          </button>
+          <button 
+            mat-raised-button 
+            type="button" 
+            class="butt butt-success action"
             [disabled]="!createExploratoryForm?.valid"
-            (click)="createExploratoryEnvironment(createExploratoryForm.value)">Create</button>
+            (click)="createExploratoryEnvironment(createExploratoryForm.value)"
+          >
+            Create
+          </button>
         </div>
       </form>
     </div>
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/create-environment/create-environment.component.scss b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/create-environment/create-environment.component.scss
index 44aa50d..4bd5d07 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/create-environment/create-environment.component.scss
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/create-environment/create-environment.component.scss
@@ -18,8 +18,7 @@
  */
 
 .checkbox-group {
-
-  .empty-checkbox{
+  .empty-checkbox {
     margin: 0;
   }
 
@@ -30,11 +29,11 @@
     text-align: left;
 
     &.show {
+      position: relative;
+      margin-top: 10px;
       height: 200px;
       visibility: visible;
       opacity: 1;
-      position: relative;
-      margin-top: 10px;
     }
 
     textarea {
@@ -46,7 +45,7 @@
       font-family: Consolas, monospace;
     }
 
-    .spark-config{
+    .spark-config {
       position: absolute;
       bottom: -15px;
       right: 0;
@@ -88,7 +87,7 @@
   overflow-y: auto;
 }
 
-.form-field-wrapper{
+.form-field-wrapper {
   width: 100%;
 }
 
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/create-environment/create-environment.component.ts b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/create-environment/create-environment.component.ts
index 0e6c5af..fa32e8e 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/create-environment/create-environment.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/create-environment/create-environment.component.ts
@@ -24,11 +24,11 @@
 
 import { Project } from '../../../administration/project/project.component';
 import { UserResourceService, ProjectService } from '../../../core/services';
-import {CheckUtils, SortUtils, HTTP_STATUS_CODES, PATTERNS, HelpUtils} from '../../../core/util';
+import { CheckUtils, SortUtils, HTTP_STATUS_CODES, PATTERNS, HelpUtils } from '../../../core/util';
 import { DICTIONARY } from '../../../../dictionary/global.dictionary';
 import { CLUSTER_CONFIGURATION } from '../../computational/computational-resource-create-dialog/cluster-configuration-templates';
-import {tap} from 'rxjs/operators';
-import {timer} from 'rxjs';
+import { tap } from 'rxjs/operators';
+import { timer } from 'rxjs';
 
 @Component({
   selector: 'create-environment',
@@ -140,7 +140,6 @@
 
     this.userResourceService.getExploratoryTemplates(project, endpoint)
       .pipe(tap(results => {
-
         results.sort((a, b) =>
           (a.exploratory_environment_versions[0].template_name > b.exploratory_environment_versions[0].template_name) ?
             1 : -1);
@@ -149,7 +148,6 @@
         this.templates = templates;
         }
       );
-
   }
 
   public getShapes(template) {
@@ -217,7 +215,6 @@
       template_name: this.currentTemplate.exploratory_environment_versions[0].template_name
     };
 
-    
     if (!data.notebook_image_name 
       && this.currentTemplate.image === 'docker.datalab-deeplearning' 
       && this.selectedCloud === 'aws' || this.selectedCloud === 'azure') {
@@ -321,17 +318,19 @@
   private getImagesList() {
     this.userResourceService.getUserImages(this.currentTemplate.image, this.createExploratoryForm.controls['project'].value,
       this.createExploratoryForm.controls['endpoint'].value)
-      .subscribe((res: any) => {
-        this.images = res.filter(el => el.status === 'CREATED');
-        
-        if(this.selectedCloud === 'gcp' && this.currentTemplate.image === 'docker.datalab-deeplearning') {
+      .subscribe(
+        (res: any) => {
+          this.images = res.filter(el => el.status === 'CREATED');
+          
+          if(this.selectedCloud === 'gcp' && this.currentTemplate.image === 'docker.datalab-deeplearning') {
             this.currentTemplate.exploratory_environment_images = this.currentTemplate.exploratory_environment_images.map(image => {
               return {name: image['Image family'] ?? image.name, description: image['Description'] ?? image.description}
             });
             this.images.push(...this.currentTemplate.exploratory_environment_images);
           }
-      },
-        error => this.toastr.error(error.message || 'Images list loading failed!', 'Oops!'));
+        },
+        error => this.toastr.error(error.message || 'Images list loading failed!', 'Oops!')
+      );
   }
 
   private checkDuplication(control) {
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/detail-dialog/detail-dialog.component.html b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/detail-dialog/detail-dialog.component.html
index fbd5ff1..bcced52 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/detail-dialog/detail-dialog.component.html
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/detail-dialog/detail-dialog.component.html
@@ -60,34 +60,44 @@
         <div *ngIf="data.type === 'environment'" class="detail-info">
           <p>Open following URL(s) in your browser to access this box:</p>
           <div class="links_block">
-<!--            <p *ngFor="let item of notebook.exploratory_urls">-->
-<!--              <span class="description">{{item.description}}: &nbsp;</span>-->
-<!--              <a class="ellipsis" matTooltip="{{item.url}}" matTooltipPosition="above" href="{{item.url}}"-->
-<!--                 target="_blank" (click)="logAction(notebook.name, item.description)">-->
-<!--                &nbsp;{{item.url}}{{notebook.name}}-->
-<!--              </a>-->
-<!--            </p>-->
+          <!-- <p *ngFor="let item of notebook.exploratory_urls">-->
+          <!--              <span class="description">{{item.description}}: &nbsp;</span>-->
+          <!--              <a class="ellipsis" matTooltip="{{item.url}}" matTooltipPosition="above" href="{{item.url}}"-->
+          <!--                 target="_blank" (click)="logAction(notebook.name, item.description)">-->
+          <!--                &nbsp;{{item.url}}{{notebook.name}}-->
+          <!--              </a>-->
+          <!--            </p> -->
             <ng-container *ngFor="let item of notebook.exploratory_urls">
-                <span class="d-none" *ngIf="item.description.toLowerCase() === 'ungit' && notebook.exploratory_urls[0].description.toLowerCase().indexOf('zeppelin') !== -1; else ungit">
-                </span>
+              <span 
+                class="d-none" 
+                *ngIf="item.description.toLowerCase() === 'ungit' 
+                  && notebook.exploratory_urls[0].description.toLowerCase().indexOf('zeppelin') !== -1; else ungit"
+              ></span>
               <ng-template #ungit>
                 <p (mouseleave)="hideCopyIcon()">
                   <span class="description">{{item.description}}: &nbsp;</span>
-                  <a (mouseover)="showCopyIcon(item.description)"
-                     (click)="logAction(notebook.name, item.description)"
-                     class="ellipsis none-select resources-url" matTooltip="{{item.url}}"
-                     matTooltipPosition="above"
-                     href="{{item.url}}"
-                     target="_blank"
-                     (contextmenu)="false"
+                  <a 
+                    (mouseover)="showCopyIcon(item.description)"
+                    (click)="logAction(notebook.name, item.description)"
+                    class="ellipsis none-select resources-url" matTooltip="{{item.url}}"
+                    matTooltipPosition="above"
+                    href="{{item.url}}"
+                    target="_blank"
+                    (contextmenu)="false"
                   >
                     &nbsp;{{item.url}}
                   </a>
-                  <span (click)="logAction(notebook.name, item.description, 'Copy');$event.stopPropagation()" *ngIf="isCopyIconVissible[item.description]" [matTooltip]="isCopied ? 'Copy ' + item.description + ' url': 'Copied'" matTooltipPosition="above" class="copy-icon-wrapper">
-                      <span  class="link-icon" (click)="copyLink(item.url)" >
-                        <span _ngcontent-xpv-c19="" class="material-icons" (click)="this.isCopied = false">content_copy</span>
-                       </span>
+                  <span 
+                    (click)="logAction(notebook.name, item.description, 'Copy');$event.stopPropagation()" 
+                    *ngIf="isCopyIconVissible[item.description]" 
+                    [matTooltip]="isCopied ? 'Copy ' + item.description + ' url': 'Copied'" 
+                    matTooltipPosition="above" 
+                    class="copy-icon-wrapper"
+                  >
+                    <span  class="link-icon" (click)="copyLink(item.url)" >
+                      <span _ngcontent-xpv-c19="" class="material-icons" (click)="this.isCopied = false">content_copy</span>
                     </span>
+                  </span>
                 </p>
               </ng-template>
             </ng-container>
@@ -97,178 +107,208 @@
           <div class="detail-info" *ngIf="!notebook.error_message">
             <p>Edge Node IP Address {{notebook.node_ip}}</p>
             <p *ngIf="notebook.status === 'running'">Up time {{upTimeInHours}} hour(s) since
-              {{notebook.time ? (notebook.time | longDate ) : "not specified."}}</p>
+              {{notebook.time ? (notebook.time | longDate ) : "not specified."}}
+            </p>
             <p *ngIf="notebook.url?.length">Open following URL(s) in your browser to access this box:</p>
             <div class="links_block">
               <ng-container *ngFor="let item of notebook.url">
-                <span class="d-none" *ngIf="item.description.toLowerCase() === 'ungit' && notebook.template_name.toLowerCase().indexOf('zeppelin ') !== -1; else ungit">
-                </span>
+                <span 
+                  class="d-none" 
+                  *ngIf="item.description.toLowerCase() === 'ungit' 
+                    && notebook.template_name.toLowerCase().indexOf('zeppelin ') !== -1; else ungit"
+                ></span>
                 <ng-template #ungit>
                   <p (mouseleave)="hideCopyIcon()">
                     <span class="description">{{item.description}}: &nbsp;</span>
-                    <a (mouseover)="showCopyIcon(item.description)"
-                       (click)="logAction(notebook.name, item.description)"
-                       class="ellipsis none-select resources-url" matTooltip="{{item.url}}"
-                       matTooltipPosition="above"
-                       href="{{item.url}}"
+                    <a 
+                      (mouseover)="showCopyIcon(item.description)"
+                      (click)="logAction(notebook.name, item.description)"
+                      class="ellipsis none-select resources-url" matTooltip="{{item.url}}"
+                      matTooltipPosition="above"
+                      href="{{item.url}}"
                       target="_blank"
-                       (contextmenu)="false"
+                      (contextmenu)="false"
                     >
                       &nbsp;{{item.url}}
                     </a>
-                    <span (click)="logAction(notebook.name, item.description, 'Copy');$event.stopPropagation()" *ngIf="isCopyIconVissible[item.description]" [matTooltip]="isCopied ? 'Copy ' + item.description + ' url': 'Copied'" matTooltipPosition="above" class="copy-icon-wrapper">
+                    <span 
+                      (click)="logAction(notebook.name, item.description, 'Copy');$event.stopPropagation()" 
+                      *ngIf="isCopyIconVissible[item.description]" 
+                      [matTooltip]="isCopied ? 'Copy ' + item.description + ' url': 'Copied'" 
+                      matTooltipPosition="above" 
+                      class="copy-icon-wrapper"
+                    >
                       <span  class="link-icon" (click)="copyLink(item.url)" >
                         <span _ngcontent-xpv-c19="" class="material-icons" (click)="this.isCopied = false">content_copy</span>
-                       </span>
+                      </span>
                     </span>
                   </p>
                 </ng-template>
               </ng-container>
             </div>
-            <p class="flex" *ngIf="notebook.username">Node User: &nbsp;<span
-                class="strong">{{ notebook.username }}</span></p>
-            <p class="flex" *ngIf="notebook.password">Password: &nbsp;<span
-                class="strong">{{ notebook.password }}</span></p>
+            <p class="flex" *ngIf="notebook.username">
+              Node User: &nbsp;<span class="strong">{{ notebook.username }}</span>
+            </p>
+            <p class="flex" *ngIf="notebook.password">
+              Password: &nbsp;<span class="strong">{{ notebook.password }}</span>
+            </p>
 
             <p class="m-top-30">{{ 'Project bucket' }}: &nbsp;</p>
             <div class="links_block" (mouseleave)="hideCopyIcon()">
-                <p *ngIf="PROVIDER === 'azure' && notebook.account_name" class="bucket-info-wrapper">
-                  <span
-                    class="bucket-info"
-                    (mouseover)="showCopyIcon('bucket')"
-                    [matTooltip]="notebook.bucket_name + '@' + notebook.account_name + '.blob.core.windows.net'"
-                    matTooltipPosition="above"
-                    [matTooltipClass]="'full-size-tooltip'"
-                  >
-                    {{notebook.bucket_name + '@' + notebook.account_name + '.blob.core.windows.net'}}
-                  </span>
-
-                  <span  *ngIf="isCopyIconVissible.bucket" [matTooltip]="isCopied ? 'Copy bucket name' : 'Copied'" matTooltipPosition="above">
-                    <span  class="link-icon" (click)="copyLink(notebook.bucket_name + '@' + notebook.account_name + '.blob.core.windows.net', true);$event.stopPropagation()" >
-                    <span _ngcontent-xpv-c19="" class="material-icons" (click)="this.isCopied = false">content_copy</span>
-                  </span>
-                  </span>
-                </p>
-                <p *ngIf="notebook.bucket_name && PROVIDER !== 'azure'">{{ DICTIONARY[PROVIDER].container }}
-                  <span
-                    class="bucket-info"
-                    (mouseover)="showCopyIcon('bucket')"
-                  >
-                    {{ notebook.bucket_name }}
+              <p *ngIf="PROVIDER === 'azure' && notebook.account_name" class="bucket-info-wrapper">
+                <span
+                  class="bucket-info"
+                  (mouseover)="showCopyIcon('bucket')"
+                  [matTooltip]="notebook.bucket_name + '@' + notebook.account_name + '.blob.core.windows.net'"
+                  matTooltipPosition="above"
+                  [matTooltipClass]="'full-size-tooltip'"
+                >
+                  {{notebook.bucket_name + '@' + notebook.account_name + '.blob.core.windows.net'}}
                 </span>
-                  <span  *ngIf="isCopyIconVissible.bucket" [matTooltip]="isCopied ? 'Copy bucket name' : 'Copied'" matTooltipPosition="above">
-                    <span  class="link-icon" (click)="copyLink(notebook.bucket_name, true);$event.stopPropagation()" >
+
+                <span *ngIf="isCopyIconVissible.bucket" [matTooltip]="isCopied ? 'Copy bucket name' : 'Copied'" matTooltipPosition="above">
+                  <span class="link-icon" (click)="copyLink(notebook.bucket_name + '@' + notebook.account_name + '.blob.core.windows.net', true);$event.stopPropagation()" >
                     <span _ngcontent-xpv-c19="" class="material-icons" (click)="this.isCopied = false">content_copy</span>
                   </span>
+                </span>
+              </p>
+              <p *ngIf="notebook.bucket_name && PROVIDER !== 'azure'">{{ DICTIONARY[PROVIDER].container }}
+                <span
+                  class="bucket-info"
+                  (mouseover)="showCopyIcon('bucket')"
+                >
+                  {{ notebook.bucket_name }}
+                </span>
+                <span  *ngIf="isCopyIconVissible.bucket" [matTooltip]="isCopied ? 'Copy bucket name' : 'Copied'" matTooltipPosition="above">
+                  <span  class="link-icon" (click)="copyLink(notebook.bucket_name, true);$event.stopPropagation()" >
+                    <span _ngcontent-xpv-c19="" class="material-icons" (click)="this.isCopied = false">content_copy</span>
                   </span>
-                </p>
+                </span>
+              </p>
             </div>
             <div class="bucket-info bucket-link">
               <span></span>
-<!--              <button-->
-<!--                type="button"-->
-<!--                class="butt"-->
-<!--                mat-raised-button-->
-<!--              >-->
-<!--                Open bucket browser-->
-<!--              </button>-->
-<!--              <span class="description open-bucket"-->
-<!--                 [ngClass]="{'not-allow': !this.bucketStatus['view'] || !thisdata.buckets.length}"-->
-<!--                (click)="bucketBrowser(notebook.bucket_name, notebook.endpoint, this.bucketStatus['view'] && thisdata.buckets.length)"-->
-<!--              >-->
-                <span class="description open-bucket"
-                      [matTooltip]="!this.bucketStatus['view']
-                 ? 'You have not permission to open bucket'
-                 : 'You have not any bucket'"
-                      matTooltipDisabled="{{this.bucketStatus['view'] && this.data.buckets.length}}"
-                      matTooltipPosition="above"
-                      [matTooltipClass]="'full-size-tooltip'"
-                      [ngClass]="{'not-allow': !this.bucketStatus['view'] || !this.data.buckets.length}"
-                      (click)="bucketBrowser(notebook.cloud_provider !== 'azure' ? notebook.bucket_name : notebook.account_name + '.' + notebook.bucket_name, notebook.endpoint, this.bucketStatus['view'] && this.data.buckets.length)"
-                >
+              <!--              <button-->
+              <!--                type="button"-->
+              <!--                class="butt"-->
+              <!--                mat-raised-button-->
+              <!--              >-->
+              <!--                Open bucket browser-->
+              <!--              </button>-->
+              <!--              <span class="description open-bucket"-->
+              <!--                 [ngClass]="{'not-allow': !this.bucketStatus['view'] || !thisdata.buckets.length}"-->
+              <!--                (click)="bucketBrowser(notebook.bucket_name, notebook.endpoint, this.bucketStatus['view'] && thisdata.buckets.length)"-->
+              <!--              >-->
+              <span 
+                class="description open-bucket"
+                [matTooltip]="!this.bucketStatus['view']
+                  ? 'You have not permission to open bucket'
+                  : 'You have not any bucket'"
+                matTooltipDisabled="{{this.bucketStatus['view'] && this.data.buckets.length}}"
+                matTooltipPosition="above"
+                [matTooltipClass]="'full-size-tooltip'"
+                [ngClass]="{'not-allow': !this.bucketStatus['view'] || !this.data.buckets.length}"
+                (click)="bucketBrowser(
+                  notebook.cloud_provider !== 'azure' ? notebook.bucket_name : notebook.account_name + '.' + notebook.bucket_name, 
+                  notebook.endpoint, 
+                  this.bucketStatus['view'] && this.data.buckets.length
+                )"
+              >
                   Open bucket browser
                 </span>
             </div>
-<!--            <p>Shared endpoint bucket: &nbsp;</p>-->
-<!--            <div class="links_block" (click)="bucketBrowser(notebook.shared_bucket_name, notebook.endpoint, this.bucketStatus['view'])"-->
-<!--                 [matTooltip]="'You have not permission to open bucket'"-->
-<!--                 matTooltipDisabled="{{this.bucketStatus['view']}}"-->
-<!--                 matTooltipPosition="above"-->
-<!--                 [matTooltipClass]="'full-size-tooltip'"-->
-<!--            >-->
-<!--              <p *ngIf="DICTIONARY[PROVIDER === 'azure' && notebook.shared_account_name">{{ DICTIONARY[PROVIDER].account }}-->
-<!--                <span class="bucket-info bucket-link" [ngClass]="{'not-allow': !this.bucketStatus['view']}" (mouseover)="showCopyIcon('shared')">{{ notebook.shared_account_name}}</span>-->
-<!--                <span *ngIf="isCopyIconVissible.shared" class="link-icon" (click)="copyBucketName(notebook.shared_account_name)">-->
-<!--                  <span _ngcontent-xpv-c19="" class="material-icons" matTooltip="Copy bucket name" matTooltipPosition="above">content_copy</span>-->
-<!--                </span>-->
-<!--              </p>-->
-<!--              <p *ngIf="notebook.shared_bucket_name">{{ DICTIONARY[PROVIDER].container }}-->
-<!--                <span-->
-<!--                  class="bucket-info bucket-link"-->
-<!--                  [ngClass]="{'not-allow': !this.bucketStatus['view']}"-->
-<!--                  (mouseover)="showCopyIcon('shared')"-->
-<!--                  (click)="bucketBrowser(notebook.shared_bucket_name, notebook.endpoint, this.bucketStatus['view'])"-->
-<!--                >-->
-<!--                  {{ notebook.shared_bucket_name }}-->
-<!--                </span>-->
-<!--                <span *ngIf="isCopyIconVissible.shared" class="link-icon" (click)="copyBucketName(notebook.shared_bucket_name)">-->
-<!--                  <span _ngcontent-xpv-c19="" class="material-icons" matTooltip="Copy bucket name" matTooltipPosition="above">content_copy</span>-->
-<!--                </span>-->
-<!--              </p>-->
-<!--            </div>-->
-<!--            <br />-->
+            <!--            <p>Shared endpoint bucket: &nbsp;</p>-->
+            <!--            <div class="links_block" (click)="bucketBrowser(notebook.shared_bucket_name, notebook.endpoint, this.bucketStatus['view'])"-->
+            <!--                 [matTooltip]="'You have not permission to open bucket'"-->
+            <!--                 matTooltipDisabled="{{this.bucketStatus['view']}}"-->
+            <!--                 matTooltipPosition="above"-->
+            <!--                 [matTooltipClass]="'full-size-tooltip'"-->
+            <!--            >-->
+            <!--              <p *ngIf="DICTIONARY[PROVIDER === 'azure' && notebook.shared_account_name">{{ DICTIONARY[PROVIDER].account }}-->
+            <!--                <span class="bucket-info bucket-link" [ngClass]="{'not-allow': !this.bucketStatus['view']}" (mouseover)="showCopyIcon('shared')">{{ notebook.shared_account_name}}</span>-->
+            <!--                <span *ngIf="isCopyIconVissible.shared" class="link-icon" (click)="copyBucketName(notebook.shared_account_name)">-->
+            <!--                  <span _ngcontent-xpv-c19="" class="material-icons" matTooltip="Copy bucket name" matTooltipPosition="above">content_copy</span>-->
+            <!--                </span>-->
+            <!--              </p>-->
+            <!--              <p *ngIf="notebook.shared_bucket_name">{{ DICTIONARY[PROVIDER].container }}-->
+            <!--                <span-->
+            <!--                  class="bucket-info bucket-link"-->
+            <!--                  [ngClass]="{'not-allow': !this.bucketStatus['view']}"-->
+            <!--                  (mouseover)="showCopyIcon('shared')"-->
+            <!--                  (click)="bucketBrowser(notebook.shared_bucket_name, notebook.endpoint, this.bucketStatus['view'])"-->
+            <!--                >-->
+            <!--                  {{ notebook.shared_bucket_name }}-->
+            <!--                </span>-->
+            <!--                <span *ngIf="isCopyIconVissible.shared" class="link-icon" (click)="copyBucketName(notebook.shared_bucket_name)">-->
+            <!--                  <span _ngcontent-xpv-c19="" class="material-icons" matTooltip="Copy bucket name" matTooltipPosition="above">content_copy</span>-->
+            <!--                </span>-->
+            <!--              </p>-->
+            <!--            </div>-->
+            <!--            <br />-->
 
-<!--            <div *ngIf="DICTIONARY[PROVIDER === 'azure' && notebook.datalake_name">-->
-<!--              <p>Data Lake Store: &nbsp;</p>-->
-<!--              <div class="links_block">-->
-<!--                <p>Data Lake Store Account: &nbsp;<span class="bucket-info">{{ notebook.datalake_name }}</span></p>-->
-<!--                <p>Personal folder: &nbsp;<span class="bucket-info">{{ notebook.datalake_directory }}</span></p>-->
-<!--                <p>Collaboration folder: &nbsp;<span class="bucket-info">{{ notebook.datalake_shared_directory }}</span>-->
-<!--                </p>-->
-<!--              </div>-->
-<!--            </div>-->
+            <!--            <div *ngIf="DICTIONARY[PROVIDER === 'azure' && notebook.datalake_name">-->
+            <!--              <p>Data Lake Store: &nbsp;</p>-->
+            <!--              <div class="links_block">-->
+            <!--                <p>Data Lake Store Account: &nbsp;<span class="bucket-info">{{ notebook.datalake_name }}</span></p>-->
+            <!--                <p>Personal folder: &nbsp;<span class="bucket-info">{{ notebook.datalake_directory }}</span></p>-->
+            <!--                <p>Collaboration folder: &nbsp;<span class="bucket-info">{{ notebook.datalake_shared_directory }}</span>-->
+            <!--                </p>-->
+            <!--              </div>-->
+            <!--            </div>-->
 
-              <!-- <p>
-                <a href="#/help/accessnotebookguide" target="_blank">
-                  <small class="helper_instruction">
-                    <i class="material-icons">help_outline</i>
-                    Read instruction how to create the tunnel</small>
-                </a>
-              </p> -->
+                          <!-- <p>
+                            <a href="#/help/accessnotebookguide" target="_blank">
+                              <small class="helper_instruction">
+                                <i class="material-icons">help_outline</i>
+                                Read instruction how to create the tunnel</small>
+                            </a>
+                          </p> -->
           </div>
 
-            <div class="checkbox-group" *ngIf="notebook.image !== 'docker.datalab-zeppelin'; else not_support"
-                 [hidden]="notebook.status !== 'running' || notebook.image === 'docker.datalab-superset' || notebook.image === 'docker.datalab-jupyterlab'">
-                <label>
-                    <input #configurationNode type="checkbox" (change)="selectConfiguration()"/> Cluster configurations
-                </label>
-                <div class="checkbox-group">
-                    <form [formGroup]="configurationForm" novalidate>
-                        <div class="config-details" *ngIf="configuration?.nativeElement['checked'] || false">
-                  <textarea formControlName="configuration_parameters" id="config"
-                            placeholder="Cluster configuration template, JSON" data-gramm_editor="false"></textarea>
-                            <span class="danger_color"
-                                  *ngIf="!configurationForm.controls.configuration_parameters.valid && configurationForm.controls['configuration_parameters'].dirty">Configuration
-                    parameters is not in a valid format</span>
+          <div 
+            class="checkbox-group" 
+            *ngIf="notebook.image !== 'docker.datalab-zeppelin'; else not_support"
+            [hidden]="notebook.status !== 'running' || notebook.image === 'docker.datalab-superset' 
+              || notebook.image === 'docker.datalab-jupyterlab'"
+          >
+            <label>
+                <input #configurationNode type="checkbox" (change)="selectConfiguration()"/> Cluster configurations
+            </label>
+            <div class="checkbox-group">
+              <form [formGroup]="configurationForm" novalidate>
+                <div class="config-details" *ngIf="configuration?.nativeElement['checked'] || false">
+                  <textarea 
+                    formControlName="configuration_parameters" 
+                    id="config"
+                    placeholder="Cluster configuration template, JSON" 
+                    data-gramm_editor="false"
+                  ></textarea>
+                  <span 
+                    class="danger_color"
+                    *ngIf="!configurationForm.controls.configuration_parameters.valid 
+                      && configurationForm.controls['configuration_parameters'].dirty"
+                  >
+                    Configuration parameters is not in a valid format
+                  </span>
                 </div>
-              </form>
-            </div>
+            </form>
           </div>
-          <ng-template #not_support>
-            <small [hidden]="notebook.status !== 'running'">Spark default configuration for Apache Zeppelin can not be
-                changed from DataLab UI. Currently it can be done directly through Apache Zeppelin interpreter menu.
-                For more details please refer for Apache Zeppelin <a
-                href="https://zeppelin.apache.org/docs/0.9.0/usage/interpreter/overview.html" target="_blank">official
-                documentation</a>.
-            </small>
-          </ng-template>
-          <div [scrollTo]="configuration?.nativeElement['checked'] || false" class="text-center m-top-20 m-bott-10"
-            *ngIf="(configuration?.nativeElement['checked'] || false) && notebook.status === 'running'">
-            <button mat-raised-button type="button" (click)="dialogRef.close()" class="butt action">Cancel</button>
-            <button mat-raised-button type="submit" [disabled]="!configurationForm.valid"
-              class="butt butt-success action" [ngClass]="{'not-allowed': !configurationForm.valid}"
-              (click)="editClusterConfiguration(configurationForm.value)">Update</button>
-          </div>
+        </div>
+        <ng-template #not_support>
+          <small [hidden]="notebook.status !== 'running'">Spark default configuration for Apache Zeppelin can not be
+              changed from DataLab UI. Currently it can be done directly through Apache Zeppelin interpreter menu.
+              For more details please refer for Apache Zeppelin <a
+              href="https://zeppelin.apache.org/docs/0.9.0/usage/interpreter/overview.html" target="_blank">official
+              documentation</a>.
+          </small>
+        </ng-template>
+        <div [scrollTo]="configuration?.nativeElement['checked'] || false" class="text-center m-top-20 m-bott-10"
+          *ngIf="(configuration?.nativeElement['checked'] || false) && notebook.status === 'running'">
+          <button mat-raised-button type="button" (click)="dialogRef.close()" class="butt action">Cancel</button>
+          <button mat-raised-button type="submit" [disabled]="!configurationForm.valid"
+            class="butt butt-success action" [ngClass]="{'not-allowed': !configurationForm.valid}"
+            (click)="editClusterConfiguration(configurationForm.value)">Update</button>
+        </div>
         </div>
       </div>
     </div>
@@ -276,21 +316,27 @@
     <div class="legion-info" *ngIf="data.odahu">
       <div class="content-box">
         <div class="detail-info" *ngIf="!odahu.error_message">
-        <div  class="links_block">
-          <div *ngFor="let url of odahu.url" class="odahu-links">
-            <div class="odahu-link">
-              <span class="description">{{url.description }}: &nbsp;</span>
-              <a class="ellipsis" matTooltip="{{ url.url}}" matTooltipPosition="above" href="{{ url.url}}"
-                 target="_blank">{{ url.url}}
-              </a>
-            </div>
-            <div class="grafana" *ngIf="url.description === 'Grafana'">
-              <div><span>Gafana user:&nbsp;</span><span class="creds">{{odahu.bucket_name}}</span></div>
-              <div><span>Gafana password:&nbsp;</span><span class="creds">{{odahu.shared_bucket_name}}</span></div>
+          <div  class="links_block">
+            <div *ngFor="let url of odahu.url" class="odahu-links">
+              <div class="odahu-link">
+                <span class="description">{{url.description }}: &nbsp;</span>
+                <a 
+                  class="ellipsis" 
+                  matTooltip="{{ url.url}}" 
+                  matTooltipPosition="above" 
+                  href="{{ url.url}}"
+                  target="_blank"
+                >
+                  {{ url.url}}
+                </a>
+              </div>
+              <div class="grafana" *ngIf="url.description === 'Grafana'">
+                <div><span>Gafana user:&nbsp;</span><span class="creds">{{odahu.bucket_name}}</span></div>
+                <div><span>Gafana password:&nbsp;</span><span class="creds">{{odahu.shared_bucket_name}}</span></div>
+              </div>
             </div>
           </div>
         </div>
-    </div>
       </div>
     </div>
   </div>
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/detail-dialog/detail-dialog.component.scss b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/detail-dialog/detail-dialog.component.scss
index edb7aac..9549179 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/detail-dialog/detail-dialog.component.scss
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/detail-dialog/detail-dialog.component.scss
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-@import '_variables.scss';
+@import "_variables.scss";
 
 .scroll-box {
   max-height: 65vh;
@@ -26,36 +26,36 @@
 }
 
 .links_block {
-
-  .odahu-links:not(:last-child){
+  .odahu-links:not(:last-child) {
     margin-bottom: 20px;
   }
 
-  .grafana{
-    white-space: nowrap;
+  .grafana {
     padding-left: 30px;
+    white-space: nowrap;
     color: $blue-grey-color;
 
-    div{
+    div {
       display: flex;
 
-      span{
+      span {
         font-size: 13px;
         font-weight: 500;
 
-        &.creds{
+        &.creds {
           font-weight: 600;
         }
       }
     }
   }
 
-  >p, .odahu-link {
-     display: flex;
+  > p,
+  .odahu-link {
+    display: flex;
 
     .description {
-      white-space: nowrap;
       padding-left: 7px;
+      white-space: nowrap;
       font-weight: 600;
       color: $blue-grey-color;
     }
@@ -73,7 +73,6 @@
   }
 
   span {
-
     &.danger_color {
       position: absolute;
       bottom: -20px;
@@ -83,9 +82,9 @@
 }
 
 .config-details {
-  text-align: left;
   position: relative;
   height: 280px;
+  text-align: left;
 
   textarea {
     height: 100%;
@@ -111,35 +110,33 @@
   color: $blue-grey-color;
 }
 
-.bucket-link{
+.bucket-link {
   padding: 15px;
   padding-left: 0;
   color: #35afd5;
-  .open-bucket{
+  .open-bucket {
     cursor: pointer;
     font-size: 14px;
   }
-  &.not-allow{
+  &.not-allow {
     cursor: not-allowed;
     color: $blue-grey-color !important;
   }
 }
 
-.copy-icon-wrapper{
+.copy-icon-wrapper {
   width: 20px;
   margin-left: 5px;
   margin-right: 5px;
 }
 
-.bucket-info-wrapper{
+.bucket-info-wrapper {
   width: 100%;
-  .bucket-info{
+  .bucket-info {
     max-width: 90%;
   }
 }
 
-.resources-url{
+.resources-url {
   max-width: 70%;
 }
-
-
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/detail-dialog/detail-dialog.component.ts b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/detail-dialog/detail-dialog.component.ts
index ad41322..2ca7cba 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/detail-dialog/detail-dialog.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/detail-dialog/detail-dialog.component.ts
@@ -20,15 +20,15 @@
 import { Component, ViewChild, OnInit, Inject } from '@angular/core';
 import { FormGroup, FormBuilder } from '@angular/forms';
 import { ToastrService } from 'ngx-toastr';
-import {MatDialogRef, MAT_DIALOG_DATA, MatDialog} from '@angular/material/dialog';
+import { MatDialogRef, MAT_DIALOG_DATA, MatDialog } from '@angular/material/dialog';
 
-import {DateUtils, CheckUtils, HelpUtils} from '../../../core/util';
+import { DateUtils, CheckUtils, HelpUtils } from '../../../core/util';
 import { DICTIONARY } from '../../../../dictionary/global.dictionary';
 import { DataengineConfigurationService } from '../../../core/services';
 import { CLUSTER_CONFIGURATION } from '../../computational/computational-resource-create-dialog/cluster-configuration-templates';
-import {CopyPathUtils} from '../../../core/util/copyPathUtils';
-import {AuditService} from '../../../core/services/audit.service';
-import {BucketBrowserComponent} from '../../bucket-browser/bucket-browser.component';
+import { CopyPathUtils } from '../../../core/util/copyPathUtils';
+import { AuditService } from '../../../core/services/audit.service';
+import { BucketBrowserComponent } from '../../bucket-browser/bucket-browser.component';
 
 @Component({
   selector: 'detail-dialog',
@@ -51,7 +51,6 @@
   public configurationForm: FormGroup;
   @ViewChild('configurationNode') configuration;
 
-
   constructor(
     @Inject(MAT_DIALOG_DATA) public data: any,
     private dataengineConfigurationService: DataengineConfigurationService,
@@ -80,11 +79,12 @@
       this.upTimeInHours = (this.notebook.time) ? DateUtils.diffBetweenDatesInHours(this.notebook.time) : 0;
       this.initFormModel();
       this.getClusterConfiguration();
-    if (this.notebook.edgeNodeStatus === 'terminated' ||
-      this.notebook.edgeNodeStatus === 'terminating' ||
-      this.notebook.edgeNodeStatus === 'failed') {
-      this.isBucketAllowed = false;
-    }
+
+      if (this.notebook.edgeNodeStatus === 'terminated' ||
+        this.notebook.edgeNodeStatus === 'terminating' ||
+        this.notebook.edgeNodeStatus === 'failed') {
+        this.isBucketAllowed = false;
+      }
     }
   }
 
@@ -98,12 +98,12 @@
       .getExploratorySparkConfiguration(this.notebook.project, this.notebook.name)
       .subscribe(
         (result: any) => this.config = result,
-        error => this.toastr.error(error.message || 'Configuration loading failed!', 'Oops!'));
+        error => this.toastr.error(error.message || 'Configuration loading failed!', 'Oops!')
+      );
   }
 
   public selectConfiguration() {
     if (this.configuration.nativeElement.checked) {
-
       this.configurationForm.controls['configuration_parameters']
         .setValue(JSON.stringify(this.config.length ? this.config : CLUSTER_CONFIGURATION.SPARK, undefined, 2));
       document.querySelector('#config').scrollIntoView({ block: 'start', behavior: 'smooth' });
@@ -115,16 +115,19 @@
   public editClusterConfiguration(data): void {
     this.dataengineConfigurationService
       .editExploratorySparkConfiguration(data.configuration_parameters, this.notebook.project, this.notebook.name)
-      .subscribe(() => {
-        this.dialogRef.close();
-      },
-        error => this.toastr.error(error.message || 'Edit onfiguration failed!', 'Oops!'));
+      .subscribe(
+        () => {
+          this.dialogRef.close();
+        },
+        error => this.toastr.error(error.message || 'Edit onfiguration failed!', 'Oops!')
+      );
   }
 
   public resetDialog() {
     this.initFormModel();
-
-    if (this.configuration) this.configuration.nativeElement['checked'] = false;
+    if (this.configuration) {
+      this.configuration.nativeElement['checked'] = false;
+    }
   }
 
   private initFormModel(): void {
@@ -147,14 +150,20 @@
     bucketName = this.isBucketAllowed ? bucketName : this.data.buckets[0].children[0].name;
     // bucketName = 'ofuks-1304-pr2-local-bucket';
     this.dialog.open(BucketBrowserComponent, { data:
-        {bucket: bucketName, endpoint: endpoint, bucketStatus: this.bucketStatus, buckets: this.data.buckets},
-      panelClass: 'modal-fullscreen' })
-    .afterClosed().subscribe();
+      { 
+        bucket: bucketName, 
+        endpoint: endpoint, 
+        bucketStatus: this.bucketStatus, 
+        buckets: this.data.buckets
+      },
+      panelClass: 'modal-fullscreen' }
+    ).afterClosed().subscribe();
   }
 
   public showCopyIcon(element) {
     this.isCopyIconVissible[element] = true;
   }
+  
   public hideCopyIcon() {
     for (const key in this.isCopyIconVissible) {
       this.isCopyIconVissible[key] = false;
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/install-libraries/install-libraries.component.html b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/install-libraries/install-libraries.component.html
index 9954a91..8ef3f8a 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/install-libraries/install-libraries.component.html
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/install-libraries/install-libraries.component.html
@@ -24,368 +24,418 @@
   </header>
   <mat-progress-bar *ngIf="autoComplete === 'UPDATING'" mode="indeterminate"></mat-progress-bar>
   <div class="dialog-content">
-   <div class="aligner">
-    <div class="info" *ngIf="notebook?.status !== 'running'">
-      <p class=" message">Cannot install libraries: Exploratory
-        <strong>{{ notebook?.name }}</strong> is not running</p>
-    </div>
-    <div *ngIf="notebook?.status === 'running'" class="top-wrapper">
-      <div class="loading-block" *ngIf="!libs_uploaded && uploading && data.status === 'running'">
-        <div class="uploading">
-          <p>Please wait until DataLab loads list of available groups for your resource...</p>
-          <img src="assets/img/gif-spinner.gif" alt="loading">
-        </div>
+    <div class="aligner">
+      <div class="info" *ngIf="notebook?.status !== 'running'">
+        <p class=" message">Cannot install libraries: Exploratory
+          <strong>{{ notebook?.name }}</strong> is not running</p>
       </div>
-      <div *ngIf="notebook?.status === 'running' && !uploading" class="lib-view-wrap">
-      <div class="search-box">
-        <div class="search-form">
-          <div>
-            <div class="control-group constol-select">
-              <label class="label">Select resource</label>
-              <div class="control">
-                <dropdown-list #resourceSelect (selectedItem)="onUpdate($event)" (emitClick)="emitClick()"></dropdown-list>
-              </div>
-            </div>
-            <div class="control-group control-select">
-              <label class="label">Select group</label>
-              <div class="control">
-                <dropdown-list #groupSelect (selectedItem)="onUpdate($event)" (emitClick)="emitClick()"></dropdown-list>
-                <span class="error-message" *ngIf="!group && libSearch?.value">Group field is required. Please choose appropriate group.</span>
-              </div>
-            </div>
-          </div>
-          <div class="m-top-20" *ngIf="group !== 'java'; else javaGroup">
-            <div class="control-group constol-select">
-              <label class="label">Library name</label>
-              <div class="control control-relative">
-                <span class="other-message" *ngIf="group === 'others'">
-                  Other group can include libs from Python 2 and Python 3 groups.
-                  Some libs cannot be installed due to Python 2 is no longer supported
-                </span>
-                <input
-                  type="text" [placeholder]="'Enter library name'"
-                  [disabled]="!group"
-                  [matAutocomplete]="auto"
-                  [formControl]="libSearch"
-                  #trigger="matAutocompleteTrigger"
-                  (keydown.enter)="addLibrary(lib)"
-                  (keyup)="clearLibSelection($event)"
-                  class="library-input"
-                >
-              </div>
-              <mat-autocomplete #auto="matAutocomplete" class="suggestions scrolling">
-                <ng-template ngFor let-item [ngForOf]="filteredList" let-i="index">
-                  <mat-option>
-                    <div class="option" (click)="selectLibrary(item);$event.stopPropagation()" [ngClass]="{'not-allow': item.isInSelectedList}">
-                      <a *ngIf="!item.isInSelectedList">
-                        <span [innerHTML]="item.name | highlight:lib.name"></span>
-                      </a>
-                      <span *ngIf="item.isInSelectedList">{{ item.name }}</span>
-                      <strong *ngIf="item.isInSelectedList">selected
-                        <i class="material-icons">done</i>
-                      </strong>
-                      <strong *ngIf="item.isInstalled && !item.isInSelectedList">installed
-                        <i class="material-icons">done</i>
-                      </strong>
-                    </div>
-                  </mat-option>
-                </ng-template>
-                <mat-option *ngIf="!filteredList?.length && !validity_format && autoComplete === 'ENABLED' && lib.name?.length > 0" disabled>
-                  <span class="configuring">No matches found</span>
-                </mat-option>
-                <mat-option *ngIf="validity_format?.length > 0 && autoComplete === 'ENABLED'">
-                  <span class="configuring" >{{ validity_format }}</span >
-                </mat-option>
-                <mat-option *ngIf="autoComplete === 'NONE' && lib.name?.length > 1" disabled>
-                  <span class="configuring" >Autocomplete is currently unavailable for {{groupsListMap[group]}} group</span >
-                </mat-option>
-                <mat-option *ngIf="autoComplete === 'UPDATING' && lib.name?.length > 1" disabled>
-                  <span class="configuring" >Library list is being loaded at the moment. Please wait...</span>
-                </mat-option>
-              </mat-autocomplete>
-            </div>
-            <div class="control-group control-select">
-              <label class="label">Library version</label>
-              <div class="control control-relative">
-                <input
-                  type="text"
-                  class="library-input"
-                  [placeholder]="'Enter library version (optional)'"
-                  [(ngModel)]="lib.version"
-                  [disabled]="!lib.name?.trim() || lib.name?.trim().length < 2"
-                  (keyup)="validateVersion(lib.version)"
-                  (keydown.enter)="addLibrary(lib)"
-                >
-                <span
-                  class="error-message version-error"
-                  *ngIf="isVersionInvalid">
-                    Library version can only contain Latin letters, numbers and special characters -, _, :, /, ~, ., +.
-                </span>
-                <span class="plus-icon"
-                      [ngClass]="{'not-allow': lib.name?.trim().length < 2
-                      || (autoComplete === 'ENABLED' && !isLibSelected && filteredList?.length)
-                      || this.selectedLib?.isInSelectedList || isVersionInvalid || autoComplete === 'UPDATING'}"
-                      [matTooltip]="this.selectedLib?.isInSelectedList ? 'Library is in selected list' : 'Please select library from autocomplete'"
-                      matTooltipPosition="above" [matTooltipDisabled]="(!this.selectedLib?.isInSelectedList && isLibSelected) || lib.name?.length < 2 || !this.selectedLib?.isInSelectedList && autoComplete === 'NONE'"
-                >
-                  <mat-icon
-                    (click)="addLibrary(lib)"
-                    [ngClass]="{'not-allowed': lib.name?.trim().length < 2 || (autoComplete === 'ENABLED' && !isLibSelected && filteredList?.length)
-                    || this.selectedLib?.isInSelectedList || isVersionInvalid || autoComplete === 'UPDATING'}">add</mat-icon>
-                </span>
-              </div>
-            </div>
-          </div>
-
-          <ng-template #javaGroup>
-            <div class="m-top-20">
-              <div class="control-group constol-select java-library-search">
-                <label class="label">Library</label>
-                <div class="control control-relative">
-                 <input
-                    type="text" [placeholder]="'Enter library name in <groupId>:<artifactId>:<versionId> format'"
-                    class="library-input"
-                    [disabled]="!group"
-                    [matAutocomplete]="auto"
-                    [formControl]="libSearch"
-                    #trigger="matAutocompleteTrigger"
-                    (keydown.enter)="addLibrary(lib)"
-                    (keyup)="clearLibSelection($event)"
-                  >
-                  <span
-                    class="plus-icon"
-                    [ngClass]="{'not-allow': !this.selectedLib || this.selectedLib?.isInSelectedList || !isLibSelected}"
-                    matTooltip="Library is in selected list" matTooltipPosition="above" [matTooltipDisabled]="!this.selectedLib?.isInSelectedList || !isLibSelected"
-                  >
-                  <mat-icon  (click)="addLibrary(lib)" (keyup.enter)="addLibrary(lib)" [ngClass]="{'not-allowed': !this.selectedLib || this.selectedLib?.isInSelectedList || !isLibSelected}">add</mat-icon>
-                </span>
-                </div>
-                <mat-autocomplete #auto="matAutocomplete" class="suggestions">
-                  <ng-template ngFor let-item [ngForOf]="filteredList" let-i="index">
-                    <mat-option >
-                      <div class="option" (click)="selectLibrary(item);$event.stopPropagation()" [ngClass]="{'not-allow': item.isInSelectedList}">
-                        <a *ngIf="!item.isInSelectedList">
-                          <span [innerHTML]="item.name + ':' + item.version | highlight:item.name">
-                             <span>{{ item.version }}</span>
-                          </span>
-                        </a>
-                        <span *ngIf="item.isInSelectedList">{{ item.name }}
-                          <span *ngIf="item.version && item.version !== 'N/A'">{{ item.version }}</span>
-                      </span>
-                        <strong *ngIf="item.isInSelectedList">selected
-                          <i class="material-icons">done</i>
-                        </strong>
-                        <strong *ngIf="item.isInstalled && !item.isInSelectedList">installed
-                          <i class="material-icons">done</i>
-                        </strong>
-                      </div>
-                    </mat-option>
-                  </ng-template>
-                  <mat-option *ngIf="model.isEmpty(filteredList) && !validity_format">
-                    <span class="configuring">No matches found</span>
-                  </mat-option>
-                  <mat-option *ngIf="validity_format?.length > 0">
-                    <span class="configuring" >{{ validity_format }}</span >
-                  </mat-option>
-                </mat-autocomplete>
-              </div>
-            </div>
-          </ng-template>
-
-          <div class="search">
-            <div class="list-selected list-container scrolling">
-              <mat-chip-list *ngIf="model.selectedLibs.length && libs_uploaded" [disabled]="true">
-                <mat-chip *ngFor="let item of model.selectedLibs">
-                  {{ item.name }}
-                  <span *ngIf="item.version && item.version !== 'N/A'">&nbsp;{{ item.version }}</span>
-                  <strong>&nbsp;({{ groupsListMap[item.group] }})&nbsp;</strong>
-                  <a class="material-icons" (click)="removeSelectedLibrary(item)">clear</a>
-                </mat-chip>
-              </mat-chip-list>
-            </div>
+      <div *ngIf="notebook?.status === 'running'" class="top-wrapper">
+        <div class="loading-block" *ngIf="!libs_uploaded && uploading && data.status === 'running'">
+          <div class="uploading">
+            <p>Please wait until DataLab loads list of available groups for your resource...</p>
+            <img src="assets/img/gif-spinner.gif" alt="loading">
           </div>
         </div>
-      </div>
-    </div>
-    </div>
-
-    <div class="libs-info">
-      <mat-list class="scrolling" [ngStyle]="notebook?.status !== 'running' && {'max-height': '60vh', 'height': 'unset'}">
-        <mat-list-item class="list-header">
-          <div class="lib-name">Name
-            <button mat-icon-button aria-label="More" class="ar" (click)="toggleFilterRow()">
-            <i class="material-icons">
-              <span>more_vert</span>
-            </i>
-          </button></div>
-          <div class="lib-group">Group
-            <button mat-icon-button aria-label="More" class="ar" (click)="toggleFilterRow()">
-              <i class="material-icons">
-                <span>more_vert</span>
-              </i>
-            </button>
-          </div>
-          <div class="lib-destination"><span class="">Destination</span>
-            <button mat-icon-button aria-label="More" class="ar" (click)="toggleFilterRow()">
-              <i class="material-icons">
-                <span>more_vert</span>
-              </i>
-            </button>
-          </div>
-          <div class="lib-resource-type">Resource type
-            <button mat-icon-button aria-label="More" class="ar" (click)="toggleFilterRow()">
-              <i class="material-icons">
-                <span>more_vert</span>
-              </i>
-            </button>
-          </div>
-          <div class="lib-status"><span>Status</span>
-            <button mat-icon-button aria-label="More" class="ar" (click)="toggleFilterRow()">
-              <i class="material-icons">
-                <span>more_vert</span>
-              </i>
-            </button>
-          </div>
-        </mat-list-item>
-
-        <ng-container *ngIf="filtered" >
-         <mat-list-item class="filter-row">
-          <th class="lib-name filter-col">
-            <input
-              placeholder="Filter by library name"
-              [value]="filterModel.name"
-              (input)="onFilterNameUpdate($event.target['value'])"
-              type="text"
-              class="form-control filter-field"
-            />
-          </th>
-          <th class="lib-group filter-col">
-              <multi-select-dropdown
-                (selectionChange)="onFilterUpdate($event)"
-                [items]="this.filterConfiguration.group"
-                [type]="'group'"
-                [model]="this.filterModel.group"
-              >
-              </multi-select-dropdown>
-            </th>
-            <th class="lib-destination filter-col">
-              <multi-select-dropdown
-                (selectionChange)="onFilterUpdate($event)"
-                [items]="this.filterConfiguration.resource"
-                [type]="'resource'"
-                [model]="this.filterModel.resource"
-              >
-              </multi-select-dropdown>
-            </th>
-            <th class="lib-resource-type filter-col">
-              <multi-select-dropdown
-                (selectionChange)="onFilterUpdate($event)"
-                [items]="this.filterConfiguration.resource_type"
-                [type]="'resource_type'"
-                [model]="this.filterModel.resource_type"
-              >
-              </multi-select-dropdown>
-          </th>
-          <th class="lib-status filter-col">
-            <multi-select-dropdown
-              (selectionChange)="onFilterUpdate($event)"
-              [items]="this.filterConfiguration.status"
-              [type]="'status'"
-              [model]="this.filterModel.status"
-            >
-            </multi-select-dropdown>
-          </th>
-           <ng-container matColumnDef="action-filter" stickyEnd>
-             <th>
-               <div class="filter-actions actions">
-                 <button mat-icon-button class="btn reset" (click)="resetFilterConfigurations()" [disabled]="!isFilterSelected">
-                   <i class="material-icons">close</i>
-                 </button>
-
-                 <button mat-icon-button class="btn apply" (click)="filterLibs(true)" [disabled]="isFilterChanged">
-                   <i class="material-icons"  [ngClass]="{'not-allowed': filterModel['length'] === 0}">done</i>
-                 </button>
-               </div>
-             </th>
-           </ng-container>
-         </mat-list-item>
-        </ng-container>
-
-        <div class="scrollingList" id="scrolling" *ngIf="notebookLibs?.length">
-<!--          <div *ngIf="notebook?.status !== 'running' && notebookFailedLibs.length > 0" class="info message">-->
-<!--            <p>Cannot retry to reinstall failed libraries: Exploratory {{ notebook?.name }} is not running</p>-->
-<!--          </div>-->
-          <ng-container *ngFor="let lib of filtredNotebookLibs">
-            <mat-list-item class="table-item">
-            <div class="lib-name lib-name-col ellipsis" >
-              <span [matTooltip]="lib.name + ' ' + lib.version" matTooltipPosition="above" class="lib-name-wrapper ellipsis">
-                <span class="stong" >{{ lib.name }}</span>&nbsp;
-                <span *ngIf="lib.version  && lib.version !== 'N/A'">{{ lib.version }}</span>
-              </span>
-            </div>
-            <div class="lib-group-col">{{ groupsListMap[lib.group] }}</div>
-            <div class="st-group">
-              <ng-template let-item ngFor [ngForOf]="lib.filteredStatus">
-                <div class="wrap-col">
-                  <div class="lib-destination-col">{{ item.resource }}</div>
-                  <div class="lib-resource-type-col uppercase">{{ item.resourceType }}</div>
-                  <div class="lib-status-col uppercase" ngClass="{{ item.status.toLowerCase() || 'installation_error' }}">{{ item.status.replace('_', ' ') }}
-                    <div class="warn-action" *ngIf="(item.status === 'installation_error' || item.status.toLowerCase() === 'invalid_version' || item.add_pkgs?.length) && notebook?.status === 'running'">
-                      <div *ngIf="!item.available_versions">
-                        <span *ngIf="!installingInProgress && item.status === 'installation_error'" (click)="reinstallLibrary(item, lib)" matTooltip="Retry installation" matTooltipPosition="above">
-                          <i class="material-icons">replay</i>
-                        </span>
-                        <span class="not-allow" *ngIf="installingInProgress && item.status === 'installation_error'" matTooltip="Please wait until lib installation completes"
-                          matTooltipPosition="above">
-                          <i class="material-icons not-allowed">replay</i>
-                        </span>
-                      </div>
-                      <div *ngIf="item.status === 'installation_error' && item.error" class="lib-error" (click)="showErrorMessage(item)" matTooltip="Show error message" matTooltipPosition="above">
-                        <i class="material-icons terminated">error_outline</i>
-                      </div>
-                      <div class="lib-error"
-                           *ngIf="item.status.toLowerCase() === 'invalid_version' && item.available_versions?.length"
-                           (click)="openLibInfo(item, 'available');$event.stopPropagation()"
-                           matTooltip="Show available version" matTooltipPosition="above"
-                      >
-                        <i class="material-icons">error_outline</i>
-                      </div>
-                      <div matTooltip="Show installed dependency" matTooltipPosition="above" *ngIf="item.add_pkgs?.length">
-                        <span class="info-icon" (click)="openLibInfo(item, 'added');$event.stopPropagation() ">
-                          <i class="material-icons">info</i>
-                        </span>
-                      </div>
-                    </div>
-
+        <div *ngIf="notebook?.status === 'running' && !uploading" class="lib-view-wrap">
+          <div class="search-box">
+            <div class="search-form">
+              <div>
+                <div class="control-group constol-select">
+                  <label class="label">Select resource</label>
+                  <div class="control">
+                    <dropdown-list #resourceSelect (selectedItem)="onUpdate($event)" (emitClick)="emitClick()"></dropdown-list>
                   </div>
                 </div>
+                <div class="control-group control-select">
+                  <label class="label">Select group</label>
+                  <div class="control">
+                    <dropdown-list #groupSelect (selectedItem)="onUpdate($event)" (emitClick)="emitClick()"></dropdown-list>
+                    <span class="error-message" *ngIf="!group && libSearch?.value">Group field is required. Please choose appropriate group.</span>
+                  </div>
+                </div>
+              </div>
+              <div class="m-top-20" *ngIf="group !== 'java'; else javaGroup">
+                <div class="control-group constol-select">
+                  <label class="label">Library name</label>
+                  <div class="control control-relative">
+                    <span class="other-message" *ngIf="group === 'others'">
+                      Other group can include libs from Python 2 and Python 3 groups.
+                      Some libs cannot be installed due to Python 2 is no longer supported
+                    </span>
+                    <input
+                      type="text" [placeholder]="'Enter library name'"
+                      [disabled]="!group"
+                      [matAutocomplete]="auto"
+                      [formControl]="libSearch"
+                      #trigger="matAutocompleteTrigger"
+                      (keydown.enter)="addLibrary(lib)"
+                      (keyup)="clearLibSelection($event)"
+                      class="library-input"
+                    />
+                  </div>
+                  <mat-autocomplete #auto="matAutocomplete" class="suggestions scrolling">
+                    <ng-template ngFor let-item [ngForOf]="filteredList" let-i="index">
+                      <mat-option>
+                        <div class="option" (click)="selectLibrary(item);$event.stopPropagation()" [ngClass]="{'not-allow': item.isInSelectedList}">
+                          <a *ngIf="!item.isInSelectedList">
+                            <span [innerHTML]="item.name | highlight:lib.name"></span>
+                          </a>
+                          <span *ngIf="item.isInSelectedList">{{ item.name }}</span>
+                          <strong *ngIf="item.isInSelectedList">selected
+                            <i class="material-icons">done</i>
+                          </strong>
+                          <strong *ngIf="item.isInstalled && !item.isInSelectedList">installed
+                            <i class="material-icons">done</i>
+                          </strong>
+                        </div>
+                      </mat-option>
+                    </ng-template>
+                    <mat-option *ngIf="!filteredList?.length && !validity_format && autoComplete === 'ENABLED' && lib.name?.length > 0" disabled>
+                      <span class="configuring">No matches found</span>
+                    </mat-option>
+                    <mat-option *ngIf="validity_format?.length > 0 && autoComplete === 'ENABLED'">
+                      <span class="configuring" >{{ validity_format }}</span >
+                    </mat-option>
+                    <mat-option *ngIf="autoComplete === 'NONE' && lib.name?.length > 1" disabled>
+                      <span class="configuring" >Autocomplete is currently unavailable for {{groupsListMap[group]}} group</span >
+                    </mat-option>
+                    <mat-option *ngIf="autoComplete === 'UPDATING' && lib.name?.length > 1" disabled>
+                      <span class="configuring" >Library list is being loaded at the moment. Please wait...</span>
+                    </mat-option>
+                  </mat-autocomplete>
+                </div>
+                <div class="control-group control-select">
+                  <label class="label">Library version</label>
+                  <div class="control control-relative">
+                    <input
+                      type="text"
+                      class="library-input"
+                      [placeholder]="'Enter library version (optional)'"
+                      [(ngModel)]="lib.version"
+                      [disabled]="!lib.name?.trim() || lib.name?.trim().length < 2"
+                      (keyup)="validateVersion(lib.version)"
+                      (keydown.enter)="addLibrary(lib)"
+                    />
+                    <span
+                      class="error-message version-error"
+                      *ngIf="isVersionInvalid"
+                    >
+                      Library version can only contain Latin letters, numbers and special characters -, _, :, /, ~, ., +.
+                    </span>
+                    <span 
+                      class="plus-icon"
+                      [ngClass]="{'not-allow': lib.name?.trim().length < 2
+                        || (autoComplete === 'ENABLED' && !isLibSelected && filteredList?.length)
+                        || this.selectedLib?.isInSelectedList || isVersionInvalid || autoComplete === 'UPDATING'}"
+                      [matTooltip]="this.selectedLib?.isInSelectedList ? 'Library is in selected list' : 'Please select library from autocomplete'"
+                      matTooltipPosition="above" 
+                      [matTooltipDisabled]="(!this.selectedLib?.isInSelectedList && isLibSelected) 
+                        || lib.name?.length < 2 || !this.selectedLib?.isInSelectedList && autoComplete === 'NONE'"
+                    >
+                      <mat-icon
+                        (click)="addLibrary(lib)"
+                        [ngClass]="{'not-allowed': lib.name?.trim().length < 2 
+                          || (autoComplete === 'ENABLED' && !isLibSelected && filteredList?.length)
+                          || this.selectedLib?.isInSelectedList || isVersionInvalid || autoComplete === 'UPDATING'}"
+                      >
+                        add
+                      </mat-icon>
+                    </span>
+                  </div>
+                </div>
+              </div>
 
+              <ng-template #javaGroup>
+                <div class="m-top-20">
+                  <div class="control-group constol-select java-library-search">
+                    <label class="label">Library</label>
+                    <div class="control control-relative">
+                      <input
+                        type="text" 
+                        [placeholder]="'Enter library name in <groupId>:<artifactId>:<versionId> format'"
+                        class="library-input"
+                        [disabled]="!group"
+                        [matAutocomplete]="auto"
+                        [formControl]="libSearch"
+                        #trigger="matAutocompleteTrigger"
+                        (keydown.enter)="addLibrary(lib)"
+                        (keyup)="clearLibSelection($event)"
+                      />
+                      <span
+                        class="plus-icon"
+                        [ngClass]="{'not-allow': !this.selectedLib || this.selectedLib?.isInSelectedList || !isLibSelected}"
+                        matTooltip="Library is in selected list" 
+                        matTooltipPosition="above" 
+                        [matTooltipDisabled]="!this.selectedLib?.isInSelectedList || !isLibSelected"
+                      >
+                        <mat-icon 
+                          (click)="addLibrary(lib)" 
+                          (keyup.enter)="addLibrary(lib)" 
+                          [ngClass]="{'not-allowed': !this.selectedLib || this.selectedLib?.isInSelectedList || !isLibSelected}"
+                        >
+                          add
+                        </mat-icon>
+                      </span>
+                    </div>
+                    <mat-autocomplete #auto="matAutocomplete" class="suggestions">
+                      <ng-template ngFor let-item [ngForOf]="filteredList" let-i="index">
+                        <mat-option>
+                          <div class="option" (click)="selectLibrary(item);$event.stopPropagation()" [ngClass]="{'not-allow': item.isInSelectedList}">
+                            <a *ngIf="!item.isInSelectedList">
+                              <span [innerHTML]="item.name + ':' + item.version | highlight:item.name">
+                                <span>{{ item.version }}</span>
+                              </span>
+                            </a>
+                            <span *ngIf="item.isInSelectedList">{{ item.name }}
+                              <span *ngIf="item.version && item.version !== 'N/A'">{{ item.version }}</span>
+                            </span>
+                            <strong *ngIf="item.isInSelectedList">selected
+                              <i class="material-icons">done</i>
+                            </strong>
+                            <strong *ngIf="item.isInstalled && !item.isInSelectedList">installed
+                              <i class="material-icons">done</i>
+                            </strong>
+                          </div>
+                        </mat-option>
+                      </ng-template>
+                      <mat-option *ngIf="model.isEmpty(filteredList) && !validity_format">
+                        <span class="configuring">No matches found</span>
+                      </mat-option>
+                      <mat-option *ngIf="validity_format?.length > 0">
+                        <span class="configuring" >{{ validity_format }}</span >
+                      </mat-option>
+                    </mat-autocomplete>
+                  </div>
+                </div>
               </ng-template>
+
+              <div class="search">
+                <div class="list-selected list-container scrolling">
+                  <mat-chip-list *ngIf="model.selectedLibs.length && libs_uploaded" [disabled]="true">
+                    <mat-chip *ngFor="let item of model.selectedLibs">
+                      {{ item.name }}
+                      <span *ngIf="item.version && item.version !== 'N/A'">&nbsp;{{ item.version }}</span>
+                      <strong>&nbsp;({{ groupsListMap[item.group] }})&nbsp;</strong>
+                      <a class="material-icons" (click)="removeSelectedLibrary(item)">clear</a>
+                    </mat-chip>
+                  </mat-chip-list>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+
+      <div class="libs-info">
+        <mat-list class="scrolling" [ngStyle]="notebook?.status !== 'running' && {'max-height': '60vh', 'height': 'unset'}">
+          <mat-list-item class="list-header">
+            <div class="lib-name">Name
+              <button mat-icon-button aria-label="More" class="ar" (click)="toggleFilterRow()">
+                <i class="material-icons">
+                  <span>more_vert</span>
+                </i>
+              </button>
+            </div>
+            <div class="lib-group">Group
+              <button mat-icon-button aria-label="More" class="ar" (click)="toggleFilterRow()">
+                <i class="material-icons">
+                  <span>more_vert</span>
+                </i>
+              </button>
+            </div>
+            <div class="lib-destination"><span class="">Destination</span>
+              <button mat-icon-button aria-label="More" class="ar" (click)="toggleFilterRow()">
+                <i class="material-icons">
+                  <span>more_vert</span>
+                </i>
+              </button>
+            </div>
+            <div class="lib-resource-type">Resource type
+              <button mat-icon-button aria-label="More" class="ar" (click)="toggleFilterRow()">
+                <i class="material-icons">
+                  <span>more_vert</span>
+                </i>
+              </button>
+            </div>
+            <div class="lib-status"><span>Status</span>
+              <button mat-icon-button aria-label="More" class="ar" (click)="toggleFilterRow()">
+                <i class="material-icons">
+                  <span>more_vert</span>
+                </i>
+              </button>
             </div>
           </mat-list-item>
+
+          <ng-container *ngIf="filtered" >
+            <mat-list-item class="filter-row">
+              <th class="lib-name filter-col">
+                <input
+                  placeholder="Filter by library name"
+                  [value]="filterModel.name"
+                  (input)="onFilterNameUpdate($event.target['value'])"
+                  type="text"
+                  class="form-control filter-field"
+                />
+              </th>
+              <th class="lib-group filter-col">
+                <multi-select-dropdown
+                  (selectionChange)="onFilterUpdate($event)"
+                  [items]="this.filterConfiguration.group"
+                  [type]="'group'"
+                  [model]="this.filterModel.group"
+                ></multi-select-dropdown>
+              </th>
+              <th class="lib-destination filter-col">
+                <multi-select-dropdown
+                  (selectionChange)="onFilterUpdate($event)"
+                  [items]="this.filterConfiguration.resource"
+                  [type]="'resource'"
+                  [model]="this.filterModel.resource"
+                ></multi-select-dropdown>
+              </th>
+              <th class="lib-resource-type filter-col">
+                <multi-select-dropdown
+                  (selectionChange)="onFilterUpdate($event)"
+                  [items]="this.filterConfiguration.resource_type"
+                  [type]="'resource_type'"
+                  [model]="this.filterModel.resource_type"
+                ></multi-select-dropdown>
+              </th>
+              <th class="lib-status filter-col">
+                <multi-select-dropdown
+                  (selectionChange)="onFilterUpdate($event)"
+                  [items]="this.filterConfiguration.status"
+                  [type]="'status'"
+                  [model]="this.filterModel.status"
+                ></multi-select-dropdown>
+              </th>
+              <ng-container matColumnDef="action-filter" stickyEnd>
+                <th>
+                  <div class="filter-actions actions">
+                    <button 
+                      mat-icon-button 
+                      class="btn reset" 
+                      (click)="resetFilterConfigurations()" 
+                      [disabled]="!isFilterSelected"
+                    >
+                      <i class="material-icons">close</i>
+                    </button>
+
+                    <button 
+                      mat-icon-button 
+                      class="btn apply" 
+                      (click)="filterLibs(true)" 
+                      [disabled]="isFilterChanged"
+                    >
+                      <i class="material-icons"  [ngClass]="{'not-allowed': filterModel['length'] === 0}">done</i>
+                    </button>
+                  </div>
+                </th>
+              </ng-container>
+            </mat-list-item>
           </ng-container>
 
-        </div>
-        <div *ngIf="!notebookLibs?.length" class="scrollingList info message">
-          <p>You have no libraries installed</p>
-        </div>
-        <div *ngIf="!filtredNotebookLibs.length && notebookLibs?.length" class="scrollingList info message">
-          <p>No matches found</p>
-        </div>
-      </mat-list>
-    </div>
-    <div class="m-top-15 actions" *ngIf="!uploading && notebook?.status === 'running'">
-      <button mat-raised-button type="button" class="butt action close-btn" (click)="dialogRef.close()">Close</button>
-      <span matTooltip="Please wait until lib installation completes" [matTooltipDisabled]="!installingInProgress" matTooltipPosition="above">
-        <button mat-raised-button type="submit"
-                class="butt butt-success action install-btn"
-                (click)="model.confirmAction()"
-                [disabled]="!model.selectedLibs.length || installingInProgress || !destination"
+          <div class="scrollingList" id="scrolling" *ngIf="notebookLibs?.length">
+          <!--          <div *ngIf="notebook?.status !== 'running' && notebookFailedLibs.length > 0" class="info message">-->
+          <!--            <p>Cannot retry to reinstall failed libraries: Exploratory {{ notebook?.name }} is not running</p>-->
+          <!--          </div>-->
+            <ng-container *ngFor="let lib of filtredNotebookLibs">
+              <mat-list-item class="table-item">
+                <div class="lib-name lib-name-col ellipsis" >
+                  <span [matTooltip]="lib.name + ' ' + lib.version" matTooltipPosition="above" class="lib-name-wrapper ellipsis">
+                    <span class="stong" >{{ lib.name }}</span>&nbsp;
+                    <span *ngIf="lib.version  && lib.version !== 'N/A'">{{ lib.version }}</span>
+                  </span>
+                </div>
+                <div class="lib-group-col">{{ groupsListMap[lib.group] }}</div>
+                <div class="st-group">
+                  <ng-template let-item ngFor [ngForOf]="lib.filteredStatus">
+                    <div class="wrap-col">
+                      <div class="lib-destination-col">{{ item.resource }}</div>
+                      <div class="lib-resource-type-col uppercase">{{ item.resourceType }}</div>
+                      <div class="lib-status-col uppercase" ngClass="{{ item.status.toLowerCase() || 'installation_error' }}">{{ item.status.replace('_', ' ') }}
+                        <div class="warn-action" *ngIf="(item.status === 'installation_error' || item.status.toLowerCase() === 'invalid_version' || item.add_pkgs?.length) && notebook?.status === 'running'">
+                          <div *ngIf="!item.available_versions">
+                            <span 
+                              *ngIf="!installingInProgress && item.status === 'installation_error'" 
+                              (click)="reinstallLibrary(item, lib)" 
+                              matTooltip="Retry installation" 
+                              matTooltipPosition="above"
+                            >
+                              <i class="material-icons">replay</i>
+                            </span>
+                            <span 
+                              class="not-allow" 
+                              *ngIf="installingInProgress && item.status === 'installation_error'" 
+                              matTooltip="Please wait until lib installation completes"
+                              matTooltipPosition="above"
+                            >
+                              <i class="material-icons not-allowed">replay</i>
+                            </span>
+                          </div>
+                          <div 
+                            *ngIf="item.status === 'installation_error' && item.error" 
+                            class="lib-error" 
+                            (click)="showErrorMessage(item)" 
+                            matTooltip="Show error message" 
+                            matTooltipPosition="above"
+                          >
+                            <i class="material-icons terminated">error_outline</i>
+                          </div>
+                          <div 
+                            class="lib-error"
+                            *ngIf="item.status.toLowerCase() === 'invalid_version' && item.available_versions?.length"
+                            (click)="openLibInfo(item, 'available');$event.stopPropagation()"
+                            matTooltip="Show available version"
+                            matTooltipPosition="above"
+                          >
+                            <i class="material-icons">error_outline</i>
+                          </div>
+                          <div matTooltip="Show installed dependency" matTooltipPosition="above" *ngIf="item.add_pkgs?.length">
+                            <span class="info-icon" (click)="openLibInfo(item, 'added');$event.stopPropagation() ">
+                              <i class="material-icons">info</i>
+                            </span>
+                          </div>
+                        </div>
+                      </div>
+                    </div>
+                  </ng-template>
+                </div>
+              </mat-list-item>
+            </ng-container>
+          </div>
+          <div *ngIf="!notebookLibs?.length" class="scrollingList info message">
+            <p>You have no libraries installed</p>
+          </div>
+          <div *ngIf="!filtredNotebookLibs.length && notebookLibs?.length" class="scrollingList info message">
+            <p>No matches found</p>
+          </div>
+        </mat-list>
+      </div>
+      <div class="m-top-15 actions" *ngIf="!uploading && notebook?.status === 'running'">
+        <button 
+          mat-raised-button 
+          type="button" 
+          class="butt action close-btn" 
+          (click)="dialogRef.close()"
         >
-          Install
+          Close
         </button>
-      </span>
+        <span 
+          matTooltip="Please wait until lib installation completes" 
+          [matTooltipDisabled]="!installingInProgress" 
+          matTooltipPosition="above"
+        >
+          <button 
+            mat-raised-button type="submit"
+            class="butt butt-success action install-btn"
+            (click)="model.confirmAction()"
+            [disabled]="!model.selectedLibs.length || installingInProgress || !destination"
+          >
+            Install
+          </button>
+        </span>
+      </div>
     </div>
-   </div>
   </div>
 </div>
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/install-libraries/install-libraries.component.scss b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/install-libraries/install-libraries.component.scss
index 1333fd5..94d9c3f 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/install-libraries/install-libraries.component.scss
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/install-libraries/install-libraries.component.scss
@@ -17,26 +17,27 @@
  * under the License.
  */
 
-@import '_variables.scss';
+@import "_variables.scss";
 
 .aligner {
-  height: 100%;
   display: flex;
   flex-direction: column;
+  height: 100%;
 
-  >div {
+  > div {
     &.actions {
+      position: absolute;
+      bottom: 30px;
+      left: 0;
+      right: 0;
       display: flex;
       flex: initial;
       justify-content: center;
       flex-direction: initial;
       margin-bottom: 10px;
-      bottom: 30px;
-      left: 0;
-      right: 0;
-      position: absolute;
     }
-    strong{
+
+    strong {
       font-weight: 600;
     }
   }
@@ -46,20 +47,20 @@
   height: 30%;
 }
 
-.top-wrapper{
+.top-wrapper {
   height: 285px;
 }
 
-.list-item{
+.list-item {
   display: flex;
   width: 100%;
   padding-left: 20px;
 }
 
 .object {
-  width: 70%;
   display: flex;
   align-items: center;
+  width: 70%;
   padding-right: 10px;
 }
 
@@ -67,7 +68,7 @@
   width: 30%;
 }
 
-ul.resources{
+ul.resources {
   padding-left: 10px;
 }
 
@@ -80,7 +81,7 @@
     flex-direction: column;
     width: 100%;
 
-    &>div {
+    & > div {
       display: flex;
       flex-direction: row;
     }
@@ -89,22 +90,22 @@
       width: 50%;
       padding-bottom: 0;
 
-      &.java-library-search{
+      &.java-library-search {
         width: 100%;
 
-        .label{
+        .label {
           width: 10%;
         }
 
-        .control{
+        .control {
           width: 85%;
         }
       }
 
-      .control{
+      .control {
         width: 70%;
 
-        input{
+        input {
           font-size: 15px;
           padding-left: 15px;
         }
@@ -124,8 +125,8 @@
       flex-grow: 1;
       padding-bottom: 0;
       flex-direction: column;
-      box-shadow: 0 3px 1px -2px rgba(0, 0, 0, .2), 0 2px 2px 0 rgba(0, 0, 0, .14), 0 1px 5px 0 rgba(0, 0, 0, .12);
       margin-top: 40px;
+      box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
 
       .mat-form-field-flex {
         padding-left: 15px;
@@ -135,11 +136,10 @@
         width: 100%;
         overflow-y: auto;
 
-
         &.mat-form-field {
           width: 100%;
 
-          .mat-form-field-infix{
+          .mat-form-field-infix {
             display: flex;
           }
         }
@@ -152,17 +152,16 @@
   }
 }
 
-
 .suggestions {
   text-decoration: none;
   list-style: none;
 
   mat-option {
-    font-size: 13px;
-    font-weight: 300;
-    font-family: 'Open Sans', sans-serif;
     position: relative;
     padding-top: 4px;
+    font-size: 13px;
+    font-weight: 300;
+    font-family: "Open Sans", sans-serif;
 
     a {
       display: block;
@@ -189,7 +188,7 @@
         position: absolute;
         top: 9px;
         right: -21px;
-        color: #35afd5
+        color: #35afd5;
       }
     }
   }
@@ -209,7 +208,7 @@
 
 mat-chip.mat-chip:not(.mat-basic-chip) {
   margin: 2px !important;
-  background-color: rgba(47, 174, 215, .2) !important;
+  background-color: rgba(47, 174, 215, 0.2) !important;
   color: #687e96;
 }
 
@@ -221,29 +220,28 @@
 
 .libs-info {
   .mat-list {
-    width: 100%;
-    overflow-y: auto;
     position: relative;
+    width: 100%;
     height: 350px;
     padding-top: 0;
     margin-top: 8px;
-  
-    .list-header{
-      line-height: 40px;
+    overflow-y: auto;
+
+    .list-header {
       position: sticky;
       top: 0;
       z-index: 99;
+      line-height: 40px;
       background-color: #fff;
     }
-  
-    .filter-row{
+
+    .filter-row {
       position: sticky;
       top: 56px;
       z-index: 99;
       background-color: #fff;
     }
-  
-  
+
     .scrollingList {
       .info {
         p {
@@ -260,11 +258,11 @@
   padding-right: 10px;
   padding-left: 20px;
 
-  &-col{
+  &-col {
     display: flex;
   }
 
-  .lib-name-wrapper{
+  .lib-name-wrapper {
     overflow: hidden;
     display: block;
   }
@@ -315,8 +313,8 @@
 
     .lib-resource-type-col {
       width: 33.3%;
-      color: #36afd5;
       padding-left: 15px;
+      color: #36afd5;
     }
 
     .lib-status-col {
@@ -331,8 +329,8 @@
 
         div {
           display: inline-block;
-          cursor: pointer;
           width: 25px;
+          cursor: pointer;
           pointer-events: auto;
 
           span {
@@ -349,11 +347,11 @@
 }
 
 .mat-dialog-container.mat-dialog-container .install-libraries#dialog-box {
-  .mat-header-cell{
-    padding: 0;
-    border: none;
+  .mat-header-cell {
     position: absolute;
     right: 10px;
+    padding: 0;
+    border: none;
   }
 
   .filter-actions {
@@ -361,10 +359,10 @@
     margin-left: 6px;
 
     .btn {
-      padding: 6px;
       height: auto;
       width: auto;
       min-width: 0;
+      padding: 6px;
 
       .mat-button-wrapper {
         display: flex;
@@ -390,24 +388,25 @@
   }
 }
 
-.error-message{
+.error-message {
   position: absolute;
   left: 20%;
   top: 40px;
   font-size: 11px;
   color: red;
-  &.version-error{
+
+  &.version-error {
     right: 0;
     left: unset;
   }
 }
 
-.info-icon{
+.info-icon {
   color: lightgray;
   cursor: pointer;
 }
 
-.lib-info{
+.lib-info {
   width: 100%;
 
   .delete-item {
@@ -417,21 +416,21 @@
     width: 100%;
     padding: 5px 10px;
 
-    .butt.action{
+    .butt.action {
       line-height: 26px;
     }
   }
 }
 
-.btn{
+.btn {
   line-height: 26px;
 
-  &.install-btn{
+  &.install-btn {
     margin-left: 0;
   }
 }
 
-.control-relative{
+.control-relative {
   position: relative;
 
   .plus-icon {
@@ -447,12 +446,12 @@
     }
   }
 
-  .other-message{
+  .other-message {
     position: absolute;
-    font-size: 12px;
-    color: $link-color;
     top: 40px;
     left: 12px;
+    font-size: 12px;
+    color: $link-color;
   }
 }
 
@@ -460,7 +459,7 @@
   .libs-info {
     .mat-list {
       height: 250px;
-      .dropdown-multiselect .list-menu{
+      .dropdown-multiselect .list-menu {
         max-height: 143px;
       }
     }
@@ -471,7 +470,7 @@
   .libs-info {
     .mat-list {
       height: 200px;
-      .dropdown-multiselect .list-menu{
+      .dropdown-multiselect .list-menu {
         max-height: 94px;
       }
     }
@@ -479,8 +478,7 @@
 }
 
 @media screen and (max-height: 640px) {
-
-  .aligner>div.actions {
+  .aligner > div.actions {
     margin-bottom: 0;
   }
 
@@ -491,7 +489,7 @@
   .libs-info {
     .mat-list {
       height: 160px;
-      .dropdown-multiselect .list-menu{
+      .dropdown-multiselect .list-menu {
         max-height: 54px;
       }
     }
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/install-libraries/install-libraries.component.ts b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/install-libraries/install-libraries.component.ts
index f434e29..8a867e9 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/install-libraries/install-libraries.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/install-libraries/install-libraries.component.ts
@@ -26,10 +26,10 @@
 
 import { InstallLibrariesModel } from './install-libraries.model';
 import { LibrariesInstallationService } from '../../../core/services';
-import {SortUtils, HTTP_STATUS_CODES, PATTERNS} from '../../../core/util';
-import {FilterLibsModel} from './filter-libs.model';
-import {Subject, timer} from 'rxjs';
-import {CompareUtils} from '../../../core/util/compareUtils';
+import { SortUtils, HTTP_STATUS_CODES, PATTERNS } from '../../../core/util';
+import { FilterLibsModel } from './filter-libs.model';
+import { Subject, timer } from 'rxjs';
+import { CompareUtils } from '../../../core/util/compareUtils';
 
 interface Library {
   name: string;
@@ -170,12 +170,15 @@
 
   public filterList(): void {
     this.validity_format = '';
-    (this.lib.name && this.lib.name.length >= 2 && this.group ) ? this.getFilteredList() : this.filteredList = null;
+    (this.lib.name && this.lib.name.length >= 2 && this.group ) 
+      ? this.getFilteredList() 
+      : this.filteredList = null;
   }
 
   public filterGroups(groupsList): Array<string> {
     const CURRENT_TEMPLATE = this.notebook.template_name.toLowerCase();
-    if (CURRENT_TEMPLATE.indexOf('jupyter with tensorflow') !== -1  || CURRENT_TEMPLATE.indexOf('deep learning') !== -1) {
+    if (CURRENT_TEMPLATE.indexOf('jupyter with tensorflow') !== -1  
+      || CURRENT_TEMPLATE.indexOf('deep learning') !== -1) {
       const filtered = groupsList.filter(group => group !== 'r_pkg');
       return SortUtils.libGroupsSort(filtered);
     }
@@ -311,14 +314,14 @@
 
   public isInstallingInProgress(): void {
     this.installingInProgress = this.notebookLibs.some(lib => lib.filteredStatus.some(status => status.status === 'installing'));
-      if (this.installingInProgress) {
-        timer(this.INSTALLATION_IN_PROGRESS_CHECK)
-          .pipe(
-            take(1),
-            takeUntil(this.unsubscribe$)
-          )
-          .subscribe(v => this.getInstalledLibrariesList());
-      }
+    if (this.installingInProgress) {
+      timer(this.INSTALLATION_IN_PROGRESS_CHECK)
+        .pipe(
+          take(1),
+          takeUntil(this.unsubscribe$)
+        )
+        .subscribe(v => this.getInstalledLibrariesList());
+    }
   }
 
   public reinstallLibrary(item, lib): void {
@@ -376,7 +379,6 @@
 
   private libsUploadingStatus(groupsList): void {
     if (groupsList.length) {
-
       this.groupsList = this.filterGroups(groupsList);
       this.libs_uploaded = true;
       this.uploading = false;
@@ -497,15 +499,23 @@
       Object.setPrototypeOf(this.cashedFilterForm, Object.getPrototypeOf(this.filterModel));
     }
     this.filtredNotebookLibs = this.notebookLibs.filter((lib) => {
-      const isName = this.cashedFilterForm.name ?
-        lib.name.toLowerCase().indexOf(this.cashedFilterForm.name.toLowerCase().trim()) !== -1
-        || lib.version.indexOf(this.cashedFilterForm.name.toLowerCase().trim()) !== -1 : true;
-      const isGroup = this.cashedFilterForm.group.length ? this.cashedFilterForm.group.includes(this.groupsListMap[lib.group]) : true;
+      const isName = this.cashedFilterForm.name 
+        ? lib.name.toLowerCase().indexOf(this.cashedFilterForm.name.toLowerCase().trim()) !== -1
+          || lib.version.indexOf(this.cashedFilterForm.name.toLowerCase().trim()) !== -1 
+        : true;
+      const isGroup = this.cashedFilterForm.group.length 
+        ? this.cashedFilterForm.group.includes(this.groupsListMap[lib.group]) 
+        : true;
       lib.filteredStatus = lib.status.filter(status => {
-        const isResource = this.cashedFilterForm.resource.length ? this.cashedFilterForm.resource.includes(status.resource) : true;
-        const isResourceType = this.cashedFilterForm.resource_type.length ?
-          this.cashedFilterForm.resource_type.includes(status.resourceType) : true;
-        const isStatus = this.cashedFilterForm.status.length ? this.cashedFilterForm.status.includes(status.status) : true;
+        const isResource = this.cashedFilterForm.resource.length 
+          ? this.cashedFilterForm.resource.includes(status.resource) 
+          : true;
+        const isResourceType = this.cashedFilterForm.resource_type.length 
+          ? this.cashedFilterForm.resource_type.includes(status.resourceType) 
+          : true;
+        const isStatus = this.cashedFilterForm.status.length 
+          ? this.cashedFilterForm.status.includes(status.status) 
+          : true;
         return isResource && isResourceType && isStatus;
       });
       this.checkFilters();
@@ -521,7 +531,7 @@
 
   public openLibInfo(lib, type) {
     this.dialog.open(
-      LibInfoDialogComponent, { data: {lib, type}, width: '550px', panelClass: 'error-modalbox' });
+      LibInfoDialogComponent, { data: { lib, type }, width: '550px', panelClass: 'error-modalbox' });
   }
 
   public emitClick() {
@@ -566,9 +576,7 @@
   constructor(
     public dialogRef: MatDialogRef<ErrorLibMessageDialogComponent>,
     @Inject(MAT_DIALOG_DATA) public data: any
-  ) {
-
-  }
+  ) { }
 }
 
 @Component({
@@ -598,7 +606,5 @@
   constructor(
     public dialogRef: MatDialogRef<ErrorLibMessageDialogComponent>,
     @Inject(MAT_DIALOG_DATA) public data: any
-  ) {
-
-  }
+  ) { }
 }
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/install-libraries/install-libraries.model.ts b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/install-libraries/install-libraries.model.ts
index b201904..d902c74 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/install-libraries/install-libraries.model.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/install-libraries/install-libraries.model.ts
@@ -62,12 +62,11 @@
       group: group,
       start_with: query
     };
-    if (this.computational_name)
+    if (this.computational_name) {
       lib_query.computational_name = this.computational_name;
+    }
 
-    return this.librariesInstallationService.getAvailableLibrariesList(
-      lib_query
-    );
+    return this.librariesInstallationService.getAvailableLibrariesList(lib_query);
   }
 
   public getDependencies(query: string): Observable<{}> {
@@ -86,9 +85,13 @@
       exploratory_name: this.notebook.name,
       libs: retry ? retry : this.selectedLibs
     };
-    if (this.computational_name)
+    if (this.computational_name) {
       lib_list.computational_name = this.computational_name;
-    if (item) lib_list.computational_name = item;
+    }
+
+    if (item) {
+      lib_list.computational_name = item;
+    } 
 
     return this.librariesInstallationService.installLibraries(lib_list);
   }
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/install-libraries/libraries-info.component.scss b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/install-libraries/libraries-info.component.scss
index 2789a66..17f5f86 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/install-libraries/libraries-info.component.scss
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/install-libraries/libraries-info.component.scss
@@ -46,9 +46,9 @@
     .mat-list-item-content {
       height: auto !important;
       min-height: 54px !important;
-      border-bottom: 1px solid #edf1f5;
       padding-right: 10px;
       padding-left: 0;
+      border-bottom: 1px solid #edf1f5;
     }
   }
 
@@ -66,9 +66,9 @@
   }
 
   .list-selected {
-    padding: 10px;
-    font-family: 'Open Sans', sans-serif;
     height: 130px;
+    padding: 10px;
+    font-family: "Open Sans", sans-serif;
     overflow-y: auto;
 
     h4 {
@@ -86,17 +86,17 @@
   }
 
   .loading-block {
-    height: 40%;
     display: flex;
     justify-content: center;
+    height: 40%;
 
     .uploading {
-      padding-top: 200px;
+      display: flex;
       flex-direction: column;
       align-items: center;
       align-self: center;
+      padding-top: 200px;
       list-style: none;
-      display: flex;
 
       p {
         font-size: 16px;
@@ -104,50 +104,51 @@
     }
   }
 
-  .list-header{
+  .list-header {
     line-height: 40px;
   }
 }
 
 .libs-info {
-  padding: 0 25px;
   display: flex;
   flex: 1 1 auto;
   min-height: 0;
+  padding: 0 25px;
 
   .filter-row {
-    .filter-col{
+
+    .filter-col {
       padding-left: 0;
-      &.lib-name{
+
+      &.lib-name {
         padding-left: 5px;
-        .filter-field{
+
+        .filter-field {
           padding-left: 15px;
         }
       }
-      .status{
+      .status {
         text-transform: none;
       }
     }
   }
 
   .mat-list {
-
-    .list-header{
-      line-height: 40px;
+    .list-header {
       position: sticky;
       top: 0;
       z-index: 99;
+      line-height: 40px;
       background-color: #fff;
     }
 
-    .filter-row{
+    .filter-row {
       position: sticky;
       top: 56px;
       z-index: 99;
       background-color: #fff;
     }
 
-
     .scrollingList {
       .info {
         p {
@@ -163,13 +164,13 @@
     padding-right: 10px;
     padding-left: 20px;
 
-    &-col{
+    &-col {
       display: flex;
     }
 
-    .lib-name-wrapper{
-      overflow: hidden;
+    .lib-name-wrapper {
       display: block;
+      overflow: hidden;
       text-overflow: ellipsis;
     }
 
@@ -235,8 +236,8 @@
 
           div {
             display: inline-block;
-            cursor: pointer;
             width: 25px;
+            cursor: pointer;
             pointer-events: auto;
 
             span {
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/manage-ungit/manage-ungit.component.html b/services/self-service/src/main/resources/webapp/src/app/resources/manage-ungit/manage-ungit.component.html
index bb59fbc..02f517d 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/manage-ungit/manage-ungit.component.html
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/manage-ungit/manage-ungit.component.html
@@ -62,9 +62,22 @@
         </div>
 
         <div class="text-center m-top-30 m-bott-10" *ngIf="editableForm && gitCredentials?.length">
-          <button mat-raised-button type="button" class="butt action" (click)="cancelAllModifyings()">Cancel</button>
-          <button mat-raised-button type="button" class="butt butt-success action"
-            (click)="editAccounts_btnClick()">Apply changes</button>
+          <button 
+            mat-raised-button 
+            type="button" 
+            class="butt action" 
+            (click)="cancelAllModifyings()"
+          >
+            Cancel
+          </button>
+          <button 
+            mat-raised-button 
+            type="button" 
+            class="butt butt-success action"
+            (click)="editAccounts_btnClick()"
+          >
+            Apply changes
+          </button>
         </div>
       </mat-tab>
       <mat-tab label="MANAGE ACCOUNT">
@@ -77,13 +90,19 @@
                   <input type="text" formControlName="hostname"
                     placeholder="Enter host name ( without http:// or https:// )">
                 </div>
-                <span class="danger_color"
+                <span 
+                  class="danger_color"
                   *ngIf="!updateAccountCredentialsForm.controls['hostname'].valid
-                  && updateAccountCredentialsForm.controls['hostname'].touched && !updateAccountCredentialsForm.controls['hostname'].hasError('duplicate')">
+                    && updateAccountCredentialsForm.controls['hostname'].touched 
+                    && !updateAccountCredentialsForm.controls['hostname'].hasError('duplicate')"
+                >
                   Hostname field is required. Please provide a qualified domain name (e.g. gitlab.com or github.com).
                 </span>
-                <span class="danger_color"
-                  *ngIf="updateAccountCredentialsForm.controls['hostname'].hasError('duplicate') && updateAccountCredentialsForm.controls['hostname'].dirty">
+                <span 
+                  class="danger_color"
+                  *ngIf="updateAccountCredentialsForm.controls['hostname'].hasError('duplicate') 
+                    && updateAccountCredentialsForm.controls['hostname'].dirty"
+                >
                   The Host name is already in use.
                 </span>
               </div>
@@ -102,8 +121,11 @@
                 <div class="control">
                   <input type="email" formControlName="email" placeholder="Enter email">
                 </div>
-                <span class="danger_color"
-                  *ngIf="!updateAccountCredentialsForm.controls['email'].valid && updateAccountCredentialsForm.controls['email'].touched">
+                <span 
+                  class="danger_color"
+                  *ngIf="!updateAccountCredentialsForm.controls['email'].valid 
+                    && updateAccountCredentialsForm.controls['email'].touched"
+                >
                   Email field is required. Please provide a valid email.
                 </span>
               </div>
@@ -114,8 +136,11 @@
                 <div class="control">
                   <input type="text" formControlName="login" placeholder="Enter login">
                 </div>
-                <span class="danger_color"
-                  *ngIf="!updateAccountCredentialsForm.controls['login'].valid && updateAccountCredentialsForm.controls['login'].touched">
+                <span 
+                  class="danger_color"
+                  *ngIf="!updateAccountCredentialsForm.controls['login'].valid 
+                    && updateAccountCredentialsForm.controls['login'].touched"
+                >
                   Login field is required. Please provide a valid login.
                 </span>
               </div>
@@ -125,7 +150,9 @@
                   <input type="password" formControlName="password" placeholder="Enter Password">
                 </div>
                 <span class="danger_color"
-                  *ngIf="!updateAccountCredentialsForm.controls['password'].valid && updateAccountCredentialsForm.controls['password'].touched">
+                  *ngIf="!updateAccountCredentialsForm.controls['password'].valid 
+                    && updateAccountCredentialsForm.controls['password'].touched"
+                >
                   Field is required. Password must be at least 6 characters.
                 </span>
               </div>
@@ -134,17 +161,36 @@
                 <div class="control">
                   <input type="password" formControlName="confirmPassword" placeholder="Enter Password">
                 </div>
-                <span class="danger_color" *ngIf="updateAccountCredentialsForm.value.password !== updateAccountCredentialsForm.value.confirmPassword && updateAccountCredentialsForm.controls['confirmPassword'].touched && !!updateAccountCredentialsForm.value.password">
+                <span 
+                  class="danger_color" 
+                  *ngIf="updateAccountCredentialsForm.value.password !== updateAccountCredentialsForm.value.confirmPassword 
+                    && updateAccountCredentialsForm.controls['confirmPassword'].touched 
+                    && !!updateAccountCredentialsForm.value.password"
+                >
                   Passwords don't match.
                 </span>
               </div>
             </div>
           </div>
           <div class="text-center submit m-bott-10">
-            <button mat-raised-button type="button" class="butt action" (click)="resetForm()">Clear</button>
-            <button mat-raised-button type="button" [disabled]="!updateAccountCredentialsForm.valid || updateAccountCredentialsForm.value.password !== updateAccountCredentialsForm.value.confirmPassword"
+            <button 
+              mat-raised-button 
+              type="button" 
+              class="butt action" 
+              (click)="resetForm()"
+            >
+              Clear
+            </button>
+            <button
+              mat-raised-button 
+              type="button" 
+              [disabled]="!updateAccountCredentialsForm.valid 
+                || updateAccountCredentialsForm.value.password !== updateAccountCredentialsForm.value.confirmPassword"
               (click)="assignChanges(updateAccountCredentialsForm.value)"
-              class="butt butt-success action">Assign</button>
+              class="butt butt-success action"
+            >
+              Assign
+            </button>
           </div>
         </form>
       </mat-tab>
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/manage-ungit/manage-ungit.component.scss b/services/self-service/src/main/resources/webapp/src/app/resources/manage-ungit/manage-ungit.component.scss
index 2362d15..50a9da3 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/manage-ungit/manage-ungit.component.scss
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/manage-ungit/manage-ungit.component.scss
@@ -32,9 +32,9 @@
   }
 
   .scrollingList {
-    overflow-x: hidden;
-    padding: 5px 0;
     height: 250px;
+    padding: 5px 0;
+    overflow-x: hidden;
 
     &.info {
       display: flex;
@@ -51,8 +51,8 @@
   .user-field,
   .login-field {
     width: 25%;
-    overflow: hidden;
     padding: 5px;
+    overflow: hidden;
   }
 
   .hostname-field {
@@ -63,8 +63,8 @@
 
   .actions {
     position: relative;
-    overflow: visible;
     width: 50px;
+    overflow: visible;
 
     span {
       position: absolute;
@@ -86,14 +86,14 @@
     display: flex;
 
     .control-group {
-      width: 100%;
-      font-family: 'Open Sans', sans-serif;
-      padding: 10px 0 25px;
       position: relative;
+      width: 100%;
+      padding: 10px 0 25px;
+      font-family: "Open Sans", sans-serif;
 
-      input[type='text'],
-      input[type='password'],
-      input[type='email'] {
+      input[type="text"],
+      input[type="password"],
+      input[type="email"] {
         font-size: 14px;
       }
 
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/resources-grid/index.ts b/services/self-service/src/main/resources/webapp/src/app/resources/resources-grid/index.ts
index 6bbc5a0..be43d80 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/resources-grid/index.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/resources-grid/index.ts
@@ -32,27 +32,27 @@
 import { AmiCreateDialogModule } from '../exploratory/ami-create-dialog';
 import { SchedulerModule } from '../scheduler';
 import { UnderscorelessPipeModule } from '../../core/pipes/underscoreless-pipe';
-import {LocalCurrencyModule} from '../../core/pipes/local-currency-pipe';
+import { LocalCurrencyModule } from '../../core/pipes/local-currency-pipe';
 
 @NgModule({
-    imports: [
-        CommonModule,
-        RouterModule,
-        ComputationalResourcesModule,
-        ConfirmationDialogModule,
-        BubbleModule,
-        DetailDialogModule,
-        ComputationalResourceCreateDialogModule,
-        FormControlsModule,
-        CostDetailsDialogModule,
-        InstallLibrariesModule,
-        SchedulerModule,
-        AmiCreateDialogModule,
-        UnderscorelessPipeModule,
-        MaterialModule,
-        LocalCurrencyModule
-    ],
+  imports: [
+    CommonModule,
+    RouterModule,
+    ComputationalResourcesModule,
+    ConfirmationDialogModule,
+    BubbleModule,
+    DetailDialogModule,
+    ComputationalResourceCreateDialogModule,
+    FormControlsModule,
+    CostDetailsDialogModule,
+    InstallLibrariesModule,
+    SchedulerModule,
+    AmiCreateDialogModule,
+    UnderscorelessPipeModule,
+    MaterialModule,
+    LocalCurrencyModule
+  ],
   declarations: [ResourcesGridComponent],
   exports: [ResourcesGridComponent]
 })
-export class ResourcesGridModule {}
+export class ResourcesGridModule { }
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/resources-grid/resources-grid.component.html b/services/self-service/src/main/resources/webapp/src/app/resources/resources-grid/resources-grid.component.html
index bb20c4e..738827b 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/resources-grid/resources-grid.component.html
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/resources-grid/resources-grid.component.html
@@ -19,8 +19,13 @@
 
 <section class="table-wrapper resources-wrapper">
   <div class="table-wrapper scrolling">
-    <table mat-table [dataSource]="filteredEnvironments" multiTemplateDataRows
-           class="data-grid resources mat-elevation-z6" [trackBy]="trackBy">
+    <table 
+      mat-table 
+      [dataSource]="filteredEnvironments" 
+      multiTemplateDataRows
+      class="data-grid resources mat-elevation-z6" 
+      [trackBy]="trackBy"
+    >
 
       <ng-container matColumnDef="project">
         <td mat-cell *matCellDef="let element" [attr.colspan]="8" class="project-name"> {{ element.project }} </td>
@@ -50,6 +55,7 @@
           </button>
         </th>
       </ng-container>
+
       <ng-container matColumnDef="statuses">
         <th mat-header-cell *matHeaderCellDef class="status-col label-header">
           <span class="label"> Status </span>
@@ -61,6 +67,7 @@
           </button>
         </th>
       </ng-container>
+
       <ng-container matColumnDef="shapes">
         <th mat-header-cell *matHeaderCellDef class="shape-col label-header">
           <span class="label"> Shape </span>
@@ -72,6 +79,7 @@
           </button>
         </th>
       </ng-container>
+
       <ng-container matColumnDef="tag">
         <th mat-header-cell *matHeaderCellDef class="tag-col label-header">
           <span class="label"> Tags </span>
@@ -82,6 +90,7 @@
           </button>
         </th>
       </ng-container>
+
       <ng-container matColumnDef="resources">
         <th mat-header-cell *matHeaderCellDef class="resources-col label-header">
           <span class="label"> Compute </span>
@@ -93,6 +102,7 @@
           </button>
         </th>
       </ng-container>
+
       <ng-container matColumnDef="cost">
         <th mat-header-cell *matHeaderCellDef class="cost-col label-header">
           <span class="label"> Cost </span>
@@ -103,6 +113,7 @@
           </button>
         </th>
       </ng-container>
+
       <ng-container matColumnDef="actions" stickyEnd>
         <th mat-header-cell *matHeaderCellDef class="settings label-header">
           <span class="label"> Actions </span>
@@ -126,9 +137,10 @@
                 {{ element.name }}
               </span>
               <ng-template #odahu>
-                <span [matTooltip]=" element.name "
-                      matTooltipPosition="above"
-                      (click)="printDetailOdahuModal(element)"
+                <span 
+                  [matTooltip]=" element.name "
+                  matTooltipPosition="above"
+                  (click)="printDetailOdahuModal(element)"
                 >
                   {{ element.name }}
                 </span>
@@ -165,57 +177,86 @@
             </td>
 
             <td class="resources-col">
-              <computational-resources-list [resources]="element.resources" [environment]="element"
-                                            (buildGrid)="buildGrid()">
-              </computational-resources-list>
+              <computational-resources-list 
+                [resources]="element.resources" 
+                [environment]="element"
+                (buildGrid)="buildGrid()"
+              ></computational-resources-list>
             </td>
             <td *ngIf="healthStatus?.billingEnabled" class="cost-col">
               <span class="total_cost">{{ element.billing?.report_lines?.length ? (element.cost | localcurrency) : 'N/A' }}</span>
-              <span (click)="element.billing && printCostDetails(element)" class="currency_details"
-                    [ngClass]="{ 'not-allowed' : !element.billing?.report_lines?.length }">
-              <i class="material-icons">help_outline</i>
-            </span>
+              <span 
+                (click)="element.billing && printCostDetails(element)" 
+                class="currency_details"
+                [ngClass]="{ 'not-allowed' : !element.billing?.report_lines?.length }"
+              >
+                <i class="material-icons">help_outline</i>
+              </span>
             </td>
 
             <td class="settings">
-            <span #settings (click)="actions.toggle($event, settings)" class="actions"
-                  [ngClass]="{ 'disabled': element.status.toLowerCase() === 'creating'
-              || (element.image === 'docker.datalab-superset' && element.status !== 'running' && element.status !== 'stopped')
-              || (element.image === 'docker.datalab-jupyterlab' && element.status !== 'running' && element.status !== 'stopped') }">
-            </span>
+            <span 
+              #settings 
+              (click)="actions.toggle($event, settings)" 
+              class="actions"
+              [ngClass]="{ 'disabled': element.status.toLowerCase() === 'creating'
+                || (element.image === 'docker.datalab-superset' && element.status !== 'running' && element.status !== 'stopped')
+                || (element.image === 'docker.datalab-jupyterlab' && element.status !== 'running' && element.status !== 'stopped') }"
+              ></span>
 
               <bubble-up #actions class="list-menu scrolling" position="bottom-left" alternative="top-left">
                 <ul class="list-unstyled" *ngIf="element.shape !== 'odahu cluster'">
-                  <div class="active-items" *ngIf="element.status.toLowerCase() !== 'failed'
-                && element.status !== 'terminating'
-                && element.status !== 'terminated'
-                && element.status !== 'creating image'">
+                  <div 
+                    class="active-items" 
+                    *ngIf="element.status.toLowerCase() !== 'failed'
+                      && element.status !== 'terminating'
+                      && element.status !== 'terminated'
+                      && element.status !== 'creating image'"
+                  >
                     <li
-                      *ngIf="element.status !== 'stopped' && element.status !== 'stopping' && element.status !== 'starting' && element.status !== 'creating image' && element.status.toLowerCase() !== 'reconfiguring'"
+                      *ngIf="element.status !== 'stopped' && element.status !== 'stopping' 
+                        && element.status !== 'starting' && element.status !== 'creating image' 
+                        && element.status.toLowerCase() !== 'reconfiguring'"
                       matTooltip="Unable to stop notebook because at least one compute is in progress"
-                      matTooltipPosition="above" [matTooltipDisabled]="!isResourcesInProgress(element)">
-                      <div (click)="exploratoryAction(element, 'stop')"
-                           [ngClass]="{'not-allowed': isResourcesInProgress(element) }">
+                      matTooltipPosition="above" 
+                      [matTooltipDisabled]="!isResourcesInProgress(element)"
+                    >
+                      <div 
+                        (click)="exploratoryAction(element, 'stop')"
+                        [ngClass]="{'not-allowed': isResourcesInProgress(element) }"
+                      >
                         <i class="material-icons">pause_circle_outline</i>
                         <span>Stop</span>
                       </div>
                     </li>
-                    <li *ngIf="element.status.toLowerCase() === 'stopped' || element.status.toLowerCase() === 'stopping'"
-                        matTooltip="{{element.edgeNodeStatus !== 'running' ? 'Unable to run notebook if edge node is not running.' : 'Unable to run notebook until it will be stopped.'}}" matTooltipPosition="above"
-                        [matTooltipDisabled]="!isResourcesInProgress(element) && element.status.toLowerCase() !== 'stopping' && element.edgeNodeStatus === 'running'"
-                        [ngClass]="{'not-allow': isResourcesInProgress(element) || element.status.toLowerCase() === 'stopping' || element.edgeNodeStatus !== 'running' }"
+                    <li 
+                      *ngIf="element.status.toLowerCase() === 'stopped' || element.status.toLowerCase() === 'stopping'"
+                      matTooltip="{{element.edgeNodeStatus !== 'running' 
+                        ? 'Unable to run notebook if edge node is not running.' 
+                        : 'Unable to run notebook until it will be stopped.'}}" 
+                      matTooltipPosition="above"
+                      [matTooltipDisabled]="!isResourcesInProgress(element) && element.status.toLowerCase() !== 'stopping' 
+                        && element.edgeNodeStatus === 'running'"
+                      [ngClass]="{'not-allow': isResourcesInProgress(element) || element.status.toLowerCase() === 'stopping' 
+                        || element.edgeNodeStatus !== 'running' }"
                     >
-                      <div (click)="exploratoryAction(element, 'run')"
-                           [ngClass]="{'not-allowed': isResourcesInProgress(element) || element.status.toLowerCase() === 'stopping' || element.edgeNodeStatus !== 'running' }">
+                      <div 
+                        (click)="exploratoryAction(element, 'run')"
+                        [ngClass]="{'not-allowed': isResourcesInProgress(element) || element.status.toLowerCase() === 'stopping' 
+                          || element.edgeNodeStatus !== 'running' }">
                         <i class="material-icons">play_circle_outline</i>
                         <span>Run</span>
                       </div>
                     </li>
-                    <li *ngIf="element.status.toLowerCase() === 'running' || element.status.toLowerCase() === 'stopped'"
-                        matTooltip="Unable to terminate notebook because at least one compute is in progress"
-                        matTooltipPosition="above" [matTooltipDisabled]="!isResourcesInProgress(element)">
-                      <div (click)="exploratoryAction(element, 'terminate')"
-                           [ngClass]="{'not-allowed': isResourcesInProgress(element) }">
+                    <li 
+                      *ngIf="element.status.toLowerCase() === 'running' || element.status.toLowerCase() === 'stopped'"
+                      matTooltip="Unable to terminate notebook because at least one compute is in progress"
+                      matTooltipPosition="above" [matTooltipDisabled]="!isResourcesInProgress(element)"
+                    >
+                      <div 
+                        (click)="exploratoryAction(element, 'terminate')"
+                        [ngClass]="{'not-allowed': isResourcesInProgress(element) }"
+                      >
                         <i class="material-icons">phonelink_off</i>
                         <span>Terminate</span>
                       </div>
@@ -223,7 +264,8 @@
                     <li
                       *ngIf="element.status === 'running' && element.image !== 'docker.datalab-superset' && element.image !== 'docker.datalab-jupyterlab'"
                       matTooltip="Only one compute can be associated with analytical tool at a time"
-                      matTooltipPosition="above" [matTooltipDisabled]="!element.activeCompute"
+                      matTooltipPosition="above" 
+                      [matTooltipDisabled]="!element.activeCompute"
                       [matTooltipClass]="'full-size-tooltip'"
                       [ngClass]="{'not-allow': element.activeCompute }"
                     >
@@ -235,8 +277,11 @@
                         <span>Add compute</span>
                       </div>
                     </li>
-                    <li (click)="exploratoryAction(element, 'schedule')" *ngIf="element.status.toLowerCase() === 'running'
-                || element.status.toLowerCase() === 'stopped'">
+                    <li 
+                      (click)="exploratoryAction(element, 'schedule')" 
+                      *ngIf="element.status.toLowerCase() === 'running'
+                        || element.status.toLowerCase() === 'stopped'"
+                    >
                       <div>
                         <i class="material-icons">schedule</i>
                         <span>Scheduler</span>
@@ -244,20 +289,26 @@
                     </li>
                   </div>
                   <li
-                      matTooltip="You can create an image after the library installation is complete"
-                      matTooltipPosition="above" [matTooltipDisabled]="!checkLibStatus(element)"
-                      [matTooltipClass]="'full-size-tooltip'"
-                      [ngClass]="{'not-allow': checkLibStatus(element) }" 
-                      *ngIf="element.status === 'running'  && element.image !== 'docker.datalab-superset' && element.image !== 'docker.datalab-jupyterlab'">
+                    matTooltip="You can create an image after the library installation is complete"
+                    matTooltipPosition="above" 
+                    [matTooltipDisabled]="!checkLibStatus(element)"
+                    [matTooltipClass]="'full-size-tooltip'"
+                    [ngClass]="{'not-allow': checkLibStatus(element) }" 
+                    *ngIf="element.status === 'running'  && element.image !== 'docker.datalab-superset' 
+                      && element.image !== 'docker.datalab-jupyterlab'"
+                  >
                     <div 
                       (click)="exploratoryAction(element, 'ami')"
-                      [ngClass]="{'not-allowed': checkLibStatus(element) }">
+                      [ngClass]="{'not-allowed': checkLibStatus(element) }"
+                    >
                       <i class="material-icons">view_module</i>
                       <span>Create AMI</span>
                     </div>
                   </li>
-                  <li (click)="exploratoryAction(element, 'install')"
-                      *ngIf="element.image !== 'docker.datalab-superset' && element.image !== 'docker.datalab-jupyterlab'">
+                  <li 
+                    (click)="exploratoryAction(element, 'install')"
+                    *ngIf="element.image !== 'docker.datalab-superset' && element.image !== 'docker.datalab-jupyterlab'"
+                  >
                     <div>
                       <i class="material-icons">developer_board</i>
                       <span>Manage libraries</span>
@@ -294,9 +345,12 @@
                       </a>
                     </div>
                   </li>
-                  <li class="project-seting-item"
-                      [ngClass]="{'disabled': element.status === 'stopped' || element.status.toLowerCase() === 'stopping' || element.status.toLowerCase() === 'starting'}"
-                      *ngIf="element.status === element.status !== 'terminated' && element.status !== 'terminating'" (click)="odahuAction(element, 'terminate')"
+                  <li 
+                    class="project-seting-item"
+                    [ngClass]="{'disabled': element.status === 'stopped' || element.status.toLowerCase() === 'stopping' 
+                      || element.status.toLowerCase() === 'starting'}"
+                    *ngIf="element.status === element.status !== 'terminated' && element.status !== 'terminating'" 
+                    (click)="odahuAction(element, 'terminate')"
                   >
                     <div>
                       <i class="material-icons">phonelink_off</i>
@@ -316,40 +370,51 @@
       <ng-container matColumnDef="name-filter" sticky>
         <th mat-header-cell *matHeaderCellDef class="name-col filter-row-item ">
           <div class="input-wrapper">
-            <input placeholder="Filter by environment name" type="text" class="form-control filter-field"
-                   [value]="filterForm.name" (input)="onFilterNameUpdate($event.target['value'])"/>
+            <input 
+              placeholder="Filter by environment name" 
+              type="text" 
+              class="form-control filter-field"
+              [value]="filterForm.name" 
+              (input)="onFilterNameUpdate($event.target['value'])"
+            />
           </div>
         </th>
       </ng-container>
       <ng-container matColumnDef="status-filter">
         <th mat-header-cell *matHeaderCellDef class="status-col filter-row-item">
-          <multi-select-dropdown (selectionChange)="onUpdate($event)" [type]="'statuses'"
-                                 [items]="filterConfiguration.statuses" [model]="filterForm.statuses"></multi-select-dropdown>
+          <multi-select-dropdown 
+            (selectionChange)="onUpdate($event)" 
+            [type]="'statuses'"
+            [items]="filterConfiguration.statuses" 
+            [model]="filterForm.statuses"
+          ></multi-select-dropdown>
         </th>
       </ng-container>
       <ng-container matColumnDef="shape-filter">
         <th mat-header-cell *matHeaderCellDef class="shape-col filter-row-item">
-          <multi-select-dropdown (selectionChange)="onUpdate($event)"
-                                 [type]="'shapes'" [items]="filterConfiguration.shapes"
-                                 [model]="filterForm.shapes"></multi-select-dropdown>
+          <multi-select-dropdown 
+            (selectionChange)="onUpdate($event)"
+            [type]="'shapes'" 
+            [items]="filterConfiguration.shapes"
+            [model]="filterForm.shapes"
+          ></multi-select-dropdown>
         </th>
       </ng-container>
       <ng-container matColumnDef="tag-filter">
-        <th mat-header-cell *matHeaderCellDef class="tag-col filter-row-item">
-
-
-        </th>
+        <th mat-header-cell *matHeaderCellDef class="tag-col filter-row-item"></th>
       </ng-container>
       <ng-container matColumnDef="resource-filter">
         <th mat-header-cell *matHeaderCellDef class="resources-col filter-row-item">
-          <multi-select-dropdown (selectionChange)="onUpdate($event)" [type]="'resources'"
-                                 [items]="filterConfiguration.resources" [model]="filterForm.resources"></multi-select-dropdown>
+          <multi-select-dropdown 
+            (selectionChange)="onUpdate($event)" 
+            [type]="'resources'"
+            [items]="filterConfiguration.resources" 
+            [model]="filterForm.resources"
+          ></multi-select-dropdown>
         </th>
       </ng-container>
       <ng-container matColumnDef="cost-filter">
-        <th mat-header-cell *matHeaderCellDef class="cost-col filter-row-item">
-
-        </th>
+        <th mat-header-cell *matHeaderCellDef class="cost-col filter-row-item"></th>
       </ng-container>
 
       <ng-container matColumnDef="action-filter" stickyEnd>
@@ -359,19 +424,27 @@
               <i class="material-icons">close</i>
             </button>
 
-            <button mat-icon-button class="btn apply" (click)="applyFilter_btnClick(filterForm)"
-                    [disabled]="!isFilterChanged">
+            <button 
+              mat-icon-button 
+              class="btn apply" 
+              (click)="applyFilter_btnClick(filterForm)"
+              [disabled]="!isFilterChanged"
+            >
               <i class="material-icons">done</i>
             </button>
           </div>
         </th>
       </ng-container>
       <ng-container matColumnDef="placeholder">
-        <td mat-footer-cell *matFooterCellDef
-            [colSpan]="!healthStatus?.billingEnabled ? displayedFilterColumns.length -1 : displayedFilterColumns.length"
-            class="info">
-        <span *ngIf="(!filteredEnvironments) && !filtering || (filteredEnvironments.length == 0) && !filtering">
-          To start working, please, create new environment</span>
+        <td 
+          mat-footer-cell 
+          *matFooterCellDef
+          [colSpan]="!healthStatus?.billingEnabled ? displayedFilterColumns.length -1 : displayedFilterColumns.length"
+          class="info"
+        >
+          <span *ngIf="(!filteredEnvironments) && !filtering || (filteredEnvironments.length == 0) && !filtering">
+            To start working, please, create new environment
+          </span>
           <span *ngIf="(filteredEnvironments.length == 0) && filtering">No matches found</span>
         </td>
       </ng-container>
@@ -380,8 +453,12 @@
 
       <tr mat-header-row *matHeaderRowDef="displayedColumns; sticky: true" class="header-row"></tr>
 
-      <tr [hidden]="!collapseFilterRow" mat-header-row *matHeaderRowDef="displayedFilterColumns; sticky: true"
-          class="filter-row"></tr>
+      <tr 
+        [hidden]="!collapseFilterRow" 
+        mat-header-row 
+        *matHeaderRowDef="displayedFilterColumns; sticky: true"
+        class="filter-row"
+      ></tr>
 
       <tr mat-row *matRowDef="let element; columns: ['project']" class="element-row">
         <!--      [class.expanded-row]="expandedElement === element"-->
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/resources-grid/resources-grid.component.scss b/services/self-service/src/main/resources/webapp/src/app/resources/resources-grid/resources-grid.component.scss
index 5c7e81b..6728ed7 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/resources-grid/resources-grid.component.scss
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/resources-grid/resources-grid.component.scss
@@ -23,16 +23,16 @@
   width: 100%;
 }
 
-.resources-wrapper{
+.resources-wrapper {
   height: calc(100vh - 105px);
-  overflow: hidden;
-  margin:  -15px;
+  margin: -15px;
   padding: 15px;
-  .table-wrapper{
-    overflow: auto;
+  overflow: hidden;
+  .table-wrapper {
     height: calc(100vh - 115px);
-    margin:  0 -15px -15px -15px;
+    margin: 0 -15px -15px -15px;
     padding: 0 15px 15px 15px;
+    overflow: auto;
   }
 }
 
@@ -42,13 +42,13 @@
 
   .header-row {
     position: sticky;
-    background-clip:padding-box;
     z-index: 1;
+    background-clip: padding-box;
     th {
       padding: 5px;
       padding-left: 20px;
 
-      .mat-icon-button{
+      .mat-icon-button {
         line-height: 45px;
       }
     }
@@ -61,7 +61,7 @@
     }
   }
 
-  .filter-field{
+  .filter-field {
     font-size: 13px;
     padding-left: 10px;
   }
@@ -75,20 +75,19 @@
       height: initial;
 
       td {
-        padding: 5px;
-        padding-left: 20px;
         display: flex;
         align-items: center;
+        padding: 5px 5px 5px 20px;
 
         &.name-col {
           padding-left: 21px;
           overflow: hidden;
-          span{
+          span {
             cursor: pointer;
           }
         }
 
-        &.shape-col{
+        &.shape-col {
           align-items: start;
           flex-direction: column;
           justify-content: center;
@@ -112,13 +111,12 @@
   }
 
   .filter-row {
-    background-clip:padding-box;
+    background-clip: padding-box;
 
     th {
       padding: 5px;
       background-clip: padding-box;
 
-
       &:last-child {
         padding-right: 6px;
       }
@@ -132,21 +130,20 @@
     background-color: inherit;
   }
 
-  .project-name{
+  .project-name {
     font-weight: 600;
     color: #577289;
     padding-left: 21px;
   }
 
-
   .status-col {
     width: 11%;
   }
 
-  .shape-col{
+  .shape-col {
     width: 13%;
     color: #577289;
-    .label{
+    .label {
       color: $table-header-color;
     }
   }
@@ -155,14 +152,14 @@
     width: 13%;
 
     mat-chip {
+      display: inline-block;
       min-height: 20px;
+      max-width: 110px !important;
+      margin: 2px;
       padding: 5px 10px;
       font-size: 13px;
-      max-width: 110px !important;
       white-space: nowrap;
-      display: inline-block;
       line-height: 10px;
-      margin: 2px;
     }
   }
 
@@ -175,12 +172,12 @@
     justify-content: space-between;
   }
 
-  .label-header{
-    &.cost-col{
+  .label-header {
+    &.cost-col {
       z-index: 6 !important;
     }
 
-    &.status-col{
+    &.status-col {
       z-index: 10 !important;
     }
 
@@ -203,24 +200,26 @@
 
   .actions-col {
     padding-right: 24px;
+    z-index: 5 !important;
     text-align: right;
     background-color: inherit;
-    z-index: 5 !important;
-    .label{
+
+    .label {
       padding-right: 5px;
     }
   }
+
   tr.detail-row {
     height: 0;
   }
-  
+
   .element-diagram {
-    min-width: 80px;
-    border: 2px solid black;
-    padding: 8px;
-    font-weight: lighter;
-    margin: 8px 0;
     height: 104px;
+    min-width: 80px;
+    padding: 8px;
+    margin: 8px 0;
+    border: 2px solid black;
+    font-weight: lighter;
   }
 
   .element-symbol {
@@ -237,23 +236,19 @@
     opacity: 0.5;
   }
 
-
-
   .dashboard_table {
     width: 100%;
     table-layout: fixed;
   }
 
-
-
   .dashboard_table tr {
     vertical-align: top;
   }
 
   .dashboard_table tr th span {
     width: 50px;
-    text-align: center;
     height: 100%;
+    text-align: center;
     line-height: 40px;
   }
 
@@ -280,8 +275,8 @@
     cursor: pointer;
     overflow: hidden;
     text-overflow: ellipsis;
-    &::after{
-      content: '';
+    &::after {
+      content: "";
       display: block;
     }
   }
@@ -307,15 +302,15 @@
   }
 
   .dashboard_table th {
+    padding-left: 12px;
     background: #a1b7d1;
     color: #fff;
     font-weight: 600;
     line-height: 40px;
     text-transform: uppercase;
-    padding-left: 12px;
     font-size: 13px;
   }
-  
+
   &.data-grid .status-col .status {
     text-transform: capitalize;
   }
@@ -332,10 +327,10 @@
 
   .currency_details {
     display: flex;
+    padding-left: 10px;
     color: #35afd5;
     cursor: pointer;
     transition: all 0.45s ease-in-out;
-    padding-left: 10px;
   }
 
   .currency_details:hover {
@@ -357,39 +352,38 @@
     text-align: center;
   }
 
-  .content-row{
+  .content-row {
     background-clip: padding-box;
   }
 
-  .not-allow{
+  .not-allow {
     cursor: not-allowed !important;
   }
 }
 
 .data-grid .list-menu {
   left: auto;
-  margin-left: 0;
   right: 15px;
-  padding: 10px 15px;
-  box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2),
-  0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12);
-  border: none;
   min-width: 190px;
   max-height: calc(100vh / 2 - 70px);
+  margin-left: 0;
+  padding: 10px 15px;
+  box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12);
+  border: none;
 }
 
 .settings:not(.label-header) {
   position: relative;
-  text-align: right;
   width: 6%;
   padding-right: 15px !important;
   justify-content: flex-end;
+  text-align: right;
 
   .actions {
-    background-image: url(../../../assets/svg/settings_icon.svg);
+    display: inline-block;
     width: 16px;
     height: 16px;
-    display: inline-block;
+    background-image: url(../../../assets/svg/settings_icon.svg);
     text-align: center;
     cursor: pointer;
   }
@@ -401,16 +395,16 @@
   }
 }
 
-
 .data-grid .list-menu li {
+  margin: 5px -5px;
+  padding-bottom: 5px;
   font-size: 13px;
   border-bottom: 1px solid #edf1f5;
-  padding-bottom: 5px;
   cursor: pointer;
-  margin: 5px -5px;
   color: #577289;
   transition: all 0.45s ease-in-out;
-  div{
+
+  div {
     padding: 8px 15px;
   }
 }
@@ -422,8 +416,8 @@
 }
 
 .data-grid .list-menu li i {
-  font-size: 18px;
   padding-right: 5px;
+  font-size: 18px;
   vertical-align: bottom;
 }
 
@@ -457,18 +451,16 @@
   }
 }
 
-
-
 .info {
   padding: 40px;
   text-align: center;
 }
 
-.odahu-icon{
+.odahu-icon {
   vertical-align: middle;
   margin-left: 10px;
 }
 
-.content-row{
+.content-row {
   background-clip: padding-box;
 }
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/resources-grid/resources-grid.component.ts b/services/self-service/src/main/resources/webapp/src/app/resources/resources-grid/resources-grid.component.ts
index f9347a8..997b07b 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/resources-grid/resources-grid.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/resources-grid/resources-grid.component.ts
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-import {Project} from '../../administration/project/project.component';
+import { Project } from '../../administration/project/project.component';
 import {
   Component,
   EventEmitter,
@@ -28,7 +28,7 @@
 import { animate, state, style, transition, trigger } from '@angular/animations';
 import { ToastrService } from 'ngx-toastr';
 import { MatDialog } from '@angular/material/dialog';
-import {ProjectService, UserResourceService, OdahuDeploymentService} from '../../core/services';
+import { ProjectService, UserResourceService, OdahuDeploymentService } from '../../core/services';
 import { ExploratoryModel } from './resources-grid.model';
 import { FilterConfigurationModel } from './filter-configuration.model';
 import { GeneralEnvironmentStatus } from '../../administration/management/management.model';
@@ -42,13 +42,12 @@
 import { ConfirmationDialogComponent } from '../../shared/modal-dialog/confirmation-dialog';
 import { SchedulerComponent } from '../scheduler';
 import { DICTIONARY } from '../../../dictionary/global.dictionary';
-import {ProgressBarService} from '../../core/services/progress-bar.service';
-import {ComputationModel} from '../computational/computational-resource.model';
-import {NotebookModel} from '../exploratory/notebook.model';
-import {AuditService} from '../../core/services/audit.service';
-import {CompareUtils} from '../../core/util/compareUtils';
-import {timer} from 'rxjs';
-import {OdahuActionDialogComponent} from '../../shared/modal-dialog/odahu-action-dialog';
+import { ProgressBarService } from '../../core/services/progress-bar.service';
+import { ComputationModel } from '../computational/computational-resource.model';
+import { NotebookModel } from '../exploratory/notebook.model';
+import { AuditService } from '../../core/services/audit.service';
+import { CompareUtils } from '../../core/util/compareUtils';
+import { OdahuActionDialogComponent } from '../../shared/modal-dialog/odahu-action-dialog';
 
 export interface SharedEndpoint {
   edge_node_ip: string;
@@ -112,7 +111,6 @@
   public filterConfiguration: FilterConfigurationModel = new FilterConfigurationModel('', [], [], [], '', '');
   public filterForm: FilterConfigurationModel = new FilterConfigurationModel('', [], [], [], '', '');
 
-
   public filteringColumns: Array<any> = [
     { title: 'Environment name', name: 'name', class: 'name-col', filter_class: 'name-filter', filtering: true },
     { title: 'Status', name: 'statuses', class: 'status-col', filter_class: 'status-filter', filtering: true },
@@ -155,15 +153,18 @@
   public buildGrid(): void {
     this.progressBarService.startProgressBar();
     this.userResourceService.getUserProvisionedResources()
-      .subscribe((result: any) => {
-        this.environments = ExploratoryModel.loadEnvironments(result);
-        this.getEnvironments.emit(this.environments);
-        this.getBuckets();
-        this.getDefaultFilterConfiguration();
-        (this.environments.length) ? this.getUserPreferences() : this.filteredEnvironments = [];
-        this.healthStatus && !this.healthStatus.billingEnabled && this.modifyGrid();
-        this.progressBarService.stopProgressBar();
-        }, () => this.progressBarService.stopProgressBar());
+      .subscribe(
+        (result: any) => {
+          this.environments = ExploratoryModel.loadEnvironments(result);
+          this.getEnvironments.emit(this.environments);
+          this.getBuckets();
+          this.getDefaultFilterConfiguration();
+          (this.environments.length) ? this.getUserPreferences() : this.filteredEnvironments = [];
+          this.healthStatus && !this.healthStatus.billingEnabled && this.modifyGrid();
+          this.progressBarService.stopProgressBar();
+        }, 
+        () => this.progressBarService.stopProgressBar()
+      );
   }
 
   public toggleFilterRow(): void {
@@ -193,12 +194,11 @@
 
   public containsNotebook(notebook_name: string, envoirmentNames: Array<string>): boolean {
     if (notebook_name && envoirmentNames.length ) {
-        return envoirmentNames
-          .some(item => CheckUtils.delimitersFiltering(notebook_name) === CheckUtils.delimitersFiltering(item));
-      }
+      return envoirmentNames
+        .some(item => CheckUtils.delimitersFiltering(notebook_name) === CheckUtils.delimitersFiltering(item));
+    }
       return false;
-   }
-
+  }
 
   public isResourcesInProgress(notebook): boolean {
     const env = this.getResourceByName(notebook.name, notebook.project);
@@ -227,14 +227,19 @@
 
   public printDetailEnvironmentModal(data): void {
     this.dialog.open(DetailDialogComponent, { data:
-        {notebook: data, bucketStatus: this.healthStatus.bucketBrowser, buckets: this.bucketsList, type: 'resource'},
+      { 
+        notebook: data, 
+        bucketStatus: this.healthStatus.bucketBrowser, 
+        buckets: this.bucketsList, 
+        type: 'resource'
+      },
       panelClass: 'modal-lg'
     })
       .afterClosed().subscribe(() => this.buildGrid());
   }
 
   public printDetailOdahuModal(data): void {
-    this.dialog.open(DetailDialogComponent, { data: {odahu: data}, panelClass: 'modal-lg' })
+    this.dialog.open(DetailDialogComponent, { data: { odahu: data }, panelClass: 'modal-lg' })
       .afterClosed().subscribe(() => this.buildGrid());
   }
 
@@ -246,7 +251,13 @@
   public exploratoryAction(data, action: string): void {
     const resource = this.getResourceByName(data.name, data.project);
     if (action === 'deploy') {
-      this.dialog.open(ComputationalResourceCreateDialogComponent, { data: { notebook: resource, full_list: this.environments }, panelClass: 'modal-xxl' })
+      this.dialog.open(ComputationalResourceCreateDialogComponent, { data: 
+        { 
+          notebook: resource, 
+          full_list: this.environments 
+        }, 
+        panelClass: 'modal-xxl' 
+      })
         .afterClosed().subscribe((res) => {
         res && this.buildGrid();
       });
@@ -266,7 +277,13 @@
     } else if (action === 'terminate') {
       const compute =  data.resources.filter(cluster => cluster.status === 'running' || cluster.status === 'stopped');
       this.dialog.open(ConfirmationDialogComponent, { data:
-          { notebook: data, compute, type: ConfirmationDialogType.TerminateExploratory }, panelClass: 'modal-sm' })
+        { 
+          notebook: data, 
+          compute, 
+          type: ConfirmationDialogType.TerminateExploratory 
+        }, 
+        panelClass: 'modal-sm' 
+      })
         .afterClosed().subscribe((res) => res && this.buildGrid());
     } else if (action === 'install') {
       this.dialog.open(InstallLibrariesComponent, { data: data, panelClass: 'modal-fullscreen' })
@@ -287,7 +304,11 @@
         project.endpoints.forEach((endpoint: ProjectEndpoint) => {
           if (endpoint.status === 'ACTIVE') {
             const currEndpoint: SharedEndpoint = project.projectEndpoints[endpoint.name];
-            const edgeItem: BucketList = {name: `${project.project} (${endpoint.name})`, children: [], cloud: endpoint.cloudProvider};
+            const edgeItem: BucketList = {
+              name: `${project.project} (${endpoint.name})`, 
+              children: [], 
+              cloud: endpoint.cloudProvider
+            };
             let projectBucket: string = currEndpoint.user_own_bicket_name
               || currEndpoint.user_own_bucket_name;
             if (currEndpoint.user_container_name) {
@@ -313,10 +334,10 @@
     this.bucketsList = SortUtils.flatDeep(bucketsList, 1).filter(v => v.children.length);
   }
 
-
   // PRIVATE
   private getResourceByName(notebook_name: string, project_name: string) {
-    return this.getEnvironmentsListCopy().filter(environments => environments.project === project_name)
+    return this.getEnvironmentsListCopy()
+      .filter(environments => environments.project === project_name)
       .map(env => env.exploratory.find(({ name }) => name === notebook_name))
       .filter(name => !!name)[0];
   }
@@ -359,6 +380,7 @@
     if (filteredData.some((v) => v.exploratory.length)) {
       this.filtering = true;
     }
+
     if (config) {
       this.activeProject = config.project;
       filteredData = filteredData
@@ -443,14 +465,17 @@
 
   private getUserPreferences(): void {
     this.userResourceService.getUserPreferences()
-      .subscribe((result: FilterConfigurationModel) => {
-        if (result) {
-          this.isActiveFilter(result);
-          this.filterForm = this.loadUserPreferences(result.type ? this.filterActiveInstances() : this.aliveStatuses(result));
-        }
-        this.applyFilter_btnClick(result || this.filterForm);
-        this.checkFilters();
-      }, () => this.applyFilter_btnClick(null));
+      .subscribe(
+        (result: FilterConfigurationModel) => {
+          if (result) {
+            this.isActiveFilter(result);
+            this.filterForm = this.loadUserPreferences(result.type ? this.filterActiveInstances() : this.aliveStatuses(result));
+          }
+          this.applyFilter_btnClick(result || this.filterForm);
+          this.checkFilters();
+        }, 
+        () => this.applyFilter_btnClick(null)
+      );
   }
 
   private loadUserPreferences(config): FilterConfigurationModel {
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/resources.component.html b/services/self-service/src/main/resources/webapp/src/app/resources/resources.component.html
index 94366f6..43aaf5a 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/resources.component.html
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/resources.component.html
@@ -26,10 +26,14 @@
         [matTooltipClass]="'full-size-tooltip'"
         [matTooltipDisabled]="healthStatus?.projectAssigned && resourcesGrid.activeProjectsList?.length !== 0"
       >
-      <button mat-raised-button class="butt butt-create" (click)="createEnvironment()"
-        [disabled]="!healthStatus?.projectAssigned || !resourcesGrid.activeProjectsList?.length">
-        <i class="material-icons">add</i>Create new
-      </button>
+        <button 
+          mat-raised-button 
+          class="butt butt-create" 
+          (click)="createEnvironment()"
+          [disabled]="!healthStatus?.projectAssigned || !resourcesGrid.activeProjectsList?.length"
+        >
+          <i class="material-icons">add</i>Create new
+        </button>
       </span>
       <div class="mat-reset">
         <div class="control selector-wrapper" *ngIf="projects?.length">
@@ -39,19 +43,22 @@
             <mat-select 
               disableOptionCentering
               [(value)]="resourcesGrid.activeProject" 
-              panelClass="top-select scrolling">
+              panelClass="top-select scrolling"
+            >
               <mat-option 
                 *ngIf="projects?.length > 1" 
-                (click)="setActiveProject('')">Show all
+                (click)="setActiveProject('')"
+              >
+                Show all
               </mat-option>
               <mat-option 
                 *ngFor="let project of projects" 
                 [value]="project"
-                (click)="setActiveProject(project)">
+                (click)="setActiveProject(project)"
+              >
                 {{ project }}
               </mat-option>
-              <mat-option *ngIf="!projects?.length" class="multiple-select ml-10" disabled>Projects list is empty
-              </mat-option>
+              <mat-option *ngIf="!projects?.length" class="multiple-select ml-10" disabled>Projects list is empty</mat-option>
             </mat-select>
             <button class="caret">
               <i class="material-icons">keyboard_arrow_down</i>
@@ -62,13 +69,18 @@
     </div>
 
     <div>
-      <span  matTooltip="{{!this.bucketStatus?.view ? 'You have not permission to open bucket browser' : 'You have not any bucket'}}"
-             matTooltipPosition="above"
-             matTooltipDisabled="{{resourcesGrid.bucketsList?.length > 0 && this.bucketStatus?.view}}"
-             [matTooltipClass]="'full-size-tooltip'"
+      <span  
+        matTooltip="{{!this.bucketStatus?.view ? 'You have not permission to open bucket browser' : 'You have not any bucket'}}"
+        matTooltipPosition="above"
+        matTooltipDisabled="{{resourcesGrid.bucketsList?.length > 0 && this.bucketStatus?.view}}"
+        [matTooltipClass]="'full-size-tooltip'"
       >
-        <button mat-raised-button class="butt butt-tool" (click)="bucketBrowser(this.bucketStatus?.view)"
-                [disabled]="!this.bucketStatus?.view || resourcesGrid.bucketsList?.length === 0">
+        <button 
+          mat-raised-button 
+          class="butt butt-tool" 
+          (click)="bucketBrowser(this.bucketStatus?.view)"
+          [disabled]="!this.bucketStatus?.view || resourcesGrid.bucketsList?.length === 0"
+        >
           <i class="material-icons"></i>Bucket browser
         </button>
       </span>
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/resources.component.ts b/services/self-service/src/main/resources/webapp/src/app/resources/resources.component.ts
index a5185b0..9f53c46 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/resources.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/resources.component.ts
@@ -17,16 +17,15 @@
  * under the License.
  */
 
-import {AfterViewInit, Component, OnInit, ViewChild} from '@angular/core';
+import { AfterViewInit, Component, OnInit, ViewChild } from '@angular/core';
 import { ToastrService } from 'ngx-toastr';
 import { MatDialog } from '@angular/material/dialog';
 
 import { ResourcesGridComponent } from './resources-grid/resources-grid.component';
 import { ExploratoryEnvironmentCreateComponent } from './exploratory/create-environment';
-import {ApplicationSecurityService, HealthStatusService} from '../core/services';
+import { ApplicationSecurityService, HealthStatusService } from '../core/services';
 import { ManageUngitComponent } from './manage-ungit/manage-ungit.component';
-import {BucketBrowserComponent} from './bucket-browser/bucket-browser.component';
-
+import { BucketBrowserComponent } from './bucket-browser/bucket-browser.component';
 
 @Component({
   selector: 'datalab-resources',
@@ -69,8 +68,6 @@
     this.exploratoryEnvironments = this.resourcesGrid.environments;
   }
 
-
-
   public toggleFiltering(): void {
     if (this.resourcesGrid.activeFiltering) {
       this.resourcesGrid.resetFilterConfigurations();
@@ -93,7 +90,8 @@
           bucketStatus: this.bucketStatus,
           buckets: this.resourcesGrid.bucketsList
         },
-      panelClass: 'modal-fullscreen' })
+        panelClass: 'modal-fullscreen' 
+      })
       .afterClosed().subscribe();
   }
 
@@ -108,19 +106,16 @@
   }
 
   private checkAutorize() {
-   this.applicationSecurityService.isLoggedIn().subscribe( () => {
-     this.getEnvironmentHealthStatus();
-     }
-   );
+    this.applicationSecurityService.isLoggedIn().subscribe(() => {
+      this.getEnvironmentHealthStatus();
+    });
   }
 
-
   public getEnvironments(environment) {
     this.exploratoryEnvironments = environment;
     this.projects = environment.map(env => env.project);
   }
 
-
   private getEnvironmentHealthStatus() {
     this.healthStatusService.getEnvironmentHealthStatus().subscribe(
       (result: any) => {
@@ -128,6 +123,7 @@
         this.resourcesGrid.healthStatus = this.healthStatus;
         this.bucketStatus = this.healthStatus.bucketBrowser;
       },
-      error => this.toastr.error(error.message, 'Oops!'));
+      error => this.toastr.error(error.message, 'Oops!')
+    );
   }
 }
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/resources.module.ts b/services/self-service/src/main/resources/webapp/src/app/resources/resources.module.ts
index cd98dd5..47aea4c 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/resources.module.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/resources.module.ts
@@ -27,23 +27,23 @@
 import { ExploratoryEnvironmentCreateModule } from './exploratory/create-environment';
 import { ManageUngitComponent } from './manage-ungit/manage-ungit.component';
 import { ConfirmDeleteAccountDialogComponent } from './manage-ungit/manage-ungit.component';
-import {MatTreeModule} from '@angular/material/tree';
-import {BucketDataService} from './bucket-browser/bucket-data.service';
-import {ConvertFileSizePipeModule} from '../core/pipes/convert-file-size';
-import {BucketBrowserModule} from './bucket-browser/bucket-browser.module';
+import { MatTreeModule } from '@angular/material/tree';
+import { BucketDataService } from './bucket-browser/bucket-data.service';
+import { ConvertFileSizePipeModule } from '../core/pipes/convert-file-size';
+import { BucketBrowserModule } from './bucket-browser/bucket-browser.module';
 
 @NgModule({
-    imports: [
-        CommonModule,
-        FormsModule,
-        ReactiveFormsModule,
-        ResourcesGridModule,
-        ExploratoryEnvironmentCreateModule,
-        MaterialModule,
-        MatTreeModule,
-        ConvertFileSizePipeModule,
-        BucketBrowserModule
-    ],
+  imports: [
+    CommonModule,
+    FormsModule,
+    ReactiveFormsModule,
+    ResourcesGridModule,
+    ExploratoryEnvironmentCreateModule,
+    MaterialModule,
+    MatTreeModule,
+    ConvertFileSizePipeModule,
+    BucketBrowserModule
+  ],
   declarations: [
     ResourcesComponent,
     ManageUngitComponent,
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/scheduler/scheduler.component.html b/services/self-service/src/main/resources/webapp/src/app/resources/scheduler/scheduler.component.html
index eb81592..8db2137 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/scheduler/scheduler.component.html
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/scheduler/scheduler.component.html
@@ -35,55 +35,81 @@
             <span *ngIf="toggleSchedule" class="hold-label">Scheduler by time</span>
           </mat-slide-toggle>
           <div class="idle" *ngIf="destination.image !== 'docker.datalab-dataengine-service'">
-              <mat-slide-toggle labelPosition="before" [checked]="enableIdleTime" (change)="toggleIdleTimes($event)">
-                  <span *ngIf="toggleSchedule" class="hold-label">Scheduler by inactivity</span>
-              </mat-slide-toggle>
+            <mat-slide-toggle labelPosition="before" [checked]="enableIdleTime" (change)="toggleIdleTimes($event)">
+                <span *ngIf="toggleSchedule" class="hold-label">Scheduler by inactivity</span>
+            </mat-slide-toggle>
           </div>
         </div>
 
-          <div class="note m-bott-10" *ngIf="destination.image !== 'docker.datalab-dataengine-service'">
-              NOTE: In case of turning on inactivity time-check, your schedule
-              configuration will be decommissioned.
-          </div>
+        <div class="note m-bott-10" *ngIf="destination.image !== 'docker.datalab-dataengine-service'">
+            NOTE: In case of turning on inactivity time-check, your schedule
+            configuration will be decommissioned.
+        </div>
 
         <div class="control-group idle-control" [ngClass]="{ show: enableIdleTimeView }">
           <label class="label">Scheduler by inactivity, min</label>
           <div class="control">
-            <input type="text" class="form-control" placeholder="Enter time in min" formControlName="inactivityTime"
-              (keypress)="CheckUtils.isNumberKey($event)" (keydown.arrowup)="inactivityCounter($event, 'increment')"
-              (keydown.arrowdown)="inactivityCounter($event, 'decrement')" />
+            <input 
+              type="text" 
+              class="form-control" 
+              placeholder="Enter time in min" 
+              formControlName="inactivityTime"
+              (keypress)="CheckUtils.isNumberKey($event)" 
+              (keydown.arrowup)="inactivityCounter($event, 'increment')"
+              (keydown.arrowdown)="inactivityCounter($event, 'decrement')" 
+            />
             <span class="error" *ngIf="!schedulerForm.controls.inactivityTime.valid">
               <span>The value should be an integer greater than or equal to {{ inactivityLimits.min }} and
                 cannot exceed 1 week ({{ inactivityLimits.max }}) in min.</span>
             </span>
           </div>
         </div>
-          <div class="schedule-by-time" *ngIf="!enableIdleTimeView" [ngClass]="{ hide: enableIdleTimeView, resource: destination.type === 'СOMPUTATIONAL',
-                       des: destination.image === 'docker.datalab-dataengine-service' }">
-              <div class="row-wrap" *ngIf="destination.image !== 'docker.datalab-dataengine-service'">
-                  <div class="col-3">
-                      <mat-form-field>
-                          <input matInput [matDatepicker]="startDate" placeholder="Choose start date"
-                                 formControlName="startDate">
-                          <mat-datepicker-toggle
-
-                                  matSuffix [for]="startDate"
-                                  [ngClass]="{'not-allowed' : destination.type === 'СOMPUTATIONAL' && inherit || !enableSchedule }"></mat-datepicker-toggle>
-                          <mat-datepicker #startDate></mat-datepicker>
-                      </mat-form-field>
-                  </div>
-                  <div class="col-3">
+        <div 
+          class="schedule-by-time" 
+          *ngIf="!enableIdleTimeView" 
+          [ngClass]="{ hide: enableIdleTimeView, resource: destination.type === 'СOMPUTATIONAL',
+            des: destination.image === 'docker.datalab-dataengine-service' }"
+        >
+          <div class="row-wrap" *ngIf="destination.image !== 'docker.datalab-dataengine-service'">
+            <div class="col-3">
               <mat-form-field>
-                <input matInput [matDatepicker]="finishDate" placeholder="Choose finish date"
-                  formControlName="finishDate">
-                <mat-datepicker-toggle matSuffix [for]="finishDate" [ngClass]="{'not-allowed' : destination.type === 'СOMPUTATIONAL' && inherit || !enableSchedule }"></mat-datepicker-toggle>
+                <input 
+                  matInput 
+                  [matDatepicker]="startDate" 
+                  placeholder="Choose start date"
+                  formControlName="startDate"
+                />
+                <mat-datepicker-toggle
+                  matSuffix [for]="startDate"
+                  [ngClass]="{'not-allowed' : destination.type === 'СOMPUTATIONAL' && inherit || !enableSchedule }"
+                ></mat-datepicker-toggle>
+                <mat-datepicker #startDate></mat-datepicker>
+              </mat-form-field>
+            </div>
+            <div class="col-3">
+              <mat-form-field>
+                <input 
+                  matInput 
+                  [matDatepicker]="finishDate" 
+                  placeholder="Choose finish date"
+                  formControlName="finishDate"
+                />
+                <mat-datepicker-toggle 
+                  matSuffix 
+                  [for]="finishDate" 
+                  [ngClass]="{'not-allowed' : destination.type === 'СOMPUTATIONAL' && inherit || !enableSchedule }"
+                ></mat-datepicker-toggle>
                 <mat-datepicker #finishDate ></mat-datepicker>
               </mat-form-field>
             </div>
             <div class="col-3" *ngIf="destination.type === 'СOMPUTATIONAL'; else timezone">
               <mat-form-field>
-                <input matInput [matDatepicker]="terminateDate" placeholder="Choose terminate date"
-                  formControlName="terminateDate" >
+                <input 
+                  matInput 
+                  [matDatepicker]="terminateDate" 
+                  placeholder="Choose terminate date"
+                  formControlName="terminateDate" 
+                />
                 <mat-datepicker-toggle matSuffix [for]="terminateDate"></mat-datepicker-toggle>
                 <mat-datepicker #terminateDate></mat-datepicker>
               </mat-form-field>
@@ -102,90 +128,133 @@
             </ng-template>
           </div>
 
-              <div class="row-wrap" *ngIf="destination.image !== 'docker.datalab-dataengine-service'">
-                  <div class="control-group col-3 time-range">
-                      <datalab-time-picker [(pickTime)]="startTime" [(milisecTime)]="startTimeMilliseconds"
-                                           [label]="'Choose start time'"
-                                           [disable]="destination.type === 'СOMPUTATIONAL' && inherit || !enableSchedule">
-                          {{destination.type}}
-                      </datalab-time-picker>
-                  </div>
-                  <div class="control-group col-3 time-range">
-                      <datalab-time-picker [(pickTime)]="endTime" [(milisecTime)]="endTimeMilliseconds"
-                                           [label]="'Choose finish time'"
-                                           [disable]="destination.type === 'СOMPUTATIONAL' && inherit ||!enableSchedule">
-                      </datalab-time-picker>
-                  </div>
-                  <div class="control-group col-3 time-range" *ngIf="destination.type === 'СOMPUTATIONAL'">
-                      <datalab-time-picker [(pickTime)]="terminateTime" [(milisecTime)]="terminateTimeMilliseconds"
-                                           [label]="'Choose terminate time'"
-                                           [disable]="!enableSchedule"></datalab-time-picker>
-                  </div>
-            <div *ngIf="timeReqiered" class="error term m-bott-10 mt-5"><span>At least one of time range fields
-                should be selected</span>
+          <div class="row-wrap" *ngIf="destination.image !== 'docker.datalab-dataengine-service'">
+            <div class="control-group col-3 time-range">
+              <datalab-time-picker 
+                [(pickTime)]="startTime" 
+                [(milisecTime)]="startTimeMilliseconds"
+                [label]="'Choose start time'"
+                [disable]="destination.type === 'СOMPUTATIONAL' && inherit || !enableSchedule"
+              >
+                {{destination.type}}
+              </datalab-time-picker>
+            </div>
+            <div class="control-group col-3 time-range">
+              <datalab-time-picker 
+                [(pickTime)]="endTime" 
+                [(milisecTime)]="endTimeMilliseconds"
+                [label]="'Choose finish time'"
+                [disable]="destination.type === 'СOMPUTATIONAL' && inherit ||!enableSchedule"
+              ></datalab-time-picker>
+            </div>
+            <div class="control-group col-3 time-range" *ngIf="destination.type === 'СOMPUTATIONAL'">
+              <datalab-time-picker 
+                [(pickTime)]="terminateTime" 
+                [(milisecTime)]="terminateTimeMilliseconds"
+                [label]="'Choose terminate time'"
+                [disable]="!enableSchedule"
+              ></datalab-time-picker>
+            </div>
+            <div *ngIf="timeReqiered" class="error term m-bott-10 mt-5">
+              <span>At least one of time range fields should be selected</span>
             </div>
             <div *ngIf="terminateDataReqiered">
               <span class="error term m-bott-10 mt-5">Both terminate date and time fields should be selected</span>
             </div>
           </div>
 
-              <div class="row-wrap"
-                   *ngIf="destination.type === 'СOMPUTATIONAL' && destination.image !== 'docker.datalab-dataengine-service'">
-                  <div class="col-3">
-                      <mat-form-field class="timezone-offset">
-                          <mat-select placeholder="Select timezone" [(value)]="tzOffset"
-                                      [disabled]="destination.type === 'СOMPUTATIONAL' && inherit || !enableSchedule">
-                              <mat-option *ngFor="let zone of zones | keys" [value]="zone.key"
-                                          matTooltip="{{ zone.value }}"
-                                          matTooltipShowDelay="1000" matTooltipPosition="above"> GMT {{zone.key}} {{
-                                  zone.value }}
-                              </mat-option>
-                          </mat-select>
-                      </mat-form-field>
-                  </div>
+          <div 
+            class="row-wrap"
+            *ngIf="destination.type === 'СOMPUTATIONAL' && destination.image !== 'docker.datalab-dataengine-service'"
+          >
+            <div class="col-3">
+              <mat-form-field class="timezone-offset">
+                <mat-select 
+                  placeholder="Select timezone"
+                  [(value)]="tzOffset"
+                  [disabled]="destination.type === 'СOMPUTATIONAL' && inherit || !enableSchedule"
+                >
+                  <mat-option 
+                    *ngFor="let zone of zones | keys" 
+                    [value]="zone.key"
+                    matTooltip="{{ zone.value }}"
+                    matTooltipShowDelay="1000" 
+                    matTooltipPosition="above"
+                  > 
+                    GMT {{zone.key}} {{zone.value }}
+                  </mat-option>
+                </mat-select>
+              </mat-form-field>
+            </div>
           </div>
-              <div class="control-group"
-                   *ngIf="destination && destination.image !== 'docker.datalab-dataengine-service'">
-                  <label class="label repeat" for="options">Repeat on :</label>
-                  <div class="days-block">
-                      <label>Start date:</label>
-                      <mat-button-toggle *ngFor="let day of weekdays; let i = index" value="{{ day }}"
-                                         (change)="onDaySelect($event, day, 'start')"
-                                         [disabled]="destination.type === 'СOMPUTATIONAL' && inherit || !enableSchedule"
-                                         [checked]="selectedStartWeekDays[day.toLowerCase()]">{{ day[0] }}
-                      </mat-button-toggle>
-                  </div>
-                  <div class="days-block">
+          <div 
+            class="control-group"
+            *ngIf="destination && destination.image !== 'docker.datalab-dataengine-service'"
+          >
+            <label class="label repeat" for="options">Repeat on :</label>
+            <div class="days-block">
+              <label>Start date:</label>
+              <mat-button-toggle 
+                *ngFor="let day of weekdays; let i = index" 
+                value="{{ day }}"
+                (change)="onDaySelect($event, day, 'start')"
+                [disabled]="destination.type === 'СOMPUTATIONAL' && inherit || !enableSchedule"
+                [checked]="selectedStartWeekDays[day.toLowerCase()]"
+              >
+                {{ day[0] }}
+              </mat-button-toggle>
+            </div>
+            <div class="days-block">
               <label>Stop date:</label>
-              <mat-button-toggle *ngFor="let day of weekdays; let i = index" value="{{ day }}"
+              <mat-button-toggle 
+                *ngFor="let day of weekdays; let i = index" 
+                value="{{ day }}"
                 (change)="onDaySelect($event, day, 'stop')"
                 [disabled]="destination.type === 'СOMPUTATIONAL' && inherit || !enableSchedule"
-                [checked]="selectedStopWeekDays[day.toLowerCase()]">{{ day[0] }}
+                [checked]="selectedStopWeekDays[day.toLowerCase()]"
+              >
+                {{ day[0] }}
               </mat-button-toggle>
             </div>
           </div>
 
-              <div class="des-block" *ngIf="destination.image === 'docker.datalab-dataengine-service'">
-                  <div class="row-wrap">
-                      <div class="col-3">
-                          <mat-form-field>
-                              <input matInput [matDatepicker]="terminateDate" placeholder="Choose terminate date"
-                                     formControlName="terminateDate">
-                              <mat-datepicker-toggle matSuffix [for]="terminateDate"></mat-datepicker-toggle>
-                              <mat-datepicker #terminateDate></mat-datepicker>
-                          </mat-form-field>
-                      </div>
-                      <div class="control-group col-3 time-range" *ngIf="destination.type === 'СOMPUTATIONAL'">
-                          <datalab-time-picker [(pickTime)]="terminateTime" [(milisecTime)]="terminateTimeMilliseconds"
-                                               [label]="'Choose terminate time'"
-                                               [disable]="!enableSchedule"></datalab-time-picker>
-                      </div>
+          <div class="des-block" *ngIf="destination.image === 'docker.datalab-dataengine-service'">
+            <div class="row-wrap">
+              <div class="col-3">
+                <mat-form-field>
+                  <input 
+                    matInput 
+                    [matDatepicker]="terminateDate" 
+                    placeholder="Choose terminate date"
+                    formControlName="terminateDate"
+                  />
+                  <mat-datepicker-toggle matSuffix [for]="terminateDate"></mat-datepicker-toggle>
+                  <mat-datepicker #terminateDate></mat-datepicker>
+                </mat-form-field>
+              </div>
+              <div class="control-group col-3 time-range" *ngIf="destination.type === 'СOMPUTATIONAL'">
+                <datalab-time-picker 
+                  [(pickTime)]="terminateTime" 
+                  [(milisecTime)]="terminateTimeMilliseconds"
+                  [label]="'Choose terminate time'"
+                  [disable]="!enableSchedule"
+                ></datalab-time-picker>
+              </div>
               <div class="col-3">
                 <mat-form-field class="timezone-offset">
-                  <mat-select placeholder="Select timezone" [(value)]="tzOffset"
-                    [disabled]="destination.type === 'СOMPUTATIONAL' && inherit || !enableSchedule">
-                    <mat-option *ngFor="let zone of zones | keys" [value]="zone.key" matTooltip="{{ zone.value }}"
-                      matTooltipShowDelay="1000" matTooltipPosition="above"> GMT {{zone.key}} {{ zone.value }}
+                  <mat-select 
+                    placeholder="Select timezone" 
+                    [(value)]="tzOffset"
+                    [disabled]="destination.type === 'СOMPUTATIONAL' && inherit || !enableSchedule"
+                  >
+                    <mat-option 
+                      *ngFor="let zone of zones | keys" 
+                      [value]="zone.key" 
+                      matTooltip="{{ zone.value }}"
+                      matTooltipShowDelay="1000" 
+                      matTooltipPosition="above"
+                    > 
+                      GMT {{zone.key}} {{ zone.value }}
                     </mat-option>
                   </mat-select>
                 </mat-form-field>
@@ -196,24 +265,33 @@
             </div>
           </div>
 
-              <div class="options"
-                   *ngIf="destination && allowInheritView && destination.image !== 'docker.datalab-dataengine-service'">
-                  <mat-slide-toggle labelPosition="after" [checked]="inherit" (change)="toggleInherit($event)"
-                                    [disabled]="!enableSchedule || (!parentInherit && destination.type === 'СOMPUTATIONAL')">
+          <div 
+            class="options"
+            *ngIf="destination && allowInheritView && destination.image !== 'docker.datalab-dataengine-service'"
+          >
+            <mat-slide-toggle 
+              labelPosition="after" 
+              [checked]="inherit" 
+              (change)="toggleInherit($event)"
+              [disabled]="!enableSchedule || (!parentInherit && destination.type === 'СOMPUTATIONAL')"
+            >
               <span *ngIf="destination.type === 'EXPLORATORY'; else resourcePropagation" class="hold-label">
-                <span>Start all spark clusters associated with current notebook based on notebook start
-                  schedule</span>
+                <span>Start all spark clusters associated with current notebook based on notebook start schedule</span>
               </span>
-                      <ng-template #resourcePropagation>
-                          <span class="hold-label">Inherit notebook schedule settings</span>
-                      </ng-template>
-                  </mat-slide-toggle>
+              <ng-template #resourcePropagation>
+                  <span class="hold-label">Inherit notebook schedule settings</span>
+              </ng-template>
+            </mat-slide-toggle>
           </div>
         </div>
 
         <div class="options" *ngIf="destination.type === 'EXPLORATORY'">
-          <mat-slide-toggle labelPosition="after" [checked]="considerInactivity"
-            [disabled]="!enableSchedule && !enableIdleTime" (change)="considerInactivity = !considerInactivity">
+          <mat-slide-toggle 
+            labelPosition="after" 
+            [checked]="considerInactivity"
+            [disabled]="!enableSchedule && !enableIdleTime" 
+            (change)="considerInactivity = !considerInactivity"
+          >
             <span class="hold-label">
               <span>In case of running jobs on Spark standalone, notebook stop scheduler will not be triggered</span>
             </span>
@@ -222,10 +300,23 @@
 
       </form>
       <div class="text-center m-top-30">
-        <button mat-raised-button type="button" class="butt action" (click)="dialogRef.close()">Cancel</button>
-        <button mat-raised-button type="button" class="butt butt-success action"
+        <button 
+          mat-raised-button 
+          type="button" 
+          class="butt action" 
+          (click)="dialogRef.close()"
+        >
+          Cancel
+        </button>
+        <button 
+          mat-raised-button 
+          type="button" 
+          class="butt butt-success action"
           [disabled]="enableIdleTime && !schedulerForm.controls.inactivityTime.valid"
-          (click)="scheduleInstance_btnClick()">Save</button>
+          (click)="scheduleInstance_btnClick()"
+        >
+          Save
+        </button>
       </div>
     </div>
   </div>
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/scheduler/scheduler.component.scss b/services/self-service/src/main/resources/webapp/src/app/resources/scheduler/scheduler.component.scss
index 54a1eed..7b0c54c 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/scheduler/scheduler.component.scss
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/scheduler/scheduler.component.scss
@@ -20,7 +20,7 @@
 .scheduler-dialog {
   .mat-form-field-appearance-legacy {
     .mat-form-field-label {
-      font-family: 'Open Sans', sans-serif !important;
+      font-family: "Open Sans", sans-serif !important;
       font-size: 13px;
     }
   }
@@ -49,17 +49,17 @@
 
   .enable-schedule {
     display: flex;
-    margin-bottom: 10px;
     justify-content: space-between;
+    margin-bottom: 10px;
 
     .idle {
       display: flex;
       width: 50%;
 
       i {
-        font-size: 20px;
         padding-left: 10px;
         align-self: center;
+        font-size: 20px;
         user-select: none;
         cursor: pointer;
       }
@@ -69,17 +69,17 @@
   .info-message,
   .idle-control {
     height: 0;
+    padding-bottom: 0;
     opacity: 0;
     visibility: hidden;
     text-align: left;
     transition: height 0.35s linear 0.2s;
-    padding-bottom: 0;
 
     &.show {
       height: 30px;
+      margin-bottom: 50px;
       visibility: visible;
       opacity: 1;
-      margin-bottom: 50px;
     }
   }
 
@@ -207,7 +207,7 @@
         box-shadow: none;
         margin: 2px;
         border: none;
-        color: #607D8B;
+        color: #607d8b;
 
         &.mat-button-toggle-checked {
           background-color: rgba(77, 184, 218, 0.62);
@@ -219,10 +219,10 @@
         }
 
         .mat-button-toggle-label-content {
-          line-height: 26px;
-          padding: 0px 8px;
           width: 26px;
+          padding: 0px 8px;
           font-size: 13px;
+          line-height: 26px;
           text-align: center;
           background: rgba(196, 231, 243, 0.3);
         }
@@ -242,10 +242,10 @@
   }
 
   .options {
+    margin-bottom: 10px;
     color: #718ba6;
     font-size: 15px;
     font-weight: 600;
-    margin-bottom: 10px;
 
     .mat-slide-toggle-content {
       padding: 5px;
diff --git a/services/self-service/src/main/resources/webapp/src/app/resources/scheduler/scheduler.component.ts b/services/self-service/src/main/resources/webapp/src/app/resources/scheduler/scheduler.component.ts
index 79b5008..e1206e8 100644
--- a/services/self-service/src/main/resources/webapp/src/app/resources/scheduler/scheduler.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/resources/scheduler/scheduler.component.ts
@@ -25,7 +25,6 @@
 import * as _moment from 'moment';
 import 'moment-timezone';
 
-
 import { SchedulerService } from '../../core/services';
 import { SchedulerModel, WeekdaysModel } from './scheduler.model';
 import { SchedulerCalculations } from './scheduler.calculations';
@@ -184,13 +183,16 @@
   }
 
   public setInactivity(...params) {
-    this.model.setInactivityTime(params).subscribe((response: any) => {
-      if (response.status === HTTP_STATUS_CODES.OK) {
-        this.toastr.success('Schedule data were successfully saved', 'Success!');
-        this.dialogRef.close();
-      }
-    },
-      error => this.toastr.error(error.message || 'Scheduler configuration failed!', 'Oops!'));
+    this.model.setInactivityTime(params)
+      .subscribe(
+        (response: any) => {
+          if (response.status === HTTP_STATUS_CODES.OK) {
+            this.toastr.success('Schedule data were successfully saved', 'Success!');
+            this.dialogRef.close();
+          }
+        },
+        error => this.toastr.error(error.message || 'Scheduler configuration failed!', 'Oops!')
+      );
   }
 
   public inactivityCounter($event, action: string): void {
@@ -320,12 +322,13 @@
   }
 
   private validInactivityRange(control) {
-    if (control)
+    if (control) {
       return this.enableIdleTime
         ? (control.value
           && control.value >= this.inactivityLimits.min
           && control.value <= this.inactivityLimits.max ? null : { valid: false })
         : control.value;
+    }
   }
 
   private checkIsActiveSpark() {
diff --git a/services/self-service/src/main/resources/webapp/src/app/shared/bubble/bubble.component.css b/services/self-service/src/main/resources/webapp/src/app/shared/bubble/bubble.component.css
index 331f715..0769b00 100644
--- a/services/self-service/src/main/resources/webapp/src/app/shared/bubble/bubble.component.css
+++ b/services/self-service/src/main/resources/webapp/src/app/shared/bubble/bubble.component.css
@@ -18,12 +18,12 @@
  */
 
 .bubble-up {
+  position: absolute;
+  display: none;
   width: 100%;
   background: #fff;
   border: none;
-  display: none;
   overflow: visible;
-  position: absolute;
   box-shadow: rgba(0, 0, 0, 0.2) 0px 3px 1px -2px,
               rgba(0, 0, 0, 0.14) 0px 2px 2px 0px,
               rgba(0, 0, 0, 0.12) 0px 1px 5px 0px;
diff --git a/services/self-service/src/main/resources/webapp/src/app/shared/bubble/bubble.component.ts b/services/self-service/src/main/resources/webapp/src/app/shared/bubble/bubble.component.ts
index 46d6d63..02e8dde 100644
--- a/services/self-service/src/main/resources/webapp/src/app/shared/bubble/bubble.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/shared/bubble/bubble.component.ts
@@ -17,9 +17,18 @@
  * under the License.
  */
 
-import { Component, Input, Output, EventEmitter, HostBinding,
-         ChangeDetectorRef, ElementRef, OnInit, OnDestroy,
-         ViewEncapsulation, HostListener } from '@angular/core';
+import { 
+  Component, 
+  Input, 
+  Output, 
+  EventEmitter, 
+  HostBinding,
+  ChangeDetectorRef, 
+  ElementRef, 
+  OnDestroy,
+  ViewEncapsulation, 
+  HostListener 
+} from '@angular/core';
 import { BubblesCollector, BubbleService } from './bubble.service';
 
 @Component({
diff --git a/services/self-service/src/main/resources/webapp/src/app/shared/form-controls/dropdown-list/dropdown-list.component.html b/services/self-service/src/main/resources/webapp/src/app/shared/form-controls/dropdown-list/dropdown-list.component.html
index 13d6b7d..d483d25 100644
--- a/services/self-service/src/main/resources/webapp/src/app/shared/form-controls/dropdown-list/dropdown-list.component.html
+++ b/services/self-service/src/main/resources/webapp/src/app/shared/form-controls/dropdown-list/dropdown-list.component.html
@@ -18,7 +18,13 @@
   -->
 
 <div class="dropdown-list" >
-  <button class="dropdown-toggle" type="button" #list (click)="emitEvent()" (click)="actions.toggle($event, list)">
+  <button 
+    class="dropdown-toggle" 
+    type="button" 
+    #list 
+    (click)="emitEvent()" 
+    (click)="actions.toggle($event, list)"
+  >
     <span class="title"><span [innerHTML]="label || 'None'"></span></span>
     <span class="caret-btn"><i class="material-icons">keyboard_arrow_down</i></span>
   </button>
diff --git a/services/self-service/src/main/resources/webapp/src/app/shared/form-controls/dropdowns.component.scss b/services/self-service/src/main/resources/webapp/src/app/shared/form-controls/dropdowns.component.scss
index 66cf215..b49f8b6 100644
--- a/services/self-service/src/main/resources/webapp/src/app/shared/form-controls/dropdowns.component.scss
+++ b/services/self-service/src/main/resources/webapp/src/app/shared/form-controls/dropdowns.component.scss
@@ -26,18 +26,18 @@
 .dropdown-list button,
 .dropdown-multiselect button {
   min-width: 100%;
-  background: #fff;
-  padding-left: 15px;
-  font-size: 13px;
-  padding-top: 1px;
   height: 34px;
+  padding-left: 15px;
+  padding-top: 1px;
+  background: #fff;
+  font-size: 13px;
   text-align: left;
   white-space: nowrap;
   cursor: pointer;
   border-radius: 0;
   border: none;
   outline: none;
-  box-shadow: 0 3px 1px -2px rgba(0, 0, 0, .2), 0 2px 2px 0 rgba(0, 0, 0, .14), 0 1px 5px 0 rgba(0, 0, 0, .12);
+  box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
 }
 
 .dropdown-list {
@@ -48,9 +48,9 @@
       color: #4a5c89;
 
       em {
+        margin-right: 0px;
         font-size: 13px;
         color: #35afd5;
-        margin-right: 0px;
         font-style: normal;
       }
     }
@@ -61,7 +61,7 @@
 .dropdown-list button:focus,
 .dropdown-multiselect button:active,
 .dropdown-multiselect button:focus {
-  box-shadow: 0 5px 5px -3px rgba(0, 0, 0, .2), 0 8px 10px 1px rgba(0, 0, 0, .14), 0 3px 14px 2px rgba(0, 0, 0, .12);
+  box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12);
 }
 
 .dropdown-multiselect {
@@ -91,8 +91,8 @@
     right: 0;
     width: 40px;
     height: 100%;
-    text-align: center;
     padding: 7px;
+    text-align: center;
     -webkit-appearance: none;
     -moz-appearance: none;
     border-left: 1px solid #ececec;
@@ -101,9 +101,9 @@
   }
 
   .list-menu {
+    left: 0;
     width: 100%;
     max-height: 260px;
-    left: 0;
     padding: 0;
     margin: 0;
     overflow-y: auto;
@@ -113,7 +113,6 @@
       padding: 0;
       margin: 0;
     }
-
   }
 
   &.statuses {
@@ -135,10 +134,9 @@
 
 .dropdown-list .list-menu a,
 .dropdown-multiselect .list-menu li a {
-  display: block;
-  padding: 10px;
-  padding-left: 15px;
   position: relative;
+  display: block;
+  padding: 10px 10px 10px 15px;
   font-weight: 300;
   cursor: pointer;
   color: #4a5c89;
@@ -147,7 +145,7 @@
 
 .dropdown-multiselect .list-menu li a {
   padding-left: 30px;
-  transition: all .45s ease-in-out;
+  transition: all 0.45s ease-in-out;
 }
 
 .dropdown-list .list-menu a:hover,
@@ -163,16 +161,15 @@
 }
 
 .dropdown-multiselect .list-menu .filter-actions a {
-  width: 50%;
-  color: #35afd5;
   display: block;
+  width: 50%;
   padding: 0;
+  color: #35afd5;
   line-height: 40px !important;
   text-align: center;
 }
 
 .dropdown-list {
-
   .list-menu,
   .title {
     span {
@@ -206,16 +203,15 @@
 }
 
 .dropdown-list .list-menu a {
-  padding: 12px;
-  padding-left: 15px;
   position: relative;
+  padding: 12px 12px 12px 15px;
   font-weight: 300;
   cursor: pointer;
 
   em {
+    margin-right: 0px;
     font-size: 13px;
     color: #35afd5;
-    margin-right: 0px;
     font-style: normal;
   }
 }
@@ -229,7 +225,7 @@
   color: #35afd5;
   font-size: 18px;
   line-height: 26px;
-  transition: all .45s ease-in-out;
+  transition: all 0.45s ease-in-out;
 }
 
 .dropdown-multiselect .list-menu .select_all:hover,
diff --git a/services/self-service/src/main/resources/webapp/src/app/shared/form-controls/multi-level-select-dropdown/multi-level-select-dropdown.component.html b/services/self-service/src/main/resources/webapp/src/app/shared/form-controls/multi-level-select-dropdown/multi-level-select-dropdown.component.html
index ef66677..1d6fda6 100644
--- a/services/self-service/src/main/resources/webapp/src/app/shared/form-controls/multi-level-select-dropdown/multi-level-select-dropdown.component.html
+++ b/services/self-service/src/main/resources/webapp/src/app/shared/form-controls/multi-level-select-dropdown/multi-level-select-dropdown.component.html
@@ -37,92 +37,91 @@
         </a>
       </li>
 
-        <ng-template  ngFor let-item [ngForOf]="items" let-i="index">
-          <li class="role-label" role="presentation" *ngIf="i === 0 || model && item.type !== items[i - 1].type" (click)="toggleItemsForLable(item.type, $event)" >
-            <a href="#" class="list-item" role="menuitem">
-              <span class="arrow" [ngClass]="{'rotate-arrow': isOpenCategory[item.type], 'arrow-checked': selectedAllInCattegory(item.type) || selectedSomeInCattegory(item.type)}">
+      <ng-template  ngFor let-item [ngForOf]="items" let-i="index">
+        <li class="role-label" role="presentation" *ngIf="i === 0 || model && item.type !== items[i - 1].type" (click)="toggleItemsForLable(item.type, $event)" >
+          <a href="#" class="list-item" role="menuitem">
+            <span class="arrow" [ngClass]="{'rotate-arrow': isOpenCategory[item.type], 'arrow-checked': selectedAllInCattegory(item.type) || selectedSomeInCattegory(item.type)}">
+              <i class="material-icons">keyboard_arrow_right</i>
+            </span>
+            <!--              <span class="empty-checkbox" [ngClass]="{'checked': selectedAllInCattegory(item.type) || selectedSomeInCattegory(item.type)}" (click)="toggleselectedCategory($event, model, item.type);$event.stopPropagation()" >-->
+            <!--                <span class="checked-checkbox" *ngIf="selectedAllInCattegory(item.type)"></span>-->
+            <!--                <span class="line-checkbox" *ngIf="selectedSomeInCattegory(item.type)"></span>-->
+            <!--              </span>-->
+            <datalab-checkbox
+              class="header-checkbox"
+              [checked]="selectedAllInCattegory(item.type)"
+              [someChecked]="selectedSomeInCattegory(item.type)"
+              (toggleSelection)="toggleselectedCategory(model, item.type)"
+            ></datalab-checkbox>
+            {{labels[item.type] || item.type | titlecase}}
+          </a>
+        </li>
+
+        <li 
+          class="role-item"
+          role="presentation"
+          *ngIf="model && isOpenCategory[item.type] && item.type !== 'COMPUTATIONAL_SHAPE' && item.type !== 'NOTEBOOK_SHAPE'"
+          [hidden]="!isAdmin && item.role === 'Allow to execute administration operation'"
+        >
+          <a href="#" class="list-item" role="menuitem" (click)="toggleSelectedOptions(model, item, $event)">
+            <!--              <span class="empty-checkbox" [ngClass]="{'checked': checkInModel(item.role)}">-->
+            <!--                <span class="checked-checkbox" *ngIf="checkInModel(item.role)"></span>-->
+            <!--              </span>-->
+            <datalab-checkbox
+              class="header-checkbox"
+              [checked]="checkInModel(item.role)"
+              (toggleSelection)="toggleSelectedOptions(model, item)"
+            ></datalab-checkbox>
+            {{item.role}}
+          </a>
+        </li>
+        <li 
+          class="role-item" 
+          role="presentation" 
+          (click)="toggleItemsForCloud(item.type + item.cloud, $event)"
+          *ngIf="model && isOpenCategory[item.type] && item.type === 'COMPUTATIONAL_SHAPE' && item.cloud !== items[i - 1].cloud
+            || model && isOpenCategory[item.type] && item.type === 'NOTEBOOK_SHAPE' && item.type !== items[i - 1].type
+            || model && isOpenCategory[item.type] && item.type === 'NOTEBOOK_SHAPE' && item.cloud !== items[i - 1].cloud
+            || model && isOpenCategory[item.type] && item.type === 'COMPUTATIONAL_SHAPE' && item.type !== items[i - 1].type"
+        >
+          <a href="#" class="list-item" role="menuitem">
+            <span class="arrow" [ngClass]="{'rotate-arrow': isCloudOpen[item.type + item.cloud], 'arrow-checked': selectedAllInCloud(item.type, item.cloud) || selectedSomeInCloud(item.type, item.cloud)}">
                 <i class="material-icons">keyboard_arrow_right</i>
-              </span>
-<!--              <span class="empty-checkbox" [ngClass]="{'checked': selectedAllInCattegory(item.type) || selectedSomeInCattegory(item.type)}" (click)="toggleselectedCategory($event, model, item.type);$event.stopPropagation()" >-->
-<!--                <span class="checked-checkbox" *ngIf="selectedAllInCattegory(item.type)"></span>-->
-<!--                <span class="line-checkbox" *ngIf="selectedSomeInCattegory(item.type)"></span>-->
-<!--              </span>-->
-              <datalab-checkbox
-                class="header-checkbox"
-                [checked]="selectedAllInCattegory(item.type)"
-                [someChecked]="selectedSomeInCattegory(item.type)"
-                (toggleSelection)="toggleselectedCategory(model, item.type)"
-              >
-              </datalab-checkbox>
+            </span>
+            <!--              <span class="empty-checkbox"-->
+            <!--                    [ngClass]="{-->
+            <!--                    'checked': selectedAllInCloud(item.type, item.cloud)-->
+            <!--                    || selectedSomeInCloud(item.type, item.cloud)}"-->
+            <!--                    (click)="toggleSelectedCloud($event, model, item.type, item.cloud);-->
+            <!--                    $event.stopPropagation()"-->
+            <!--              >-->
+            <!--                <span class="checked-checkbox" *ngIf="selectedAllInCloud(item.type, item.cloud)"></span>-->
+            <!--                <span class="line-checkbox" *ngIf="selectedSomeInCloud(item.type, item.cloud)"></span>-->
+            <!--              </span>-->
+            <datalab-checkbox
+              class="header-checkbox"
+              [checked]="selectedAllInCloud(item.type, item.cloud)"
+              [someChecked]="selectedSomeInCloud(item.type, item.cloud)"
+              (toggleSelection)="toggleSelectedCloud(model, item.type, item.cloud)"
+            ></datalab-checkbox>
+            {{item.cloud}}
+          </a>
+        </li>
+        <li class="role-cloud-item" role="presentation" *ngIf="model && isCloudOpen[item.type + item.cloud] && isOpenCategory[item.type]" >
+          <a href="#" class="list-item" role="menuitem" (click)="toggleSelectedOptions( model, item, $event)">
+            <!--              <span class="empty-checkbox" [ngClass]="{'checked': checkInModel(item.role)}">-->
+            <!--                <span class="checked-checkbox" *ngIf="checkInModel(item.role)"></span>-->
+            <!--              </span>-->
+            <datalab-checkbox
+              class="header-checkbox"
+              [checked]="checkInModel(item.role)"
+              (toggleSelection)="toggleSelectedOptions(model, item)"
+            ></datalab-checkbox>
+            {{item.role}}
+          </a>
+        </li>
 
-              {{labels[item.type] || item.type | titlecase}}
-            </a>
-          </li>
-
-          <li class="role-item"
-              role="presentation"
-              *ngIf="model && isOpenCategory[item.type] && item.type !== 'COMPUTATIONAL_SHAPE' && item.type !== 'NOTEBOOK_SHAPE'"
-              [hidden]="!isAdmin && item.role === 'Allow to execute administration operation'"
-          >
-            <a href="#" class="list-item" role="menuitem" (click)="toggleSelectedOptions(model, item, $event)">
-<!--              <span class="empty-checkbox" [ngClass]="{'checked': checkInModel(item.role)}">-->
-<!--                <span class="checked-checkbox" *ngIf="checkInModel(item.role)"></span>-->
-<!--              </span>-->
-              <datalab-checkbox
-                class="header-checkbox"
-                [checked]="checkInModel(item.role)"
-                (toggleSelection)="toggleSelectedOptions(model, item)"
-              >
-              </datalab-checkbox>
-              {{item.role}}
-            </a>
-          </li>
-          <li class="role-item" role="presentation" (click)="toggleItemsForCloud(item.type + item.cloud, $event)"
-              *ngIf="model && isOpenCategory[item.type] && item.type === 'COMPUTATIONAL_SHAPE' && item.cloud !== items[i - 1].cloud
-              || model && isOpenCategory[item.type] && item.type === 'NOTEBOOK_SHAPE' && item.type !== items[i - 1].type
-              || model && isOpenCategory[item.type] && item.type === 'NOTEBOOK_SHAPE' && item.cloud !== items[i - 1].cloud
-              || model && isOpenCategory[item.type] && item.type === 'COMPUTATIONAL_SHAPE' && item.type !== items[i - 1].type"
-          >
-            <a href="#" class="list-item" role="menuitem">
-              <span class="arrow" [ngClass]="{'rotate-arrow': isCloudOpen[item.type + item.cloud], 'arrow-checked': selectedAllInCloud(item.type, item.cloud) || selectedSomeInCloud(item.type, item.cloud)}">
-                 <i class="material-icons">keyboard_arrow_right</i>
-              </span>
-<!--              <span class="empty-checkbox"-->
-<!--                    [ngClass]="{-->
-<!--                    'checked': selectedAllInCloud(item.type, item.cloud)-->
-<!--                    || selectedSomeInCloud(item.type, item.cloud)}"-->
-<!--                    (click)="toggleSelectedCloud($event, model, item.type, item.cloud);-->
-<!--                    $event.stopPropagation()"-->
-<!--              >-->
-<!--                <span class="checked-checkbox" *ngIf="selectedAllInCloud(item.type, item.cloud)"></span>-->
-<!--                <span class="line-checkbox" *ngIf="selectedSomeInCloud(item.type, item.cloud)"></span>-->
-<!--              </span>-->
-              <datalab-checkbox
-                class="header-checkbox"
-                [checked]="selectedAllInCloud(item.type, item.cloud)"
-                [someChecked]="selectedSomeInCloud(item.type, item.cloud)"
-                (toggleSelection)="toggleSelectedCloud(model, item.type, item.cloud)"
-              >
-              </datalab-checkbox>
-              {{item.cloud}}
-            </a>
-          </li>
-          <li class="role-cloud-item" role="presentation" *ngIf="model && isCloudOpen[item.type + item.cloud] && isOpenCategory[item.type]" >
-            <a href="#" class="list-item" role="menuitem" (click)="toggleSelectedOptions( model, item, $event)">
-<!--              <span class="empty-checkbox" [ngClass]="{'checked': checkInModel(item.role)}">-->
-<!--                <span class="checked-checkbox" *ngIf="checkInModel(item.role)"></span>-->
-<!--              </span>-->
-              <datalab-checkbox
-                class="header-checkbox"
-                [checked]="checkInModel(item.role)"
-                (toggleSelection)="toggleSelectedOptions(model, item)"
-              >
-              </datalab-checkbox>
-              {{item.role}}
-            </a>
-          </li>
-
-        </ng-template>
+      </ng-template>
 
       <li *ngIf="items?.length == 0">
         <a role="menuitem" class="list-item">
diff --git a/services/self-service/src/main/resources/webapp/src/app/shared/form-controls/multi-level-select-dropdown/multi-level-select-dropdown.component.scss b/services/self-service/src/main/resources/webapp/src/app/shared/form-controls/multi-level-select-dropdown/multi-level-select-dropdown.component.scss
index 6231568..62e893a 100644
--- a/services/self-service/src/main/resources/webapp/src/app/shared/form-controls/multi-level-select-dropdown/multi-level-select-dropdown.component.scss
+++ b/services/self-service/src/main/resources/webapp/src/app/shared/form-controls/multi-level-select-dropdown/multi-level-select-dropdown.component.scss
@@ -25,19 +25,18 @@
 
 .dropdown-list button,
 .dropdown-multiselect button {
-
   width: 100%;
-  background: #fff;
-  padding-left: 15px;
-  font-size: 13px;
   height: 34px;
+  padding-left: 15px;
+  background: #fff;
+  font-size: 13px;
   text-align: left;
   white-space: nowrap;
   cursor: pointer;
   border-radius: 0;
   border: none;
   outline: none;
-  box-shadow: 0 3px 1px -2px rgba(0, 0, 0, .2), 0 2px 2px 0 rgba(0, 0, 0, .14), 0 1px 5px 0 rgba(0, 0, 0, .12);
+  box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
 }
 
 .dropdown-list {
@@ -48,9 +47,9 @@
       color: #4a5c89;
 
       em {
+        margin-right: 0px;
         font-size: 13px;
         color: #35afd5;
-        margin-right: 0px;
         font-style: normal;
       }
     }
@@ -61,27 +60,27 @@
 .dropdown-list button:focus,
 .dropdown-multiselect button:active,
 .dropdown-multiselect button:focus {
-  box-shadow: 0 5px 5px -3px rgba(0, 0, 0, .2), 0 8px 10px 1px rgba(0, 0, 0, .14), 0 3px 14px 2px rgba(0, 0, 0, .12);
+  box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12);
 }
 
 .dropdown-multiselect {
   button {
-    span{
-      color: #999;
-      font-weight: 300;
+    span {
       display: inline-block;
       max-width: 80%;
+      color: #999;
+      font-weight: 300;
     }
 
-    span:not(.caret-btn){
+    span:not(.caret-btn) {
       padding-top: 3px;
       font-size: 14px;
     }
 
     .selected-items {
-      color: #4a5c89;
       max-width: 477px;
       padding-top: 5px;
+      color: #4a5c89;
     }
   }
 }
@@ -98,8 +97,8 @@
     right: 0;
     width: 40px;
     height: 100%;
-    text-align: center;
     padding: 7px;
+    text-align: center;
     -webkit-appearance: none;
     -moz-appearance: none;
     border-left: 1px solid #ececec;
@@ -108,9 +107,9 @@
   }
 
   .list-menu {
+    left: 0;
     width: 100%;
     max-height: 450px;
-    left: 0;
     padding: 0;
     margin: 0;
     overflow-y: auto;
@@ -121,14 +120,13 @@
       margin: 0;
     }
 
-    .role-item{
+    .role-item {
       padding-left: 30px;
     }
 
-    .role-cloud-item{
+    .role-cloud-item {
       padding-left: 60px;
     }
-
   }
 
   &.statuses {
@@ -150,10 +148,10 @@
 
 .dropdown-list .list-menu a,
 .dropdown-multiselect .list-menu li a {
+  position: relative;
   display: flex;
   padding: 10px;
   padding-left: 15px;
-  position: relative;
   font-weight: 300;
   cursor: pointer;
   color: #4a5c89;
@@ -162,7 +160,7 @@
 
 .dropdown-multiselect .list-menu li a {
   padding-left: 25px;
-  transition: all .45s ease-in-out;
+  transition: all 0.45s ease-in-out;
 }
 
 .dropdown-list .list-menu a:hover,
@@ -178,16 +176,15 @@
 }
 
 .dropdown-multiselect .list-menu .filter-actions a {
-  width: 50%;
-  color: #35afd5;
   display: block;
+  width: 50%;
   padding: 0;
+  color: #35afd5;
   line-height: 40px !important;
   text-align: center;
 }
 
 .dropdown-list {
-
   .list-menu,
   .title {
     span {
@@ -221,9 +218,9 @@
 }
 
 .dropdown-list .list-menu a {
+  position: relative;
   padding: 12px;
   padding-left: 15px;
-  position: relative;
   font-weight: 300;
   cursor: pointer;
 
@@ -244,7 +241,7 @@
   color: #35afd5;
   font-size: 18px;
   line-height: 26px;
-  transition: all .45s ease-in-out;
+  transition: all 0.45s ease-in-out;
 }
 
 .dropdown-multiselect .list-menu .select_all:hover,
@@ -267,13 +264,13 @@
     color: #35afd5;
 
     &.checked-checkbox {
+      position: absolute;
       top: 0;
       left: 4px;
       width: 5px;
       height: 10px;
       border-bottom: 2px solid white;
       border-right: 2px solid white;
-      position: absolute;
       transform: rotate(45deg);
     }
 
@@ -285,28 +282,28 @@
       border-bottom: 2px solid white;
     }
 
-    &.arrow{
+    &.arrow {
       left: 2px;
       top: 9px;
-      i{
+
+      i {
         color: lightgrey;
       }
-      &.rotate-arrow{
+      
+      &.rotate-arrow {
         transform: rotate(90deg);
-        transition: .1s ease-in-out;
+        transition: 0.1s ease-in-out;
         top: 6px;
         left: 0;
       }
 
-      &.arrow-checked{
-        i{
-          color: #36afd5
+      &.arrow-checked {
+        i {
+          color: #36afd5;
         }
       }
     }
   }
-
-
 }
 
 .dropdown-multiselect.btn-group.open .dropdown-toggle {
@@ -314,22 +311,23 @@
 }
 
 .empty-checkbox {
+  position: relative;
   width: 16px;
   height: 16px;
+  margin-top: 2px;
   border-radius: 2px;
   border: 2px solid lightgrey;
-  margin-top: 2px;
-  position: relative;
+
   &.checked {
     border-color: #35afd5;
     background-color: #35afd5;
   }
 }
 
-.d-none{
+.d-none {
   display: none;
 }
 
-datalab-checkbox{
+datalab-checkbox {
   margin: 2px 5px 0 0;
 }
diff --git a/services/self-service/src/main/resources/webapp/src/app/shared/form-controls/multi-level-select-dropdown/multi-level-select-dropdown.component.ts b/services/self-service/src/main/resources/webapp/src/app/shared/form-controls/multi-level-select-dropdown/multi-level-select-dropdown.component.ts
index 9b1c918..0a2300f 100644
--- a/services/self-service/src/main/resources/webapp/src/app/shared/form-controls/multi-level-select-dropdown/multi-level-select-dropdown.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/shared/form-controls/multi-level-select-dropdown/multi-level-select-dropdown.component.ts
@@ -18,7 +18,7 @@
  */
 
 import { Input, Output, Component, EventEmitter } from '@angular/core';
-import {SortUtils} from '../../../core/util';
+import { SortUtils } from '../../../core/util';
 
 @Component({
   selector: 'multi-level-select-dropdown',
@@ -34,12 +34,8 @@
   @Input() isAdmin: boolean;
   @Output() selectionChange: EventEmitter<{}> = new EventEmitter();
 
-  public isOpenCategory = {
-  };
-
-  public isCloudOpen = {
-
-  };
+  public isOpenCategory = {};
+  public isCloudOpen = {};
 
   public labels = {
     COMPUTATIONAL_SHAPE: 'Compute shapes',
@@ -49,8 +45,7 @@
   };
   public selectedList: any;
 
-  constructor() {
-  }
+  constructor() {}
 
   toggleSelectedOptions( model, value, event?) {
     if (event) event.preventDefault();
@@ -63,7 +58,9 @@
     if (event) event.preventDefault();
     const categoryItems = this.items.filter(role => role.type === value);
     this.selectedAllInCattegory(value) ? this.model = this.model.filter(role => role.type !== value) : categoryItems.forEach(role => {
-      if (!model.filter(mod => mod.role === role.role).length) {this.model.push(role); }
+      if (!model.filter(mod => mod.role === role.role).length) {
+        this.model.push(role); 
+      }
     });
     this.onUpdate(event);
   }
diff --git a/services/self-service/src/main/resources/webapp/src/app/shared/form-controls/multi-select-dropdown/multi-select-dropdown.component.html b/services/self-service/src/main/resources/webapp/src/app/shared/form-controls/multi-select-dropdown/multi-select-dropdown.component.html
index 2458d9f..178f9bc 100644
--- a/services/self-service/src/main/resources/webapp/src/app/shared/form-controls/multi-select-dropdown/multi-select-dropdown.component.html
+++ b/services/self-service/src/main/resources/webapp/src/app/shared/form-controls/multi-select-dropdown/multi-select-dropdown.component.html
@@ -20,9 +20,10 @@
 <div class="dropdown-multiselect btn-group" ngClass="{{type || ''}}">
   <button type="button" #list (click)="multiactions.toggle($event, list)">
     <span class="ellipsis" *ngIf="model.length === 0 && type">
-      <ng-container *ngIf="type === 'resource_type' || type === 'resource_types';else noResourceTypeSelect">Select {{ type | convertaction}}</ng-container>
-         <ng-template #noResourceTypeSelect>Select {{ type  }}</ng-template>
-
+      <ng-container *ngIf="type === 'resource_type' || type === 'resource_types';else noResourceTypeSelect">
+        Select {{ type | convertaction}}
+      </ng-container>
+      <ng-template #noResourceTypeSelect>Select {{ type  }}</ng-template>
     </span>
     <span class="selected-items ellipsis" *ngIf="model.length !== 0">
       Selected {{model.length}} item<strong *ngIf="model.length > 1">s</strong>
@@ -40,23 +41,33 @@
           <i class="material-icons">clear</i>&nbsp;None
         </a>
       </li>
-        <ng-template let-item ngFor [ngForOf]="items">
-          <li role="presentation" *ngIf="model">
-            <a href="#" 
-              class="list-item billing-user-name"
-              [ngClass]="{'uppercase': type === 'resource_type' || type === 'status'}"
-              role="menuitem" 
-              (click)="toggleSelectedOptions($event, model, item)">
-              <span class="material-icons" *ngIf="model.indexOf(item) >= 0">done</span>
-              <ng-container *ngIf="type !== 'resource_type' && type !== 'resource_types' && item !== 'invalid_name' && item !== 'invalid_version' && item !== 'installation_error'">
-                <div [ngClass]="{'uppercase': type === 'status'}">{{item}}</div>
-              </ng-container>
-              <ng-container *ngIf="type === 'resource_type' || type === 'resource_types' || item === 'invalid_name' || item === 'invalid_version' || item === 'installation_error'">
-                <div [ngClass]="{'uppercase': type === 'status' || type === 'resource_type'}">{{item | convertaction}}</div>
-              </ng-container>
-            </a>
-          </li>
-        </ng-template>
+      <ng-template let-item ngFor [ngForOf]="items">
+        <li role="presentation" *ngIf="model">
+          <a 
+            href="#" 
+            class="list-item billing-user-name"
+            [ngClass]="{'uppercase': type === 'resource_type' || type === 'status'}"
+            role="menuitem" 
+            (click)="toggleSelectedOptions($event, model, item)"
+          >
+            <span class="material-icons" *ngIf="model.indexOf(item) >= 0">done</span>
+            <ng-container 
+              *ngIf="type !== 'resource_type' && type !== 'resource_types' 
+                && item !== 'invalid_name' && item !== 'invalid_version' 
+                && item !== 'installation_error'"
+            >
+              <div [ngClass]="{'uppercase': type === 'status'}">{{item}}</div>
+            </ng-container>
+            <ng-container 
+              *ngIf="type === 'resource_type' || type === 'resource_types' 
+                || item === 'invalid_name' || item === 'invalid_version' 
+                || item === 'installation_error'"
+            >
+              <div [ngClass]="{'uppercase': type === 'status' || type === 'resource_type'}">{{item | convertaction}}</div>
+            </ng-container>
+          </a>
+        </li>
+      </ng-template>
       <li *ngIf="items?.length == 0">
         <a role="menuitem" class="list-item">
           <span class="material-icons">visibility_off</span>
diff --git a/services/self-service/src/main/resources/webapp/src/app/shared/inform-message/inform-message.component.css b/services/self-service/src/main/resources/webapp/src/app/shared/inform-message/inform-message.component.css
index 4a36213..96ee4e1 100644
--- a/services/self-service/src/main/resources/webapp/src/app/shared/inform-message/inform-message.component.css
+++ b/services/self-service/src/main/resources/webapp/src/app/shared/inform-message/inform-message.component.css
@@ -18,16 +18,16 @@
  */
 
 .message-wrapper{
-  min-height: 200px;
-  width: 100%;
-  box-shadow: 0 2px 1px -1px rgba(0,0,0,.2), 0 1px 1px 0 rgba(0,0,0,.14), 0 1px 3px 0 rgba(0,0,0,.12);
-  transition: box-shadow 280ms cubic-bezier(.4,0,.2,1);
   display: flex;
   justify-content: center;
   align-items: center;
   padding: 16px;
-  border-radius: 4px;
+  min-height: 200px;
+  width: 100%;
   background: #fff;
   color: rgba(0,0,0,.87);
+  border-radius: 4px;
+  box-shadow: 0 2px 1px -1px rgba(0,0,0,.2), 0 1px 1px 0 rgba(0,0,0,.14), 0 1px 3px 0 rgba(0,0,0,.12);
+  transition: box-shadow 280ms cubic-bezier(.4,0,.2,1);
 }
 
diff --git a/services/self-service/src/main/resources/webapp/src/app/shared/inform-message/inform-message.component.ts b/services/self-service/src/main/resources/webapp/src/app/shared/inform-message/inform-message.component.ts
index f516928..26491cb 100644
--- a/services/self-service/src/main/resources/webapp/src/app/shared/inform-message/inform-message.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/shared/inform-message/inform-message.component.ts
@@ -17,10 +17,7 @@
  * under the License.
  */
 
-import { Component, Input, Output, EventEmitter, HostBinding,
-         ChangeDetectorRef, ElementRef, OnInit, OnDestroy,
-         ViewEncapsulation, HostListener } from '@angular/core';
-
+import { Component, Input, OnInit } from '@angular/core';
 
 @Component({
   selector: 'inform-message',
@@ -32,10 +29,7 @@
 export class InformMessageComponent implements OnInit {
   @Input() message: string;
 
-  constructor() {}
+  constructor() { }
 
-  ngOnInit(): void {
-  }
-
-
+  ngOnInit(): void { }
 }
diff --git a/services/self-service/src/main/resources/webapp/src/app/shared/navbar/navbar.component.html b/services/self-service/src/main/resources/webapp/src/app/shared/navbar/navbar.component.html
index c539dbb..4c61dc9 100644
--- a/services/self-service/src/main/resources/webapp/src/app/shared/navbar/navbar.component.html
+++ b/services/self-service/src/main/resources/webapp/src/app/shared/navbar/navbar.component.html
@@ -18,7 +18,7 @@
   -->
 
 <div class="nav-bar" [hidden]="!isLoggedIn">
-<!--  <mat-progress-bar *ngIf="showProgressBar" mode="indeterminate"></mat-progress-bar>-->
+  <!--  <mat-progress-bar *ngIf="showProgressBar" mode="indeterminate"></mat-progress-bar>-->
   <mat-progress-bar *ngIf="progressBarService.showProgressBar | async" mode="indeterminate"></mat-progress-bar>
   <div class="menu-area" *ngIf="healthStatus">
 
@@ -61,88 +61,131 @@
         </p>
       </div>
     </bubble-up>
-    <button class="btn btn-logout ani" (click)="logout_btnClick()">Log out <span
-        class="user-name">{{currentUserName}}</span></button>
+    <button class="btn btn-logout ani" (click)="logout_btnClick()">
+      Log out <span class="user-name">{{currentUserName}}</span>
+    </button>
   </div>
-
 </div>
+
 <mat-sidenav-container class="example-container" autosize >
-  <mat-sidenav #drawer mode="side" opened role="navigation" [style.width]="isExpanded ? '220px' : '60px'" disableClose *ngIf="healthStatus">
+  <mat-sidenav 
+    #drawer 
+    mode="side" 
+    opened 
+    role="navigation" 
+    [style.width]="isExpanded ? '220px' : '60px'" 
+    disableClose 
+    *ngIf="healthStatus"
+  >
     <mat-nav-list >
       <nav>
         <div>
-          <a class="nav-item" [routerLink]="['/resources_list']" [routerLinkActive]="['active']"
-            [routerLinkActiveOptions]="{exact:true}">
+          <a 
+            class="nav-item" 
+            [routerLink]="['/resources_list']" 
+            [routerLinkActive]="['active']"
+            [routerLinkActiveOptions]="{exact:true}"
+          >
             <span *ngIf="isExpanded; else resources">List of Resources</span>
             <ng-template #resources><i class="material-icons">dashboard</i></ng-template>
           </a>
           <a class="nav-item has-children" *ngIf="healthStatus?.admin || healthStatus?.projectAdmin">
             <span *ngIf="isExpanded">Administration</span>
 
-            <a class="sub-nav-item" [style.margin-left.px]="isExpanded ? '30' : '0'" [routerLink]="['/roles']"
-              [routerLinkActive]="['active']" [routerLinkActiveOptions]="{exact:true}">
+            <a 
+              class="sub-nav-item" 
+              [style.margin-left.px]="isExpanded ? '30' : '0'" 
+              [routerLink]="['/roles']"
+              [routerLinkActive]="['active']" 
+              [routerLinkActiveOptions]="{exact:true}"
+            >
               <span *ngIf="isExpanded; else roles">Roles</span>
               <ng-template #roles><i class="material-icons">account_box</i></ng-template>
             </a>
-            <a class="sub-nav-item" [style.margin-left.px]="isExpanded ? '30' : '0'" [routerLink]="['/projects']"
-              [routerLinkActive]="['active']" [routerLinkActiveOptions]="{exact:true}">
+            <a 
+              class="sub-nav-item" 
+              [style.margin-left.px]="isExpanded ? '30' : '0'" 
+              [routerLink]="['/projects']"
+              [routerLinkActive]="['active']" 
+              [routerLinkActiveOptions]="{exact:true}"
+            >
               <span *ngIf="isExpanded; else projects">Projects</span>
               <ng-template #projects><i class="material-icons">dns</i></ng-template>
             </a>
-<!--            <a class="sub-nav-item" [style.margin-left.px]="isExpanded ? '30' : '0'" [routerLink]="['/odahu']"-->
-<!--               [routerLinkActive]="['active']" [routerLinkActiveOptions]="{exact:true}">-->
-<!--              <span *ngIf="isExpanded; else odahu">Odahu deployment</span>-->
-<!--              <ng-template #odahu><i class="material-icons">get_app</i></ng-template>-->
-<!--            </a>-->
-            <a class="sub-nav-item" [style.margin-left.px]="isExpanded ? '30' : '0'"
-              [routerLink]="['/environment_management']" [routerLinkActive]="['active']"
-              [routerLinkActiveOptions]="{exact:true}">
+            <!--            <a class="sub-nav-item" [style.margin-left.px]="isExpanded ? '30' : '0'" [routerLink]="['/odahu']"-->
+            <!--               [routerLinkActive]="['active']" [routerLinkActiveOptions]="{exact:true}">-->
+            <!--              <span *ngIf="isExpanded; else odahu">Odahu deployment</span>-->
+            <!--              <ng-template #odahu><i class="material-icons">get_app</i></ng-template>-->
+            <!--            </a>-->
+            <a 
+              class="sub-nav-item" 
+              [style.margin-left.px]="isExpanded ? '30' : '0'"
+              [routerLink]="['/environment_management']" 
+              [routerLinkActive]="['active']"
+              [routerLinkActiveOptions]="{exact:true}"
+            >
               <span *ngIf="isExpanded; else env">Environment Management</span>
               <ng-template #env><i class="material-icons">settings</i></ng-template>
             </a>
-            <a *ngIf="healthStatus?.admin" class="sub-nav-item" [style.margin-left.px]="isExpanded ? '30' : '0'"
-               [routerLink]="['/configuration']" [routerLinkActive]="['active']"
-               [routerLinkActiveOptions]="{exact:true}" >
+            <a 
+              *ngIf="healthStatus?.admin" 
+              class="sub-nav-item" 
+              [style.margin-left.px]="isExpanded ? '30' : '0'"
+              [routerLink]="['/configuration']" 
+              [routerLinkActive]="['active']"
+              [routerLinkActiveOptions]="{exact:true}"
+            >
               <span *ngIf="isExpanded; else env">Configuration</span>
               <ng-template #env><i class="material-icons">build_circle</i></ng-template>
             </a>
           </a>
           <a class="nav-item has-children" *ngIf="healthStatus?.billingEnabled || healthStatus?.auditEnabled">
             <span *ngIf="isExpanded">Reports</span>
-            <a *ngIf="healthStatus?.auditEnabled" class="sub-nav-item" [routerLink]="['/audit']" [style.margin-left.px]="isExpanded ? '30' : '0'"
-               [routerLinkActive]="['active']" [routerLinkActiveOptions]="{exact:true}">
+            <a 
+              *ngIf="healthStatus?.auditEnabled" 
+              class="sub-nav-item" 
+              [routerLink]="['/audit']" 
+              [style.margin-left.px]="isExpanded ? '30' : '0'"
+              [routerLinkActive]="['active']" 
+              [routerLinkActiveOptions]="{exact:true}"
+            >
               <span *ngIf="isExpanded; else audit">Audit</span>
               <ng-template #audit><i class="material-icons">library_books</i></ng-template>
             </a>
-            <a *ngIf="healthStatus?.billingEnabled" class="sub-nav-item" [routerLink]="['/billing_report']"
-              [routerLinkActive]="['active']" [routerLinkActiveOptions]="{exact:true}" [style.margin-left.px]="isExpanded ? '30' : '0'">
+            <a 
+              *ngIf="healthStatus?.billingEnabled" 
+              class="sub-nav-item" 
+              [routerLink]="['/billing_report']"
+              [routerLinkActive]="['active']" 
+              [routerLinkActiveOptions]="{exact:true}" 
+              [style.margin-left.px]="isExpanded ? '30' : '0'"
+            >
               <span *ngIf="isExpanded; else billing">Billing</span>
               <ng-template #billing><i class="material-icons">account_balance_wallet</i></ng-template>
             </a>
           </a>
         </div>
-<!--        <div>-->
-<!--          <a class="nav-item" [routerLink]="['/swagger']" [routerLinkActive]="['active']"-->
-<!--            [routerLinkActiveOptions]="{exact:true}">-->
-<!--            <span *ngIf="isExpanded; else endpoint">Cloud Endpoint API</span>-->
-<!--            <ng-template #endpoint>-->
-<!--              <span>-->
-<!--                  <g>-->
-<!--                    <path d="M127.059657,255.996921 C58.8506544,255.526472 -0.457073619,198.918442 0.00265506057,126.998303 C0.444649399,57.7958628 57.9516598,-0.468967577 129.11002,0.00284555012 C198.267128,0.462386081 256.613109,57.8667711 255.995136,128.194199 C256.568091,197.883453 197.934268,256.489189 127.059657,255.996921 Z M127.059657,255.996921 C58.8506544,255.526472 -0.457073619,198.918442 0.00265506057,126.998303 C0.444649399,57.7958628 57.9516598,-0.468967577 129.11002,0.00284555012 C198.267128,0.462386081 256.613109,57.8667711 255.995136,128.194199 C256.568091,197.883453 197.934268,256.489189 127.059657,255.996921 Z" fill="#FFFFFF"></path>-->
-<!--                    <path id="swager-bgr" d="M127.184644,238.997327 C68.0323765,238.589271 16.6036091,189.498744 17.0023028,127.131428 C17.3860285,67.1185953 67.2554,16.5917106 128.963117,17.0024872 C188.934544,17.4010221 239.531905,67.1825241 238.995778,128.169251 C239.492444,188.602381 188.64743,239.424426 127.184644,238.997327 Z M127.184644,238.997327 C68.0323765,238.589271 16.6036091,189.498744 17.0023028,127.131428 C17.3860285,67.1185953 67.2554,16.5917106 128.963117,17.0024872 C188.934544,17.4010221 239.531905,67.1825241 238.995778,128.169251 C239.492444,188.602381 188.64743,239.424426 127.184644,238.997327 Z" fill="#577289"></path>-->
-<!--                    <path d="M169.327319,127.956161 C169.042723,133.246373 164.421106,137.639224 159.866213,136.872586 C159.844426,136.872586 159.821277,136.872586 159.798128,136.872586 C154.753021,136.879395 150.658383,132.794288 150.652936,127.749182 C150.824511,122.690458 155.019915,118.703395 160.08,118.789182 C165.125106,118.813692 169.59966,123.077182 169.327319,127.956161 Z M88.2011915,179.220161 C90.1034894,179.27599 92.0071489,179.235139 94.2008511,179.235139 L94.2008511,193.021012 C80.5661277,195.326373 69.3348085,191.455054 66.5787234,179.929607 C65.6350638,175.69199 65.0549787,171.380841 64.8425532,167.04382 C64.5497872,162.452161 65.0563404,157.808756 64.706383,153.225267 C63.7368511,140.613182 62.1028085,136.30748 50,135.711054 L50,120.014714 C50.8674043,119.81182 51.7470638,119.662033 52.6321702,119.562629 C59.2677447,119.23582 62.0646809,117.201437 63.5489362,110.665267 C64.2243404,106.992756 64.6246809,103.275309 64.7431489,99.5428839 C65.268766,92.3258627 65.0822128,84.991735 66.2845957,77.8918201 C68.0221277,67.6245861 74.3962553,62.6366712 84.9249362,62.0783733 C87.9206809,61.9176925 90.9259574,62.0538627 94.3206809,62.0538627 L94.3206809,76.1447563 C92.9235745,76.2441605 91.6435745,76.4470542 90.3717447,76.4089265 C81.7916596,76.146118 81.3477447,79.0683308 80.7213617,86.1709691 C80.3305532,90.6250967 80.8697872,95.1554797 80.5661277,99.6245861 C80.2488511,104.071905 79.6537872,108.496075 78.7850213,112.869863 C77.547234,119.208586 73.6500426,123.922799 68.2495319,127.92348 C78.7332766,134.745607 79.9261277,145.346458 80.6069787,156.110714 C80.9732766,161.895224 80.8057872,167.720586 81.3926809,173.476501 C81.8502128,177.944246 83.5877447,179.08399 88.2011915,179.220161 Z M97.0372766,118.789182 C97.0917447,118.789182 97.1448511,118.789182 97.1993191,118.789182 C102.211745,118.872246 106.209702,123.002288 106.126638,128.016075 C106.126638,128.180841 106.121191,128.344246 106.11166,128.50765 C105.829787,133.407054 101.630298,137.149012 96.7308936,136.867139 C96.5334468,136.871224 96.3373617,136.867139 96.1399149,136.857607 C91.1506383,136.609778 87.3065532,132.36399 87.554383,127.374714 C87.8022128,122.385437 92.048,118.541352 97.0372766,118.789182 Z M128.273362,118.789182 C133.755574,118.746969 137.396766,122.29965 137.425362,127.719224 C137.455319,133.284501 134.003404,136.845352 128.556596,136.868501 C123.017191,136.893012 119.370553,133.389352 119.340596,128.002458 C119.324255,127.727395 119.32017,127.452331 119.32834,127.177267 C119.482213,122.390884 123.486979,118.635309 128.273362,118.789182 Z M193.673191,111.92348 C195.131574,117.370288 197.970723,119.284841 203.704851,119.546288 C204.644426,119.589863 205.579915,119.749182 206.868085,119.892161 L206.868085,135.584416 C206.170894,135.813182 205.456,135.984756 204.730213,136.096416 C197.046128,136.574373 193.54383,139.726714 192.76766,147.431224 C192.272,152.349692 192.312851,157.322629 191.972426,162.258799 C191.829447,167.678373 191.336511,173.082969 190.49634,178.438544 C188.535489,188.142033 182.477277,192.982884 172.467404,193.573863 C169.245617,193.764501 166.000681,193.60382 162.526979,193.60382 L162.526979,179.578288 C164.396596,179.462544 166.046979,179.303224 167.701447,179.263735 C173.682043,179.120756 175.796766,177.192586 176.089532,171.252841 C176.413617,164.727565 176.555234,158.194118 176.846638,151.66748 C177.270128,142.233607 179.853277,133.806033 188.641702,127.922118 C183.612936,124.336756 179.575489,119.994288 178.529702,114.138969 C177.264681,107.041778 176.85617,99.7879903 176.175319,92.5913946 C175.838979,88.9937776 175.855319,85.3648414 175.504,81.7699478 C175.125447,77.8890967 172.459234,76.5464584 168.926979,76.4593095 C166.903489,76.4102882 164.87183,76.4497776 162.284596,76.4497776 L162.284596,62.7537776 C178.793872,60.0126712 190.198128,65.5057776 191.257532,81.3015222 C191.701447,87.9343733 191.636085,94.5985435 192.060936,101.231395 C192.247489,104.839905 192.786723,108.421182 193.673191,111.92348 Z" fill="#ffffff"></path>-->
-<!--                  </g>-->
-<!--                </svg>-->
-<!--              </span>-->
-<!--            </ng-template>-->
-<!--          </a>-->
-<!--        </div>-->
+        <!--        <div>-->
+        <!--          <a class="nav-item" [routerLink]="['/swagger']" [routerLinkActive]="['active']"-->
+        <!--            [routerLinkActiveOptions]="{exact:true}">-->
+        <!--            <span *ngIf="isExpanded; else endpoint">Cloud Endpoint API</span>-->
+        <!--            <ng-template #endpoint>-->
+        <!--              <span>-->
+        <!--                  <g>-->
+        <!--                    <path d="M127.059657,255.996921 C58.8506544,255.526472 -0.457073619,198.918442 0.00265506057,126.998303 C0.444649399,57.7958628 57.9516598,-0.468967577 129.11002,0.00284555012 C198.267128,0.462386081 256.613109,57.8667711 255.995136,128.194199 C256.568091,197.883453 197.934268,256.489189 127.059657,255.996921 Z M127.059657,255.996921 C58.8506544,255.526472 -0.457073619,198.918442 0.00265506057,126.998303 C0.444649399,57.7958628 57.9516598,-0.468967577 129.11002,0.00284555012 C198.267128,0.462386081 256.613109,57.8667711 255.995136,128.194199 C256.568091,197.883453 197.934268,256.489189 127.059657,255.996921 Z" fill="#FFFFFF"></path>-->
+        <!--                    <path id="swager-bgr" d="M127.184644,238.997327 C68.0323765,238.589271 16.6036091,189.498744 17.0023028,127.131428 C17.3860285,67.1185953 67.2554,16.5917106 128.963117,17.0024872 C188.934544,17.4010221 239.531905,67.1825241 238.995778,128.169251 C239.492444,188.602381 188.64743,239.424426 127.184644,238.997327 Z M127.184644,238.997327 C68.0323765,238.589271 16.6036091,189.498744 17.0023028,127.131428 C17.3860285,67.1185953 67.2554,16.5917106 128.963117,17.0024872 C188.934544,17.4010221 239.531905,67.1825241 238.995778,128.169251 C239.492444,188.602381 188.64743,239.424426 127.184644,238.997327 Z" fill="#577289"></path>-->
+        <!--                    <path d="M169.327319,127.956161 C169.042723,133.246373 164.421106,137.639224 159.866213,136.872586 C159.844426,136.872586 159.821277,136.872586 159.798128,136.872586 C154.753021,136.879395 150.658383,132.794288 150.652936,127.749182 C150.824511,122.690458 155.019915,118.703395 160.08,118.789182 C165.125106,118.813692 169.59966,123.077182 169.327319,127.956161 Z M88.2011915,179.220161 C90.1034894,179.27599 92.0071489,179.235139 94.2008511,179.235139 L94.2008511,193.021012 C80.5661277,195.326373 69.3348085,191.455054 66.5787234,179.929607 C65.6350638,175.69199 65.0549787,171.380841 64.8425532,167.04382 C64.5497872,162.452161 65.0563404,157.808756 64.706383,153.225267 C63.7368511,140.613182 62.1028085,136.30748 50,135.711054 L50,120.014714 C50.8674043,119.81182 51.7470638,119.662033 52.6321702,119.562629 C59.2677447,119.23582 62.0646809,117.201437 63.5489362,110.665267 C64.2243404,106.992756 64.6246809,103.275309 64.7431489,99.5428839 C65.268766,92.3258627 65.0822128,84.991735 66.2845957,77.8918201 C68.0221277,67.6245861 74.3962553,62.6366712 84.9249362,62.0783733 C87.9206809,61.9176925 90.9259574,62.0538627 94.3206809,62.0538627 L94.3206809,76.1447563 C92.9235745,76.2441605 91.6435745,76.4470542 90.3717447,76.4089265 C81.7916596,76.146118 81.3477447,79.0683308 80.7213617,86.1709691 C80.3305532,90.6250967 80.8697872,95.1554797 80.5661277,99.6245861 C80.2488511,104.071905 79.6537872,108.496075 78.7850213,112.869863 C77.547234,119.208586 73.6500426,123.922799 68.2495319,127.92348 C78.7332766,134.745607 79.9261277,145.346458 80.6069787,156.110714 C80.9732766,161.895224 80.8057872,167.720586 81.3926809,173.476501 C81.8502128,177.944246 83.5877447,179.08399 88.2011915,179.220161 Z M97.0372766,118.789182 C97.0917447,118.789182 97.1448511,118.789182 97.1993191,118.789182 C102.211745,118.872246 106.209702,123.002288 106.126638,128.016075 C106.126638,128.180841 106.121191,128.344246 106.11166,128.50765 C105.829787,133.407054 101.630298,137.149012 96.7308936,136.867139 C96.5334468,136.871224 96.3373617,136.867139 96.1399149,136.857607 C91.1506383,136.609778 87.3065532,132.36399 87.554383,127.374714 C87.8022128,122.385437 92.048,118.541352 97.0372766,118.789182 Z M128.273362,118.789182 C133.755574,118.746969 137.396766,122.29965 137.425362,127.719224 C137.455319,133.284501 134.003404,136.845352 128.556596,136.868501 C123.017191,136.893012 119.370553,133.389352 119.340596,128.002458 C119.324255,127.727395 119.32017,127.452331 119.32834,127.177267 C119.482213,122.390884 123.486979,118.635309 128.273362,118.789182 Z M193.673191,111.92348 C195.131574,117.370288 197.970723,119.284841 203.704851,119.546288 C204.644426,119.589863 205.579915,119.749182 206.868085,119.892161 L206.868085,135.584416 C206.170894,135.813182 205.456,135.984756 204.730213,136.096416 C197.046128,136.574373 193.54383,139.726714 192.76766,147.431224 C192.272,152.349692 192.312851,157.322629 191.972426,162.258799 C191.829447,167.678373 191.336511,173.082969 190.49634,178.438544 C188.535489,188.142033 182.477277,192.982884 172.467404,193.573863 C169.245617,193.764501 166.000681,193.60382 162.526979,193.60382 L162.526979,179.578288 C164.396596,179.462544 166.046979,179.303224 167.701447,179.263735 C173.682043,179.120756 175.796766,177.192586 176.089532,171.252841 C176.413617,164.727565 176.555234,158.194118 176.846638,151.66748 C177.270128,142.233607 179.853277,133.806033 188.641702,127.922118 C183.612936,124.336756 179.575489,119.994288 178.529702,114.138969 C177.264681,107.041778 176.85617,99.7879903 176.175319,92.5913946 C175.838979,88.9937776 175.855319,85.3648414 175.504,81.7699478 C175.125447,77.8890967 172.459234,76.5464584 168.926979,76.4593095 C166.903489,76.4102882 164.87183,76.4497776 162.284596,76.4497776 L162.284596,62.7537776 C178.793872,60.0126712 190.198128,65.5057776 191.257532,81.3015222 C191.701447,87.9343733 191.636085,94.5985435 192.060936,101.231395 C192.247489,104.839905 192.786723,108.421182 193.673191,111.92348 Z" fill="#ffffff"></path>-->
+        <!--                  </g>-->
+        <!--                </svg>-->
+        <!--              </span>-->
+        <!--            </ng-template>-->
+        <!--          </a>-->
+        <!--        </div>-->
       </nav>
     </mat-nav-list>
   </mat-sidenav>
   <mat-sidenav-content id="scrolling" [style.margin-left]="isExpanded ? '220px' : '60px'">
     <div [@fadeAnimation]="getRouterOutletState(routerOutlet)" class="fade-animation">
-
       <router-outlet #routerOutlet="outlet"></router-outlet>
     </div>
   </mat-sidenav-content>
diff --git a/services/self-service/src/main/resources/webapp/src/app/shared/navbar/navbar.component.scss b/services/self-service/src/main/resources/webapp/src/app/shared/navbar/navbar.component.scss
index 86480bd..3d99f7d 100644
--- a/services/self-service/src/main/resources/webapp/src/app/shared/navbar/navbar.component.scss
+++ b/services/self-service/src/main/resources/webapp/src/app/shared/navbar/navbar.component.scss
@@ -21,15 +21,15 @@
 // }
 
 .nav-bar {
-  min-height: 48px;
-  height: 48px;
-  background-color: #222;
-  border-color: #080808;
   position: relative;
   display: flex;
   justify-content: space-between;
   margin-bottom: 0;
   border-radius: 0;
+  min-height: 48px;
+  height: 48px;
+  background-color: #222;
+  border-color: #080808;
 
   .menu-area {
     display: flex;
@@ -52,10 +52,10 @@
 
     .statusbar {
       display: flex;
+      justify-content: center;
       width: 50px;
       height: 46px;
       text-decoration: none;
-      justify-content: center;
       color: #f9fafb;
       cursor: pointer;
 
@@ -99,14 +99,14 @@
 
     .btn-logout {
       height: 46px;
+      min-width: 280px;
       padding: 0 28px;
       background: #383838;
+      font-size: 14px;
       color: #cfdae6;
       border: 0;
       border-radius: 0;
-      font-size: 14px;
       cursor: pointer;
-      min-width: 280px;
       text-align: left;
 
       .user-name {
@@ -129,11 +129,11 @@
 
   p {
     strong {
+      display: inline-block;
+      width: 120px;
       color: #455c74;
       font-size: 14px;
       font-weight: 600;
-      width: 120px;
-      display: inline-block;
     }
 
     .helper_instruction {
@@ -145,8 +145,8 @@
     }
 
     span {
-      width: 180px;
       display: inline-block;
+      width: 180px;
       vertical-align: bottom;
     }
   }
@@ -157,13 +157,13 @@
 }
 
 a.nav-item {
-  display: block;
   position: relative;
+  display: block;
   height: 56px;
   padding: 5px 10px;
   line-height: 48px;
   font-family: "Open Sans", sans-serif;
-  transition: all .45s ease-in-out;
+  transition: all 0.45s ease-in-out;
   text-decoration: none;
   font-size: 14px;
   overflow: hidden;
@@ -184,18 +184,19 @@
     background: none !important;
     color: #36afd5 !important;
   }
-  &:not(.has-children):hover #swager-bgr{
+
+  &:not(.has-children):hover #swager-bgr {
     fill: #36afd5;
   }
 
   &:not(:last-child)::after {
-    content: ' ';
+    content: " ";
     position: absolute;
     bottom: 0;
-    left: calc(50% - 200px/2);
+    left: calc(50% - 200px / 2);
+    display: block;
     height: 1px;
     width: 200px;
-    display: block;
     background: #edf1f5;
   }
 
@@ -212,7 +213,7 @@
 
   .sub-nav-item {
     display: block;
-    transition: all .45s ease-in-out;
+    transition: all 0.45s ease-in-out;
 
     i {
       vertical-align: middle;
@@ -235,30 +236,30 @@
 .error,
 .user-name,
 .meta {
-  transition: all .35s ease-in-out;
+  transition: all 0.35s ease-in-out;
 }
 
 .hamburger {
-  border: none;
-  padding: 0;
-  background: none;
-  outline: none;
   width: 60px;
   height: 46px;
+  padding: 0;
+  border: none;
+  background: none;
+  outline: none;
   cursor: pointer;
   border-radius: 0;
-  transition: all .45s ease-in-out;
+  transition: all 0.45s ease-in-out;
 
   .line {
+    display: block;
     width: 22px;
     height: 2px;
-    display: block;
     margin: 4px auto;
     border-radius: 1px;
     background-color: #ecf0f1;
-    -webkit-transition: all .35s ease-in-out;
-    -o-transition: all .35s ease-in-out;
-    transition: all .35s ease-in-out;
+    -webkit-transition: all 0.35s ease-in-out;
+    -o-transition: all 0.35s ease-in-out;
+    transition: all 0.35s ease-in-out;
 
     &:nth-child(2) {
       -webkit-transition-delay: 0.3s;
@@ -299,7 +300,6 @@
 }
 
 mat-sidenav {
-
   mat-nav-list {
     height: 100%;
 
@@ -329,6 +329,6 @@
   }
 }
 
-.blue{
+.blue {
   color: #35afd5;
 }
diff --git a/services/self-service/src/main/resources/webapp/src/app/shared/navbar/navbar.component.ts b/services/self-service/src/main/resources/webapp/src/app/shared/navbar/navbar.component.ts
index bdb2b86..95907e7 100644
--- a/services/self-service/src/main/resources/webapp/src/app/shared/navbar/navbar.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/shared/navbar/navbar.component.ts
@@ -17,13 +17,19 @@
  * under the License.
  */
 
-import {Component, ViewEncapsulation, OnInit, OnDestroy, ViewChild, ChangeDetectorRef, ApplicationRef} from '@angular/core';
+import { Component, ViewEncapsulation, OnInit, OnDestroy } from '@angular/core';
 import { MatDialog, MatDialogRef } from '@angular/material/dialog';
-import {Subscription, timer, interval, Subject} from 'rxjs';
+import { Subscription, timer } from 'rxjs';
 import { ToastrService } from 'ngx-toastr';
 import { RouterOutlet } from '@angular/router';
 
-import { ApplicationSecurityService, HealthStatusService, AppRoutingService, SchedulerService, StorageService } from '../../core/services';
+import { 
+  ApplicationSecurityService, 
+  HealthStatusService, 
+  AppRoutingService, 
+  SchedulerService, 
+  StorageService 
+} from '../../core/services';
 import { GeneralEnvironmentStatus } from '../../administration/management/management.model';
 import { NotificationDialogComponent } from '../modal-dialog/notification-dialog';
 import {
@@ -31,13 +37,12 @@
   animate,
   transition,
   style,
-  query, group,
-
+  query, 
+  group,
 } from '@angular/animations';
 import {skip, take} from 'rxjs/operators';
 import {ProgressBarService} from '../../core/services/progress-bar.service';
 
-
 interface Quota {
   projectQuotas: {};
   totalQuotaUsed: number;
diff --git a/services/self-service/src/main/resources/webapp/src/app/shared/time-picker/ticker.component.ts b/services/self-service/src/main/resources/webapp/src/app/shared/time-picker/ticker.component.ts
index 6600838..45931f1 100644
--- a/services/self-service/src/main/resources/webapp/src/app/shared/time-picker/ticker.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/shared/time-picker/ticker.component.ts
@@ -38,8 +38,13 @@
           <button mat-mini-fab class="ticker-selected"></button>
         </mat-toolbar>
         <div *ngFor="let step of steps; let i = index" [class]="getTimeValueClass(step, i)" >
-            <button mat-mini-fab [color]="selectedTimePart === step ? color : ''"
-                    (click)="changeTimeValue(step)"> {{ step }} </button>
+          <button 
+            mat-mini-fab 
+            [color]="selectedTimePart === step ? color : ''"
+            (click)="changeTimeValue(step)"
+          > 
+            {{ step }} 
+          </button>
         </div>
       </div>
     </div>
diff --git a/services/self-service/src/main/resources/webapp/src/app/shared/time-picker/time-cover.component.ts b/services/self-service/src/main/resources/webapp/src/app/shared/time-picker/time-cover.component.ts
index 96aa5ef..79f3434 100755
--- a/services/self-service/src/main/resources/webapp/src/app/shared/time-picker/time-cover.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/shared/time-picker/time-cover.component.ts
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-import { Component, Input, Output, OnInit, Inject, EventEmitter  } from '@angular/core';
+import { Component, Input, Output, OnInit, EventEmitter  } from '@angular/core';
 
 import { CLOCK_TYPE, TimeFormat } from './ticker.component';
 type TimeFormatAlias = TimeFormat;
diff --git a/services/self-service/src/main/resources/webapp/src/app/shared/time-picker/time-picker.component.scss b/services/self-service/src/main/resources/webapp/src/app/shared/time-picker/time-picker.component.scss
index 55909ef..43281d1 100755
--- a/services/self-service/src/main/resources/webapp/src/app/shared/time-picker/time-picker.component.scss
+++ b/services/self-service/src/main/resources/webapp/src/app/shared/time-picker/time-picker.component.scss
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-@import '_variables.scss';
+@import "_variables.scss";
 
 @-webkit-keyframes bounce {
   from {
@@ -88,15 +88,15 @@
 }
 
 .time-cover {
-  max-height: 100%;
-  width: 300px;
   display: flex;
   flex-direction: column;
+  max-height: 100%;
+  width: 300px;
 
   .container {
-    padding: 15px;
     min-width: 160px;
     width: 160px;
+    padding: 15px;
 
     &.mat-toolbar-single-row {
       background: $modal-header-color;
@@ -105,9 +105,9 @@
   }
 
   .selected-time {
+    display: flex;
     font-size: 3.5rem;
     font-weight: 400;
-    display: flex;
 
     .active {
       color: #36afd5;
@@ -115,9 +115,9 @@
   }
 
   .selected-meridiem {
+    padding-top: 2rem;
     font-size: 1rem;
     line-height: 1.3rem;
-    padding-top: 2rem;
 
     .active {
       color: #36afd5;
@@ -135,19 +135,19 @@
   }
 }
 
-.selected-time>span,
-.selected-meridiem>span {
+.selected-time > span,
+.selected-meridiem > span {
   outline: 0;
   opacity: 0.5;
 }
 
-.selected-time>span:not(.active),
-.selected-meridiem>span:not(.active) {
+.selected-time > span:not(.active),
+.selected-meridiem > span:not(.active) {
   cursor: pointer;
 }
 
-.selected-time>span.active,
-.selected-meridiem>span.active {
+.selected-time > span.active,
+.selected-meridiem > span.active {
   opacity: 1;
 }
 
@@ -164,50 +164,50 @@
   .ticker {
     width: 200px;
     height: 200px;
+    padding: 24px;
+    margin: 30px auto;
     border-radius: 50%;
     cursor: pointer;
-    padding: 24px;
     background: #ededed;
-    margin: 30px auto;
 
     .ticker-container {
-      width: 100%;
-      height: 100%;
       position: relative;
       display: block;
+      width: 100%;
+      height: 100%;
     }
 
     .ticker-center {
-      height: 6px;
-      width: 6px;
       position: absolute;
       left: 0;
       right: 0;
       top: 0;
       bottom: 0;
+      height: 6px;
+      width: 6px;
       margin: auto;
       border-radius: 50%;
     }
 
     .pointer {
       box-shadow: none;
-      width: 1px;
-      height: 50%;
       position: absolute;
       left: 0;
       right: 0;
       bottom: 0;
+      z-index: 0;
+      width: 1px;
+      height: 50%;
       margin: 0 auto;
       padding: 0;
       transform-origin: top center;
       transition: transform 200ms;
-      z-index: 0;
       pointer-events: none;
     }
 
     .ticker-step {
-      display: block;
       position: absolute;
+      display: block;
       transform: translate(-50%, -50%);
       transition: transform 200ms;
 
diff --git a/services/self-service/src/main/resources/webapp/src/app/shared/time-picker/time-picker.component.ts b/services/self-service/src/main/resources/webapp/src/app/shared/time-picker/time-picker.component.ts
index 7b1f38d..6fba205 100644
--- a/services/self-service/src/main/resources/webapp/src/app/shared/time-picker/time-picker.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/shared/time-picker/time-picker.component.ts
@@ -29,13 +29,21 @@
   template: `
     <div class="time-picker">
       <mat-form-field class="time-select">
-        <input matInput
-               placeholder="{{ label }}"
-               [value]="(selectedTime | localDate : 'shortTime') || null"
-               (input)="checkEmpty($event.target['value'])"
-               [disabled]="disable"
+        <input 
+          matInput
+          placeholder="{{ label }}"
+          [value]="(selectedTime | localDate : 'shortTime') || null"
+          (input)="checkEmpty($event.target['value'])"
+          [disabled]="disable"
         />
-        <mat-icon matSuffix [ngClass]="{'not-allowed': disable}" (click)="openDatePickerDialog($event)" disabled="disable">access_time</mat-icon>
+        <mat-icon 
+          matSuffix 
+          [ngClass]="{'not-allowed': disable}" 
+          (click)="openDatePickerDialog($event)" 
+          disabled="disable"
+        >
+          access_time
+        </mat-icon>
       </mat-form-field>
     </div>`,
   styleUrls: ['./time-picker.component.scss']
diff --git a/services/self-service/src/main/resources/webapp/src/app/webterminal/webterminal.component.ts b/services/self-service/src/main/resources/webapp/src/app/webterminal/webterminal.component.ts
index 0b54e47..9d4adf1 100644
--- a/services/self-service/src/main/resources/webapp/src/app/webterminal/webterminal.component.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/webterminal/webterminal.component.ts
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-import { Component, OnInit, ElementRef, ViewEncapsulation, ViewContainerRef, ViewChild, Inject } from '@angular/core';
+import { Component, OnInit, ElementRef, ViewEncapsulation, ViewChild, Inject } from '@angular/core';
 import { DOCUMENT } from '@angular/common';
 import { ActivatedRoute } from '@angular/router';
 import Guacamole from 'guacamole-common-js';
@@ -28,7 +28,6 @@
 const API_URL = environment.apiUrl;
 
 import { StorageService } from '../core/services';
-import { FileUtils } from '../core/util';
 
 @Component({
   selector: 'datalab-webterminal',
diff --git a/services/self-service/src/main/resources/webapp/src/assets/styles/_dialogs.scss b/services/self-service/src/main/resources/webapp/src/assets/styles/_dialogs.scss
index e10cc90..2802945 100644
--- a/services/self-service/src/main/resources/webapp/src/assets/styles/_dialogs.scss
+++ b/services/self-service/src/main/resources/webapp/src/assets/styles/_dialogs.scss
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-@import '_variables.scss';
+@import "_variables.scss";
 
 .modal-xs {
   width: 375px;
@@ -61,22 +61,22 @@
   overflow-x: hidden;
 
   &.mat-dialog-container {
+    position: relative;
     padding: 0;
     border-radius: 0;
     overflow-x: hidden;
-    position: relative;
 
     #dialog-box {
-      color: $modal-text-color;
       min-height: 150px;
+      color: $modal-text-color;
       font-family: "Open Sans", sans-serif;
 
       .dialog-header {
-        padding-left: 30px;
-        background: $modal-header-color;
-        height: 50px;
-        line-height: 50px;
         position: relative;
+        padding-left: 30px;
+        height: 50px;
+        background: $modal-header-color;
+        line-height: 50px;
 
         .modal-title {
           width: 90%;
@@ -89,8 +89,8 @@
           font-size: 18px;
           background: $modal-header-color;
 
-          &::after{
-            content: '';
+          &::after {
+            content: "";
             display: block;
           }
 
@@ -112,7 +112,7 @@
           color: #577289;
           outline: none;
           cursor: pointer;
-          transition: all .45s ease-in-out;
+          transition: all 0.45s ease-in-out;
 
           &:hover {
             color: #36afd5;
@@ -126,7 +126,7 @@
 
       .dialog-content {
         .mat-select {
-          font-family: 'Opens Sans', sans-serif;
+          font-family: "Opens Sans", sans-serif;
         }
       }
 
@@ -137,7 +137,7 @@
       .upload-key {
         margin-bottom: 20px;
 
-        &>div>div {
+        & > div > div {
           margin-top: 5px;
         }
       }
@@ -156,9 +156,10 @@
       a {
         color: #35afd5;
         text-decoration: none;
-        transition: all .45s ease-in-out;
+        transition: all 0.45s ease-in-out;
         line-height: 19px;
-        &.spark-url{
+
+        &.spark-url {
           line-height: 16px;
         }
 
@@ -168,21 +169,21 @@
       }
 
       .info-label {
-        font-size: 15px;
         margin-top: 20px;
+        font-size: 15px;
       }
 
       .control-label {
-        font-weight: 600;
         margin-top: 6px;
+        font-weight: 600;
       }
 
       .form-group {
         small {
-          font-size: 12px;
-          color: #9cadbe;
           display: inline-block;
           margin-top: 6px;
+          font-size: 12px;
+          color: #9cadbe;
         }
       }
     }
@@ -195,40 +196,39 @@
 
 .butt-file {
   position: relative;
-  overflow: hidden;
-  margin-bottom: 10px;
   display: inline-block;
-  color: #35afd5;
-  padding: 6px 29px 6px 23px;
   width: 170px;
+  margin-bottom: 10px;
+  padding: 6px 29px 6px 23px;
+  overflow: hidden;
+  color: #35afd5;
   // font: 600 16px/1.45 'Open Sans';
   font-style: normal;
   font-weight: 600;
   font-size: 16px;
   line-height: 1.45;
-  font-family: 'Open Sans', sans-serif;
-
+  font-family: "Open Sans", sans-serif;
   text-align: center;
-  box-shadow: 0 3px 1px -2px rgba(0, 0, 0, .2), 0 2px 2px 0 rgba(0, 0, 0, .14), 0 1px 5px 0 rgba(0, 0, 0, .12);
+  box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
 
   .upload-icon {
-    background: url(/../../assets/img/upload-icon.png) no-repeat;
-    background-size: 100%;
+    position: relative;
+    top: 2px;
     display: inline-block;
     width: 17px;
     height: 17px;
     margin-right: 8px;
-    position: relative;
-    top: 2px;
+    background: url(/../../assets/img/upload-icon.png) no-repeat;
+    background-size: 100%;
   }
 
-  input[type=file] {
+  input[type="file"] {
+    display: block;
     font-size: 100px;
     text-align: right;
     outline: none;
     background: #fff;
     cursor: inherit;
-    display: block;
   }
 
   &:active {
@@ -237,15 +237,15 @@
 }
 
 .detail-header {
-  border-bottom: 0;
   width: 100%;
+  border-bottom: 0;
   border-collapse: collapse;
   table-layout: fixed;
 
   td {
+    padding: 20px;
     border: 1px solid #edf1f5;
     text-align: center;
-    padding: 20px;
     text-align: center !important;
     background: #fff;
 
@@ -257,8 +257,8 @@
       text-overflow: ellipsis;
       overflow: hidden;
       cursor: default;
-      &::after{
-        content: '';
+      &::after {
+        content: "";
         display: block;
       }
     }
@@ -276,9 +276,9 @@
 
 .detail-info {
   p {
-    font-weight: 400;
-    margin-bottom: 10px;
     display: flex;
+    margin-bottom: 10px;
+    font-weight: 400;
 
     small {
       font-size: 12px;
@@ -286,21 +286,23 @@
     }
   }
 
-  span:not(.description),{
+  span:not(.description) {
+    display: block;
+    max-width: 450px;
     font-size: 14px;
     overflow: hidden;
     text-overflow: ellipsis;
-    display: block;
-    max-width: 450px;
     white-space: nowrap;
-    &::after{
-      content: '';
+
+    &::after {
+      content: "";
       display: block;
     }
-    &.link-icon{
+
+    &.link-icon {
       //margin-left: 10px;
-      cursor: pointer;
       padding-top: 2px;
+      cursor: pointer;
     }
   }
 
@@ -326,7 +328,8 @@
     }
   }
 
-  .create-resources-dialog, .top-select {
+  .create-resources-dialog,
+  .top-select {
     margin-left: 6px;
     min-width: calc(100% + 10px) !important;
   }
@@ -356,103 +359,103 @@
   display: flex;
 }
 
-.endpoints-table{
+.endpoints-table {
   border-collapse: separate;
 }
 
-.mat-step-icon-state-number .mat-step-icon-content{
+.mat-step-icon-state-number .mat-step-icon-content {
   top: 49%;
 }
 
-.confirmation-dialog p.delete-user{
-  font-weight: 500;
+.confirmation-dialog p.delete-user {
   max-height: 200px;
   padding: 5px;
+  font-weight: 500;
   overflow: hidden auto;
   text-overflow: ellipsis;
 }
 
-.bucket-browser{
+.bucket-browser {
   .mat-form-field-appearance-legacy .mat-form-field-subscript-wrapper {
     width: calc(100% + 85px);
   }
 }
 
-.full-size-tooltip{
-  max-width: 1100px  !important;
+.full-size-tooltip {
+  max-width: 1100px !important;
   white-space: pre-line;
 }
 
-.mat-list-base .mat-list-item.delete-item{
+.mat-list-base .mat-list-item.delete-item {
   height: 30px;
 }
 
-.mat-list-item{
+.mat-list-item {
   font-family: "Open Sans", sans-serif;
   font-weight: 400;
 }
 
-.d-none{
+.d-none {
   display: none !important;
 }
 
-.d-flex{
+.d-flex {
   display: flex !important;
 }
 
-.progres{
-  border: 1px solid rgba(0,0,0,.12);
-  height: 17px;
+.progres {
   position: relative;
+  height: 17px;
   width: 155px;
+  border: 1px solid rgba(0, 0, 0, 0.12);
 
-  .bar{
+  .bar {
     position: absolute;
     top: 0;
     bottom: 0;
     left: 0;
     width: 0;
-    background-color:  #00bcd4;
+    background-color: #00bcd4;
   }
 
-  .progress-bar-text{
+  .progress-bar-text {
     position: absolute;
     left: 5px;
     top: 0;
     bottom: 0;
+    z-index: 10;
     font-size: 11px;
     line-height: 13px;
     color: rgba(0, 0, 0, 0.87);
-    z-index: 10;
   }
 }
 
-.not-allow{
+.not-allow {
   cursor: not-allowed !important;
-  &.open-bucket{
+  
+  &.open-bucket {
     color: $blue-grey-color !important;
   }
 }
 
-.audit-info-content{
+.audit-info-content {
   .mat-list {
     height: unset;
 
     .list-header {
       line-height: unset;
-      
-      .mat-list-item-content{
+
+      .mat-list-item-content {
         align-items: start !important;
       }
     }
   }
 }
 
-.add-folder-form .mat-hint{
+.add-folder-form .mat-hint {
   color: #00bcd4;
 }
 
-
 @media screen and (max-width: 1280px) {
   .modal-fullscreen {
     max-width: 100vw !important;
diff --git a/services/self-service/src/main/resources/webapp/src/assets/styles/_general.scss b/services/self-service/src/main/resources/webapp/src/assets/styles/_general.scss
index 16ffc1e..74dc5b4 100644
--- a/services/self-service/src/main/resources/webapp/src/assets/styles/_general.scss
+++ b/services/self-service/src/main/resources/webapp/src/assets/styles/_general.scss
@@ -17,9 +17,12 @@
  * under the License.
  */
 
-html, body { height: 100%; }
+html, body {
+  height: 100%;
+}
+
 body {
-  font-family: 'Open Sans', sans-serif;
+  font-family: "Open Sans", sans-serif;
   font-size: 15px;
   overflow-x: hidden;
   font-weight: 300;
@@ -29,28 +32,54 @@
   overflow: hidden;
 }
 
-.alignleft, .al {float: left}
-.alignright, .ar {float: right; left: 26px; z-index: 1010}
-.aligncenter, .ac {margin-left: auto;margin-right: auto}
+.alignleft, .al {
+  float: left;
+}
 
-.mt-5 {margin-top: 5px}
+.alignright, .ar {
+  float: right;
+  left: 26px;
+  z-index: 1010;
+}
 
+.aligncenter, .ac {
+  margin-left: auto;
+  margin-right: auto;
+}
 
-.pr-3{padding-right: 3px}
+.mt-5 {
+  margin-top: 5px;
+}
 
-.pb-50 {padding-bottom: 50px;}
-.pb-25 {padding-bottom: 25px;}
-.pb-10 {padding-bottom: 10px;}
+.pr-3 {
+  padding-right: 3px;
+}
 
-.full-width{width: 100%;}
+.pb-50 {
+  padding-bottom: 50px;
+}
+.pb-25 {
+  padding-bottom: 25px;
+}
+.pb-10 {
+  padding-bottom: 10px;
+}
 
-.txt-r {text-align: right }
-.txt-l {text-align: left }
+.full-width {
+  width: 100%;
+}
 
-input[type='text']:not(.mat-input-element),
-input[type='number']:not(.mat-input-element),
-input[type='email']:not(.mat-input-element),
-input[type='password']:not(.mat-input-element),
+.txt-r {
+  text-align: right;
+}
+.txt-l {
+  text-align: left;
+}
+
+input[type="text"]:not(.mat-input-element),
+input[type="number"]:not(.mat-input-element),
+input[type="email"]:not(.mat-input-element),
+input[type="password"]:not(.mat-input-element),
 textarea {
   width: 100%;
   height: 36px;
@@ -60,39 +89,41 @@
   background: rgba(247, 247, 247, 0.87);
   transition: border 0.1s ease-out;
   outline: none;
-  font: 300 16px/26px 'Open Sans', sans-serif;
+  font: 300 16px/26px "Open Sans", sans-serif;
 }
 
-input[type='text']:not(.mat-input-element):focus,
-input[type='number']:not(.mat-input-element):focus,
-input[type='email']:not(.mat-input-element):focus,
-input[type='password']:not(.mat-input-element):focus,
+input[type="text"]:not(.mat-input-element):focus,
+input[type="number"]:not(.mat-input-element):focus,
+input[type="email"]:not(.mat-input-element):focus,
+input[type="password"]:not(.mat-input-element):focus,
 textarea:focus {
   border: none;
   background: #fff;
   transition: border 0.2s ease-in;
-  box-shadow: 0 3px 1px -2px rgba(0,0,0,.2), 0 2px 2px 0 rgba(0,0,0,.14), 0 1px 5px 0 rgba(0,0,0,.12);
-}
-input[type='text']:not(.mat-input-element):disabled {
-  opacity: .4;
-  cursor: not-allowed;
-  color: rgba(0,0,0,.38);
-  background-color: rgba(0,0,0,.12);
+  box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
 }
 
-input[type='text']:not(.mat-input-element)::placeholder,
-input[type='number']:not(.mat-input-element)::placeholder,
-input[type='email']:not(.mat-input-element)::placeholder,
-input[type='password']:not(.mat-input-element)::placeholder,
+input[type="text"]:not(.mat-input-element):disabled {
+  opacity: 0.4;
+  cursor: not-allowed;
+  color: rgba(0, 0, 0, 0.38);
+  background-color: rgba(0, 0, 0, 0.12);
+}
+
+input[type="text"]:not(.mat-input-element)::placeholder,
+input[type="number"]:not(.mat-input-element)::placeholder,
+input[type="email"]:not(.mat-input-element)::placeholder,
+input[type="password"]:not(.mat-input-element)::placeholder,
 textarea::placeholder {
   color: #718ba6;
 }
 
-.control-group, .row-wrap {
+.control-group,
+.row-wrap {
+  position: relative;
   display: flex;
   flex-flow: row wrap;
   padding-bottom: 20px;
-  position: relative;
 }
 
 .row-wrap {
@@ -104,13 +135,13 @@
 }
 
 .control-group .label {
+  align-self: center;
   width: 35%;
   color: #718ba6;
   font-size: 15px;
   font-weight: 600;
-  align-self: center;
   text-align: left;
-  font-family: 'Open Sans', sans-serif;
+  font-family: "Open Sans", sans-serif;
 }
 
 .control-group .control {
@@ -118,14 +149,28 @@
 }
 
 button {
-  font-family: 'Open Sans', sans-serif;
+  font-family: "Open Sans", sans-serif;
 }
 
-.info_color {color: #5bc0de}
-.primary_color {color: #337ab7}
-.success_color {color: #5cb85c}
-.warning_color {color: #f0ad4e}
-.danger_color {color: #d9534f}
+.info_color {
+  color: #5bc0de;
+}
+
+.primary_color {
+  color: #337ab7;
+}
+
+.success_color {
+  color: #5cb85c;
+}
+
+.warning_color {
+  color: #f0ad4e;
+}
+
+.danger_color {
+  color: #d9534f;
+}
 
 .list-header {
   width: 100%;
@@ -144,10 +189,11 @@
       }
     }
   }
+
   .capt {
+    margin-right: 0px;
     font-size: 13px;
     color: #35afd5;
-    margin-right: 0px;
     font-style: normal;
   }
 }
@@ -156,14 +202,16 @@
   color: #35afd5;
   overflow: hidden;
   cursor: pointer;
-  transition: all .45s ease-in-out;
+  transition: all 0.45s ease-in-out;
+
   &:hover {
     color: #3392b0;
   }
+
   .material-icons {
+    padding-right: 5px;
     font-size: 20px;
     vertical-align: top;
-    padding-right: 5px;
     overflow: hidden;
   }
 }
@@ -177,21 +225,21 @@
   line-height: 26px;
 }
 
-input[type=file],
-input[type=file]::-webkit-file-upload-button {
-    cursor: pointer;
+input[type="file"],
+input[type="file"]::-webkit-file-upload-button {
+  cursor: pointer;
 }
 
-.refresh-icon{
+.refresh-icon {
   color: #35afd5;
 }
 
 .buttons {
   position: absolute;
+  bottom: 9px;
+  z-index: 102;
   display: flex;
   justify-content: space-around;
-  z-index: 102;
-  bottom: 9px;
   width: 100%;
 
   .mat-mini-fab {
@@ -199,26 +247,23 @@
     width: 25px;
 
     .mat-button-wrapper {
-      padding: 0;
-      line-height: unset;
       display: flex;
       align-items: center;
       justify-content: center;
-      padding-top: 2px;
+      padding: 2px 0 0;
+      line-height: unset;
     }
   }
 }
 
-.shadow-none{
+.shadow-none {
   box-shadow: none !important;
 }
 
-.right-sticky{
+.right-sticky {
   right: -15px !important;
 }
 
-.cursor-pointer{
+.cursor-pointer {
   cursor: pointer;
 }
-
-
diff --git a/services/self-service/src/main/resources/webapp/src/assets/styles/_reset.scss b/services/self-service/src/main/resources/webapp/src/assets/styles/_reset.scss
index 6e90bae..3386a8d 100644
--- a/services/self-service/src/main/resources/webapp/src/assets/styles/_reset.scss
+++ b/services/self-service/src/main/resources/webapp/src/assets/styles/_reset.scss
@@ -48,7 +48,7 @@
 }
 
 a {
-  text-decoration: none
+  text-decoration: none;
 }
 
 table {
@@ -56,23 +56,22 @@
   border-spacing: 0;
 }
 
-[hidden],
-.hidden {
+[hidden], .hidden {
   display: none !important;
 }
 
 ::-moz-selection,
 ::selection {
   color: #fff;
-  background: #3399ff
+  background: #3399ff;
 }
 
 :focus {
-  outline: none
+  outline: none;
 }
 
 ::-moz-focus-inner {
-  border: 0
+  border: 0;
 }
 
 ::-webkit-file-upload-button {
@@ -98,7 +97,6 @@
 }
 
 input {
-
   &::-ms-clear,
   &::-ms-reveal {
     display: none;
diff --git a/services/self-service/src/main/resources/webapp/src/assets/styles/_theme.scss b/services/self-service/src/main/resources/webapp/src/assets/styles/_theme.scss
index 4a37d89..becd4a2 100644
--- a/services/self-service/src/main/resources/webapp/src/assets/styles/_theme.scss
+++ b/services/self-service/src/main/resources/webapp/src/assets/styles/_theme.scss
@@ -26,10 +26,11 @@
     font-style: normal;
     font-weight: 600;
     font-size: 15px;
-    font-family: 'Open Sans', sans-serif;
+    font-family: "Open Sans", sans-serif;
     color: #577289;
-    &[disabled]{
-      box-shadow: 0 3px 1px -2px rgba(0,0,0,.2), 0 2px 2px 0 rgba(0,0,0,.14), 0 1px 5px 0 rgba(0,0,0,.12);
+
+    &[disabled] {
+      box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
     }
 
     i {
@@ -43,8 +44,9 @@
         margin: 0 5px 0 0;
         font-size: 20px;
         vertical-align: middle;
-        &.arrow-icon{
-          vertical-align: -5px
+
+        &.arrow-icon {
+          vertical-align: -5px;
         }
       }
     }
@@ -56,23 +58,23 @@
     &.action {
       width: 140px;
 
-      &.install-btn{
+      &.install-btn {
         margin-left: 0;
       }
 
-      &.close-btn{
+      &.close-btn {
         margin-right: 25px;
       }
     }
 
     &.butt-success {
-      background-color: #49af38;
       margin-left: 25px;
+      background-color: #49af38;
       color: #fff;
 
       &.mini {
-        margin-left: 5px;
         width: 80px;
+        margin-left: 5px;
       }
     }
 
@@ -90,8 +92,8 @@
     }
 
     &.butt-generate {
-      color: #35afd5;
       width: 170px;
+      color: #35afd5;
 
       &:active {
         box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23);
@@ -100,15 +102,13 @@
   }
 }
 
-
-
 .selector-wrapper {
   display: flex;
   align-self: center;
   width: 100%;
   height: 36px;
   padding-left: 10px;
-  font-family: 'Open Sans', sans-serif;
+  font-family: "Open Sans", sans-serif;
   font-size: 15px;
   font-weight: 300;
   box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
@@ -125,50 +125,49 @@
     }
 
     .caret {
+      position: absolute;
+      right: 0;
+      top: 0px;
       width: 40px;
       height: 40px;
       color: #4ab8dc;
       border: none;
       border-left: 1px solid #ececec;
       background-color: #fff;
-      position: absolute;
-      right: 0;
-      top: 0px;
       cursor: pointer;
 
       &.not-allowed {
         background-color: #dcdcdc;
         .mat-select-placeholder {
-         cursor: not-allowed;
+          cursor: not-allowed;
         }
       }
     }
   }
 }
 
-
-.audit{
+.audit {
   .select-wrapper {
-    .mat-reset{
-      .selector-wrapper{
+    .mat-reset {
+      .selector-wrapper {
         height: 25px;
 
-      .mat-form-field .mat-form-field-wrapper .mat-form-field-infix{
-        padding-top: 6px;
-        font-size: 13px;
-      }
+        .mat-form-field .mat-form-field-wrapper .mat-form-field-infix {
+          padding-top: 6px;
+          font-size: 13px;
+        }
         .caret {
           width: 25px;
           height: 31px;
-
         }
       }
     }
   }
 }
+
 .multiple-select {
-  border-bottom: 1px solid #dedbdb;
   padding: 0;
+  border-bottom: 1px solid #dedbdb;
 
   a {
     display: inline-block;
@@ -210,10 +209,10 @@
 }
 
 .mat-option {
-  font-family: 'Open Sans', sans-serif;
+  font-family: "Open Sans", sans-serif;
 
   .mat-option-text {
-    color: #607D8B;
+    color: #607d8b;
     font-size: 15px;
   }
 
@@ -250,17 +249,17 @@
   font-size: 14px;
 }
 
-.mat-select-disabled{
+.mat-select-disabled {
   .mat-select-placeholder {
     cursor: not-allowed;
   }
-  .mat-select-value{
+  .mat-select-value {
     cursor: not-allowed;
   }
 }
 
 .mat-select-disabled + .caret,
-.mat-tab-disabled{
+.mat-tab-disabled {
   cursor: not-allowed !important;
 }
 
@@ -274,7 +273,7 @@
 
 /* grid filtering */
 .filter-row .dropdown-multiselect button,
-.filter-row input[type='text'] {
+.filter-row input[type="text"] {
   font-size: 14px;
   height: 34px;
 }
@@ -294,7 +293,7 @@
   font-weight: 100;
   font-size: 16px;
   line-height: 24px;
-  font-family: 'Open Sans', sans-serif;
+  font-family: "Open Sans", sans-serif;
 }
 
 .backup-dialog .mat-slide-toggle,
@@ -351,32 +350,33 @@
 .project-form,
 .create-environment,
 .selection,
-.manage-roles{
-    .mat-select-value{
-      overflow: visible;
-    }
-    .mat-form-field-label {
-      line-height: 21px !important;
-      font-size: 15px !important;
+.manage-roles {
+  .mat-select-value {
+    overflow: visible;
+  }
+  .mat-form-field-label {
+    line-height: 21px !important;
+    font-size: 15px !important;
 
-      &:not(.mat-form-field-empty) {
-        color: transparent !important;
-      }
+    &:not(.mat-form-field-empty) {
+      color: transparent !important;
     }
+  }
 }
 
 .mat-chip-list {
   pointer-events: none;
-  .mat-chip{
+  .mat-chip {
     overflow: hidden;
     pointer-events: all;
-    &.mat-standard-chip.mat-chip-disabled{
+    &.mat-standard-chip.mat-chip-disabled {
       opacity: 1;
     }
   }
 }
 
-.selection, .project-form {
+.selection,
+.project-form {
   .mat-reset .mat-form-field .mat-form-field-wrapper .mat-form-field-label {
     transform: none;
   }
@@ -385,7 +385,7 @@
 .manage-roles,
 .project-form,
 .selection,
-.audit{
+.audit {
   .mat-form-field {
     width: 100%;
   }
@@ -410,14 +410,13 @@
       overflow: hidden;
 
       .mat-form-field-wrapper {
-
         .mat-form-field-infix {
           width: 275px;
+          padding-top: 10px;
           border: 0;
-          font-family: 'Open Sans', sans-serif;
+          font-family: "Open Sans", sans-serif;
           font-size: 15px;
           font-weight: 300;
-          padding-top: 10px;
 
           .mat-select-value {
             max-width: inherit;
@@ -481,18 +480,17 @@
   }
 
   .mat-chip {
+    max-width: 385px !important;
     background-color: rgba(47, 174, 215, 0.2) !important;
     color: #687e96;
-    max-width: 385px !important;
   }
 
   .roles {
-
     .selector-wrapper,
     .selector-wrapper-edit {
       .mat-select-trigger {
-        width: 100%;
         display: flex;
+        width: 100%;
         max-width: 500px;
       }
     }
@@ -501,7 +499,7 @@
 
 .audit {
   .mat-select {
-    font-family: 'Open Sans', sans-serif;
+    font-family: "Open Sans", sans-serif;
 
     .mat-select-value-text span {
       color: unset !important;
@@ -510,100 +508,102 @@
 }
 
 .empty-checkbox {
+  position: relative;
   min-width: 16px;
   width: 16px;
   height: 16px;
+  margin-top: 2px;
   border-radius: 2px;
   border: 2px solid lightgrey;
-  margin-top: 2px;
-  position: relative;
   cursor: pointer;
 
   &.checked {
     border-color: #35afd5;
     background-color: #35afd5;
   }
+
   .checked-checkbox {
+    position: absolute;
     top: 0;
     left: 4px;
     width: 5px;
     height: 10px;
     border-bottom: 2px solid white;
     border-right: 2px solid white;
-    position: absolute;
     transform: rotate(45deg);
   }
 
   .line-checkbox {
+    position: absolute;
     top: 0;
     left: 2px;
     width: 8px;
     height: 7px;
     border-bottom: 2px solid white;
-    position: absolute;
   }
 }
-.none-select{
+.none-select {
   user-select: none;
 }
 
-.action-select-wrapper{
+.action-select-wrapper {
   position: relative;
   display: block !important;
 
-  .action-button-wrapper{
+  .action-button-wrapper {
     position: relative;
     width: 160px;
   }
 
-  .mat-raised-button.butt{
+  .mat-raised-button.butt {
     margin-bottom: 0;
     padding-left: 45px;
     text-align: left;
 
-
-    &.actions-btn{
+    &.actions-btn {
       padding-right: 38px;
       margin: 0;
 
-      .material-icons{
-        transition: ease-in-out 1s;
-        font-size: 25px;
+      .material-icons {
         position: absolute;
         top: 7px;
         right: 30px;
+        transition: ease-in-out 1s;
+        font-size: 25px;
       }
     }
   }
 
-  .action-menu{
+  .action-menu {
     position: absolute;
-    text-align: center;
     display: block;
+    text-align: center;
     background-color: #fff;
 
-    &-item.mat-raised-button.butt{
+    &-item.mat-raised-button.butt {
+      position: relative;
       z-index: 101;
-      margin: 0;
-      box-shadow: 0 2px 1px -1px rgba(0,0,0,.2), 0 0px 0px 0 rgba(0,0,0,.14), 0 1px 5px 0 rgba(0,0,0,.12);
       width: 160px;
       padding: 0 20px;
+      margin: 0;
+      box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 0px 0px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
       border-radius: 0;
       font-style: normal;
       font-weight: 600;
       font-size: 15px;
-      font-family: 'Open Sans', sans-serif;
+      font-family: "Open Sans", sans-serif;
       color: #577289;
-      position: relative;
       overflow: hidden;
       line-height: 36px;
-      &.action-menu-item{
-        &:hover{
-          color:  #00bcd4;
+
+      &.action-menu-item {
+        &:hover {
+          color: #00bcd4;
           background-color: #fafafa;
         }
-        &.disabled{
-          &:hover{
+
+        &.disabled {
+          &:hover {
             color: #577289;
           }
         }
@@ -619,7 +619,7 @@
     }
 
     .mat-step-label {
-      font-family: 'Open Sans', sans-serif;
+      font-family: "Open Sans", sans-serif;
       font-size: 15px;
       font-weight: 300;
     }
@@ -655,8 +655,8 @@
     }
 
     &.roles {
-      height: 190px;
       flex-direction: column;
+      height: 190px;
       text-align: center;
 
       .inner-step {
@@ -671,8 +671,8 @@
 }
 
 .multiple-select {
-  border-bottom: 1px solid #dedbdb;
   padding: 0 !important;
+  border-bottom: 1px solid #dedbdb;
 
   a {
     display: inline-block;
@@ -712,8 +712,8 @@
   &.reporting {
     .dropdown-multiselect {
       button {
-        font-size: 13px;
         padding-left: 10px;
+        font-size: 13px;
       }
     }
   }
@@ -739,20 +739,20 @@
     padding: 0;
 
     .content {
-      color: #718ba6;
       padding: 20px 40px;
+      margin: 0;
+      color: #718ba6;
       font-size: 14px;
       font-weight: 400;
       text-align: center;
-      margin: 0;
     }
 
     .dialog-header {
       position: relative;
       top: 0;
+      height: 54px;
       padding-left: 30px;
       background: #f6fafe;
-      height: 54px;
       line-height: 54px;
     }
 
@@ -795,17 +795,17 @@
   font-family: "Open Sans", sans-serif;
   font-weight: 400;
 
-  .mat-cell{
+  .mat-cell {
     font-size: 13px;
   }
   .header-row,
-  .mat-header-row{
+  .mat-header-row {
     .mat-header-cell {
-      font-family: 'Open Sans', sans-serif;
+      font-family: "Open Sans", sans-serif;
       font-weight: 600;
       font-size: 13px;
-      .label{
-        font-family: 'Open Sans', sans-serif;
+      .label {
+        font-family: "Open Sans", sans-serif;
         font-weight: 600;
         font-size: 13px;
       }
@@ -814,7 +814,7 @@
     .mat-cell {
       word-break: break-all;
       vertical-align: top;
-      padding: 15px 5px 10px 5px;
+      padding: 15px 5px 10px;
       font-size: 13px;
       font-family: "Open Sans", sans-serif;
 
@@ -843,30 +843,33 @@
 
 mat-progress-bar {
   .mat-progress-bar-fill::after {
-    background-color: #00BCD4;
+    background-color: #00bcd4;
   }
 
   .mat-progress-bar-buffer {
     background-color: #baf0f7;
   }
 }
-.manage-roles{
-  .mat-horizontal-content-container{
+.manage-roles {
+  .mat-horizontal-content-container {
     overflow: visible !important;
   }
 }
 
-.filter-row-item, .label-header{
+.filter-row-item,
+.label-header {
   box-shadow: inset 0 -1px 0 lightgrey;
   border-bottom: none !important;
-  multi-select-dropdown, .input-wrapper{
+
+  multi-select-dropdown,
+  .input-wrapper {
     position: absolute;
     top: 10px;
     left: 5px;
     right: 5px;
   }
 
-  .input-wrapper{
+  .input-wrapper {
     left: 10px;
     right: 4px;
   }
@@ -883,27 +886,24 @@
   fill: #36afd5;
 }
 
-#range-picker .ng-daterangepicker,
- {
+#range-picker .ng-daterangepicker {
   border: none;
   border-radius: 0;
   box-shadow: none;
 }
 
 #range-picker .ng-daterangepicker .calendar {
+  top: 58px;
   z-index: 102;
   border: 1px solid rgba(234, 234, 234, 0.64);
   border-radius: 0;
-  box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2),
-  0 2px 2px 0 rgba(0, 0, 0, 0.14),
-  0 1px 5px 0 rgba(0, 0, 0, 0.12);
-  top: 58px;
+  box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
 
   &.is-to:after {
     left: 250px;
   }
 
-  &.is-opened{
+  &.is-opened {
     display: flex;
   }
 }
@@ -922,8 +922,8 @@
 
 #range-picker .ng-daterangepicker .calendar .side-container .side-button.is-active,
 #range-picker .ng-daterangepicker .input-section .label-txt {
-  color: #35afd5;
   display: unset;
+  color: #35afd5;
   font-size: 13px;
 }
 
@@ -937,7 +937,6 @@
 #range-picker .ng-daterangepicker .calendar .calendar-container .days .day-num:hover {
   background: #35afd5;
   background-clip: padding-box;
-
 }
 
 #range-picker .ng-daterangepicker .calendar .calendar-container .day-names,
@@ -951,7 +950,7 @@
 }
 
 #range-picker .ng-daterangepicker .calendar .calendar-container .day.is-within-range {
-  background: #e9f8fc
+  background: #e9f8fc;
 }
 
 #range-picker .ng-daterangepicker .input-section .cal-icon svg path {
@@ -959,9 +958,9 @@
 }
 
 #range-picker .ng-daterangepicker .input-section .value-txt {
-  color: #718ba6;
   display: unset;
   padding-left: 5px;
+  color: #718ba6;
 }
 
 #range-picker .ng-daterangepicker .input-section .value-txt.untouched,
@@ -978,9 +977,9 @@
 //}
 
 .filter-row .actions {
-  text-align: right;
   display: flex;
   justify-content: flex-end;
+  text-align: right;
 }
 
 .filter-row .actions button {
@@ -1003,49 +1002,50 @@
 }
 
 #range-picker .ng-daterangepicker {
-  height: 37px;
-  width: 360px;
   display: flex;
   justify-content: space-between;
+  height: 37px;
+  width: 360px;
 
-
-  .d-none{
+  .d-none {
     display: none;
   }
 
   .input-section {
     height: 37px;
-    padding-right: 30px;
     width: 175px;
-    box-shadow: 0 3px 1px -2px rgba(0,0,0,.2), 0 2px 2px 0 rgba(0,0,0,.14), 0 1px 5px 0 rgba(0,0,0,.12);
+    padding-right: 30px;
+    box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
   }
 }
 
-.show-all-btn.mat-raised-button .mat-button-wrapper > *{
+.show-all-btn.mat-raised-button .mat-button-wrapper > * {
   vertical-align: baseline;
 }
 
 .resource-btns {
-  .mat-raised-button{
+  .mat-raised-button {
     line-height: 38px;
   }
 
-  .mat-select-value{
+  .mat-select-value {
     margin-top: 1px;
   }
 }
 
-.alert .highlight .strong{ color: #35afd5}
+.alert .highlight .strong {
+  color: #35afd5;
+}
 
 .audit-table-wrapper,
-.billing-page-wrapper{
-  tfoot{
+.billing-page-wrapper {
+  tfoot {
     position: sticky;
     z-index: 102;
     bottom: 0;
   }
 
-  .dropdown-multiselect{
+  .dropdown-multiselect {
     &.resources {
       .list-menu {
         .list-item {
@@ -1055,20 +1055,23 @@
     }
   }
 }
-.configuration-wrapper{
-  box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);
-  .mat-tab-header{
+.configuration-wrapper {
+  box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 
+              0px 6px 10px 0px rgba(0, 0, 0, 0.14), 
+              0px 1px 18px 0px rgba(0, 0, 0, 0.12);
+
+  .mat-tab-header {
     margin: 0 30px;
   }
-  .mat-tab-label{
-    .mat-tab-label-content{
+  .mat-tab-label {
+    .mat-tab-label-content {
       font-family: "Open Sans", sans-serif;
       font-weight: 600;
       font-size: 13px;
     }
   }
 
-  .ace-monokai{
+  .ace-monokai {
     height: calc(100%);
   }
 
@@ -1076,13 +1079,7 @@
     width: unset !important;
   }
 
-  .ace_scrollbar{
+  .ace_scrollbar {
     scrollbar-width: thin;
   }
 }
-
-
-
-
-
-
diff --git a/services/self-service/src/main/resources/webapp/src/styles.scss b/services/self-service/src/main/resources/webapp/src/styles.scss
index efc6b3a..00a27bb 100644
--- a/services/self-service/src/main/resources/webapp/src/styles.scss
+++ b/services/self-service/src/main/resources/webapp/src/styles.scss
@@ -19,20 +19,20 @@
 
 // @import '~@angular/material/prebuilt-themes/deeppurple-amber.css';
 
-@import './assets/fonts/Material_Icons/material-icons.css';
-@import './assets/fonts/Open_Sans/open-sans.css';
+@import "./assets/fonts/Material_Icons/material-icons.css";
+@import "./assets/fonts/Open_Sans/open-sans.css";
 
-@import '_reset.scss';
-@import '_general.scss';
-@import '_theme.scss';
-@import '_dialogs.scss';
+@import "_reset.scss";
+@import "_general.scss";
+@import "_theme.scss";
+@import "_dialogs.scss";
 
 .sans {
-  font-family: 'Open Sans', sans-serif !important;
+  font-family: "Open Sans", sans-serif !important;
 }
 
 .mat-tab-label {
-  font-family: 'Open Sans', sans-serif !important;
+  font-family: "Open Sans", sans-serif !important;
   color: #455c74;
 }
 
@@ -61,13 +61,14 @@
   height: calc(100% - 48px);
 }
 
-
 .mat-chip-list-wrap {
   max-height: 120px;
-  overflow: auto;
   margin-right: 5px;
-  .mat-chip-list-wrapper{
+  overflow: auto;
+
+  .mat-chip-list-wrapper {
     margin: 0;
+
     .mat-chip {
       font-size: 13px;
     }
@@ -75,10 +76,10 @@
 }
 
 mat-chip.mat-chip {
+  padding: 8px 18px;
   outline: none;
   color: #758ea8;
   font-size: 14px;
-  padding: 8px 18px;
 }
 
 mat-chip.mat-chip a {
@@ -97,17 +98,17 @@
 }
 
 .loader {
+  position: relative;
+  top: 28px;
+  width: 18px;
+  height: 18px;
+  margin-right: 15px;
+  float: right;
   border: 3px solid #f3f3f3;
   border-radius: 50%;
   border-top: 3px solid #35afd5;
-  width: 18px;
-  height: 18px;
   -webkit-animation: spin 2s linear infinite;
   animation: spin 2s linear infinite;
-  position: relative;
-  top: 28px;
-  margin-right: 15px;
-  float: right;
 }
 
 .rotate {
@@ -156,7 +157,7 @@
 .deleted,
 .invalid_version,
 .invalid_name,
-.installation_error{
+.installation_error {
   color: #f1696e;
 }
 
@@ -172,13 +173,13 @@
   pointer-events: none;
 }
 
-.cursor-not-allow{
+.cursor-not-allow {
   cursor: not-allowed !important;
 }
 
 .not-active {
   cursor: not-allowed !important;
-  opacity: .6;
+  opacity: 0.6;
 }
 
 .message {
@@ -187,22 +188,23 @@
 }
 
 .info {
+  position: relative;
   font-size: 15px;
   font-weight: 300;
   color: #35afd5;
-  position: relative;
-  .buttons{
+
+  .buttons {
     position: absolute;
   }
 }
 
 .base-retreat {
+  display: inline-block;
   height: 100%;
   max-height: 100%;
   width: 100%;
-  box-sizing: border-box;
   padding: 12px 15px;
-  display: inline-block;
+  box-sizing: border-box;
 }
 
 .sub-nav {
@@ -246,21 +248,21 @@
 }
 
 .tooltip-wrap .tooltip {
-  background: rgba(97, 97, 97, 0.9);
-  bottom: 100%;
-  color: #f3f3f3;
-  display: block;
+  position: absolute;
   left: -25px;
+  bottom: 100%;
+  display: block;
+  width: 100%;
   margin-bottom: 5px;
-  opacity: 0;
   padding: 5px;
+  background: rgba(97, 97, 97, 0.9);
+  color: #f3f3f3;
+  opacity: 0;
   white-space: pre-wrap;
   word-wrap: break-word;
   border-radius: 2px;
   font-size: 10px;
   pointer-events: none;
-  position: absolute;
-  width: 100%;
   -webkit-transform: translateY(10px);
   -moz-transform: translateY(10px);
   -ms-transform: translateY(10px);
@@ -289,8 +291,7 @@
 }
 
 /* IE can just show/hide with no transition */
-@media all and (-ms-high-contrast: none),
-(-ms-high-contrast: active) {
+@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
   .tooltip-wrap .tooltip {
     display: none;
   }
@@ -301,13 +302,13 @@
 }
 
 /* Turn off number input spinners */
-input[type='number']::-webkit-inner-spin-button,
-input[type='number']::-webkit-outer-spin-button {
+input[type="number"]::-webkit-inner-spin-button,
+input[type="number"]::-webkit-outer-spin-button {
   -webkit-appearance: none;
   margin: 0;
 }
 
-input[type='number'] {
+input[type="number"] {
   -moz-appearance: textfield;
 }
 
@@ -320,19 +321,19 @@
   text-align: right;
 }
 
-.pl-5{
+.pl-5 {
   padding-left: 5px;
 }
 
-.pl-10{
+.pl-10 {
   padding-left: 10px !important;
 }
 
-.pl-20{
+.pl-20 {
   padding-left: 20px;
 }
 
-.pr-20{
+.pr-20 {
   padding-right: 20px;
 }
 
@@ -385,7 +386,7 @@
 }
 
 .ani {
-  transition: all .35s ease-in-out;
+  transition: all 0.35s ease-in-out;
 }
 
 .empty-box {
@@ -399,7 +400,9 @@
     text-align: center;
   }
 }
-#scrolling, .scrolling, ace_scrollbar{
+#scrolling,
+.scrolling,
+ace_scrollbar {
   scrollbar-width: thin;
 }
 
@@ -456,8 +459,8 @@
   text-overflow: ellipsis;
   white-space: nowrap;
   overflow: hidden;
-  &::after{
-    content: '';
+  &::after {
+    content: "";
     display: block;
   }
 }
@@ -474,27 +477,27 @@
 
 .overlay-container {
   #toast-container {
-    >div {
-      box-shadow: 0 3px 1px -2px rgba(0, 0, 0, .2), 0 2px 2px 0 rgba(0, 0, 0, .14), 0 1px 5px 0 rgba(0, 0, 0, .12);
+    > div {
+      margin: 5px 0 15px;
+      padding: 12px 20px;
+      box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
       border-radius: 2px;
       background-color: #fff;
-      padding: 12px 20px;
       overflow: inherit;
-      margin: 5px 0 15px;
       font-size: 14px;
 
       &::before {
         position: absolute;
         left: -15px;
         top: -15px;
-        font-family: "Material Icons";
-        background-color: #fff;
         width: 30px;
         height: 30px;
         padding: 7px;
+        font-family: "Material Icons";
+        background-color: #fff;
         box-sizing: border-box;
         border-radius: 50%;
-        box-shadow: 0 3px 1px -2px rgba(0, 0, 0, .2), 0 2px 2px 0 rgba(0, 0, 0, .14), 0 1px 5px 0 rgba(0, 0, 0, .12);
+        box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
       }
 
       &.toast-success {
@@ -537,22 +540,23 @@
 }
 
 .dialog-max-width {
-  margin: 0 auto;
   max-width: 350px;
+  margin: 0 auto;
   overflow: hidden;
   text-overflow: ellipsis;
-  &::after{
-    content: '';
+  &::after {
+    content: "";
     display: block;
   }
 }
 
 .group-updated-tooltip {
-  white-space: pre-line;
   max-width: fit-content !important;
+  white-space: pre-line;
 }
 
-.mat-tooltip-for-users, .mat-tooltip-description {
+.mat-tooltip-for-users,
+.mat-tooltip-description {
   overflow-wrap: break-word;
 }