webmin/postgresql/edit_field.cgi

93 lines
2.4 KiB
Plaintext
Raw Permalink Normal View History

2007-04-12 20:24:50 +00:00
#!/usr/local/bin/perl
# edit_field.cgi
# Display a form for editing an existing field or creating a new one
require './postgresql-lib.pl';
&ReadParse();
&can_edit_db($in{'db'}) || &error($text{'dbase_ecannot'});
$desc = &text('field_in', "<tt>$in{'table'}</tt>", "<tt>$in{'db'}</tt>");
if ($in{'type'}) {
# Creating a new field
&ui_print_header($desc, $text{'field_title1'}, "", "create_field");
$type = $in{'type'};
}
else {
# Editing an existing field
&ui_print_header($desc, $text{'field_title2'}, "", "edit_field");
@desc = &table_structure($in{'db'}, $in{'table'});
$f = $desc[$in{'idx'}];
$type = $f->{'type'};
}
2009-01-09 00:07:43 +00:00
# Start of form block
print &ui_form_start("save_field.cgi", "post");
print &ui_hidden("db", $in{'db'});
print &ui_hidden("table", $in{'table'});
print &ui_hidden("new", $in{'type'});
print &ui_table_start($text{'field_header'}, undef, 2);
2007-04-12 20:24:50 +00:00
2009-01-09 00:07:43 +00:00
# Field name
print &ui_table_row($text{'field_name'},
&ui_textbox("field", $f->{'field'}, 40));
print &ui_hidden("old", $f->{'field'}) if (!$in{'type'});
2007-04-12 20:24:50 +00:00
2009-01-09 00:07:43 +00:00
# Field type
2007-04-12 20:24:50 +00:00
if ($type =~ /^(\S+)\((.*)\)/) {
$type = $1;
$size = $2;
}
2009-01-09 00:07:43 +00:00
print &ui_table_row($text{'field_type'}, $type);
print &ui_hidden("type", $type);
2007-04-12 20:24:50 +00:00
if ($type eq 'char' || $type eq 'varchar' || $type eq 'numeric' ||
$type eq 'bit') {
if ($in{'type'}) {
# Type has a size
2009-01-09 00:07:43 +00:00
print &ui_table_row($text{'field_size'},
&ui_textbox("size", $size, 15));
2007-04-12 20:24:50 +00:00
}
else {
# Type cannot be edited
2009-01-09 00:07:43 +00:00
print &ui_table_row($text{'field_size'}, $size);
2007-04-12 20:24:50 +00:00
}
}
2022-10-21 19:31:14 -07:00
if (!$in{'type'}) {
# Display if primary key
print &ui_table_row($text{'field_key'},
$f->{'key'} eq 'PRI' ? $text{'yes'} : $text{'no'});
}
2007-04-12 20:24:50 +00:00
if ($in{'type'}) {
# Ask if this is an array
2009-01-09 00:07:43 +00:00
print &ui_table_row($text{'field_arr'},
&ui_yesno_radio("arr", 0));
2007-04-12 20:24:50 +00:00
}
else {
# Display if array or not
2009-01-09 00:07:43 +00:00
print &ui_table_row($text{'field_arr'},
$f->{'arr'} eq 'YES' ? $text{'yes'} : $text{'no'});
2007-04-12 20:24:50 +00:00
}
if (!$in{'type'}) {
# Display nulls
2009-01-09 00:07:43 +00:00
print &ui_table_row($text{'field_null'},
$f->{'null'} eq 'YES' ? $text{'yes'} : $text{'no'});
2007-04-12 20:24:50 +00:00
}
2009-01-09 00:07:43 +00:00
print &ui_table_end();
2007-04-12 20:24:50 +00:00
if ($in{'type'}) {
2009-01-09 00:07:43 +00:00
print &ui_form_end([ [ undef, $text{'create'} ] ]);
2007-04-12 20:24:50 +00:00
}
else {
2009-01-09 00:07:43 +00:00
print &ui_form_end([ [ undef, $text{'save'} ],
&can_drop_fields() && @desc > 1 ?
( [ 'delete', $text{'delete'} ] ) : ( ) ]);
2007-04-12 20:24:50 +00:00
}
2009-01-09 00:07:43 +00:00
&ui_print_footer("edit_table.cgi?db=$in{'db'}&table=$in{'table'}",
$text{'table_return'},
"edit_dbase.cgi?db=$in{'db'}", $text{'dbase_return'},
&get_databases_return_link($in{'db'}), $text{'index_return'});
2007-04-12 20:24:50 +00:00