With all due respect, I agree with Jacob. Everything discussed so far sounds like a hack. Let's bat around what the right solution is a little longer before worrying about how it's going to be done. Here are the possible ways I see, in order of preference (see that's an arbitrary ordering right there ;)

Option  1
My opinion on how to do this "right" would be to have the nodes within the tree draggable. Ideally I could even drag between parents, auto-expanding of collapsed nodes as you drag the page over them. If that were fully implemented I can't see that being confusing to anyone, it's pretty standard GUI stuff these days.

However, I can see this being a volatile setup if the drag timings and indicators weren't crystal clear and really worked-out. Even then, free dragging and dropping can easily create a messy accident. This could be solved with a confirmation popup a la "do you really want to delete this page part?" but with a more lengthy message something like:

---------
Do you really want to move the Page and all it's children:

Parent > Child > Child with a very Long Title > Child

to

Parent > Child > Another page  ?
-------

Option 2
An alternative would be just a free drag within a set of children and then an explicit "Move Page Tree" link for re-parenting such that when it was clicked a flash message would appear up top saying "Select the new location of this Page (and it's children)." ...

I'd prefer this solution but I don't like the idea of having another link on every item on the tree or having to come-up with a whole small set of feedback indicators for "selecting the new location" (see how picky I am, jeesh!).

Working through a mock-up of this second option might reveal how to simplify it further.

Option 3
Finally, it should be mentioned that in Matt Mcray's Comatose CMS Plugin which resembles Radiant much there is just a "Parent" drop down box revealed once you click the <more..> link on a page to reveal the slug, etc. The drop down has a text indented version of the page tree within it. Just select your new parent and save.

Reordering is handled by drag and drop after clicking a "reorder children" link on the parent node.

The combination of these two things works for me too. It's simple and uncluttered and definately nothing is going to happen by accident.











On Jan 30, 2007, at 7:32 AM, Jacob wrote:

Your proposals so far all sound like hacks to me.

There's nothing wrong with a Hack. But if we want to solve this problem for good and check it in to Mental/Trunk. We should solve it the right
way.

And the only thing that makes sense to me is to add an "order" column to
the "pages" table.

This column should be the default order of everything, and should be
auto-populated as you create new pages.

All of this is simple and straightforward.

The real question in my mind is how it should look from an interface
perspective.

Should you be able to drag and drop pages from within the tree view?
Sounds complicated and potentially confusing, but perhaps it could be
done...

So, I think there would need to be a seperate page for ordering. Where somehow you say "I want to order all the children of this page". And you
go to a screen where you can drag-drop re-order them.

So, where should the magic "I want to order all the children of this
page" button be? Should it be somewhere in the tree view, somewhere on
the edit page screen?  What should it look like?  What should it be
called?


Thoughts people? I could totally implement this...

John Long, what's your client's budget for this feature?  : )
Would he want it added to Mental or to Trunk?

--
Posted via http://www.ruby-forum.com/.
_______________________________________________
Radiant mailing list
Post:   Radiant@lists.radiantcms.org
Search: http://radiantcms.org/mailing-list/search/
Site:   http://lists.radiantcms.org/mailman/listinfo/radiant

_______________________________________________
Radiant mailing list
Post:   Radiant@lists.radiantcms.org
Search: http://radiantcms.org/mailing-list/search/
Site:   http://lists.radiantcms.org/mailman/listinfo/radiant

Reply via email to