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

Facilitator abandons meeting; allow others to end it #592

Closed
jordanh opened this issue Dec 20, 2016 · 12 comments · Fixed by #825
Closed

Facilitator abandons meeting; allow others to end it #592

jordanh opened this issue Dec 20, 2016 · 12 comments · Fixed by #825
Assignees
Labels

Comments

@jordanh
Copy link
Contributor

jordanh commented Dec 20, 2016

Issue - Enhancement

See #576 and #578. This is perhaps a bugancement.

Imagine the following scenario:

  1. The facilitator started the meeting to kick the tires but never ended it
  2. A second user logged in to try and use Action (probably to use the team dashboard) and they see that a meeting is active
  3. They join the meeting with the intention of ending it but they can't (without knowing the secret incantation)
  4. Most importantly, the user didn't even realize they were not the facilitator - it just look like our software was stuck

Super frustrating!

So, what to do? Brainstorming options (in addition to the above):

  1. If a meeting has been active for >24 hours, end it automatically (requiring a server task)
  2. Add a button to the team dashboard modal offering to end a meeting if it has been active for > 24 hours
  3. Add a button to the meeting sidebar for the same
  4. Bug? If the tater is offline, shouldn't the user now become the tater?
  5. Other?
@jordanh jordanh added this to the Epic 2: Beta milestone Dec 20, 2016
@jordanh
Copy link
Contributor Author

jordanh commented Dec 20, 2016

Upon further consideration, I think this is as simple as:

If the tater is offline and I resume a meeting, allow me to become the tater.

I think this is just a re-election edge case.

@ackernaut
Copy link
Member

I like the “no tater? auto-elect a person online to be tater”

@mattkrick mattkrick reopened this Dec 20, 2016
@mattkrick
Copy link
Member

  1. Why 24? We write opinionated software, let's add some opinions! If it's over an hour, we should pop a notification. If it's over 90 minutes, we should go Online Banking on their ass & pop a notification saying "this meeting has been running for 90 effing minutes! Click Extend to extend it for another 30", which extends the field timeMeetingShouldEnd. If they don't click Extend in 5 mins, it ends. We don't need to cronjob this, when startMeeting is called, we put a self destruction timeout at the end that ends the meeting if new Date() < timeMeetingShouldEnd.

Alternatively, we make them the facilitator.

  • Jordan starts a meeting by himself, then ditches it
  • I see a meeting, I join
  • After all teamMembers have been loaded (requires a little extra work to do this right, we could just use a simple setTimeout for now), I see if the facilitator is online. if he isn't then i request to become a facilitator. The server then promotes me to facilitator.

Another option

  • if i'm the only one present & the meeting is beyond the lobby phase, then I get a note asking if i want to be facilitator.

@jordanh
Copy link
Contributor Author

jordanh commented Dec 21, 2016

I think the simplest way to go here is "alternatively, we make them the facilitator." Question is, shouldn't our facilitator re-election logic already handle this?

@mattkrick
Copy link
Member

The current logic checks to see if a facilitator was online & then went offline. So, if the facilitator was never online to begin with, it won't fire. We can change that logic to suit case 2, but there are a few things:

  • Folks can still leave meeting unended/unattended.
  • It could be problematic for bad connections. For example, Jordan has crappy internet. He subscribes to the team members, then his internet dies. The settimeout runs out, sees that the facilitator isn't online, and sends a request for him to become facilitator. His internet starts working again, and then he gets all the team members & forces his way to the facilitator role.

@jordanh
Copy link
Contributor Author

jordanh commented Dec 21, 2016

How about this logic:

  1. A team member joins a meeting by loading a /meeting/* route from a route outside of /meeting/* (i.e. the components will mount)
  2. When there is no active facilitator, hold a facilitator election

It still provides an edge case where the original facilitator's connection could be jittery and a later joiner then could usurp facilitation...but perhaps that's not such a bad thing? Perhaps it's also unlikely to occur often?

@mattkrick
Copy link
Member

what do you mean election? If we do full-on election-style logic with an arbitrator this gets easy (albeit i think that's overkill)

@jordanh
Copy link
Contributor Author

jordanh commented Dec 21, 2016

I'm not intending to invent anything new. Whatever the method was called that chooses the next facilitator if the previous facilitator drops. Probably a poor choice of words on my part :)

@mattkrick
Copy link
Member

i think we're overthinking this.

  1. it should be stupid obvious who the facilitator is. If it isn't, then our UX has failed & we need to scrap the current pink circle & do something more blatantly obvious. Maybe a bigger pink ring with the word Facilitator below the icon.

  2. if i'm not facilitator & i try to do something, like advance the meeting, i should be told via toast.

  3. if i click my face, i should be able to promote myself as facilitator.

Then we avoid these edge cases.

@jordanh
Copy link
Contributor Author

jordanh commented Jan 11, 2017

Ok, so:

  • Bigger pink ring around who the facilitator is/text badge under the avatar saying 'Facilitator' (gently moving sparkle?)

  • Change advance meeting link to include Facilitator name "{so-and-so}, advance the meeting"

  • Add a cron job to end meetings automatically after 24 hours

@mattkrick
Copy link
Member

@jordanh what are your thoughts on this? the first one seems reasonable, i just need a mockup from @ackernaut on how it should look with the facilitator badge below.
i think the 2nd one is a noop because we're just gonna remove the link for non facilitators.
do we still wanna add the 3rd one? I can get started on writing that mutation

@jordanh
Copy link
Contributor Author

jordanh commented Mar 14, 2017

Yeah, let's make that cron task.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants