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