
#########
LastViews
#########


****
NAME
****


Kernel::System::LastViews - LastViews lib


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


new()
=====



.. code-block:: perl

     Don't use the constructor directly, use the ObjectManager instead:
 
     my $LastViewsObject = $Kernel::OM->Get('Kernel::System::LastViews');



Get()
=====


Returns data of LastView (Request).


.. code-block:: perl

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


Returns:


.. code-block:: perl

     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.


.. code-block:: perl

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


Returns:


.. code-block:: perl

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



GetList()
=========


Returns a list of all last views from session


.. code-block:: perl

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


Returns:


.. code-block:: perl

     my @LastViews = 1;



GetActionMapping()
==================


returns action mappings.


.. code-block:: perl

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


Returns:


.. code-block:: perl

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



GetPopUpActions()
=================


returns all popup actions.


.. code-block:: perl

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


Returns:


.. code-block:: perl

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



GetActionIgnore()
=================


returns all actions to skip.


.. code-block:: perl

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


Returns:


.. code-block:: perl

     my @ActionIgnore = (
         'AgentTicketArticleContent'
     );



GetSubactionIgnore()
====================


returns all sub-actions to skip.


.. code-block:: perl

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


Returns:


.. code-block:: perl

     my @SubactionIgnore = (
         'AgentTicketArticleContent'
     );



Update()
========


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


.. code-block:: perl

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


Returns:


.. code-block:: perl

     my $Success = 1;



Delete()
========


Deletes the last view list.


.. code-block:: perl

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


Returns:


.. code-block:: perl

     my $Success = 1;



IsValidRequest()
================


Checks if request is valid.
Request is valid if


.. code-block:: perl

  - 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:


.. code-block:: perl

     my $IsValidRequest = 1;




