
#########
SysConfig
#########


****
NAME
****


Kernel::Output::HTML::SysConfig - Manage HTML representation of SysConfig settings.


****************
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 $SysConfigHTMLObject = $Kernel::OM->Get('Kernel::Output::HTML::SysConfig');



SettingRender()
===============


Returns the specific HTML for the setting.


.. code-block:: perl

     my $HTMLStr = $SysConfigHTMLObject->SettingRender(
         Setting   => {
             Name             => 'Setting Name',
             XMLContentParsed => $XMLParsedToPerl,
             EffectiveValue   => "Product 6",        # or a complex structure
             DefaultValue     => "Product 5",        # or a complex structure
             IsAjax           => 1,                  # (optional) is ajax request. Default 0.
             # ...
         },
         RW     => 1,                                # (optional) Allow editing. Default 0.
         UserID => 1,                                # (required) UserID
     );


Returns:


.. code-block:: perl

     $HTMLStr = '<div class="Setting"><div class "Field"...</div></div>'        # or false in case of an error



SettingAddItem()
================


Returns response that is sent when user adds new array/hash item.


.. code-block:: perl

     my %Result = $SysConfigHTMLObject->SettingAddItem(
         SettingStructure  => [],         # (required) array that contains structure
                                          #  where a new item should be inserted (can be empty)
         Setting           => {           # (required) Setting hash (from SettingGet())
             'DefaultID' => '8905',
             'DefaultValue' => [ 'Item 1', 'Item 2' ],
             'Description' => 'Simple array item(Min 1, Max 3).',
             'Name' => 'TestArray',
             ...
         },
         Key               => 'HashKey',  # (optional) hash key
         IDSuffix          => '_Array3,   # (optional) suffix that will be added to all input/select fields
                                          #    (it is used in the JS on Update, during EffectiveValue calculation)
         Value             => [           # (optional) Perl structure
             {
                 'Array' => [
                     'Item' => [
                         {
                         'Content' => 'Item 1',
                         },
                         ...
                     ],
                 ],
             },
         ],
         AddSettingContent => 0,          # (optional) if enabled, result will be inside of div with class "SettingContent"
         UserID            => 1,          # (required) UserID
     );


Returns:


.. code-block:: perl

     %Result = (
         'Item' => '<div class=\'SettingContent\'>
 <input type=\'text\' id=\'TestArray_Array4\'
         value=\'Default value\' name=\'TestArray\' class=\' Entry\'/></div>',
     );
 
     or
 
     %Result = (
         'Error' => 'Error description',
     );




*****************
PRIVATE INTERFACE
*****************


_SettingRender()
================


Recursive helper for SettingRender().


.. code-block:: perl

     my $HTMLStr = $SysConfigObject->_SettingRender(
         Name             => 'Setting Name',
         Value            => $XMLParsedToPerlValue,  # (required)
         EffectiveValue   => "Product 6",            # (required) or a complex structure
         DefaultValue     => "Product 5",            # (optional) or a complex structure
         ValueType        => "String",               # (optional)
         IsAjax           => 1,                      # (optional) Default 0.
         # ...
         RW => 1,                                    # (optional) Allow editing. Default 0.
         IsArray => 1,                               # (optional) Item is part of the array
         IsHash  => 1,                               # (optional) Item is part of the hash
         Key     => 'Key',                           # (optional) Hash key (if available)
         SkipEffectiveValueCheck => 1,               # (optional) If enabled, system will not perform effective value check.
                                                     #            Default: 1.
         UserID => 1,                                # (required) UserID
     );


Returns:


.. code-block:: perl

     $HTMLStr = '<div class "Field"...</div>'        # or false in case of an error





