
###################
ScreenConfiguration
###################


****
NAME
****


Kernel::System::DynamicField::ScreenConfiguration


****************
PUBLIC INTERFACE
****************


new()
=====


create an object. Do not use it directly, instead use:


.. code-block:: perl

     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.


.. code-block:: perl

     my @DynamicFieldObjectTypes = $DynamicFieldScreenConfigurationObject->GetDynamicFieldObjectTypes(
         Screen => 'Ticket::Frontend::AgentTicketMove###DynamicField'        # optional, returns object types only for this screen
     );


Returns:


.. code-block:: perl

     my @DynamicFieldObjectTypes = (
         'Ticket',
         'Article',
     );



GetConfigKeysOfScreensByObjectType()
====================================


Returns all possible dynamic field screens of given object type.


.. code-block:: perl

     my %DynamicFieldScreenConfigKeys = $DynamicFieldScreenConfigurationObject->GetConfigKeysOfScreensByObjectType(
         ObjectType => 'Ticket',
         Screens    => \%Screens        # optional -  return these screens but only with the correct ObjectType
     );


Returns:


.. code-block:: perl

     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)


.. code-block:: perl

     my $ConfigKeysOfScreensWithoutMandatoryDynamicFieldSupport = $DynamicFieldScreenConfigurationObject->GetConfigKeysOfScreensWithoutMandatoryDynamicFieldSupport(
         Result => 'ARRAY',              # HASH or ARRAY, defaults to ARRAY
     );


Result as hash:


.. code-block:: perl

     my $ConfigKeysOfScreensWithoutMandatoryDynamicFieldSupport = {
        'Ticket::Frontend::AgentTicketZoom###DynamicField'              => 'AgentTicketZoom',
        'Ticket::Frontend::AgentTicketZoom###ProcessWidgetDynamicField' => 'ProcessWidgetDynamicField'
        # [...]
     };


Result as array:


.. code-block:: perl

     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.


.. code-block:: perl

     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:


.. code-block:: perl

     my %NewConfig = (
         'Ticket::Frontend::AgentTicketNote###DynamicField' => 2,
         'Ticket::Frontend::AgentTicketZoom###DynamicField' => 1,
     );




