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

hshpak 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 64296ab9e added field for filter
64296ab9e is described below

commit 64296ab9e4a814aa11ac8d836f37a7a7fcd86173
Author: Hennadii_Shpak <[email protected]>
AuthorDate: Mon Aug 1 15:54:41 2022 +0300

    added field for filter
---
 .../normalize-dropdown-multi-value.pipe.ts         |  4 ++-
 .../page-filter/page-filter.component.html         | 33 +++++++++++++++++++++-
 .../page-filter/page-filter.component.scss         |  4 ---
 .../page-filter/page-filter.component.ts           |  7 ++++-
 .../src/app/resources/images/images.component.html |  4 +--
 .../src/app/resources/images/images.component.scss |  2 +-
 .../src/app/resources/images/images.config.ts      | 10 ++++---
 .../src/app/resources/images/images.model.ts       |  4 +--
 .../src/app/resources/images/images.service.ts     | 11 ++++----
 .../resources-grid/resources-grid.component.ts     |  1 -
 10 files changed, 57 insertions(+), 23 deletions(-)

diff --git 
a/services/self-service/src/main/resources/webapp/src/app/core/pipes/normalize-dropdown-multi-value/normalize-dropdown-multi-value.pipe.ts
 
b/services/self-service/src/main/resources/webapp/src/app/core/pipes/normalize-dropdown-multi-value/normalize-dropdown-multi-value.pipe.ts
index 2a81a4ef5..1bfed28a4 100644
--- 
a/services/self-service/src/main/resources/webapp/src/app/core/pipes/normalize-dropdown-multi-value/normalize-dropdown-multi-value.pipe.ts
+++ 
b/services/self-service/src/main/resources/webapp/src/app/core/pipes/normalize-dropdown-multi-value/normalize-dropdown-multi-value.pipe.ts
@@ -31,6 +31,8 @@ export class NormalizeDropdownMultiValuePipe implements 
PipeTransform {
       return firstValue;
     }
 
-    return `${firstValue} (+${value.length - 1} others)`;
+    return value.length === 1
+      ? firstValue
+      : `${firstValue} (+${value.length - 1} others)`;
   }
 }
diff --git 
a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/page-filter/page-filter.component.html
 
b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/page-filter/page-filter.component.html
index 2782e7f41..9de59de67 100644
--- 
a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/page-filter/page-filter.component.html
+++ 
b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/page-filter/page-filter.component.html
@@ -18,7 +18,7 @@
   -->
 
 <div class="dialog-content selection">
-  <div id="scrolling" class="content-box mat-reset scrolling-content">
+  <div id="scrolling" class="mat-reset scrolling-content">
     <form class="filter-table__wrapper" [formGroup]="filterForm">
       <div class="form-control__wrapper control-group">
         <label class="label">Custom tag</label>
@@ -130,6 +130,37 @@
         </div>
       </div>
 
+      <div class="control-group">
+        <label class="label">Sharing</label>
+        <div class="control selector-wrapper">
+            <span class="form-field-wrapper">
+              <mat-form-field>
+                <mat-select
+                  [formControlName]="dropdownFieldNames.sharingStatuses"
+                  disableOptionCentering
+                  panelClass="create-resources-dialog scrolling"
+                  [placeholder]="placeholders.sharing"
+                  multiple
+                  (click)="onSelectClick()"
+                >
+                  <mat-select-trigger class="select__value">
+                    {{sharingStatuses.value | normalizeDropdownMultiValue | 
titlecase}}
+                  </mat-select-trigger>
+                  <mat-option
+                    *ngFor="let status of ($filterDropdownData | 
async).sharingStatuses"
+                    [value]="status"
+                  >
+                    {{ status | titlecase }}
+                  </mat-option>
+                </mat-select>
+                <button class="caret">
+                  <i class="material-icons">keyboard_arrow_down</i>
+                </button>
+              </mat-form-field>
+            </span>
+        </div>
+      </div>
+
       <div class="text-center m-top-20">
         <button type="button" class="butt" mat-raised-button 
(click)="cancelFilter()" >Cancel</button>
         <button type="button" class="butt butt-success" mat-raised-button 
(click)="confirmFilter()" >Apply</button>
diff --git 
a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/page-filter/page-filter.component.scss
 
b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/page-filter/page-filter.component.scss
index b578cd45d..bd6e13870 100644
--- 
a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/page-filter/page-filter.component.scss
+++ 
b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/page-filter/page-filter.component.scss
@@ -50,10 +50,6 @@
   transform: translateX(-15px) !important;
 }
 
-.content-box {
-  padding: 25px 0 35px;
-}
-
 .select__value {
   color: #607d8b;
 }
diff --git 
a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/page-filter/page-filter.component.ts
 
b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/page-filter/page-filter.component.ts
index 10184ea2b..fdd5fcbcb 100644
--- 
a/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/page-filter/page-filter.component.ts
+++ 
b/services/self-service/src/main/resources/webapp/src/app/resources/exploratory/page-filter/page-filter.component.ts
@@ -78,7 +78,8 @@ export class PageFilterComponent implements OnInit {
       imageName: '',
       endpoints: [[]],
       statuses: [[]],
-      templateNames: [[]]
+      templateNames: [[]],
+      sharingStatuses: [[]],
     });
   }
 
@@ -97,4 +98,8 @@ export class PageFilterComponent implements OnInit {
   get templateNames() {
     return this.filterForm.get(DropdownFieldNames.templateNames) as 
FormControl;
   }
+
+  get sharingStatuses() {
+    return this.filterForm.get(DropdownFieldNames.sharingStatuses) as 
FormControl;
+  }
 }
diff --git 
a/services/self-service/src/main/resources/webapp/src/app/resources/images/images.component.html
 
b/services/self-service/src/main/resources/webapp/src/app/resources/images/images.component.html
index 44f9fad82..bc3580566 100644
--- 
a/services/self-service/src/main/resources/webapp/src/app/resources/images/images.component.html
+++ 
b/services/self-service/src/main/resources/webapp/src/app/resources/images/images.component.html
@@ -238,8 +238,8 @@
             </td>
             <td class="cost-col image-table-cell">
               <div class="shared-status--wrapper">
-                <span class="shared-status"> {{element.shared ? 
sharedStatus.shared : sharedStatus.private}} </span>
-                <span *ngIf="element.shared" class="currency_details" >
+                <span class="shared-status"> {{element.sharingStatus | 
titlecase}} </span>
+                <span *ngIf="element.sharingStatus !== sharedStatus.private" 
class="currency_details">
                 <i class="material-icons">help_outline</i>
               </span>
               </div>
diff --git 
a/services/self-service/src/main/resources/webapp/src/app/resources/images/images.component.scss
 
b/services/self-service/src/main/resources/webapp/src/app/resources/images/images.component.scss
index b7dae4ed1..ce03aa96e 100644
--- 
a/services/self-service/src/main/resources/webapp/src/app/resources/images/images.component.scss
+++ 
b/services/self-service/src/main/resources/webapp/src/app/resources/images/images.component.scss
@@ -120,7 +120,7 @@
 
 .filer__wrapper {
   position: absolute;
-  top: 20px;
+  top: 46px;
   left: 170px;
   z-index: 10;
 }
diff --git 
a/services/self-service/src/main/resources/webapp/src/app/resources/images/images.config.ts
 
b/services/self-service/src/main/resources/webapp/src/app/resources/images/images.config.ts
index 4be84ca19..b09c61731 100644
--- 
a/services/self-service/src/main/resources/webapp/src/app/resources/images/images.config.ts
+++ 
b/services/self-service/src/main/resources/webapp/src/app/resources/images/images.config.ts
@@ -29,8 +29,9 @@ export enum Image_Table_Column_Headers {
 }
 
 export enum Shared_Status {
-  shared = 'Shared',
-  private = 'Private'
+  shared = 'SHARED',
+  private = 'PRIVATE',
+  received = 'RECEIVED'
 }
 
 export const Image_Table_Titles = <const>[
@@ -72,7 +73,8 @@ export enum DropdownFieldNames {
   imageName = 'imageName',
   endpoints = 'endpoints',
   templateNames = 'templateNames',
-  statuses = 'statuses'
+  statuses = 'statuses',
+  sharingStatuses = 'sharingStatuses'
 }
 
 export enum ImageModelNames {
@@ -80,7 +82,7 @@ export enum ImageModelNames {
   status = 'status',
   endpoint = 'endpoint',
   templateName = 'templateName',
-  shared = 'shared'
+  sharingStatus = 'sharingStatus'
 }
 
 export const FilterFormInitialValue = {
diff --git 
a/services/self-service/src/main/resources/webapp/src/app/resources/images/images.model.ts
 
b/services/self-service/src/main/resources/webapp/src/app/resources/images/images.model.ts
index 620a9c5ee..f3cf38f11 100644
--- 
a/services/self-service/src/main/resources/webapp/src/app/resources/images/images.model.ts
+++ 
b/services/self-service/src/main/resources/webapp/src/app/resources/images/images.model.ts
@@ -13,8 +13,8 @@ export interface ImageModel {
   instanceName: string;
   name: string;
   project: string;
-  shared: boolean;
-  status: 'active' | 'creating' | 'terminated' | 'terminating' | 'failed';
+  sharingStatus: 'SHARED'| 'PRIVATE' | 'RECEIVED';
+  status: 'ACTIVE' | 'CREATING' | 'FAILED';
   user: string;
   isSelected?: boolean;
   libraries: Library[];
diff --git 
a/services/self-service/src/main/resources/webapp/src/app/resources/images/images.service.ts
 
b/services/self-service/src/main/resources/webapp/src/app/resources/images/images.service.ts
index 2e62e0350..a3c730690 100644
--- 
a/services/self-service/src/main/resources/webapp/src/app/resources/images/images.service.ts
+++ 
b/services/self-service/src/main/resources/webapp/src/app/resources/images/images.service.ts
@@ -48,10 +48,7 @@ export class ImagesService {
   filterImagePageInfo(params: ImageFilterFormValue): 
Observable<ProjectModel[]> {
     return this.userImagesPageService.filterImagePage(params)
       .pipe(
-        tap(value => {
-          console.log(value);
-          return  this.getImagePageData(value);
-        })
+        tap(value => this.getImagePageData(value))
       );
   }
 
@@ -134,7 +131,7 @@ export class ImagesService {
       imageStatuses: this.getDropdownDataItem(ImageModelNames.status),
       endpoints: this.getDropdownDataItem(ImageModelNames.endpoint),
       templateNames: this.getDropdownDataItem(ImageModelNames.templateName),
-      sharingStatuses: this.getDropdownDataItem(ImageModelNames.shared),
+      sharingStatuses: this.getDropdownDataItem(ImageModelNames.sharingStatus),
     };
     this.addFilterDropdownData(dropdownList);
     this.dropdownStartValue = dropdownList;
@@ -142,7 +139,9 @@ export class ImagesService {
 
   private getDropdownDataItem(key: keyof ImageModel): string[] {
     const dropdownItem = this.$$imageList.value.reduce((acc: Set<string>, 
item) => {
-      acc.add(item[key].toString());
+      if (item) {
+        acc.add(<string>item[key]);
+      }
       return acc;
     }, new Set<string>());
     return caseInsensitiveSortUtil([...dropdownItem]);
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 0fa17510e..4677f57d2 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
@@ -444,7 +444,6 @@ export class ResourcesGridComponent implements OnInit {
         this.toastr.error('Creating computation resource failed!', 'Oops!');
       }
     }
-    console.log(filteredData);
     this.filteredEnvironments = filteredData;
   }
 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to