Create etherpad group when joining, not creating the room

So it's created for pre-existing rooms
master
Daniel Berteaud 11 years ago
parent 479639e1f7
commit bbe77d48cf
  1. 18
      public/vroom.pl

@ -200,15 +200,6 @@ helper create_room => sub {
my $tp = $self->get_random(49);
$sth->execute($name,time(),time(),$owner,$tp,$config->{realm}) || return undef;
$self->app->log->info("Room $name created by " . $self->session('name'));
# therpad integration ?
if ($ec){
my $group = $ec->create_group() || undef;
return undef unless ($group);
$sth = eval { $self->db->prepare("UPDATE `rooms` SET `etherpad_group`=? WHERE `name`='$name';") } || return undef;
$sth->execute($group);
$ec->create_group_pad($group,$name) || return undef;
$self->app->log->debug("Etherpad group $group created for room $name");
}
return 1;
};
@ -859,6 +850,15 @@ get '/(*room)' => sub {
$self->session($room => {role => 'participant'}) if (!$self->session($room) || !$self->session($room)->{role});
# Create etherpad session if needed
if ($ec && !$self->session($room)->{etherpadSession}){
# pad doesn't exist yet ?
if (!$data->{etherpad_group}){
my $group = $ec->create_group() || undef;
return undef unless ($group);
my $sth = eval { $self->db->prepare("UPDATE `rooms` SET `etherpad_group`=? WHERE `name`='$room';") } || return undef;
$sth->execute($group);
$ec->create_group_pad($group,$room) || return undef;
$self->app->log->debug("Etherpad group $group created for room $room");
}
my $id = $ec->create_author_if_not_exists_for($self->session('name'));
$self->session($room)->{etherpadAuthorId} = $id;
my $etherpadSession = $ec->create_session($data->{etherpad_group}, $id, time + 86400);

Loading…
Cancel
Save