Handle hostnames with upper-case letters
[webmin.git] / mysql / edit_table.cgi
1 #!/usr/local/bin/perl
2 # edit_table.cgi
3 # Display the structure of some table
4
5 require './mysql-lib.pl';
6 &ReadParse();
7 &can_edit_db($in{'db'}) || &error($text{'dbase_ecannot'});
8 if ($access{'edonly'}) {
9         &redirect("view_table.cgi?db=$in{'db'}&table=".&urlize($in{'table'}));
10         exit;
11         }
12 $desc = &text('table_header', "<tt>$in{'table'}</tt>", "<tt>$in{'db'}</tt>");
13 &ui_print_header($desc, $text{'table_title'}, "", "edit_table");
14
15 print &ui_form_start("delete_fields.cgi", "post");
16 print &ui_hidden("db", $in{'db'}),"\n";
17 print &ui_hidden("table", $in{'table'}),"\n";
18 @desc = &table_structure($in{'db'}, $in{'table'});
19 @tds = ( "width=5" );
20 @rowlinks = ( &select_all_link("d"), &select_invert_link("d") );
21 print &ui_links_row(\@rowlinks);
22 print &ui_columns_start([ "",
23                           $text{'table_field'},
24                           $text{'table_type'},
25                           $text{'table_null'},
26                           $text{'table_key'},
27                           $text{'table_default'},
28                           $text{'table_extra'} ], 100, 0, \@tds);
29 $i = 0;
30 foreach $r (@desc) {
31         local @cols;
32         push(@cols, "<a href='edit_field.cgi?db=$in{'db'}&table=".
33                     &urlize($in{'table'})."&".
34                     "idx=$i'>".&html_escape($r->{'field'})."</a>");
35         push(@cols, &html_escape($r->{'type'}));
36         push(@cols, $r->{'null'} eq 'YES' ? $text{'yes'} : $text{'no'});
37         push(@cols,
38                 $r->{'key'} eq 'PRI' ? $text{'table_pri'} :
39                 $r->{'key'} eq 'MUL' ? $text{'table_mul'} :
40                                        $text{'table_none'});
41         push(@cols, &html_escape(defined($r->{'default'}) ? $r->{'default'}
42                                                           : 'NULL'));
43         push(@cols, &html_escape($r->{'extra'}));
44         print &ui_checked_columns_row(\@cols, \@tds, "d", $r->{'field'});
45         $i++;
46         }
47 print &ui_columns_end();
48 print &ui_links_row(\@rowlinks);
49 print &ui_form_end([ [ "delete", $text{'table_delete'} ] ]);
50
51 $hiddens = &ui_hidden("db", $in{'db'}).&ui_hidden("table", $in{'table'});
52 print "<table><tr>\n";
53
54 # Add field button
55 print &ui_form_start("edit_field.cgi");
56 print $hiddens;
57 print "<td nowrap>",&ui_submit($text{'table_add'});
58 print &ui_select("type", undef, \@type_list);
59 print "</td>",&ui_form_end();
60
61 # View and edit data button
62 print &ui_form_start("view_table.cgi", "form-data");
63 print $hiddens;
64 print "<td>",&ui_submit($text{'table_data'});
65 print "</td>",&ui_form_end();
66
67 # CSV export button
68 print &ui_form_start("csv_form.cgi");
69 print $hiddens;
70 print "<td>",&ui_submit($text{'table_csv'});
71 print "</td>",&ui_form_end();
72
73 if ($access{'indexes'}) {
74         # Create index button
75         print &ui_form_start("edit_index.cgi");
76         print $hiddens;
77         print "<td>",&ui_submit($text{'table_index'});
78         print "</td>",&ui_form_end();
79         }
80
81 # Drop table button
82 print &ui_form_start("drop_table.cgi");
83 print $hiddens;
84 print "<td>",&ui_submit($text{'table_drop'});
85 print "</td>",&ui_form_end();
86
87 print "</tr></table>\n";
88
89 &ui_print_footer("edit_dbase.cgi?db=$in{'db'}", $text{'dbase_return'},
90         "", $text{'index_return'});
91