Skip to content

Commit 482b3f3

Browse files
author
dabeng
committed
fix-bug: drag & drop not working on Firefox
1 parent 7334bb5 commit 482b3f3

7 files changed

+19
-22
lines changed

bower.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "orgchart",
3-
"version": "2.1.2",
3+
"version": "2.1.3",
44
"homepage": "https://github.com/dabeng/OrgChart",
55
"authors": [
66
"dabeng <[email protected]>"

demo/js/jquery.orgchart.js

+5-6
Original file line numberDiff line numberDiff line change
@@ -892,9 +892,6 @@
892892
var opts = this.options;
893893
var origEvent = event.originalEvent;
894894
var isFirefox = /firefox/.test(window.navigator.userAgent.toLowerCase());
895-
if (isFirefox) {
896-
origEvent.dataTransfer.setData('text/html', 'hack for firefox');
897-
}
898895
var ghostNode, nodeCover;
899896
if (!document.querySelector('.ghost-node')) {
900897
ghostNode = document.createElementNS("http://www.w3.org/2000/svg", "svg");
@@ -907,9 +904,10 @@
907904
nodeCover = $(ghostNode).children().get(0);
908905
}
909906
var transValues = $nodeDiv.closest('.orgchart').css('transform').split(',');
910-
var scale = Math.abs(window.parseFloat((opts.direction === 't2b' || opts.direction === 'b2t') ? transValues[0].slice(transValues[0].indexOf('(') + 1) : transValues[1]));
911-
ghostNode.setAttribute('width', $nodeDiv.outerWidth(false));
912-
ghostNode.setAttribute('height', $nodeDiv.outerHeight(false));
907+
var isHorizontal = opts.direction === 't2b' || opts.direction === 'b2t';
908+
var scale = Math.abs(window.parseFloat(isHorizontal ? transValues[0].slice(transValues[0].indexOf('(') + 1) : transValues[1]));
909+
ghostNode.setAttribute('width', isHorizontal ? $nodeDiv.outerWidth(false) : $nodeDiv.outerHeight(false));
910+
ghostNode.setAttribute('height', isHorizontal ? $nodeDiv.outerHeight(false) : $nodeDiv.outerWidth(false));
913911
nodeCover.setAttribute('x',5 * scale);
914912
nodeCover.setAttribute('y',5 * scale);
915913
nodeCover.setAttribute('width', 120 * scale);
@@ -959,6 +957,7 @@
959957
},
960958
//
961959
dragstartHandler: function (event) {
960+
event.originalEvent.dataTransfer.setData('text/html', 'hack for firefox');
962961
// if users enable zoom or direction options
963962
if (this.$chart.css('transform') !== 'none') {
964963
this.createGhostNode(event);

dist/js/jquery.orgchart.js

+5-6
Original file line numberDiff line numberDiff line change
@@ -892,9 +892,6 @@
892892
var opts = this.options;
893893
var origEvent = event.originalEvent;
894894
var isFirefox = /firefox/.test(window.navigator.userAgent.toLowerCase());
895-
if (isFirefox) {
896-
origEvent.dataTransfer.setData('text/html', 'hack for firefox');
897-
}
898895
var ghostNode, nodeCover;
899896
if (!document.querySelector('.ghost-node')) {
900897
ghostNode = document.createElementNS("http://www.w3.org/2000/svg", "svg");
@@ -907,9 +904,10 @@
907904
nodeCover = $(ghostNode).children().get(0);
908905
}
909906
var transValues = $nodeDiv.closest('.orgchart').css('transform').split(',');
910-
var scale = Math.abs(window.parseFloat((opts.direction === 't2b' || opts.direction === 'b2t') ? transValues[0].slice(transValues[0].indexOf('(') + 1) : transValues[1]));
911-
ghostNode.setAttribute('width', $nodeDiv.outerWidth(false));
912-
ghostNode.setAttribute('height', $nodeDiv.outerHeight(false));
907+
var isHorizontal = opts.direction === 't2b' || opts.direction === 'b2t';
908+
var scale = Math.abs(window.parseFloat(isHorizontal ? transValues[0].slice(transValues[0].indexOf('(') + 1) : transValues[1]));
909+
ghostNode.setAttribute('width', isHorizontal ? $nodeDiv.outerWidth(false) : $nodeDiv.outerHeight(false));
910+
ghostNode.setAttribute('height', isHorizontal ? $nodeDiv.outerHeight(false) : $nodeDiv.outerWidth(false));
913911
nodeCover.setAttribute('x',5 * scale);
914912
nodeCover.setAttribute('y',5 * scale);
915913
nodeCover.setAttribute('width', 120 * scale);
@@ -959,6 +957,7 @@
959957
},
960958
//
961959
dragstartHandler: function (event) {
960+
event.originalEvent.dataTransfer.setData('text/html', 'hack for firefox');
962961
// if users enable zoom or direction options
963962
if (this.$chart.css('transform') !== 'none') {
964963
this.createGhostNode(event);

dist/js/jquery.orgchart.min.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/js/jquery.orgchart.min.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "orgchart",
3-
"version": "2.1.2",
3+
"version": "2.1.3",
44
"description": "Simple and direct organization chart(tree-like hierarchy) plugin based on pure DOM and jQuery.",
55
"main": "./dist/js/jquery.orgchart.min.js",
66
"style": [

src/js/jquery.orgchart.js

+5-6
Original file line numberDiff line numberDiff line change
@@ -892,9 +892,6 @@
892892
var opts = this.options;
893893
var origEvent = event.originalEvent;
894894
var isFirefox = /firefox/.test(window.navigator.userAgent.toLowerCase());
895-
if (isFirefox) {
896-
origEvent.dataTransfer.setData('text/html', 'hack for firefox');
897-
}
898895
var ghostNode, nodeCover;
899896
if (!document.querySelector('.ghost-node')) {
900897
ghostNode = document.createElementNS("http://www.w3.org/2000/svg", "svg");
@@ -907,9 +904,10 @@
907904
nodeCover = $(ghostNode).children().get(0);
908905
}
909906
var transValues = $nodeDiv.closest('.orgchart').css('transform').split(',');
910-
var scale = Math.abs(window.parseFloat((opts.direction === 't2b' || opts.direction === 'b2t') ? transValues[0].slice(transValues[0].indexOf('(') + 1) : transValues[1]));
911-
ghostNode.setAttribute('width', $nodeDiv.outerWidth(false));
912-
ghostNode.setAttribute('height', $nodeDiv.outerHeight(false));
907+
var isHorizontal = opts.direction === 't2b' || opts.direction === 'b2t';
908+
var scale = Math.abs(window.parseFloat(isHorizontal ? transValues[0].slice(transValues[0].indexOf('(') + 1) : transValues[1]));
909+
ghostNode.setAttribute('width', isHorizontal ? $nodeDiv.outerWidth(false) : $nodeDiv.outerHeight(false));
910+
ghostNode.setAttribute('height', isHorizontal ? $nodeDiv.outerHeight(false) : $nodeDiv.outerWidth(false));
913911
nodeCover.setAttribute('x',5 * scale);
914912
nodeCover.setAttribute('y',5 * scale);
915913
nodeCover.setAttribute('width', 120 * scale);
@@ -959,6 +957,7 @@
959957
},
960958
//
961959
dragstartHandler: function (event) {
960+
event.originalEvent.dataTransfer.setData('text/html', 'hack for firefox');
962961
// if users enable zoom or direction options
963962
if (this.$chart.css('transform') !== 'none') {
964963
this.createGhostNode(event);

0 commit comments

Comments
 (0)