ScreenConfiguration#
NAME#
Kernel::System::DynamicField::ScreenConfiguration
PUBLIC INTERFACE#
new()#
create an object. Do not use it directly, instead use:
use Kernel::System::ObjectManager;
local $Kernel::OM = Kernel::System::ObjectManager->new();
my $DynamicFieldScreenConfigurationObject = $Kernel::OM->Get('Kernel::System::DynamicField::ScreenConfiguration');
GetDynamicFieldObjectTypes()#
Returns all possible dynamic field object types.
my @DynamicFieldObjectTypes = $DynamicFieldScreenConfigurationObject->GetDynamicFieldObjectTypes(
Screen => 'Ticket::Frontend::AgentTicketMove###DynamicField' # optional, returns object types only for this screen
);
Returns:
my @DynamicFieldObjectTypes = (
'Ticket',
'Article',
);
GetConfigKeysOfScreensByObjectType()#
Returns all possible dynamic field screens of given object type.
my %DynamicFieldScreenConfigKeys = $DynamicFieldScreenConfigurationObject->GetConfigKeysOfScreensByObjectType(
ObjectType => 'Ticket',
Screens => \%Screens # optional - return these screens but only with the correct ObjectType
);
Returns:
my %DynamicFieldScreenConfigKeys = (
'Ticket::Frontend::AgentTicketPrint###DynamicField' => 'AgentTicketPrint',
'Ticket::Frontend::AgentTicketZoom###DynamicField' => 'AgentTicketZoom',
);
GetConfigKeysOfScreensWithoutMandatoryDynamicFieldSupport()#
Returns a list of screen config keys for which dynamic fields cannot be configured as mandatory. Example: ‘Ticket::Frontend::AgentTicketZoom###DynamicField’ has no option ‘2’ (mandatory)
my $ConfigKeysOfScreensWithoutMandatoryDynamicFieldSupport = $DynamicFieldScreenConfigurationObject->GetConfigKeysOfScreensWithoutMandatoryDynamicFieldSupport(
Result => 'ARRAY', # HASH or ARRAY, defaults to ARRAY
);
Result as hash:
my $ConfigKeysOfScreensWithoutMandatoryDynamicFieldSupport = {
'Ticket::Frontend::AgentTicketZoom###DynamicField' => 'AgentTicketZoom',
'Ticket::Frontend::AgentTicketZoom###ProcessWidgetDynamicField' => 'ProcessWidgetDynamicField'
# [...]
};
Result as array:
my $ConfigKeysOfScreensWithoutMandatoryDynamicFieldSupport = [
'Ticket::Frontend::AgentTicketZoom###DynamicField',
'Ticket::Frontend::AgentTicketZoom###ProcessWidgetDynamicField',
# [...]
];
ValidateDynamicFieldActivation()#
Validates the activation (0, 1, 2) for dynamic fields, so that setting 2 (mandatory) will be corrected to 1 for screens which don’t allow dynamic fields to be mandatory.
my %NewConfig = $DynamicFieldScreenConfigurationObject->ValidateDynamicFieldActivation(
Element => $Element,
Config => \%Config,
ObjectType => 'Ticket', # optional; limits to given object types; can be array.
);
my %NewConfig = $DynamicFieldScreenConfigurationObject->ValidateDynamicFieldActivation(
Element => $Element,
Config => {
'Ticket::Frontend::AgentTicketNote###DynamicField' => 2,
'Ticket::Frontend::AgentTicketZoom###DynamicField' => 2,
}
);
Returns:
my %NewConfig = (
'Ticket::Frontend::AgentTicketNote###DynamicField' => 2,
'Ticket::Frontend::AgentTicketZoom###DynamicField' => 1,
);