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:

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.

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

Returns:

my $HTML = 'HTML';

Update()#

updated accordingly as needed.

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:

my $Success = 1;

Delete()#

delete all plugin information.

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

Returns:

my $Success = 1;

Get()#

Get all plugin information.

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

Returns:

my $Data = {};

AJAXUpdate()#

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

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

Returns:

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