hypothesis / product-backlog

Where new feature ideas and current bugs for the Hypothesis product live
118 stars 7 forks source link

Admin tool of some sort for creating open and restricted (scoped) groups #421

Closed seanh closed 6 years ago

seanh commented 6 years ago

As a Hypothesis admin I want to be able to quickly and easily create an open and restricted group for a publisher.

Done when:

dwhly commented 6 years ago

Possibly groups could have been created already, i.e. "self-serve": https://github.com/hypothesis/product-backlog/issues/428

ajpeddakotla commented 6 years ago

Edited this to reflect that we can work on both the open and restricted groups admin interface (as it is the same interface) at the same time. There is only 1 additional requirement for restricted groups: adding group members - that has been pulled out into a seperate card: #494

lyzadanger commented 6 years ago

Hi @ajpeddakotla ! Thanks for breaking these cards out. I think there are a few acceptance criteria on this one that are going to need to wait until we make further progress on publisher/"organization"-related feature planning. Might I suggest the following:

I'm wondering if we should add:

I'd also suggest expanding the Suitable validation and error messages bullet into:

Reason: This will help devs itemize some of the validation work needed.

seanh commented 6 years ago

I've deleted this one:

  • The groups shouldn't be preconfigured. Admins should be able to choose from a list of permissions.

Preconfigured types of group (private, open and restricted) is the architecture that we've been building so far. We don't have a system at any level (service, API, activity pages, client, ...) that's able to deal with arbitrarily chosen group permissions and it's not clear to me yet that that would be a good direction.

(As Lyza already pointed out)

seanh commented 6 years ago
  • [ ] The admin can update details of the group when needed. Note: I think we need a separate card for managing/editing a group. The rest of the tasks on this card fall into creating a group.

Agree - lets move this to a separate card. This may overlap with the admin page for adding members to and removing members from a group which is already on its own card (both features may belong on the same page)

seanh commented 6 years ago

I'd also suggest expanding the Suitable validation and error messages bullet into:

  • [ ] The Admin should see a message if the user entered to be the group's creator does not exist
  • [ ] The Admin should see an error message if the origins entered for scope are invalid
  • [ ] The Admin should see an error message if core group fields do not validate (e.g. name)

Looks good!

seanh commented 6 years ago
  • [ ] After creating the new group successfully, the Admin should be taken to a panel to manage the membership of the group (add/remove members) <-- Is this a good idea?

I think that's probably a good idea because I think we might add any other group edit controls that we want admins to have (like editing the name of the group, its scopes, etc) to the same page?

ajpeddakotla commented 6 years ago

Agree w/ all comments made, and updated the acceptance criteria in the top comment to reflect. Old Acceptance Criteria (kept for record)____

lyzadanger commented 6 years ago

Work is proceeding here. There are a bunch of pieces almost ready to be plugged into each other. Here's what needs to happen next if anyone else picks this up:

dawachan commented 6 years ago

UX/UI Feedback for improving the 'Create New Group' admin form.

(I've created a new card for UX/UI improvements #https://github.com/hypothesis/product-backlog/issues/534 to be picked up in the future. It is recommended some of the improvements be pushed out with the initial release e.g character limits and required field affordances) to avoid unnecessary user errors.

  1. The form is appearing stretched and longer the data/options being displayed e.g Group Type and text fields are excessively long. Recommendation: Follow the form field widths presented on the create group: https://hypothes.is/groups/new no need to centre align - keep as left aligned as per the rest of the admin UI form fields.
 (Suggested width: 570px)

create group form - width

user facing create group form

  1. Consider making the authority field non-editable, if so make the text look disabled - as I understand it, this is pre-populated and immutable.

  2. Are there any character limits for group name, description etc? There will probably need to be, so let’s add the character count in the bottom right corner as per create private group UI: https://hypothes.is/groups/new. Adding the character count from the get go will prevent the ‘exceeding character’ limit error showing when the user clicks ‘Create new group’.

description field character limit error

  1. On Scope Origins field ‘i’ tooltip let’s change the text from: ‘Origins where this group appears (e.g. "https://example.com' to: ‘Origin URLs where this group will appear (e.g https://example.com)’

  2. Expose the origin form field input field from the ‘get go’, so it’s not hidden behind a click, add water mark to this text field ‘e.g. www.example.com’

  3. Scope Origins: Do we want to enforce entry of either ‘http://’ or ‘https://’ before the URL? At the moment, this form submits with only ‘www….’ If we do want to validate against protocol, we should include in the watermark as well e.g ‘http://www.example.com'.

  4. Add a label to the subsequent origin fields and make the ‘required affordance’ only on the first scope origin field.



Mockup for initial form view with 1st add origin field exposed and shown as a required field:

revised - create group form

Mockup for displaying multiple origin fields:

revised - create group form 2

Note: there are additional ways to design multiple input fields but I kept the same model @robertknight has already implemented to make it simpler.

For an alternative way to handle multiple form inputs in one text field - see the following 'email to: field' example

email-to-field-example

ajpeddakotla commented 6 years ago

Closing as issue is completed.