update label in canvas

This commit is contained in:
Janik von Rotz committed 2023-08-31 10:13:32 +02:00
1 parent 79e9890b46
commit 8692a849f7
2 files changed
+25 -17

No files matched your search

+4 -5
View File
@@ -3,13 +3,13 @@
{"type":"text","text":"User","id":"e4453b07c7efb110","x":-320,"y":-300,"width":100,"height":60,"color":"4"},
{"type":"text","text":"Role","id":"6f83bef240cef0a0","x":-35,"y":-300,"width":100,"height":60,"color":"4"},
{"type":"text","text":"Group","id":"516af98a002c6f8a","x":-320,"y":-150,"width":100,"height":60,"color":"4"},
{"type":"text","text":"Inherited Group","id":"a53bf8944bdb649a","x":-640,"y":-150,"width":170,"height":60,"color":"4"},
{"type":"text","text":"Menu","id":"d9f6873f51bb0add","x":-605,"y":30,"width":100,"height":60,"color":"3"},
{"type":"text","text":"Views","id":"296c822362e95946","x":-420,"y":30,"width":100,"height":60,"color":"3"},
{"type":"text","text":"Access Rights","id":"39e667b4bb0e6748","x":-220,"y":30,"width":170,"height":60,"color":"1"},
{"type":"text","text":"Model + Domain + Access Type","id":"f63c21d203fff995","x":130,"y":170,"width":175,"height":60,"color":"3"},
{"type":"text","text":"Model + Access Type","id":"0327dc932901ada1","x":-205,"y":170,"width":140,"height":60,"color":"3"},
{"type":"text","text":"Record Roles","id":"eb6e29f1e861d07c","x":130,"y":30,"width":170,"height":60,"color":"1"}
{"type":"text","text":"Record Roles","id":"eb6e29f1e861d07c","x":130,"y":30,"width":170,"height":60,"color":"1"},
{"type":"text","text":"Inherited Group","id":"a53bf8944bdb649a","x":-675,"y":-150,"width":170,"height":60,"color":"4"}
],
"edges":[
{"id":"dd8f3c35a30ff885","fromNode":"6f83bef240cef0a0","fromSide":"left","toNode":"e4453b07c7efb110","toSide":"right","label":"assign"},
@@ -18,11 +18,10 @@
{"id":"27abfa98f7847086","fromNode":"516af98a002c6f8a","fromSide":"left","toNode":"a53bf8944bdb649a","toSide":"right","label":"include"},
{"id":"cfee08be00958a5c","fromNode":"516af98a002c6f8a","fromSide":"bottom","toNode":"d9f6873f51bb0add","toSide":"top","label":"grant"},
{"id":"1dbc344b6d38d8d4","fromNode":"516af98a002c6f8a","fromSide":"bottom","toNode":"296c822362e95946","toSide":"top","label":"grant"},
{"id":"07ab12d0a33df69e","fromNode":"516af98a002c6f8a","fromSide":"bottom","toNode":"39e667b4bb0e6748","toSide":"top","label":"include"},
{"id":"c1b494761ae52b4a","fromNode":"516af98a002c6f8a","fromSide":"bottom","toNode":"eb6e29f1e861d07c","toSide":"top","label":"include"},
{"id":"c19956127b4edab2","fromNode":"39e667b4bb0e6748","fromSide":"top","toNode":"516af98a002c6f8a","toSide":"bottom"},
{"id":"5037b48eee560a2e","fromNode":"39e667b4bb0e6748","fromSide":"bottom","toNode":"0327dc932901ada1","toSide":"top","label":"grant"},
{"id":"0f4a0e62d9c4ef36","fromNode":"eb6e29f1e861d07c","fromSide":"bottom","toNode":"f63c21d203fff995","toSide":"top","label":"grant"},
{"id":"0d2daca977ce8fad","fromNode":"f63c21d203fff995","fromSide":"left","toNode":"0327dc932901ada1","toSide":"right","label":"overwrite"}
{"id":"0d2daca977ce8fad","fromNode":"f63c21d203fff995","fromSide":"left","toNode":"0327dc932901ada1","toSide":"right","label":"overwrite"},
{"id":"98749a5c68e477a3","fromNode":"516af98a002c6f8a","fromSide":"bottom","toNode":"39e667b4bb0e6748","toSide":"top","label":"include"}
]
}
+21 -12
View File
@@ -11,6 +11,7 @@ sitemap
*/
// settings
const debug = false
const ignoreFiles = ['_navbar.md', '_sidbar.md']
const scheme = 'https://'
const hostname = 'wiki.mint-system.ch'
@@ -229,25 +230,33 @@ function renderEdge(edge) {
if(edge['label']) {
// Calculate position with offset
// Calculate position of label
let labelLength = edge['label'].length*4
let labelX = fromX - labelLength
let labelY = fromY
if (toX < fromX) {
labelX -= Math.abs(toX - fromX)/2
}
if (toX > fromX) {
labelX += Math.abs((fromX-toX)/2)
}
if (toY > fromY) {
labelY += Math.abs((fromY-toY)/2)
}
if (toX < fromX) {
labelX -= Math.abs((toX-fromY)/2)
labelX += Math.abs(fromX - toX)/2
}
if (toY < fromY) {
labelY -= Math.abs((toY-fromY)/2)
labelY += Math.abs(toY - fromY)/2
}
if (toY > fromY) {
labelY += Math.abs(fromY - toY)/2
}
// console.log(`(${labelX}/${labelY}) toX:${toX} fromX:${fromX} toY:${toY} fromY:${fromY}`)
label_text = edge['label']
if (debug) {
label_text += ` (${labelX}/${labelY})`
}
label = content = `<text x="${labelX}" y="${labelY}" font-family="${fontFamily}" fill="${fontColor}">${edge['label']}</text>`
label = `
<text x="${labelX}" y="${labelY}" font-family="${fontFamily}">${label_text}</text>
`
}
return `
@@ -257,7 +266,7 @@ function renderEdge(edge) {
<marker xmlns="http://www.w3.org/2000/svg" id="arrow-start-${id}" viewBox="-10 -10 10 10" refX="-1" refY="-5" fill="${color}" markerUnits="strokeWidth" markerWidth="3" markerHeight="3" orient="auto">
<path d="M 0 0 L -7 -5 L -0 -10 z"/>
</marker>
<line x1="${fromX}" y1="${fromY}" x2="${toX}" y2="${toY}" stroke="${color}" stroke-width="${strockWidth}" ${marker} />
<line x1="${fromX}" y1="${fromY}" x2="${toX}" y2="${toY}" stroke="${color}" fill="white" stroke-width="${strockWidth}" ${marker} />
${label}
`
}