Alex, thanks again. I promise to write up what I’ve learned in the last
week (wiki).
I’ve hit another wall. While I can prove that the callback I am using is
in the right spot and is called…
The following Limit() IS working for Modify.html hits
(EditCustomFields). That is, hide certain fields for editing when a
control flag (CF) is set a certain way.
The following Limit() is NOT working for Display.html
(ShowCustomFields) hits. That is, hide certain fields from display when
a control flag (CF) is set a certain way. The problem is, they are still
showing when the control flag is set to not show them.
The code in both callback files is the same.
How might I exclude fields X, Y, Z from $CustomFields in my callback?
Repeat for each name to exclude:
$CustomFields->Limit(
FIELD => ‘Name’,
OPERATOR => ‘!=’,
VALUE => ‘SomeNameToExclude’,
ENTRYAGGREGATOR => ‘AND’,
);
Here is local/html/Elements/ShowCustomFields/MassageCustomFields (right
spot?) with comments relevant here:
<%args>
$CustomFields => undef
$ARGS => undef
$Object => undef
</%args>
<%init>
NOTE: If I enable these 4 short-circuit lines, Display.html does
in fact only show the ‘Scope’ custom field as a control/test.
So a) the callback location seems correct and b) it proves we can
at least control the contents of $CustomFields.
$CustomFields->Limit(FIELD => ‘Name’, OPERATOR => ‘=’,
VALUE => ‘Scope’, ENTRYAGGREGATOR => ‘AND’,
CASESENSITIVE => 0);
return;
my $ticket = $ARGS{‘Object’};
The fields to hide unless ‘Noteworthy = Yes’
my @childfields = (“Details”, “Response”, “Total emails”);
Default to showing all fields in @childfields
my $showchildren = 1;
Determine whether to show child fields or not
while (my $cf = $CustomFields->Next) {
my $nam = $cf->Name;
my $val = $ticket->FirstCustomFieldValue($nam);
if ($nam =~ /^noteworthy$/i and $val !~ /^yes$/i) {
$showchildren = 0;
last;
}
}
if (! $showchildren) {
# In theory, this should exclude all fields in @childfields
$CustomFields->Limit(FIELD => ‘Name’, OPERATOR => ‘!=’, VALUE =>
‘$_’, ENTRYAGGREGATOR => ‘AND’, CASESENSITIVE => 0) for (@childfields);
}
</%init>
%# EOF