[solved] How to build dashlet based on "owner" Agent>Group

Moderator: crythias

Post Reply
rodolfor
Znuny newbie
Posts: 89
Joined: 11 Jun 2020, 14:56
Znuny Version: 6.0.27
Real Name: Rodolfo Rughi
Company: none

[solved] How to build dashlet based on "owner" Agent>Group

Post by rodolfor »

Suppose I have queues Q1, Q2, Q3, Q4, Q5 and an user U1 that is the owner of Q1 and Q2, has rw on Q3 and Q4 and has no permissions on Q5.
I should make two new dashlets:
- the first one listing the tickets with open statustype, of the queues of which U1 is owner (Q1 and Q2)
- the second that lists the tickets with open statustype, of the queues of which U1 has rw but is not owner (Q3 and Q4)

What is the correct way to accomplish this?
Thanks!
Last edited by rodolfor on 21 Oct 2022, 09:34, edited 1 time in total.
shawnbeasley
Znuny Employee
Posts: 132
Joined: 13 Sep 2021, 09:38
Znuny Version: Znuny 6.3.x
Real Name: Shawn Beasley
Company: Znuny

Re: How to build dashlet based on "owner" Agent>Group

Post by shawnbeasley »

Hi,

You can reuse the xml from the Ticket.xml to create your own XML configurations under Kernel/Config/Files/XML/ then rebuild this using the console command bin/otrs.Console.pl Maint::Config::Rebuild --cleanup to launch the configuration.

NOTE: Make sure to change the number in the setting name DashboardBackend###0330 to something original. Change the item key Title and Description

The question is twofold:

Filter just in certain queues.

By building a dashboard as a copy, you can limit the queues in the Attributes section.

Limit to certain users:

Add a user group which should have access to the dashboard.

Code: Select all

    
   <?xml version="1.0" encoding="utf-8"?>
<otrs_config version="2.0" init="Application">
    <Setting Name="DashboardBackend###0330-TicketOpen" Required="0" Valid="1">
        <Description Translatable="1">Parameters for the dashboard backend of the open tickets overview of the agent interface. "Limit" is the number of entries shown by default. "Group" is used to restrict the access to the plugin (e. g. Group: admin;group1;group2;). "Default" determines if the plugin is enabled by default or if the user needs to enable it manually. "CacheTTLLocal" is the cache time in minutes for the plugin. "Mandatory" determines if the plugin is always shown and can not be removed by agents. Note: Only Ticket attributes and Dynamic Fields (DynamicField_NameX) are allowed for DefaultColumns.</Description>
        <Navigation>Frontend::Agent::View::Dashboard</Navigation>
        <Value>
            <Hash>
                <Item Key="Module">Kernel::Output::HTML::Dashboard::TicketGeneric</Item>
                <Item Key="Title" Translatable="1">Open Tickets (Postmaster and Raw)</Item>
                <Item Key="Description" Translatable="1">All open tickets, these tickets have already been worked on.</Item>
                <Item Key="Attributes">StateType=open;Queues=Postmaster;Queues=Raw</Item>
                <Item Key="Filter" Translatable="1">All</Item>
                <Item Key="Time">Age</Item>
                <Item Key="Limit">10</Item>
                <Item Key="Permission">rw</Item>
                <Item Key="Block">ContentLarge</Item>
                <Item Key="Group">restricted</Item>
                <Item Key="Default">1</Item>
                <Item Key="CacheTTLLocal">0.5</Item>
                <Item Key="DefaultColumns">
                    <Hash>
                        <DefaultItem ValueType="Select">
                            <Item ValueType="Option" Value="0" Translatable="1">0 - Disabled</Item>
                            <Item ValueType="Option" Value="1" Translatable="1">1 - Available</Item>
                            <Item ValueType="Option" Value="2" Translatable="1">2 - Enabled by default</Item>
                        </DefaultItem>
                        <Item Key="Age" SelectedID="2"></Item>
                        <Item Key="Changed" SelectedID="1"></Item>
                        <Item Key="Created" SelectedID="1"></Item>
                        <Item Key="CustomerCompanyName" SelectedID="1"></Item>
                        <Item Key="CustomerID" SelectedID="1"></Item>
                        <Item Key="CustomerName" SelectedID="1"></Item>
                        <Item Key="CustomerUserID" SelectedID="1"></Item>
                        <Item Key="EscalationResponseTime" SelectedID="1"></Item>
                        <Item Key="EscalationSolutionTime" SelectedID="1"></Item>
                        <Item Key="EscalationTime" SelectedID="1"></Item>
                        <Item Key="EscalationUpdateTime" SelectedID="1"></Item>
                        <Item Key="TicketNumber" SelectedID="2"></Item>
                        <Item Key="Lock" SelectedID="1"></Item>
                        <Item Key="Owner" SelectedID="1"></Item>
                        <Item Key="PendingTime" SelectedID="1"></Item>
                        <Item Key="Queue" SelectedID="1"></Item>
                        <Item Key="Responsible" SelectedID="1"></Item>
                        <Item Key="Priority" SelectedID="1"></Item>
                        <Item Key="Service" SelectedID="1"></Item>
                        <Item Key="State" SelectedID="1"></Item>
                        <Item Key="SLA" SelectedID="1"></Item>
                        <Item Key="Title" SelectedID="2"></Item>
                        <Item Key="Type" SelectedID="1"></Item>
                    </Hash>
                </Item>
                <Item Key="Mandatory">0</Item>
            </Hash>
        </Value>
    </Setting>
</otrs_config>
 
All Parameters which can be filtered are listed in TicketSeacrh.pm.
rodolfor
Znuny newbie
Posts: 89
Joined: 11 Jun 2020, 14:56
Znuny Version: 6.0.27
Real Name: Rodolfo Rughi
Company: none

Re: How to build dashlet based on "owner" Agent>Group

Post by rodolfor »

Thanks, it works!
Post Reply