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