3 # Display a form for executing SQL in some database
5 require './mysql-lib.pl';
7 &can_edit_db($in{'db'}) || &error($text{'dbase_ecannot'});
8 $access{'edonly'} && &error($text{'dbase_ecannot'});
9 &ui_print_header(undef, $text{'exec_title'}, "", "exec_form");
11 # Generate tabs for sections
12 $prog = "exec_form.cgi?db=".&urlize($in{'db'})."&mode=";
13 @tabs = ( [ "exec", $text{'exec_tabexec'}, $prog."exec" ],
14 [ "file", $text{'exec_tabfile'}, $prog."file" ],
15 [ "import", $text{'exec_tabimport'}, $prog."import" ] );
16 print &ui_tabs_start(\@tabs, "mode", $in{'mode'} || "exec", 1);
18 # Get recently run commands
19 open(OLD, "$commands_file.$in{'db'}");
26 # Form for executing an SQL command
27 print &ui_tabs_start_tab("mode", "exec");
28 print &text('exec_header', "<tt>$in{'db'}</tt>"),"<p>\n";
29 print &ui_form_start("exec.cgi", "form-data");
30 print &ui_hidden("db", $in{'db'});
31 print &ui_textarea("cmd", undef, 10, 70),"<br>\n";
33 print $text{'exec_old'}," ",
34 &ui_select("old", undef,
35 [ map { [ $_, &html_escape(length($_) > 80 ?
36 substr($_, 0, 80).".." : $_) ] } @old ]),"\n",
37 &ui_button($text{'exec_edit'}, "movecmd", undef,
38 "onClick='cmd.value = old.options[old.selectedIndex].value'"),
39 " ",&ui_submit($text{'exec_clear'}, "clear"),"<br>\n";
41 print &ui_form_end([ [ undef, $text{'exec_exec'} ] ]);
42 print &ui_tabs_end_tab();
44 # Form for executing commands from a file
45 print &ui_tabs_start_tab("mode", "file");
46 print &text('exec_header2', "<tt>$in{'db'}</tt>"),"<br>\n";
47 print $text{'exec_header2a'},"<p>\n";
48 print &ui_form_start("exec_file.cgi", "form-data");
49 print &ui_hidden("db", $in{'db'});
50 print &ui_radio_table("mode", 0, [
51 [ 0, $text{'exec_file'}, &ui_textbox("file", undef, 50)." ".
52 &file_chooser_button("file", 0, 1) ],
53 [ 1, $text{'exec_upload'}, &ui_upload("upload", 50) ] ]);
54 print &ui_form_end([ [ undef, $text{'exec_exec'} ] ]);
55 print &ui_tabs_end_tab();
57 # Form for loading a CSV or tab-separated file
58 print &ui_tabs_start_tab("mode", "import");
59 print &text('exec_header3', "<tt>$in{'db'}</tt>"),"<br>",
60 $text{'exec_header4'},"<p>\n";
62 print &ui_form_start("import.cgi", "form-data");
63 print &ui_hidden("db", $in{'db'});
64 print &ui_table_start($text{'exec_iheader'}, undef, 2);
67 print &ui_table_row($text{'exec_isource'},
68 &ui_radio_table("mode", 0, [
69 [ 0, $text{'exec_file'}, &ui_textbox("file", undef, 50)." ".
70 &file_chooser_button("file", 0, 1) ],
71 [ 1, $text{'exec_upload'}, &ui_upload("upload", 50) ] ]));
73 print &ui_table_row($text{'exec_import'},
74 &ui_select("table", undef,
75 [ [ undef, "<$text{'exec_filename'}>" ],
76 &list_tables($in{'db'}) ]));
78 print &ui_table_row($text{'exec_delete'},
79 &ui_yesno_radio("delete", 0));
81 print &ui_table_row($text{'exec_ignore'},
82 &ui_yesno_radio("ignore", 0));
84 print &ui_table_row($text{'exec_format'},
85 &ui_radio("format", 2, [ [ 0, $text{'csv_format0'} ],
86 [ 1, $text{'csv_format1'} ],
87 [ 2, $text{'csv_format2'} ] ]));
89 print &ui_table_end();
90 print &ui_form_end([ [ undef, $text{'exec_exec'} ] ]);
91 print &ui_tabs_end_tab();
93 print &ui_tabs_end(1);
95 &ui_print_footer("edit_dbase.cgi?db=$in{'db'}", $text{'dbase_return'},
96 "", $text{'index_return'});