<?xml version="1.0" encoding="UTF-8"?>
<!--
    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at
    
    http://www.apache.org/licenses/LICENSE-2.0
    
    Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.
-->
<section xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="5.0" xmlns:xl="http://www.w3.org/1999/xlink"
    xmlns:xi="http://www.w3.org/2001/XInclude" xsi:schemaLocation="http://docbook.org/ns/docbook ../../../content/dtd/docbook.xsd"
    xmlns="http://docbook.org/ns/docbook">
    <title>The System Event Portlet</title>
    <para> This portlet shows changes which happened in the system for the logged on user. The first two functions which are working now:</para>
    <para>
        <orderedlist>
            <listitem>
                <para>Incoming communication events (email, internal notes).</para>
            </listitem>
            <listitem>
                <para>Tasks which are assigned either in projectmanager or workeffort.</para>
                <para>These event can be notified to the user even when not logged on to OFBiz by using a firefox plugin and when it changes the
                    employee is notified from within firefox </para>
                <para>The plugin: http://updatescanner.mozdev.org/en/index.html and it should check the following url: (adjust to your requirements)
                    <![CDATA[https://localhost:8443/myportal/control/showPortletSimpleDecorator?portalPortletId=SystemInfoNotes&USERNAME=admin&PASSWORD=ofbiz]]></para>
                <para> In the Flat Grey theme (only) notifications show in the header when they are available. </para>
            </listitem>
        </orderedlist>
    </para>
</section>
