Skip to content

Commit eeb2e6a

Browse files
authored
feat: TT-35 make new entries creation modal panel draggable (#646)
* feat: TT-35 make new entries creation modal panel draggable * feat: TT-35 solve PR comments
1 parent 15cde86 commit eeb2e6a

File tree

6 files changed

+62
-2
lines changed

6 files changed

+62
-2
lines changed

package-lock.json

Lines changed: 41 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
"private": true,
1616
"dependencies": {
1717
"@angular/animations": "^10.2.2",
18+
"@angular/cdk": "^11.2.3",
1819
"@angular/common": "~10.2.2",
1920
"@angular/compiler": "~10.2.2",
2021
"@angular/core": "~10.2.2",

src/app/app.module.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import { DataTablesModule } from 'angular-datatables';
1010
import { StoreModule } from '@ngrx/store';
1111
import { EffectsModule } from '@ngrx/effects';
1212
import { StoreDevtoolsModule } from '@ngrx/store-devtools';
13+
import { DragDropModule } from '@angular/cdk/drag-drop';
1314

1415
import { NgxPaginationModule } from 'ngx-pagination';
1516
import { AutocompleteLibModule } from 'angular-ng-autocomplete';
@@ -144,6 +145,7 @@ const maskConfig: Partial<IConfig> = {
144145
AutocompleteLibModule,
145146
NgxMaterialTimepickerModule,
146147
UiSwitchModule,
148+
DragDropModule,
147149
StoreModule.forRoot(reducers, {
148150
metaReducers,
149151
}),

src/app/modules/time-entries/pages/time-entries.component.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@
6161
</div>
6262
<div class="modal fade" id="editRecordsByDate" tabindex="-1" role="dialog">
6363
<div class="modal-dialog modal-dialog-centered modal-lg" role="document">
64-
<div class="modal-content">
64+
<div class="modal-content" cdkDrag (cdkDragEnded)="resetDraggablePosition($event)">
6565
<div class="modal-header">
6666
<h5 class="modal-title">{{ entryId ? 'Edit Entry' : 'New Entry' }}</h5>
6767
</div>

src/app/modules/time-entries/pages/time-entries.component.spec.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -442,4 +442,17 @@ describe('TimeEntriesComponent', () => {
442442
component.newEntry();
443443
expect(component.entry).toEqual(newEntry);
444444
});
445+
446+
it('When I stop dragging the modal, it should reset Draggable Position', () => {
447+
const dragEndEventStub = {
448+
source: {
449+
_dragRef: {
450+
reset: () => { }
451+
}
452+
}
453+
};
454+
spyOn(dragEndEventStub.source._dragRef, 'reset');
455+
component.resetDraggablePosition(dragEndEventStub);
456+
expect(dragEndEventStub.source._dragRef.reset).toHaveBeenCalled();
457+
});
445458
});

src/app/modules/time-entries/pages/time-entries.component.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,4 +165,7 @@ export class TimeEntriesComponent implements OnInit, OnDestroy {
165165
this.message = `Are you sure you want to delete ${item.activity_name}?`;
166166
this.showModal = true;
167167
}
168-
}
168+
resetDraggablePosition(event: any): void {
169+
event.source._dragRef.reset();
170+
}
171+
}

0 commit comments

Comments
 (0)