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:34:49 UTC
[incubator-datalab] branch develop updated: [DATALAB-2160]: Fixed
disabled gear icon if Notebook contains Data Engine (#986)
This is an automated email from the ASF dual-hosted git repository.
dgnatyshyn pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/incubator-datalab.git
The following commit(s) were added to refs/heads/develop by this push:
new 66ec0eb [DATALAB-2160]: Fixed disabled gear icon if Notebook contains Data Engine (#986)
66ec0eb is described below
commit 66ec0eb47c785adefd5d551fa634f480f89faeaf
Author: Dmytro Gnatyshyn <42...@users.noreply.github.com>
AuthorDate: Fri Nov 20 17:34:41 2020 +0200
[DATALAB-2160]: Fixed disabled gear icon if Notebook contains Data Engine (#986)
[DATALAB-2160]: Fixed disabled gear icon if Notebook contains Data Engine
---
.../management-grid/management-grid.component.html | 6 +--
.../management-grid/management-grid.component.ts | 57 ++++++++++++++--------
2 files changed, 40 insertions(+), 23 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 d14d7f3..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
@@ -191,7 +191,7 @@
<span #settings class="actions" (click)="actions.toggle($event, settings)" *ngIf="element.type !== 'edge node'"
[ngClass]="{
'disabled' : (element.status !== 'running' && element.status !== 'stopped' && element.status !== 'stopping' && element.status !== 'failed')
- || selected?.length || isActiveResources(element)}">
+ || selected?.length || inProgress(element.resources)}">
</span>
</span>
@@ -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 cf7bf0c..b97ddf8 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,10 @@ 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.checkMaxRight();
}
@@ -88,7 +99,6 @@ export class ManagementGridComponent implements OnInit {
private cashedFilterForm: ManagementConfigModel = new ManagementConfigModel([], '', [], [], [], [], []);
public isFilterSelected: boolean;
public isFilterChanged: boolean;
- private isScrollButtonsVisible: boolean;
constructor(
private healthStatusService: HealthStatusService,
@@ -96,16 +106,28 @@ 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.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() {
@@ -217,18 +239,13 @@ export class ManagementGridComponent implements OnInit {
}
public inProgress(resources) {
- return resources.filter(resource => (
+ return resources.some(resource => (
resource.status !== 'failed'
&& resource.status !== 'terminated'
&& resource.status !== 'running'
- && resource.status !== 'stopped')).length > 0;
+ && resource.status !== 'stopped'));
}
- public isActiveResources(item) {
- if (item.resources.length) return item.resources.some(e => e.status !== 'terminated');
- }
-
-
private getDefaultFilterConfiguration(data): void {
const users = [], projects = [], shapes = [], statuses = [], resources = [], endpoints = [];
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@datalab.apache.org
For additional commands, e-mail: commits-help@datalab.apache.org