diff --git a/server.pl b/server.pl
index d629b70..eca6903 100644
--- a/server.pl
+++ b/server.pl
@@ -35,6 +35,8 @@ if (defined $ENV{'LOCAL_DOMAINS'}) {
$localdomains->{$_}++ for (split(/,/, $ENV{'LOCAL_DOMAINS'}));
}
+my $enable_experimental_features = $ENV{'ENABLE_EXPERIMENTAL_FEATURES' } || 0;
+
#########################################
# dotplan.online Reference Implementation
#########################################
@@ -137,6 +139,7 @@ if (defined $ENV{'LOCAL_DOMAINS'}) {
PUT => {handler => \&validate_email, valid_types => ['application/json']}
}
},
+ # experimental features:
{
path => qr/^\/js\/([^\/]{$minimum_email_length,$maximum_email_length})$/,
methods => {
@@ -505,8 +508,12 @@ EOF
sub get_plan_js {
my ($cgi, $email) = @_;
+ if (!$enable_experimental_features) {
+ print_response($cgi, 404);
+ return;
+ }
+
my $plan = util_get_plan($email);
- my $format = $cgi->param('accept')->match(qw(application/javascript));
if (!defined $plan || defined $plan->{'redirect'}) {
# js can only be requested for locally served plans
@@ -529,10 +536,9 @@ EOF
return;
}
# render response
- delete $plan->{'mtime'};
my $escapedPlan = encode_entities($plan->{'plan'});
- $escapedPlan =~ s/'/\\'/g;
- $escapedPlan =~ s/\n/\\n/g;
+ $escapedPlan =~ s/\n/
/g;
+ $escapedPlan =~ s/(
)*$//;
my $body = "document.getElementById('dotplan').innerHTML = '$escapedPlan';";
my $headers = {
'Content-Type' => 'application/javascript',