changed description template scroll behavior after deleting a field
This commit is contained in:
parent
f928527b26
commit
a9468abe61
|
@ -577,6 +577,24 @@ export class DescriptionTemplateEditorComponent extends BaseEditor<DescriptionTe
|
|||
return result;
|
||||
}
|
||||
|
||||
private getNextFieldAfterDeletingTocentry(tce: ToCEntry): any {
|
||||
const sameLevelFields: UntypedFormArray = tce.form?.parent?.parent?.get('fieldSets')?.value;
|
||||
|
||||
let tceIndex = -1;
|
||||
|
||||
//find tce index
|
||||
for (let i = 0; i < sameLevelFields.length; i++) {
|
||||
let section: any = sameLevelFields?.at(i);
|
||||
let sectionId = section?.id;
|
||||
if (sectionId == tce.id) {
|
||||
tceIndex = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return sameLevelFields.at(tceIndex > 0 ? tceIndex-1 : tceIndex+1); //if deleting the first field, find the next one, else find the previous
|
||||
}
|
||||
|
||||
private populateSections(sections: UntypedFormArray, existingNumbering: string, validationRootPath: string): ToCEntry[] {
|
||||
if (sections == null || sections.controls == null || sections.controls.length == 0) { return null; }
|
||||
|
||||
|
@ -906,9 +924,6 @@ export class DescriptionTemplateEditorComponent extends BaseEditor<DescriptionTe
|
|||
}
|
||||
|
||||
this.reaplyValidators();
|
||||
|
||||
//update validity
|
||||
// this.form.controls.sections.updateValueAndValidity();
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -936,7 +951,6 @@ export class DescriptionTemplateEditorComponent extends BaseEditor<DescriptionTe
|
|||
const sections = pages.at(pageIndex).get('sections') as UntypedFormArray;
|
||||
|
||||
//remove section
|
||||
// this._updateSelectedItem(tce);
|
||||
sections.removeAt(sectionIndex);
|
||||
|
||||
//update ordinal
|
||||
|
@ -946,50 +960,6 @@ export class DescriptionTemplateEditorComponent extends BaseEditor<DescriptionTe
|
|||
} else {//NOT FOUND IN FIRST LEVEL CASE
|
||||
|
||||
//LOOK FOR SUBSECTION CASE
|
||||
// let parentSectionIndex = -1;
|
||||
// let sectionIndex = -1;
|
||||
// for (let j = 0; j < pages.length; j++) {
|
||||
// const parentSections = pages.at(j).get('sections') as UntypedFormArray;
|
||||
|
||||
// for (let i = 0; i < parentSections?.length; i++) {
|
||||
// const sections = (pages.at(j).get('sections') as UntypedFormArray).at(i).get('sections') as UntypedFormArray;
|
||||
|
||||
// for (let k = 0; i < sections?.length; i++) {
|
||||
// let section = sections.at(i);
|
||||
// let sectionId = section.get('id').value;
|
||||
|
||||
// if (sectionId == tce.id) {
|
||||
// sectionIndex = k;
|
||||
// parentSectionIndex = i;
|
||||
// pageIndex = j;
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
// let parentFormArray = tce.form.parent as UntypedFormArray;
|
||||
|
||||
// for (let i = 0; i < parentFormArray.length; i++) {
|
||||
// let section = parentFormArray.at(i);
|
||||
|
||||
// if (section.get('id').value == tce.id) {
|
||||
// index = i;
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
// if (sectionIndex >= 0) {
|
||||
// this._updateSelectedItem(tce);
|
||||
// const parentFormArray = (pages.at(pageIndex).get('sections') as UntypedFormArray).at(parentSectionIndex).get('sections') as UntypedFormArray;
|
||||
// parentFormArray.removeAt(sectionIndex);
|
||||
|
||||
// //update odrinal
|
||||
|
||||
// for (let i = 0; i < parentFormArray.length; i++) {
|
||||
// parentFormArray.at(i).get('ordinal').patchValue(i);
|
||||
// }
|
||||
// }
|
||||
|
||||
for (let j = 0; j < pages.length; j++) {
|
||||
const parentSections = pages.at(j).get('sections') as UntypedFormArray;
|
||||
|
@ -1041,7 +1011,6 @@ export class DescriptionTemplateEditorComponent extends BaseEditor<DescriptionTe
|
|||
|
||||
//in case selectedtocentrhy is child of the removed element
|
||||
|
||||
// this.refreshToCEntries();
|
||||
this.onDataNeedsRefresh();
|
||||
this.formGroup.updateValueAndValidity();
|
||||
|
||||
|
@ -1076,6 +1045,7 @@ export class DescriptionTemplateEditorComponent extends BaseEditor<DescriptionTe
|
|||
|
||||
if (this.selectedTocEntry) {
|
||||
|
||||
//.find(e => e.id)
|
||||
if (this.tocEntryIsChildOf(this.selectedTocEntry, tce)) {
|
||||
if (this.selectedTocEntry.type == ToCEntryType.Page) {
|
||||
this.selectedTocEntry = null;
|
||||
|
@ -1105,21 +1075,34 @@ export class DescriptionTemplateEditorComponent extends BaseEditor<DescriptionTe
|
|||
}
|
||||
}
|
||||
|
||||
let sameLevelFields: UntypedFormArray = tce.form?.parent?.parent?.get('fieldSets')?.value;
|
||||
if (sameLevelFields?.length > 1) {
|
||||
|
||||
let parentId = null;
|
||||
if (isFirstLevel) {
|
||||
parentId = tce.form.get('page').value;
|
||||
} else {
|
||||
parentId = tce.form.parent.parent.get('id').value
|
||||
}
|
||||
|
||||
// const parentId = tce.form.parent.parent.get('id').value;
|
||||
if (parentId) {
|
||||
const previousField = this.getNextFieldAfterDeletingTocentry(tce);
|
||||
const tocentries = this.getTocEntries();
|
||||
const parent = this._findTocEntryById(parentId, tocentries);
|
||||
const previousFieldTocEntry = this._findTocEntryById(previousField?.id, tocentries);
|
||||
|
||||
if (parent) {
|
||||
this.selectedTocEntry = parent;
|
||||
this.selectedTocEntry = previousFieldTocEntry;
|
||||
|
||||
} else if (sameLevelFields?.length == 1) {
|
||||
//scroll to parent
|
||||
|
||||
let parentId = null;
|
||||
if (isFirstLevel) {
|
||||
parentId = tce.form.get('page').value;
|
||||
} else {
|
||||
parentId = tce.form.parent.parent.get('id').value
|
||||
}
|
||||
|
||||
if (parentId) {
|
||||
const tocentries = this.getTocEntries();
|
||||
const parent = this._findTocEntryById(parentId, tocentries);
|
||||
|
||||
if (parent) {
|
||||
this.selectedTocEntry = parent;
|
||||
} else {
|
||||
this.selectedTocEntry = null;
|
||||
}
|
||||
} else {
|
||||
this.selectedTocEntry = null;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue