<& /Admin/Elements/Header, Title => $title &> <& /Admin/Elements/CustomFieldTabs, id => $CustomFieldObj->Id , current_subtab => $current_subtab, Title => $title &> <& /Elements/ListActions, actions => \@results &>
<&|/l&>Name
<&|/l&>Description
<&|/l&>Type <& /Admin/Elements/SelectCustomFieldType, Name => "TypeComposite", Default => $CustomFieldObj->TypeComposite, &>
<&|/l&>Applies to <& /Admin/Elements/SelectCustomFieldLookupType, Name => "LookupType", Default => $CustomFieldObj->LookupType, &>
  > <&|/l&>Enabled (Unchecking this box disables this custom field)

% if ($CustomFieldObj->Id && $CustomFieldObj->Type =~ /^Select/i) {

<&|/l&>Values

<& /Admin/Elements/EditCustomFieldValues, CustomField => $CustomFieldObj &> <& /Admin/Elements/AddCustomFieldValue, CustomField => $CustomFieldObj &>
% } <&/Elements/Submit&>
<%INIT> my $CustomFieldObj = RT::CustomField->new( $session{'CurrentUser'} ); my ( $title, @results, $EnabledChecked, $Disabled); $EnabledChecked = "CHECKED"; if ( !$id ) { $title = loc("Create a CustomField"); $id = 'new'; } else { if ( $id eq 'new' ) { my ( $val, $msg ) = $CustomFieldObj->Create(Name => $Name, TypeComposite => $TypeComposite, LookupType => $LookupType, Description => $Description,); $m->comp("/Elements/Error", Why => loc( "Could not create CustomField", $msg ) ) unless ($val); push @results, $msg; $title = loc( 'Created CustomField [_1]', $CustomFieldObj->Name() ); } else { $CustomFieldObj->Load($id) || $m->comp("/Elements/Error", Why => loc('No CustomField') ); $title = loc( 'Editing CustomField [_1]', $CustomFieldObj->Name() ); my @attribs = qw( Name TypeComposite LookupType Description); my @aresults = UpdateRecordObject( AttributesRef => \@attribs, Object => $CustomFieldObj, ARGSRef => \%ARGS ); push @results, @aresults; #we're asking about enabled on the web page but really care about disabled. if ($Enabled == 1) { $Disabled = 0; } else { $Disabled = 1; } if ( ($SetEnabled) and ( $Disabled != $CustomFieldObj->Disabled) ) { my ($code, $msg) = $CustomFieldObj->SetDisabled($Disabled); push @results, loc('Enabled status: [_1]', loc_fuzzy($msg)); } if ($CustomFieldObj->Disabled()) { $EnabledChecked =""; } } $id = $CustomFieldObj->id; } my $paramtag = "CustomField-".$CustomFieldObj->Id."-Value-"; # Delete any fields that want to be deleted foreach my $key (keys %ARGS) { next unless ($key =~ /^Delete-$paramtag(\d+)$/); my ($val, $msg) = $CustomFieldObj->DeleteValue($1); push (@results, $msg); } # Update any existing values my $values = $CustomFieldObj->ValuesObj; while (my $value = $values->Next) { foreach my $attr qw(Name Description SortOrder) { my $param = $paramtag.$value->Id."-".$attr; if ( $ARGS{$param} && ($value->$attr() ne $ARGS{$param})) { my $mutator = "Set$attr"; my ($id, $msg) = $value->$mutator($ARGS{$param}); push (@results, $msg); } } } # Add any new values if ($ARGS{$paramtag."new-Name"}) { my ($id, $msg) = $CustomFieldObj->AddValue ( Name => $ARGS{$paramtag."new-Name"}, Description => $ARGS{$paramtag."new-Description"}, SortOrder => $ARGS{$paramtag."new-SortOrder"}); push (@results, $msg); } my $current_subtab; if ($ARGS{'Create'}){ $current_subtab = "Admin/CustomFields/Modify.html?Create=1"; } else { $current_subtab = "Admin/CustomFields/Modify.html?id=".$id; } <%ARGS> $id => undef $TypeComposite => undef $LookupType => undef $MaxValues => undef $SortOrder => undef $Description => undef $Name => undef $SetEnabled => undef $Enabled => undef