package Gruntmaster::Page::Submit;

use 5.014000;
use strict;
use warnings;
use parent qw/Exporter/;
our @EXPORT_OK = qw/generate/;
our $VERSION = '0.001';

use constant FORMATS => [qw/CPP/];
use constant TITLE => 'Submit job';

use Fcntl qw/:flock/;
use HTML::Template::Compiled;
use YAML::Any qw/LoadFile/;
use Gruntmaster::Page::Common qw/header footer/;
use Gruntmaster::Data qw//;

my %templates = (
	en => <<'HTML',
<form action="https://gm.ieval.ro/action/submit" method="POST" enctype="multipart/form-data">
<label>Problem:<br>
<select name="problem" required>
<tmpl_loop problems><option value="<tmpl_var id>"><tmpl_var name></option>
</tmpl_loop></select></label><p>

<label>File:<br>
<input name="prog" required type="file"></label><p>

<label>File format:<br>
<select name="prog_format" required>
<tmpl_loop formats><option value="<tmpl_var _>"><tmpl_var _></option>
</tmpl_loop></select></label><p>

<input type="submit" value="Submit job">
HTML
);

$templates{$_}  = header($_, TITLE) . $templates{$_} for keys %templates;
$templates{$_} .= footer $_ for keys %templates;

sub generate{
	my $htc = HTML::Template::Compiled->new(scalarref => \$templates{$_[1]});
	my @problems = map +{ id => $_, name => problem_name }, problems;
	$htc->param(problems => \@problems);
	$htc->param(formats => FORMATS);
	$htc->output
}

1
