diff --git a/public/vroom.pl b/public/vroom.pl index 56360de..df8fc7e 100755 --- a/public/vroom.pl +++ b/public/vroom.pl @@ -384,6 +384,18 @@ helper remove_notification => sub { return 1; }; + +# Set/unset ask for name +helper ask_for_name => sub { + my $self = shift; + my ($room,$set) = @_; + my $data = $self->get_room($room); + return undef unless ($data); + my $sth = eval { $self->db->prepare("UPDATE rooms SET ask_for_name=? WHERE name=?") } || return undef; + $sth->execute($set,$room) || return undef; + return 1; +}; + # Route / to the index page any '/' => 'index'; @@ -844,6 +856,29 @@ post '/action' => sub { } ); } + # Set/unset askForName + elsif ($action eq 'askForName'){ + my $type = $self->param('type'); + my $status = 'error'; + my $msg = $self->l('ERROR_OCCURED'); + if ($self->session($room)->{role} ne 'owner'){ + $msg = $self->l('NOT_ALLOWED'); + } + elsif($type eq 'set' && $self->ask_for_name($room,'1')){ + $status = 'success'; + $msg = $self->l('NAME_WILL_BE_ASKED'); + } + elsif($type eq 'unset' && $self->ask_for_name($room,'0')){ + $status = 'success'; + $msg = $self->l('NAME_WONT_BE_ASKED'); + } + return $self->render( + json => { + msg => $msg, + status => $status + } + ); + } }; # use the templates defined in the config