
####
Base
####


****
NAME
****


Kernel::System::Calendar::Plugin::Base - Base plugin


***********
DESCRIPTION
***********


Ticket appointment plugin.


****************
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 $BasePluginObject = $Kernel::OM->Get('Kernel::System::Calendar::Plugin::Base');



RenderOutput()
==============


renders the output as html.


.. code-block:: perl

     my $HTML = $BasePluginObject->RenderOutput(
         Param           => \%Param,
         GetParam        => \%GetParam,
         Appointment     => \%Appointment,
         Plugin          => \%Plugin,
         PermissionLevel => $PermissionLevel{$Permissions},
         UserID          => $Self->{UserID},
     );


Returns:


.. code-block:: perl

     my $HTML = 'HTML';



Update()
========


updated accordingly as needed.


.. code-block:: perl

     variant 1: parent appointment with children (parent)
 
         param:
             Recurring = 1
             ParentID  = undef
 
         tasks:
             - update current appointment (parent)
             - delete children (should have happened before)
             - add new children
 
     variant 2: single appointment (single)
 
         param:
             Recurring = 0
             ParentID  = undef
 
         tasks:
             - update current appointment (single)
 
     variant 3: single child appointment is a child of a parent (single child)
 
         param:
             Recurring = 0
             ParentID  = 123
 
         tasks:
             - update current appointment (single child)
 
 
     my $Success = $BasePluginObject->Update(
         GetParam    => \%GetParam,
         Appointment => \%Appointment,
         Plugin      => \%Plugin,
         UserID      => $Self->{UserID},
     );


Returns:


.. code-block:: perl

     my $Success = 1;



Delete()
========


delete all plugin information.


.. code-block:: perl

     my $Success = $BasePluginObject->Delete(
         GetParam    => \%GetParam,
         Appointment => \%Appointment,
         Plugin      => \%Plugin,
         UserID      => $Self->{UserID},
     );


Returns:


.. code-block:: perl

     my $Success = 1;



Get()
=====


Get all plugin information.


.. code-block:: perl

     my $Data = $BasePluginObject->Get(
         GetParam    => \%GetParam,
         Appointment => \%Appointment,
         Plugin      => \%Plugin,
         UserID      => $Self->{UserID},
     );


Returns:


.. code-block:: perl

     my $Data = {};



AJAXUpdate()
============


Return an array with all plugin ajax update informations to build the layoutobject selection JSON.


.. code-block:: perl

     my @PluginAJAX = $BasePluginObject->AJAXUpdate(
         GetParam    => \%GetParam,
         Appointment => \%Appointment,
         Plugin      => \%Plugin,
         UserID      => $Self->{UserID},
     );


Returns:


.. code-block:: perl

     my @PluginAJAX = (
         {
             Data         => \%Data,
             Name         => 'Plugin_HTML_Field',
             ID           => 'Plugin_HTML_Field',
             SelectedID   => 1,
             PossibleNone => 1,
             Translation  => 1,
             Class        => 'Modernize',
         },
     );




