<!-- 
RSS generated by JIRA (9.4.2#940002-sha1:46d1a51de284217efdcb32434eab47a99af2938b) at Mon Feb 12 09:28:44 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-5656] Improve Upload Field implementation</title>
                <link>https://jira.magnolia-cms.com/browse/MGNLUI-5656</link>
                <project id="10625" key="MGNLUI">Magnolia UI</project>
                    <description>&lt;p&gt;Current solution involves composite field based solution and requires the presence of redundant static fields for dimensions (width and height) and file name. Those are quirky implementation-wise and also are buggy.&lt;/p&gt;

&lt;p&gt;The following improvements should be made to the Upload Field implementation:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Attach all metadata information that is part of a File to the UploadField (removing the need for redundant static fields).&lt;/li&gt;
	&lt;li&gt;Add required property and validation to UploadField&lt;/li&gt;
	&lt;li&gt;Enable adding custom factoryClass for the UploadField to maintain flexibility in adding new features to the UploadField (DamUploadField in Assets app).&lt;/li&gt;
	&lt;li&gt;Remove redundant static fields from Assets app (and update the app descriptor for the improved UploadField)&#160;&lt;/li&gt;
	&lt;li&gt;Extract ValueBoundProperty interface from&#160;info.magnolia.ui.field.FieldDefinition, which enables adding a Value based property trait to both simple FieldDefinition (which always have a value) or a info.magnolia.ui.editor.ComplexPropertyDefinition (which may or may not have a Value trait).&lt;/li&gt;
&lt;/ul&gt;
</description>
                <environment></environment>
        <key id="83647">MGNLUI-5656</key>
            <summary>Improve Upload Field implementation</summary>
                <type id="3" iconUrl="https://jira.magnolia-cms.com/secure/viewavatar?size=xsmall&amp;avatarId=10898&amp;avatarType=issuetype">Task</type>
                                            <priority id="6" iconUrl="https://jira.magnolia-cms.com/images/icons/priorities/neutral.gif">Neutral</priority>
                        <status id="6" iconUrl="https://jira.magnolia-cms.com/images/icons/statuses/closed.png" description="The issue is considered finished, the resolution is correct. Issues which are not closed can be reopened.">Closed</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="1">Fixed</resolution>
                                        <assignee username="rdhar">Rishab Dhar</assignee>
                                    <reporter username="rdhar">Rishab Dhar</reporter>
                        <labels>
                    </labels>
                <created>Mon, 10 Feb 2020 09:54:27 +0100</created>
                <updated>Thu, 18 Feb 2021 16:21:57 +0100</updated>
                            <resolved>Fri, 21 Feb 2020 17:02:43 +0100</resolved>
                                                    <fixVersion>6.2</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>3</watches>
                                                    <progress percentage="4">
                                    <originalProgress>
                                                    <row percentage="0" backgroundColor="#89afd7"/>
                                                    <row percentage="100" backgroundColor="transparent"/>
                                            </originalProgress>
                                                    <currentProgress>
                                                    <row percentage="4" backgroundColor="#51a825"/>
                                                    <row percentage="96" backgroundColor="#ec8e00"/>
                                            </currentProgress>
                            </progress>
                                    <aggregateprogress percentage="4">
                                    <originalProgress>
                                                    <row percentage="0" backgroundColor="#89afd7"/>
                                                    <row percentage="100" backgroundColor="transparent"/>
                                            </originalProgress>
                                                    <currentProgress>
                                                    <row percentage="4" backgroundColor="#51a825"/>
                                                    <row percentage="96" backgroundColor="#ec8e00"/>
                                            </currentProgress>
                            </aggregateprogress>
                                            <timeestimate seconds="7200">0.25d</timeestimate>
                            <timespent seconds="300">5m</timespent>
                                <comments>
                            <comment id="210523" author="rdhar" created="Thu, 20 Feb 2020 11:38:54 +0100"  >&lt;p&gt;The improvement does the following:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Extract ValueBoundProperty for form fields that can have a value - FieldDefinitions and Hybrid ComplexFields. FieldDefinitions automatically are ValueBoundProperty.&lt;/li&gt;
	&lt;li&gt;Introduce datasource generic UploadView as ValueBoundProperty and ComplexProperty with invisible hidden fields to update state information of the uploaded asset.&lt;/li&gt;
	&lt;li&gt;Introduce validator for the UploadView to configure UploadView as required ComplexProperty. (solves the issue &lt;a href=&quot;https://jira.magnolia-cms.com/browse/MGNLDAM-822&quot; title=&quot;Asset detail editor - validation for binary file must be on par with M-5-UI&quot; class=&quot;issue-link&quot; data-issue-key=&quot;MGNLDAM-822&quot;&gt;&lt;del&gt;MGNLDAM-822&lt;/del&gt;&lt;/a&gt;).&lt;/li&gt;
	&lt;li&gt;Update the UploadField to maintain File state in FileInfo wrapper and expose it to DamUploadField, which is updated to use the new API.&lt;/li&gt;
	&lt;li&gt;Update JUnit tests for DamUploadField.&lt;/li&gt;
	&lt;li&gt;Add Media label for DamUploadField in dam app.&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="210839" author="rdhar" created="Mon, 24 Feb 2020 13:49:58 +0100"  >&lt;p&gt;&lt;b&gt;Documentation update required&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;The newly introduced&#160;&lt;tt&gt;UploadViewDefinition&lt;/tt&gt;&#160;class allows:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;The DAM upload field to be used by configuring a custom &lt;tt&gt;factoryClass&lt;/tt&gt; for the field (in this case,&#160;&lt;tt&gt;info.magnolia.dam.app.field.factory.DamUploadFieldFactory&lt;/tt&gt;). If&#160;no factory class is configured, the default upload field will be created.&lt;/li&gt;
	&lt;li&gt;The upload field to be marked as required to display validation errors in the UI for an empty field.&lt;/li&gt;
&lt;/ul&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;
upload:
 factoryClass: info.magnolia.dam.app.field.factory.DamUploadFieldFactory
 class: info.magnolia.ui.editor.UploadViewDefinition
 required: &lt;span class=&quot;code-keyword&quot;&gt;true&lt;/span&gt;
 itemProvider:
 $type: jcrChildNodeProvider
 nodeName: jcr:content&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</comment>
                            <comment id="240596" author="sdemocko" created="Wed, 18 Nov 2020 10:03:24 +0100"  >&lt;p&gt;The doc update was supposed to be addressed in&#160;&lt;a href=&quot;https://jira.magnolia-cms.com/browse/MGNLUI-6215&quot; title=&quot;DOC: Restructure uploadField documentation&quot; class=&quot;issue-link&quot; data-issue-key=&quot;MGNLUI-6215&quot;&gt;&lt;del&gt;MGNLUI-6215&lt;/del&gt;&lt;/a&gt;, but as per comments on that ticket we won&apos;t do it. TL;DR: UploadViewDefinition is MgnlDeprecated, shouldn&apos;t be used by externals, we only use it internally.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10360">
                    <name>Problem/Incident</name>
                                            <outwardlinks description="causes">
                                        <issuelink>
            <issuekey id="87228">EXTDAM-122</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10160">
                    <name>Relates</name>
                                                                <inwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="96138">MGNLDAM-939</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="83448">MGNLDAM-822</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10040">
                    <name>causality</name>
                                                                <inwardlinks description="is causing">
                                        <issuelink>
            <issuekey id="86965">MGNLUI-5886</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10050">
                    <name>documentation</name>
                                                                <inwardlinks description="to be documented by">
                                        <issuelink>
            <issuekey id="84268">MGNLUI-5680</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10021">
                    <name>duplicate</name>
                                                                <inwardlinks description="is duplicated by">
                                        <issuelink>
            <issuekey id="83162">MGNLUI-5621</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                            <attachment id="62515" name="damupload-field-existing-asset.png" size="379219" author="rdhar" created="Thu, 20 Feb 2020 11:22:36 +0100"/>
                            <attachment id="62517" name="save-empty-media-field.png" size="43738" author="rdhar" created="Thu, 20 Feb 2020 11:22:55 +0100"/>
                            <attachment id="62518" name="upload-new-asset-updates-media-field.png" size="362635" author="rdhar" created="Thu, 20 Feb 2020 11:23:00 +0100"/>
                    </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>Wed, 18 Nov 2020 10:03:24 +0100</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_12130" key="com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes">
                        <customfieldname>Documentation update required</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="13300"><![CDATA[Yes]]></customfieldvalue>
    
                        </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>slutz</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_13136" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            3 years, 12 weeks, 4 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                            <customfield id="customfield_10020" key="com.atlassian.jira.toolkit:attachments">
                        <customfieldname>Number of attachments</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>3.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>rdhar</customfieldvalue>
            <customfieldvalue>sdemocko</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                <customfield id="customfield_10833" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|y028hu:</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_10245" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="1103">UI Framework 16</customfieldvalue>
    <customfieldvalue id="1111">UI Framework 17</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10242" key="com.atlassian.jira.plugin.system.customfieldtypes:float">
                        <customfieldname>Story Points</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>5.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_14167" key="com.okapya.jira.checklist:checklist">
                        <customfieldname>Task DoR</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_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>
                                                                <customfield id="customfield_10032" key="com.atlassian.jira.ext.charting:timeinstatus">
                        <customfieldname>Time in Status</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                            <customfield id="customfield_13933" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Urgency (resolution)</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="15724"><![CDATA[Normal]]></customfieldvalue>

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