#!/usr/local/bin/perl # edit_title.cgi # Display menu option details require './grub-lib.pl'; &foreign_require("fdisk", "fdisk-lib.pl"); &ReadParse(); $conf = &get_menu_config(); if ($in{'new'}) { &ui_print_header(undef, $text{'title_add'}, ""); } else { &ui_print_header(undef, $text{'title_edit'}, ""); $title = $conf->[$in{'idx'}]; } # Form header print &ui_form_start("save_title.cgi"); print &ui_hidden("new", $in{'new'}); print &ui_hidden("idx", $in{'idx'}); print &ui_table_start($text{'title_header'}, "width=100%", 4); # Kernel title print &ui_table_row($text{'title_title'}, &ui_textbox("title", $title->{'value'}, 50)); $r = $title->{'root'} || $title->{'rootnoverify'}; if (!$r) { $mode = 0; } elsif ($dev = &bios_to_linux($r)) { $mode = 2; } else { $mode = 1; } $sel = &foreign_call("fdisk", "partition_select", "root", $dev, 2, \$found); if (!$found && $mode == 2) { $mode = 1; } # Root partition print &ui_table_row($text{'title_root'}, &ui_radio("root_mode", $mode, [ [ 0, $text{'default'}."
" ], [ 2, $text{'title_sel'}." ".$sel."
" ], [ 1, $text{'title_other'}." ". &ui_textbox("other", $mode == 1 ? $title->{'root'} : '', 50) ] ]). "
\n". &ui_checkbox("noverify", 1, $text{'title_noverify'}, $title->{'rootnoverify'}), 3); # Boot mode $boot = $title->{'chainloader'} ? 1 : $title->{'kernel'} ? 2 : 0; if ($boot == 2) { $title->{'kernel'} =~ /^(\S+)\s*(.*)$/; $kernel = $1; $args = $2; } # Booting a kernel @opts = ( ); push(@opts, [ 2, $text{'title_kernel'}, &ui_table_start(undef, undef, 2, [ undef, "nowrap" ]). &ui_table_row($text{'title_kfile'}, &ui_textbox("kernel", $kernel, 50)." ". &file_chooser_button("kernel", 0)). &ui_table_row($text{'title_args'}, &ui_textbox("args", $args, 50)). &ui_table_row($text{'title_initrd'}, &ui_opt_textbox("initrd", $title->{'initrd'}, 40, $text{'global_none'})). &ui_table_row($text{'title_modules'}, &ui_textarea("module", join("\n", split(/\0/, $title->{'module'})), 3, 50, "off")). &ui_table_end() ]); # Chain loader $chain = $title->{'chainloader'}; push(@opts, [ 1, $text{'title_chain'}, &ui_opt_textbox("chain", $chain eq '+1' || !$chain ? '' : $chain, 50, $text{'title_chain_def'}."
", $text{'title_chain_file'})."
". &ui_checkbox("makeactive", 1, $text{'title_makeactive'}, defined($title->{'makeactive'})) ]); # None (menu entry only) push(@opts, [ 0, $text{'title_none1'}, $text{'title_none2'} ]); print &ui_table_row($text{'title_boot'}, &ui_radio_table("boot_mode", $boot, \@opts), 3); # Lock options print &ui_table_row($text{'title_lock'}, &ui_yesno_radio("lock", defined($title->{'lock'}))); print &ui_table_end(); if ($in{'new'}) { print &ui_form_end([ [ undef, $text{'create'} ] ]); } else { print &ui_form_end([ [ undef, $text{'save'} ], [ 'delete', $text{'delete'} ] ]); } &ui_print_footer("", $text{'index_return'});