branch develop updated (38b7715 -> 0e66d58)
This is an automated email from the git hooks/post-receive script. New change to branch develop in repository coselmar. See http://git.codelutin.com/coselmar.git from 38b7715 add a way for admin to see delteed projects new 10fcb87 refs-50 #7917 add arrow in project hierarcy graph new 0e66d58 refs-80 #7917 current question is displayed as bold in hierarchy graph The 2 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: 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 commit 10fcb8763ea5d86c2ecfb6e569a1b48c624adc6a Author: Yannick Martel <martel@©odelutin.com> Date: Thu Jan 21 16:18:55 2016 +0100 refs-50 #7917 add arrow in project hierarcy graph Summary of changes: .../src/main/webapp/js/coselmar-controllers.js | 1 + .../src/main/webapp/js/d3-2waytree-graph.js | 415 ++++++++++++--------- 2 files changed, 233 insertions(+), 183 deletions(-) -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
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 10fcb8763ea5d86c2ecfb6e569a1b48c624adc6a Author: Yannick Martel <martel@©odelutin.com> Date: Thu Jan 21 16:18:55 2016 +0100 refs-50 #7917 add arrow in project hierarcy graph --- .../src/main/webapp/js/d3-2waytree-graph.js | 42 ++++++++++++++++++++++ 1 file changed, 42 insertions(+) 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 592e4ae..9288d1a 100644 --- a/coselmar-ui/src/main/webapp/js/d3-2waytree-graph.js +++ b/coselmar-ui/src/main/webapp/js/d3-2waytree-graph.js @@ -48,6 +48,33 @@ var CollapsibleTree = function(elt) { // .attr("transform", "translate(" + m[3] + "," + m[0] + ")"); // left-right // .attr("transform", "translate(" + m[0] + "," + m[3] + ")"); // top-bottom .attr("transform", "translate(0,"+h/2+")"); // bidirectional-tree + // build the arrow for children. + vis.append("svg:defs").selectAll("marker") + .data(["end"]) // Different link/path types can be defined here + .enter().append("svg:marker") // This section adds in the arrows + .attr("id", String) + .attr("viewBox", "0 -5 10 10") + .attr("refX", 15) + .attr("refY", -1.5) + .attr("markerWidth", 6) + .attr("markerHeight", 6) + .attr("orient", "auto") + .append("svg:path") + .attr("d", "M0,-5L10,0L0,5"); + // build the arrow from parents + vis.append("svg:defs").selectAll("marker") + .data(["start"]) // Different link/path types can be defined here + .enter().append("svg:marker") // This section adds in the arrows + .attr("id", String) + .attr("viewBox", "0 -5 10 10") + .attr("refX", 15) + .attr("refY", -1.5) + .attr("markerWidth", -6) + .attr("markerHeight", 6) + .attr("orient", "auto") + .append("svg:path") + .attr("d", "M0,-5L10,0L0,5") + ; var that = { init: function(data) { @@ -173,6 +200,21 @@ var CollapsibleTree = function(elt) { return childdiagonal({source: o, target: o}); } }) + // Ok + .attr("marker-end", function(d) { + if( that.isParent(d.target) ) { + return undefined; + } else { + return "url(#end)"; + } + }) + .attr("marker-start", function(d) { + if( that.isParent(d.target)) { + return "url(#start)"; + } else { + return undefined; + } + }) .transition() .duration(duration) // .attr("d", parentdiagonal); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
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>.
participants (1)
-
codelutin.com scm