10 Commits

Author SHA1 Message Date
9aa52e1bbe Added ais
Some checks failed
CI / test (pull_request) Failing after 16s
API CI / api-tests (pull_request) Failing after 27s
2026-06-10 14:56:51 +02:00
35cf6183cc Update UI if pathway mode is set to build 2026-06-10 14:56:51 +02:00
3005882838 make required generallay available 2026-06-10 14:56:51 +02:00
cd1b7385fb Make Select Widget reflect required 2026-06-10 14:56:51 +02:00
4490e262f0 wip 2026-06-10 14:56:51 +02:00
498feb3ab9 API PES 2026-06-10 14:56:51 +02:00
98553b16d5 PW interactions 2026-06-10 14:56:51 +02:00
d39cdc8fd9 minor 2026-06-10 14:56:51 +02:00
f945149794 Wip 2026-06-10 14:56:51 +02:00
79eb7b0aad adjusted migration
Initial bayer app

Show Pack Classification

Adjusted docker compose to bayer specifics

Adjusted Dockerfile for Bayer

Adding secret flags to group, add secret pools to packages

Adjusted View for Package creation

Prep configs, added Package Create Modal

wip

More on PES

wip

wip
2026-06-10 14:56:51 +02:00
3 changed files with 13 additions and 44 deletions

View File

@ -101,24 +101,10 @@ function draw(pathway, elem) {
// Update pseudo node positions first
updatePseudoNodePositions();
link.attr("d", d => {
// Check if it's a self-loop (source equals target)
if (d.source.id === d.target.id) {
// Create a bezier curve for self-loops
const x = d.source.x;
const y = d.source.y;
const loopRadius = nodeRadius * 2; // Adjust size of the loop
// Create a circular path to the left of the node
return `M ${x},${y - nodeRadius}
C ${x - loopRadius},${y - nodeRadius - loopRadius}
${x - loopRadius},${y + nodeRadius + loopRadius}
${x},${y + nodeRadius}`;
} else {
// Regular straight line for normal edges
return `M ${d.source.x},${d.source.y} L ${d.target.x},${d.target.y}`;
}
});
link.attr("x1", d => d.source.x)
.attr("y1", d => d.source.y)
.attr("x2", d => d.target.x)
.attr("y2", d => d.target.y);
node.attr("transform", d => `translate(${d.x},${d.y})`);
}
@ -613,21 +599,16 @@ function draw(pathway, elem) {
// Kanten zeichnen
const link = zoomable.append("g")
.selectAll("path")
.selectAll("line")
.data(links)
.enter().append("path")
.enter().append("line")
// Check if target is pseudo and draw marker only if not pseudo
.attr("class", d => d.target.pseudo ? "link_no_arrow" : "link")
.attr("marker-end", d => {
if (d.target.pseudo) return '';
if (d.source.id === d.target.id) return 'url(#curve-arrow)'; // Use curve arrow for self-loops
return d.multi_step ? 'url(#doublearrow)' : 'url(#arrow)';
})
.attr("fill", "none")
.on("click", function(event, d) {
.attr("marker-end", d => d.target.pseudo ? '' : d.multi_step ? 'url(#doublearrow)' : 'url(#arrow)')
.on("click", function(event, d) {
const wasHighlighted = d3.select(this).classed("highlighted");
d3.selectAll("path").classed("highlighted", false);
d3.selectAll("line").classed("highlighted", false);
if (!wasHighlighted) {
const toHighlight = [];
@ -635,13 +616,13 @@ function draw(pathway, elem) {
if (d.source.pseudo || d.target.pseudo) {
if (d.target.pseudo) {
d3.selectAll("path").each(e => {
d3.selectAll("line").each(e => {
if (e !== undefined && e.source.id === d.target.id) {
toHighlight.push(e.el);
}
});
} else {
d3.selectAll("path").each(e => {
d3.selectAll("line").each(e => {
if (e !== undefined && (e.target.id === d.source.id || e.source.id === d.source.id)) {
toHighlight.push(e.el);
}

View File

@ -5,8 +5,8 @@
class="modal"
x-data="modalForm({ state: { selectedEdge: '', imageUrl: '' } })"
@modal-opened.window="
const links = d3.selectAll('path.highlighted');
const links = d3.selectAll('line.highlighted');
console.log(links);
if (!links.empty()) {
const el = links.node();
const selectElement = document.getElementById('delete_pathway_edge_edges');

View File

@ -367,18 +367,6 @@
>
<path d="M 0 0 L 10 5 L 0 10 z" fill="#999" />
</marker>
<marker
id="curve-arrow"
viewBox="0 0 10 10"
refX="10"
refY="5"
markerWidth="6"
markerHeight="6"
orient="auto"
markerUnits="strokeWidth"
>
<path d="M 0 0 L 10 5 L 0 10 z" fill="#999" />
</marker>
<marker
id="doublearrow"
viewBox="0 0 20 30"