-
Notifications
You must be signed in to change notification settings - Fork 161
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
IgxTreeGrid - Editing #2909
Merged
Merged
IgxTreeGrid - Editing #2909
Changes from 128 commits
Commits
Show all changes
137 commits
Select commit
Hold shift + click to select a range
ac351bc
feat(tree-grid): adding tree grid component #2530
DiyanDimitrov 1c819d8
feat(tree-grid): fixing some style classes #2530
DiyanDimitrov 1fc943f
Merge branch 'master' into ddimitrov/IgxTreeGrid
DiyanDimitrov cf45e3c
feat(tree-grid): fixing test references #2530
DiyanDimitrov 9b5c8a2
Merge branch 'master' into ddimitrov/IgxTreeGrid
DiyanDimitrov f27a008
feat(tree-grid): fixing some more test references #2530
DiyanDimitrov fd53939
Merge branch 'master' into ddimitrov/IgxTreeGrid
DiyanDimitrov a16e48b
feat(tree-grid): fixing lint errors #2530
DiyanDimitrov 1a9121c
Merge branch 'master' into ddimitrov/IgxTreeGrid
DiyanDimitrov 7c94bc9
Merge branch 'master' into ddimitrov/IgxTreeGrid
DiyanDimitrov 9c65956
feat(tree-grid): fixing tree cell selection and editing #2530
DiyanDimitrov ae5e928
feat(tree-grid): fixing row selection #2530
DiyanDimitrov 4c37600
feat(tree-grid): fixing tree column auto-sizing #2530
DiyanDimitrov 13f5e0b
feat(tree-grid): applying some changes to the destroyMap #2530
DiyanDimitrov 358ba06
feat(tree-grid): fixing the CRUD operations #2530
DiyanDimitrov 4e52138
feat(tree-grid): adding tree-cell style #2530
DiyanDimitrov 7bab4ce
feat(tree-grid): add pending to a failing test #2530
DiyanDimitrov 13a87d3
fix(igxTreeGrid): update treegrid API to incorp. editing, #2530
ViktorSlavov 5a96282
feat(tree-grid): moving some grouping specific code #2530
DiyanDimitrov e59f5a8
feat(tree-grid): hiding summaries until implemented #2530
DiyanDimitrov 01636ec
fix(igxGrid): add TreeGridTransaction pipe, update mergeTransactions,…
ViktorSlavov b65c83b
feat(tree-grid): hide exporters for TreeGrid #2530
DiyanDimitrov 88e1add
Merge branch 'master' into ddimitrov/IgxTreeGrid
DiyanDimitrov b9c2552
feat(tree-grid): removing defaultDropArea from TreeGrid #2530
DiyanDimitrov e51ba43
feat(tree-grid): fixing lint errors #2530
DiyanDimitrov d14b5d1
feat(tree-grid): adding configureTestSuite to TreeGrid tests #2530
DiyanDimitrov cb785b3
feat(tree-grid): fixing tree grid sample description #2530
DiyanDimitrov d160e78
feat(tree-grid): adding some missing cofigureTestSuite calls #2530
DiyanDimitrov 5d31112
test(TreeGridCrud): #2530 Removing done from async tests.
gedinakova 7cffb14
test(ColPinning): #2530 Fixed an issue in afterAll();
gedinakova c637264
Merge branch 'master' into ddimitrov/IgxTreeGrid
DiyanDimitrov dce1905
Merge branch 'ddimitrov/IgxTreeGrid' of https://github.com/IgniteUI/i…
DiyanDimitrov 598cdfa
test(Selection): #2530 Made scrolling test async.
gedinakova 06aa156
test(tree-grid): Adding test scenarios #2852
dafo 3372f79
Merge branch 'master' into ddimitrov/IgxTreeGrid
DiyanDimitrov 1e1751a
test(tree-grid): fixing tests #2530
5cf0758
Merge remote-tracking branch 'remotes/origin/ddimitrov/IgxTreeGrid' i…
wnvko f32376d
chore(tree-grid): refactor in update_cell method
wnvko c705273
test(tree-grid): fixing tests #2530
6821fdd
Merge branch 'master' into ddimitrov/IgxTreeGrid
DiyanDimitrov 702338d
test(row editing): Adding more scenarios #2530
dafo 1c90854
Merge branch 'master' into ddimitrov/IgxTreeGrid
DiyanDimitrov cbff4bd
chore(tree-grid): modify dev demos #2530
320c4c6
Merge branch 'ddimitrov/IgxTreeGrid' of https://github.com/IgniteUI/i…
fb68511
Merge branch 'VSlavov/treeGrid-editing' of https://github.com/IgniteU…
jackofdiamond5 39cccbe
Merge branch 'ddimitrov/IgxTreeGrid' into VSlavov/treeGrid-editing
ViktorSlavov 15249b3
fix(igxTreeGrid): transactions do not write to data, #2530
ViktorSlavov d69ce9a
Merge branch 'VSlavov/treeGrid-editing' of https://github.com/IgniteU…
jackofdiamond5 590c7e0
test(row-editing): Added IgxTreeGridFilteringRowEditingComponent #2530
jackofdiamond5 6303c78
Merge branch 'master' into ddimitrov/IgxTreeGrid
gedinakova dcfb225
chore(row-editing): Added component to the declarations array #2530
jackofdiamond5 7e39d0f
test(row-editing): Added a test scenario #2530
jackofdiamond5 f2808f1
test(row-editing): Added a test scenario #2530
jackofdiamond5 08aff0b
test(row-editing): Added test scenarios #2530
jackofdiamond5 6110121
feat(tree-grid): renaming some public API #2530
DiyanDimitrov ef512e3
feat(tree-grid): hiding some tree cell public API #2530
DiyanDimitrov f36d850
feat(tree-grid): renaming expandedLevels to expansionDepth #2530
DiyanDimitrov 2468587
feat(tree-grid): fixing the tree grid sample after renaming #2530
DiyanDimitrov 9c70b14
feat(tree-grid): fixing the tree grid template #2530
DiyanDimitrov 5a78b3f
feat(tree-grid): changing addChildRow to addRow with parentID #2530
DiyanDimitrov 22349fc
test(row-editing): Added a test scenario #2530
jackofdiamond5 4d4cb2c
Merge branch 'ddimitrov/IgxTreeGrid' into VSlavov/treeGrid-editing
ViktorSlavov b2fd887
feat(treegrid): implement properly showing/hiding overlay #2530
Lipata d5de7af
Merge branch 'VSlavov/treeGrid-editing' of https://github.com/IgniteU…
Lipata 49def6d
test(tree-grid): fixing test because of changes in API #2530
5fa43e7
refactor(tree-grid): allow transactions to add rows
wnvko 9bd7944
Merge branch 'VSlavov/treeGrid-editing' of https://github.com/IgniteU…
wnvko f7f613c
feat(tree-grid): submit value when clicking expansion indicator #2530
DiyanDimitrov 51c6510
feat(tree-grid): moving code from api service to tree grid #2530
DiyanDimitrov a1d4302
Merge branch 'master' into ddimitrov/IgxTreeGrid
DiyanDimitrov 047d924
feat(tree-grid): removing indentation from tree row component #2530
DiyanDimitrov 304ef3c
test(tree-grid): row editing collapsing/expanding #2530
Lipata 7acbe9e
Merge branch 'ddimitrov/IgxTreeGrid' into VSlavov/treeGrid-editing
Lipata d8db773
test(C): #2530 rowComponent.indentation to rowComponent.treeRow.level.
gedinakova 862e871
test(row-editing): Tree grid row editing integration tests #2530
PlamenaMiteva 7df8d44
test(TreeGrid): #2530 Changed expandedLevels to expansionDepth.
gedinakova 831bf65
feat(tree-grid): call onFocus in onIndicatorFocus #2530
DiyanDimitrov a78e414
Merge branch 'ddimitrov/IgxTreeGrid' into VSlavov/treeGrid-editing
ViktorSlavov 4cd675e
Merge branch 'master' into ddimitrov/IgxTreeGrid
gedinakova 1bc70ab
feat(tree-grid): fixing row toggle event args #2530
DiyanDimitrov 39f3ebe
fix(igxGrid): close row edit when focusing indicator, #2530
ViktorSlavov 64d43fb
docs(tree-grid): add treeGrid to Changelog #2530
9c794b7
Merge branch 'master' into ddimitrov/IgxTreeGrid
DiyanDimitrov e8b8926
feat(tree-grid): use the default density #2530
DiyanDimitrov 36cae74
test(tree-grid): adding more expand/collapse tests #2530
65ea409
feat(tree-grid): close overlay on collapse/expand #2530
Lipata 5bc7b6e
chore(tree-grid): remove fdescribe #2530
Lipata 03c2318
Merge branch 'ddimitrov/IgxTreeGrid' into VSlavov/treeGrid-editing
Lipata e02a8e9
test(row editing): Updating igxTreeGrid template #2530
dafo ea94ab8
refactor(igxTransaction): make igxTransaction generic
wnvko ba0a220
Merge branch 'VSlavov/treeGrid-editing' of https://github.com/IgniteU…
wnvko b3edcad
test(tree-grid): adding more expansion tests #2530
d2b7a59
Merge branch 'master' into ddimitrov/IgxTreeGrid
DiyanDimitrov a32a5cb
test(tree-grid): removing fdescribe #2530
af5713b
Merge branch 'ddimitrov/IgxTreeGrid' of https://github.com/IgniteUI/i…
8d41218
test(tree-grid): current page should update when collapseAll #2530
dfd2bb2
Merge branch 'master' into ddimitrov/IgxTreeGrid
tachojelev 74b506d
feat(tree-grid): adding cascadeOnDelete input property #2530
DiyanDimitrov ead5940
test(tree-grid): adding tests regarding the "cascadeOnDelete" propert…
90b4359
feat(tree-grid): hiding search for TreeGrid #2530
DiyanDimitrov e29ebdd
feat(Docs): #2530 Adding ///-comments to IgxTreeGridComponent members.
gedinakova 06f203a
Merge branch 'master' into ddimitrov/IgxTreeGrid
gedinakova 20fba6e
Merge branch 'master' into ddimitrov/IgxTreeGrid
tachojelev b2dbdba
Merge branch 'ddimitrov/IgxTreeGrid' into VSlavov/treeGrid-editing
Lipata 20ce5e8
fix(igx-grid): cell exit will exit row, no other code is needed #2530
Lipata 1a2be8e
test(roe editing): Adding tests for row editing + Sorting #2530
dafo 75b6de5
test(row editing): Row editing integration tests #2530
PlamenaMiteva 98737b8
Merge branch 'VSlavov/treeGrid-editing' of https://github.com/IgniteU…
PlamenaMiteva 492473f
refactor(tree-grid): transaction ok for flat data
wnvko fc9994a
Merge branch 'VSlavov/treeGrid-editing' of https://github.com/IgniteU…
wnvko 2417b96
refactor(tree-grid): allow add rows and edit of added rows in hierarc…
wnvko faa9732
Merge branch 'master' into VSlavov/treeGrid-editing
ViktorSlavov ed7aecb
chore(*): fixing lint errors
ViktorSlavov b536720
refactor(tree-grid): refactor delete row logic to include transactions
wnvko fa5ea8b
Merge branch 'VSlavov/treeGrid-editing' of https://github.com/IgniteU…
wnvko 259f8e0
refactor(tree-grid): get_all_data method of tree grid now includes tr…
wnvko 2532d34
Merge remote-tracking branch 'remotes/origin/master' into VSlavov/tre…
wnvko cf6db67
refactor(tree-grid): adding tree data structure to transaction
wnvko df4d3ef
refactor(tree-grid): clearStateForDeletedItems checks if node provided
wnvko 2838309
fix(row-editing): fix delete row in transation
simeonoff c0220a3
refactor(tree-grid): add path to ITreeGridRecord
wnvko 275f8dd
Merge branch 'VSlavov/treeGrid-editing' of https://github.com/IgniteU…
wnvko 590f51e
refactor(tree-grid): add /** @experimental @hidden */ where needed
wnvko c95cf69
Merge remote-tracking branch 'remotes/origin/master' into VSlavov/tre…
wnvko 10f45f8
test(tree-grid): fix row edit tests, #2878
wnvko 75b6f6e
Merge remote-tracking branch 'remotes/origin/master' into VSlavov/tre…
wnvko 7c25eca
refactor(tree-grid): push cascaded flat delete row as pending transac…
wnvko a66445f
chore(lint): more row's new method after property definitions
damyanpetev 964e8ec
test(row-editing): added selection tests and updated filtering tests …
jackofdiamond5 61bbf85
refactor(tree-grid): add useInUndo flag
wnvko df04c08
Merge branch 'VSlavov/treeGrid-editing' of https://github.com/IgniteU…
wnvko 536e195
fix(tree-grid): check row existence #2908
Lipata 161668a
test(tree-grid): fix failing test with missing component in declarati…
wnvko 0ba0f52
fix(igx-grid): pass correct argument #2908
Lipata 6ebcfba
fix(igx-grid): remove unnecessary code #2908
Lipata 423bde9
fix(igx-treegrid): end row edit on expand/collpase #2908
Lipata 31fbbb2
fix(igx-grid): end row edit on expand/collpase #2908
Lipata File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -32,7 +32,7 @@ import { | |
import { Subject } from 'rxjs'; | ||
import { takeUntil, first } from 'rxjs/operators'; | ||
import { IgxSelectionAPIService } from '../core/selection'; | ||
import { cloneArray, isNavigationKey, CancelableEventArgs } from '../core/utils'; | ||
import { cloneArray, isNavigationKey, mergeObjects, CancelableEventArgs } from '../core/utils'; | ||
import { DataType, DataUtil } from '../data-operations/data-util'; | ||
import { FilteringLogic, IFilteringExpression } from '../data-operations/filtering-expression.interface'; | ||
import { IGroupByExpandState } from '../data-operations/groupby-expand-state.interface'; | ||
|
@@ -1633,7 +1633,7 @@ export abstract class IgxGridBaseComponent implements OnInit, OnDestroy, AfterCo | |
/** | ||
* Get transactions service for the grid. | ||
*/ | ||
get transactions() { | ||
get transactions(): TransactionService<Transaction, State> { | ||
return this._transactions; | ||
} | ||
|
||
|
@@ -2062,7 +2062,9 @@ export abstract class IgxGridBaseComponent implements OnInit, OnDestroy, AfterCo | |
this.zone.run(() => { | ||
this.cdr.detectChanges(); | ||
this.verticalScrollContainer.onChunkLoad.emit(this.verticalScrollContainer.state); | ||
this.changeRowEditingOverlayStateOnScroll(this.rowInEditMode); | ||
if (this.rowEditable) { | ||
this.changeRowEditingOverlayStateOnScroll(this.rowInEditMode); | ||
} | ||
}); | ||
} | ||
|
||
|
@@ -2097,7 +2099,7 @@ export abstract class IgxGridBaseComponent implements OnInit, OnDestroy, AfterCo | |
constructor( | ||
private gridAPI: GridBaseAPIService<IgxGridBaseComponent>, | ||
public selection: IgxSelectionAPIService, | ||
@Inject(IgxGridTransaction) private _transactions: TransactionService, | ||
@Inject(IgxGridTransaction) protected _transactions: TransactionService<Transaction, State>, | ||
private elementRef: ElementRef, | ||
private zone: NgZone, | ||
@Inject(DOCUMENT) public document, | ||
|
@@ -2859,26 +2861,17 @@ export abstract class IgxGridBaseComponent implements OnInit, OnDestroy, AfterCo | |
return; | ||
} | ||
|
||
// TODO: should we emit this when cascadeOnDelete is true for each row?!?! | ||
this.onRowDeleted.emit({ data: data[index] }); | ||
|
||
// if there is a row (index !== 0) delete it | ||
// if there is a row in ADD or UPDATE state change it's state to DELETE | ||
if (index !== -1) { | ||
if (this.transactions.enabled) { | ||
const transaction: Transaction = { id: rowId, type: TransactionType.DELETE, newValue: null }; | ||
this.transactions.add(transaction, data[index]); | ||
} else { | ||
this.deleteRowFromData(rowId, index); | ||
} | ||
} else { | ||
this.transactions.add({ id: rowId, type: TransactionType.DELETE, newValue: null }, state.recordRef); | ||
} | ||
|
||
if (this.rowSelectable === true && this.selection.is_item_selected(this.id, rowId)) { | ||
// first deselect row then delete it | ||
if (this.rowSelectable && this.selection.is_item_selected(this.id, rowId)) { | ||
this.deselectRows([rowId]); | ||
} else { | ||
this.checkHeaderCheckboxStatus(); | ||
} | ||
|
||
this.deleteRowFromData(rowId, index); | ||
this._pipeTrigger++; | ||
this.cdr.markForCheck(); | ||
|
||
|
@@ -2892,7 +2885,19 @@ export abstract class IgxGridBaseComponent implements OnInit, OnDestroy, AfterCo | |
* @hidden | ||
*/ | ||
protected deleteRowFromData(rowID: any, index: number) { | ||
this.data.splice(index, 1); | ||
// if there is a row (index !== 0) delete it | ||
// if there is a row in ADD or UPDATE state change it's state to DELETE | ||
if (index !== -1) { | ||
if (this.transactions.enabled) { | ||
const transaction: Transaction = { id: rowID, type: TransactionType.DELETE, newValue: null }; | ||
this.transactions.add(transaction, this.data[index]); | ||
} else { | ||
this.data.splice(index, 1); | ||
} | ||
} else { | ||
const state: State = this.transactions.getState(rowID); | ||
this.transactions.add({ id: rowID, type: TransactionType.DELETE, newValue: null }, state && state.recordRef); | ||
} | ||
} | ||
|
||
/** | ||
|
@@ -3542,7 +3547,7 @@ export abstract class IgxGridBaseComponent implements OnInit, OnDestroy, AfterCo | |
if (this.rowSelectable) { | ||
this.calcRowCheckboxWidth = this.headerCheckboxContainer.nativeElement.clientWidth; | ||
} | ||
if (this.rowEditable && !this.rowEditingOverlay.collapsed) { | ||
if (this.rowEditable) { | ||
this.repositionRowEditingOverlay(this.rowInEditMode); | ||
} | ||
this.cdr.detectChanges(); | ||
|
@@ -3842,7 +3847,7 @@ export abstract class IgxGridBaseComponent implements OnInit, OnDestroy, AfterCo | |
* this.grid.selectRows([1,2,5], true); | ||
* ``` | ||
* @param rowIDs | ||
* @param clearCurrentSelection if true clears the curren selection | ||
* @param clearCurrentSelection if true clears the current selection | ||
* @memberof IgxGridBaseComponent | ||
*/ | ||
public selectRows(rowIDs: any[], clearCurrentSelection?: boolean) { | ||
|
@@ -4319,18 +4324,18 @@ export abstract class IgxGridBaseComponent implements OnInit, OnDestroy, AfterCo | |
this.nativeElement.focus(); | ||
} */ | ||
|
||
private changeRowEditingOverlayStateOnScroll(row: IgxRowComponent<IgxGridBaseComponent>) { | ||
if (!this.rowEditable || this.rowEditingOverlay.collapsed) { | ||
return; | ||
} | ||
if (!row) { | ||
this.toggleRowEditingOverlay(false); | ||
} else { | ||
this.repositionRowEditingOverlay(row); | ||
private changeRowEditingOverlayStateOnScroll(row: IgxRowComponent<IgxGridBaseComponent>) { | ||
if (!this.rowEditable || this.rowEditingOverlay.collapsed) { | ||
return; | ||
} | ||
if (!row) { | ||
this.toggleRowEditingOverlay(false); | ||
} else { | ||
this.repositionRowEditingOverlay(row); | ||
} | ||
} | ||
} | ||
|
||
/** | ||
/** | ||
* @hidden | ||
*/ | ||
public startRowEdit(cell: { | ||
|
@@ -4365,6 +4370,7 @@ export abstract class IgxGridBaseComponent implements OnInit, OnDestroy, AfterCo | |
this.rowEditingOverlay.element.removeEventListener('wheel', this.rowEditingWheelHandler); | ||
this.rowEditPositioningStrategy.isTopInitialPosition = null; | ||
this.rowEditingOverlay.close(); | ||
this.rowEditingOverlay.element.parentElement.style.display = ''; | ||
} | ||
|
||
/** | ||
|
@@ -4385,7 +4391,14 @@ export abstract class IgxGridBaseComponent implements OnInit, OnDestroy, AfterCo | |
public repositionRowEditingOverlay(row: IgxRowComponent<IgxGridBaseComponent>) { | ||
this.configureRowEditingOverlay(row.rowID); | ||
if (!this.rowEditingOverlay.collapsed) { | ||
this.rowEditingOverlay.reposition(); | ||
const rowStyle = this.rowEditingOverlay.element.parentElement.style; | ||
if (row) { | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. There's something not quite right here - if the method accepts a call without a row, the |
||
rowStyle.display = ''; | ||
this.configureRowEditingOverlay(row); | ||
this.rowEditingOverlay.reposition(); | ||
} else { | ||
rowStyle.display = 'none'; | ||
} | ||
} | ||
} | ||
|
||
|
@@ -4412,6 +4425,9 @@ export abstract class IgxGridBaseComponent implements OnInit, OnDestroy, AfterCo | |
return rowChanges ? Object.keys(rowChanges).length : 0; | ||
} | ||
|
||
protected writeToData(rowIndex: number, value: any) { | ||
mergeObjects(this.data[rowIndex], value); | ||
} | ||
/** | ||
* TODO: Refactor | ||
* @hidden | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@simeonoff Can't this be just
text-decoration
so it'd work in IE/Edge too?@StefanIvanov Is red part of the design?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@damyanpetev text-decoration-line is just a property of the shorthand text-decoration. The
line-through
text decoration is not supported in IE and Edge. As to the color being red, I've discussed it with @StefanIvanov before implementing the change.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@simeonoff Despite being the shorthand,
text-decoration: line-through;
is in the CSS1 spec and works just fine even in older IE-s. So unless we need any of the decorations, can we use the shorthand for consistency?