<!-- 
RSS generated by JIRA (9.4.2#940002-sha1:46d1a51de284217efdcb32434eab47a99af2938b) at Mon Feb 12 03:53:14 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>[MAGNOLIA-4161] DnD: order node according to move direction</title>
                <link>https://jira.magnolia-cms.com/browse/MAGNOLIA-4161</link>
                <project id="10000" key="MAGNOLIA">Magnolia</project>
                    <description>&lt;p&gt;We are now using DnD for moving page elements within an area and the feeling one has is that it kind of implies &apos;replace the target element with the source element&apos;. With our current impl this only works when moving/dragging elements up or left because, in the end, we always sort the source element before the parent. What we should do is detecting the move/drag direction and react accordingly, namely&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;move up or left -&amp;gt; order source before target&lt;/li&gt;
	&lt;li&gt;move down or right -&amp;gt; order source after target&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;This is quite easy to do it in GWT as we have the mouse coordinates for the DragStart and DragEnd events. Attached is quick and dirty code snippet to demonstrate this.&lt;/p&gt;</description>
                <environment></environment>
        <key id="23077">MAGNOLIA-4161</key>
            <summary>DnD: order node according to move direction</summary>
                <type id="2" iconUrl="https://jira.magnolia-cms.com/secure/viewavatar?size=xsmall&amp;avatarId=10891&amp;avatarType=issuetype">New Feature</type>
                                            <priority id="3" iconUrl="https://jira.magnolia-cms.com/images/icons/priorities/major.svg">Major</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="fgrilli">Federico Grilli</assignee>
                                    <reporter username="fgrilli">Federico Grilli</reporter>
                        <labels>
                    </labels>
                <created>Thu, 16 Feb 2012 12:21:19 +0100</created>
                <updated>Thu, 22 Mar 2012 18:15:51 +0100</updated>
                            <resolved>Sun, 19 Feb 2012 09:53:13 +0100</resolved>
                                                    <fixVersion>4.5</fixVersion>
                                    <component>core</component>
                    <component>page editor</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>0</watches>
                                                                                                                <comments>
                            <comment id="44391" author="fgrilli" created="Thu, 16 Feb 2012 12:22:22 +0100"  >&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; void createDragAndDropHandlers() {
       &lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;.addDomHandler(&lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; DragStartHandler() {
           @Override
           &lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; void onDragStart(DragStartEvent event) {
               ComponentBar.&lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;.getElement().getStyle().setCursor(Cursor.MOVE);
               toggleButtons(&lt;span class=&quot;code-keyword&quot;&gt;false&lt;/span&gt;);
               &lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt; x = getAbsoluteLeft();
               &lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt; y = getAbsoluteTop();
               event.setData(&lt;span class=&quot;code-quote&quot;&gt;&quot;text&quot;&lt;/span&gt;, &lt;span class=&quot;code-quote&quot;&gt;&quot;id=&quot;&lt;/span&gt;+id+&lt;span class=&quot;code-quote&quot;&gt;&quot;,x=&quot;&lt;/span&gt;+x+&lt;span class=&quot;code-quote&quot;&gt;&quot;,y=&quot;&lt;/span&gt;+y);
               event.getDataTransfer().setDragImage(getElement(), 10, 10);
           }
       }, DragStartEvent.getType());


       &lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;.addDomHandler(&lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; DropHandler() {
           @Override
           &lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt; void onDrop(DropEvent event) {
               event.preventDefault();
               &lt;span class=&quot;code-object&quot;&gt;String&lt;/span&gt; data = event.getData(&lt;span class=&quot;code-quote&quot;&gt;&quot;text&quot;&lt;/span&gt;);
               &lt;span class=&quot;code-object&quot;&gt;String&lt;/span&gt;[] tokens = data.split(&lt;span class=&quot;code-quote&quot;&gt;&quot;,&quot;&lt;/span&gt;);
               &lt;span class=&quot;code-object&quot;&gt;String&lt;/span&gt; idSource = tokens[0].split(&lt;span class=&quot;code-quote&quot;&gt;&quot;=&quot;&lt;/span&gt;)[1];
               &lt;span class=&quot;code-object&quot;&gt;String&lt;/span&gt; order = &lt;span class=&quot;code-quote&quot;&gt;&quot;before&quot;&lt;/span&gt;;
               &lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt; x = getAbsoluteLeft();
               &lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt; y = getAbsoluteTop();
               &lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt; xSource = &lt;span class=&quot;code-object&quot;&gt;Integer&lt;/span&gt;.valueOf(tokens[1].split(&lt;span class=&quot;code-quote&quot;&gt;&quot;=&quot;&lt;/span&gt;)[1]);
               &lt;span class=&quot;code-object&quot;&gt;int&lt;/span&gt; ySource = &lt;span class=&quot;code-object&quot;&gt;Integer&lt;/span&gt;.valueOf(tokens[2].split(&lt;span class=&quot;code-quote&quot;&gt;&quot;=&quot;&lt;/span&gt;)[1]);
               &lt;span class=&quot;code-object&quot;&gt;boolean&lt;/span&gt; isDragUp = ySource &amp;gt; y;
               &lt;span class=&quot;code-object&quot;&gt;boolean&lt;/span&gt; isDragDown = !isDragUp;
               &lt;span class=&quot;code-object&quot;&gt;boolean&lt;/span&gt; isDragLeft = xSource &amp;gt; x;
               &lt;span class=&quot;code-object&quot;&gt;boolean&lt;/span&gt; isDragRight = !isDragLeft;

               &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt;(isDragUp || isDragLeft) {
                   order = &lt;span class=&quot;code-quote&quot;&gt;&quot;before&quot;&lt;/span&gt;;
               } &lt;span class=&quot;code-keyword&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt;(isDragDown || isDragRight) {
                   order = &lt;span class=&quot;code-quote&quot;&gt;&quot;after&quot;&lt;/span&gt;;
               }

               &lt;span class=&quot;code-object&quot;&gt;String&lt;/span&gt; parentPath = path.substring(0, path.lastIndexOf(&lt;span class=&quot;code-quote&quot;&gt;&quot;/&quot;&lt;/span&gt;));
               moveComponent(id, idSource, parentPath, order);
           }
       }, DropEvent.getType());

       &lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt;.getElement().setDraggable(Element.DRAGGABLE_TRUE);
   }
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;the moveComponent() method will add the order parameter to the request so that eventually in the InterceptFilter we will do&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;if&lt;/span&gt;(&lt;span class=&quot;code-quote&quot;&gt;&quot;before&quot;&lt;/span&gt;.equals(order)) {
    NodeUtil.orderBefore(parent, destName);
} &lt;span class=&quot;code-keyword&quot;&gt;else&lt;/span&gt; {
    NodeUtil.orderAfter(parent, destName);
}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10010">
                    <name>relation</name>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="23052">MAGNOLIA-4256</issuekey>
        </issuelink>
                            </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_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>false</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10071" key="com.atlassian.jira.toolkit:lastupdaterorcommenter">
                        <customfieldname>Last participant</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>mmuehlebach</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_13136" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            12 years, 1 week, 3 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>1.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10011" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>fgrilli</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                <customfield id="customfield_10833" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i00stj:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10244" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>4719</customfieldvalue>
                        </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>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        </customfields>
    </item>
</channel>
</rss>