Hi Renee,

here are the *.xml files.

The 
File: AgentMessageAdd.pm 
Directory: /Custom/Kernel/Modules
is a copy of the file "AgentTicketPhone". The only changes are:
package Kernel::Modules::AgentMessageAdd;
...
# get output back
return $LayoutObject->Output(
  TemplateFile => 'AgentMessageAdd',
  Data         => \%Param,
);

And the 
file: AgentMessageAdd.tt
Directory: /Custom/Kernel/Output/HTML/Templates/Standard
is a none modified copy of AgentTicketPhone.tt

File: Messages.xml
Directory: /Kernel/Config/Files
Registration of the module:
<?xml version="1.0" encoding="utf-8"?>
<otrs_config version="1.0" init="Application">

<ConfigItem Name="Frontend::Module###AgentMessageAdd" Required="0" Valid="1">
<Description Translatable="1">Frontend module registration for the agent 
interface.</Description>
<Group>Ticket</Group>
<SubGroup>Frontend::Agent::ModuleRegistration</SubGroup>
<Setting>
  <FrontendModuleReg>
   <Description Translatable="1">Create new messages.</Description>
  <Title Translatable="1">NewMessage</Title>
  <NavBarName>Messages</NavBarName>
  <NavBar>
    <Description Translatable="1">Create a new message.</Description>
   <Name Translatable="1">NewMessage</Name>
   <Link>Action=AgentMessageAdd</Link>
   <LinkOption></LinkOption>
   <NavBar>Messages</NavBar>
   <Type></Type>
   <Block></Block>
   <AccessKey></AccessKey>
   <Prio>100</Prio>
  </NavBar>
  <NavBar>
    <Description Translatable="1"></Description>
   <Type>Menu</Type>
   <Block>ItemArea</Block>
   <Name Translatable="1">Messages</Name>
   <Link>Action=AgentMessageAdd</Link>
   <LinkOption></LinkOption>
    <NavBar>Messages</NavBar>
    <AccessKey></AccessKey>
    <Prio>300</Prio>
  </NavBar>
  <Loader>
    <JavaScript>Core.Agent.CustomerSearch.js</JavaScript>
    <JavaScript>Core.Agent.TicketAction.js</JavaScript>
  </Loader>
  </FrontendModuleReg>
</Setting>
</ConfigItem>
</otrs_config>

File: MessageConf.xml
Directory: /Kernel/Config/Files
Configuration of the mask
<?xml version="1.0" encoding="utf-8"?>
<otrs_config version="1.0" init="Application">
    <ConfigItem Name="Ticket::Frontend::AgentMessageAdd###Priority" 
Required="1" Valid="1">
        <Description Translatable="1">Sets the default priority for new phone 
tickets in the agent interface.</Description>
        <Group>Ticket</Group>
        <SubGroup>Frontend::Agent::Ticket::ViewMessageNew</SubGroup>
        
<ValidateModule>Kernel::System::SysConfig::PriorityValidate</ValidateModule>
        <Setting>
            <String Regex="">3 normal</String>
        </Setting>
    </ConfigItem>
    <ConfigItem Name="Ticket::Frontend::AgentMessageAdd###ArticleType" 
Required="1" Valid="1">
        <Description Translatable="1">Sets the default article type for new 
phone tickets in the agent interface.</Description>
        <Group>Ticket</Group>
        <SubGroup>Frontend::Agent::Ticket::ViewMessageNew</SubGroup>
        <Setting>
            <String Regex="">phone</String>
        </Setting>
    </ConfigItem>
    <ConfigItem Name="Ticket::Frontend::AgentMessageAdd###SenderType" 
Required="1" Valid="1">
        <Description Translatable="1">Sets the default sender type for new 
phone ticket in the agent interface.</Description>
        <Group>Ticket</Group>
        <SubGroup>Frontend::Agent::Ticket::ViewMessageNew</SubGroup>
        <Setting>
            <String Regex="">customer</String>
        </Setting>
    </ConfigItem>
    <ConfigItem Name="Ticket::Frontend::AgentMessageAdd::CustomerIDReadOnly" 
Required="1" Valid="1">
        <Description Translatable="1">Controls if CutomerID is editable in the 
agent interface.</Description>
        <Group>Ticket</Group>
        <SubGroup>Frontend::Agent::Ticket::ViewMessageNew</SubGroup>
        <Setting>
            <Option SelectedID="1">
                <Item Key="0" Translatable="1">No</Item>
                <Item Key="1" Translatable="1">Yes</Item>
            </Option>
        </Setting>
    </ConfigItem>
    <ConfigItem Name="Ticket::Frontend::AgentMessageAdd::AllowMultipleFrom" 
Required="1" Valid="1">
        <Description Translatable="1">Controls if more than one from entry can 
be set in the new phone ticket in the agent interface.</Description>
        <Group>Ticket</Group>
        <SubGroup>Frontend::Agent::Ticket::ViewMessageNew</SubGroup>
        <Setting>
            <Option SelectedID="0">
                <Item Key="0" Translatable="1">No</Item>
                <Item Key="1" Translatable="1">Yes</Item>
            </Option>
        </Setting>
    </ConfigItem>
    <ConfigItem Name="Ticket::Frontend::AgentMessageAdd###Subject" Required="1" 
Valid="1">
        <Description Translatable="1">Sets the default subject for new phone 
tickets (e.g. 'Phone call') in the agent interface.</Description>
        <Group>Ticket</Group>
        <SubGroup>Frontend::Agent::Ticket::ViewMessageNew</SubGroup>
        <Setting>
            <String Regex=""></String>
        </Setting>
    </ConfigItem>
    <ConfigItem Name="Ticket::Frontend::AgentMessageAdd###Body" Required="1" 
Valid="1">
        <Description Translatable="1">Sets the default note text for new 
telephone tickets. E.g 'New ticket via call' in the agent 
interface.</Description>
        <Group>Ticket</Group>
        <SubGroup>Frontend::Agent::Ticket::ViewMessageNew</SubGroup>
        <Setting>
            <TextArea></TextArea>
        </Setting>
    </ConfigItem>
    <ConfigItem Name="Ticket::Frontend::AgentMessageAdd###StateDefault" 
Required="1" Valid="1">
        <Description Translatable="1">Sets the default next state for new phone 
tickets in the agent interface.</Description>
        <Group>Ticket</Group>
        <SubGroup>Frontend::Agent::Ticket::ViewMessageNew</SubGroup>
        
<ValidateModule>Kernel::System::SysConfig::StateValidate</ValidateModule>
        <Setting>
            <String Regex="">info</String>
        </Setting>
    </ConfigItem>
    <ConfigItem Name="Ticket::Frontend::AgentMessageAdd###StateType" 
Required="1" Valid="1">
        <Description Translatable="1">Determines the next possible ticket 
states, after the creation of a new phone ticket in the agent 
interface.</Description>
        <Group>Ticket</Group>
        <SubGroup>Frontend::Agent::Ticket::ViewMessageNew</SubGroup>
        <Setting>
            <Array>
                <Item Translatable="1">open</Item>
                <Item Translatable="1">info</Item>
            </Array>
        </Setting>
    </ConfigItem>
    <ConfigItem Name="Ticket::Frontend::AgentMessageAdd###HistoryType" 
Required="1" Valid="1">
        <Description Translatable="1">Defines the history type for the phone 
ticket screen action, which gets used for ticket history in the agent 
interface.</Description>
        <Group>Ticket</Group>
        <SubGroup>Frontend::Agent::Ticket::ViewMessageNew</SubGroup>
        <Setting>
            <String Regex="">PhoneCallCustomer</String>
        </Setting>
    </ConfigItem>
    <ConfigItem Name="Ticket::Frontend::AgentMessageAdd###HistoryComment" 
Required="1" Valid="1">
        <Description Translatable="1">Defines the history comment for the phone 
ticket screen action, which gets used for ticket history in the agent 
interface.</Description>
        <Group>Ticket</Group>
        <SubGroup>Frontend::Agent::Ticket::ViewMessageNew</SubGroup>
        <Setting>
            <String Regex=""></String>
        </Setting>
    </ConfigItem>
    <ConfigItem Name="Ticket::Frontend::AgentMessageAdd###SplitLinkType" 
Required="0" Valid="1">
        <Description Translatable="1">Sets the default link type of splitted 
tickets in the agent interface.</Description>
        <Group>Ticket</Group>
        <SubGroup>Frontend::Agent::Ticket::ViewMessageNew</SubGroup>
        <Setting>
            <Hash>
                <Item Key="LinkType" Translatable="1">ParentChild</Item>
                <Item Key="Direction" Translatable="1">Target</Item>
            </Hash>
        </Setting>
    </ConfigItem>
    <ConfigItem Name="Ticket::Frontend::AgentMessageAdd###ServiceMandatory" 
Required="0" Valid="1">
        <Description Translatable="1">Sets if service must be selected by the 
agent.</Description>
        <Group>Ticket</Group>
        <SubGroup>Frontend::Agent::Ticket::ViewMessageNew</SubGroup>
        <Setting>
            <Option SelectedID="0">
                <Item Key="0" Translatable="1">No</Item>
                <Item Key="1" Translatable="1">Yes</Item>
            </Option>
        </Setting>
    </ConfigItem>
    <ConfigItem Name="Ticket::Frontend::AgentMessageAdd###SLAMandatory" 
Required="0" Valid="1">
        <Description Translatable="1">Sets if SLA must be selected by the 
agent.</Description>
        <Group>Ticket</Group>
        <SubGroup>Frontend::Agent::Ticket::ViewMessageNew</SubGroup>
        <Setting>
            <Option SelectedID="0">
                <Item Key="0" Translatable="1">No</Item>
                <Item Key="1" Translatable="1">Yes</Item>
            </Option>
        </Setting>
    </ConfigItem>
    <ConfigItem Name="Ticket::Frontend::AgentMessageAdd###DynamicField" 
Required="0" Valid="1">
        <Description Translatable="1">Dynamic fields shown in the ticket phone 
screen of the agent interface. Possible settings: 0 = Disabled, 1 = Enabled, 2 
= Enabled and required.</Description>
        <Group>Ticket</Group>
        <SubGroup>Frontend::Agent::Ticket::ViewMessageNew</SubGroup>
        <Setting>
            <Hash>
            </Hash>
        </Setting>
    </ConfigItem>
    <ConfigItem Name="Ticket::Frontend::AgentMessageAdd###RichTextWidth" 
Required="0" Valid="1">
        <Description Translatable="1">Defines the width for the rich text 
editor component for this screen. Enter number (pixels) or percent value 
(relative).</Description>
        <Group>Ticket</Group>
        <SubGroup>Frontend::Agent::Ticket::ViewMessageNew</SubGroup>
        <Setting>
            <String Regex="^\d+%?$">620</String>
        </Setting>
    </ConfigItem>
    <ConfigItem Name="Ticket::Frontend::AgentMessageAdd###RichTextHeight" 
Required="0" Valid="1">
        <Description Translatable="1">Defines the height for the rich text 
editor component for this screen. Enter number (pixels) or percent value 
(relative).</Description>
        <Group>Ticket</Group>
        <SubGroup>Frontend::Agent::Ticket::ViewMessageNew</SubGroup>
        <Setting>
            <String Regex="^\d+%?$">320</String>
        </Setting>
    </ConfigItem>
</otrs_config>


>>> Renee B <[email protected]> 19.01.2017 08:24 >>>
If it's nothing secret, you could post a .tar.gz with the files...

Am 18.01.2017 um 17:19 schrieb Josef Penzkofer:
> Hi OTRS-developer,
>
> to post internal messages for our agents, I tried to insert a new module 
> called AgentMessageAdd. This messages should be displayed on dashboard in a 
> new widget.
>
> I achieved this goal on our OTRS 4-Instance.
>
> So I did the following:
> 1.) Registration of the module
> File: Message.xml
> Directory: /Kernel/Config/Files
>
> With this file I get the entry "Messages" into the menuBar and register the 
> module.
>
> This works!
>
> 2.) Configuration of the mask, to post a message
> File: MessageConf.xml
> Directory: /Kernel/Config/Files
>
> After this, I can configurate the mask via SysConfig.
>
> 3.) Functionality
> File: AgentMessageAdd.pm
> Directory: /Custom/Kernel/Modules
>
> This is a modified copy of file "AgentTicketPhone.pm".
>
> Changes:
> package Kernel::Modules::AgentMessageAdd;
> ...
> # get output back
> return $LayoutObject->Output(
>    TemplateFile => 'AgentMessageAdd',
>    Data         => \%Param,
> );
>
> 4.) Mask
> File: AgentMessageAdd.tt
> Directory: /Custom/Kernel/Output/HTML/Templates/Standard
>
> This is a copy of file "AgentTicketPhone.tt".
>
> Calling the function "Post new message", the mask opens and a new message 
> could created as a ticket.
>
> But when clicking the Button "Create", nothing else happens.
>
> unfortunately, there's no entry in the OTRS-Logfile or the Apache-Logfile.
>
> I think, the new module uses the Core-Module
> File: Ticket.pm
> Directory: /Kernel/System
> so, I don't have to develope a new Core-Module for this module.
>
> Do I have to register this new module anywhere else?
>
> Is there anything missing?
>
> Thanks in advance.
>
> Sepp
>
>
> _______________________________________________
> OTRS mailing list: dev - Webpage: http://otrs.org/ 
> Archive: http://lists.otrs.org/pipermail/dev 
> To unsubscribe: http://lists.otrs.org/mailman/listinfo/dev 



-- 
Perl / OTRS development: http://perl-services.de 
OTRS AddOn repository: http://opar.perl-services.de 
_______________________________________________
OTRS mailing list: dev - Webpage: http://otrs.org/ 
Archive: http://lists.otrs.org/pipermail/dev 
To unsubscribe: http://lists.otrs.org/mailman/listinfo/dev
_______________________________________________
OTRS mailing list: dev - Webpage: http://otrs.org/
Archive: http://lists.otrs.org/pipermail/dev
To unsubscribe: http://lists.otrs.org/mailman/listinfo/dev

Reply via email to