Skip to content

Commit f2f6744

Browse files
authored
Merge pull request #8430 from IgniteUI/grid-cell-edit-styling
fix(grid): update transactionState rowEdit is canceled
2 parents bf9e542 + 504d829 commit f2f6744

File tree

6 files changed

+26
-44
lines changed

6 files changed

+26
-44
lines changed

projects/igniteui-angular/src/lib/grids/cell.component.ts

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,7 @@ export class IgxGridCellComponent implements OnInit, OnChanges, OnDestroy {
187187
* @memberof IgxGridCellComponent
188188
*/
189189
get template(): TemplateRef<any> {
190-
if (this.editMode || this.addMode) {
190+
if (this.editMode) {
191191
const inlineEditorTemplate = this.column.inlineEditorTemplate;
192192
return inlineEditorTemplate ? inlineEditorTemplate : this.inlineEditorTemplate;
193193
}
@@ -366,12 +366,6 @@ export class IgxGridCellComponent implements OnInit, OnChanges, OnDestroy {
366366
@HostBinding('class.igx-grid__td--editing')
367367
editMode = false;
368368

369-
/**
370-
* Returns whether the cell is in add mode
371-
*/
372-
@Input()
373-
addMode = false;
374-
375369
/**
376370
* Sets/get the `role` property of the cell.
377371
* Default value is `"gridcell"`.

projects/igniteui-angular/src/lib/grids/common/pipes.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -284,7 +284,7 @@ export class IgxStringReplacePipe implements PipeTransform {
284284
@Pipe({ name: 'transactionState' })
285285
export class IgxGridTransactionStatePipe implements PipeTransform {
286286

287-
transform(row_id: any, field: string, rowEditable: boolean, transactions: any, _: any, __: any) {
287+
transform(row_id: any, field: string, rowEditable: boolean, transactions: any, _: any, __: any, ___: any) {
288288
if (rowEditable) {
289289
const rowCurrentState = transactions.getAggregatedValue(row_id, false);
290290
if (rowCurrentState) {

projects/igniteui-angular/src/lib/grids/grid/grid-row.component.html

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -98,15 +98,14 @@
9898
<ng-template #cellTemplate let-col>
9999
<igx-grid-cell
100100
class="igx-grid__td igx-grid__td--fw"
101-
[class.igx-grid__td--edited]="rowID | transactionState:col.field:grid.rowEditable:grid.transactions:grid.pipeTrigger:grid.crudService.cell"
101+
[class.igx-grid__td--edited]="rowID | transactionState:col.field:grid.rowEditable:grid.transactions:grid.pipeTrigger:grid.crudService.cell:grid.crudService.row"
102102
[attr.aria-describedby]="gridID + '_' + col.field | igxStringReplace:'.':'_'"
103103
[class.igx-grid__td--pinned]="col.pinned"
104104
[class.igx-grid__td--number]="col.dataType === 'number'"
105105
[class.igx-grid__td--bool]="col.dataType === 'boolean'"
106106
[ngClass]="col.cellClasses | igxCellStyleClasses:rowData[col.field]:rowData:col.field:viewIndex:grid.pipeTrigger"
107107
[ngStyle]="col.cellStyles | igxCellStyles:rowData[col.field]:rowData:col.field:viewIndex:grid.pipeTrigger"
108-
[editMode]="col.editable && crudService.isCellInEditByPos(index, col.index)"
109-
[addMode]="col.editable && crudService.isInAddMode(index,col.index)"
108+
[editMode]="col.editable && crudService.targetInEdit(index, col.index)"
110109
[column]="col"
111110
[formatter]="col.formatter"
112111
[row]="this"
@@ -135,13 +134,12 @@
135134
[class.igx-grid__td--pinned]="col.pinned"
136135
[attr.aria-describedby]="gridID + '_' + col.field | igxStringReplace:'.':'_'"
137136
class="igx-grid__td igx-grid__td--fw igx-grid__td--tree-cell"
138-
[class.igx-grid__td--edited]="rowID | transactionState:col.field:grid.rowEditable:grid.transactions:grid.pipeTrigger:grid.crudService.cell"
137+
[class.igx-grid__td--edited]="rowID | transactionState:col.field:grid.rowEditable:grid.transactions:grid.pipeTrigger:grid.crudService.cell:grid.crudService.row"
139138
[class.igx-grid__td--number]="col.dataType === 'number' && col.visibleIndex !== 0"
140139
[ngClass]="col.cellClasses | igxCellStyleClasses:rowData[col.field]:rowData:col.field:viewIndex:grid.pipeTrigger"
141140
[ngStyle]="col.cellStyles | igxCellStyles:rowData[col.field]:rowData:col.field:viewIndex:grid.pipeTrigger"
142141
[expanded]="expanded"
143-
[editMode]="col.editable && crudService.isCellInEditByPos(index, col.index)"
144-
[addMode]="col.editable && crudService.isInAddMode(index,col.index)"
142+
[editMode]="col.editable && crudService.targetInEdit(index, col.index)"
145143
[column]="col"
146144
[formatter]="col.formatter"
147145
[row]="this"
@@ -166,14 +164,13 @@
166164
<ng-template #mrlCellTemplate let-col>
167165
<igx-grid-cell
168166
class="igx-grid__td igx-grid__td--fw"
169-
[class.igx-grid__td--edited]="rowID | transactionState:col.field:grid.rowEditable:grid.transactions:grid.pipeTrigger:grid.crudService.cell"
167+
[class.igx-grid__td--edited]="rowID | transactionState:col.field:grid.rowEditable:grid.transactions:grid.pipeTrigger:grid.crudService.cell:grid.crudService.row"
170168
[attr.aria-describedby]="gridID + '_' + col.field | igxStringReplace:'.':'_'"
171169
[class.igx-grid__td--pinned]="col.pinned"
172170
[class.igx-grid__td--number]="col.dataType === 'number'"
173171
[ngClass]="col.cellClasses | igxCellStyleClasses:rowData[col.field]:rowData:col.field:viewIndex:grid.pipeTrigger"
174172
[ngStyle]="col.cellStyles | igxCellStyles:rowData[col.field]:rowData:col.field:viewIndex:grid.pipeTrigger"
175-
[editMode]="col.editable && crudService.isCellInEditByPos(index, col.index)"
176-
[addMode]="col.editable && crudService.isInAddMode(index,col.index)"
173+
[editMode]="col.editable && crudService.targetInEdit(index, col.index)"
177174
[column]="col"
178175
[style.-ms-grid-row-span]="col.gridRowSpan"
179176
[style.-ms-grid-column-span]="col.gridColumnSpan"
@@ -203,14 +200,14 @@
203200
<ng-template #mrlExpandableCellTemplate let-col>
204201
<igx-expandable-grid-cell
205202
class="igx-grid__td igx-grid__td--fw igx-grid__td--tree-cell"
206-
[class.igx-grid__td--edited]="rowID | transactionState:col.field:grid.rowEditable:grid.transactions:grid.pipeTrigger:grid.crudService.cell"
203+
[class.igx-grid__td--edited]="rowID | transactionState:col.field:grid.rowEditable:grid.transactions:grid.pipeTrigger:grid.crudService.cell:grid.crudService.row"
207204
[attr.aria-describedby]="gridID + '_' + col.field | igxStringReplace:'.':'_'"
208205
[class.igx-grid__td--pinned]="col.pinned"
209206
[class.igx-grid__td--number]="col.dataType === 'number' && col.visibleIndex !== 0"
210207
[ngClass]="col.cellClasses | igxCellStyleClasses:rowData[col.field]:rowData:col.field:viewIndex:grid.pipeTrigger"
211208
[ngStyle]="col.cellStyles | igxCellStyles:rowData[col.field]:rowData:col.field:viewIndex:grid.pipeTrigger"
212209
[expanded]="expanded"
213-
[editMode]="col.editable && crudService.isCellInEditByPos(index, col.index)"
210+
[editMode]="col.editable && crudService.targetInEdit(index, col.index)"
214211
[column]="col"
215212
[style.-ms-grid-row-span]="col.gridRowSpan"
216213
[style.-ms-grid-column-span]="col.gridColumnSpan"

projects/igniteui-angular/src/lib/grids/hierarchical-grid/hierarchical-row.component.html

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -49,14 +49,13 @@
4949
<ng-template igxGridFor let-col [igxGridForOf]="unpinnedColumns | igxNotGrouped" [igxForScrollContainer]="grid.parentVirtDir" let-colIndex="index" [igxForSizePropName]='"calcPixelWidth"' [igxForScrollOrientation]="'horizontal'" [igxForContainerSize]='grid.unpinnedWidth' [igxForTrackBy]='grid.trackColumnChanges' #igxDirRef>
5050
<igx-hierarchical-grid-cell
5151
class="igx-grid__td igx-grid__td--fw"
52-
[class.igx-grid__td--edited]="rowID | transactionState:col.field:grid.rowEditable:grid.transactions:grid.pipeTrigger:grid.crudService.cell"
52+
[class.igx-grid__td--edited]="rowID | transactionState:col.field:grid.rowEditable:grid.transactions:grid.pipeTrigger:grid.crudService.cell:grid.crudService.row"
5353
[attr.aria-describedby]="gridID + '_' + col.field | igxStringReplace:'.':'_'"
5454
[class.igx-grid__td--number]="col.dataType === 'number'"
5555
[class.igx-grid__td--bool]="col.dataType === 'boolean'"
5656
[ngClass]="col.cellClasses | igxCellStyleClasses:rowData[col.field]:rowData:col.field:viewIndex:grid.pipeTrigger"
5757
[ngStyle]="col.cellStyles | igxCellStyles:rowData[col.field]:rowData:col.field:viewIndex:grid.pipeTrigger"
58-
[editMode]="col.editable && crudService.isCellInEditByPos(index, col.index)"
59-
[addMode]="col.editable && crudService.isInAddMode(index,col.index)"
58+
[editMode]="col.editable && crudService.targetInEdit(index, col.index)"
6059
[column]="col"
6160
[formatter]="col.formatter"
6261
[row]="this"
@@ -97,12 +96,12 @@
9796
<ng-template #pinnedCellsTemplate let-col>
9897
<igx-hierarchical-grid-cell *ngFor="let col of pinnedColumns | igxNotGrouped"
9998
class="igx-grid__td igx-grid__td--fw igx-grid__td--pinned"
100-
[class.igx-grid__td--edited]="rowID | transactionState:col.field:grid.rowEditable:grid.transactions:grid.pipeTrigger:grid.crudService.cell"
99+
[class.igx-grid__td--edited]="rowID | transactionState:col.field:grid.rowEditable:grid.transactions:grid.pipeTrigger:grid.crudService.cell:grid.crudService.row"
101100
[attr.aria-describedby]="gridID + '_' + col.field | igxStringReplace:'.':'_'"
102101
[class.igx-grid__td--number]="col.dataType === 'number'"
103102
[ngClass]="col.cellClasses | igxCellStyleClasses:rowData[col.field]:rowData:col.field:viewIndex:grid.pipeTrigger"
104103
[ngStyle]="col.cellStyles | igxCellStyles:rowData[col.field]:rowData:col.field:viewIndex:grid.pipeTrigger"
105-
[editMode]="col.editable && crudService.isCellInEditByPos(index, col.index)"
104+
[editMode]="col.editable && crudService.targetInEdit(index, col.index)"
106105
[column]="col"
107106
[formatter]="col.formatter"
108107
[row]="this"

projects/igniteui-angular/src/lib/grids/selection/selection.service.ts

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -364,19 +364,13 @@ export class IgxGridCRUDService {
364364
}
365365
}
366366

367-
/** Returns whether a particular cell is in edit mode */
368-
public isCellInEditByPos(rowIndex: number, columnIndex: number): boolean {
367+
/** Returns whether the targeted cell is in edit mode */
368+
public targetInEdit(rowIndex: number, columnIndex: number): boolean {
369369
if (!this.cell) {
370370
return false;
371371
}
372-
return this.cell.column.index === columnIndex && this.cell.rowIndex === rowIndex;
373-
}
374-
375-
public isInAddMode(rowIndex: number, columnIndex: number): boolean {
376-
if (!this.cell) {
377-
return false;
378-
}
379-
return this.cell.column.index === columnIndex && this.cell.rowIndex === rowIndex;
372+
const res = this.cell.column.index === columnIndex && this.cell.rowIndex === rowIndex;
373+
return res;
380374
}
381375
}
382376

projects/igniteui-angular/src/lib/grids/tree-grid/tree-grid-row.component.html

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,13 @@
2626
<ng-template #cellTemplate>
2727
<igx-grid-cell
2828
class="igx-grid__td igx-grid__td--fw"
29-
[class.igx-grid__td--edited]="rowID | transactionState:col.field:grid.rowEditable:grid.transactions:grid.pipeTrigger:grid.crudService.cell"
29+
[class.igx-grid__td--edited]="rowID | transactionState:col.field:grid.rowEditable:grid.transactions:grid.pipeTrigger:grid.crudService.cell:grid.crudService.row"
3030
[attr.aria-describedby]="gridID + '_' + col.field | igxStringReplace:'.':'_'"
3131
[class.igx-grid__td--number]="col.dataType === 'number'"
3232
[class.igx-grid__td--bool]="col.dataType === 'boolean'"
3333
[ngClass]="col.cellClasses | igxCellStyleClasses:rowData[col.field]:rowData:col.field:viewIndex:grid.pipeTrigger"
3434
[ngStyle]="col.cellStyles | igxCellStyles:rowData[col.field]:rowData:col.field:viewIndex:grid.pipeTrigger"
35-
[editMode]="col.editable && crudService.isCellInEditByPos(index, col.index)"
35+
[editMode]="col.editable && crudService.targetInEdit(index, col.index)"
3636
[column]="col"
3737
[formatter]="col.formatter"
3838
[row]="this"
@@ -49,22 +49,21 @@
4949
[active]="isCellActive(col.visibleIndex)"
5050
[cellSelectionMode]="grid.cellSelection"
5151
[displayPinnedChip]="shouldDisplayPinnedChip(col.visibleIndex)"
52-
[addMode]="col.editable && crudService.isInAddMode(index,col.index)"
5352
#treeCell>
5453
</igx-grid-cell>
5554
</ng-template>
5655
<ng-template #treeCellTemplate>
5756
<igx-tree-grid-cell
5857
class="igx-grid__td igx-grid__td--fw igx-grid__td--tree-cell"
59-
[class.igx-grid__td--edited]="rowID | transactionState:col.field:grid.rowEditable:grid.transactions:grid.pipeTrigger:grid.crudService.cell"
58+
[class.igx-grid__td--edited]="rowID | transactionState:col.field:grid.rowEditable:grid.transactions:grid.pipeTrigger:grid.crudService.cell:grid.crudService.row"
6059
[attr.aria-describedby]="gridID + '_' + col.field | igxStringReplace:'.':'_'"
6160
[class.igx-grid__td--number]="col.dataType === 'number' && col.visibleIndex !== 0"
6261
[ngClass]="col.cellClasses | igxCellStyleClasses:rowData[col.field]:rowData:col.field:viewIndex:grid.pipeTrigger"
6362
[ngStyle]="col.cellStyles | igxCellStyles:rowData[col.field]:rowData:col.field:viewIndex:grid.pipeTrigger"
6463
[level]="treeRow.level"
6564
[expanded]="treeRow.expanded"
6665
[showIndicator]="showIndicator"
67-
[editMode]="col.editable && crudService.isCellInEditByPos(index, col.index)"
66+
[editMode]="col.editable && crudService.targetInEdit(index, col.index)"
6867
[column]="col"
6968
[formatter]="col.formatter"
7069
[row]="this"
@@ -82,7 +81,6 @@
8281
[active]="isCellActive(col.visibleIndex)"
8382
[cellSelectionMode]="grid.cellSelection"
8483
[displayPinnedChip]="shouldDisplayPinnedChip(col.visibleIndex)"
85-
[addMode]="col.editable && crudService.isInAddMode(index,col.index)"
8684
#treeCell>
8785
</igx-tree-grid-cell>
8886
</ng-template>
@@ -110,12 +108,12 @@
110108
<ng-template #cellTemplate>
111109
<igx-grid-cell
112110
class="igx-grid__td igx-grid__td--fw igx-grid__td--pinned"
113-
[class.igx-grid__td--edited]="rowID | transactionState:col.field:grid.rowEditable:grid.transactions:grid.pipeTrigger:grid.crudService.cell"
111+
[class.igx-grid__td--edited]="rowID | transactionState:col.field:grid.rowEditable:grid.transactions:grid.pipeTrigger:grid.crudService.cell:grid.crudService.row"
114112
[attr.aria-describedby]="gridID + '_' + col.field | igxStringReplace:'.':'_'"
115113
[class.igx-grid__td--number]="col.dataType === 'number'"
116114
[ngClass]="col.cellClasses | igxCellStyleClasses:rowData[col.field]:rowData:col.field:viewIndex:grid.pipeTrigger"
117115
[ngStyle]="col.cellStyles | igxCellStyles:rowData[col.field]:rowData:col.field:viewIndex:grid.pipeTrigger"
118-
[editMode]="col.editable && crudService.isCellInEditByPos(index, col.index)"
116+
[editMode]="col.editable && crudService.targetInEdit(index, col.index)"
119117
[column]="col"
120118
[formatter]="col.formatter"
121119
[row]="this"
@@ -141,15 +139,15 @@
141139
<ng-template #treeCellTemplate>
142140
<igx-tree-grid-cell
143141
class="igx-grid__td igx-grid__td--fw igx-grid__td--tree-cell igx-grid__td--pinned"
144-
[class.igx-grid__td--edited]="rowID | transactionState:col.field:grid.rowEditable:grid.transactions:grid.pipeTrigger:grid.crudService.cell"
142+
[class.igx-grid__td--edited]="rowID | transactionState:col.field:grid.rowEditable:grid.transactions:grid.pipeTrigger:grid.crudService.cell:grid.crudService.row"
145143
[attr.aria-describedby]="gridID + '_' + col.field | igxStringReplace:'.':'_'"
146144
[class.igx-grid__td--number]="col.dataType === 'number' && col.visibleIndex !== 0"
147145
[ngClass]="col.cellClasses | igxCellStyleClasses:rowData[col.field]:rowData:col.field:viewIndex:grid.pipeTrigger"
148146
[ngStyle]="col.cellStyles | igxCellStyles:rowData[col.field]:rowData:col.field:viewIndex:grid.pipeTrigger"
149147
[level]="treeRow.level"
150148
[expanded]="treeRow.expanded"
151149
[showIndicator]="showIndicator"
152-
[editMode]="col.editable && crudService.isCellInEditByPos(index, col.index)"
150+
[editMode]="col.editable && crudService.targetInEdit(index, col.index)"
153151
[column]="col"
154152
[formatter]="col.formatter"
155153
[row]="this"

0 commit comments

Comments
 (0)