<?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.
-->

<site-conf xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xmlns="http://ofbiz.apache.org/Site-Conf" xsi:schemaLocation="http://ofbiz.apache.org/Site-Conf http://ofbiz.apache.org/dtds/site-conf.xsd">
    <!-- The controller elements that are common to all OFBiz components
         can be found in the following xml file. A component can override the
         elements found in the common-controller.xml file. -->
    <include location="component://common/webcommon/WEB-INF/common-controller.xml"/>
    
    <description>BIRT Component Site Configuration File</description>

    <handler name="birt" type="view" class="org.apache.ofbiz.birt.webapp.view.BirtViewHandler"/>

    <!-- Events to run on every request before security (chains exempt) -->
    <!--
    <preprocessor>
    </preprocessor>
    -->
    <!-- Events to run on every request after all other processing (chains exempt) -->
    <!--
    <postprocessor>
        <event type="java" path="org.apache.ofbiz.webapp.event.TestEvent" invoke="test"/>
    </postprocessor>
    -->

    <!-- Request Mappings -->
    <request-map uri="main">
        <security https="true" auth="true"/>
        <response name="success" type="view" value="main"/>
    </request-map>
    <request-map uri="Report">
        <security https="true" auth="true"/>
        <response name="success" type="view" value="Report"/>
    </request-map>
    <request-map uri="Mail">
        <security https="true" auth="true"/>
        <response name="success" type="view" value="Mail"/>
    </request-map>
    <request-map uri="sendBirtMail">
        <security https="true" auth="true"/>
        <event type="service" invoke="sendBirtMail"/>
        <response name="success" type="view" value="Mail"/>
        <response name="error" type="view" value="Mail"/>
    </request-map>
    <request-map uri="ViewHandler">
        <security https="true" auth="true"/>
        <response name="success" type="view" value="ViewHandler"/>
    </request-map>

    <!-- BIRT example Requests -->
    <request-map uri="BirtMain">
        <security https="true" auth="true"/>
        <response name="success" type="view" value="BirtMain"/>
    </request-map>

    <request-map uri="chartReport">
        <security https="true" auth="true"/>
        <response name="success" type="view" value="chartReport"/>
    </request-map>
    <request-map uri="chartViewHandler">
        <security https="true" auth="true"/>
        <response name="success" type="view" value="chartViewHandler"/>
    </request-map>

    <!-- end of request mappings -->

    <!-- View Mappings -->
    <view-map name="main" type="screen" page="component://birt/widget/birt/BirtScreens.xml#main"/>
    <view-map name="Report" type="screen" page="component://birt/widget/birt/BirtScreens.xml#Report"/>
    <view-map name="chartReport" type="screen" page="component://birt/widget/birt/BirtScreens.xml#chartReport"/>
    <view-map name="Mail" type="screen" page="component://birt/widget/birt/BirtScreens.xml#EditMail"/>
    
    <!-- Supported Content Types -->
    <!--
        text/html
        application/pdf
        application/postscript
        application/vnd.ms-excel
        application/vnd.ms-word
        application/vnd.ms-powerpoint
        application/vnd.oasis.opendocument.text
        application/vnd.oasis.opendocument.spreadsheet
        application/vnd.oasis.opendocument.presentation
        application/vnd.openxmlformats-officedocument.wordprocessingml.document
        application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
        application/vnd.openxmlformats-officedocument.presentationml.presentation
     -->
    <view-map name="ViewHandler" type="birt" page="component://birt/webapp/birt/report/example.rptdesign" content-type="application/pdf"/>
    <view-map name="chartViewHandler" type="birt" page="component://birt/webapp/birt/report/chart.rptdesign" content-type="application/pdf"/>
    <!-- end of view mappings -->
</site-conf>
