diff options
author | Arundathi Patil <arundpil@in.ibm.com> | 2019-05-27 15:14:14 +0530 |
---|---|---|
committer | Arundathi Patil <arundpil@in.ibm.com> | 2019-05-27 15:14:37 +0530 |
commit | b0bda9b6310a84ce00a747926c78b04b66eac8ae (patch) | |
tree | 0fcde175cc5f0ccfe2673ec8efa130220c87a39c /cds-ui/client/src/app/common | |
parent | 1f69e1c3569196305c23f085cfbc03bdba14f4e0 (diff) |
CCSDK-1308- Files sorting
Files are now sorted in ascending order
Issue-ID: CCSDK-1308
Change-Id: I4143a132a946815363f1c80b6ab37b6590ee242c
Signed-off-by: Arundathi Patil <arundpil@in.ibm.com>
Diffstat (limited to 'cds-ui/client/src/app/common')
-rw-r--r-- | cds-ui/client/src/app/common/shared/pipes/sort.pipe.ts | 54 | ||||
-rw-r--r-- | cds-ui/client/src/app/common/shared/shared.module.ts | 8 |
2 files changed, 59 insertions, 3 deletions
diff --git a/cds-ui/client/src/app/common/shared/pipes/sort.pipe.ts b/cds-ui/client/src/app/common/shared/pipes/sort.pipe.ts new file mode 100644 index 000000000..f878a2256 --- /dev/null +++ b/cds-ui/client/src/app/common/shared/pipes/sort.pipe.ts @@ -0,0 +1,54 @@ +/* +============LICENSE_START========================================== +=================================================================== +Copyright (C) 2019 IBM Intellectual propertyNameerty. All rights reserved. +=================================================================== + +Unless otherwise specified, all software contained herein is licensed +under the Apache License, Version 2.0 (the License); +you may not use this software except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +============LICENSE_END============================================ +*/ + +import { Pipe, PipeTransform } from '@angular/core'; + +@Pipe({ + name: 'sort', + pure:false, +}) +export class SortPipe implements PipeTransform { + + transform(arrayData: any[], direcion: string, propertyName?: string): any { + if (!arrayData) { + return []; + } + if (!direcion || !propertyName) { + return arrayData + } + if (arrayData.length > 0) { + const _direction = direcion === 'asc' ? -1 : 1, + isArray = Array.isArray(arrayData), + arrayDataType = typeof arrayData[0], + flag = isArray && arrayDataType === 'object' ? true : isArray && arrayDataType !== 'object' ? false : true; + arrayData.sort((a, b) => { + a = flag ? a[propertyName] : a; + b = flag ? b[propertyName] : b; + if (typeof a === 'string') { + return a.toLowerCase() > b.toLowerCase() ? -1 * _direction : 1 * _direction; + } else if (typeof a === 'number') { + return a - b > 0 ? -1 * _direction : 1 * _direction; + } + }); + } + return arrayData; + } +}
\ No newline at end of file diff --git a/cds-ui/client/src/app/common/shared/shared.module.ts b/cds-ui/client/src/app/common/shared/shared.module.ts index 6ca5b13a5..b036f5967 100644 --- a/cds-ui/client/src/app/common/shared/shared.module.ts +++ b/cds-ui/client/src/app/common/shared/shared.module.ts @@ -29,20 +29,22 @@ import { RouterModule } from "@angular/router"; import { SearchPipe } from './pipes/search.pipe'; import { SearchDialog } from './components/search-dialog/search-dialog.component'; import { AppMaterialModule } from '../modules/app-material.module'; +import { SortPipe } from './pipes/sort.pipe'; @NgModule({ declarations: [ HomeComponent, CBAWizardComponent, SearchPipe, - SearchDialog - + SearchDialog, + SortPipe ], exports: [ HomeComponent, CBAWizardComponent, SearchPipe, - SearchDialog + SearchDialog, + SortPipe ], imports: [ AppMaterialModule, |