<?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">
    <!-- take care: later requests/views will overwrite earlier ones in the controller.xml list -->
    <!-- so the order should be from most common to most specific-->
    <include location="component://common/webcommon/WEB-INF/common-controller.xml"/>
    <include location="component://common/webcommon/WEB-INF/portal-controller.xml"/>
    <include location="component://commonext/webapp/WEB-INF/controller.xml"/>
    <include location="component://party/webapp/partymgr/WEB-INF/controller.xml"/>
    <include location="component://order/webapp/ordermgr/WEB-INF/controller.xml"/>
    <include location="component://workeffort/webapp/workeffort/WEB-INF/controller.xml"/>
    <include location="component://projectmgr/webapp/projectmgr/WEB-INF/controller.xml"/>
    
    <description>Show personal information in the system</description>

    <request-map uri="main">
        <security https="true" auth="true"/>
        <response name="success" type="request" value="showPortalPage"/>
    </request-map>
    <request-map uri="newRegisterLogin">
        <security https="true" auth="false"/>
        <response name="success" type="view" value="newRegisterLogin"/>
    </request-map>
    <request-map uri="createRegister">
        <security https="true" auth="false"/>
        <event type="simple" invoke="createRegister" path="component://myportal/minilang/Events.xml"/>
        <response name="error" type="view" value="newRegisterLogin"/>
        <response name="resultPage" type="view" value="newRegisterLogin"/>
    </request-map>

    <request-map uri="LookupUserLoginAndPartyDetails">
        <security https="true" auth="true"/>
        <response name="success" type="view" value="LookupUserLoginAndPartyDetails"/>
    </request-map>
    
    <!-- PortalPage administration  -->
    <request-map uri="FindPortalPage">
        <security https="true" auth="true"/>
        <response name="success" type="view" value="FindPortalPage"/>
    </request-map>
    <request-map uri="EditPortalPage">
        <security https="true" auth="true"/>
        <response name="success" type="view" value="EditPortalPage"/>
    </request-map>
    <request-map uri="DuplicatePortalPage">
        <security https="true" auth="true"/>
        <event  type="simple" invoke="duplicatePortalPage" path="component://common/minilang/PortalPageMethods.xml"/>
        <response name="success" type="view" value="EditPortalPage"/>
    </request-map>
    <request-map uri="NewPortalPage">
        <security https="true" auth="true"/>
        <response name="success" type="view" value="CreatePortalPage"/>
    </request-map>
    <request-map uri="createPortalPageAdm">
        <security https="true" auth="true"/>
        <event type="service" invoke="createPortalPage"/>
        <response name="success" type="view" value="EditPortalPage"/>
        <response name="error" type="view" value="CreatePortalPage"/>
    </request-map>
    <request-map uri="updatePortalPageAdm">
        <security https="true" auth="true"/>
        <event type="service" invoke="updatePortalPage"/>
        <response name="success" type="view" value="EditPortalPage"/>
        <response name="error" type="view" value="EditPortalPage"/>
    </request-map>
    
    <view-map name="main" type="screen" page="component://common/widget/PortalPageScreens.xml#showPortalPage"/>
    <view-map name="login" type="screen" page="component://myportal/widget/CommonScreens.xml#login"/>
    <view-map name="newRegisterLogin" type="screen" page="component://myportal/widget/CommonScreens.xml#newRegisterLogin"/>  

    <view-map name="LookupUserLoginAndPartyDetails" type="screen" page="component://party/widget/partymgr/LookupScreens.xml#LookupUserLoginAndPartyDetails"/>
    
    <!-- PortalPage administration  -->
    <view-map name="FindPortalPage" type="screen" page="component://myportal/widget/PortalAdmScreens.xml#FindPortalPage"/>
    <view-map name="CreatePortalPage" type="screen" page="component://myportal/widget/PortalAdmScreens.xml#CreatePortalPage"/>
    <view-map name="EditPortalPage" type="screen" page="component://myportal/widget/PortalAdmScreens.xml#EditPortalPage"/>
</site-conf>
