Parcourir la source

fix resizing from start, add test

Adam Shaw il y a 7 ans
Parent
commit
dc00424a8b

+ 2 - 2
src/interactions/EventResizing.ts

@@ -92,7 +92,7 @@ export default class EventDragging {
       mutation = computeMutation(
         initialHit,
         hit,
-        (ev.subjectEl as HTMLElement).classList.contains('.fc-start-resizer'),
+        (ev.subjectEl as HTMLElement).classList.contains('fc-start-resizer'),
         eventInstance.range
       )
     }
@@ -214,7 +214,7 @@ function computeMutation(hit0: Hit, hit1: Hit, isFromStart: boolean, instanceRan
   )
 
   if (isFromStart) {
-    if (dateEnv.add(instanceRange.start, delta) > instanceRange.end) {
+    if (dateEnv.add(instanceRange.start, delta) < instanceRange.end) {
       return { startDelta: delta }
     }
   } else {

+ 2 - 1
tests/automated/event-resize/DayGridEventResizeUtils.js

@@ -2,13 +2,14 @@ import * as EventResizeUtils from './EventResizeUtils'
 import * as DayGridRenderUtils from '../view-render/DayGridRenderUtils'
 
 
-export function resize(startDate, endDate, debug) {
+export function resize(startDate, endDate, fromStart, debug) {
   var el0 = DayGridRenderUtils.getDayEl(startDate)
   var el1 = DayGridRenderUtils.getDayEl(endDate)
 
   return EventResizeUtils.resize(
     el0[0].getBoundingClientRect(),
     el1[0].getBoundingClientRect(),
+    fromStart,
     debug
   )
 }

+ 2 - 2
tests/automated/event-resize/EventResizeUtils.js

@@ -2,12 +2,12 @@ import { getRectCenter, getRectTopLeft, subtractPoints, addPoints } from '../lib
 import * as EventRenderUtils from '../event-render/EventRenderUtils'
 
 
-export function resize(rect0, rect1, debug) {
+export function resize(rect0, rect1, fromStart, debug) {
   var eventEl = EventRenderUtils.getSingleEl()
 
   eventEl.simulate('mouseover') // so that resize handle is revealed
 
-  var resizerEl = eventEl.find('.fc-resizer')
+  var resizerEl = eventEl.find(fromStart ? '.fc-start-resizer' : '.fc-end-resizer')
   var resizerRect = resizerEl[0].getBoundingClientRect()
   var resizerCenter = getRectCenter(resizerRect)
 

+ 31 - 0
tests/automated/event-resize/eventResizableFromStart.js

@@ -0,0 +1,31 @@
+import { resize } from './DayGridEventResizeUtils'
+
+describe('eventResizableFromStart', function() {
+  pushOptions({
+    editable: true,
+    eventResizableFromStart: true
+  })
+
+  describe('for DayGrid', function() {
+    pushOptions({
+      defaultDate: '2019-08-26',
+      defaultView: 'month',
+      events: [
+        { start: '2019-08-27', title: 'all day event' }
+      ]
+    })
+
+    it('allows resizing from start', function(done) {
+      initCalendar()
+
+      resize('2019-08-27', '2019-08-26', true).then(function() {
+        let event = currentCalendar.getEvents()[0]
+
+        expect(event.start).toEqualDate('2019-08-26')
+        expect(event.end).toEqualDate('2019-08-28')
+
+        done()
+      })
+    })
+  })
+})