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