Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reader-first multi-user instances #157

merged 29 commits into from Sep 11, 2019

Reader-first multi-user instances #157

merged 29 commits into from Sep 11, 2019


Copy link

@thebaer thebaer commented Aug 6, 2019

This allows instance admins to configure an instance to be more about the collective Reader than the individual blogs.

To enable, edit your configuration file to have chorus = true under the [app] section. This is still very experimental, is built to solve a specific user's needs, and will likely change in drastic ways in the near future. It builds off the work in #153, #154, and #155, and will resolve T681 when finished.

This shows the Blogs page instead of the Editor to logged in users on
the `/` path when the new `simple_nav` config option is enabled.

Ref T680
This shows About, Reader, Log out links on backend user pages when
logged in. It also adds "New post" buttons on the backend pages and
This adds a new editor template that strips away most of the
customization features in the default editor and includes only:

- publishing
- editing
- viewing word count

It also restricts publishing to a user's first collection, so it's
optimized for instances that only allow users to have a single
collection and don't use Drafts.

Ref T680 T677
i.e. current tag a user is browsing, when they are.
@thebaer thebaer added this to the 0.11 milestone Aug 6, 2019
@thebaer thebaer mentioned this pull request Aug 6, 2019
This adds a new config value: `chorus` that signifies an instance is
more about the Reader view than individual blogs / writers. When
enabled, user navigation will show on all pages, including About,
Reader, and Privacy (ref T680).

It also uses different collection templates that keep the instance-wide
navigation at the top of the page, instead of the author's name --
again, branded more for the collective than the individual.

Ref T681
instead of linking to posts only on a user's blog.

Ref T681
@thebaer thebaer changed the title Reader-page-centric multi-user instances Reader-first multi-user instances Aug 9, 2019
This makes it possible to edit the title and introductory text at the
top of the Reader view.

Ref T684
This adds a Sign Up link to site navigation and shows the
otherwise-landing page on /signup when in chorus mode.

Ref T681
This provides easy navigation to the logged in user's posts, since
there's no direct link to their blog otherwise.

Ref T681
Also, refactor navigation bar template logic to be simpler and easier to

Ref T681
This shows Drafts in the SimpleNav menu, when both enabled. It also
hides Drafts in the non-SimpleNav menu when disabled.

Ref T679
This prevents the link from showing when an instance lands on the sign
up page anyway.

Ref T681
@thebaer thebaer mentioned this pull request Aug 28, 2019
Previously, the new pinned post link would appear in the site header,
instead of the blog header.
Previously, a failed login would change the site-wide navigation so that
it looked like the user was logged in, even though they weren't. This
fixes that.
@thebaer thebaer marked this pull request as ready for review September 3, 2019 23:37
@thebaer thebaer requested a review from a user September 4, 2019 11:33
Copy link
Member Author

thebaer commented Sep 4, 2019

@robjloranger this is ready for review now. Again, this is mostly for our own purposes (things like our internal WF instance), so there are still some missing / incomplete features here.

All new config options are considered experimental, so we might not address all issues with different combinations of config values -- that'll be for a later iteration. For now, I'm mostly interested in verifying that this doesn't introduce any regressions, and everything runs / builds correctly for you.

Final list of changes in this PR:

  • New editor choice: bare. This editor provides a very pared-down writing experience, and is built for multi-user, 1-blog instances.

  • New simple_nav option. This adds a prominent "Log out" and "New post" button. It's meant to be used with the chorus option (and might be rolled into it later).

  • New chorus option. This changes an instance to be focused on reading first, rather than writing first. It includes more consistent site-wide navigation, whether logged in or not, and new collection templates that downplay the individual author. Also when enabled, hashtags link to instance-wide tagged posts on the Reader instead of user-only tagged posts on their individual blog.

  • New disable_drafts option. This hides navigation to the Drafts page from backend user pages. It's meant to be used with the chorus option, and doesn't affect the normal editor, API, etc. (which is okay for now).

  • Customizable Reader page. Admins can now edit the Reader page from the dashboard. The Reader page design has been changed to be more consistent with other pages (About, Privacy) to help facilitate this.

  • Fix login bug. Previously, a failed login attempt would change around the site-wide navigation on the /login page to look as if a user was logged in, even though they weren't. That's now fixed.

Copy link

@ghost ghost left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Everything seems to check out OK. I tested various combinations of the new options.

The New Post button is shown always if chorus is true, did you mean that to be only when simple_nav was true per your comment? The new Post button is only present when this is set, so it would be more consistent.

Regarding simple_nav, I was wondering if it looks better to remove the Logout and separator from the user drop down menu when this is set to true, as there is now a logout link in the header. Might be a bit cleaner.

I like the bare editor, it's really clean.

Disabling drafts works, the /me/posts endpoint still works which is good if someone has drafts and the admin changes to disabling them.

Editing the reader content also works as expected.

Failed log in attempts do not alter the navigation.

Copy link
Member Author

thebaer commented Sep 9, 2019

Thanks for taking a look at everything, and glad you like it!

The new Post button is only present when this is set, so it would be more consistent.

Which Post button do you mean?

I was wondering if it looks better to remove the Logout and separator from the user drop down menu when this is set to true, as there is now a logout link in the header.

This is a great point. But I think for now, while we're still trying to get the interface right for the non-technical users choosing this layout, the redundancy is okay.

Copy link

ghost commented Sep 9, 2019

Oh the new simple NAV style post button on the pad. Where it changes from the arrow and metadata buttons to a clean button that just say's Post. It is shown with only chorus set, but seems to be styled like it was intended to be included with the simple_nav option.

Copy link
Member Author

thebaer commented Sep 9, 2019

Ah, yeah it's styled the same but it's actually unrelated to either of those settings -- it's just a static part of the bare editor. (Though I suppose in the future we could do that -- put that style of button in all editor templates and have it respect the simple_nav setting.)

This ensures the "new post" link under each blog on the user Blogs page
goes to /new instead of /.

Ref T681
@thebaer thebaer merged commit 6b99d75 into develop Sep 11, 2019
@thebaer thebaer deleted the chorus branch September 11, 2019 14:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
None yet

Successfully merging this pull request may close these issues.

None yet

1 participant