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

Inform users of Terms of Use Update, Dismissible Banner #7263

Closed
djbrooke opened this issue Sep 11, 2020 · 11 comments · Fixed by #7434
Closed

Inform users of Terms of Use Update, Dismissible Banner #7263

djbrooke opened this issue Sep 11, 2020 · 11 comments · Fixed by #7434

Comments

@djbrooke
Copy link
Contributor

djbrooke commented Sep 11, 2020

We have a minor terms of use update coming for dataverse.harvard.edu. We've been directed that we can just inform users of this in the application, and this option is attractive to me as it does not require us to build a workflow for re-acceptance (covered in #4978).

My first thought is a dismissable banner with a quick message and a link to the TOU that, once dismissed, does not appear again. We'd need to track the dismissal somehow. This feature may also be useful for other messages that we want to show once, such as a release announcement or some announcement about an upcoming community meeting.

We have StatusMessageHeader and StatusMessageText available to us (http://guides.dataverse.org/en/latest/installation/config.html#id174) but don't think either of these are what we want (as they are messages turned off and on by admins), but we do want to use that banner pattern:

Screen Shot 2020-09-11 at 2 23 25 PM

Thanks @TaniaSchlatter for the screenshot and also for stating this a different way: "...having 2 types of system alert banners that look and appear the same but have two different purposes; persistent until turned off by the admin, vs persistent until turned off by the user"

@BPeuch
Copy link
Contributor

BPeuch commented Sep 14, 2020

This looks great! Do you think this feature will be available to admins through the GUI?

@BPeuch BPeuch added this to Santa's watching (Keep an eye on) in Dataverse SODHA (Belgium) Sep 14, 2020
@djbrooke
Copy link
Contributor Author

Hi @BPeuch - we'd plan to implement the management of this through the API initially.

@djbrooke djbrooke moved this from Needs Discussion 💬 to Up Next 🛎 in IQSS/dataverse (TO BE RETIRED / DELETED in favor of project 34) Sep 15, 2020
@djbrooke djbrooke moved this from Up Next 🛎 to Needs Discussion 💬 in IQSS/dataverse (TO BE RETIRED / DELETED in favor of project 34) Sep 22, 2020
@djbrooke djbrooke self-assigned this Sep 30, 2020
@djbrooke
Copy link
Contributor Author

djbrooke commented Sep 30, 2020

For discussion as this enters development:

  • Setting an expiration date as part of a message could be useful but also may be out of scope. Happy to discuss.
  • For the ToU use case, we wouldn't want to display to users who had just signed up for an account (and just agreed with the terms of use). Not sure how to handle this.
  • Can we track the dismissal of a banner (at least the session in which it occurred) in the DB?

@djbrooke djbrooke moved this from Needs Discussion 💬 to Up Next 🛎 in IQSS/dataverse (TO BE RETIRED / DELETED in favor of project 34) Sep 30, 2020
@djbrooke djbrooke removed their assignment Oct 6, 2020
@djbrooke
Copy link
Contributor Author

djbrooke commented Oct 14, 2020

From sprint planning

  • @scolapasta mentioned moving banners outside of settings and set up some table for managing this
  • This would potentially allow us to track this - which would be useful (20k-40k users means 20k-40k rows at least)
  • @kcondon mentioned that there may be some overlap with notifications - it's some type of broadcast and we want to track if people have seen it (let's dig in this as we develop)
  • Banners would be defined as automatically dismissible by new users (this is so a user that signs up for an account does not see the banner that terms of use are updated). As I mentioned during sprint planning, I think it's OK to have the updated ToU banner (for ex.) displayed to users who have just signed up for an account. Checked with @TaniaSchlatter and she is OK w/ it too.

@TaniaSchlatter TaniaSchlatter moved this from Up Next 🛎 to Needs Discussion 💬 in IQSS/dataverse (TO BE RETIRED / DELETED in favor of project 34) Oct 15, 2020
@TaniaSchlatter
Copy link
Member

TaniaSchlatter commented Oct 16, 2020

Two user scenarios that represent Harvard use case:

  1. Gary King (as existing depositor and data user) sees a message when he logs in to Harvard Dataverse, that terms of use have changed. He reads that by continuing to use the site, he is accepting the new terms. He sees that there is a link to the new terms that he can read if he wants. He checks out the new terms, which open in a new window. He closes the window, and, back on the Dataverse page, dismisses the message. The system tracks that Gary dismissed the message.
  2. A new Dataverse user creates an account, accepting the (new) terms of use. On the Harvard Dataverse home page, the new user sees the same message. They dismiss the message. The system tracks that the new user dismissed the message, same as in the existing user scenario.
  • we need to track user activity (dismissing the banner) in a way that we do not currently, (see @scolapasta's suggestion above), and in a way that is separate from other notifications.

  • add the ability to include a text link in a banner, similar to how we manage Dataverse descriptions

  • the message remains until the user has dismissed it

  • dismissing is tracked for each banner

@TaniaSchlatter TaniaSchlatter moved this from Needs Discussion 💬 to Up Next 🛎 in IQSS/dataverse (TO BE RETIRED / DELETED in favor of project 34) Oct 16, 2020
@djbrooke djbrooke moved this from Up Next 🛎 to IQSS Team - In Progress 💻 in IQSS/dataverse (TO BE RETIRED / DELETED in favor of project 34) Oct 20, 2020
@djbrooke djbrooke moved this from IQSS Team - In Progress 💻 to Up Next 🛎 in IQSS/dataverse (TO BE RETIRED / DELETED in favor of project 34) Oct 20, 2020
@sekmiller sekmiller moved this from Up Next 🛎 to IQSS Team - In Progress 💻 in IQSS/dataverse (TO BE RETIRED / DELETED in favor of project 34) Oct 23, 2020
@sekmiller sekmiller self-assigned this Oct 23, 2020
@djbrooke djbrooke changed the title Inform users of Terms of Use Update, Dismissable Banner Inform users of Terms of Use Update, Dismissible Banner Nov 9, 2020
@sekmiller
Copy link
Contributor

Proposed Table Design:

A Notification Banner table which would include a text field for header and message analogous to the settings table entries of :StatusMessageHeader and :StatusMessageText, and a nullable time stamp after which the message would not display. (if null, the message would have to be dismissed by each user.)

A join table for NotificationBanner/AuthenticatedUser, which would include ids for each and a time stamp for when the user has dismissed the notification.

Something like this:

Screen Shot 2020-11-09 at 1 04 03 PM

@sekmiller
Copy link
Contributor

Immediate Questions:
Are we thinking of continuing to use :StatusMessageHeader and :StatusMessageText for short term notifications?
Would we delete old notification banner records along with records from the join table?

@sekmiller
Copy link
Contributor

In the case of a user that is not logged in, I'm assuming that we would post any notification that has not expired. Once they log in we can check if they have dismissed it.

@djbrooke
Copy link
Contributor Author

djbrooke commented Nov 9, 2020

Thanks @scolapasta and @sekmiller for discussing just now:

  • Expiration date is out of scope
  • Instead of header we can just define the whole thing in HTML using bolding
  • We should handle multiple languages, look to how we handled it in Terms of Use internationalization (Internationalization - Terms of Use #5303)
  • Add a boolean for dismissible for user vs persists until removed by admin
  • Consider renaming the table from UserNotifications (something banner-related)

@sekmiller
Copy link
Contributor

Updated table design based on recent discussion:

Screen Shot 2020-11-09 at 4 20 46 PM

if the boolean dismissibleByUser is false the banner will be shown until the record in the table is deleted. It may be dismissed in a session. If it is true then it will only be shown to logged in users (and only if the dismissalTime in the join table for that user is null)

sekmiller added a commit that referenced this issue Nov 13, 2020
sekmiller added a commit that referenced this issue Nov 13, 2020
@TaniaSchlatter
Copy link
Member

Reviewed a WIP demo. To dos include:

  • testing the message with a text link
  • enabling the message to be deleted (need the message ID)

We discussed that if the user changes the language after dismissing the alert, the alert will not be displayed a second time, because changing the language does not change the session (or the user).

sekmiller added a commit that referenced this issue Nov 18, 2020
sekmiller added a commit that referenced this issue Nov 19, 2020
sekmiller added a commit that referenced this issue Nov 19, 2020
sekmiller added a commit that referenced this issue Nov 19, 2020
sekmiller added a commit that referenced this issue Nov 20, 2020
sekmiller added a commit that referenced this issue Nov 20, 2020
@sekmiller sekmiller moved this from IQSS Team - In Progress 💻 to Review 🦁 in IQSS/dataverse (TO BE RETIRED / DELETED in favor of project 34) Nov 23, 2020
pdurbin added a commit that referenced this issue Nov 23, 2020
sekmiller added a commit that referenced this issue Nov 24, 2020
sekmiller added a commit that referenced this issue Nov 24, 2020
@BPeuch BPeuch moved this from Santa's watching (Keep an eye on) to Solved (thank you!) in Dataverse SODHA (Belgium) Aug 5, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Dataverse SODHA (Belgium)
Solved (thank you!)
Development

Successfully merging a pull request may close this issue.

4 participants