Let me first say that uComponents is awesome! I'm going to use it a lot! Here are some suggestions for the Multi-Node Tree Picker:
1 Show which nodes are already selected in the content tree on the left. 2 If you hover a selected node on the right it should show it's path (example Home/Runaway/Welcome). 3 If you click on a selected node on the right the tree should expand to that node so you know where it is in the tree.
Point 2 and 3 are some of the things I'm also missing for the current content picker in Umbraco. I know these things might be hard to to, but if it's possible I would like to have them :). Thanks.
Some good suggestions there!!! I'll see if i can get them all in next week for the full release.
In regards to selecting a node on the right and having the tree sync on the left, this is currently working (well, at least it is working in Firefox 3.6). Have you tried this yet? If you have, can you tell me which browser, version, OS, etc... that you are using? Also, there's currently an issue with the tree syncing if you select an item on the right when you have multiple instances of the multi-node tree picker on one document type. For some reason the tree will require focus one time before being able to sync. However, when there is only one instance per doc type, sync should work each time.
I've tested selecting the node on the right and having the tree sync on the left. This sometimes works in firefox 3.6. (had 1 node with the picker on which it worked, but another node with the picker on which it didn't), but I haven't got it working in IE8. It also only seems to work with the content section. If you use the media section I can't get the tree to expand if I select a node. Maybe that got something to do with this codeplex issue: http://umbraco.codeplex.com/workitem/28673.
I've also got another suggestion. Besides using xpath to filter nodes, it would also be nice to be able to select a top node from which the content/media tree starts. I'm building a multilanguage site and in the dutch part I only want the user to select nodes from the dutch website (NL as topnode) and in the english part I only want the user to select nodes from the english website (EN as topnode). Thanks.
Cool, i'll see what i can do about the sync issues.
As for a starting node Id... this becomes complex because of node security and a starting node Id already assigned to the media/content trees for specific users. This is the reason why i left the starting node id out of the pre-value editor. I sort of assumed that if you have multilingual sites with editors for each site that you would have already assigned the start node id to the content tree for these users. The multi-node tree picker respects the same exact security model as the normal content/media trees.
Do you still think it should stil lbe implemented? I think this may pose other issues if you assign a start node id in both the multi-node tree picker and the content tree, then some users will have nothing rendered in the picker...
I didn't realize the tree in the tree picker is the same as the content tree the user sees. In that case it doens't need to get implemented and already is working how it should :).
I've got another question related to the Multi-Node Tree Picker. You store the values as XML in the umbraco.config. This is easy to read with XSLT, but how do you read the value with node.GetProperty in a UserControl? In my experience (last tried it in 4.0.x) it returns null because it's can't read the xml inside a DocumentType property. I've already started a topic about this a while ago: http://our.umbraco.org/forum/developers/extending-umbraco/7447-nodeGetProperty-on-a-custom-datatype. Do you have better suggestions to get the XML in a UserControl besides the suggestions I made in that topic?
Hey, I've implemented a few things in the latest source:
Configurable tooltips. I'll probably add more to this such as an edit button, etc... The info in the tooltip loads in via ajax. The info buttons and tooltips can be turned off in the pre-value editors for the data type
Tree syncing is working. Now when you click the node icon it will do the tree syncing and drag/drop sorting is done via the node name
Added the ability to choose how you want the data saved: XML or CSV. ... there's bugs with this in the latest checkin but will be fixed tomorrow.
I'm also going to add a thumbnail preview for when you are using this for media and also add a user tree selector.
Wow impressive! When you say configurable tooltip do you mean you can also configure what's displayed? The path you now display are the id's, but it would also be usefull if you can view the names instead of the ids (like Content/Runaway Homepage/Contact). Beside this it's already awesome :D.
Does the media tree also sync or does that need to wait until Umbraco 4.5.3?
Going back to the initial node id question, we have a site which was using the older MultiTreeNode picker which supported an initial starting node. As a consequence our Agency who developed our site for us used it to select from a set of "reusable" modules in the content tree. To explain it at it's most simplest, I mean a set of small DIV blocks that can be displayed and re-ordered within a page via tree. These modules appear in the content tree but are only rendered as HTML fragments.
Understanding the security implications, would you still consider a starting node id for users of the older tree datatype?
Alternatively and this may be a better solution, in the filter section can you add an option to completely remove filtered out items instead of appearing in red. Why do you still want them to appear in the tree if they cannot be selected? It just takes up additional screen real estate! This may remove the need for a starting node option.
Configurable as in you can enable/disable having the informational icons and tooltips. As i said there will be more information that i'll put into the tooltip than what is there now such as a named path and a link to edit that node.
Martin:
I've just replied to your thread on my blog as well, and copied and pasted here:
Yes, with the latest checkin you can choose to save as XML or CSV which will get around the existing issues with Linq to Umbraco and storing XML... though Aaron will be fixing this with 4.5.3 so it won't really make much difference but it'll be in the final release of uComponents anyways.
It would not be possible to just 'hide' nodes that shouldn't be clicked because what if you want to disable clicking of a category node, but not it's child nodes? if you hide the category, then you hide the children too.
Seems that everyone wants to have a starting node id, so i'll look into it next week.
Thanks for clearing that up. I've got another suggestion (if I have too much suggestions let me know ;)). Besides having a maximun node selection it would also be cool to have a minimum selection. For example let's say I want to use the Multi-node tree picker for selecting widgets and the user always needs to select a minimum of 2 widgets. I could use XPath so the user can only select widget nodes and the minimum field to determine the minimal amount of widgets the user needs to select. If the user selects less the nodes you get an message after saving saying the Multi-node tree picker is mandatory and needs at least 2 nodes. Sounds cool?
When you say CSV do you mean comma seperated in the XML as my example above?
Sorry to keep banging on about the filtering, but I think it goes without saying that if you filter out a root node its expected that the children would follow the same action and therefore be filtered out too. I dont see that to be a limitation for the user at all, in fact its expected bahaviour in a tree. If you set the filter to just the children then of course the parent would remain intact and still selectable/viewable.
Again I've got a suggestion for MNTP :). Since you've already implemented a start node it would also be cool to be able to use the current node as the start node. For example I've got an event overview page with events as children. On the overview page I would like to highlight some of the events. I can use the MNTP which only displays the children of the current node (the overview) to select some events. For a news section I want to do the same thing and I can use the datatype with the same prevalue configurations because it displays the news items (the children). If the children have children those are displayed as well off course :). If this is possible it would truly be the most awesome datatype for Umbraco ever!
Another small suggestion is to change the top node of the tree if you selected a different start node. Now it always says content and not the name of the start node and also it shows the default icon instead of the icon of the top node. I don't know if that's easy to change but if you could it would be nice :).
the start from current node can be done. I'll have a look at naming the start node if it's not -1 so that 'content' doesn't appear but I'm not sure if i can force the icon change... will try though.
It's time for another suggestion :p. Currently the tree on the left has a default height. If the tree get's longer you get a scroll bar so you can view all items in the tree. It would be useful if you can adjust the height of the tree (as a prevalue) in case you have a very large tree and you want to have a better overview. The selected items on the right don't have a scroll bar. It would be useful if you could set a height on the right too. Currently I use MNTP to select images for a webshop and if the user selects 30 images for a product the list of items on the right becomes really big! A scroll bar (with adjustable height) would be nice :).
Should I create a workitem for this on codeplex or isn't that necessary? If you would like me to create a workitem for this I could also do it for the other idea's I've come up with in this topic.
Following on from Jeroens comment, I also think the rendering bug I mentioned before is still there, albeit in compatibility mode under IE8. Umbraco has a tendency to flick into this mode for some reason. Can you check this?
Spinner baits and flipping jigs around those trees. Especially for the bass. crankbaits along any channel or high spots. plastic worms everywhere. Rapala type lures for those pickerel and any pike you may probably have. With that kind of cover, l would figure conditions to remain pretty constant all day long. try topwaters early A.M. and evening.
With regards to the start node being currentNode, how about if the start node could be set by Xpath, way more flexible and $currentPage/@id could set the current page.
Here is a small suggestions for a situation I've ran into in a couple of projects, I'd simply like the MNTP to be displayed with part of it's tree expanded.
I could specify the "level / depth" in my data type definition. Then the tree would load with nodes already expanded.
I'm using MNTP to create interlinking for my multilanguage websites. Having the tree expanded when it gets loaded at back office would really facilitate my content editors' work.
Multi-Node Tree Picker suggestions
Hello,
Let me first say that uComponents is awesome! I'm going to use it a lot! Here are some suggestions for the Multi-Node Tree Picker:
1 Show which nodes are already selected in the content tree on the left.
2 If you hover a selected node on the right it should show it's path (example Home/Runaway/Welcome).
3 If you click on a selected node on the right the tree should expand to that node so you know where it is in the tree.
Point 2 and 3 are some of the things I'm also missing for the current content picker in Umbraco. I know these things might be hard to to, but if it's possible I would like to have them :). Thanks.
Jeroen
Some good suggestions there!!! I'll see if i can get them all in next week for the full release.
In regards to selecting a node on the right and having the tree sync on the left, this is currently working (well, at least it is working in Firefox 3.6). Have you tried this yet? If you have, can you tell me which browser, version, OS, etc... that you are using? Also, there's currently an issue with the tree syncing if you select an item on the right when you have multiple instances of the multi-node tree picker on one document type. For some reason the tree will require focus one time before being able to sync. However, when there is only one instance per doc type, sync should work each time.
Cheers,
Shannon
Hi Shannon,
I've tested selecting the node on the right and having the tree sync on the left. This sometimes works in firefox 3.6. (had 1 node with the picker on which it worked, but another node with the picker on which it didn't), but I haven't got it working in IE8. It also only seems to work with the content section. If you use the media section I can't get the tree to expand if I select a node. Maybe that got something to do with this codeplex issue: http://umbraco.codeplex.com/workitem/28673.
I've also got another suggestion. Besides using xpath to filter nodes, it would also be nice to be able to select a top node from which the content/media tree starts. I'm building a multilanguage site and in the dutch part I only want the user to select nodes from the dutch website (NL as topnode) and in the english part I only want the user to select nodes from the english website (EN as topnode). Thanks.
Jeroen
Cool, i'll see what i can do about the sync issues.
As for a starting node Id... this becomes complex because of node security and a starting node Id already assigned to the media/content trees for specific users. This is the reason why i left the starting node id out of the pre-value editor. I sort of assumed that if you have multilingual sites with editors for each site that you would have already assigned the start node id to the content tree for these users. The multi-node tree picker respects the same exact security model as the normal content/media trees.
Do you still think it should stil lbe implemented? I think this may pose other issues if you assign a start node id in both the multi-node tree picker and the content tree, then some users will have nothing rendered in the picker...
Hi Shannon,
I didn't realize the tree in the tree picker is the same as the content tree the user sees. In that case it doens't need to get implemented and already is working how it should :).
Hope you can fix the sync issues. If you get the media section syncing working could you please show me how this is done? Perhaps than I know how I can use deeplinking in the Umbraco backend (http://our.umbraco.org/forum/developers/extending-umbraco/11059-Deeplink-Umbraco-backend).
Jeroen
Yup, i'll assign that bug to myself and fix for 4.5.3, should be easy.
Hi Shannon,
I've got another question related to the Multi-Node Tree Picker. You store the values as XML in the umbraco.config. This is easy to read with XSLT, but how do you read the value with node.GetProperty in a UserControl? In my experience (last tried it in 4.0.x) it returns null because it's can't read the xml inside a DocumentType property. I've already started a topic about this a while ago: http://our.umbraco.org/forum/developers/extending-umbraco/7447-nodeGetProperty-on-a-custom-datatype. Do you have better suggestions to get the XML in a UserControl besides the suggestions I made in that topic?
Jeroen
I just tried it with LINQ to Umbraco, but that also doens't work. See this topic: http://our.umbraco.org/forum/core/41-feedback/12211-LINQ-to-Umbraco-reading-XML-inside-a-property.
Jeroen
Hey, I've implemented a few things in the latest source:
I'm also going to add a thumbnail preview for when you are using this for media and also add a user tree selector.
This data type is gonna be awesome!
Wow impressive! When you say configurable tooltip do you mean you can also configure what's displayed? The path you now display are the id's, but it would also be usefull if you can view the names instead of the ids (like Content/Runaway Homepage/Contact). Beside this it's already awesome :D.
Does the media tree also sync or does that need to wait until Umbraco 4.5.3?
Jeroen
Hi Shannon
Very impressed with your work!
Going back to the initial node id question, we have a site which was using the older MultiTreeNode picker which supported an initial starting node. As a consequence our Agency who developed our site for us used it to select from a set of "reusable" modules in the content tree. To explain it at it's most simplest, I mean a set of small DIV blocks that can be displayed and re-ordered within a page via tree. These modules appear in the content tree but are only rendered as HTML fragments.
Understanding the security implications, would you still consider a starting node id for users of the older tree datatype?
Alternatively and this may be a better solution, in the filter section can you add an option to completely remove filtered out items instead of appearing in red. Why do you still want them to appear in the tree if they cannot be selected? It just takes up additional screen real estate! This may remove the need for a starting node option.
Regards
Martin
Hi Shannon
Another suggestion...
Would you consider offering a fallback XML format for the old mutlitreenode picker so that the XML is compatible?
So instead of....
<
data alias="righthandModules">
<MultiNodePicker>
<nodeId>1160</nodeId>
<nodeId>1214</nodeId>
<nodeId>1172</nodeId>
</MultiNodePicker>
</data>
this
<
data alias="rightHandModules"><![CDATA[1160,1214,1172]]></data>
Jeroen:
Configurable as in you can enable/disable having the informational icons and tooltips. As i said there will be more information that i'll put into the tooltip than what is there now such as a named path and a link to edit that node.
Martin:
I've just replied to your thread on my blog as well, and copied and pasted here:
Yes, with the latest checkin you can choose to save as XML or CSV which will get around the existing issues with Linq to Umbraco and storing XML... though Aaron will be fixing this with 4.5.3 so it won't really make much difference but it'll be in the final release of uComponents anyways.
It would not be possible to just 'hide' nodes that shouldn't be clicked because what if you want to disable clicking of a category node, but not it's child nodes? if you hide the category, then you hide the children too.
Seems that everyone wants to have a starting node id, so i'll look into it next week.
Cheers,
Shannon
Hi Shannon,
Thanks for clearing that up. I've got another suggestion (if I have too much suggestions let me know ;)). Besides having a maximun node selection it would also be cool to have a minimum selection. For example let's say I want to use the Multi-node tree picker for selecting widgets and the user always needs to select a minimum of 2 widgets. I could use XPath so the user can only select widget nodes and the minimum field to determine the minimal amount of widgets the user needs to select. If the user selects less the nodes you get an message after saving saying the Multi-node tree picker is mandatory and needs at least 2 nodes. Sounds cool?
Jeroen
Hi Shannon
When you say CSV do you mean comma seperated in the XML as my example above?
Sorry to keep banging on about the filtering, but I think it goes without saying that if you filter out a root node its expected that the children would follow the same action and therefore be filtered out too. I dont see that to be a limitation for the user at all, in fact its expected bahaviour in a tree. If you set the filter to just the children then of course the parent would remain intact and still selectable/viewable.
What do you think?
Martin
2 things:
- minimum node selection = Sounds good!
- CSV means comma seperated, so yes,like in the example above.
Cheers!
Hi Shannon
Awesome changes to the TNMP! Very cool stuff!
One last thing, its not rendering properly in IE7/8. I've added it as a bug in codeplex.
Many thanks for your quick efforts on this, we're going to use it in our 4.5 site upgrade.
Martin
Hi Shannon,
Again I've got a suggestion for MNTP :). Since you've already implemented a start node it would also be cool to be able to use the current node as the start node. For example I've got an event overview page with events as children. On the overview page I would like to highlight some of the events. I can use the MNTP which only displays the children of the current node (the overview) to select some events. For a news section I want to do the same thing and I can use the datatype with the same prevalue configurations because it displays the news items (the children). If the children have children those are displayed as well off course :). If this is possible it would truly be the most awesome datatype for Umbraco ever!
Another small suggestion is to change the top node of the tree if you selected a different start node. Now it always says content and not the name of the start node and also it shows the default icon instead of the icon of the top node. I don't know if that's easy to change but if you could it would be nice :).
One more thing. Could you please explain to me how the deeplinking works in MNTP? The last 2 posts in this topic are about it: http://our.umbraco.org/forum/developers/extending-umbraco/11059-Deeplink-Umbraco-backend.
Thanks!
Jeroen
more great suggestions. nice!
the start from current node can be done. I'll have a look at naming the start node if it's not -1 so that 'content' doesn't appear but I'm not sure if i can force the icon change... will try though.
Hi Shannon,
It's time for another suggestion :p. Currently the tree on the left has a default height. If the tree get's longer you get a scroll bar so you can view all items in the tree. It would be useful if you can adjust the height of the tree (as a prevalue) in case you have a very large tree and you want to have a better overview. The selected items on the right don't have a scroll bar. It would be useful if you could set a height on the right too. Currently I use MNTP to select images for a webshop and if the user selects 30 images for a product the list of items on the right becomes really big! A scroll bar (with adjustable height) would be nice :).
Should I create a workitem for this on codeplex or isn't that necessary? If you would like me to create a workitem for this I could also do it for the other idea's I've come up with in this topic.
Jeroen
Hi Shannon
Following on from Jeroens comment, I also think the rendering bug I mentioned before is still there, albeit in compatibility mode under IE8. Umbraco has a tendency to flick into this mode for some reason. Can you check this?
Thanks
Martin
Jeroen:
Yeah, i can easily add the height limit. I'll just have one height for the whole control (both left and right) constraints.
Martin:
Still not exactly sure what the rendering problem is and don't see a bug on code plex. Do you have a screen shot or someting?
Spinner baits and flipping jigs around those trees. Especially for the bass. crankbaits along any channel or high spots. plastic worms everywhere.
Rapala type lures for those pickerel and any pike you may probably have. With that kind of cover, l would figure conditions to remain pretty constant all day long. try topwaters early A.M. and evening.
vigilon
I've created workitems for all the suggestion I made here which aren't implemented yet:
http://ucomponents.codeplex.com/workitem/12580
http://ucomponents.codeplex.com/workitem/12581
http://ucomponents.codeplex.com/workitem/12582
http://ucomponents.codeplex.com/workitem/12583
Hopefully this gives a better overview of the suggestions instead of just posting them in this topic.
Jeroen
With regards to the start node being currentNode, how about if the start node could be set by Xpath, way more flexible and $currentPage/@id could set the current page.
Fantastic Data Type by the way!
Rich
That's a great suggestion! I've also added a workitem for it: http://ucomponents.codeplex.com/workitem/12585.
Jeroen
Here is a small suggestions for a situation I've ran into in a couple of projects, I'd simply like the MNTP to be displayed with part of it's tree expanded.
I could specify the "level / depth" in my data type definition. Then the tree would load with nodes already expanded.
I'm using MNTP to create interlinking for my multilanguage websites. Having the tree expanded when it gets loaded at back office would really facilitate my content editors' work.
Also, awesome stuff, thank you very much!
is working on a reply...