Page MenuHomeWrite.as

Show invite instructions for logged-in user
Closed, ResolvedPublic

Description

Overview

When a logged-in user navigates to an invite link, we should show an instructional page that explains how to share that URL and invite others.

Background

The Invites page currently lists invite URLs as links. Whereas technical people will know to copy the link (or right-click, "Copy URL"), non-techie people might not. So in case a user does what comes naturally and clicks the link, they should see a big instructional page that explains it all to them.

Users

Non-techie end-users

Implementation

  • Don't require non-user on /invite/{code} route
  • On that route, if a user is logged in, show a new templated page. Something like:

This is a special link that you can send to anyone you want to join Site Name. Copy the link below and paste it into an email, instant message, or text message and send it to the person you want. When they navigate to the link, they'll be able to create an account.
[ample vertical space]
[large text input box containing URL]
[ample vertical space]

Event Timeline

matt triaged this task as Medium-High priority.Aug 30 2019, 3:30 PM
matt created this task.
matt moved this task from Backlog to Soon / v1.0 on the WriteFreely board.

Here is the page so far. I thought of adding fancy click to copy javascript but decided to hold off until another time. It's not really important.

I think I want to add a check for if another logged in user tries to use an invite code. I.e. Matt clicks a link for a code I generated. And just set an error or flash message, then redirect them to.. their account? or invites page?

Hmm yeah, good idea. I'd say we send them to some user page and show a message, but with the chorus config, things get complicated. Maybe just redirect to / for now, and we'll see how that works. I don't imagine it happening too often.

Otherwise the page looks great! 👍 I'd just suggest making the instance name italic (I assume it's the word "test" in the screenshot). And for the JS, maybe just something that self-selects would be good, e.g. adding this to the <input>:

onfocus="if (this.select) this.select(); else this.setSelectionRange(0, this.value.length);"