Skip to content

Commit 85227fe

Browse files
Add number column Type
1 parent 5979868 commit 85227fe

File tree

4 files changed

+21
-18
lines changed

4 files changed

+21
-18
lines changed

src/app/elements/table/table.filter.component.html

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
[sorter]="getDefaultSorter(col)"
4444
(sorted)="sort($event)" class="{{col.property}}" [ngClass]="{
4545
'fit': col.type === 'checkbox' || col.property === 'action',
46-
'percent':col.type === 'percent'
46+
'percent':col.type === 'percent' || col.type === 'number'
4747
}">
4848
<fa-icon class="icon up sorter" [icon]="icons.faArrowUp" style="display: none"></fa-icon>
4949
<fa-icon class="icon down sorter" [icon]="icons.faArrowDown" style="display: none"></fa-icon>
@@ -102,17 +102,17 @@
102102
(modelChange)="handleLookupFilterChange(col.lookup.objectWithId ? col.lookup.objectWithId : col.lookup.entity, [$event])">
103103
</lookup-autocomplete>
104104

105-
<div *ngIf="col.type === 'percent' && col.filter"
105+
<div *ngIf="(col.type === 'percent' || col.type === 'number') && col.filter"
106106
[ngClass]="{ 'has-error': isRangeInvalid(col) }">
107107
<input placeholder="from" class="inline form-control input-sm ft-range-selector"
108-
(keyup)="rangeKeyUp($event)"
108+
(keyup)="rangeKeyUp($event, col)"
109109
(ngModelChange)="handleRangeFilterChange(col, $event, 'from')"
110-
[ngModel]="rangeFilterData(col.property, 'from')" type="number" min="0" max="100"
110+
[ngModel]="rangeFilterData(col.property, 'from')" type="number" min="0" [max]="col.type === 'percent' ? 100 : undefined"
111111
oninput="this.value = this.value.replace(/[^0-9]/g, '');">
112112
<input placeholder="to" class="inline form-control input-sm ft-range-selector"
113113
(ngModelChange)="handleRangeFilterChange(col, $event, 'to')"
114-
[ngModel]="rangeFilterData(col.property, 'to')" type="number" min="0" max="100"
115-
(keyup)="rangeKeyUp($event)" oninput="this.value = this.value.replace(/[^0-9]/g, '');">
114+
[ngModel]="rangeFilterData(col.property, 'to')" type="number" min="0" [max]="col.type === 'percent' ? 100 : undefined"
115+
(keyup)="rangeKeyUp($event, col)" oninput="this.value = this.value.replace(/[^0-9]/g, '');">
116116
<fa-icon class="icon" [icon]="icons.faTimes" (click)="removeRangeFilter(col.property)">
117117
</fa-icon>
118118
</div>
@@ -366,7 +366,7 @@
366366
(blur)="sendUpdate(entity)" />
367367

368368
<div
369-
*ngIf="(col.type === 'text' || col.type=='email' || col.type=='percent' || col.type=='textarea') && (!col.editable || entity.constantRow || notEditableByProperty(entity, col)) && !col.link">
369+
*ngIf="(col.type === 'text' || col.type=='email' || col.type=='percent' || col.type=='number' || col.type=='textarea') && (!col.editable || entity.constantRow || notEditableByProperty(entity, col)) && !col.link">
370370
{{transformationsService.getPropertyValue(entity, col.property)}}</div>
371371
<attachment-inline *ngIf="col.type === 'file'" [name]="col.property + rowNum"
372372
[model]="transformationsService.getPropertyValue(entity, col.property)"

src/app/elements/table/table.filter.component.ts

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -274,14 +274,14 @@ export class TableFilterComponent implements OnInit, AfterViewInit, OnDestroy, O
274274
handleRangeFilterChange(col: any, value: string, type: string) {
275275
const newFilter: Filter = this.filterHelper.getOrCreateFilter(col.property, this.appliedFilters);
276276
let ranges: any[] = [];
277-
ranges = newFilter.range ? newFilter.range.split(',') : [0, 100];
277+
ranges = newFilter.range ? newFilter.range.split(',') : [0, undefined];
278278

279279
switch (type) {
280280
case 'from':
281-
ranges[0] = this.fixIvalidRange(value);
281+
ranges[0] = this.fixIvalidRange(value, col);
282282
break;
283283
case 'to':
284-
ranges[1] = this.fixIvalidRange(value);
284+
ranges[1] = this.fixIvalidRange(value, col);
285285
break;
286286
}
287287

@@ -318,9 +318,11 @@ export class TableFilterComponent implements OnInit, AfterViewInit, OnDestroy, O
318318
this.filterChange(newFilter);
319319
}
320320

321-
fixIvalidRange(range: string | number) {
321+
fixIvalidRange(range: string | number, col: TFColumn) {
322322
range = +range < 0 ? 0 : range;
323-
range = +range > 100 ? 100 : range;
323+
if (col.type === TFColumnType.percent) {
324+
range = +range > 100 ? 100 : range;
325+
}
324326
return range;
325327
}
326328

@@ -568,8 +570,8 @@ export class TableFilterComponent implements OnInit, AfterViewInit, OnDestroy, O
568570
this.sort(this.defaultSortBy);
569571
}
570572

571-
rangeKeyUp($event) {
572-
$event.target.value = this.fixIvalidRange($event.target.value);
573+
rangeKeyUp($event, column: TFColumn) {
574+
$event.target.value = this.fixIvalidRange($event.target.value, column);
573575
}
574576

575577
removeRangeFilter(property) {
@@ -646,9 +648,9 @@ export class TableFilterComponent implements OnInit, AfterViewInit, OnDestroy, O
646648
rowClicked(entity: any, col: any, $event: any) {
647649
const el: HTMLElement = $event.target;
648650
const canClick = (!col.editable || this.notEditableByProperty(entity, col) || el.classList.contains('ft-cell'))
649-
&& col.type !== 'link'
650-
&& col.type !== 'long-text'
651-
&& !col.link;
651+
&& col.type !== 'link'
652+
&& col.type !== 'long-text'
653+
&& !col.link;
652654
if (canClick) {
653655
this.rowClick.emit(entity);
654656
}

src/app/elements/table/tfColumn.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ export enum TFColumnType {
7272
email = 'email',
7373
multiselect = 'multiselect',
7474
percent = 'percent',
75+
number = 'number',
7576
password = 'password',
7677
checkbox = 'checkbox',
7778
autocomplete = 'lookup-autocomplete',

src/app/pages/project/testrun/testrun-list/testruns.component.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ export class TestRunsComponent implements OnInit {
164164
property: 'not_assigned',
165165
filter: true,
166166
sorting: true,
167-
type: TFColumnType.percent,
167+
type: TFColumnType.number,
168168
editable: false,
169169
link: {
170170
template: `/project/${this.route.snapshot.params.projectId}/testrun/{id}`,

0 commit comments

Comments
 (0)