%# God did not create the world in seven days; he screwed around for six
%# days and then pulled an all-nighter.

<%PERL>
my $type = $Part->type;

$text = $m->comp('DoChangeUpload', ARGSRef => %ARGS)
    if ($type eq 'img' and defined($upload));

if (defined($text)) {
    if ($type eq 'graph') {
	# pity.
    }
    elsif ($type eq 'table') {
	$Part->first_child('caption')->set_text( $text );
    }
    else {
	$Part->set_text( $text );
    }
}
if (($type eq 'GRAPH' or $type eq 'TABLE') and $Type eq 'FIELD') {
    # XXX - Initialize $table, $field, $old_name
    $table = $_init_table->($Part);
    my $field = $table->get_field($FID);
    my $old_name = $field->name;
    # Set field data from $ARGS{FIELD-*}
    foreach my $key (grep /^FIELD-/, keys %ARGS) {
	next if ($key eq 'FIELD-DESCR');
	$field->{substr($key, 6)} = $ARGS{$key};
    }
    # Apply auto-description
    my $descr = $ARGS{'FIELD-DESCR'}
		|| $Conf->{DB}{$session{db}}{tables}
		    {$field->{TABLE}}{fields}{$field->{FNAME}}{description}
		|| $field->{FNAME};

    if ($type eq 'GRAPH') {
	# graph -- fake descr
	my $type = uc(ref($field));
	$type =~ s/^RG::Field:://i or $type = 'DATA';
	if ($type eq 'DATA' and $field->name) {
	    $Part->attr->{descr}{$field->name} ||= $descr;
	    delete $Part->attr->{descr}{$old_name}
		unless $old_name eq $field->name;
	}
    }
    else {
	$direction = {
	    name	=> $field->name,
	    descr	=> $descr,
	};
    }
}
else {
    # Non-field attribute changes
    foreach my $key ( grep { defined $ARGS{$_} } RTx::Report->Attrs ) {
	my $value = $ARGS{$key};
	# $value = 1 if $value eq 'on';
	# $value = 0 if $value eq 'off';
	$Part->set_att( $key => $value );
    }
}
$modifier = 0;
</%PERL>
<%ARGS>
$Part
$upload => undef
$text   => ''
</%ARGS>
