Handle hostnames with upper-case letters
[webmin.git] / custom / edit_sql.cgi
1 #!/usr/local/bin/perl
2 # Display an SQL command
3
4 require './custom-lib.pl';
5 &ReadParse();
6
7 # Work out which DBI drivers we have
8 @drivers = &list_dbi_drivers();
9 if (!@drivers) {
10         # None! Offer to install
11         &ui_print_header(undef, $text{'sql_title1'}, "");
12         eval "use DBI";
13         if ($@) {
14                 @need = ( "DBI" );
15                 }
16         $myneed = &urlize(join(" ", @need, "DBD::mysql"));
17         $pgneed = &urlize(join(" ", @need, "DBD::Pg"));
18         print &text('sql_edrivers',
19                 "../cpan/download.cgi?source=3&cpan=$myneed&return=/$module_name/&returndesc=".&urlize($text{'index_return'}),
20                 "../cpan/download.cgi?source=3&cpan=$pgneed&return=/$module_name/&returndesc=".&urlize($text{'index_return'})),"<p>\n";
21         }
22
23 $access{'edit'} || &error($text{'edit_ecannot'});
24 if ($in{'new'}) {
25         &ui_print_header(undef, $text{'sql_title1'}, "");
26         if ($in{'clone'}) {
27                 $cmd = &get_command($in{'id'}, $in{'idx'});
28                 }
29         }
30 else {
31         &ui_print_header(undef, $text{'sql_title2'}, "");
32         $cmd = &get_command($in{'id'}, $in{'idx'});
33         }
34
35 print &ui_form_start("save_sql.cgi", "post");
36 print &ui_hidden("new", $in{'new'}),"\n";
37 print &ui_hidden("id", $cmd->{'id'}),"\n";
38 print &ui_table_start($text{'sql_header'}, "width=100%", 2);
39
40 # Show command info
41 if (!$in{'new'}) {
42         print &ui_table_row($text{'edit_id'}, "<tt>$cmd->{'id'}</tt>");
43         }
44 print &ui_table_row($text{'edit_desc'},
45                     &ui_textbox("desc", $cmd->{'desc'}, 50));
46 print &ui_table_row($text{'edit_desc2'},
47                     &ui_textarea("html", $cmd->{'html'}, 2, 50));
48
49 # Show databse type and name
50 print &ui_table_row($text{'sql_type'},
51                     &ui_select("type", $cmd->{'type'},
52                         [ map { [ $_->{'driver'}, $_->{'name'} ] } @drivers ]));
53 print &ui_table_row($text{'sql_db'},
54                     &ui_textbox("db", $cmd->{'db'}, 20));
55
56 # Show command to run
57 print &ui_table_row($text{'sql_cmd'},
58                     &ui_textarea("sql", $cmd->{'sql'}, 10, 70));
59
60 # Show login and password
61 print &ui_table_row($text{'sql_user'},
62                     &ui_textbox("dbuser", $cmd->{'user'}, 20));
63 print &ui_table_row($text{'sql_pass'},
64                     &ui_password("dbpass", $cmd->{'pass'}, 20));
65
66 # Show host to connect to
67 print &ui_table_row($text{'sql_host'},
68                     &ui_opt_textbox("host", $cmd->{'host'}, 20,
69                                     $text{'sql_local'}));
70
71 # Command ordering on main page
72 print &ui_table_row(&hlink($text{'edit_order'},"order"),
73         &ui_opt_textbox("order", $cmd->{'order'} || "", 6, $text{'default'}));
74
75 print &ui_table_end(),"<p>\n";
76
77 # Show section for parameters
78 &show_params_inputs($cmd);
79
80 # End of form
81 if ($in{'new'}) {
82         print &ui_form_end([ [ "create", $text{'create'} ] ]);
83         }
84 else {
85         print &ui_form_end([ [ "save", $text{'save'} ],
86                              [ 'clone', $text{'edit_clone'} ],
87                              [ "delete", $text{'delete'} ] ]);
88         }
89
90 &ui_print_footer("", $text{'index_return'});
91