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,
);