This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository coselmar. See http://git.codelutin.com/coselmar.git commit 0e66d58a93e78dec999eec53d4e80c24ff8c704f Author: Yannick Martel <martel@©odelutin.com> Date: Thu Jan 21 18:05:36 2016 +0100 refs-80 #7917 current question is displayed as bold in hierarchy graph --- .../src/main/webapp/js/coselmar-controllers.js | 1 + .../src/main/webapp/js/d3-2waytree-graph.js | 373 +++++++++++---------- 2 files changed, 191 insertions(+), 183 deletions(-) diff --git a/coselmar-ui/src/main/webapp/js/coselmar-controllers.js b/coselmar-ui/src/main/webapp/js/coselmar-controllers.js index 92f6139..dde3628 100644 --- a/coselmar-ui/src/main/webapp/js/coselmar-controllers.js +++ b/coselmar-ui/src/main/webapp/js/coselmar-controllers.js @@ -1767,6 +1767,7 @@ coselmarControllers.controller('ModalQuestionHierarchyCtrl', function ($scope, $ $scope.hierarchyTree = { name : $scope.question.title, url : "#/questions/" + $scope.question.id, tooltip : $scope.question.themes.join(), + fontWeight : "bold", parents : [], children : [] }; $scope.ancestorsReady = false; diff --git a/coselmar-ui/src/main/webapp/js/d3-2waytree-graph.js b/coselmar-ui/src/main/webapp/js/d3-2waytree-graph.js index 9288d1a..0bfb9fe 100644 --- a/coselmar-ui/src/main/webapp/js/d3-2waytree-graph.js +++ b/coselmar-ui/src/main/webapp/js/d3-2waytree-graph.js @@ -152,6 +152,13 @@ var CollapsibleTree = function(elt) { .attr("target", "_blank") .attr("uib-tooltip", function(d) { return d.tooltip}) .text(function(d) { return d.name; }) + .style("font-weight", function(d) { + if (d.fontWeight) { + return d.fontWeight; + } else { + return "normal"; + } + }) ; // Transition nodes to their new position. @@ -259,189 +266,189 @@ var CollapsibleTree = function(elt) { d.y0 = d.y; }); }, - updateParents: function(source) { - var duration = d3.event && d3.event.altKey ? 5000 : 500; - - // Compute the new tree layout. - var nodes = tree.nodes(root).reverse(); - - // Normalize for fixed-depth. - nodes.forEach(function(d) { d.y = d.depth * 180; }); - - // Update the nodes… - var node = vis.selectAll("g.node") - .data(nodes, function(d) { return d.id || (d.id = ++i); }); - - // Enter any new nodes at the parent's previous position. - var nodeEnter = node.enter().append("svg:g") - .attr("class", "node") - // .attr("transform", function(d) { return "translate(" + source.y0 + "," + source.x0 + ")"; }) - .attr("transform", function(d) { return "translate(" + source.x0 + "," + source.y0 + ")"; }) - .on("click", function(d) { that.toggle(d); that.updateParents(d); }); - - nodeEnter.append("svg:circle") - .attr("r", 1e-6) - .style("fill", function(d) { return d._children ? "lightsteelblue" : "#fff"; }); - - nodeEnter.append("svg:text") - .attr("x", function(d) { return d.children || d._children ? -10 : 10; }) - .attr("dy", ".35em") - .attr("text-anchor", function(d) { return d.children || d._children ? "end" : "start"; }) - .text(function(d) { return d.name; }) - .style("fill-opacity", 1e-6); - - // Transition nodes to their new position. - var nodeUpdate = node.transition() - .duration(duration) - .attr("transform", function(d) { return "translate(" + d.x + "," + -d.y + ")"; }); - - nodeUpdate.select("circle") - .attr("r", 4.5) - .style("fill", function(d) { return d._children ? "lightsteelblue" : "#fff"; }); - - nodeUpdate.select("text") - .style("fill-opacity", 1); - - // Transition exiting nodes to the parent's new position. - var nodeExit = node.exit().transition() - .duration(duration) - // .attr("transform", function(d) { return "translate(" + source.y + "," + source.x + ")"; }) - .attr("transform", function(d) { return "translate(" + source.x + "," + source.y + ")"; }) - .remove(); - - nodeExit.select("circle") - .attr("r", 1e-6); - - nodeExit.select("text") - .style("fill-opacity", 1e-6); - - // Update the links… - var link = vis.selectAll("path.link") - .data(tree.links(nodes), function(d) { return d.target.id; }); - - // Enter any new links at the parent's previous position. - link.enter().insert("svg:path", "g") - .attr("class", "link") - .attr("d", function(d) { - var o = {x: source.x0, y: source.y0}; - return parentdiagonal({source: o, target: o}); - }) - .transition() - .duration(duration) - .attr("d", parentdiagonal); - - // Transition links to their new position. - link.transition() - .duration(duration) - .attr("d", parentdiagonal); - - // Transition exiting nodes to the parent's new position. - link.exit().transition() - .duration(duration) - .attr("d", function(d) { - var o = {x: source.x, y: source.y}; - return parentdiagonal({source: o, target: o}); - }) - .remove(); - - // Stash the old positions for transition. - nodes.forEach(function(d) { - d.x0 = d.x; - d.y0 = d.y; - }); - }, - updateChildren: function(source) { - var duration = d3.event && d3.event.altKey ? 5000 : 500; - - // Compute the new tree layout. - var nodes = tree.nodes(root2).reverse(); - - // Normalize for fixed-depth. - nodes.forEach(function(d) { d.y = d.depth * 180; }); - - // Update the nodes… - var node = vis.selectAll("g.node") - .data(nodes, function(d) { return d.id || (d.id = ++i); }); - - // Enter any new nodes at the parent's previous position. - var nodeEnter = node.enter().append("svg:g") - .attr("class", "node") - // .attr("transform", function(d) { return "translate(" + source.y0 + "," + source.x0 + ")"; }) - .attr("transform", function(d) { return "translate(" + source.x0 + "," + source.y0 + ")"; }) - .on("click", function(d) { that.toggle(d); that.updateChildren(d); }); - - nodeEnter.append("svg:circle") - .attr("r", 1e-6) - .style("fill", function(d) { return d._children ? "lightsteelblue" : "#fff"; }); - - nodeEnter.append("svg:text") - .attr("x", function(d) { return d.children || d._children ? -10 : 10; }) - .attr("dy", ".35em") - .attr("text-anchor", function(d) { return d.children || d._children ? "end" : "start"; }) - .text(function(d) { return d.name; }) - .style("fill-opacity", 1e-6); - - // Transition nodes to their new position. - var nodeUpdate = node.transition() - .duration(duration) - // .attr("transform", function(d) { return "translate(" + d.y + "," + d.x + ")"; }); - .attr("transform", function(d) { return "translate(" + d.x + "," + d.y + ")"; }); - - nodeUpdate.select("circle") - .attr("r", 4.5) - .style("fill", function(d) { return d._children ? "lightsteelblue" : "#fff"; }); - - nodeUpdate.select("text") - .style("fill-opacity", 1); - - // Transition exiting nodes to the parent's new position. - var nodeExit = node.exit().transition() - .duration(duration) - // .attr("transform", function(d) { return "translate(" + source.y + "," + source.x + ")"; }) - .attr("transform", function(d) { return "translate(" + source.x + "," + source.y + ")"; }) - .remove(); - - nodeExit.select("circle") - .attr("r", 1e-6); - - nodeExit.select("text") - .style("fill-opacity", 1e-6); - - // Update the links… - var link = vis.selectAll("path.link") - .data(tree.links(nodes), function(d) { return d.target.id; }); - - // Enter any new links at the parent's previous position. - link.enter().insert("svg:path", "g") - .attr("class", "link") - .attr("d", function(d) { - var o = {x: source.x0, y: source.y0}; - return childdiagonal({source: o, target: o}); - }) - .transition() - .duration(duration) - .attr("d", childdiagonal); - - // Transition links to their new position. - link.transition() - .duration(duration) - .attr("d", childdiagonal); - - // Transition exiting nodes to the parent's new position. - link.exit().transition() - .duration(duration) - .attr("d", function(d) { - var o = {x: source.x, y: source.y}; - return childdiagonal({source: o, target: o}); - }) - .remove(); - - // Stash the old positions for transition. - nodes.forEach(function(d) { - d.x0 = d.x; - d.y0 = d.y; - }); - }, +// updateParents: function(source) { +// var duration = d3.event && d3.event.altKey ? 5000 : 500; +// +// // Compute the new tree layout. +// var nodes = tree.nodes(root).reverse(); +// +// // Normalize for fixed-depth. +// nodes.forEach(function(d) { d.y = d.depth * 180; }); +// +// // Update the nodes… +// var node = vis.selectAll("g.node") +// .data(nodes, function(d) { return d.id || (d.id = ++i); }); +// +// // Enter any new nodes at the parent's previous position. +// var nodeEnter = node.enter().append("svg:g") +// .attr("class", "node") +// // .attr("transform", function(d) { return "translate(" + source.y0 + "," + source.x0 + ")"; }) +// .attr("transform", function(d) { return "translate(" + source.x0 + "," + source.y0 + ")"; }) +// .on("click", function(d) { that.toggle(d); that.updateParents(d); }); +// +// nodeEnter.append("svg:circle") +// .attr("r", 1e-6) +// .style("fill", function(d) { return d._children ? "lightsteelblue" : "#fff"; }); +// +// nodeEnter.append("svg:text") +// .attr("x", function(d) { return d.children || d._children ? -10 : 10; }) +// .attr("dy", ".35em") +// .attr("text-anchor", function(d) { return d.children || d._children ? "end" : "start"; }) +// .text(function(d) { return d.name; }) +// .style("fill-opacity", 1e-6); +// +// // Transition nodes to their new position. +// var nodeUpdate = node.transition() +// .duration(duration) +// .attr("transform", function(d) { return "translate(" + d.x + "," + -d.y + ")"; }); +// +// nodeUpdate.select("circle") +// .attr("r", 4.5) +// .style("fill", function(d) { return d._children ? "lightsteelblue" : "#fff"; }); +// +// nodeUpdate.select("text") +// .style("fill-opacity", 1); +// +// // Transition exiting nodes to the parent's new position. +// var nodeExit = node.exit().transition() +// .duration(duration) +// // .attr("transform", function(d) { return "translate(" + source.y + "," + source.x + ")"; }) +// .attr("transform", function(d) { return "translate(" + source.x + "," + source.y + ")"; }) +// .remove(); +// +// nodeExit.select("circle") +// .attr("r", 1e-6); +// +// nodeExit.select("text") +// .style("fill-opacity", 1e-6); +// +// // Update the links… +// var link = vis.selectAll("path.link") +// .data(tree.links(nodes), function(d) { return d.target.id; }); +// +// // Enter any new links at the parent's previous position. +// link.enter().insert("svg:path", "g") +// .attr("class", "link") +// .attr("d", function(d) { +// var o = {x: source.x0, y: source.y0}; +// return parentdiagonal({source: o, target: o}); +// }) +// .transition() +// .duration(duration) +// .attr("d", parentdiagonal); +// +// // Transition links to their new position. +// link.transition() +// .duration(duration) +// .attr("d", parentdiagonal); +// +// // Transition exiting nodes to the parent's new position. +// link.exit().transition() +// .duration(duration) +// .attr("d", function(d) { +// var o = {x: source.x, y: source.y}; +// return parentdiagonal({source: o, target: o}); +// }) +// .remove(); +// +// // Stash the old positions for transition. +// nodes.forEach(function(d) { +// d.x0 = d.x; +// d.y0 = d.y; +// }); +// }, +// updateChildren: function(source) { +// var duration = d3.event && d3.event.altKey ? 5000 : 500; +// +// // Compute the new tree layout. +// var nodes = tree.nodes(root2).reverse(); +// +// // Normalize for fixed-depth. +// nodes.forEach(function(d) { d.y = d.depth * 180; }); +// +// // Update the nodes… +// var node = vis.selectAll("g.node") +// .data(nodes, function(d) { return d.id || (d.id = ++i); }); +// +// // Enter any new nodes at the parent's previous position. +// var nodeEnter = node.enter().append("svg:g") +// .attr("class", "node") +// // .attr("transform", function(d) { return "translate(" + source.y0 + "," + source.x0 + ")"; }) +// .attr("transform", function(d) { return "translate(" + source.x0 + "," + source.y0 + ")"; }) +// .on("click", function(d) { that.toggle(d); that.updateChildren(d); }); +// +// nodeEnter.append("svg:circle") +// .attr("r", 1e-6) +// .style("fill", function(d) { return d._children ? "lightsteelblue" : "#fff"; }); +// +// nodeEnter.append("svg:text") +// .attr("x", function(d) { return d.children || d._children ? -10 : 10; }) +// .attr("dy", ".35em") +// .attr("text-anchor", function(d) { return d.children || d._children ? "end" : "start"; }) +// .text(function(d) { return d.name; }) +// .style("fill-opacity", 1e-6); +// +// // Transition nodes to their new position. +// var nodeUpdate = node.transition() +// .duration(duration) +// // .attr("transform", function(d) { return "translate(" + d.y + "," + d.x + ")"; }); +// .attr("transform", function(d) { return "translate(" + d.x + "," + d.y + ")"; }); +// +// nodeUpdate.select("circle") +// .attr("r", 4.5) +// .style("fill", function(d) { return d._children ? "lightsteelblue" : "#fff"; }); +// +// nodeUpdate.select("text") +// .style("fill-opacity", 1); +// +// // Transition exiting nodes to the parent's new position. +// var nodeExit = node.exit().transition() +// .duration(duration) +// // .attr("transform", function(d) { return "translate(" + source.y + "," + source.x + ")"; }) +// .attr("transform", function(d) { return "translate(" + source.x + "," + source.y + ")"; }) +// .remove(); +// +// nodeExit.select("circle") +// .attr("r", 1e-6); +// +// nodeExit.select("text") +// .style("fill-opacity", 1e-6); +// +// // Update the links… +// var link = vis.selectAll("path.link") +// .data(tree.links(nodes), function(d) { return d.target.id; }); +// +// // Enter any new links at the parent's previous position. +// link.enter().insert("svg:path", "g") +// .attr("class", "link") +// .attr("d", function(d) { +// var o = {x: source.x0, y: source.y0}; +// return childdiagonal({source: o, target: o}); +// }) +// .transition() +// .duration(duration) +// .attr("d", childdiagonal); +// +// // Transition links to their new position. +// link.transition() +// .duration(duration) +// .attr("d", childdiagonal); +// +// // Transition exiting nodes to the parent's new position. +// link.exit().transition() +// .duration(duration) +// .attr("d", function(d) { +// var o = {x: source.x, y: source.y}; +// return childdiagonal({source: o, target: o}); +// }) +// .remove(); +// +// // Stash the old positions for transition. +// nodes.forEach(function(d) { +// d.x0 = d.x; +// d.y0 = d.y; +// }); +// }, isParent: function(node) { if( node.parent && node.parent != root ) { -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.