At present, new book page submissions are placed by selecting from two fields: a "parent" field (a drop down listing all existing book pages) and a "weight" field. This system has two disadvantages: (1) when there are several books, the drop-down for parent is long and confusing, and (2) applying a weight is confusing and often requires going back and revising the order. (Generally, it's then necessary to open the particular book in administer > content > books and adjust the page order.)
In place of the existing two fields, I'd like to see a multi-step process.
- On first creating book (if not, e.g., following link "add book page" as per existing feature request), user selects from drop down list the book the page is going into.
- When book is selected, the user can select an existing page and choose to insert the new page "before" or "after" that page and as a "child" or as a "sibling". That would provide full, fine-tuned ability to place the page. Specifically, I see creating a three-part form group for designating location of new page.
- checkboxes to insert new page "before" or "after" (after checked by default)
- drop-down to select existing reference page in selected book
- checkboxes to insert new page as "sibling" or as "child"
(These settings could be automatically filled if the page was created from a link from an existing page.) The weight attribute would still be used; it would just be set and reset automatically instead of manually.
Relevant comment from drupal-dev (Boris Mann):
> Lastly, weights SUCK. Much like having to learn markup, they make no
> sense whatsoever to the average user. In my opinion, this is kind of
> like exposing the underlying programming: who cares how the ordering
> is implemented, as long as I can order content in a way that I want?
>
> So, change the book ordering admin to have up/down arrows, as well as
> left-right for hierarchy.
Comments
Comment #1
register commentedI agree. I'm working on a large book for a community website and I came across this post while looking for an answer to this problem. I will have far too many entries in my parent pull-down menu and it's going to become complicated quickly. I like your idea a lot, but I'd settle simply for being able to exclude child pages from the parent pull-down menu. Your suggestion is much better though.
Comment #2
puregin commentedI agree that this is very important for usability. Removing weights entirely from Drupal would be high on my list of usability enhancements for 4.8 and beyond.
Comment #3
urbanfalcon commentedI wouldn't dismiss the use of weights without being able to provide the same level of usability and responsiveness. One of the benefits of weights is that the number assignment are somewhat arbitrary, and holes can be left in the weighting scheme for future growth without affecting anything else around it. This may seem like a drawback, but in a book with 2000 nodes attached, having an action that affects them all could be a resource issue on the installation as a whole. Not to mention that you could wind up with a race condition if someone else is changing the placement of one of the "after" documents farther down the tree while your changes are cascading through. And that's the only way you could get similar and/or better out of a "before or after" designation...if you allowed the placement of one document to cascade and adjust all documents at that level or lower. I agree that weights aren't ideal for small installations and could be daunting for non-technical users. I'm just not sure if making linear one-to-one dependencies between nodes in a hierarchy is the best solution...especially for large installations.
Comment #4
puregin commentedI wasn't very clear. I have nothing against weights - I just find the present user interfaces somewhat clunky in some cases. Drag'n'drop or up/down buttons might be nicer. Anyway, I guess this is just here for discussion - preferrably after 4.7 gets out the door - in concrete situations :)
Djun
Comment #5
kae commentedHi I'm confused. Do the "child page" and "sibling page" functionalities exist in 4.6 or 4.7.0b5? I only see "child page" choice, not "sibling page" choice. The pulldown list for "add a book page" on drupal.org seems to have several hundred lines. Has this problem not been fixed even though requested since 2004? On my 4.7.0b5 site, every book page shows up in the pulldown menu, which is of course unscalable.
Comment #6
LAsan commentedMoving to current version.
I think this is worth taking a look.
Comment #7
jody lynnThis has long been fixed.