#!/usr/bin/perl require './geohelm-lib.pl'; require './pg-lib.pl'; foreign_require('postgresql', 'postgresql-lib.pl'); &ReadParse(); &ui_print_header(undef, $text{'snapshots_title'}, ""); # Show tabs @tabs = ( [ "create", $text{'snapshots_tab_create'}, "edit_snapshots.cgi?mode=create" ], [ "restore", $text{'snapshots_tab_restore'}, "edit_snapshots.cgi?mode=restore" ], [ "clone", $text{'snapshots_tab_clone'}, "edit_snapshots.cgi?mode=clone" ] ); print &ui_tabs_start(\@tabs, "mode", $in{'mode'} || "create", 1); # Display create form print &ui_tabs_start_tab("mode", "create"); print "$text{'snapshots_desc1'}

\n"; print &ui_form_start("create_snapshot.cgi", "post"); print &ui_table_start($text{'snapshot_options'}, undef, 2); my @pg_dbs = pg_list_databases(); my @opt_dbs = (); foreach my $db_name (@pg_dbs) { push(@opt_dbs, [ $db_name, $db_name]); } print &ui_table_row($text{'snapshot_db'}, &ui_select("db_name", undef, \@opt_dbs, 1, 0)); print &ui_table_row($text{'snapshot_format'}, &ui_checkbox("dump_sql", 1,$text{'snapshot_dump_sql'}, 1). &ui_checkbox("dump_custom", 1,$text{'snapshot_dump_custom'}, 1) ); print &ui_table_row($text{'snapshot_compress'}, &ui_checkbox("dump_compress",1,$text{'snapshot_compress_gz'}, 1)); print &ui_table_end(); print &ui_form_end([ [ "", $text{'snapshots_createok'} ] ]); print &ui_tabs_end_tab(); # Display restore form print &ui_tabs_start_tab("mode", "restore"); print "$text{'snapshots_desc2'}

\n"; print &ui_form_start("restore_snapshot.cgi", "post"); print &ui_table_start($text{'snapshot_restore'}, undef, 2); my $sel_db = $in{'ext_db'} || 'postgres'; print < function update_select(){ var extSel = document.getElementById('ext_db'); var db_name = extSel.options[extSel.selectedIndex].value; get_pjax_content('/postgis/edit_snapshots.cgi?ext_db='+db_name+'&mode=restore'); } EOF my @opt_dbs = (); foreach my $db_name (@pg_dbs) { push(@opt_dbs, [ $db_name, $db_name]); } print &ui_table_row($text{'snapshot_db'}, &ui_select("ext_db", $sel_db, \@opt_dbs, 1, 0, undef, undef, 'id="ext_db" onchange="update_select()"'), 2); #make a list of snapshots for the selected db my @db_snapshots = get_db_snapshots($sel_db); my @opt_db_snapshots = (); foreach my $name (@db_snapshots) { push(@opt_db_snapshots, [ $name, $name]); } print &ui_table_row($text{'snapshot_available'}, &ui_select("db_snapshot", undef, \@opt_db_snapshots, 1, 0), 2); print &ui_table_end(); print &ui_form_end([ [ "", $text{'snapshots_restoreok'} ] ]); print &ui_tabs_end_tab(); # Display clone form print &ui_tabs_start_tab("mode", "clone"); print "$text{'snapshots_desc3'}

\n"; print &ui_form_start("clone_db.cgi", "post"); print &ui_table_start($text{'snapshot_clone'}, undef, 2); print &ui_table_row($text{'snapshot_source'}, &ui_select("db_source", $sel_db, \@opt_dbs, 1, 0), 2); print &ui_table_row($text{'snapshot_target'}, &ui_textbox("db_target", '', 10), 2); print &ui_table_end(); print &ui_form_end([ [ "", $text{'snapshots_cloneok'} ] ]); print &ui_tabs_end_tab(); print &ui_tabs_end(1); &ui_print_footer("", $text{'index_return'});