浏览代码

tweaks and comments to external dnd

Adam Shaw 7 年之前
父节点
当前提交
5a6b388013

+ 3 - 6
demos/external-dragging-builtin.html

@@ -19,12 +19,9 @@
     );
 
     eventEls.forEach(function(eventEl) {
-      new FullCalendar.Draggable({
-        el: eventEl,
-        event: {
-          title: eventEl.innerText.trim(),
-          stick: true
-        }
+      new FullCalendar.Draggable(eventEl, {
+        title: eventEl.innerText.trim(),
+        stick: true
       });
     });
 

+ 5 - 0
src/interactions-external/Draggable.ts

@@ -4,6 +4,11 @@ import { DragMetaInput } from '../structs/drag-meta'
 
 // TODO: somehow accept settings for FeaturefulElementDragging
 
+/*
+Makes an element (that is *external* to any calendar) draggable.
+Can pass in data that determines how an event will be created when dropped onto a calendar.
+Leverages FullCalendar's internal drag-n-drop functionality WITHOUT a third-party drag system.
+*/
 export default class ExternalDraggableEvent {
 
   dragging: FeaturefulElementDragging

+ 7 - 6
src/interactions-external/InferredElementDragging.ts

@@ -6,12 +6,11 @@ export interface InferredElementDraggingSettings {
   mirrorSelector?: string
 }
 
-/* emits:
-- pointerdown
-- dragstart
-- dragmove
-- pointerup
-- dragend
+/*
+Detects when a *THIRD-PARTY* drag-n-drop system interacts with elements.
+The third-party system is responsible for drawing the visuals effects of the drag.
+This class simply monitors for pointer movements and fires events.
+It also has the ability to hide the moving element (the "mirror") during the drag.
 */
 export default class InferredElementDragging extends ElementDragging {
 
@@ -40,6 +39,7 @@ export default class InferredElementDragging extends ElementDragging {
     this.emitter.trigger('pointerdown', ev)
 
     if (!this.shouldIgnoreMove) {
+      // fire dragstart right away. does not support delay or min-distance
       this.emitter.trigger('dragstart', ev)
     }
   }
@@ -54,6 +54,7 @@ export default class InferredElementDragging extends ElementDragging {
     this.emitter.trigger('pointerup', ev)
 
     if (!this.shouldIgnoreMove) {
+      // fire dragend right away. does not support a revert animation
       this.emitter.trigger('dragend', ev)
     }
   }

+ 5 - 2
src/interactions-external/generic-dragging.ts

@@ -1,7 +1,10 @@
 import ExternalElementDragging from './ExternalElementDragging'
 import InferredElementDragging, { InferredElementDraggingSettings } from './InferredElementDragging'
 
-// TODO: change file
+/*
+The public API to the system that bridges third-party drag-n-drop systems with FullCalendar.
+This class is instantiated as a singleton.
+*/
 
 export class GenericDragging {
 
@@ -30,4 +33,4 @@ export class GenericDragging {
 
 }
 
-export default new GenericDragging()
+export default new GenericDragging() // singleton