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'})));