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-dlab.git
The following commit(s) were added to refs/heads/develop by this push: new f731c4c [DLAB-1840]: Implemented set tasks concerning download (#768) f731c4c is described below commit f731c4cd913e4141b71901cd5c63450f1260bb1b Author: Dmytro Gnatyshyn <42860905+dg1...@users.noreply.github.com> AuthorDate: Thu May 28 19:57:31 2020 +0300 [DLAB-1840]: Implemented set tasks concerning download (#768) [DLAB-1840]: Implemented set tasks concerning download --- .../manage-environment-dilog.component.ts | 1 - .../reporting-grid/reporting-grid.component.html | 2 +- .../bucket-browser/bucket-browser.component.html | 5 ++--- .../bucket-browser/bucket-browser.component.scss | 4 ++++ .../bucket-browser/bucket-browser.component.ts | 18 ++++++++++-------- .../resources/bucket-browser/bucket-data.service.ts | 18 ++++++++++++------ .../buckets-tree/bucket-tree.component.ts | 1 - .../folder-tree/folder-tree.component.ts | 15 +++++---------- .../cluster-details/cluster-details.component.ts | 2 -- .../detail-dialog/detail-dialog.component.ts | 2 -- .../resources-grid/resources-grid.component.ts | 8 -------- .../webapp/src/app/resources/resources.component.html | 4 ++-- 12 files changed, 36 insertions(+), 44 deletions(-) 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 5187fa0..0b405be 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 @@ -90,7 +90,6 @@ export class ManageEnvironmentComponent implements OnInit { } public setProjectsControl() { - console.log(this.data.projectsList); this.manageUsersForm.setControl('projects', this._fb.array((this.data.projectsList || []).map((x: any) => this._fb.group({ project: x.name, diff --git a/services/self-service/src/main/resources/webapp/src/app/reporting/reporting-grid/reporting-grid.component.html b/services/self-service/src/main/resources/webapp/src/app/reporting/reporting-grid/reporting-grid.component.html index 537cbb5..577e2d4 100644 --- a/services/self-service/src/main/resources/webapp/src/app/reporting/reporting-grid/reporting-grid.component.html +++ b/services/self-service/src/main/resources/webapp/src/app/reporting/reporting-grid/reporting-grid.component.html @@ -22,7 +22,7 @@ <ng-container matColumnDef="name"> <th mat-header-cell *matHeaderCellDef class="env_name label-header"> - <div class="label"><span class="text"> Environment name</span></div> + <div class="label"><span class="text"> Resource name</span></div> <button mat-icon-button aria-label="More" class="ar" (click)="toggleFilterRow()"> <i class="material-icons"> <span *ngIf="filteredReportData.dlab_id.length > 0; else dlab_id_filtered">filter_list</span> 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 8dcf4bd..7628c09 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 @@ -150,7 +150,7 @@ </div> </div> <ul class="folder-tree"> - <li *ngFor="let file of folderItems" class="folder-item" > + <li *ngFor="let file of folderItems" class="folder-item" [ngClass]="{'events-none': file.isDownloading }"> <div class="folder-item-wrapper" *ngIf="file.children && file.item" (click)="showItem(file)"> <div class="name name-folder"> <!-- <span *ngIf="this.bucketStatus.delete" class="empty-checkbox" [ngClass]="{'checked': file.isFolderSelected}" (click)="toggleSelectedFile(file, 'folder');$event.stopPropagation()" >--> @@ -173,14 +173,13 @@ <div class="folder-item-wrapper" (click)="toggleSelectedFile(file, 'file')" *ngIf="!file.children && file.item !== 'ا'"> <div class="name name-file"> - <span class="empty-checkbox" [ngClass]="{'checked': file.isSelected}" (click)="toggleSelectedFile(file, 'file');$event.stopPropagation()" > + <span class="empty-checkbox" [ngClass]="{'checked': file.isSelected, 'not-allowed': file.isDownloading}" (click)="toggleSelectedFile(file, 'file');$event.stopPropagation()" > <span class="checked-checkbox" *ngIf="file.isSelected"></span> </span> <i class="material-icons folder-icon" >description</i> <span class="item-name name-wrap" - matTooltip="{{file.item}}" matTooltipPosition="above" matTooltipShowDelay="1000" 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 1787011..fbdf05b 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 @@ -661,6 +661,10 @@ input[type='file'] { } } +.events-none{ + pointer-events: none; +} + @media only screen and (max-height: 920px) { .bucket-wrapper { height: 55vh; 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 3172850..d08bdad 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 @@ -56,7 +56,8 @@ export class BucketBrowserComponent implements OnInit { public selectedItems; public searchValue: string; public isQueueFull: boolean; - public refreshTokenLimit = 300000; + // public refreshTokenLimit = 900000; + public refreshTokenLimit = 3580000; private isTokenRefreshing = false; @@ -100,7 +101,8 @@ export class BucketBrowserComponent implements OnInit { private refreshToken() { this.isTokenRefreshing = true; - this.auth.refreshToken().subscribe(v => { + this.auth.refreshToken().subscribe(tokens => { + this.storage.storeTokens(tokens); this.isTokenRefreshing = false; }); this.sendFile(); @@ -231,7 +233,7 @@ export class BucketBrowserComponent implements OnInit { } this.folderItems = event.element ? event.element.children : event.children; if (this.folderItems) { - this.folders = this.folderItems.filter(v => v.children).sort((a, b) => a.item > b.item ? 1 : -1); + this.folders = this.folderItems.filter(v => v.children); const files = this.folderItems.filter(v => !v.children).sort((a, b) => a.item > b.item ? 1 : -1); this.folderItems = [...this.folders, ...files]; this.objectPath = event.pathObject; @@ -293,6 +295,7 @@ export class BucketBrowserComponent implements OnInit { const uploading = this.addedFiles.filter(v => v.status === 'uploading'); this.isQueueFull = !!waitUploading.length; this.isFileUploading = !!this.addedFiles.filter(v => v.status === 'uploading').length; + console.log((this.getTokenValidTime() / 1000 / 60 ).toFixed(0) + ' minutes'); if ((this.refreshTokenLimit > this.getTokenValidTime()) && !this.isTokenRefreshing) { this.refreshToken(); } @@ -352,8 +355,11 @@ export class BucketBrowserComponent implements OnInit { const selected = this.folderItems.filter(item => item.isSelected); const folderSelected = this.folderItems.filter(item => item.isFolderSelected); if (action === 'download') { - const path = encodeURIComponent(`${this.pathInsideBucket}${this.selected[0].item}`); + this.clearSelection(); + this.isActionsOpen = false; + const path = encodeURIComponent(`${this.pathInsideBucket}${selected[0].item}`); selected[0]['isDownloading'] = true; + this.folderItems.forEach(item => item.isSelected = false); this.bucketBrowserService.downloadFile(`/${this.bucketName}/object/${path}/endpoint/${this.endpoint}/download`) .subscribe(event => { if (event['type'] === HttpEventType.DownloadProgress) { @@ -365,10 +371,7 @@ export class BucketBrowserComponent implements OnInit { selected[0]['isDownloading'] = false; selected[0].progress = 0; }, 1000); - - this.folderItems.forEach(item => item.isSelected = false); } - }, error => { this.toastr.error(error.message || 'File downloading error!', 'Oops!'); selected[0]['isDownloading'] = false; @@ -399,7 +402,6 @@ export class BucketBrowserComponent implements OnInit { }); }); - } } 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 003e615..e6640a8 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 @@ -44,7 +44,7 @@ export class BucketDataService { this.serverData = v; if (this.emptyFolder) { - copiedData.push(this.emptyFolder); + copiedData.unshift(this.emptyFolder); } backetData = this.convertToFolderTree(copiedData); const data = this.buildFileTree({[bucket]: backetData}, 0); @@ -84,13 +84,19 @@ export class BucketDataService { } public insertItem(parent: TodoItemNode, name, isFile, emptyFolderObj?) { - if (parent.children) { + if (parent.children) { if (isFile) { - parent.children.push(name as TodoItemNode); + parent.children.unshift(name as TodoItemNode); } else { - parent.children.push({item: '', children: [], object: {}} as TodoItemNode); - this.emptyFolder = emptyFolderObj; - this._bucketData.next(this.data); + if (name) { + const child = {item: name, children: [], object: JSON.parse(JSON.stringify(parent.object))}; + child.object.object = child.object.object.slice(0, -1) + 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); + } } } } 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 3a21dce..ed222f6 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 @@ -53,7 +53,6 @@ export class BucketTreeComponent implements OnInit { this.activeBucketName = this.openedBucket || ''; this.dataSource.data = this.buckets; this.setActiveBucket(); - console.log(this.treeControl); } public openBucketData(bucket) { 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 93dabb7..7d69682 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 @@ -53,7 +53,6 @@ export class FolderTreeComponent implements OnDestroy { this.treeControl = new FlatTreeControl<TodoItemFlatNode>(this.getLevel, this.isExpandable); this.dataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener); this.subscriptions.add(this.bucketDataService._bucketData.subscribe(data => { - if (data) { this.dataSource.data = data; const subject = this.dataSource._flattenedData; @@ -212,7 +211,7 @@ private addNewItem(node: TodoItemFlatNode, file, isFile) { if (flatObject.indexOf('ا') === flatObject.length - 1) { flatObject = flatObject.substring(0, flatParent.object.object.length - 1); } - const path = `${ flatParent.object ? flatObject : ''}${itemValue}/`; + const path = `${ flatParent.object && flatObject !== '/' ? flatObject : ''}${itemValue}/`; const bucket = flatParent.object ? flatParent.object.bucket : flatParent.item; const formData = new FormData(); formData.append('file', ''); @@ -223,20 +222,16 @@ private addNewItem(node: TodoItemFlatNode, file, isFile) { this.bucketBrowserService.uploadFile(formData) .subscribe((event) => { if (event instanceof HttpResponse) { - this.bucketDataService.refreshBucketdata(bucket, this.endpoint); + this.bucketDataService.insertItem(flatParent, itemValue, false); + // this.bucketDataService.refreshBucketdata(bucket, this.endpoint); this.toastr.success('Folder successfully created!', 'Success!'); - this.resetForm(); this.folderCreating = false; - this.dataSource._flattenedData.getValue() - .splice(this.dataSource._flattenedData.getValue() - .indexOf(this.dataSource._flattenedData - .getValue().filter(v => v.item === '')[0])); + this.removeItem(node); } }, error => { this.folderCreating = false; this.toastr.error(error.message || 'Folder creation error!', 'Oops!'); - } - ); + }); } private resetForm() { 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 11002e1..6180f96 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 @@ -57,8 +57,6 @@ export class DetailComputationalResourcesComponent implements OnInit { ngOnInit() { this.open(this.data.environment, this.data.resource); - - console.log(this.PROVIDER); } public open(environment, resource): void { 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 9468157..211ab56 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 @@ -65,7 +65,6 @@ export class DetailDialogComponent implements OnInit { } ngOnInit() { - console.log(this.data.notebook); this.bucketStatus = this.data.bucketStatus; this.notebook = this.data.notebook; if (this.notebook) { @@ -136,7 +135,6 @@ export class DetailDialogComponent implements OnInit { } public bucketBrowser(bucketName, endpoint, permition): void { - // bucketName = 'ofuks-1304-pr2-local-bucket'; bucketName = this.isBucketAllowed ? this.notebook.bucket_name : this.data.buckets[0].children[0].name; permition && this.dialog.open(BucketBrowserComponent, { data: {bucket: bucketName, endpoint: endpoint, bucketStatus: this.bucketStatus, buckets: this.data.buckets}, 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 9003974..83babee 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 @@ -110,13 +110,6 @@ export class ResourcesGridComponent implements OnInit { public getUserProjects() { this.projectService.getUserProjectsList(true).subscribe((projects: any) => { this.activeProjectsList = projects; - console.log(projects); - // console.log(projects); - // const activeProject = projects.find(item => item.name === this.resourceGrid.activeProject); - // if (this.resourceGrid.activeProject && activeProject) { - // this.setEndpoints(activeProject); - // this.createExploratoryForm.controls['project'].setValue(activeProject.name); - // } }); } @@ -271,7 +264,6 @@ export class ResourcesGridComponent implements OnInit { if (filteredData.length) this.filtering = true; if (config) { - console.log(config); this.activeProject = config.project; filteredData = filteredData .filter(project => config.project ? project.project === config.project : project) 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 50c91c2..d028240 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 @@ -23,12 +23,12 @@ <span matTooltip="{{!healthStatus?.projectAssigned ? 'You are not assigned to any project' : 'You have not any active project'}}" matTooltipPosition="above" - matTooltipDisabled="{{healthStatus?.projectAssigned && resourcesGrid.activeProjectsList.length}}" + matTooltipDisabled="{{healthStatus?.projectAssigned && resourcesGrid.activeProjectsList?.length}}" [matTooltipClass]="'bucket-item-tooltip'" > <span>{{resourcesGrid.activeProject}}</span> <button mat-raised-button class="butt butt-create" (click)="createEnvironment()" - [disabled]="!healthStatus?.projectAssigned || !resourcesGrid.activeProjectsList.length"> + [disabled]="!healthStatus?.projectAssigned || !resourcesGrid.activeProjectsList?.length"> <i class="material-icons">add</i>Create new </button> </span> --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@dlab.apache.org For additional commands, e-mail: commits-h...@dlab.apache.org