Fix date and consider translation when determining center
This commit is contained in:
parent
418fc4df6e
commit
2f1ff8f55d
1 changed files with 35 additions and 14 deletions
|
@ -26,20 +26,20 @@ function getNodeLabel(node){
|
|||
return label;
|
||||
}
|
||||
function getNodeYear(n){
|
||||
if(typeof n['http://schema.org/dateCreated'] !== 'undefined') {
|
||||
return n['http://schema.org/dateCreated'].substr(0,4);
|
||||
if(typeof n['https://schema.org/dateCreated'] !== 'undefined') {
|
||||
return n['https://schema.org/dateCreated'].substr(0,4);
|
||||
}
|
||||
if(typeof n['http://schema.org/datePublished'] !== 'undefined') {
|
||||
return n['http://schema.org/datePublished'].substr(0,4);
|
||||
if(typeof n['https://schema.org/datePublished'] !== 'undefined') {
|
||||
return n['https://schema.org/datePublished'].substr(0,4);
|
||||
}
|
||||
if(typeof n['http://schema.org/startDate'] !== 'undefined') {
|
||||
return n['http://schema.org/startDate'].substr(0,4);
|
||||
if(typeof n['https://schema.org/startDate'] !== 'undefined') {
|
||||
return n['https://schema.org/startDate'].substr(0,4);
|
||||
}
|
||||
if(typeof n['http://schema.org/endDate'] !== 'undefined') {
|
||||
return n['http://schema.org/endDate'].substr(0,4);
|
||||
if(typeof n['https://schema.org/endDate'] !== 'undefined') {
|
||||
return n['https://schema.org/endDate'].substr(0,4);
|
||||
}
|
||||
if(typeof n['http://schema.org/foundingDate'] !== 'undefined') {
|
||||
return n['http://schema.org/foundingDate'].substr(0,4);
|
||||
if(typeof n['https://schema.org/foundingDate'] !== 'undefined') {
|
||||
return n['https://schema.org/foundingDate'].substr(0,4);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
@ -369,6 +369,7 @@ var positionNodesInCenter = function(idxs) {
|
|||
}
|
||||
var positionNodesInCircle = function(idxs, r) {
|
||||
let viewBox = getViewbox();
|
||||
let zoom = getZoomValues();
|
||||
setViewboxForceCenter(); // sets forceCx & forceCy
|
||||
if(typeof r == 'undefined') {
|
||||
if(idxs.length == 1) {
|
||||
|
@ -378,8 +379,8 @@ var positionNodesInCircle = function(idxs, r) {
|
|||
}
|
||||
}
|
||||
currentNodePositionRadius = r;
|
||||
let forceCx = viewBox[0] + viewBox[2]/2;
|
||||
let forceCy = viewBox[1] + viewBox[3]/2;
|
||||
let forceCx = viewBox[0] + viewBox[2]/2 - zoom['dx'];
|
||||
let forceCy = viewBox[1] + viewBox[3]/2 - zoom['dy'];
|
||||
|
||||
let stepSize = 2*Math.PI / idxs.length;
|
||||
|
||||
|
@ -692,9 +693,29 @@ var deselectNode = function() {
|
|||
var forceCx, forceCy;
|
||||
var setViewboxForceCenter = function() {
|
||||
let viewBox = getViewbox();
|
||||
forceCx = viewBox[0] + viewBox[2]/2;
|
||||
forceCy = viewBox[1] + viewBox[3]/2;
|
||||
let zoom = getZoomValues();
|
||||
forceCx = viewBox[0] + viewBox[2]/2 - zoom['dx'];
|
||||
forceCy = viewBox[1] + viewBox[3]/2 - zoom['dy'];
|
||||
}
|
||||
|
||||
var getZoomValues = function(){
|
||||
let zoomContainer = document.getElementById("container");
|
||||
let dx = 0, dy = 0, scale = 1;
|
||||
if(zoomContainer.transform.baseVal.length > 0) {
|
||||
for(let transform of zoomContainer.transform.baseVal) {
|
||||
if(transform.type == SVGTransform.SVG_TRANSFORM_TRANSLATE) {
|
||||
dx += transform.matrix.e;
|
||||
dy += transform.matrix.f;
|
||||
}
|
||||
else if (transform.type == SVGTransform.SVG_TRANSFORM_SCALE) {
|
||||
scale *= transform.matrix.a; // assume simple scale
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return {'dx': dx, 'dy': dy, 'scale': scale};
|
||||
}
|
||||
|
||||
setViewboxForceCenter(); // sets forceCx & forceCy
|
||||
|
||||
var graphInitialised = false;
|
||||
|
|
Loading…
Reference in a new issue