LastViews#

NAME#

Kernel::System::LastViews - LastViews lib

PUBLIC INTERFACE#

new()#

Don't use the constructor directly, use the ObjectManager instead:

my $LastViewsObject = $Kernel::OM->Get('Kernel::System::LastViews');

Get()#

Returns data of LastView (Request).

my %LastView = $LastViewsObject->Get(
    %{ $Param{Request} },
);

Returns:

my %LastView = (
    Type     => 'TicketOverview',
    Name     => 'Queue',
    Frontend => 'Agent',
    Icon     => 'fa fa-table',
    PopUp    => 0,                  # 0 or 1
    Params   => {
        Title   => 'Raw',
    },
    FrontendIcon => 'fa fa-user',
    URL          => 'Action=AgentTicketQueue;QueueID=2;View=;Filter=Unlocked',
    Action       => 'AgentTicketQueue',
    TimeStamp    => '2020-04-16 23:59:59',
);

_LastViewParameters()#

Returns additional LastView parameters for specific Modules.

my $LastViewParams = $Self->_LastViewParameters(
    Param    => \%Param,
    LastView => \%LastView,
);

Returns:

$LastViewParams = {
    'LastView' => {
        'Name' => 'Znuny says hi!'
    },
    'Params' => {
        'Nummer'   => '2021012710123456',
        'Besitzer' => 'root@localhost'
    }
};

GetList()#

Returns a list of all last views from session

my @LastViews = $LastViewsObject->GetList(
    SessionID => 123,
    Types     => ['Ticket', 'Admin'],   # optional
);

Returns:

my @LastViews = 1;

GetActionMapping()#

returns action mappings.

my %ActionMapping = $LastViewsObject->GetActionMapping();

Returns:

my %ActionMapping = (
    AgentTicketPhone => {
        Type     => 'TicketCreate',
        Frontend => 'Agent',
        Icon     => 'Phone',
        Name     => 'Phone',
    },
);

GetPopUpActions()#

returns all popup actions.

my %PopUpActions = $LastViewsObject->GetPopUpActions();

Returns:

my %PopUpActions = (
    'AgentTicketMerge'    => 'TicketAction',
    'AgentTicketCustomer' => 'TicketAction',
    'AgentTicketPriority' => 'TicketAction',
    'AgentTicketNote'     => 'TicketAction',
    'AgentLinkObject'     => 'TicketAction',
);

GetActionIgnore()#

returns all actions to skip.

my @ActionIgnore = $LastViewsObject->GetActionIgnore();

Returns:

my @ActionIgnore = (
    'AgentTicketArticleContent'
);

GetSubactionIgnore()#

returns all sub-actions to skip.

my @SubactionIgnore = $LastViewsObject->GetSubactionIgnore();

Returns:

my @SubactionIgnore = (
    'AgentTicketArticleContent'
);

Update()#

Updates the last view list - added latest view to list.

my $Success = $LastViewsObject->Update(
    SessionID => $Self->{SessionID},
    Request   => \%Request,
);

Returns:

my $Success = 1;

Delete()#

Deletes the last view list.

my $Success = $LastViewsObject->Delete(
    SessionID => $Param{SessionID},
    Count     => 20,                    # option - deletes all views but the latest n
);

Returns:

my $Success = 1;

IsValidRequest()#

Checks if request is valid. Request is valid if

  • RequestedURL has an Action

  • LastScreenView is not equal to RequestedURL

  • Action is not one of ‘ActionIgnore’

  • Subaction is not one of ‘SubactionIgnore’

my $IsValidRequest = $LastViewsObject->IsValidRequest(
    %Request
);

Returns:

my $IsValidRequest = 1;