1#!/usr/local/bin/perl 2# edit_table.cgi 3# Display the structure of some table 4 5require './mysql-lib.pl'; 6&ReadParse(); 7&can_edit_db($in{'db'}) || &error($text{'dbase_ecannot'}); 8if ($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 15print &ui_form_start("delete_fields.cgi", "post"); 16print &ui_hidden("db", $in{'db'}),"\n"; 17print &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") ); 21print &ui_links_row(\@rowlinks); 22print &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; 30foreach $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 } 47print &ui_columns_end(); 48print &ui_links_row(\@rowlinks); 49print &ui_form_end([ [ "delete", $text{'table_delete'} ] ]); 50 51$hiddens = &ui_hidden("db", $in{'db'}).&ui_hidden("table", $in{'table'}); 52print "<table><tr>\n"; 53 54# Add field button 55print "<td nowrap>"; 56print &ui_form_start("edit_field.cgi"); 57print $hiddens; 58print &ui_submit($text{'table_add'}); 59print &ui_select("type", undef, \@type_list); 60print &ui_form_end(); 61print "</td>\n"; 62 63# View and edit data button 64print "<td>"; 65print &ui_form_start("view_table.cgi", "form-data"); 66print $hiddens; 67print &ui_submit($text{'table_data'}); 68print &ui_form_end(); 69print "</td>\n"; 70 71# CSV export button 72print "<td>"; 73print &ui_form_start("csv_form.cgi"); 74print $hiddens; 75print &ui_submit($text{'table_csv'}); 76print &ui_form_end(); 77print "</td>\n"; 78 79if ($access{'indexes'}) { 80 # Create index button 81 print "<td>"; 82 print &ui_form_start("edit_index.cgi"); 83 print $hiddens; 84 print &ui_submit($text{'table_index'}); 85 print &ui_form_end(); 86 print "</td>\n"; 87 } 88 89# Drop table button 90print "<td>"; 91print &ui_form_start("drop_table.cgi"); 92print $hiddens; 93print &ui_submit($text{'table_drop'}); 94print &ui_form_end(); 95print "</td>\n"; 96 97print "</tr></table>\n"; 98 99&ui_print_footer("edit_dbase.cgi?db=$in{'db'}", $text{'dbase_return'}, 100 &get_databases_return_link($in{'db'}), $text{'index_return'}); 101 102