I have setup three confiforms through which we collaboratively create documentation for different assets (OPC apps, jobs and programs). However all data is merged into one table in the end. Some of the different assets are related. An OPC app for example is a sequence of jobs. For that reason I have created a smart multi-select field called related jobs which fetches names from previously entered jobs so that interdependencies between OPC apps and jobs are visible.
Now I was wondering whether there is any way to make these multi-select entries clickable, so that users can navigate to a job directly by from the OPC app documentation entry. Anyone has had a similar problem or knows a solution to this?
If I understand you correctly the question is about the ConfiForms app and how you can transform an item of a multi-select field into a clickable link?
Is that right?
Alex
That's exactly right.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Little example
Configuration of my forms
<p class="auto-cursor-target"><br /></p><ac:structured-macro ac:name="confiform" ac:schema-version="1" ac:macro-id="db641c6e-c3be-4549-9ffb-13bdebd10ead"><ac:parameter ac:name="formName">options</ac:parameter><ac:rich-text-body><p class="auto-cursor-target"><br /></p><ac:structured-macro ac:name="confiform-entry-register" ac:schema-version="1" ac:macro-id="fbcc2389-abdf-466a-85cd-c65ff54b544b"><ac:rich-text-body><p><br /></p></ac:rich-text-body></ac:structured-macro><p><ac:structured-macro ac:name="confiform-field-definition" ac:schema-version="1" ac:macro-id="99abdd51-9abe-4c8b-96f4-af1dcf9853d9"><ac:parameter ac:name="fieldName">option</ac:parameter><ac:parameter ac:name="fieldLabel">Option</ac:parameter><ac:parameter ac:name="type">text</ac:parameter><ac:parameter ac:name="required">true</ac:parameter></ac:structured-macro></p></ac:rich-text-body></ac:structured-macro><p><br /></p><ac:structured-macro ac:name="confiform" ac:schema-version="1" ac:macro-id="a6f5cbd1-d525-4a03-9ab3-7de56628f02b"><ac:parameter ac:name="formName">using</ac:parameter><ac:rich-text-body><p class="auto-cursor-target"><br /></p><ac:structured-macro ac:name="confiform-entry-register" ac:schema-version="1" ac:macro-id="c97641b9-0c38-47ec-9ad4-c763ef750485"><ac:rich-text-body><p><br /></p></ac:rich-text-body></ac:structured-macro><p><ac:structured-macro ac:name="confiform-field-definition" ac:schema-version="1" ac:macro-id="25a74361-4c3e-49b0-b3fd-6d87dd296a29"><ac:parameter ac:name="fieldName">items</ac:parameter><ac:parameter ac:name="fieldLabel">items</ac:parameter><ac:parameter ac:name="values">[1829240834|options|option|true||]</ac:parameter><ac:parameter ac:name="type">smartmultiselect</ac:parameter></ac:structured-macro></p></ac:rich-text-body></ac:structured-macro><p><br /></p><ac:structured-macro ac:name="confiform-card" ac:schema-version="1" ac:macro-id="5efb155e-63b0-427d-aff7-721c83d362c3"><ac:parameter ac:name="formName">using</ac:parameter><ac:rich-text-body><p class="auto-cursor-target"><br /></p><ac:structured-macro ac:name="confiform-entry-edit" ac:schema-version="1" ac:macro-id="129a32c4-7cc7-4baf-b6f6-f4e95cbaed30" /><p><ac:structured-macro ac:name="confiform-field" ac:schema-version="1" ac:macro-id="ef5da285-df98-45f0-b277-580f638323d5"><ac:parameter ac:name="fieldName">items</ac:parameter></ac:structured-macro></p><p><ac:structured-macro ac:name="confiform-field" ac:schema-version="1" ac:macro-id="194cde8b-46f7-4e74-bb42-1a8ba6effc61"><ac:parameter ac:name="fieldName">items.transform(option.prepend(https://vertuna.atlassian.net/wiki/spaces/~800753286/pages/1829240834/?cf_search_using=*).append(*).asLink([entry.option])).toString</ac:parameter><ac:parameter ac:name="title">using transform</ac:parameter><ac:parameter ac:name="macroHash">-1212810348</ac:parameter></ac:structured-macro> </p><p><ac:structured-macro ac:name="confiform-field" ac:schema-version="1" ac:macro-id="2710b9d6-6982-4323-bdbc-281c58464976"><ac:parameter ac:name="fieldName">items.iterateAndPrint([entry.option.prepend(https://vertuna.atlassian.net/wiki/spaces/~800753286/pages/1829240834/?cf_search_using=*).append(*).asLink([entry.option]).addCRLFHtml])</ac:parameter><ac:parameter ac:name="title">Using iterate and print</ac:parameter><ac:parameter ac:name="macroHash">736013961</ac:parameter></ac:structured-macro> </p></ac:rich-text-body></ac:structured-macro><p class="auto-cursor-target"><br /></p>
And the demo video
Alex
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Thanks a lot @Alex Medved _ConfiForms_
this is definitely helping already. I have adapted the expression and the links do appear now. Would I need to change anything to redirect to table entries instead of cards (as seen in your demo)? Whenever a user clicks on the created link I would like the table entry to show as seen in the picture. Currently it will simply reload the current page. The literal expression I am using for the field name is (changed the reatedJob field to successor):
successor.iterateAndPrint([entry.name.prepend(https://confluence.ourcompanydomain/display/PayDK/LS+Documentation+Library/?cf_search_using=*).append(*).asLink([entry.name]).addCRLFHtml])
Thanks in advance!
Mauro
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I have a table in my page and by clicking on the link I refresh the page to show the matching rows (it doe snot matter what is filtered - card or a table... whatever I have on the page)
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
@Alex Medved _ConfiForms_ It doesn't seem to work for me unfortunately. Could it be a problem that I am using a merged confiforms table to display the entries?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Merged ConfiForms table? A TableViewMerger macro? I dont think we have this on cloud... Or the question is not about cloud version of ConfiForms?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
@Alex Medved _ConfiForms_ I was pretty sure it was the cloud version, but if you say merged confiforms tables are not available there, then I must be wrong. Would there be any workaround in this case?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
But after latest comments I really struggle to understand what do you want... to filter this TableViewMerger from URL parameters?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
@Alex Medved _ConfiForms_ I understand that, let me try to explain again. So there are two different forms. 1. A Jobs form where users enter a job name, description and additional information; 2. An OPC application form with a smart multiselect field fetching all job names that have been entered in the form. All entries (jobs and OPC apps) are displayed in a confiforms tableview merger. The fields I added to this table are [type], [name], [creator], and [modifiedOn]. So the table aggregates data from the different forms in these columns. Now I would like to add a new column / field to this table which scans the relatedJobs smart multiselect field from the OPC form, generates a link to the corresponding entry (from the Jobs form) and adds it into this table. That way I want users to be able to open a related job entry without browsing through the table and then clicking on the entryviewer button (Show). I hope that makes more sense now.
The problem with the demo solution you suggested seems to be that the link that is being generated does not seem to redirect anywhere. It simply reloads the page, but the table view doesn't change nor does an entry open up. This is what a link that is generated looks like on my end:
https://confluence.ourcompanydomain/PayDK/LS+Documentation+Library/?cf_search_using=*Job331*
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Create a (new) page where you show (all) Jobs
Make a link that you see in my demo to point at THAT page, so it will filter the page with the jobs to show a particular job
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
@Alex Medved _ConfiForms_ Unfortunately, that will send me to a page not found page. Perhaps confiforms is not the right tool to create what I need here.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Page not found means the URL is not correct...
Once again, create a NEW page and put a TableView, for example, over the "jobs" form there
In your current set up (and what I was trying to demonstrate) - set the link to be generated to that created page
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
@Alex Medved _ConfiForms_ Fixed the URL in the expression. So it will now take me to the page which only contains jobs (see below). The URL looks correctly formatted with the appended cf search parameters, but the job entry I clicked (BXYDR765) is not being opened up.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Is your form is named “using”!?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
@Alex Medved _ConfiForms_ Right.. that was it. Sorry for the confusion. Now it does filter the table, so that's definitely workable. Thank you Alex!!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
So yes, I use this concept - https://wiki.vertuna.com/display/CONFIFORMS/Creating+links+to+filter+views+from+request+parameters+-+url
The name of the form must be in the URL parameter
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Thanks @Alex Medved _ConfiForms_ . One final question in that regard. I have setup an IFTTT rule which creates a new confluence page for each new OPC application entry. Those pages will display some of the form fields. Now in the macro for those pages I would like to have a field which fetches the selected options from the smart multi-select field (relatedJobs) and displays them as links to the respective job's confluence pages. I have used the following expression for that:
relatedJobs.iterateAndPrint([entry.name.prepend(https://confluence.ourcompanydomain.int/display/PayDK/).asLink([entry.name]).addCRLFHtml])
Interestingly enough this expression does function correctly when i add it to the tableview macro on the page where the form is defined. On the newly created page however it doesn't and no text is shown. Do you have any idea why this is the case?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Most probably the expression for [entry.field_name] gets evaluated while the page is created
Consider using the asEntryRef function https://wiki.vertuna.com/display/CONFIFORMS/Virtual+functions
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
@Alex Medved _ConfiForms_ That helps fetching for the names. But it doesn't seem to work for creating and attaching the links. Thanks still!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
What expression do you have?
Something as below?
relatedJobs.iterateAndPrint([entry._func.asEntryRef(entry.name.prepend(https://confluence.ourcompanydomain.int/display/PayDK/).asLink([entry.name]).addCRLFHtml)])
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi @Alex Medved _ConfiForms_ Yes, so i have tried using:
relatedJobs.iterateAndPrint([entry._func.asEntryRef(entry.name).prepend(https://confluence.ourcompanydomain.int/display/PayDK/).asLink([entry._func.asEntryRef(entry.name)]).addCRLFHtml])
which does return all the related jobs but without separation (as one string) and without links attached.
When using your version it doesn't return anything. Interestingly when I insert your expression after the site was created however, it works perfectly fine.
I have now added a tableview which only displays the row that corresponds to the current entry, to the ifttt macro. In that tableview macro i have added your expression as a field and that will display the links right after page creation. :)
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Consider other options as well, to enhance issue linking in Jira. Instead of custom fields, utilize automation rules to add comments with clickable links to related jobs.
Jira Service Management (JSM) users can create custom request types with dynamic forms featuring clickable references. Furthermore, explore Marketplace apps offering advanced linking capabilities.
Note that directly making multi-select fields clickable is not possible in standard Jira, requiring additional setup and potentially third-party add-ons. By implementing these solutions, you can create a user-friendly system for navigating and documenting linked assets, boosting overall Jira usability
Hope this helps !!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Begin by utilizing your existing smart multi-select field for "related jobs" as the foundation. Next, establish an automation rule that triggers whenever this field is updated.
If you have the ScriptRunner add-on, create a scripted field to generate HTML links.
Then, configure the automation rule to update a custom text field with the scripted field's output, ensuring the renderer is set to "Full Content."
Finally, add this custom text field to your issue view screen to display the clickable links.
groovy
def relatedJobs = issue.getCustomFieldValue(getCustomFieldManager().getCustomFieldObjectByName("related jobs"))
def links = relatedJobs.collect { job ->
"<a href='/browse/${job.key}'>${job.summary}</a>"
}
return links.join(", ")
Hope this helps - Happy to help further!!
Thank you very much and have a great one!
Warm regards
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
thanks a lot for your response. Unfortunately my organization will not grant me access to ScriptRunner. Are you aware of any other plug-ins that could fix this?
Thanks in advance!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.