<!-- 
RSS generated by JIRA (9.4.2#940002-sha1:46d1a51de284217efdcb32434eab47a99af2938b) at Mon Feb 12 09:16:26 CET 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>Magnolia - Issue tracker</title>
    <link>https://jira.magnolia-cms.com</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-uk</language>    <build-info>
        <version>9.4.2</version>
        <build-number>940002</build-number>
        <build-date>19-01-2023</build-date>
    </build-info>


<item>
            <title>[MGNLUI-4419] Allow RichTextFieldFactory to link to any workspace</title>
                <link>https://jira.magnolia-cms.com/browse/MGNLUI-4419</link>
                <project id="10625" key="MGNLUI">Magnolia UI</project>
                    <description>&lt;p&gt;In a&#160;RichTextField, the users have the possibility to add links to a website node or to a DAM node.&lt;/p&gt;

&lt;p&gt;If we want to create links to another workspaces, we need to create a custom field type and duplicate half of the methods.&lt;/p&gt;

&lt;p&gt;It would be great to have the mapping workspace -&amp;gt; app name available in the definition of the form field, so we can configure it in yaml.&lt;/p&gt;</description>
                <environment></environment>
        <key id="65626">MGNLUI-4419</key>
            <summary>Allow RichTextFieldFactory to link to any workspace</summary>
                <type id="4" iconUrl="https://jira.magnolia-cms.com/secure/viewavatar?size=xsmall&amp;avatarId=10890&amp;avatarType=issuetype">Improvement</type>
                                            <priority id="6" iconUrl="https://jira.magnolia-cms.com/images/icons/priorities/neutral.gif">Neutral</priority>
                        <status id="1" iconUrl="https://jira.magnolia-cms.com/images/icons/statuses/open.png" description="The issue is open and ready for the assignee to start work on it.">Open</status>
                    <statusCategory id="2" key="new" colorName="default"/>
                                    <resolution id="-1">Unresolved</resolution>
                                        <assignee username="-1">Unassigned</assignee>
                                    <reporter username="amanzoni">Adrien Manzoni</reporter>
                        <labels>
                    </labels>
                <created>Tue, 17 Apr 2018 09:41:43 +0200</created>
                <updated>Mon, 8 Mar 2021 09:23:17 +0100</updated>
                                            <version>5.6.4</version>
                    <version>6.2</version>
                                                    <component>forms</component>
                        <due></due>
                            <votes>2</votes>
                                    <watches>4</watches>
                                                                                                                <comments>
                            <comment id="199102" author="chris.jennings" created="Mon, 7 Oct 2019 15:12:49 +0200"  >&lt;p&gt;Another client has raised this and has suggested this replacement method with an accompanying&#160;addAcceptedWorkspaceToApp method.&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
&lt;span class=&quot;code-keyword&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;code-object&quot;&gt;String&lt;/span&gt; mapWorkSpaceToApp(&lt;span class=&quot;code-object&quot;&gt;String&lt;/span&gt; workspace) {
  &lt;span class=&quot;code-keyword&quot;&gt;for&lt;/span&gt; (&lt;span class=&quot;code-keyword&quot;&gt;final&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;var&lt;/span&gt; workspaceToAppMapping : workspaceToAppMappings) {
    &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (workspace.equalsIgnoreCase(workspaceToAppMapping.workspace)) {
      &lt;span class=&quot;code-keyword&quot;&gt;return&lt;/span&gt; workspaceToAppMapping.app;
    }
  }
  &lt;span class=&quot;code-keyword&quot;&gt;throw&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; IllegalArgumentException(workspace + &lt;span class=&quot;code-quote&quot;&gt;&quot; is not a supported workspace by rich text field&quot;&lt;/span&gt;);
}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&#160;&lt;/p&gt;</comment>
                            <comment id="199103" author="mfosgerau" created="Mon, 7 Oct 2019 15:19:55 +0200"  >&lt;p&gt;Here&apos;s a workaround implementation until this gets into the official magnolia code:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
&lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;class &lt;/span&gt;SgRichTextFieldFactory &lt;span class=&quot;code-keyword&quot;&gt;extends&lt;/span&gt; RichTextFieldFactory {
    &lt;span class=&quot;code-keyword&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;static&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;final&lt;/span&gt; Logger log = LoggerFactory.getLogger(SgRichTextFieldFactory.class);

    &lt;span class=&quot;code-keyword&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;final&lt;/span&gt; SimpleTranslator i18n;
    &lt;span class=&quot;code-keyword&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;final&lt;/span&gt; ChooserController chooserController;
    &lt;span class=&quot;code-keyword&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;final&lt;/span&gt; AppDescriptorRegistry appDescriptorRegistry;

    &lt;span class=&quot;code-keyword&quot;&gt;private&lt;/span&gt; MagnoliaCKEditorTextField richTextEditor;

    &lt;span class=&quot;code-keyword&quot;&gt;private&lt;/span&gt; List&amp;lt;WorkspaceToAppMapping&amp;gt; workspaceToAppMappings;

    &lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; SgRichTextFieldFactory(RichTextFieldDefinition definition, ComponentProvider componentProvider, SimpleTranslator i18n, ChooserController chooserController, AppDescriptorRegistry appDescriptorRegistry) {
        &lt;span class=&quot;code-keyword&quot;&gt;super&lt;/span&gt;(definition, componentProvider, i18n, chooserController, appDescriptorRegistry);
        &lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;.i18n = i18n;
        &lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;.chooserController = chooserController;
        &lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;.appDescriptorRegistry = appDescriptorRegistry;
        workspaceToAppMappings = &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; ArrayList&amp;lt;&amp;gt;();

        addAcceptedWorkspaceToApp(RepositoryConstants.WEBSITE,&lt;span class=&quot;code-quote&quot;&gt;&quot;pages&quot;&lt;/span&gt;);
        addAcceptedWorkspaceToApp(&lt;span class=&quot;code-quote&quot;&gt;&quot;dam&quot;&lt;/span&gt;,&lt;span class=&quot;code-quote&quot;&gt;&quot;assets&quot;&lt;/span&gt;);
    }

    @Override
    &lt;span class=&quot;code-keyword&quot;&gt;protected&lt;/span&gt; Component createFieldComponent() {
        MagnoliaCKEditorConfig config = initializeCKEditorConfig();
        richTextEditor = &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; MagnoliaCKEditorTextField(config);

        &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (getDefinition().getHeight() &amp;gt; 0) {
            richTextEditor.setHeight(getDefinition().getHeight(), Sizeable.Unit.PIXELS);
        }

        richTextEditor.addListener((eventName, value) -&amp;gt; {
            &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (eventName.equals(EVENT_GET_MAGNOLIA_LINK)) {
                &lt;span class=&quot;code-keyword&quot;&gt;try&lt;/span&gt; {
                    Gson gson = &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; Gson();
                    RichTextFieldFactory.PluginData pluginData = gson.fromJson(value, RichTextFieldFactory.PluginData.class);
                    openLinkDialog(pluginData.path, pluginData.workspace);
                } &lt;span class=&quot;code-keyword&quot;&gt;catch&lt;/span&gt; (Exception e) {
                    log.error(&lt;span class=&quot;code-quote&quot;&gt;&quot;openLinkDialog failed&quot;&lt;/span&gt;, e);
                    richTextEditor.firePluginEvent(EVENT_CANCEL_LINK, i18n.translate(&lt;span class=&quot;code-quote&quot;&gt;&quot;ui-framework.richtexteditorexception.opentargetappfailure&quot;&lt;/span&gt;));
                }
            }
        });

        &lt;span class=&quot;code-keyword&quot;&gt;return&lt;/span&gt; richTextEditor;
    }

    &lt;span class=&quot;code-keyword&quot;&gt;protected&lt;/span&gt; MagnoliaCKEditorConfig initializeCKEditorConfig() {

        MagnoliaCKEditorConfig config = &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; MagnoliaCKEditorConfig();
        &lt;span class=&quot;code-object&quot;&gt;String&lt;/span&gt; path = VaadinService.getCurrentRequest().getContextPath();

        &lt;span class=&quot;code-comment&quot;&gt;// MAGNOLIA LINK PLUGIN &#8212; may be used with/without customConfig
&lt;/span&gt;        config.addExternalPlugin(PLUGIN_NAME_MAGNOLIALINK, path + PLUGIN_PATH_MAGNOLIALINK);
        config.addListenedEvent(EVENT_GET_MAGNOLIA_LINK);

        &lt;span class=&quot;code-comment&quot;&gt;// CUSTOM CONFIG.JS &#8212; bypass further config because it can&apos;t be overridden otherwise
&lt;/span&gt;        &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (StringUtils.isNotBlank(getDefinition().getConfigJsFile())) {
            config.addExtraConfig(&lt;span class=&quot;code-quote&quot;&gt;&quot;customConfig&quot;&lt;/span&gt;, &lt;span class=&quot;code-quote&quot;&gt;&quot;&lt;span class=&quot;code-quote&quot;&gt;&apos;&quot;&lt;/span&gt; + path + getDefinition().getConfigJsFile() + &lt;span class=&quot;code-quote&quot;&gt;&quot;&apos;&lt;/span&gt;&quot;&lt;/span&gt;);
            &lt;span class=&quot;code-keyword&quot;&gt;return&lt;/span&gt; config;
        }

        &lt;span class=&quot;code-comment&quot;&gt;// DEFINITION
&lt;/span&gt;        &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (!getDefinition().isAlignment()) {
            config.addToRemovePlugins(&lt;span class=&quot;code-quote&quot;&gt;&quot;justify&quot;&lt;/span&gt;);
        }
        &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (!getDefinition().isImages()) {
            config.addToRemovePlugins(&lt;span class=&quot;code-quote&quot;&gt;&quot;image&quot;&lt;/span&gt;);
        }
        &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (!getDefinition().isLists()) {
            &lt;span class=&quot;code-comment&quot;&gt;// In CKEditor 4.1.1 enterkey depends on indent which itself depends on list
&lt;/span&gt;            config.addToRemovePlugins(&lt;span class=&quot;code-quote&quot;&gt;&quot;enterkey&quot;&lt;/span&gt;);
            config.addToRemovePlugins(&lt;span class=&quot;code-quote&quot;&gt;&quot;indent&quot;&lt;/span&gt;);
            config.addToRemovePlugins(&lt;span class=&quot;code-quote&quot;&gt;&quot;list&quot;&lt;/span&gt;);
        }
        &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (!getDefinition().isSource()) {
            config.addToRemovePlugins(&lt;span class=&quot;code-quote&quot;&gt;&quot;sourcearea&quot;&lt;/span&gt;);
        }
        &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (!getDefinition().isTables()) {
            config.addToRemovePlugins(&lt;span class=&quot;code-quote&quot;&gt;&quot;table&quot;&lt;/span&gt;);
            config.addToRemovePlugins(&lt;span class=&quot;code-quote&quot;&gt;&quot;tabletools&quot;&lt;/span&gt;);
            config.addToRemovePlugins(&lt;span class=&quot;code-quote&quot;&gt;&quot;tableselection&quot;&lt;/span&gt;);
        }

        &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (getDefinition().getColors() != &lt;span class=&quot;code-keyword&quot;&gt;null&lt;/span&gt;) {
            config.addExtraConfig(&lt;span class=&quot;code-quote&quot;&gt;&quot;colorButton_colors&quot;&lt;/span&gt;, &lt;span class=&quot;code-quote&quot;&gt;&quot;&lt;span class=&quot;code-quote&quot;&gt;&apos;&quot;&lt;/span&gt; + getDefinition().getColors() + &lt;span class=&quot;code-quote&quot;&gt;&quot;&apos;&lt;/span&gt;&quot;&lt;/span&gt;);
            config.addExtraConfig(&lt;span class=&quot;code-quote&quot;&gt;&quot;colorButton_enableMore&quot;&lt;/span&gt;, &lt;span class=&quot;code-quote&quot;&gt;&quot;&lt;span class=&quot;code-keyword&quot;&gt;false&lt;/span&gt;&quot;&lt;/span&gt;);
            config.addToRemovePlugins(&lt;span class=&quot;code-quote&quot;&gt;&quot;colordialog&quot;&lt;/span&gt;);
        } &lt;span class=&quot;code-keyword&quot;&gt;else&lt;/span&gt; {
            config.addToRemovePlugins(&lt;span class=&quot;code-quote&quot;&gt;&quot;colorbutton&quot;&lt;/span&gt;);
            config.addToRemovePlugins(&lt;span class=&quot;code-quote&quot;&gt;&quot;colordialog&quot;&lt;/span&gt;);
        }
        &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (getDefinition().getFonts() != &lt;span class=&quot;code-keyword&quot;&gt;null&lt;/span&gt;) {
            config.addExtraConfig(&lt;span class=&quot;code-quote&quot;&gt;&quot;font_names&quot;&lt;/span&gt;, &lt;span class=&quot;code-quote&quot;&gt;&quot;&lt;span class=&quot;code-quote&quot;&gt;&apos;&quot;&lt;/span&gt; + getDefinition().getFonts() + &lt;span class=&quot;code-quote&quot;&gt;&quot;&apos;&lt;/span&gt;&quot;&lt;/span&gt;);
        } &lt;span class=&quot;code-keyword&quot;&gt;else&lt;/span&gt; {
            config.addExtraConfig(&lt;span class=&quot;code-quote&quot;&gt;&quot;removeButtons&quot;&lt;/span&gt;, &lt;span class=&quot;code-quote&quot;&gt;&quot;&lt;span class=&quot;code-quote&quot;&gt;&apos;Font&apos;&lt;/span&gt;&quot;&lt;/span&gt;);
        }
        &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (getDefinition().getFontSizes() != &lt;span class=&quot;code-keyword&quot;&gt;null&lt;/span&gt;) {
            config.addExtraConfig(&lt;span class=&quot;code-quote&quot;&gt;&quot;fontSize_sizes&quot;&lt;/span&gt;, &lt;span class=&quot;code-quote&quot;&gt;&quot;&lt;span class=&quot;code-quote&quot;&gt;&apos;&quot;&lt;/span&gt; + getDefinition().getFontSizes() + &lt;span class=&quot;code-quote&quot;&gt;&quot;&apos;&lt;/span&gt;&quot;&lt;/span&gt;);
        } &lt;span class=&quot;code-keyword&quot;&gt;else&lt;/span&gt; {
            config.addExtraConfig(&lt;span class=&quot;code-quote&quot;&gt;&quot;removeButtons&quot;&lt;/span&gt;, &lt;span class=&quot;code-quote&quot;&gt;&quot;&lt;span class=&quot;code-quote&quot;&gt;&apos;FontSize&apos;&lt;/span&gt;&quot;&lt;/span&gt;);
        }
        &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (getDefinition().getFonts() == &lt;span class=&quot;code-keyword&quot;&gt;null&lt;/span&gt; &amp;amp;&amp;amp; getDefinition().getFontSizes() == &lt;span class=&quot;code-keyword&quot;&gt;null&lt;/span&gt;) {
            config.addToRemovePlugins(&lt;span class=&quot;code-quote&quot;&gt;&quot;font&quot;&lt;/span&gt;);
            config.addToRemovePlugins(&lt;span class=&quot;code-quote&quot;&gt;&quot;fontSize&quot;&lt;/span&gt;);
        }

        &lt;span class=&quot;code-comment&quot;&gt;// MAGNOLIA EXTRA CONFIG
&lt;/span&gt;        List&amp;lt;MagnoliaCKEditorConfig.ToolbarGroup&amp;gt; toolbars = initializeToolbarConfig();
        config.addToolbarLine(toolbars);

        config.addToExtraPlugins(PLUGIN_NAME_MAGNOLIALINK);
        config.addToRemovePlugins(&lt;span class=&quot;code-quote&quot;&gt;&quot;elementspath&quot;&lt;/span&gt;);
        config.setBaseFloatZIndex(10000);
        config.setResizeEnabled(&lt;span class=&quot;code-keyword&quot;&gt;false&lt;/span&gt;);

        &lt;span class=&quot;code-keyword&quot;&gt;return&lt;/span&gt; config;
    }

    &lt;span class=&quot;code-keyword&quot;&gt;protected&lt;/span&gt; List&amp;lt;MagnoliaCKEditorConfig.ToolbarGroup&amp;gt; initializeToolbarConfig() {
        &lt;span class=&quot;code-keyword&quot;&gt;return&lt;/span&gt; defaultToolbar();
    }

    &lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; void addAcceptedWorkspaceToApp(&lt;span class=&quot;code-keyword&quot;&gt;final&lt;/span&gt; &lt;span class=&quot;code-object&quot;&gt;String&lt;/span&gt; workspace, &lt;span class=&quot;code-keyword&quot;&gt;final&lt;/span&gt; &lt;span class=&quot;code-object&quot;&gt;String&lt;/span&gt; app) {
        &lt;span class=&quot;code-keyword&quot;&gt;try&lt;/span&gt; {
            sgMapWorkspaceToApp(workspace);
            log.debug(&lt;span class=&quot;code-quote&quot;&gt;&quot;Mapping was already added from {} to {}&quot;&lt;/span&gt;, workspace, app);
        } &lt;span class=&quot;code-keyword&quot;&gt;catch&lt;/span&gt; (&lt;span class=&quot;code-keyword&quot;&gt;final&lt;/span&gt; IllegalArgumentException ex) {
            &lt;span class=&quot;code-keyword&quot;&gt;final&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;var&lt;/span&gt; mapping = &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; WorkspaceToAppMapping();
            mapping.setWorkspace(workspace);
            mapping.setApp(app);
            workspaceToAppMappings.add(mapping);
        }
    }

    &lt;span class=&quot;code-keyword&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;code-object&quot;&gt;String&lt;/span&gt; mapWorkSpaceToApp(&lt;span class=&quot;code-keyword&quot;&gt;final&lt;/span&gt; &lt;span class=&quot;code-object&quot;&gt;String&lt;/span&gt; workspace) {
        &lt;span class=&quot;code-keyword&quot;&gt;for&lt;/span&gt; (&lt;span class=&quot;code-keyword&quot;&gt;final&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;var&lt;/span&gt; workspaceToAppMapping : workspaceToAppMappings) {
            &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (workspace.equalsIgnoreCase(workspaceToAppMapping.workspace)) {
                &lt;span class=&quot;code-keyword&quot;&gt;return&lt;/span&gt; workspaceToAppMapping.app;
            }
        }
        &lt;span class=&quot;code-keyword&quot;&gt;throw&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; IllegalArgumentException(workspace + &lt;span class=&quot;code-quote&quot;&gt;&quot; is not a supported workspace by rich text field&quot;&lt;/span&gt;);
    }

    &lt;span class=&quot;code-keyword&quot;&gt;private&lt;/span&gt; void openLinkDialog(&lt;span class=&quot;code-object&quot;&gt;String&lt;/span&gt; path, &lt;span class=&quot;code-object&quot;&gt;String&lt;/span&gt; workspace) {
        chooserController.openChooser(createChooserDefinition(workspace), SessionUtil.getNode(path, workspace))
                .whenComplete((ChooserController.ChooseResult&amp;lt;Node&amp;gt; result, Throwable e) -&amp;gt; {

                    &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (!result.isChosen()) {
                        richTextEditor.firePluginEvent(EVENT_CANCEL_LINK);
                        &lt;span class=&quot;code-keyword&quot;&gt;return&lt;/span&gt;;
                    }
                    &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (e != &lt;span class=&quot;code-keyword&quot;&gt;null&lt;/span&gt;) {
                        &lt;span class=&quot;code-object&quot;&gt;String&lt;/span&gt; error = i18n.translate(&lt;span class=&quot;code-quote&quot;&gt;&quot;ui-framework.richtexteditorexception.cannotaccessselecteditem&quot;&lt;/span&gt;);
                        log.error(error, e);
                        richTextEditor.firePluginEvent(EVENT_CANCEL_LINK, error);
                    }
                    result.getChoice().ifPresent(node -&amp;gt; {
                        Gson gson = &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; Gson();
                        RichTextFieldFactory.MagnoliaLink mlink = createMagnoliaLink(node);
                        richTextEditor.firePluginEvent(EVENT_SEND_MAGNOLIA_LINK, gson.toJson(mlink));
                    });
                });
    }

    &lt;span class=&quot;code-keyword&quot;&gt;private&lt;/span&gt; RichTextFieldFactory.MagnoliaLink createMagnoliaLink(Node node) {
        RichTextFieldFactory.MagnoliaLink mlink = &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; RichTextFieldFactory.MagnoliaLink();
        &lt;span class=&quot;code-keyword&quot;&gt;try&lt;/span&gt; {
            mlink.identifier = node.getIdentifier();
            mlink.repository = node.getSession().getWorkspace().getName();
            mlink.path = node.getPath();
            mlink.caption = PropertyUtil.getString(node, &lt;span class=&quot;code-quote&quot;&gt;&quot;title&quot;&lt;/span&gt;, node.getName());
        }
        &lt;span class=&quot;code-keyword&quot;&gt;catch&lt;/span&gt; (&lt;span class=&quot;code-keyword&quot;&gt;final&lt;/span&gt; RepositoryException ex) {
            log.error(&lt;span class=&quot;code-quote&quot;&gt;&quot;Failed to get linked node {}&quot;&lt;/span&gt;, node, ex);
        }
        &lt;span class=&quot;code-keyword&quot;&gt;return&lt;/span&gt; mlink;
    }

    &lt;span class=&quot;code-keyword&quot;&gt;private&lt;/span&gt; ChooserDefinition&amp;lt;Node, SingleItemWorkbenchChooser&amp;lt;Node&amp;gt;&amp;gt; createChooserDefinition(&lt;span class=&quot;code-object&quot;&gt;String&lt;/span&gt; workspace) {
        SingleItemWorkbenchChooserDefinition&amp;lt;Node&amp;gt; definition = &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; SingleItemWorkbenchChooserDefinition&amp;lt;&amp;gt;();
        AppAwareWorkbenchChooserDefinition&amp;lt;Node&amp;gt; workbenchChooserDefinition = &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; AppAwareWorkbenchChooserDefinition&amp;lt;&amp;gt;(appDescriptorRegistry);
        workbenchChooserDefinition.setAppName(mapWorkSpaceToApp(workspace));
        definition.setWorkbenchChooser(workbenchChooserDefinition);
        &lt;span class=&quot;code-keyword&quot;&gt;return&lt;/span&gt; definition;
    }

    /**
     * Link info wrapper.
     */
    &lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;static&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;class &lt;/span&gt;MagnoliaLink {

        &lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;code-object&quot;&gt;String&lt;/span&gt; identifier;

        &lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;code-object&quot;&gt;String&lt;/span&gt; repository;

        &lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;code-object&quot;&gt;String&lt;/span&gt; path;

        &lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;code-object&quot;&gt;String&lt;/span&gt; caption;

    }

    /**
     * Plugin data wrapper.
     */
    &lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;static&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;class &lt;/span&gt;PluginData {
        &lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;code-object&quot;&gt;String&lt;/span&gt; workspace;
        &lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;code-object&quot;&gt;String&lt;/span&gt; path;
    }

    /**
     * Mapping &lt;span class=&quot;code-keyword&quot;&gt;class &lt;/span&gt;between a workspace and an app.
     */
    &lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;static&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;class &lt;/span&gt;WorkspaceToAppMapping {
        &lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;code-object&quot;&gt;String&lt;/span&gt; workspace;
        &lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;code-object&quot;&gt;String&lt;/span&gt; app;
    }
}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</comment>
                            <comment id="249505" author="JIRAUSER21614" created="Fri, 5 Feb 2021 09:44:43 +0100"  >&lt;p&gt;This is still an issue with Magnolia 6.2.5+ RichTextFieldFactory. Even making RichTextFieldFactory#mapWorkspaceToChooserDialog from private -&amp;gt; protected would allow easier extensibility.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10010">
                    <name>relation</name>
                                                                <inwardlinks description="is related to">
                                                        </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                            <customfield id="customfield_14166" key="com.okapya.jira.checklist:checklist">
                        <customfieldname>Acceptance criteria</customfieldname>
                        <customfieldvalues>
                            
        <checklist>
        <![CDATA[
                            




                
                                    <div class="o-completion" style="display: flex; flex-shrink: 0;"><span  class="aui-lozenge aui-lozenge-complete" style="font-size: 12px; font-weight: normal; display: flex; flex-direction: row; align-items: center;" ><span style="padding-right: 4px; vertical-align: middle;"><svg width="15" height="15" viewBox="0 0 15 15" xmlns="http://www.w3.org/2000/svg" fill="white"><path clip-rule="evenodd" d="m10.41037,3.42544l-7.86501,0c-0.72395,0 -1.31084,0.58688 -1.31084,1.31084l0,7.86508c0,0.7239 0.58689,1.3108 1.31084,1.3108l7.86501,0c0.724,0 1.3109,-0.5869 1.3109,-1.3108l0,-7.86508c0,-0.72396 -0.5869,-1.31084 -1.3109,-1.31084zm-7.86501,-0.65542c-1.08593,0 -1.96626,0.88032 -1.96626,1.96626l0,7.86508c0,1.0859 0.88033,1.9662 1.96626,1.9662l7.86501,0c1.086,0 1.9663,-0.8803 1.9663,-1.9662l0,-7.86508c0,-1.08594 -0.8803,-1.96626 -1.9663,-1.96626l-7.86501,0z" fill-rule="evenodd"/><path d="m5.09049,10.18526l-1.82767,-1.82766l-0.78479,0.78479l2.61246,2.61246l5.38758,-5.38754l-0.78483,-0.78479l-4.60275,4.60274z"/></svg></span><span>Empty</span></span></div>
                        ]]>
    </checklist>


                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10111" key="com.atlassian.jira.toolkit:reporterdomain">
                        <customfieldname>Company</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>magnolia-cms.com</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_10031" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of First Response</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Mon, 7 Oct 2019 15:12:49 +0200</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_12730" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_14151" key="com.atlassian.jira.toolkit:message">
                        <customfieldname>Docu info</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10061" key="com.atlassian.jira.toolkit:lastusercommented">
                        <customfieldname>Last comm is not jira-dev</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>true</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10071" key="com.atlassian.jira.toolkit:lastupdaterorcommenter">
                        <customfieldname>Last participant</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>rkovarik</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_13136" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            3 years, 1 week, 2 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                            <customfield id="customfield_10020" key="com.atlassian.jira.toolkit:attachments">
                        <customfieldname>Number of attachments</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10150" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname>Number of comments</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>3.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10011" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>amanzoni</customfieldvalue>
            <customfieldvalue>chris.jennings</customfieldvalue>
            <customfieldvalue>mfosgerau</customfieldvalue>
            <customfieldvalue>ssaarinen</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                <customfield id="customfield_10833" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|y0006g:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10244" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>9223372036854775807</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_14168" key="com.okapya.jira.checklist:checklist">
                        <customfieldname>Task DoD</customfieldname>
                        <customfieldvalues>
                            
        <checklist>
        <![CDATA[
                            




                
                        
        <div style="margin-bottom: 8px;">
                            <div class="o-completion" style="display: flex; flex-shrink: 0;"><span  class="aui-lozenge" style="font-size: 12px; font-weight: normal; display: flex; flex-direction: row; align-items: center;" ><span style="padding-right: 4px; vertical-align: middle;"><svg width="15" height="15" viewBox="0 0 15 15" xmlns="http://www.w3.org/2000/svg" fill="white"><path clip-rule="evenodd" d="m10.41037,3.42544l-7.86501,0c-0.72395,0 -1.31084,0.58688 -1.31084,1.31084l0,7.86508c0,0.7239 0.58689,1.3108 1.31084,1.3108l7.86501,0c0.724,0 1.3109,-0.5869 1.3109,-1.3108l0,-7.86508c0,-0.72396 -0.5869,-1.31084 -1.3109,-1.31084zm-7.86501,-0.65542c-1.08593,0 -1.96626,0.88032 -1.96626,1.96626l0,7.86508c0,1.0859 0.88033,1.9662 1.96626,1.9662l7.86501,0c1.086,0 1.9663,-0.8803 1.9663,-1.9662l0,-7.86508c0,-1.08594 -0.8803,-1.96626 -1.9663,-1.96626l-7.86501,0z" fill-rule="evenodd"/><path d="m5.09049,10.18526l-1.82767,-1.82766l-0.78479,0.78479l2.61246,2.61246l5.38758,-5.38754l-0.78483,-0.78479l-4.60275,4.60274z"/></svg></span><span>0/6</span></span></div>
                    
            <div class="checklist-progress-bar-wrapper" style="">
        <div class="checklist-progress-bar" style="position: relative; width: 100%; background-color: #cccccc; margin-bottom: 2px; margin-top: 5px;">
                        <div class="checklist-progress" style="display: block; float: none; width: 0%; height: 2px; background: #14892c;">
                            </div>
        </div>
    </div>
        </div>
    
                                    <div style="display: flex; align-items: flex-start; padding: 0; margin-left: 12px; float: none; font-size: 14px;">
                                                                <span style="padding-right: 5px; align-self: flex-start;">
                                <svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg" class="unchecked"><path d="M0.441406 6.94141C0.441406 5.28455 1.78455 3.94141 3.44141 3.94141H15.4414C17.0983 3.94141 18.4414 5.28455 18.4414 6.94141V18.9414C18.4414 20.5983 17.0983 21.9414 15.4414 21.9414H3.44141C1.78455 21.9414 0.441406 20.5983 0.441406 18.9414V6.94141Z" fill="#EFF4FB" /><path fill-rule="evenodd" clip-rule="evenodd" d="M12.4414 3.94141H3.44141C1.78455 3.94141 0.441406 5.28455 0.441406 6.94141V18.9414C0.441406 20.5983 1.78455 21.9414 3.44141 21.9414H15.4414C17.0983 21.9414 18.4414 20.5983 18.4414 18.9414V9.94141H17.4414V18.9414C17.4414 20.046 16.546 20.9414 15.4414 20.9414H3.44141C2.33684 20.9414 1.44141 20.046 1.44141 18.9414V6.94141C1.44141 5.83684 2.33684 4.94141 3.44141 4.94141H12.4414V3.94141Z" fill="#ADBBD0" /><path d="M21.5306 5.91574L19.3486 4.58101L21.5306 3.24628C21.5681 3.22328 21.595 3.18633 21.6053 3.14348C21.6156 3.10063 21.6084 3.05545 21.5855 3.01792L20.9444 1.96985C20.8966 1.89162 20.7942 1.86696 20.716 1.91479L18.6331 3.18898V0.747138C18.6331 0.65546 18.5587 0.581055 18.4671 0.581055H17.2386C17.1469 0.581055 17.0725 0.65546 17.0725 0.747138V3.18898L14.9896 1.91487C14.9112 1.86704 14.8091 1.89162 14.7612 1.96993L14.1201 3.018C14.0972 3.05554 14.09 3.10071 14.1003 3.14356C14.1106 3.18641 14.1375 3.22336 14.175 3.24637L16.3571 4.58101L14.175 5.91574C14.1375 5.93866 14.1106 5.9757 14.1003 6.01847C14.09 6.0614 14.0972 6.10657 14.1201 6.14411L14.7612 7.1921C14.8091 7.27032 14.9112 7.29507 14.9896 7.24724L17.0725 5.97304V8.41489C17.0725 8.50657 17.1469 8.58097 17.2386 8.58097H18.4671C18.5587 8.58097 18.6331 8.50657 18.6331 8.41489V5.97313L20.7161 7.24715C20.7943 7.29499 20.8967 7.27032 20.9444 7.19218L21.5856 6.14411C21.6085 6.10657 21.6157 6.0614 21.6054 6.01855C21.5952 5.97562 21.5682 5.93875 21.5306 5.91574Z" fill="#de350b" /></svg>
                        </span>
                                        <div style="cursor: default; text-align: left; flex-grow: 1; padding-right: 3px; margin-top: 2px;">
                                                
                                                
                                                <span >
                                                        <span>Doc/release notes changes? Comment present?</span>

                        </span>
                    </div>
                                                                    <span style="padding-right: 1px; white-space: nowrap;">
                                                        
                                                        
                                                                                </span>
                                    </div>
                                                <div style="display: flex; align-items: flex-start; padding: 0; margin-left: 12px; float: none; font-size: 14px;">
                                                                <span style="padding-right: 5px; align-self: flex-start;">
                                <svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg" class="unchecked"><path d="M0.441406 6.94141C0.441406 5.28455 1.78455 3.94141 3.44141 3.94141H15.4414C17.0983 3.94141 18.4414 5.28455 18.4414 6.94141V18.9414C18.4414 20.5983 17.0983 21.9414 15.4414 21.9414H3.44141C1.78455 21.9414 0.441406 20.5983 0.441406 18.9414V6.94141Z" fill="#EFF4FB" /><path fill-rule="evenodd" clip-rule="evenodd" d="M12.4414 3.94141H3.44141C1.78455 3.94141 0.441406 5.28455 0.441406 6.94141V18.9414C0.441406 20.5983 1.78455 21.9414 3.44141 21.9414H15.4414C17.0983 21.9414 18.4414 20.5983 18.4414 18.9414V9.94141H17.4414V18.9414C17.4414 20.046 16.546 20.9414 15.4414 20.9414H3.44141C2.33684 20.9414 1.44141 20.046 1.44141 18.9414V6.94141C1.44141 5.83684 2.33684 4.94141 3.44141 4.94141H12.4414V3.94141Z" fill="#ADBBD0" /><path d="M21.5306 5.91574L19.3486 4.58101L21.5306 3.24628C21.5681 3.22328 21.595 3.18633 21.6053 3.14348C21.6156 3.10063 21.6084 3.05545 21.5855 3.01792L20.9444 1.96985C20.8966 1.89162 20.7942 1.86696 20.716 1.91479L18.6331 3.18898V0.747138C18.6331 0.65546 18.5587 0.581055 18.4671 0.581055H17.2386C17.1469 0.581055 17.0725 0.65546 17.0725 0.747138V3.18898L14.9896 1.91487C14.9112 1.86704 14.8091 1.89162 14.7612 1.96993L14.1201 3.018C14.0972 3.05554 14.09 3.10071 14.1003 3.14356C14.1106 3.18641 14.1375 3.22336 14.175 3.24637L16.3571 4.58101L14.175 5.91574C14.1375 5.93866 14.1106 5.9757 14.1003 6.01847C14.09 6.0614 14.0972 6.10657 14.1201 6.14411L14.7612 7.1921C14.8091 7.27032 14.9112 7.29507 14.9896 7.24724L17.0725 5.97304V8.41489C17.0725 8.50657 17.1469 8.58097 17.2386 8.58097H18.4671C18.5587 8.58097 18.6331 8.50657 18.6331 8.41489V5.97313L20.7161 7.24715C20.7943 7.29499 20.8967 7.27032 20.9444 7.19218L21.5856 6.14411C21.6085 6.10657 21.6157 6.0614 21.6054 6.01855C21.5952 5.97562 21.5682 5.93875 21.5306 5.91574Z" fill="#de350b" /></svg>
                        </span>
                                        <div style="cursor: default; text-align: left; flex-grow: 1; padding-right: 3px; margin-top: 2px;">
                                                
                                                
                                                <span >
                                                        <span>Downstream builds green?</span>

                        </span>
                    </div>
                                                                    <span style="padding-right: 1px; white-space: nowrap;">
                                                        
                                                        
                                                                                </span>
                                    </div>
                                                <div style="display: flex; align-items: flex-start; padding: 0; margin-left: 12px; float: none; font-size: 14px;">
                                                                <span style="padding-right: 5px; align-self: flex-start;">
                                <svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg" class="unchecked"><path d="M0.441406 6.94141C0.441406 5.28455 1.78455 3.94141 3.44141 3.94141H15.4414C17.0983 3.94141 18.4414 5.28455 18.4414 6.94141V18.9414C18.4414 20.5983 17.0983 21.9414 15.4414 21.9414H3.44141C1.78455 21.9414 0.441406 20.5983 0.441406 18.9414V6.94141Z" fill="#EFF4FB" /><path fill-rule="evenodd" clip-rule="evenodd" d="M12.4414 3.94141H3.44141C1.78455 3.94141 0.441406 5.28455 0.441406 6.94141V18.9414C0.441406 20.5983 1.78455 21.9414 3.44141 21.9414H15.4414C17.0983 21.9414 18.4414 20.5983 18.4414 18.9414V9.94141H17.4414V18.9414C17.4414 20.046 16.546 20.9414 15.4414 20.9414H3.44141C2.33684 20.9414 1.44141 20.046 1.44141 18.9414V6.94141C1.44141 5.83684 2.33684 4.94141 3.44141 4.94141H12.4414V3.94141Z" fill="#ADBBD0" /><path d="M21.5306 5.91574L19.3486 4.58101L21.5306 3.24628C21.5681 3.22328 21.595 3.18633 21.6053 3.14348C21.6156 3.10063 21.6084 3.05545 21.5855 3.01792L20.9444 1.96985C20.8966 1.89162 20.7942 1.86696 20.716 1.91479L18.6331 3.18898V0.747138C18.6331 0.65546 18.5587 0.581055 18.4671 0.581055H17.2386C17.1469 0.581055 17.0725 0.65546 17.0725 0.747138V3.18898L14.9896 1.91487C14.9112 1.86704 14.8091 1.89162 14.7612 1.96993L14.1201 3.018C14.0972 3.05554 14.09 3.10071 14.1003 3.14356C14.1106 3.18641 14.1375 3.22336 14.175 3.24637L16.3571 4.58101L14.175 5.91574C14.1375 5.93866 14.1106 5.9757 14.1003 6.01847C14.09 6.0614 14.0972 6.10657 14.1201 6.14411L14.7612 7.1921C14.8091 7.27032 14.9112 7.29507 14.9896 7.24724L17.0725 5.97304V8.41489C17.0725 8.50657 17.1469 8.58097 17.2386 8.58097H18.4671C18.5587 8.58097 18.6331 8.50657 18.6331 8.41489V5.97313L20.7161 7.24715C20.7943 7.29499 20.8967 7.27032 20.9444 7.19218L21.5856 6.14411C21.6085 6.10657 21.6157 6.0614 21.6054 6.01855C21.5952 5.97562 21.5682 5.93875 21.5306 5.91574Z" fill="#de350b" /></svg>
                        </span>
                                        <div style="cursor: default; text-align: left; flex-grow: 1; padding-right: 3px; margin-top: 2px;">
                                                
                                                
                                                <span >
                                                        <span>Solution information and context easily available?</span>

                        </span>
                    </div>
                                                                    <span style="padding-right: 1px; white-space: nowrap;">
                                                        
                                                        
                                                                                </span>
                                    </div>
                                                <div style="display: flex; align-items: flex-start; padding: 0; margin-left: 12px; float: none; font-size: 14px;">
                                                                <span style="padding-right: 5px; align-self: flex-start;">
                                <svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg" class="unchecked"><path d="M0.441406 6.94141C0.441406 5.28455 1.78455 3.94141 3.44141 3.94141H15.4414C17.0983 3.94141 18.4414 5.28455 18.4414 6.94141V18.9414C18.4414 20.5983 17.0983 21.9414 15.4414 21.9414H3.44141C1.78455 21.9414 0.441406 20.5983 0.441406 18.9414V6.94141Z" fill="#EFF4FB" /><path fill-rule="evenodd" clip-rule="evenodd" d="M12.4414 3.94141H3.44141C1.78455 3.94141 0.441406 5.28455 0.441406 6.94141V18.9414C0.441406 20.5983 1.78455 21.9414 3.44141 21.9414H15.4414C17.0983 21.9414 18.4414 20.5983 18.4414 18.9414V9.94141H17.4414V18.9414C17.4414 20.046 16.546 20.9414 15.4414 20.9414H3.44141C2.33684 20.9414 1.44141 20.046 1.44141 18.9414V6.94141C1.44141 5.83684 2.33684 4.94141 3.44141 4.94141H12.4414V3.94141Z" fill="#ADBBD0" /><path d="M21.5306 5.91574L19.3486 4.58101L21.5306 3.24628C21.5681 3.22328 21.595 3.18633 21.6053 3.14348C21.6156 3.10063 21.6084 3.05545 21.5855 3.01792L20.9444 1.96985C20.8966 1.89162 20.7942 1.86696 20.716 1.91479L18.6331 3.18898V0.747138C18.6331 0.65546 18.5587 0.581055 18.4671 0.581055H17.2386C17.1469 0.581055 17.0725 0.65546 17.0725 0.747138V3.18898L14.9896 1.91487C14.9112 1.86704 14.8091 1.89162 14.7612 1.96993L14.1201 3.018C14.0972 3.05554 14.09 3.10071 14.1003 3.14356C14.1106 3.18641 14.1375 3.22336 14.175 3.24637L16.3571 4.58101L14.175 5.91574C14.1375 5.93866 14.1106 5.9757 14.1003 6.01847C14.09 6.0614 14.0972 6.10657 14.1201 6.14411L14.7612 7.1921C14.8091 7.27032 14.9112 7.29507 14.9896 7.24724L17.0725 5.97304V8.41489C17.0725 8.50657 17.1469 8.58097 17.2386 8.58097H18.4671C18.5587 8.58097 18.6331 8.50657 18.6331 8.41489V5.97313L20.7161 7.24715C20.7943 7.29499 20.8967 7.27032 20.9444 7.19218L21.5856 6.14411C21.6085 6.10657 21.6157 6.0614 21.6054 6.01855C21.5952 5.97562 21.5682 5.93875 21.5306 5.91574Z" fill="#de350b" /></svg>
                        </span>
                                        <div style="cursor: default; text-align: left; flex-grow: 1; padding-right: 3px; margin-top: 2px;">
                                                
                                                
                                                <span >
                                                        <span><strong>Tests</strong></span>

                        </span>
                    </div>
                                                                    <span style="padding-right: 1px; white-space: nowrap;">
                                                        
                                                        
                                                                                </span>
                                    </div>
                                                <div style="display: flex; align-items: flex-start; padding: 0; margin-left: 12px; float: none; font-size: 14px;">
                                                                <span style="padding-right: 5px; align-self: flex-start;">
                                <svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg" class="unchecked"><path d="M0.441406 6.94141C0.441406 5.28455 1.78455 3.94141 3.44141 3.94141H15.4414C17.0983 3.94141 18.4414 5.28455 18.4414 6.94141V18.9414C18.4414 20.5983 17.0983 21.9414 15.4414 21.9414H3.44141C1.78455 21.9414 0.441406 20.5983 0.441406 18.9414V6.94141Z" fill="#EFF4FB" /><path fill-rule="evenodd" clip-rule="evenodd" d="M12.4414 3.94141H3.44141C1.78455 3.94141 0.441406 5.28455 0.441406 6.94141V18.9414C0.441406 20.5983 1.78455 21.9414 3.44141 21.9414H15.4414C17.0983 21.9414 18.4414 20.5983 18.4414 18.9414V9.94141H17.4414V18.9414C17.4414 20.046 16.546 20.9414 15.4414 20.9414H3.44141C2.33684 20.9414 1.44141 20.046 1.44141 18.9414V6.94141C1.44141 5.83684 2.33684 4.94141 3.44141 4.94141H12.4414V3.94141Z" fill="#ADBBD0" /><path d="M21.5306 5.91574L19.3486 4.58101L21.5306 3.24628C21.5681 3.22328 21.595 3.18633 21.6053 3.14348C21.6156 3.10063 21.6084 3.05545 21.5855 3.01792L20.9444 1.96985C20.8966 1.89162 20.7942 1.86696 20.716 1.91479L18.6331 3.18898V0.747138C18.6331 0.65546 18.5587 0.581055 18.4671 0.581055H17.2386C17.1469 0.581055 17.0725 0.65546 17.0725 0.747138V3.18898L14.9896 1.91487C14.9112 1.86704 14.8091 1.89162 14.7612 1.96993L14.1201 3.018C14.0972 3.05554 14.09 3.10071 14.1003 3.14356C14.1106 3.18641 14.1375 3.22336 14.175 3.24637L16.3571 4.58101L14.175 5.91574C14.1375 5.93866 14.1106 5.9757 14.1003 6.01847C14.09 6.0614 14.0972 6.10657 14.1201 6.14411L14.7612 7.1921C14.8091 7.27032 14.9112 7.29507 14.9896 7.24724L17.0725 5.97304V8.41489C17.0725 8.50657 17.1469 8.58097 17.2386 8.58097H18.4671C18.5587 8.58097 18.6331 8.50657 18.6331 8.41489V5.97313L20.7161 7.24715C20.7943 7.29499 20.8967 7.27032 20.9444 7.19218L21.5856 6.14411C21.6085 6.10657 21.6157 6.0614 21.6054 6.01855C21.5952 5.97562 21.5682 5.93875 21.5306 5.91574Z" fill="#de350b" /></svg>
                        </span>
                                        <div style="cursor: default; text-align: left; flex-grow: 1; padding-right: 3px; margin-top: 2px;">
                                                
                                                
                                                <span >
                                                        <span><strong>FixVersion</strong> filled and not yet released</span>

                        </span>
                    </div>
                                                                    <span style="padding-right: 1px; white-space: nowrap;">
                                                        
                                                        
                                                                                </span>
                                    </div>
                                                <div style="display: flex; align-items: flex-start; padding: 0; margin-left: 12px; float: none; font-size: 14px;">
                                                                <span style="padding-right: 5px; align-self: flex-start;">
                                <svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg" class="unchecked"><rect fill="#EFF4FB" height="17.5" rx="2.5" stroke="#ADBBD0" width="18" x="0.44141" y="3.94141"/></svg>
                        </span>
                                        <div style="cursor: default; text-align: left; flex-grow: 1; padding-right: 3px; margin-top: 2px;">
                                                
                                                
                                                <span >
                                                        <span>Architecture Decision Record (<strong>ADR</strong>)</span>

                        </span>
                    </div>
                                                                    <span style="padding-right: 1px; white-space: nowrap;">
                                                        
                                                        
                                                                                </span>
                                    </div>
                                            ]]>
    </checklist>


                        </customfieldvalues>
                    </customfield>
                                                                                                                                                    <customfield id="customfield_14145" key="com.intenso.jira.issue-templates:issue-templates-customfield">
                        <customfieldname>Template</customfieldname>
                        <customfieldvalues>
                            


                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                            <customfield id="customfield_15131" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Time in Discovery</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    </customfields>
    </item>
</channel>
</rss>