Comments (5)
Since I got here via my favorite search engine I'll leave a hint how to accomplish this:
Create an extension like so:
{
"name": "Link",
"uri": "http://schema/bpmn/link",
"prefix": "link",
"xml": {
"tagAlias": "lowerCase"
},
"types": [
{
"name": "Internal",
"superClass": ["Element"],
"properties": [
{
"name": "href",
"isAttr": true,
"type": "String"
}
]
}
],
"emumerations": [],
"associations": []
}
Add xmlns:link="http://schema/bpmn/link"
to the <bpmn2:definitions>
tag in a diagram you want to add links to. Then add your links to an element, e.g.:
...
<bpmn2:subProcess id="PMPR" name="PMPR">
<bpmn2:extensionElements>
<link:internal href="/processes/spr?subprocess=PMPR" />
</bpmn2:extensionElements>
...
Now you can check if an element contains a link extension and react on that, e.g., on root.set
:
// Check if the element references a link that should be opened instead
const extensionElements = event.element?.businessObject?.extensionElements?.values;
if (extensionElements) {
const links = extensionElements.filter(
(element: { $type: string }) => element.$type === 'link:internal'
);
if (links.length === 1) {
navigationInProgress = true;
goto(links[0].href, { state: { ...history.state } });
}
}
from bpmn-js.
I would really appreciate that feature. My use-case is as follows:
We use DokuWiki as a communication platform and quality management system. There is a DokuWiki-PlugIn that embeds bpmn-js into DokuWiki. It would be very nice to be able to link process steps to Wiki pages.
I'm thinking of working around this by using, e.g., an overlay to link to the desired page. Any other ideas?
from bpmn-js.
This sounds like a great scope for a side project.
We don't plan to add such functionality to the bpmn-js CORE though.
from bpmn-js.
@MLNW Awesome contribution.
As this is requested once in a while would you like to contribute an example how to add it (and use it)? Basically your post in a README.md
under the name let's say external-links
.
We'd otherwise look into picking it up, one day.
from bpmn-js.
@nikku At this moment I sadly do not have the capacity to do so. If someone else wants to use my comment as the basis for an example, go ahead 🚀
from bpmn-js.
Related Issues (20)
- Multi-selection in viewer causes black boxes HOT 6
- Why is it so hard to use `bpmn-js` in a NodeJS TS project ? HOT 1
- Indicate via a comment if a fix has been released
- Visual glitches using connect tool
- Select target instead of connection when connecting HOT 3
- Searching for Plane element results in error HOT 4
- elements.changed event is not triggering in custom rule HOT 7
- Append preview not cleaned up when deleting element through keyboard HOT 1
- Add typing for essential services and events
- Popup Menu positioning breaks inside "containing blocks" HOT 8
- make the artifacts element support flowElements HOT 1
- Remove button is not displayed for external labels HOT 1
- 'create' opinion cannot removed in palette entries HOT 1
- Call activity outline not customized
- HTML validation errors HOT 10
- Investigate if we want to use `context-fill` and `context-stroke` for rendering markers HOT 2
- Attached XML can't able to open by BPMN 2.0 HOT 7
- Attached XML can't able to open by BPMN HOT 2
- View camunda diagram XML in REACT HOT 1
- Diagram search should only commit navigation changes on `ENTER` HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from bpmn-js.