Add Option to force a book to belong to one and only one shelf #5351

Open
opened 2026-02-05 09:59:38 +03:00 by OVERLORD · 2 comments
Owner

Originally created by @jgm315 on GitHub (Jul 10, 2025).

Describe the feature you'd like

A setting to restrict each book to belong to only a single shelf. This would be a global setting that the admin can activate.

Ideally, this setting should be selected at first startup.
Otherwise, enabling it later on once there are shared books between shelves or books without shelf can become a bit messy. In that case, either the rule applies only to new books and leaves the old structure, or gives an error message that the book structure needs to be cleaned up before applying the change.

Describe the benefits this would bring to existing BookStack users

In my opinion, the hierarchy is the only point that makes us hesitate about BookStack. There are no unlimited hierarchy sublevels so with this feature we can at least ensure that we have 4 clear levels: Shelf > Book > Chapter > Page.

Can the goal of this request already be achieved via other means?

I don't think so - only by setting rules and trusting that individuals will follow. Or having one admin that can create books. But it is much better if the tool itself restricts you from wrongdoing.

Have you searched for an existing open/closed issue?

  • I have searched for existing issues and none cover my fundamental request

How long have you been using BookStack?

3 months to 1 year

Additional context

There is #1171 which covers the part of forcing books to be part of at least one shelf. But this setting request is to force each book to be part of one and only one shelf.

Originally created by @jgm315 on GitHub (Jul 10, 2025). ### Describe the feature you'd like A setting to restrict each book to belong to only a single shelf. This would be a global setting that the admin can activate. Ideally, this setting should be selected at first startup. Otherwise, enabling it later on once there are shared books between shelves or books without shelf can become a bit messy. In that case, either the rule applies only to new books and leaves the old structure, or gives an error message that the book structure needs to be cleaned up before applying the change. ### Describe the benefits this would bring to existing BookStack users In my opinion, the hierarchy is the only point that makes us hesitate about BookStack. There are no unlimited hierarchy sublevels so with this feature we can at least ensure that we have 4 clear levels: Shelf > Book > Chapter > Page. ### Can the goal of this request already be achieved via other means? I don't think so - only by setting rules and trusting that individuals will follow. Or having one admin that can create books. But it is much better if the tool itself restricts you from wrongdoing. ### Have you searched for an existing open/closed issue? - [x] I have searched for existing issues and none cover my fundamental request ### How long have you been using BookStack? 3 months to 1 year ### Additional context There is #1171 which covers the part of forcing books to be part of _at least_ one shelf. But this setting request is to force each book to be part of _one and only one_ shelf.
OVERLORD added the 🔨 Feature Request label 2026-02-05 09:59:38 +03:00
Author
Owner

@ssddanbrown commented on GitHub (Jul 10, 2025):

Thanks for the request @jgm315.

Generally though I'd avoid adding any such options/features which changes the behaviour of something as core as this, as it creates a fork in the logic and intent of items creating more to maintain while adding more considerations to support, while introducing extra questionable scenarios (like handling the switching between the options).

I know there are a lot of issues with shelves, especially in respect for new users vs the scenario of when shelves were first introduced. My latest idea on this (from assessing options earlier this year) is that I'd take shelves in slightly different direction (somewhat doubling down on their quirky/different behaviour) and instead add a new category above books which acts like a core part of the hierarchy (as per books/chapters with permission cascading). This could be done in a backwards compatible manner with their use somewhat optional.

@ssddanbrown commented on GitHub (Jul 10, 2025): Thanks for the request @jgm315. Generally though I'd avoid adding any such options/features which changes the behaviour of something as core as this, as it creates a fork in the logic and intent of items creating more to maintain while adding more considerations to support, while introducing extra questionable scenarios (like handling the switching between the options). I know there are a lot of issues with shelves, especially in respect for new users vs the scenario of when shelves were first introduced. My latest idea on this (from assessing options earlier this year) is that I'd take shelves in slightly different direction (somewhat doubling down on their quirky/different behaviour) and instead add a new category above books which acts like a core part of the hierarchy (as per books/chapters with permission cascading). This could be done in a backwards compatible manner with their use somewhat optional.
Author
Owner

@jgm315 commented on GitHub (Jul 16, 2025):

Thanks Dan for your quick and clear reply! And for your extraordinary work with this tool.

@jgm315 commented on GitHub (Jul 16, 2025): Thanks Dan for your quick and clear reply! And for your extraordinary work with this tool.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/BookStack#5351