forked from jsplumb/jsplumb
-
Notifications
You must be signed in to change notification settings - Fork 0
/
changelog.txt
1356 lines (874 loc) · 56.7 KB
/
changelog.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
* 1.6.2
BACKWARDS COMPATIBILITY
- 1.6.2 has improved behaviour for determining what element to use as the Container. Previous 1.6.x versions
defaulted to the document body, with the docs strongly recommending you set a Container. From 1.6.2, if there
is no Container set when the user makes a first call to either addEndpoint, makeSource, makeTarget or connect, the
Container is set to be the offsetParent of either the element being configure (in the case of `addEndpoint`, `makeSource` and `makeTarget`), or the source element, for the `connect` method.
- a consequence of this is that you can no longer manipulate Defaults.Container manually. Your changes will be ignored;
Defaults.Container is only referenced in the constructor or in the `importDefaults` method. If you need access to
the current Container, use the `getContainer` method.
- the order of parameters to the function `jsPlumbInstance.on` has changed, in the case that you are passing 4 parameters
and using it for event delegation. Previously, the order was `(element, filter, eventId, callback)` and now the order
is `(element, eventId, filter, callback)`. This brings it into line with the order of parameters in jQuery's `on`
function. It is not very likely this will affect you; `jsPlumbInstance.on` is used internally, mostly (although
it can be used to register events independently of jsPlumb if you want to use it).
NEW FUNCTIONALITY
- The Container inferencing discussed above is both a backwards compatibility issue and also new functionality!
- added setContainer, to allow you to move an entire jsPlumb UI to some new parent
- added getContainer, to allow you to retrieve the current Container.
ISSUES
207 - problem with absolute overlays
211 - setVisible(true) on hidden overlay whose connection has moved causes the overlay to repaint in the wrong place
* 1.6.1
BACKWARDS COMPATIBILITY
No issues
NEW FUNCTIONALITY
- Better handling of zooming in vanilla jsPlumb.
ISSUES
206 Fix documentation error about jsPlumb.Defaults.Endpoints
* 1.6.0
BACKWARDS COMPATIBILITY
- Connection's `mouseexit` event was renamed to `mouseleave`.
- There is no support for the canvas renderer in jsPlumb 1.6.0.
- The way in which library adapters inject their functionality into jsPlumb has changed. This will affect very few people; contact jsPlumb if you need help with this.
- All elements added by jsPlumb are appended to the current "Container", which defaults to the document body. This differs
from previous versions, in which if there was no Container set then jsPlumb would append elements to the parent of a connection's source endpoint. For this reason it is now more than ever recommended that you set a Container.
- The `container` parameter on `addEndpoint` or `connect` calls is no longer supported.
NEW FUNCTIONALITY
- introduced a version of jsPlumb ("Vanilla") that does not depend on jQuery, YUI or MooTools.
- added support (in Vanilla jsPlumb) for multiple element dragging
- added support (in Vanilla jsPlumb) for multiple drag/drop scopes
- add setSource/setTarget methods, allowing you to retarget a Connection programmatically.
ISSUES
91 - Old ID is being used on events after setId
143 - SVG gradient fails when page url already contains a hash
153 - jsPlumb.animate no longer supports jQuery selectors
157 - connectionMoved event not fired (when using makeTarget)
162 - Connector 'Flowchart' occurs an error.
164 - makeSource fails when used in conjunction with uniqueEndpoint
173 - jsPlumb.setDraggable([element_id],false); fails
177 - Flowchart straight Line
202 - spurious mouse events in connector with outline
203 - hoverClass on endpoints doesn't work
MISCELLANEOUS
- events now have "this" set correctly
- added qunit tests and load tests for Vanilla, YUI and Mootools versions
- various YUI and Mootools methods were upgraded to support passing in an
element list (setId for one)
- reduced the amount of functionality that is delegated to a support library
- rewrote the way support libraries are integrated
* 1.5.5
ISSUES
138 - allow for connection type to be derived from connection params AND endpoint params.
* 1.5.4
ISSUES
105 - Blank endpoint cleanup fails
116 - Assign anchors wont connect
117 - Assign anchors fail on source
127 - Docs on making elements draggable should note required CSS
128 - expose original event on connectionDragStop callback
129 - connection event fired twice by makeTarget with parent option.
NEW FUNCTIONALITY
- "Assign" anchors now work with the makeSource method.
MISCELLANEOUS
- fixed an issue causing SVG gradients to fail when a BASE tag is present in the document.
* 1.5.3
BACKWARDS COMPATIBILITY
- The fix for issue 112 involved making a change to the circumstances under which a `connectionDetached`
event is fired. When you drag the source or target of an existing connection to some other endpoint,
`connectionDetached` is no longer fired. Instead, a `connectionMoved` event is fired, containing the
connection that was moved, the index of the endpoint that changed (0 for source, 1 for target), and
the original and new source and target endpoints.
ISSUES
77 - Endpoint types should support Anchor parameter
88 - reinstate labelStyle parameter on Label overlay.
90 - overlay setVisible not working (SVG/VML)
95 - Nested element positions not updated
100 - add setParent function
101 - JS error when detaching connection during connection callback
103 - IE8: connector hide does not hide overlays or background lines
108 - strange anchor orientation behaviour
107 - remove the necessity to set isSource/isTarget in order to make an endpoint draggable
109 - Dropping new connections on overlapping elements leads to crash after connection is deleted
111 - Absolute positioned arrow in wrong location
112 - Deleting a connection after changing its source endpoint causes failure.
113 - IE8 - state machine - loops are not displayed
NEW FUNCTIONALITY
- a setParent function was added. jsPlumb changes the parent of some element and
updates its internal references accordingly (issue 100).
- Endpoint types now support the anchor parameter (issue 77)
- The labelStyle parameter on Label overlays has made a comeback (issue 88). The argument went
along the lines of it being useful if you wanted to programmatically generate a label style.
- jsPlumb now automatically updates the internal offsets of some element that has draggable
children (obviating the need for you to call `recalculateOffsets` yourself).
- when making a programmatic connection to an endpoint that was not marked isSource:true or isTarget:true,
if the connection is detachable then the endpoint is made draggable, in order to allow users to
drag the connection to detach it. Connections dragged off of source or target endpoints in this way can
be dropped back onto their original endpoint or onto other endpoints with the same scope, but you cannot
subsequently drag a new connection from an endpoint that has been made draggable by this method.
MISCELLANEOUS
- an issue was fixed that was preventing the ability to supply a dynamic anchor with parameters, eg
[ [ [ 1,0,0,1], [1,1,1,1] ], { selector:function() { ... } } ]
* 1.5.2
BACKWARDS COMPATIBILITY
- Issue 86, fixed in 1.5.2, changes the priority in which parameters are applied to
a connection. The documentation has always stated that source takes priority, but in fact
the code was the other way round, with target taking priority. Now source does take priority.
ISSUES
84 - jsPlumb 1.5.1 Arrow Disappears on IE8 when connector is straight
85 - dragging target endpoints created by makeTarget not working
86 - Connection "parameters" override order
MISCELLANEOUS
- An issue that caused the SVG renderer to paint overlays before the connector was
ready when the types API was used was also fixed.
* 1.5.1
ISSUES
81 - Uncaught TypeError: Cannot read property 'uuid' of null
82 - Blank endpoint doesn't cleanup properly
83 - for connections made with makeTarget originalEvent is not set
* 1.5.0
BACKWARDS COMPATIBILITY
- many places in jsPlumb that used to use library-specific selectors for elements now use
pure DOM elements. It is best to re-select any elements you are getting from a jsPlumb
object, even if you supplied them as a selector, as jsPlumb will have unwrapped your
selector into a DOM element.
- Endpoint.isConnectedTo method removed. it didnt work properly as it only checked for connections
where the endpoint was the source.
- "jsPlumbConnection" event, which was deprecated, has been removed. use "connection".
- "jsPlumbConnectionDetached" event, which was deprecated, has been removed. use "connectionDetached".
- makeTargets method removed from jsPlumb. you can pass an array or selector to makeTarget.
- makeSources method removed from jsPlumb. you can pass an array or selector to makeSource.
- jsPlumb.detach no longer supports passing in two elements as arguments. Use instead
either
jsPlumb.detach({source:someDiv, target:someOtherDiv});
or
jsPlumb.select({source:someDiv, target:someOtherDiv}).detach();
- jsPlumb.addClass removed
- jsPlumb.removeClass removed
- jsPlumb.hasClass removed
for each of those, if you absolutely need to, you can use jsPlumb.CurrentLibrary.****Class.
but you can of course just use your library's own methods.
NEW FUNCTIONALITY
- jsPlumb.remove takes a third argument, defaulting to true, saying whether ??
- setSuspendDrawing returns the value of suspendDrawing _before_ the call was made.
- Endpoint.setElement works properly now.
ISSUES
27 - investigate why a new connection is created after drag
37 - .addClass() not working - IE8
39 - problem about connectionDrag event
49 - Calling detachEveryConnection winds up calling repaintEverything once for each endpoint
51 - arrow overlay orientation at location 1 on flowchart connectors
54 - Memory Leak Issue
57 - DOMException while dragging endpoints
60 - flowchart connector start position wrong
63 - Flowchart midpoint=0 is ignored
65 - Uncaught exception in IE 8
69 - jsPlumb.detach(connection) is really slow with larger graphs
72 - Drag and drop connections fail to work correctly when using makeTarget
75 - changing continuous anchor is ignored
76 - jsPlumb doesn't work in XHTML documents
* 1.4.1
BACKWARDS COMPATIBILITY
- Flowchart connectors reduce the stub parameter automatically when the two elements are closer than the sum of the two stubs. This can be overridden by setting the alwaysRespectStubs parameter to true on the Flowchart connector definition.
NEW FUNCTIONALITY
- Flowchart connectors reduce the stub parameter automatically when the two elements are closer than the sum of the two stubs. This can be overridden by setting the alwaysRespectStubs parameter to true on the Flowchart connector definition.
ISSUES (note: these are GitHub issues. Google Code is no longer in use)
45 - passing empty array to addEndpoint fails
43 - connections flickering with continuous anchors
42 - error in isObject method in IE8 causes registered connection types to fail in an obscure way.
33 - allow lineWidth/outlineWidth to be specified as strings
30 - Error after removing endpoint from deleted element
31 - Repaint everything needs to be called twice with 1.4.0
23 - arrow overlay on Bezier connector placed incorrectly
* 1.4.0
BACKWARDS COMPATIBILITY
- Flowchart connectors do not support minStubLength anymore. Use 'stub'.
- Perimeter anchor names now have a capitalised first letter. 'circle' is now 'Circle', for instance. This brings their naming convention
into line with the various other names used throughout jsPlumb.
- jsPlumb.Defaults.ConnectorZIndex was removed. Use CSS classes for z index.
- Connection.setZIndex was removed. Use CSS classes for z index.
- removeConnection method removed from Endpoint. use 'detach' instead.
- Connection does not expose 'connector' anymore. Use Connection.getConnector()
- Connection does not expose 'canvas' anymore. Use Connection.getConnector().canvas
- support for tooltip has been removed.
- 'toggle' method on jsPlumb removed. use 'toggleVisible'
- 'delete' method on jsPlumb.selectEndpoints(..) return type renamed to 'remove' (IE parsing issue)
NEW FUNCTIONALITY
- jsPlumb now registers as an AMD module if an AMD loader is found in the page. Two registrations are made:'jsplumb' for the static instance, and 'jsplumbinstance', for a new instance.
- internally, all Connectors are now composed of a set of Segments, of which there are three types - Bezier, Straight, and Arc.
- return value from jsPlumb.select and jsPlumb.selectEndpoints now supports the 'setType' method.
- setType/addType functions now support parameterised types.
- added 'remove' function to jsPlumb: removes an element from the DOM and its associated
Endpoints and their Connections.
- flowchart connectors support a 'cornerRadius' parameter, which allows you
to specify a radius for curved corners. default is 0.
- Straight connectors now support the 'stub' parameter.
- added 'addClass' and 'removeClass' methods to Connection and Endpoint, and to the return value of
jsPlumb.select and jsPlumb.selectEndpoints.
- added 'bind' and 'unbind' to the return value of jsPlumb.select and jsPlumb.selectEndpoints.
- add 'hoverClass' member to jsPlumb; this is set when hovering over a Connection or Endpoint. default is
'_jsPlumb_hover'. also set on all overlays for a connection or endpoint.
- jsPlumb.select supports a 'connections' parameter, which is an existing list of Connections.
- added setSuspendEvents to Connection, Endpoint and jsPlumb.select/jsPlumb.selectEndpoints return values.
- Continuous anchors now support a 'faces' constructor parameter, eg:
anchor:["Continuous", {faces:["top", "bottom"] } ],
There are four instances of this already prepared:
"ContinuousLeft"
"ContinuousTop"
"ContinuousRight"
"ContinuousBottom"
- added 'Top', 'Right', 'Bottom' and 'Left' anchor aliases for 'TopCenter', 'RightMiddle', 'BottomCenter' and 'LeftMiddle'
- added support for containment in YUI (supply a selector as the value for a 'constrain2node' or 'containment' parameter to jsPlumb.draggable)
- added 'setAnchor' method to Endpoint
- added 'setAnchor' to chainable methods from selectEndpoints(..) function
- jsPlumb.connect now accepts an 'events' object for registration of event handlers at connection creation (rather than having to bind them afterwards)
- Endpoint methods like makeTarget, makeSource, addEndpoint now accept an 'events' object
for registration of event handlers.
- makeSource now supports "parent" as value of parent parameter. previously this had to be
a selector or DOM element.
- added _jsPlumb_endpoint_connected class to Endpoints that have one or more connection
- added _jsPlumb_endpoint_full class to Endpoints that are full
- added _jsPlumb_dragging class to connections that are currently being dragged
- added _jsPlumb_element_dragging to connections (and their endpoints) whose source or
target element is being dragged
- added _jsPlumb_endpoint_drop_allowed class to endpoints when a connection is hovering
over them and a drop would be allowed.
- added _jsPlumb_endpoint_drop_forbidden class to endpoints when a connection is hovering
over them and a drop would not be allowed.
- added checkDropAllowed interceptor
- added the ability to associate a css class with an anchor (the class is added to the anchor's endpoint and to its associated element, with a prefix. see the docs)
- added "mousedown" and "mouseup" events to endpoints and connections
- jsPlumb now throws exceptions if you request an anchor, endpoint or connector type
that does not exist. this can be suppressed (although why you would want to do this i'm
not sure) with the DoNotThrowErrors default setting.
ISSUES
262 - retrieve path from flowchart connector
283 - Firefox: SVG line repaint issues
289 - JS errors after dropping a target endpoint on a source
290 - setId doesn't work.
292 - fire connectionDrag event when dragging a new connection.
296 - docs refer to 'removeEveryEndpoint'; they should refer to 'deleteEveryEndpoint'
297 - cannot use connection types
300 - typo in unmakeSource
302 - removeAllEndpoints not functioning correctly
303 - mixture of continuous and static anchors causes paint issues
305 - Add pointer-events to the properties of connection
310 - Endpoint does not honor the cssClass option
311 - add options to Continuous anchor
312 - jsPlumb mouseenter event fails with jQuery 1.9.0 (Firefox)
322 - Connector gap option for source and target
324 - beforeDetach firing too many times
330 - Change endpoint anchor
342 - ensure endpoints are cleared from anchor lists on deleteEndpoint call
MISCELLANEOUS
- jsPlumb overlay class and custom overlay class now set correctly on VML arrow overlays
- couple of fixes for jsPlumbUtil merge function
* 1.3.16
NEW FUNCTIONALITY
- Flowchart connectors now support configurable 'midpoint'. This can be useful for those cases
where you have programmatic control of the layout.
- recalculateOffsets method added. This lets you tell jsPlumb that the internal layout of some element that
has nested endpoints has changed, and that it should recalculate the offset of each endpoint with respect to
the element's origin.
ISSUES
284 - JS errors when dragging connections
285 - occasional error thrown by getOffset (dupe of 284)
286 - Bounding box of connections does not extend to include arrow
MISCELLANEOUS
- fixed paint issue with arrows in reverse direction on Straight connector.
* 1.3.15
BACKWARDS COMPATIBILITY
- 'removeEveryEndpoint' method removed from jsPlumb. use 'deleteEveryEndpoint'.
- 'removeEndpoint' method removed from jsPlumb. use 'deleteEndpoint'.
NEW FUNCTIONALITY
- added 'ReattachConnections' default. instructs jsPlumb whether or not to automatically reattach connections dragged off and dropped via the mouse.
- added setReattach/isReattach methods to Connection
- added setReattach/isReattach methods to jsPlumb.select handler
ISSUES FIXED
279 - deleteEndpointsOnDetach flag ignored when Endpoints assigned to an element previously configured with makeSource/makeTarget
280 - cannot drop connection dragged by source back onto its original source
MISCELLANEOUS
- fixed potential infinite loop issue related to makeSource function.
* 1.3.14
BACKWARDS COMPATIBILITY
- setRepaintFunction method removed from jsPlumb
- unload function removed. it was pointless.
- when providing a type to a constructor, what used to be an implicit setType call is now an addType call. it used to be that
the type would remove any additional overlays you supplied with the constructor, because that's what setType does. but
it was pointed out to me that addType was perhaps a little more accomodating.
NEW FUNCTIONALITY
- 'perimeter' anchors now take an optional 'rotation' parameter. This should be supplied in degrees, not radians.
MISCELLANEOUS
- This release sees the removal of some overzealous performance enhancements added to 1.3.13, which affected particular
usages of the repaintEverything function. Their removal does not seem to have unduly affected performance though.
- fix for nested draggables causing extra ids to be added throughout the DOM
* 1.3.13
NEW FUNCTIONALITY
- 'perimeter' anchors. These are anchors that follow the path of the perimeter of some shape.
- performance enhancement for painting.
MISCELLANEOUS
- Endpoint was ignoring jsPlumb default "Anchor" property.
ISSUES RESOLVED
271 - add perimeter anchors
273 - nested endpoint ignored by dragging
274 - jsPlumb.connect does not register endpoints with drag manager
* 1.3.12
NEW FUNCTIONALITY
- added the concept of Connection and Endpoint "type". A type is a collection of attributes such as paint style,
hover paint style, overlays etc - basically anything you can set in an Endpoint or Connection definition. An
Endpoint or Connection can have zero or more types assigned; they are merged as granularly as possible, in the order
in which they were assigned. There is a supporting API that works in the same way as the class stuff does in
jQuery - hasType, addType, removeType, toggleType, setType, and each of these methods (except hasType) takes a space-separated
string so you can add several at once.
You can also create a Connection or Endpoint with a 'type' parameter. See the documentation for more information.
- added 'Custom' Overlay type. You provide a 'create' function that jsPlumb calls with the associated Endpoint or
Connection the first time the Overlay is painted.
- added 'setEnabled' / 'isEnabled' methods to selectEndpoint return value
- added 'ConnectorZIndex' optional default. use this to get hovered connectors to appear on top of others.
- added 'setVisible'/'isVisible' to both jsPlumb.select and jsPlumb.selectEndpoint return value
- added 'repaint' to return value from jsPlumb.select and jsPlumb.selectEndpoint
- performance enhancements to label rendering
ISSUES RESOLVED
263 - support custom labels
269 - Image Endpoint remains in DOM if removed quickly enough after creation
270 - Connections repainted when setVisible(false) had been called
* 1.3.11
NEW FUNCTIONALITY
- added 'selectEndpoints' method to jsPlumb. This works in a similar way to jsPlumb.select (which is for Connections).
- added isSuspendDrawing method
- added "connection" as alias to existing "jsPlumbConnection" event. BOTH EVENTS are fired. So do not register for them both!
- added "connectionDetached" as alias to "jsPlumbConnectionDetached" event. As above - both events are fired.
- added 'maxConnections' event to Endpoints.
- added 'onMaxConnections' callback option to makeTarget and makeSource
ISSUES RESOLVED
261 - add 'maxConnections' event to Endpoint
264 - selectEndpoints enhancement
266 - makeSource does not honor maxConnections parameter
267 - setLabel ignores suspendDrawing flag
268 - deleteEveryEndpoint should suspend drawing before it begins and restore once its done.
* 1.3.10
BACKWARDS COMPATIBILITY ISSUES
- The 'clearListeners' method on Connection, Endpoint and jsPlumb has been renamed to 'unbind'.
NEW FUNCTIONALITY
- makeSource can now be called with a 'filter' parameter which allows you to respond to mouse events only on the parts of the element you want to.
- Flowchart connector supports a different length stub at each end (supply an array of two integers instead of just a single integer)
- The position of Connector overlays can now be specified as an absolute value, with positive values meaning distance from source and negative values meaning distance from target.
ISSUES RESOLVED
224 - 'absolute' overlay position
247 - support non-loopback connections between endpoints on the same element (StateMachine connectors)
248 - 'container' ignored when using parent with makeSource
250 - SVG does not work in Android < 3, but jsPlumb thinks it should
252 - rename 'clearListeners' to 'unbind'
253 - allow makeSource to ignore mouseclicks on selected elements and not start a drag
254 - different stub lengths for each end of a flowchart connector
257 - clarified setLabel documentation to point out that it uses innerHTML
FIXES WITHOUT ISSUES
- updated the VML renderer to perform a check for document.namespaces before attempting to do anything; I noticed in IE10 that this would throw an error since document.namespaces is not defined.
* 1.3.9
- Straight connector in canvas now supports simple dashstyle (two args only)
- clearListeners, fire and bind methods in jsPlumb, Connection and Endpoint now return themselves, so you
can use them in a 'fluent' style.
- paintStyle and hoverPaintStyle are no longer exposed on Endpoint or Connection.
- getPaintStyle and getHoverPaintStyle methods added to Endpoint and Connection.
- HoverClass added to jsPlumb defaults.
- Several new methods added for working with targets and sources:
setTargetEnabled
setSourceEnabled
isTarget
isSource
toggleTargetEnabled
toggleSourceEnabled
isTargetEnabled
isSourceEnabled
unmakeSource (returns current jsPlumb instance)
unmakeTarget (returns current jsPlumb instance)
unmakeEverySource (returns current jsPlumb instance)
unmakeEveryTarget (returns current jsPlumb instance)
- makeSource and makeTarget now return the current jsPlumb instance.
- added optional 'gap' parameter to Flowchart connector params. Lets you leave a gap between the end of the connector and the element to which it is connected.
- SvgEndpoint and VmlEndpoint classes are now exposed on the DOM window, which allows for subclassing (eg. when you want to make your own Endpoints)
- removeAllOverlays was not cleaning up elements from the DOM properly. now fixed.
- added connectionDrag and connectionDragStop events to the jsPlumb object. These events are fired when an existing connection is dragged, and when that drag stops. The only argument passed to a listener on these events is the Connection that is being or has just been dragged.
Issues
136 - diamond/arrow overlays do not fire mouse events (SVG/VML renderers only)
223 - extraneous IDs being created throughout the DOM
235 - add setTargetEnabled and related methods (see above)
233 - add getPaintStyle and getHoverPaintStyle to Connection and Endpoint.
238 - overlays in canvas renderer for state machine connectors not appearing in the correct position.
239 - document detachable/connectionsDetachable properly
242 - typo in docs about diamond overlay
244 - straight gradients rendered black or transparent
245 - should not set scope on nodes when making them draggable via jsPlumb.draggable.
* 1.3.8
- hover mode is suspended while something is being dragged. this prevents a lot of random flashes as the mouse moves around the screen.
- VML endpoint was not assigning custom CSS class if it was given one. it is now.
Issues
------
207 - pass back original event in connected detached callback
215 - dragged connection did not get parameters from target endpoint
217 - makeSource's onComplete callback does not get fired
218 - IE max stylesheet limit
219 - connections made with makeSource and parent option were duplicated internally, skewing results from "select" and causing duplicate mouse events with the canvas renderer.
222 - allow VML in IE9
223 - extraneous IDs being created and assigned (edit: was not fixed in 1.3.8. in 1.3.9 instead.)
226 - image endpoint does not clean up image element from DOM on destroy.
227 - maxConnections ignored by makeTarget method
230 - array test fails when jsPlumb called from GWT
* 1.3.7
- added a setId function. This takes care of regorganising the jsPlumb internals when you wish to change the id of some element. call it with a selector, a DOM element, or a string as first arg, and the new id as the second.
- added setIdChanged function. this lets you inform jsPlumb of an id change after the fact.
- connectionDrag/connectionDragStop events
- getConnections takes an optional second argument that tells jsPlumb to return connections as an array, not as an object with scopes as keys
- you can pass '*' to getConnections for any of source/target/scope.
- added showOverlays/hideOverlays functions to Connection and Endpoint
- added getOverlays method to Connection and Endpoint.
- added 'select' method. this is a more useful version of getConnections, supporting the same syntax as getConnections but offering a fluid interface that allows you to perform an operation on all the returned connections. These operations can be chained:
jsPlumb.select({source:"someId"}).setHover(false).showOverlays();
Certain 'get' operations are also supported but are not, of course, chainable - instead they return an array of [value, connection] for each connection, where value is the return value of the get method you called.
- makeTarget now supports a beforeDrop interceptor
Issues
------
209 - endpoint drag not creating connection after setEnabled(false) and then setEnabled(true)
210 - overlays not being hidden when setVisible(false) called
211 - IE8 JS error with overlays and continuous anchors
212 - change the id of an element
214 - beforeDetach gives wrong targetId when being reattached
* 1.3.6
BACKWARDS COMPATIBILITY
- makeSource and makeTarget calls are now honoured by subsquent calls to jsPlumb.connect. So if you call makeTarget on some element, providing an endpoint spec, and then later on call jsPlumb.connect with that element as the target, jsPlumb will use the endpoint spec you provided to makeTarget. The thinking behind this is that typically you will want to setup some target for interactive connections, but then possibly load some initial state for the UI. Prior to this change you would have to provide the same information twice. The same principle applies to makeSource. note that with the "parent" parameter on makeSource, it is the parent against which the endpoint spec is stored. For example:
jsPlumb.makeSource("someElement", {
paintStyle:"red",
anchor:"TopMiddle",
parent:"someOtherElement"
});
followed by:
jsPlumb.connect({source:"someElement", target:"yetAnotherElement"});
will _fail_. This is because the source endpoint was registered against "someOtherElement", which is the one it will appear on when the user creates a new connection with drag and drop. So this will work:
jsPlumb.connect({source:"someOtherElement", target:"yetAnotherElement"});
If, for some reason, you want jsPlumb.connect to ignore previous makeSource/makeTarget calls, you can supply a 'newConnection' parameter:
jsPlumb.connect({source:"someOtherElement", target:"yetAnotherElement", newConnection:true});
One last parameter that is now supported is 'uniqueEndpoint' - this instructs makeSource and makeTarget to only ever create one associated endpoint. Remember if you do this and you expect the endpoint to be reused, you need to ensure you set maxConnections appropriately:
jsPlumb.makeSource("someElement", {
paintStyle:"red",
anchor:"TopMiddle",
parent:"someOtherElement",
uniqueEndpoint:true
});
- the second argument to makeSource and makeTarget no longer requires the nested 'endpoint' parameter - they take the exact same object that you would pass to the second argument to addEndpoint. Of course that object can itself have an 'endpoint' parameter, which is used to specify the type of endpoint (Dot, Rectangle etc) - and that was kind of confusing, and yet another reason to unify the API a little.
- Mouse events are always enabled from 1.3.6 onwards. The default setting "MouseEventsEnabled" has been removed, and the method setMouseEventsEnabled has also been removed.
New features
-------------
- added importDefaults and restoreDefaults methods.
- jsPlumb.draggable(..) now supports nested elements (issue 98). So if you have endpoints on some element and you make its parent draggable, they will now be adjusted appropriately as the parent is dragged.
- added 'enabled' as a parameter to Endpoints, and setEnabled/isEnabled methods on Endpoints. This controls whether or not the user can interact with the Endpoint using the mouse. A programmatic connect call using an Endpoint that is disabled will still succeed.
Issues
204 - add importDefaults method
195 - deleteEndpointsOnDetach ignored by makeTarget method
98 - endpoints do not refresh when nested in a draggable element
206 - add enable/disable functionality to Endpoint
* 1.3.5
BACKWARDS COMPATIBILITY
- removed 'dynamicAnchors' parameter from connect/addEndpoint calls. using an array as the anchor
arg (or one of the values in the 'anchors' parameter on connect) is sufficient to indicate you want
dynamic anchors.
- jsPlumb.Defaults.Overlays is now applied to both Endpoints and Connections: see below.
Events
- added support for "contextmenu" event bind, on jsPlumb, Connection and Endpoint (issue 166)
- jsPlumbConnection event callback now passes in originalEvent as the second parameter.
this does not work in MooTools. only YUI and jQuery.
Miscellaneous
- added setSuspendDrawing method: use it to suspend drawing while you bulk connect etc.
- added setHoverSuspended method: lets you tell jsPlumb to ignore hover events.
- added isHoverSuspended method: lets you find out from jsPlumb what it will do about hover events.
Overlays
- fixed the setLabel method for Connections, and added it to the superclass, so Endpoint has it too.
- added getLabel method to Connection and Endpoint
- added support for 'labelLocation' param for endpoint and connection. default for endpoint
is [0.5, 0.5]; default for connection is 0.5.
- added support for overlays on Endpoint (only Label overlays) (issue 178)
- added jsPlumb.Defaults.ConnectionOverlays
- added jsPlumb.Defaults.EndpointOverlays
Connectors
- state machine connectors performance boost
- flowchart connectors now support loopback connections (issue 184)
Bugs Fixed
- several closure problems with getInstance were causing it to not work properly in 1.3.4 (issue 190)
- continuous anchors do not track when existing connection dragged (issue 169)
- getCachedData was effectively being bypassed (issue 173)
- flowchart not symmetric (issue 187)
- dynamic anchors broken on Endpoint (issue 188)
- endpoints draggable when they should not be (issue 189)
- connection drag offset problem when using tabs (issue 191)
* 1.3.4
backwards compatibility :
- detachEverything method removed from jsPlumb. use detachEveryConnection instead.
- detachAll method removed. use detachAllConnections instead.
- removed labelStyle from Label overlay. to set fonts/border/background, use a cssClass now.
- removed the notion of jsplumb making everything draggable by default. it is now the user's responsibility
to ensure everything is draggable. use jsPlumb.draggable for this, still, of course, or jsPlumb won't
know about your draggable elements.
- removed endpointsOnTop parameter from Connection. You can achieve this effect through cssClass.
new functionality :
- detachEveryConnection and detachAllConnections supports a parameter object now; valid values on this release
are 'fireEvent', the default for which is true.
- added 'detachable' parameter to jsPlumb.connect, to indicate whether or not a connection should be allowed to be
dragged off its endpoints (and possibly discarded; use this in conjunction with 'reattach'). defaults to false.
- added 'connectionsDetachable' parameter to jsPlumb.addEndpoint/jsPlumb.makeSource/jsPlumb.makeTarget. does the
same thing as 'detachable' on jsPlumb.connect, discussed above.
- added isDetachable/setDetachable methods to Connection.
- added jsPlumb.Defaults.ConnectionsDetachable
- added 'previousConnection' to a connection that has been moved. when you get a
jsPlumbConnectionDetached method, that connection passed in will have this member
set, if it was an existing connection that was just moved.
- added 'onload' parameter to Endpoint (for use when constructing an Image endpoint)
- added getSelector method to jsPlumb library adapters; exposes the ability to abstract out a list
of elements you want to work with.
- added beforeDetach option to Connection, Endpoint, and on jsPlumb as a bind. this works both
programmatically and with drag and drop.
- added beforeDrop option to Endpoints that have isTarget:true.
- added jsPlumb.makeSource method
- finished jsPlumb.makeTarget method.
- added getLocation/setLocation to AbstractOverlay (so all Overlays derive these methods)
- added ContinuousAnchors
- added StateMachine connectors
- added 'hoverClass' to endpoints and connections. this is supported in the individual connector
and endpoint definitions, NOT the main args you pass to addEndpoint or connect.
- added jsPlumb.util.svg; currently contains addClass/removeClass methods. jQuery fails to set a class
correctly using addClass/removeClass on an SVG element because its value is an SVGAnimatedString.
- now allows "transparent" as a fillStyle or strokeStyle. each renderer handles it appropriately.
- jsPlumb.addEndpoint and jsPlumb.connect now both support a "parameters" object, which lets you set
specific values that you can then retrieve using getParameter on Endpoint and Connection.
- added getImage method to Image endpoint
- added 'width' and 'height' parameters to Image endpoint; you can override the width and height of the image
with these. prior to this version, jsplumb would set the image to be the size of the image itself.
- allowed for empty labels. prior to this version, you would see "banana"...for some reason.
- added addClass, removeClass and hasClass helper methods to jsPlumb.
* 1.3.3
- added getOverlay(id) to Connection
- added hideOverlay(id) to Connection
- added showOverlay(id) to Connection
- added hide() to Overlay
- added show() to Overlay
- added setVisible(state) to Overlay
- fixed issue 127 (original event was lost in the jsPlumb shortcut bind methods)
* 1.3.2
- reinstated the container concept on jsPlumb.Defaults and on calls to addEndpoint and connect.
- updated jsPlumb.hide and jsPlumb.show to optionally work their magic on Endpoints as well as Connections.
- added jsPlumb.ready convenience function.
- issues resolved:
102 - FF5 requires a default paint style for endpoints
103 - add 'type' member to connectors, endpoints and overlays
104 - do not set label overlay cursor style by default
105 - hoverPaintStyle for endpoints stopped working
107 - binding 'mouseenter' and 'mouseexit' on endpoints doesn't work
109 - maxConnections:-1 does not allow using endpoint as source
112 - add class to SVG container div
113 - render mode not set for extra instances of jsPlumb
114 - 'drawEndpoints:false' can cause connection paint errors.
115 - reinstate 'container' concept
116 - endpoint clone problem
117 - jsPlumb.hide() issue in IE7 and IE8
119 - inconsistent behaviour of dynamic anchors when multiple connections share an anchor.
* 1.3.1
bugfix release for element positioning bug. use this instead of 1.3.0.
* 1.3.0
*** Backwards compatibility breakages ***
- you cannot create Endpoints/Connectors/Overlays directly anymore. You must supply jsPlumb with a definition of what you want and it creates
the actual object. For example:
OLD: jsPlumb.Defaults.Endpoint = new jsPlumb.Endpoints.Dot(45);
NEW: jsPlumb.Defaults.Endpoint = [ "Dot", { radius:45 } ];
- Bezier connection requires a js object as argument now, instead of a single int:
OLD: connector: [ "Bezier", 150 ]
NEW: connector: [ "Bezier", { curviness:150 } ]
- Dot Endpoint requires a js object as argument now, instead of a single int:
OLD: endpoint: [ "Dot", 10 ]
NEW: endpoint: [ "Dot", { radius:10 } ]
- setDefaultNewCanvasSize method has been removed. jsPlumb no longer uses excanvas to render
VML; this method was there to support edge cases of VML usage.
- the 'container' concept, as an argument to addEndpoint or connect, and in the jsPlumb
defaults, has been removed. created elements are now appended to the parent of the source
element of a connection.
- backgroundPaintStyle has been replaced with 'outlineColor' and 'outlineWidth' members in
paint definitions.
- drag entire connection, introduced for some browsers in 1.2.6, has been removed.
- getConnections now returns a list of connections for the scope you asked for, unless
you didn't specify a scope, in which case you get the list of connections for the default scope. see the API docs.
getAllConnections, introduced in 1.3.0, does what getConnections used to do, but does
not take any scope parameter.
General Changes
--------------
- jsPlumb can now use SVG where supported
- mouse events in all browsers
- ability to register a mouse listener on jsPlumb, rather than on each Connection individually. surely much more convenient.
this is "click" and "dblclick" events for Connections, and "endpointClick" and "endpointDblClick" for Endpoints.
- ability to specify class names for endpoints/overlays/connections, using 'cssClass' param.
- added "Blank" endpoint type: paints nothing and adds no element to the DOM.
- reinstated the 'drawEndpoints' parameter on jsPlumb.connect.
- added makeTarget/makeTargets method; allow you to specify an entire element as drop target for a connection
- added jsPlumb.Defaults.Overlays
- all Label overlays are painted with a styled div now (they used to be drawn on the canvases), and each renderer type uses this.
- added removeAllOverlays, removeOverlay and removeOverlays methods to Connection.
- addEndpoint and addEndpoints methods now take a selector or array for the first argument, so
you can do things like jsPlumb.addEndpoint($(".someClass"), { endpoint options });
Bugfixes/Enhancements
--------
- issue 90
- issue 95
* 1.2.6
General Changes
- added Flowchart connector type.
- removed jquery plugin methods. support for them had fallen behind anyway, and then jquery 1.5 introduced 'detach', which clashed with jsPlumb. so, they got the chop.
- the jsPlumb.bind method does not support array as first argument anymore. it's now bind(event, listener) only.
- added the ability to supply a subclass of Connection or Endpoint for your own app (jsPlumb.Defaults.ConnectorType and jsPlumb.Defaults.EndpointType)
- added a version of two-arg method from jsPlumb.addEndpoint to jsPlumb.addEndpoints. takes an array of arrays as the second argument.
- added optional referenceParams argument to jsPlumb.connect; use this to supply shared info between many connections:
var commonValues = { paintStyle:{ strokeStyle:"red", lineWidth:5 } };
jsPlumb.connect({ source:someDiv, target:someOtherDiv }, commonValues);
jsPlumb.connect({ source:aThirdDiv, target:yetAnotherDiv }, commonValues);
- added optional referenceParams argument to jsPlumb.addEndpoint; use this to supply shared info between many endpoint additions:
var commonValues = { paintStyle:{ fillStyle:"red" } };
jsPlumb.addEndpoint(someDiv, { anchor:[ 1.0, 0, 0, -1 ] }, commonValues);
jsPlumb.addEndpoint(someOtherDiv { anchor:[ 0, 1.0, -1, 0 ] }, commonValues);
Paint Styles
- added setPaintStyle method to Connection and Endpoint.
- deprecated 'style' argument to Endpoint options in favour of 'paintStyle', to make it the same as Connection.
- added setBackgroundPaintStyle method to Connection (note: not Endpoint)
- arrow overlays derive their paint style from the associated connection if one is not supplied for the overlay (using Connection's strokeStyle as their fillStyle).