<!-- 
RSS generated by JIRA (9.4.2#940002-sha1:46d1a51de284217efdcb32434eab47a99af2938b) at Mon Feb 12 08:33:39 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-106] Implement sorting in trees</title>
                <link>https://jira.magnolia-cms.com/browse/MGNLUI-106</link>
                <project id="10625" key="MGNLUI">Magnolia UI</project>
                    <description>&lt;p&gt;Sorting in trees is not straight forward, since nodes may be arranged manually. In particular, a &lt;b&gt;manual sort order may be used to rearrange items in navigation menus&lt;/b&gt; or, in general, to order the page tree in any way a customer may want.&lt;/p&gt;

&lt;p&gt;But sorting in trees still makes sense. I&apos;ve done some research and have devised a way to make this work. &lt;br/&gt;
Here&apos;s how this could work in the Pages app (other apps work analogously, if they support a manual sort order at all):&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;For every column except the &quot;Page&quot; or first or node column, items are sorted &lt;b&gt;within their hierarchy level only&lt;/b&gt; (see below) and depending on the value/column type, i.e. alphabetically, by date and time or (e.g. in case of the &quot;Status&quot; column) in a pre-defined, more semantic sort order.&lt;/li&gt;
	&lt;li&gt;If you sort by &quot;Page&quot; column (or the column representing the actual node), we return to the manual sort order and do not show any sort arrow any more (there&apos;s no sort direction there anyway)&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Sorting within a single level in the hierarchy is typically how sorting is done in trees. &lt;/p&gt;


&lt;h2&gt;&lt;a name=&quot;Detailsonsortingwithinahierarchylevel&quot;&gt;&lt;/a&gt;Details on sorting within a hierarchy level&lt;/h2&gt;

&lt;p&gt;Sorting in a hierarchy (or tree) sorts all elements on a particular level among themselves and does so on every level. If you e.g. have the following tree, sorted by (node) titles, thus alphabetically, and in ascending order:&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; 
A
|--A
|  D
B
|--U
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;..., if you then reverse the sort direction, you&apos;ll get:&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; 
B
|--U
A
|--D
|  A
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The mechanics are the same as if you would sort in a list: you simply click in the column header to sort by the attribute represented by that column. Clicking the same header again changes the sort direction.&lt;/p&gt;</description>
                <environment></environment>
        <key id="26055">MGNLUI-106</key>
            <summary>Implement sorting in trees</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="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="3">Duplicate</resolution>
                                        <assignee username="-1">Unassigned</assignee>
                                    <reporter username="weder">Andreas Weder</reporter>
                        <labels>
                            <label>pain-point</label>
                            <label>support</label>
                            <label>tree</label>
                            <label>ux</label>
                    </labels>
                <created>Thu, 25 Oct 2012 18:07:55 +0200</created>
                <updated>Thu, 10 Sep 2015 16:47:23 +0200</updated>
                            <resolved>Wed, 9 Sep 2015 16:31:52 +0200</resolved>
                                    <version>5.0</version>
                                                        <due></due>
                            <votes>2</votes>
                                    <watches>6</watches>
                                                                                                                <comments>
                            <comment id="53266" author="weder" created="Wed, 14 Nov 2012 12:39:37 +0100"  >&lt;p&gt;&lt;img class=&quot;emoticon&quot; src=&quot;https://jira.magnolia-cms.com/images/icons/emoticons/warning.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt; Jan approached me and pointed out that users are currently allowed to rearrange items in the page tree. If our tree is always sorted (e.g. alphabetically by page title), we loose this important feature. We thus have to reconsider or redefine this. &lt;/p&gt;

&lt;p&gt;I still think we should be able to sort by a specific attribute. A (on first sight: convincing) option I see is that &lt;b&gt;sorting could only affect leaf nodes&lt;/b&gt;, but the hierarchy would be left as-is.&lt;/p&gt;</comment>
                            <comment id="55212" author="weder" created="Thu, 20 Dec 2012 16:36:28 +0100"  >&lt;p&gt;Updated the issue with new insights. This is a tougher job, but worth while the effort.&lt;/p&gt;</comment>
                            <comment id="55213" author="weder" created="Thu, 20 Dec 2012 16:37:09 +0100"  >&lt;p&gt;Set lower priority as this is more a nice-to-have. I will add a separate issue to ensure that we do NOT sort trees alphabetically.&lt;/p&gt;</comment>
                            <comment id="76100" author="weder" created="Tue, 17 Dec 2013 19:32:31 +0100"  >&lt;p&gt;I&apos;ve updated the issue to describe a new function for the tree without referring to a previous, obsolete state. A possibility to sort trees is still relevant and asked for.&lt;/p&gt;</comment>
                            <comment id="111904" author="weder" created="Wed, 9 Sep 2015 16:31:52 +0200"  >&lt;p&gt;We have two issues covering sorting in trees. I&apos;m closing this in favor of &lt;a href=&quot;https://jira.magnolia-cms.com/browse/MGNLUI-3326&quot; title=&quot;Support sorting by column in trees&quot; class=&quot;issue-link&quot; data-issue-key=&quot;MGNLUI-3326&quot;&gt;&lt;del&gt;MGNLUI-3326&lt;/del&gt;&lt;/a&gt;, where most of the discussion took place.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10020">
                    <name>dependency</name>
                                                                <inwardlinks description="is depended upon by">
                                                        </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10021">
                    <name>duplicate</name>
                                            <outwardlinks description="duplicates">
                                        <issuelink>
            <issuekey id="42532">MGNLUI-3326</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10010">
                    <name>relation</name>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="27044">MGNLUI-450</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10022">
                    <name>supersession</name>
                                            <outwardlinks description="supersedes">
                                        <issuelink>
            <issuekey id="26033">MGNLUI-89</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is superseded by">
                                        <issuelink>
            <issuekey id="47774">MGNLUI-3574</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>weder.net</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_10031" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of First Response</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Fri, 19 Sep 2014 12:25:21 +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>mmuehlebach</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_13136" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            8 years, 23 weeks, 4 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>5.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10011" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>weder</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                <customfield id="customfield_10833" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i0002k:hg</customfieldvalue>

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