diff --git a/nginx/edit_fcgi.cgi b/nginx/edit_fcgi.cgi
index 7ae0c684e..b2230ba45 100755
--- a/nginx/edit_fcgi.cgi
+++ b/nginx/edit_fcgi.cgi
@@ -14,6 +14,7 @@ $server || &error($text{'server_egone'});
print &ui_form_start("save_fcgi.cgi", "post");
print &ui_hidden("id", $in{'id'});
+print &nginx_submod_hidden();
print &ui_table_start($text{'fcgi_header'}, undef, 2);
# XXX should be in location section
@@ -29,5 +30,5 @@ print &nginx_opt_input("fastcgi_buffer_size", $server, 10,
print &ui_table_end();
print &ui_form_end([ [ undef, $text{'save'} ] ]);
-&ui_print_footer("edit_server.cgi?id=".&urlize($in{'id'}),
+&ui_print_footer(&nginx_submod_url("edit_server.cgi?id=".&urlize($in{'id'})),
$text{'server_return'});
diff --git a/nginx/edit_laccess.cgi b/nginx/edit_laccess.cgi
index c74c96747..c7f5604e7 100755
--- a/nginx/edit_laccess.cgi
+++ b/nginx/edit_laccess.cgi
@@ -17,6 +17,7 @@ $location || &error($text{'location_egone'});
print &ui_form_start("save_laccess.cgi", "post");
print &ui_hidden("id", $in{'id'});
print &ui_hidden("path", $in{'path'});
+print &nginx_submod_hidden();
print &ui_table_start($text{'access_header'}, undef, 2);
print &nginx_access_input("allow", "deny", $location);
@@ -29,8 +30,8 @@ print &nginx_passfile_input("auth_basic_user_file", $location,
print &ui_table_end();
print &ui_form_end([ [ undef, $text{'save'} ] ]);
-&ui_print_footer("edit_location.cgi?id=".&urlize($in{'id'}).
- "&path=".&urlize($in{'path'}),
+&ui_print_footer(&nginx_submod_url("edit_location.cgi?id=".&urlize($in{'id'}).
+ "&path=".&urlize($in{'path'})),
$text{'location_return'},
- "edit_server.cgi?id=".&urlize($in{'id'}),
+ &nginx_submod_url("edit_server.cgi?id=".&urlize($in{'id'})),
$text{'server_return'});
diff --git a/nginx/edit_ldocs.cgi b/nginx/edit_ldocs.cgi
index 8d94f8c7f..1690f9f2b 100755
--- a/nginx/edit_ldocs.cgi
+++ b/nginx/edit_ldocs.cgi
@@ -17,6 +17,7 @@ $location || &error($text{'location_egone'});
print &ui_form_start("save_ldocs.cgi", "post");
print &ui_hidden("id", $in{'id'});
print &ui_hidden("path", $in{'path'});
+print &nginx_submod_hidden();
print &ui_table_start($text{'docs_header'}, undef, 2);
print &nginx_opt_input("index", $location, 60);
@@ -26,8 +27,8 @@ print &nginx_opt_input("default_type", $location, 20);
print &ui_table_end();
print &ui_form_end([ [ undef, $text{'save'} ] ]);
-&ui_print_footer("edit_location.cgi?id=".&urlize($in{'id'}).
- "&path=".&urlize($in{'path'}),
+&ui_print_footer(&nginx_submod_url("edit_location.cgi?id=".&urlize($in{'id'}).
+ "&path=".&urlize($in{'path'})),
$text{'location_return'},
- "edit_server.cgi?id=".&urlize($in{'id'}),
+ &nginx_submod_url("edit_server.cgi?id=".&urlize($in{'id'})),
$text{'server_return'});
diff --git a/nginx/edit_lfcgi.cgi b/nginx/edit_lfcgi.cgi
index c006fdbde..dbf8efec2 100755
--- a/nginx/edit_lfcgi.cgi
+++ b/nginx/edit_lfcgi.cgi
@@ -17,6 +17,7 @@ $location || &error($text{'location_egone'});
print &ui_form_start("save_lfcgi.cgi", "post");
print &ui_hidden("id", $in{'id'});
print &ui_hidden("path", $in{'path'});
+print &nginx_submod_hidden();
print &ui_table_start($text{'fcgi_header'}, undef, 2);
print &nginx_opt_input("fastcgi_pass", $location, 50, $text{'fcgi_hostport'});
@@ -31,8 +32,8 @@ print &nginx_opt_input("fastcgi_buffer_size", $location, 10,
print &ui_table_end();
print &ui_form_end([ [ undef, $text{'save'} ] ]);
-&ui_print_footer("edit_location.cgi?id=".&urlize($in{'id'}).
- "&path=".&urlize($in{'path'}),
+&ui_print_footer(&nginx_submod_url("edit_location.cgi?id=".&urlize($in{'id'}).
+ "&path=".&urlize($in{'path'})),
$text{'location_return'},
- "edit_server.cgi?id=".&urlize($in{'id'}),
+ &nginx_submod_url("edit_server.cgi?id=".&urlize($in{'id'})),
$text{'server_return'});
diff --git a/nginx/edit_lgzip.cgi b/nginx/edit_lgzip.cgi
index 934efccee..f59cc49c2 100755
--- a/nginx/edit_lgzip.cgi
+++ b/nginx/edit_lgzip.cgi
@@ -17,6 +17,7 @@ $location || &error($text{'location_egone'});
print &ui_form_start("save_lgzip.cgi", "post");
print &ui_hidden("id", $in{'id'});
print &ui_hidden("path", $in{'path'});
+print &nginx_submod_hidden();
print &ui_table_start($text{'gzip_header'}, undef, 2);
print &nginx_onoff_input("gzip", $location);
@@ -31,8 +32,8 @@ print &nginx_opt_list_input("gzip_types", $location, 60, $text{'ssi_types'});
print &ui_table_end();
print &ui_form_end([ [ undef, $text{'save'} ] ]);
-&ui_print_footer("edit_location.cgi?id=".&urlize($in{'id'}).
- "&path=".&urlize($in{'path'}),
+&ui_print_footer(&nginx_submod_url("edit_location.cgi?id=".&urlize($in{'id'}).
+ "&path=".&urlize($in{'path'})),
$text{'location_return'},
- "edit_server.cgi?id=".&urlize($in{'id'}),
+ &nginx_submod_url("edit_server.cgi?id=".&urlize($in{'id'})),
$text{'server_return'});
diff --git a/nginx/edit_location.cgi b/nginx/edit_location.cgi
index 29f7d100f..736975414 100755
--- a/nginx/edit_location.cgi
+++ b/nginx/edit_location.cgi
@@ -30,8 +30,9 @@ if ($in{'path'}) {
my @lpages = ( "ldocs", "lfcgi", "lssi", "lgzip", "lproxy",
"laccess", "lrewrite", );
&icons_table(
- [ map { "edit_".$_.".cgi?id=".&urlize($in{'id'}).
- "&path=".&urlize($in{'path'}) } @lpages ],
+ [ map { &nginx_submod_url("edit_".$_.".cgi?id=".
+ &urlize($in{'id'})."&path=".&urlize($in{'path'})) }
+ @lpages ],
[ map { $text{$_."_title"} } @lpages ],
[ map { "images/".$_.".gif" } @lpages ],
);
@@ -47,6 +48,7 @@ print &ui_form_start("save_location.cgi", "post");
print &ui_hidden("id", $in{'id'});
print &ui_hidden("new", $in{'new'});
print &ui_hidden("oldpath", $in{'path'});
+print &nginx_submod_hidden();
print &ui_table_start($text{'location_header'}, "width=100%", 2);
# Location path
@@ -73,5 +75,5 @@ else {
[ 'delete', $text{'location_delete'} ] ]);
}
-&ui_print_footer("edit_server.cgi?id=".&urlize($in{'id'}),
+&ui_print_footer(&nginx_submod_url("edit_server.cgi?id=".&urlize($in{'id'})),
$text{'server_return'});
diff --git a/nginx/edit_lproxy.cgi b/nginx/edit_lproxy.cgi
index 9c8be75be..3d7fc4680 100755
--- a/nginx/edit_lproxy.cgi
+++ b/nginx/edit_lproxy.cgi
@@ -17,6 +17,7 @@ $location || &error($text{'location_egone'});
print &ui_form_start("save_lproxy.cgi", "post");
print &ui_hidden("id", $in{'id'});
print &ui_hidden("path", $in{'path'});
+print &nginx_submod_hidden();
print &ui_table_start($text{'proxy_header'}, undef, 2);
print &nginx_opt_input("proxy_pass", $location, 50, $text{'proxy_url'});
@@ -37,8 +38,8 @@ print &nginx_textarea_input("proxy_hide_header", $location, 60, 5);
print &ui_table_end();
print &ui_form_end([ [ undef, $text{'save'} ] ]);
-&ui_print_footer("edit_location.cgi?id=".&urlize($in{'id'}).
- "&path=".&urlize($in{'path'}),
+&ui_print_footer(&nginx_submod_url("edit_location.cgi?id=".&urlize($in{'id'}).
+ "&path=".&urlize($in{'path'})),
$text{'location_return'},
- "edit_server.cgi?id=".&urlize($in{'id'}),
+ &nginx_submod_url("edit_server.cgi?id=".&urlize($in{'id'})),
$text{'server_return'});
diff --git a/nginx/edit_lrewrite.cgi b/nginx/edit_lrewrite.cgi
index c82c7dd75..02af0ebda 100755
--- a/nginx/edit_lrewrite.cgi
+++ b/nginx/edit_lrewrite.cgi
@@ -18,6 +18,7 @@ $location || &error($text{'location_egone'});
print &ui_form_start("save_lrewrite.cgi", "post");
print &ui_hidden("id", $in{'id'});
print &ui_hidden("path", $in{'path'});
+print &nginx_submod_hidden();
print &ui_table_start($text{'rewrite_header'}, undef, 2);
print &nginx_rewrite_input("rewrite", $location);
@@ -27,8 +28,8 @@ print &nginx_onoff_input("rewrite_log", $location);
print &ui_table_end();
print &ui_form_end([ [ undef, $text{'save'} ] ]);
-&ui_print_footer("edit_location.cgi?id=".&urlize($in{'id'}).
- "&path=".&urlize($in{'path'}),
+&ui_print_footer(&nginx_submod_url("edit_location.cgi?id=".&urlize($in{'id'}).
+ "&path=".&urlize($in{'path'})),
$text{'location_return'},
- "edit_server.cgi?id=".&urlize($in{'id'}),
+ &nginx_submod_url("edit_server.cgi?id=".&urlize($in{'id'})),
$text{'server_return'});
diff --git a/nginx/edit_lssi.cgi b/nginx/edit_lssi.cgi
index d17150422..d162bf5a4 100755
--- a/nginx/edit_lssi.cgi
+++ b/nginx/edit_lssi.cgi
@@ -17,6 +17,7 @@ $location || &error($text{'location_egone'});
print &ui_form_start("save_lssi.cgi", "post");
print &ui_hidden("id", $in{'id'});
print &ui_hidden("path", $in{'path'});
+print &nginx_submod_hidden();
print &ui_table_start($text{'ssi_header'}, undef, 2);
print &nginx_onoff_input("ssi", $location);
@@ -30,8 +31,8 @@ print &nginx_opt_input("ssi_value_length", $location, 10);
print &ui_table_end();
print &ui_form_end([ [ undef, $text{'save'} ] ]);
-&ui_print_footer("edit_location.cgi?id=".&urlize($in{'id'}).
- "&path=".&urlize($in{'path'}),
+&ui_print_footer(&nginx_submod_url("edit_location.cgi?id=".&urlize($in{'id'}).
+ "&path=".&urlize($in{'path'})),
$text{'location_return'},
- "edit_server.cgi?id=".&urlize($in{'id'}),
+ &nginx_submod_url("edit_server.cgi?id=".&urlize($in{'id'})),
$text{'server_return'});
diff --git a/nginx/edit_manual.cgi b/nginx/edit_manual.cgi
index bbb029ab9..ca3428987 100755
--- a/nginx/edit_manual.cgi
+++ b/nginx/edit_manual.cgi
@@ -17,6 +17,8 @@ $in{'file'} = &resolve_manual_config_file($in{'file'}, @files) ||
# Show file selector
print &ui_form_start("edit_manual.cgi");
+print &nginx_submod_hidden();
+print &ui_hidden("id", $in{'id'});
print "$text{'manual_file'}\n";
print &ui_select("file", $in{'file'}, \@files, 1, 0, 0, 0,
"onChange='form.submit()'");
@@ -26,6 +28,8 @@ print &ui_form_end();
# Show current file
print &ui_form_start("save_manual.cgi", "form-data");
print &ui_hidden("file", $in{'file'});
+print &ui_hidden("id", $in{'id'});
+print &nginx_submod_hidden();
print &ui_table_start(undef, "width=100%", 2);
print &ui_table_row(undef,
diff --git a/nginx/edit_saccess.cgi b/nginx/edit_saccess.cgi
index 17bba98e1..44bf42025 100755
--- a/nginx/edit_saccess.cgi
+++ b/nginx/edit_saccess.cgi
@@ -14,6 +14,7 @@ $server || &error($text{'server_egone'});
print &ui_form_start("save_saccess.cgi", "post");
print &ui_hidden("id", $in{'id'});
+print &nginx_submod_hidden();
print &ui_table_start($text{'access_header'}, undef, 2);
print &nginx_access_input("allow", "deny", $server);
@@ -25,5 +26,5 @@ print &nginx_passfile_input("auth_basic_user_file", $server, $in{'id'});
print &ui_table_end();
print &ui_form_end([ [ undef, $text{'save'} ] ]);
-&ui_print_footer("edit_server.cgi?id=".&urlize($in{'id'}),
+&ui_print_footer(&nginx_submod_url("edit_server.cgi?id=".&urlize($in{'id'})),
$text{'server_return'});
diff --git a/nginx/edit_sdocs.cgi b/nginx/edit_sdocs.cgi
index d2be057bc..67c5a87bd 100755
--- a/nginx/edit_sdocs.cgi
+++ b/nginx/edit_sdocs.cgi
@@ -14,6 +14,7 @@ $server || &error($text{'server_egone'});
print &ui_form_start("save_sdocs.cgi", "post");
print &ui_hidden("id", $in{'id'});
+print &nginx_submod_hidden();
print &ui_table_start($text{'docs_header'}, undef, 2);
print &nginx_opt_input("root", $server, 60, undef,
@@ -26,5 +27,5 @@ print &nginx_opt_input("default_type", $server, 20);
print &ui_table_end();
print &ui_form_end([ [ undef, $text{'save'} ] ]);
-&ui_print_footer("edit_server.cgi?id=".&urlize($in{'id'}),
+&ui_print_footer(&nginx_submod_url("edit_server.cgi?id=".&urlize($in{'id'})),
$text{'server_return'});
diff --git a/nginx/edit_server.cgi b/nginx/edit_server.cgi
index 8522f7e2b..267d7edd4 100755
--- a/nginx/edit_server.cgi
+++ b/nginx/edit_server.cgi
@@ -4,14 +4,19 @@
use strict;
use warnings;
require './nginx-lib.pl';
-our (%text, %in, %access);
+our (%text, %in, %access, %config);
&ReadParse();
+my $from_submod = defined($in{'nmod'});
+my $action_links = -r $config{'nginx_config'} &&
+ &has_command($config{'nginx_cmd'}) ?
+ &nginx_action_links() : "";
my $server;
my $can_create = !defined($access{'create'}) || $access{'create'};
if ($in{'new'}) {
$can_create || &error($text{'server_ecannotcreate'});
- &ui_print_header(undef, $text{'server_create'}, "");
+ &ui_print_header(undef, $text{'server_create'}, "", undef, undef,
+ undef, undef, $action_links);
$server = { 'name' => 'server',
'members' => [ ] };
}
@@ -19,7 +24,8 @@ else {
$server = &find_server($in{'id'});
$server || &error($text{'server_egone'});
&can_edit_server($server) || &error($text{'server_ecannot'});
- &ui_print_header(&server_desc($server), $text{'server_edit'}, "");
+ &ui_print_header(&server_desc($server), $text{'server_edit'}, "",
+ undef, undef, undef, undef, $action_links);
}
if ($in{'id'}) {
@@ -28,11 +34,14 @@ if ($in{'id'}) {
my @spages = ( $access{'logs'} ? ( "slogs" ) : ( ),
"sdocs", "ssl", "fcgi", "sssi", "sgzip", "sproxy",
"saccess", "srewrite", );
- my @slinks = map { "edit_".$_.".cgi?id=".&urlize($in{'id'}) } @spages;
+ my @slinks = map { &nginx_submod_url("edit_".$_.".cgi?id=".
+ &urlize($in{'id'})) } @spages;
my @stitles = map { $text{$_."_title"} } @spages;
my @sicons = map { "images/".$_.".gif" } @spages;
if (&can_edit_manual_config() && &can_edit_manual_file($server->{'file'})) {
- push(@slinks, "edit_manual.cgi?file=".&urlize($server->{'file'}));
+ push(@slinks, &nginx_submod_url("edit_manual.cgi?file=".
+ &urlize($server->{'file'}).
+ "&id=".&urlize($in{'id'})));
push(@stitles, $text{'manual_server'});
push(@sicons, "images/manual.gif");
}
@@ -45,8 +54,9 @@ if ($in{'id'}) {
# Show table for locations
print &ui_subheading($text{'server_locations'});
my @locations = &find("location", $server);
- my @links = ( "$text{'server_addloc'}" );
+ my @links = ( "$text{'server_addloc'}" );
if (@locations) {
print &ui_links_row(\@links);
print &ui_columns_start([ $text{'server_pathloc'},
@@ -62,9 +72,9 @@ if ($in{'id'}) {
my $auto = &find_value("autoindex", $l);
my @w = @{$l->{'words'}};
print &ui_columns_row([
- "".
+ &urlize($w[$#w]))."'>".
&html_escape($w[$#w])."",
&match_desc(@w > 1 ? $w[0] : ""),
$rootdir ? $rootdir :
@@ -92,6 +102,7 @@ if ($access{'edit'} || ($in{'new'} && $can_create)) {
print &ui_form_start("save_server.cgi", "post");
print &ui_hidden("id", $in{'id'});
print &ui_hidden("new", $in{'new'});
+ print &nginx_submod_hidden();
print &ui_table_start($text{'server_header'}, "width=100%", 2);
# Server name
@@ -168,10 +179,18 @@ if ($access{'edit'} || ($in{'new'} && $can_create)) {
if ($in{'new'}) {
print &ui_form_end([ [ undef, $text{'create'} ] ]);
}
+ elsif ($from_submod) {
+ print &ui_form_end([ [ undef, $text{'save'} ] ]);
+ }
else {
print &ui_form_end([ [ undef, $text{'save'} ],
[ 'delete', $text{'server_delete'} ] ]);
}
}
-&ui_print_footer("", $text{'index_return'});
+if ($from_submod) {
+ &ui_print_footer();
+ }
+else {
+ &ui_print_footer("", $text{'index_return'});
+ }
diff --git a/nginx/edit_sgzip.cgi b/nginx/edit_sgzip.cgi
index a00bdb48e..1cfeca96f 100755
--- a/nginx/edit_sgzip.cgi
+++ b/nginx/edit_sgzip.cgi
@@ -14,6 +14,7 @@ $server || &error($text{'server_egone'});
print &ui_form_start("save_sgzip.cgi", "post");
print &ui_hidden("id", $in{'id'});
+print &nginx_submod_hidden();
print &ui_table_start($text{'gzip_header'}, undef, 2);
print &nginx_onoff_input("gzip", $server);
@@ -28,5 +29,5 @@ print &nginx_opt_list_input("gzip_types", $server, 60, $text{'ssi_types'});
print &ui_table_end();
print &ui_form_end([ [ undef, $text{'save'} ] ]);
-&ui_print_footer("edit_server.cgi?id=".&urlize($in{'id'}),
+&ui_print_footer(&nginx_submod_url("edit_server.cgi?id=".&urlize($in{'id'})),
$text{'server_return'});
diff --git a/nginx/edit_slogs.cgi b/nginx/edit_slogs.cgi
index fa1293c67..31ea41220 100755
--- a/nginx/edit_slogs.cgi
+++ b/nginx/edit_slogs.cgi
@@ -15,6 +15,7 @@ $access{'logs'} || &error($text{'logs_ecannot'});
print &ui_form_start("save_slogs.cgi", "post");
print &ui_hidden("id", $in{'id'});
+print &nginx_submod_hidden();
print &ui_table_start($text{'slogs_header'}, undef, 2);
print &nginx_error_log_input("error_log", $server);
@@ -26,5 +27,5 @@ print &nginx_logformat_input("log_format", $server);
print &ui_table_end();
print &ui_form_end([ [ undef, $text{'save'} ] ]);
-&ui_print_footer("edit_server.cgi?id=".&urlize($in{'id'}),
+&ui_print_footer(&nginx_submod_url("edit_server.cgi?id=".&urlize($in{'id'})),
$text{'server_return'});
diff --git a/nginx/edit_sproxy.cgi b/nginx/edit_sproxy.cgi
index 6fa82a3fd..11e220a80 100755
--- a/nginx/edit_sproxy.cgi
+++ b/nginx/edit_sproxy.cgi
@@ -14,6 +14,7 @@ $server || &error($text{'server_egone'});
print &ui_form_start("save_sproxy.cgi", "post");
print &ui_hidden("id", $in{'id'});
+print &nginx_submod_hidden();
print &ui_table_start($text{'proxy_header'}, undef, 2);
print &nginx_opt_input("proxy_buffer_size", $server, 10,
@@ -32,5 +33,5 @@ print &nginx_textarea_input("proxy_hide_header", $server, 60, 5);
print &ui_table_end();
print &ui_form_end([ [ undef, $text{'save'} ] ]);
-&ui_print_footer("edit_server.cgi?id=".&urlize($in{'id'}),
+&ui_print_footer(&nginx_submod_url("edit_server.cgi?id=".&urlize($in{'id'})),
$text{'server_return'});
diff --git a/nginx/edit_srewrite.cgi b/nginx/edit_srewrite.cgi
index 828469d02..3623859f4 100755
--- a/nginx/edit_srewrite.cgi
+++ b/nginx/edit_srewrite.cgi
@@ -14,6 +14,7 @@ $server || &error($text{'server_egone'});
print &ui_form_start("save_srewrite.cgi", "post");
print &ui_hidden("id", $in{'id'});
+print &nginx_submod_hidden();
print &ui_table_start($text{'rewrite_header'}, undef, 2);
print &nginx_rewrite_input("rewrite", $server);
@@ -23,5 +24,5 @@ print &nginx_onoff_input("rewrite_log", $server);
print &ui_table_end();
print &ui_form_end([ [ undef, $text{'save'} ] ]);
-&ui_print_footer("edit_server.cgi?id=".&urlize($in{'id'}),
+&ui_print_footer(&nginx_submod_url("edit_server.cgi?id=".&urlize($in{'id'})),
$text{'server_return'});
diff --git a/nginx/edit_ssl.cgi b/nginx/edit_ssl.cgi
index 876f8ddaf..cbcfb89e2 100755
--- a/nginx/edit_ssl.cgi
+++ b/nginx/edit_ssl.cgi
@@ -14,6 +14,7 @@ $server || &error($text{'server_egone'});
print &ui_form_start("save_ssl.cgi", "post");
print &ui_hidden("id", $in{'id'});
+print &nginx_submod_hidden();
print &ui_table_start($text{'ssl_header'}, undef, 2);
print &nginx_opt_input("ssl_certificate", $server, 50, $text{'ssl_file'},
@@ -30,5 +31,5 @@ print &nginx_multi_input("ssl_protocols", $server,
print &ui_table_end();
print &ui_form_end([ [ undef, $text{'save'} ] ]);
-&ui_print_footer("edit_server.cgi?id=".&urlize($in{'id'}),
+&ui_print_footer(&nginx_submod_url("edit_server.cgi?id=".&urlize($in{'id'})),
$text{'server_return'});
diff --git a/nginx/edit_sssi.cgi b/nginx/edit_sssi.cgi
index 089e0e731..86d182999 100755
--- a/nginx/edit_sssi.cgi
+++ b/nginx/edit_sssi.cgi
@@ -14,6 +14,7 @@ $server || &error($text{'server_egone'});
print &ui_form_start("save_sssi.cgi", "post");
print &ui_hidden("id", $in{'id'});
+print &nginx_submod_hidden();
print &ui_table_start($text{'ssi_header'}, undef, 2);
print &nginx_onoff_input("ssi", $server);
@@ -27,5 +28,5 @@ print &nginx_opt_input("ssi_value_length", $server, 10);
print &ui_table_end();
print &ui_form_end([ [ undef, $text{'save'} ] ]);
-&ui_print_footer("edit_server.cgi?id=".&urlize($in{'id'}),
+&ui_print_footer(&nginx_submod_url("edit_server.cgi?id=".&urlize($in{'id'})),
$text{'server_return'});
diff --git a/nginx/edit_user.cgi b/nginx/edit_user.cgi
index ccf576080..84c1ce83a 100755
--- a/nginx/edit_user.cgi
+++ b/nginx/edit_user.cgi
@@ -30,6 +30,7 @@ print &ui_hidden("file", $in{'file'});
print &ui_hidden("old", $in{'user'});
print &ui_hidden("id", $in{'id'});
print &ui_hidden("path", $in{'path'});
+print &nginx_submod_hidden();
print &ui_table_start($text{'user_header'}, undef, 2);
# Username
@@ -60,7 +61,6 @@ else {
[ 'delete', $text{'delete'} ] ]);
}
-&ui_print_footer("list_users.cgi?file=".&urlize($in{'file'}).
- "&id=".&urlize($in{'id'})."&path=".&urlize($in{'path'}),
+&ui_print_footer(&nginx_submod_url("list_users.cgi?file=".&urlize($in{'file'}).
+ "&id=".&urlize($in{'id'})."&path=".&urlize($in{'path'})),
$text{'users_return'});
-
diff --git a/nginx/list_users.cgi b/nginx/list_users.cgi
index 648e272c1..3c912b90c 100755
--- a/nginx/list_users.cgi
+++ b/nginx/list_users.cgi
@@ -15,16 +15,19 @@ $in{'file'} || &error($text{'users_efile'});
&switch_write_user(1);
my $users = &htaccess_htpasswd::list_users($in{'file'});
&switch_write_user(0);
-my @links = ( "".
+my @links = ( "".
$text{'users_add'}."" );
if (@$users) {
print &ui_links_row(\@links);
- my @grid = map { my $h = "".
- &html_escape($_->{'user'})."";
+ "&path=".&urlize($in{'path'}));
+ my $h = "".
+ &html_escape($_->{'user'})."";
!$_->{'enabled'} ? "$h" : $h } @$users;
print &ui_grid_table(\@grid, 4, 100);
}
@@ -34,12 +37,12 @@ else {
print &ui_links_row(\@links);
if ($in{'path'}) {
- &ui_print_footer("edit_location.cgi?id=".&urlize($in{'id'}).
- "&path=".&urlize($in{'path'}),
+ &ui_print_footer(&nginx_submod_url("edit_location.cgi?id=".
+ &urlize($in{'id'})."&path=".&urlize($in{'path'})),
$text{'location_return'});
}
elsif ($in{'id'}) {
- &ui_print_footer("edit_server.cgi?id=".&urlize($in{'id'}),
+ &ui_print_footer(&nginx_submod_url("edit_server.cgi?id=".&urlize($in{'id'})),
$text{'server_return'});
}
else {
diff --git a/nginx/nginx-lib.pl b/nginx/nginx-lib.pl
index 7a7c6d3fe..6412dffd1 100644
--- a/nginx/nginx-lib.pl
+++ b/nginx/nginx-lib.pl
@@ -1390,8 +1390,9 @@ my ($name, $parent, $id, $path) = @_;
my $value = &find_value($name, $parent);
my $edit;
if ($value =~ /^\/\S/) {
- $edit = " ".
+ $edit = " ".
$text{'access_edit'}."";
}
return &nginx_opt_input($name, $parent, 50, $text{'access_pfile'},
@@ -1587,6 +1588,24 @@ $url .= "?$ENV{'QUERY_STRING'}"
return $url;
}
+# nginx_submod_url(url)
+# Adds the submodule context parameter to a URL, if present
+sub nginx_submod_url
+{
+my ($url) = @_;
+our %in;
+return $url if (!defined($in{'nmod'}));
+return $url.($url =~ /\?/ ? "&" : "?")."nmod=".&urlize($in{'nmod'});
+}
+
+# nginx_submod_hidden()
+# Returns a hidden field for the submodule context parameter
+sub nginx_submod_hidden
+{
+our %in;
+return defined($in{'nmod'}) ? &ui_hidden("nmod", $in{'nmod'}) : "";
+}
+
# test_config()
# Returns an error message if the config is invalid
sub test_config
diff --git a/nginx/save_fcgi.cgi b/nginx/save_fcgi.cgi
index ff20b1dd2..814effa8c 100755
--- a/nginx/save_fcgi.cgi
+++ b/nginx/save_fcgi.cgi
@@ -22,5 +22,4 @@ $server || &error($text{'server_egone'});
&unlock_all_config_files();
my $name = &find_value("server_name", $server);
&webmin_log("fcgi", "server", $name);
-&redirect("edit_server.cgi?id=".&urlize($in{'id'}));
-
+&redirect(&nginx_submod_url("edit_server.cgi?id=".&urlize($in{'id'})));
diff --git a/nginx/save_laccess.cgi b/nginx/save_laccess.cgi
index c3ee9c620..e8bfb5e81 100755
--- a/nginx/save_laccess.cgi
+++ b/nginx/save_laccess.cgi
@@ -25,6 +25,5 @@ $location || &error($text{'location_egone'});
my $name = &find_value("server_name", $server);
&webmin_log("access", "location", &location_path($location),
{ 'server' => $name });
-&redirect("edit_location.cgi?id=".&urlize($in{'id'}).
- "&path=".&urlize($in{'path'}));
-
+&redirect(&nginx_submod_url("edit_location.cgi?id=".&urlize($in{'id'}).
+ "&path=".&urlize($in{'path'})));
diff --git a/nginx/save_ldocs.cgi b/nginx/save_ldocs.cgi
index 49d21965e..910da50b6 100755
--- a/nginx/save_ldocs.cgi
+++ b/nginx/save_ldocs.cgi
@@ -24,6 +24,5 @@ $location || &error($text{'location_egone'});
my $name = &find_value("server_name", $server);
&webmin_log("docs", "location", &location_path($location),
{ 'server' => $name });
-&redirect("edit_location.cgi?id=".&urlize($in{'id'}).
- "&path=".&urlize($in{'path'}));
-
+&redirect(&nginx_submod_url("edit_location.cgi?id=".&urlize($in{'id'}).
+ "&path=".&urlize($in{'path'})));
diff --git a/nginx/save_lfcgi.cgi b/nginx/save_lfcgi.cgi
index a271fcb8f..f89fccec6 100755
--- a/nginx/save_lfcgi.cgi
+++ b/nginx/save_lfcgi.cgi
@@ -28,6 +28,5 @@ $location || &error($text{'location_egone'});
my $name = &find_value("server_name", $server);
&webmin_log("fcgi", "location", &location_path($location),
{ 'server' => $name });
-&redirect("edit_location.cgi?id=".&urlize($in{'id'}).
- "&path=".&urlize($in{'path'}));
-
+&redirect(&nginx_submod_url("edit_location.cgi?id=".&urlize($in{'id'}).
+ "&path=".&urlize($in{'path'})));
diff --git a/nginx/save_lgzip.cgi b/nginx/save_lgzip.cgi
index 9e349e230..939a306a8 100755
--- a/nginx/save_lgzip.cgi
+++ b/nginx/save_lgzip.cgi
@@ -28,5 +28,5 @@ $location || &error($text{'location_egone'});
my $name = &find_value("server_name", $server);
&webmin_log("gzip", "location", &location_path($location),
{ 'server' => $name });
-&redirect("edit_location.cgi?id=".&urlize($in{'id'}).
- "&path=".&urlize($in{'path'}));
+&redirect(&nginx_submod_url("edit_location.cgi?id=".&urlize($in{'id'}).
+ "&path=".&urlize($in{'path'})));
diff --git a/nginx/save_location.cgi b/nginx/save_location.cgi
index 246790951..5b6b5be89 100755
--- a/nginx/save_location.cgi
+++ b/nginx/save_location.cgi
@@ -56,12 +56,14 @@ if ($in{'delete'}) {
"".&html_escape(&location_path($location)).""),
[ [ 'id', $in{'id'} ],
[ 'oldpath', $in{'oldpath'} ],
+ (defined($in{'nmod'}) ? [ 'nmod', $in{'nmod'} ] : ( )),
[ 'delete', 1 ] ],
[ [ 'confirm', $text{'server_confirm'} ] ],
);
- &ui_print_footer("edit_location.cgi?id=".&urlize($in{'id'}).
- "&path=".&urlize($in{'oldpath'}),
+ &ui_print_footer(&nginx_submod_url("edit_location.cgi?id=".
+ &urlize($in{'id'}).
+ "&path=".&urlize($in{'oldpath'})),
$text{'server_return'});
}
}
@@ -95,7 +97,7 @@ if ($action) {
my $name = &find_value("server_name", $server);
&webmin_log($action, 'location', &location_path($location),
{ 'server' => $name });
- &redirect("edit_server.cgi?id=".&urlize($in{'id'}));
+ &redirect(&nginx_submod_url("edit_server.cgi?id=".&urlize($in{'id'})));
}
diff --git a/nginx/save_lproxy.cgi b/nginx/save_lproxy.cgi
index 658a784d7..c9a16d987 100755
--- a/nginx/save_lproxy.cgi
+++ b/nginx/save_lproxy.cgi
@@ -36,6 +36,5 @@ $location || &error($text{'location_egone'});
my $name = &find_value("server_name", $server);
&webmin_log("proxy", "location", &location_path($location),
{ 'server' => $name });
-&redirect("edit_location.cgi?id=".&urlize($in{'id'}).
- "&path=".&urlize($in{'path'}));
-
+&redirect(&nginx_submod_url("edit_location.cgi?id=".&urlize($in{'id'}).
+ "&path=".&urlize($in{'path'})));
diff --git a/nginx/save_lrewrite.cgi b/nginx/save_lrewrite.cgi
index a25e76138..619a98f85 100755
--- a/nginx/save_lrewrite.cgi
+++ b/nginx/save_lrewrite.cgi
@@ -23,6 +23,5 @@ $location || &error($text{'location_egone'});
my $name = &find_value("server_name", $server);
&webmin_log("rewrite", "location", &location_path($location),
{ 'server' => $name });
-&redirect("edit_location.cgi?id=".&urlize($in{'id'}).
- "&path=".&urlize($in{'path'}));
-
+&redirect(&nginx_submod_url("edit_location.cgi?id=".&urlize($in{'id'}).
+ "&path=".&urlize($in{'path'})));
diff --git a/nginx/save_lssi.cgi b/nginx/save_lssi.cgi
index 0f9ce40a6..80af5280a 100755
--- a/nginx/save_lssi.cgi
+++ b/nginx/save_lssi.cgi
@@ -28,6 +28,5 @@ $location || &error($text{'location_egone'});
my $name = &find_value("server_name", $server);
&webmin_log("ssi", "location", &location_path($location),
{ 'server' => $name });
-&redirect("edit_location.cgi?id=".&urlize($in{'id'}).
- "&path=".&urlize($in{'path'}));
-
+&redirect(&nginx_submod_url("edit_location.cgi?id=".&urlize($in{'id'}).
+ "&path=".&urlize($in{'path'})));
diff --git a/nginx/save_manual.cgi b/nginx/save_manual.cgi
index 61ea1aba0..426de6e10 100755
--- a/nginx/save_manual.cgi
+++ b/nginx/save_manual.cgi
@@ -40,4 +40,9 @@ else {
}
&update_last_config_change();
&webmin_log("manual", undef, $in{'file'});
-&redirect("");
+if ($in{'id'}) {
+ &redirect(&nginx_submod_url("edit_server.cgi?id=".&urlize($in{'id'})));
+ }
+else {
+ &redirect("index.cgi");
+ }
diff --git a/nginx/save_saccess.cgi b/nginx/save_saccess.cgi
index f29a042f4..e9a9fcae7 100755
--- a/nginx/save_saccess.cgi
+++ b/nginx/save_saccess.cgi
@@ -22,5 +22,4 @@ $server || &error($text{'server_egone'});
&unlock_all_config_files();
my $name = &find_value("server_name", $server);
&webmin_log("access", "server", $name);
-&redirect("edit_server.cgi?id=".&urlize($in{'id'}));
-
+&redirect(&nginx_submod_url("edit_server.cgi?id=".&urlize($in{'id'})));
diff --git a/nginx/save_sdocs.cgi b/nginx/save_sdocs.cgi
index bb89958cf..39752d03e 100755
--- a/nginx/save_sdocs.cgi
+++ b/nginx/save_sdocs.cgi
@@ -28,4 +28,4 @@ $in{'root_def'} || &can_directory($in{'root'}) ||
my $name = &find_value("server_name", $server);
&webmin_log("sdocs", "server", $name);
-&redirect("edit_server.cgi?id=".&urlize(&server_id($server)));
+&redirect(&nginx_submod_url("edit_server.cgi?id=".&urlize(&server_id($server))));
diff --git a/nginx/save_server.cgi b/nginx/save_server.cgi
index b4124e80c..b8850b99e 100755
--- a/nginx/save_server.cgi
+++ b/nginx/save_server.cgi
@@ -63,11 +63,13 @@ if ($in{'delete'}) {
&text('server_rusure',
"".&html_escape($name).""),
[ [ 'id', $in{'id'} ],
+ (defined($in{'nmod'}) ? [ 'nmod', $in{'nmod'} ] : ( )),
[ 'delete', 1 ] ],
[ [ 'confirm', $text{'server_confirm'} ] ],
);
- &ui_print_footer("edit_server.cgi?id=".&urlize($in{'id'}),
+ &ui_print_footer(&nginx_submod_url("edit_server.cgi?id=".
+ &urlize($in{'id'})),
$text{'server_return'});
}
}
@@ -177,5 +179,11 @@ elsif ($action eq 'delete') {
}
if ($action) {
&webmin_log($action, 'server', $name);
- &redirect("");
+ if (defined($in{'nmod'}) && $action ne 'delete') {
+ &redirect(&nginx_submod_url("edit_server.cgi?id=".
+ &urlize(&server_id($server))));
+ }
+ else {
+ &redirect("");
+ }
}
diff --git a/nginx/save_sgzip.cgi b/nginx/save_sgzip.cgi
index a16ddae06..be7e93b5c 100755
--- a/nginx/save_sgzip.cgi
+++ b/nginx/save_sgzip.cgi
@@ -25,5 +25,4 @@ $server || &error($text{'server_egone'});
&unlock_all_config_files();
my $name = &find_value("server_name", $server);
&webmin_log("gzip", "server", $name);
-&redirect("edit_server.cgi?id=".&urlize($in{'id'}));
-
+&redirect(&nginx_submod_url("edit_server.cgi?id=".&urlize($in{'id'})));
diff --git a/nginx/save_slogs.cgi b/nginx/save_slogs.cgi
index 908f6ca47..7802234d1 100755
--- a/nginx/save_slogs.cgi
+++ b/nginx/save_slogs.cgi
@@ -23,5 +23,4 @@ $access{'logs'} || &error($text{'logs_ecannot'});
&unlock_all_config_files();
my $name = &find_value("server_name", $server);
&webmin_log("slogs", "server", $name);
-&redirect("edit_server.cgi?id=".&urlize($in{'id'}));
-
+&redirect(&nginx_submod_url("edit_server.cgi?id=".&urlize($in{'id'})));
diff --git a/nginx/save_sproxy.cgi b/nginx/save_sproxy.cgi
index 9ef725458..4e371deba 100755
--- a/nginx/save_sproxy.cgi
+++ b/nginx/save_sproxy.cgi
@@ -31,5 +31,4 @@ $server || &error($text{'server_egone'});
&unlock_all_config_files();
my $name = &find_value("server_name", $server);
&webmin_log("proxy", "server", $name);
-&redirect("edit_server.cgi?id=".&urlize($in{'id'}));
-
+&redirect(&nginx_submod_url("edit_server.cgi?id=".&urlize($in{'id'})));
diff --git a/nginx/save_srewrite.cgi b/nginx/save_srewrite.cgi
index 389ba0913..f7ecb3e7f 100755
--- a/nginx/save_srewrite.cgi
+++ b/nginx/save_srewrite.cgi
@@ -20,5 +20,4 @@ $server || &error($text{'server_egone'});
&unlock_all_config_files();
my $name = &find_value("server_name", $server);
&webmin_log("rewrite", "server", $name);
-&redirect("edit_server.cgi?id=".&urlize($in{'id'}));
-
+&redirect(&nginx_submod_url("edit_server.cgi?id=".&urlize($in{'id'})));
diff --git a/nginx/save_ssl.cgi b/nginx/save_ssl.cgi
index 49370b3fe..d2f624948 100755
--- a/nginx/save_ssl.cgi
+++ b/nginx/save_ssl.cgi
@@ -31,5 +31,4 @@ if ($in{'ssl'} && $in{"ssl_certificate_key_def"}) {
&unlock_all_config_files();
my $name = &find_value("server_name", $server);
&webmin_log("ssl", "server", $name);
-&redirect("edit_server.cgi?id=".&urlize($in{'id'}));
-
+&redirect(&nginx_submod_url("edit_server.cgi?id=".&urlize($in{'id'})));
diff --git a/nginx/save_sssi.cgi b/nginx/save_sssi.cgi
index ca21390ee..c12ce6f05 100755
--- a/nginx/save_sssi.cgi
+++ b/nginx/save_sssi.cgi
@@ -25,5 +25,4 @@ $server || &error($text{'server_egone'});
&unlock_all_config_files();
my $name = &find_value("server_name", $server);
&webmin_log("ssi", "server", $name);
-&redirect("edit_server.cgi?id=".&urlize($in{'id'}));
-
+&redirect(&nginx_submod_url("edit_server.cgi?id=".&urlize($in{'id'})));
diff --git a/nginx/save_user.cgi b/nginx/save_user.cgi
index b3a423fb8..d38c2bb6c 100755
--- a/nginx/save_user.cgi
+++ b/nginx/save_user.cgi
@@ -53,6 +53,5 @@ else {
&unlock_file($in{'file'});
&webmin_log($in{'new'} ? "create" : $in{'delete'} ? "delete" : "modify",
"user", $user->{'user'}, { 'file' => $in{'file'} });
-&redirect("list_users.cgi?file=".&urlize($in{'file'}).
- "&id=".&urlize($in{'id'})."&path=".&urlize($in{'path'}));
-
+&redirect(&nginx_submod_url("list_users.cgi?file=".&urlize($in{'file'}).
+ "&id=".&urlize($in{'id'})."&path=".&urlize($in{'path'})));