response_filter {
my ($r) = @_;
return $r if ref $r ne 'Plack::App::Gruntmaster::Response';
- my $vary = 'X-Static';
- $vary .= ', Authorization' if $privacy eq 'private';
- my @hdrs = ('X-Forever' => 1, 'Cache-Control' => "$privacy, max-age=$r->{maxage}", Vary => $vary);
+ my @hdrs = ('X-Forever' => 1, 'Cache-Control' => "$privacy, max-age=$r->{maxage}");
+ push @hdrs, Vary => 'Authorization' if $privacy eq 'private';
return [200, ['Content-Type' => 'application/json; charset=utf-8', @hdrs], [encode_json $r->{params}]] if $format eq 'json';
- my $ret = render $r->{template}, 'en', title => $r->{title}, %{$r->{params}}, maybe static => $env->{HTTP_X_STATIC};
+ my $ret = render $r->{template}, 'en', title => $r->{title}, %{$r->{params}};
[200, ['Content-Type' => 'text/html; charset=utf-8', @hdrs], [encode 'UTF-8', $ret]]
},
},
sub (/) { redispatch_to '/index' },
sub (/favicon.ico) { redirect '/static/favicon.ico' },
- sub (/:article) { [200, ['Content-Type' => 'text/html; charset=utf-8', 'Cache-Control' => 'public, max-age=3600', 'X-Forever' => 1, Vary => 'X-Static'], [render_article $_{article}, 'en', maybe static => $env->{HTTP_X_STATIC}]] }
+ sub (/:article) { [200, ['Content-Type' => 'text/html; charset=utf-8', 'Cache-Control' => 'public, max-age=3600', 'X-Forever' => 1], [render_article $_{article}, 'en']] }
},
sub (POST) {
$tree->defmap(smap => \%args);
my $process = __PACKAGE__->can("process_$tmpl");
$process->($tree, %args) if $process;
- $_->detach for $tree->look_down(static => $args{static} ? 'no' : 'yes');
- $_->attr('static', undef) for $tree->look_down(sub {$_[0]->attr('static')});
$_->attr('smap', undef) for $tree->look_down(sub {$_[0]->attr('smap')});
$tree->as_HTML(undef, undef, $optional_end_tags);
}
<a href="/log/?problem=problem_id" id="job_log">Job log</a><br>
<a href="/sol/problem_id" id="solution">Solution</a>
-<h1 static="no">Submit solution</h1>
+<h1>Submit solution</h1>
<div id="nosubmit">
The contest has finished.<br>
To submit solutions to this problem, please visit the problem <a href="/pb/id">outside the contest</a>.
</div>
-<div id="submit" static="no">
+<div id="submit">
<form id="submitform" action="/action/submit" method="POST" enctype="multipart/form-data" role="form">
<input type="hidden" name="problem" value="problem_id">
<input type="hidden" name="contest" value="contest_id">
<li id="nav-ct"><a href="/ct/">Contests</a>
<li id="nav-log"><a href="/log/">Job log</a>
<li id="nav-us"><a href="/us/">Users</a>
-<li id="nav-account" static="no"><a href="/account">Account</a>
+<li id="nav-account"><a href="/account">Account</a>
<li id="nav-contribute"><a href="/contribute">Contribute!</a>
</ul>
</nav>
<h1 id="title">TITLE</h1>
-<div id="static" class="alert alert-info" static="yes">This is a static version of Gruntmaster 6000.</div>
<div id="result"></div>