<!-- 
RSS generated by JIRA (9.4.2#940002-sha1:46d1a51de284217efdcb32434eab47a99af2938b) at Mon Feb 12 05:11:02 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>[MGNLDATA-68] Allow creation of types and data nodes in a hierarchy.</title>
                <link>https://jira.magnolia-cms.com/browse/MGNLDATA-68</link>
                <project id="10054" key="MGNLDATA">Magnolia Data Module (closed)</project>
                    <description>&lt;p&gt;See this entry in the wiki for the description of the desired functionality: &lt;a href=&quot;http://wiki.magnolia-cms.com/display/DEV/Magnolia+Data+Module+Extensions+-+Mixed+type+hierarchies&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://wiki.magnolia-cms.com/display/DEV/Magnolia+Data+Module+Extensions+-+Mixed+type+hierarchies&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;There are many changes to accommodate the new functionality. Here are the main changes:&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Many classes that create, delete, display the types or the nodes are touched to accommodate the new structure.&lt;/li&gt;
	&lt;li&gt;the DataModule now stores the typedefinitions&lt;/li&gt;
	&lt;li&gt;DataModule creates only one menu entry per rootpath&lt;/li&gt;
	&lt;li&gt;the title of the menu entry can be given in the type definition (sometimes the root type does not explain the main content of a type tree)&lt;/li&gt;
	&lt;li&gt;TypeDeleteCommand: I am not sure if this ever worked correctly. Should do now, and also deletes the tree belonging to the type.&lt;/li&gt;
	&lt;li&gt;TypeDialog: rootpath, allow folders, sort by name are only to be edited in the root type&lt;/li&gt;
	&lt;li&gt;new TypeSelectDataDialog: when creating a new type, will check if there are multiple options of types to create&lt;/li&gt;
	&lt;li&gt;TypeAdminTree and GenericDataAdminTree: lot of new code&lt;/li&gt;
	&lt;li&gt;When working with folders: they are only allowed at the root, not within the type trees itself&lt;/li&gt;
	&lt;li&gt;When items are moved or copied within the tree, if the type definition structure would be broken, the move/copy is prevented.&lt;/li&gt;
&lt;/ul&gt;
</description>
                <environment></environment>
        <key id="17093">MGNLDATA-68</key>
            <summary>Allow creation of types and data nodes in a hierarchy.</summary>
                <type id="4" iconUrl="https://jira.magnolia-cms.com/secure/viewavatar?size=xsmall&amp;avatarId=10890&amp;avatarType=issuetype">Improvement</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="had">Jan Haderka</assignee>
                                    <reporter username="bertleunis">Bert Leunis</reporter>
                        <labels>
                    </labels>
                <created>Fri, 18 Sep 2009 14:38:59 +0200</created>
                <updated>Tue, 15 Sep 2015 16:56:02 +0200</updated>
                            <resolved>Mon, 23 Nov 2009 15:44:07 +0100</resolved>
                                    <version>1.4</version>
                                    <fixVersion>1.4</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>1</watches>
                                                                                                                                                            <comments>
                            <comment id="24303" author="had" created="Tue, 29 Sep 2009 14:01:41 +0200"  >&lt;p&gt;After upgrade to 1.4-snapshot (with the patch applied) from 1.3.2 I get NPE when trying to display the types tree. Have you seen this? It must be some of the changes to the tree or tree configuration and will need probably also update task to make sure the modified tree still works after the upgrade. Unfortunately it is difficult to follow the changes in the code since there are also many purely formatting changes giving the false positives. You might consider next time to do the first all formatting changes (if necessary) and put them in one patch, and only then start changing the code and have purely code related changes in another patch (too late for this now).&lt;/p&gt;</comment>
                            <comment id="24304" author="had" created="Tue, 29 Sep 2009 14:40:24 +0200"  >&lt;p&gt;Every time I try to create a sub type, the message pops up that the saving of the subtype failed, but the type is actually saved and visible upon refresh of the type tree. Is that something you didn&apos;t know how to fix or is it suppose to be working fine?&lt;br/&gt;
Also I was under the impression we discussed that for the subtype it should not be possible to select the root folder, but the field is still there in the dialog. Am I missing something here?&lt;/p&gt;</comment>
                            <comment id="24305" author="bertleunis" created="Tue, 29 Sep 2009 15:25:47 +0200"  >&lt;p&gt;The NPE in the types tree can be solved when the file config.modules.data.trees.dataType.xml will be bootstrapped. I did not change the VersionHandler because I didn&apos;t quit get the way it works. At a fresh install, the extra tasks (for newer versions than 1.0) are not bootstrapped until a second startup of the webapp. Not knowing how to fix this properly I left this for someone who does. (I guess you Jan).&lt;/p&gt;</comment>
                            <comment id="24306" author="had" created="Tue, 29 Sep 2009 15:32:36 +0200"  >&lt;p&gt;OK, no problem. Are there any other places/points where you were not sure what to do?&lt;/p&gt;</comment>
                            <comment id="24307" author="bertleunis" created="Tue, 29 Sep 2009 15:35:19 +0200"  >&lt;p&gt;The subtype error sounds weird. I had a similar problem with the renaming of nodes. The code in info.magnolia.module.data.trees.GenericDataAdminTree.renameNode(String) does give an alert saying it can&apos;t rename, but then the rename went well. I do not understand what the code in the if-block is supposed to do. Without that block, no problem while renaming.&lt;/p&gt;

&lt;p&gt;The rootpath must not be editable in the dialog for the subtype. This is done in info.magnolia.module.data.dialogs.TypeDialog.createDialog(Content, Content). Was it not in the patch? Has the configuration the correct class for the dialog?&lt;/p&gt;</comment>
                            <comment id="24309" author="bertleunis" created="Tue, 29 Sep 2009 16:00:02 +0200"  >&lt;p&gt; Things to do still:&lt;/p&gt;

&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Activation of nested types doesn&apos;t work yet (probably a change of i.m.m.data.trees.JCRAdminTree.getActivationSyndicator(String))&lt;/li&gt;
	&lt;li&gt;Activation of a type should also activate the tree and the dialog of that type&lt;/li&gt;
	&lt;li&gt;Activate all command does not lead to creation of folders at the receiving end (question of mine is on the devlist).&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="24318" author="had" created="Wed, 30 Sep 2009 16:19:45 +0200"  >&lt;p&gt;The dialog issue was caused by the rejected chunk of the patch that I have missed (and surprisingly enough the class compiled without it), so it is solved now.&lt;br/&gt;
I have found 2 more things I think need to be done:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;the trees should not be created for subtypes (at least I can&apos;t see any reason for them. do you?)&lt;/li&gt;
	&lt;li&gt;the &quot;new item&quot; in the toolbar and in menu should be disabled for terminal items (i.e. those which do not have sub types).&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="24325" author="bertleunis" created="Thu, 1 Oct 2009 08:40:16 +0200"  >&lt;p&gt;The trees for the subtypes are needed when you create or edit a subtype. After saving, a tree with the name of that subtype will be opened in AdminCentral, so that&apos;s why that tree-definition has to exist. Unless you can think of some way to avoid that. Maybe there is a clue in &lt;a href=&quot;https://jira.magnolia-cms.com/browse/MGNLDATA-70&quot; title=&quot;DataDialog limits should not hardcode the return value of getJsExecutedAfterSaving&quot; class=&quot;issue-link&quot; data-issue-key=&quot;MGNLDATA-70&quot;&gt;&lt;del&gt;MGNLDATA-70&lt;/del&gt;&lt;/a&gt;?&lt;/p&gt;

&lt;p&gt;About the &apos;new item&apos; option for a terminal item: I &quot;solved&quot; this in the TypeSelectDialog: when there are no items to add, a message is displayed in the dialog window. The code for the tree is quite complicated already, I didn&apos;t want to add much more to it. And it does work now. But... if you feel this is how you want it... I won&apos;t stop you. &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.magnolia-cms.com/images/icons/emoticons/wink.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/p&gt;</comment>
                            <comment id="24334" author="had" created="Fri, 2 Oct 2009 09:45:08 +0200"  >&lt;p&gt;Well spotted. It is indeed a case. I&apos;ve created a sub task and linked it to &lt;a href=&quot;https://jira.magnolia-cms.com/browse/MGNLDATA-70&quot; title=&quot;DataDialog limits should not hardcode the return value of getJsExecutedAfterSaving&quot; class=&quot;issue-link&quot; data-issue-key=&quot;MGNLDATA-70&quot;&gt;&lt;del&gt;MGNLDATA-70&lt;/del&gt;&lt;/a&gt; to make sure it doesn&apos;t get forgotten.&lt;/p&gt;

&lt;p&gt;I&apos;m nearly done with the review and update tasks. Just one more question: why do you set the configurationClass also for the &quot;data&quot; tree (i.e. the tree that is linked to the JCR browser) ... it doesn&apos;t seem necessary unless I&apos;m missing something obvious?&lt;br/&gt;
Thanks.&lt;/p&gt;</comment>
                            <comment id="24335" author="bertleunis" created="Fri, 2 Oct 2009 10:01:18 +0200"  >&lt;p&gt;No, you are right, the configurationClass is not needed there. You can get rid of that.&lt;/p&gt;</comment>
                            <comment id="24341" author="had" created="Fri, 2 Oct 2009 22:11:41 +0200"  >&lt;p&gt;The patch is committed now. Few technical comments:&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;when creating a patch, do it against the current trunk not against the trunk at the time of first checkout (i.e. do the local mere before creating the patch). This way you can be sure that your latest changes will still work after the merge and make also review faster.&lt;/li&gt;
	&lt;li&gt;when changing public or protected methods, keep in mind that there might be someone else using them. Any public or protected code has to be deprecated for one major version before it can be finally removed. When deprecating something, make sure the message contains info about since the code is deprecated and if there is a replacement for it, also link to it. I have restored all the public/protected methods that were removed by the patch.&lt;/li&gt;
	&lt;li&gt;few more inline comments at some more complex blocks of code would be helpful. It is better to have too much of the comments then too little (i&apos;m told i write too little of comments all the time too &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.magnolia-cms.com/images/icons/emoticons/wink.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt; )&lt;/li&gt;
	&lt;li&gt;the tests would be very much appreciated and would ensure that the behavior doesn&apos;t change accidentally when other changes are made to the module in the future.&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="24344" author="bertleunis" created="Mon, 5 Oct 2009 11:13:44 +0200"  >&lt;p&gt;Thanks for all the work Jan, and apologies for all the inconveniences.&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;for such a big change of the code, using a userid/password directly to the svn would give a better way to work maybe&lt;/li&gt;
	&lt;li&gt;having a magnolia code style formatter and using the maven checkstyle plugin can prevent some of the problems you experienced&lt;/li&gt;
	&lt;li&gt;having been lectured on writing &apos;clean code&apos; I limited the number of comments a bit too much it seems. I like to write comments, if only for myself, to know what I ment to do when reviewing my own code later on.&lt;/li&gt;
	&lt;li&gt;sorry about the tests. not very experienced writing tests, and a collegue of mine told me that writing tests for magnolia is quite hard, for example through the use of all the statics. So I was not very much encouraged.&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="112284" author="mmuehlebach" created="Tue, 15 Sep 2015 16:56:02 +0200"  >&lt;p&gt;This ticket was closed because former resolved tickets are deemed to be closed now. If this assumption is untrue in this particular case please feel free to reopen the ticket again.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10010">
                    <name>relation</name>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="17194">MGNLDATA-78</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="14226">MGNLDATA-21</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="14227">MGNLDATA-22</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="17147">MGNLDATA-75</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                            <attachment id="12657" name="magnolia-module-data.patch" size="145096" author="bertleunis" created="Fri, 18 Sep 2009 14:38:59 +0200"/>
                    </attachments>
                <subtasks>
                            <subtask id="17133">MGNLDATA-72</subtask>
                            <subtask id="17148">MGNLDATA-76</subtask>
                    </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>gmail.com</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_10031" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of First Response</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Tue, 29 Sep 2009 14:01:41 +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, 22 weeks, 5 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                            <customfield id="customfield_10020" key="com.atlassian.jira.toolkit:attachments">
                        <customfieldname>Number of attachments</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10150" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname>Number of comments</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>13.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10011" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>bertleunis</customfieldvalue>
            <customfieldvalue>had</customfieldvalue>
            <customfieldvalue>mmuehlebach</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10090" key="com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes">
                        <customfieldname>Patch included</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10100"><![CDATA[Yes]]></customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10833" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i044pz:</customfieldvalue>

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