You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@datalab.apache.org by dg...@apache.org on 2020/11/20 15:32:05 UTC

[incubator-datalab] 03/05: [DATALAB-2160]: Fixed disabled gear icon if Notebook contains Data Engine

This is an automated email from the ASF dual-hosted git repository.

dgnatyshyn pushed a commit to branch DATALAB-2160
in repository https://gitbox.apache.org/repos/asf/incubator-datalab.git

commit 0d850dac898941364c1e19362c9e1386fdf6024d
Author: Dmytro_Gnatyshyn <di...@ukr.net>
AuthorDate: Fri Nov 20 17:29:08 2020 +0200

    [DATALAB-2160]: Fixed disabled gear icon if Notebook contains Data Engine
---
 .../management-grid/management-grid.component.html |  4 +-
 .../management-grid/management-grid.component.ts   | 50 ++++++++++++++++------
 2 files changed, 40 insertions(+), 14 deletions(-)

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 649713d..523cd59 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
@@ -306,7 +306,7 @@
 
       <ng-container matColumnDef="scrollButtons">
           <td mat-footer-cell *matFooterCellDef colspan="9" class="buttons-wrap">
-            <div class="buttons" [ngStyle]="{'width.px': wrapper.offsetWidth}" [hidden]="!tableEl['offsetWidth']">
+            <div class="buttons" [ngStyle]="{'width.px': tableWrapperWidth }" [hidden]="!tableWrapperWidth">
               <div class="button-container">
                 <button mat-mini-fab aria-label="Scroll left"
                         (click)="sctollTo('left')"
@@ -335,7 +335,7 @@
 
 
       <tr [hidden]="allFilteredEnvironmentData?.length" mat-footer-row *matFooterRowDef="['placeholder']" class="info"></tr>
-      <tr [hidden]="!tableEl['offsetWidth'] || tableWrapper.offsetWidth - tableEl['offsetWidth'] > -1 || !allFilteredEnvironmentData?.length" mat-footer-row *matFooterRowDef="['scrollButtons']; sticky: true" 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>
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 679c9e9..55dbd96 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
@@ -17,19 +17,30 @@
  * under the License.
  */
 
-import {Component, OnInit, ViewChild, Input, Output, EventEmitter, Inject, HostListener} from '@angular/core';
+import {
+  Component,
+  OnInit,
+  ViewChild,
+  Input,
+  Output,
+  EventEmitter,
+  Inject,
+  HostListener,
+  AfterViewInit,
+  AfterViewChecked,
+  ApplicationRef
+} from '@angular/core';
 import { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
 import { ToastrService } from 'ngx-toastr';
 
 import { HealthStatusService } from '../../../core/services';
 import { SortUtils } from '../../../core/util';
-import { ConfirmationDialogType } from '../../../shared';
-import { ConfirmationDialogComponent } from '../../../shared/modal-dialog/confirmation-dialog';
 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';
 
 export interface ManageAction {
   action: string;
@@ -46,7 +57,7 @@ export interface ManageAction {
     '../../../resources/computational/computational-resources-list/computational-resources-list.component.scss'
   ]
 })
-export class ManagementGridComponent implements OnInit {
+export class ManagementGridComponent implements OnInit, AfterViewInit, AfterViewChecked {
   allEnvironmentData: Array<any>;
   allFilteredEnvironmentData: Array<any>;
   loading: boolean = false;
@@ -69,10 +80,11 @@ export class ManagementGridComponent implements OnInit {
   @ViewChild('wrapper') wrapper;
   @ViewChild('pageWrapper') pageWrapper;
   @ViewChild('table') table;
+  private tableWrapperWidth: number;
 
   @HostListener('window:resize', ['$event'])
   onResize(event) {
-    this.isScrollButtonsVisible = this.tableWrapper.nativeElement.offsetWidth - this.table._elementRef.nativeElement.offsetWidth < 0;
+    this.isScrollButtonsVisible = this.tableWrapper.nativeElement.offsetWidth - this.table._elementRef.nativeElement.offsetWidth < -5;
     this.checkMaxRight();
   }
 
@@ -96,16 +108,30 @@ export class ManagementGridComponent implements OnInit {
     public toastr: ToastrService,
     public dialog: MatDialog,
     private progressBarService: ProgressBarService,
+    private cdRef: ChangeDetectorRef,
+    private applicationRef: ApplicationRef,
   ) { }
 
   ngOnInit() {
-  this.getEnvironmentData();
-    timer(1000)
-      .subscribe(() => {
-      this.isScrollButtonsVisible = this.tableWrapper.nativeElement.offsetWidth - this.table._elementRef.nativeElement.offsetWidth < 0;
-      this.checkMaxRight();
-      this.tableEl = this.table._elementRef.nativeElement;
-    });
+    this.getEnvironmentData();
+  }
+
+
+  ngAfterViewInit() {
+    this.tableEl = this.table._elementRef.nativeElement;
+    this.isScrollButtonsVisible = this.tableWrapper.nativeElement.offsetWidth - this.table._elementRef.nativeElement.offsetWidth < -5;
+    console.log(this.tableWrapper.nativeElement.offsetWidth, this.table._elementRef.nativeElement.offsetWidth);
+    this.checkMaxRight();
+  }
+
+  ngAfterViewChecked() {
+    if (this.tableWrapperWidth !== this.wrapper.nativeElement.offsetWidth) {
+      this.tableWrapperWidth = this.wrapper.nativeElement.offsetWidth;
+      timer(100).subscribe(_ => {
+        this.applicationRef.tick();
+      });
+    }
+    this.cdRef.detectChanges();
   }
 
   getEnvironmentData() {


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@datalab.apache.org
For additional commands, e-mail: commits-help@datalab.apache.org