Skip to content

Commit da141df

Browse files
committed
Reverting more dnd changes.
1 parent bc82907 commit da141df

File tree

13 files changed

+54
-124
lines changed

13 files changed

+54
-124
lines changed

eform-client/cypress/e2e/NavigationMenu.page.ts

Lines changed: 27 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -8,31 +8,26 @@ export class NavigationMenuPage {
88

99
// Template controls
1010
public collapseTemplates(index: number) {
11-
cy.get('.menuTemplate').eq(index).find('.mat-expansion-indicator').click();
11+
cy.get('#menuTemplate').eq(index).find('.mat-expansion-indicator').click();
1212
cy.wait(2000); // Wait for menu to open/close
1313
}
1414

1515
// Menu Items
1616
public getMenuItems() {
17-
return cy.get('.menu_item');
17+
return cy.get('#menuItems');
1818
}
1919

2020
public getMenuItemsCount() {
21-
return cy.get('.menu_item').its('length');
21+
return cy.get('#menuItems').its('length');
2222
}
2323

2424
// Create operations
2525
public createMenuItemFromTemplate(templateIndex: number) {
2626
const dragHandle = cy.get(`#dragHandle0_${templateIndex}`);
2727
const target = cy.get('mat-card > mat-accordion').first();
28-
29-
dragHandle
30-
.trigger('mousedown', { button: 0, bubbles: true })
31-
.trigger('mousemove', { pageX: 10, pageY: 0 });
32-
33-
target
34-
.trigger('mousemove', { position: 'top' })
35-
.trigger('mouseup', { button: 0, bubbles: true });
28+
29+
dragHandle.trigger('mousedown', { which: 1 });
30+
target.trigger('mousemove', 'top').trigger('mouseup', { force: true });
3631
}
3732

3833
public createCustomLink(data: { securityGroups?: string[]; link: string; translations: string[] }) {
@@ -77,7 +72,7 @@ export class NavigationMenuPage {
7772

7873
// Edit operations
7974
public openEditMenuItem(index: number) {
80-
cy.get('.menu_item').eq(index).find('#editBtn').click();
75+
cy.get('#menuItems').eq(index).find('#editBtn').click();
8176
cy.get('#editItemSaveBtn').should('be.visible');
8277
}
8378

@@ -157,14 +152,14 @@ export class NavigationMenuPage {
157152

158153
// Delete operations
159154
public deleteElementFromMenuItems(index: number) {
160-
cy.get('.menu_item').eq(index).find('#deleteBtn').scrollIntoView().click();
155+
cy.get('#menuItems').eq(index).find('#deleteBtn').scrollIntoView().click();
161156
cy.wait(500);
162157
cy.get('#menuItemDeleteBtn').should('be.visible').click();
163158
}
164159

165160
public deleteElementFromDropdown(dropdownIndex: number, itemIndex: number) {
166-
cy.get('.menu_item').eq(dropdownIndex)
167-
.find('.dropdownBody>*').eq(itemIndex)
161+
cy.get('#menuItems').eq(dropdownIndex)
162+
.find('#dropdownBody>*').eq(itemIndex)
168163
.find('#deleteBtn').scrollIntoView().click();
169164
cy.wait(500);
170165
cy.get('#menuItemDeleteBtn').should('be.visible').click();
@@ -175,27 +170,22 @@ export class NavigationMenuPage {
175170

176171
// Dropdown operations
177172
public collapseMenuItemDropdown(index: number) {
178-
cy.get('.menu_item').eq(index).find('.mat-expansion-indicator').click();
173+
cy.get('#menuItems').eq(index).find('.mat-expansion-indicator').click();
179174
}
180175

181176
public getDropdownBodyChilds(dropdownIndex: number) {
182-
return cy.get('.menu_item').eq(dropdownIndex).find('.dropdownBody>*');
177+
return cy.get('#menuItems').eq(dropdownIndex).find('#dropdownBody>*');
183178
}
184179

185180
public dragTemplateOnElementInCreatedDropdown(templateIndex: number, dropdownIndex: number) {
186181
this.collapseTemplates(0);
187-
182+
188183
const dragHandle = cy.get(`#dragHandle0_${templateIndex}`);
189-
const dropdownBody = cy.get('.dropdownBody').eq(dropdownIndex);//.find('.dropdownBody');
190-
191-
dragHandle
192-
.trigger('mousedown', { button: 0, bubbles: true })
193-
.trigger('mousemove', { pageX: 10, pageY: 0 });
194-
195-
dropdownBody
196-
.trigger('mousemove', { position: 'center' })
197-
.trigger('mouseup', { button: 0, bubbles: true });
184+
const dropdownBody = cy.get('#menuItems').eq(dropdownIndex).find('#dropdownBody');
198185

186+
dragHandle.trigger('mousedown', { which: 1 });
187+
dropdownBody.trigger('mousemove').trigger('mouseup', { force: true });
188+
199189
cy.wait(500);
200190
this.collapseTemplates(0);
201191
}
@@ -205,10 +195,10 @@ export class NavigationMenuPage {
205195
indexDropdownInMenu: number;
206196
translations_array: string[];
207197
}) {
208-
cy.get('.menu_item').eq(data.indexDropdownInMenu)
209-
.find('.dropdownBody>*').eq(data.indexChildDropdown)
198+
cy.get('#menuItems').eq(data.indexDropdownInMenu)
199+
.find('#dropdownBody>*').eq(data.indexChildDropdown)
210200
.find('#editBtn').click();
211-
201+
212202
cy.get('#editItemSaveBtn').should('be.visible');
213203

214204
data.translations_array.forEach((translation, idx) => {
@@ -228,14 +218,9 @@ export class NavigationMenuPage {
228218
fromHandle.scrollIntoView();
229219
cy.wait(2000);
230220

231-
fromHandle
232-
.trigger('mousedown', { button: 0, bubbles: true })
233-
.trigger('mousemove', { pageX: 10, pageY: 0 });
234-
235-
toHandle
236-
.trigger('mousemove', { position: 'center' })
237-
.trigger('mouseup', { button: 0, bubbles: true });
238-
221+
fromHandle.trigger('mousedown', { which: 1, force: true });
222+
toHandle.trigger('mousemove', { force: true });
223+
toHandle.trigger('mouseup', { force: true });
239224
cy.wait(2000);
240225
}
241226

@@ -273,18 +258,14 @@ export class NavigationMenuPage {
273258
}
274259

275260
public resetMenu() {
276-
// cy.wait(1100);
277-
// cy.wait(1200);
278-
// cy.wait(1400);
261+
cy.wait(1100);
262+
cy.wait(1200);
263+
cy.wait(1400);
279264
cy.get('#resetBtn').scrollIntoView().click();
280265
cy.wait(500);
281-
cy.intercept('POST', '**/api/navigation-menu/reset').as('resetMenu');
282-
cy.intercept('GET', '**/api/navigation-menu').as('getMenuAfterReset');
283266
cy.get('#deleteWorkerDeleteBtn').should('be.visible').click();
284-
cy.wait('@resetMenu', { timeout: 30000 });
285-
cy.wait('@getMenuAfterReset', { timeout: 30000 });
286267
// Note: Tests should intercept POST /api/navigation-menu/reset and wait for it instead
287-
// cy.wait(500);
268+
cy.wait(500);
288269
}
289270

290271
// Helper methods - DEPRECATED: Use API intercepts in tests instead

eform-client/cypress/e2e/c/subheader.spec.cy.ts

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,8 @@ describe('Subheader test', function () {
1515
cy.wait('@loadMenu', { timeout: 30000 });
1616

1717
cy.get('#mat-expansion-panel-header-2 > .mat-expansion-indicator').click();
18-
cy.get('#dragHandle0_0')
19-
.trigger('mousedown', { button: 0, bubbles: true })
20-
.trigger('mousemove', { pageX: 10, pageY: 0 });
21-
cy.get('mat-card > mat-accordion')
22-
.trigger('mousemove', { position: 'top' })
23-
.trigger('mouseup', { button: 0, bubbles: true });
18+
cy.get('#dragHandle0_0').trigger('mousedown', {which: 1});
19+
cy.get('mat-card > mat-accordion').trigger('mousemove', 'top').trigger('mouseup', {force: true});
2420
cy.get('#mat-expansion-panel-header-2 > .mat-expansion-indicator').click();
2521

2622
cy.intercept('POST', '**/api/navigation-menu').as('saveMenu');

eform-client/src/app/modules/advanced/modules/navigation-menu/components/menu-custom/navigation-menu-custom/navigation-menu-custom.component.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<mat-expansion-panel class="mt-2" class="menuTemplate">
1+
<mat-expansion-panel class="mt-2" id="menuTemplate">
22
<mat-expansion-panel-header>
33
<mat-panel-title>
44
{{ 'Custom' | translate }}
Original file line numberDiff line numberDiff line change
@@ -1,19 +0,0 @@
1-
.cdk-drag-preview {
2-
box-sizing: border-box;
3-
border-radius: 4px;
4-
box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2),
5-
0 8px 10px 1px rgba(0, 0, 0, 0.14),
6-
0 3px 14px 2px rgba(0, 0, 0, 0.12);
7-
}
8-
9-
.cdk-drag-animating {
10-
transition: transform 250ms cubic-bezier(0, 0, 0.2, 1);
11-
}
12-
13-
.cdk-drop-list-dragging .cdk-drag:not(.cdk-drag-placeholder) {
14-
transition: transform 250ms cubic-bezier(0, 0, 0.2, 1);
15-
}
16-
17-
.dragula-dropdown {
18-
min-height: 50px;
19-
}

eform-client/src/app/modules/eforms/eform-visual-editor/components/eform-visual-editor-elements/checklist/visual-editor-checklist/visual-editor-checklist.component.html

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,9 +63,9 @@
6363
</mat-card-header>
6464
<div class="card-body">
6565
<div
66-
cdkDropList
67-
[cdkDropListData]="checklist.fields"
68-
(cdkDropListDropped)="dropNestedField($event)"
66+
dragula="FIELDS"
67+
[dragulaModel]="checklist.fields"
68+
(dragulaModelChange)="onNestedFieldPositionChanged($event)"
6969
id="fields_{{ checklistIndex }}"
7070
class="editor-fields"
7171
>
@@ -74,7 +74,6 @@
7474
</div>-->
7575
<app-visual-editor-field
7676
*ngFor="let field of checklist.fields; let fieldIndex = index"
77-
cdkDrag
7877
[fieldIndex]="fieldIndex"
7978
[field]="field"
8079
[checklistRecursionIndexes]="checklistRecursionIndexes"

eform-client/src/app/modules/eforms/eform-visual-editor/components/eform-visual-editor-elements/checklist/visual-editor-checklist/visual-editor-checklist.component.ts

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import { Component, EventEmitter, Input, OnDestroy, OnInit, Output, inject } from '@angular/core';
2-
import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';
32
import {
43
EformVisualEditorFieldsDnDRecursionModel,
54
EformVisualEditorFieldModel,
@@ -128,14 +127,6 @@ export class VisualEditorChecklistComponent implements OnInit, OnDestroy {
128127
});
129128
}
130129

131-
dropNestedField(event: CdkDragDrop<EformVisualEditorFieldModel[]>) {
132-
if (event.previousIndex !== event.currentIndex) {
133-
moveItemInArray(this.checklist.fields, event.previousIndex, event.currentIndex);
134-
this.checklist.fields = [...this.checklist.fields]; // Create new reference for change detection
135-
this.onNestedFieldPositionChanged(this.checklist.fields);
136-
}
137-
}
138-
139130
onEditNestedField(fieldIndex: number, field: EformVisualEditorFieldModel) {
140131
this.editNestedField.emit({
141132
checklistRecursionIndexes: this.checklistRecursionIndexes,

eform-client/src/app/modules/eforms/eform-visual-editor/components/eform-visual-editor-elements/field/visual-editor-field-modal/visual-editor-field-modal.component.html

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,10 +85,9 @@ <h3 mat-dialog-title>{{ (isFieldSelected ? 'Edit field' : 'New field') | transla
8585
/>
8686
</mat-form-field>
8787
<formatting-text-editor
88-
contenteditable="true"
8988
[(value)]="translation.description"
9089
[placeholder]="'Description' | translate"
91-
id="fieldDescriptionTranslation_{{ translationIndex }}"
90+
id="newFieldDescriptionTranslation_{{ translationIndex }}"
9291
>
9392
</formatting-text-editor>
9493
</div>

eform-client/src/app/modules/eforms/eform-visual-editor/components/eform-visual-editor-elements/field/visual-editor-field/visual-editor-field.component.html

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
<mat-icon
1414
class="dragula-handle align-middle"
1515
style="cursor: pointer"
16-
[id]="fieldIsNested ? 'moveNestedFieldBtn'+fieldIndex : 'moveFieldBtn'+fieldIndex"
16+
[id]="fieldIsNested ? 'moveNestedFieldBtn' : 'moveFieldBtn'"
1717
>
1818
menu
1919
</mat-icon>
@@ -92,14 +92,13 @@
9292
*ngIf="field.fieldType == fieldTypes.FieldGroup"
9393
class="field-group-container section-collapse pl-3 nested-fields"
9494
[ngClass]="{'p-1 pt-3' : !field.collapsed, 'collapsed' : field.collapsed}"
95-
cdkDropList
96-
[cdkDropListData]="field.fields"
95+
dragula="FIELDS"
96+
[dragulaModel]="field.fields"
9797
id="nestedFields"
98-
(cdkDropListDropped)="dropNestedField($event)"
98+
(dragulaModelChange)="onFieldPositionChangedOnNestedField($event)"
9999
>
100100
<app-visual-editor-field
101101
*ngFor="let nestedField of field.fields; let i = index"
102-
cdkDrag
103102
[ngClass]="{'collapsed' : field.collapsed}"
104103
[field]="nestedField"
105104
[checklistRecursionIndexes]="checklistRecursionIndexes"

eform-client/src/app/modules/eforms/eform-visual-editor/components/eform-visual-editor-elements/field/visual-editor-field/visual-editor-field.component.ts

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import { Component, EventEmitter, Input, OnDestroy, OnInit, Output, inject } from '@angular/core';
2-
import { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';
32
import {
43
EformFieldTypesEnum,
54
} from 'src/app/common/const';
@@ -165,14 +164,6 @@ export class VisualEditorFieldComponent implements OnInit, OnDestroy {
165164
});
166165
}
167166

168-
dropNestedField(event: CdkDragDrop<EformVisualEditorFieldModel[]>) {
169-
if (event.previousIndex !== event.currentIndex) {
170-
moveItemInArray(this.field.fields, event.previousIndex, event.currentIndex);
171-
this.field.fields = [...this.field.fields]; // Create new reference for change detection
172-
this.onFieldPositionChangedOnNestedField(this.field.fields);
173-
}
174-
}
175-
176167
get fieldTranslationAndType() {
177168
const type = this.fieldTypeTranslation(this.field.fieldType);
178169
let strForReturn = this.getTranslation;

eform-client/src/app/modules/eforms/eform-visual-editor/components/eform-visual-editor-page/eform-visual-editor-container/eform-visual-editor-container.component.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@
9494
(addNewNestedField)="showFieldModal($event)"
9595
(deleteNestedField)="showDeleteFieldModal($event)"
9696
(editNestedField)="showFieldModal($event)"
97+
[ngClass]="{ 'no-drag': !checklist.collapsed }"
9798
(nestedFieldPositionChanged)="
9899
onNestedFieldPositionChanged($event)
99100
"

0 commit comments

Comments
 (0)