<?xml version="1.0" encoding="UTF-8" ?>
<!--
        Licensed to the Apache Software Foundation (ASF) under one or more
        contributor license agreements.  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.  For additional information regarding
        copyright in this work,please see the NOTICE file in the top level
        directory of this distribution.
-->
<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
        "http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>

    <!-- Weblogger default package -->
    <package name="weblogger" namespace="/roller-ui" extends="struts-default">

        <!-- Define Tiles result type -->
        <result-types>
            <result-type name="tiles" class="org.apache.struts2.views.tiles.TilesResult" />
        </result-types>
        
        <!-- define our own interceptors and a custom interceptor stack -->
        <interceptors>
            <interceptor name="UIActionInterceptor" 
                         class="org.apache.roller.weblogger.ui.struts2.util.UIActionInterceptor" />
            <interceptor name="UISecurityInterceptor" 
                         class="org.apache.roller.weblogger.ui.struts2.util.UISecurityInterceptor" />
            <interceptor name="UIActionPrepareInterceptor" 
                         class="org.apache.roller.weblogger.ui.struts2.util.UIActionPrepareInterceptor" />
                         
            <!-- Define a custom interceptor stack for Roller so that we can 
                 add in our own custom interceptors.  We basically copy the 
                 default stack from struts2 rather than extend it because we
                 need to have our custom interceptors go in the middle of the
                 default stack -->
            <interceptor-stack name="rollerStack">
                <interceptor-ref name="exception"/>
                <!-- <interceptor-ref name="alias"/> -->
                <interceptor-ref name="servletConfig"/>
                <!-- <interceptor-ref name="prepare"/> -->
                <interceptor-ref name="i18n"/>
                <interceptor-ref name="chain"/>
                <!-- <interceptor-ref name="debugging"/> -->
                <!-- <interceptor-ref name="profiling"/> -->
                <!-- <interceptor-ref name="scopedModelDriven"/> -->
                <!-- <interceptor-ref name="modelDriven"/> -->
                <interceptor-ref name="fileUpload"/>
                <interceptor-ref name="checkbox"/>
                <interceptor-ref name="multiselect"/>
                <interceptor-ref name="staticParams"/>
                <interceptor-ref name="actionMappingParams"/>
                <interceptor-ref name="params">
                    <param name="excludeParams">^action:.*,^method:.*</param>
                </interceptor-ref>
                <interceptor-ref name="conversionError"/>
                
                <!-- custom Roller interceptors -->
                <interceptor-ref name="UIActionInterceptor">
                    <param name="excludeMethods">cancel</param>
                </interceptor-ref>
                <interceptor-ref name="UISecurityInterceptor">
                    <param name="excludeMethods">cancel</param>
                </interceptor-ref>
                <interceptor-ref name="UIActionPrepareInterceptor">
                    <param name="excludeMethods">cancel</param>
                </interceptor-ref>
                
                <!-- validation interceptors,MUST come after our custom interceptors -->
                <interceptor-ref name="validation">
                    <param name="excludeMethods">input,back,cancel,browse</param>
                </interceptor-ref>
                <interceptor-ref name="workflow">
                    <param name="excludeMethods">input,back,cancel,browse</param>
                </interceptor-ref>
                
            </interceptor-stack>
        </interceptors>
        
        <!-- use our own interceptor stack which extends the default stack -->
        <default-interceptor-ref name="rollerStack"/>
        
        <!-- results made available to all actions -->
        <global-results>
            <result name="access-denied" type="tiles">.denied</result>
        </global-results>

        <!-- Simple actions which basically just replace the global-forwards from
             the old struts 1 config.  this is the only way to do it in struts 2 -->
        <action name="home">
            <result type="redirect">/</result>
        </action>
        
        <action name="login-redirect">
            <result>/roller-ui/login-redirect.jsp</result>
        </action>
        
        <action name="logout">
            <result>/roller-ui/logout-redirect.jsp</result>
        </action>
        
        <action name="setup"
                class="org.apache.roller.weblogger.ui.struts2.core.Setup">
            <result name="success" type="tiles">.Setup</result>
            <result name="home" type="redirectAction">home</result>
            <allowed-methods>activate,execute,save</allowed-methods>
        </action>
                        
        <action name="login"
                class="org.apache.roller.weblogger.ui.struts2.core.Login">
            <result type="tiles">.Login</result>
            <allowed-methods>execute</allowed-methods>
        </action>
        
        <action name="register"
                class="org.apache.roller.weblogger.ui.struts2.core.Register">
            <result name="input" type="tiles">.Register</result>
            <result name="disabled" type="tiles">.GenericError</result>
            <result name="success" type="tiles">.Welcome</result>
            <allowed-methods>activate,execute,save</allowed-methods>
        </action>
        
        <action name="profile"
                class="org.apache.roller.weblogger.ui.struts2.core.Profile">
            <result name="input" type="tiles">.Profile</result>
            <result name="cancel" type="redirectAction">menu</result>
            <result name="success" type="tiles">.MainMenu</result>
            <allowed-methods>execute,save</allowed-methods>
        </action>

        <action name="oauthKeys"
                class="org.apache.roller.weblogger.ui.struts2.core.OAuthKeys">
            <result name="success" type="tiles">.OAuthKeys</result>
            <allowed-methods>execute</allowed-methods>
        </action>

        <action name="oauthAuthorize"
                class="org.apache.roller.weblogger.ui.struts2.core.OAuthAuthorize">
            <result name="success" type="tiles">.OAuthAuthorize</result>
            <allowed-methods>execute</allowed-methods>
        </action>

        <action name="createWeblog"
                class="org.apache.roller.weblogger.ui.struts2.core.CreateWeblog">
            <result name="input" type="tiles">.CreateWeblog</result>
            <result name="disabled" type="tiles">.GenericError</result>
            <result name="success" type="chain">menu</result>
            <allowed-methods>cancel,execute,save</allowed-methods>
        </action>
        
        <action name="menu"
                class="org.apache.roller.weblogger.ui.struts2.core.MainMenu">
            <result type="tiles">.MainMenu</result>
            <allowed-methods>accept,decline,execute</allowed-methods>
        </action>

    </package>
    
    
    <!-- Weblogger install/bootstrap actions -->
    <package name="weblogger-install" namespace="/roller-ui/install" extends="weblogger" >

        <global-allowed-methods>
            execute,
            create,
            update,
            upgrade,
            bootstrap
        </global-allowed-methods>

        <action name="install"
                class="org.apache.roller.weblogger.ui.struts2.core.Install">
            <result name="database_error" type="tiles">.DatabaseError</result>
            <result name="create_database" type="tiles">.CreateDatabase</result>
            <result name="upgrade_database" type="tiles">.UpgradeDatabase</result>
            <result name="bootstrap" type="tiles">.Bootstrap</result>
            <result name="success" type="chain">
                <param name="actionName">home</param>
                <param name="namespace">/roller-ui</param>
            </result>
            <allowed-methods>execute,create,upgrade,bootstrap</allowed-methods>
        </action>
            
    </package>
    
    
    <!-- Weblogger Admin UI (includes planet) -->
    <package name="weblogger-admin" namespace="/roller-ui/admin" extends="weblogger" >

        <action name="globalConfig"
                class="org.apache.roller.weblogger.ui.struts2.admin.GlobalConfig">
            <result name="success" type="tiles">.GlobalConfig</result>
            <result name="error" type="tiles">.GlobalConfig</result>
            <allowed-methods>execute,save</allowed-methods>
        </action>
               
        <action name="userAdmin"
                class="org.apache.roller.weblogger.ui.struts2.admin.UserAdmin">
            <result name="success" type="tiles">.UserAdmin</result>
            <result name="error" type="tiles">.UserAdmin</result>
            <result name="input" type="tiles">.UserAdmin</result>
            <result name="edit" type="redirectAction">
                <param name="actionName">modifyUser</param>
                <param name="bean.userName">${bean.userName}</param>
            </result>
            <allowed-methods>edit,execute</allowed-methods>
        </action>
        
        <action name="createUser"
                class="org.apache.roller.weblogger.ui.struts2.admin.UserEdit">
            <param name="actionName">createUser</param>
            <param name="pageTitle">userAdmin.title.createNewUser</param>
            <result name="input" type="tiles">.UserEdit</result>
            <result name="success" type="tiles">.UserAdmin</result>
            <allowed-methods>execute,firstSave,save</allowed-methods>
        </action>

        <action name="modifyUser"
                class="org.apache.roller.weblogger.ui.struts2.admin.UserEdit">
            <param name="actionName">modifyUser</param>
            <param name="pageTitle">userAdmin.title.editUser</param>
            <result name="input" type="tiles">.UserEdit</result>
            <result name="error" type="chain">userAdmin</result>
            <result name="cancel" type="redirectAction">
                <param name="actionName">userAdmin</param>
            </result>
            <result name="success" type="tiles">.UserAdmin</result>
            <allowed-methods>execute,firstSave,save</allowed-methods>
        </action>
        
        <action name="globalCommentManagement"
                class="org.apache.roller.weblogger.ui.struts2.admin.GlobalCommentManagement">
            <result name="list" type="tiles">.GlobalCommentManagement</result>
            <allowed-methods>execute,delete,query,update</allowed-methods>
        </action>
        
        <action name="commonPingTargets"
                class="org.apache.roller.weblogger.ui.struts2.admin.PingTargets">
            <result name="list" type="tiles">.PingTargets</result>
            <result name="confirm" type="tiles">.PingTargetConfirm</result>
            <allowed-methods>delete,deleteConfirm,disable,enable,execute</allowed-methods>
        </action>
        
        <action name="commonPingTargetAdd"
                class="org.apache.roller.weblogger.ui.struts2.admin.PingTargetEdit">
            <param name="actionName">commonPingTargetAdd</param>
            <param name="pageTitle">pingTarget.addTarget</param>
            <result name="input" type="tiles">.PingTargetEdit</result>
            <result name="success" type="chain">commonPingTargets</result>
            <allowed-methods>execute</allowed-methods>
        </action>
        
        <action name="commonPingTargetEdit"
                class="org.apache.roller.weblogger.ui.struts2.admin.PingTargetEdit">
            <param name="actionName">commonPingTargetEdit</param>
            <param name="pageTitle">pingTarget.editTarget</param>
            <result name="input" type="tiles">.PingTargetEdit</result>
            <result name="success" type="chain">commonPingTargets</result>
            <result name="error" type="chain">commonPingTargets</result>
            <allowed-methods>execute</allowed-methods>
        </action>
        
        <action name="cacheInfo"
                class="org.apache.roller.weblogger.ui.struts2.admin.CacheInfo">
            <result name="success" type="tiles">.CacheInfo</result>
            <allowed-methods>execute,clear</allowed-methods>
        </action>

        <action name="planetConfig"
                class="org.apache.roller.weblogger.planet.ui.PlanetConfig">
            <result name="input" type="tiles">.PlanetConfig</result>
            <allowed-methods>execute,save</allowed-methods>
        </action>
        
        <action name="planetGroupSubs"
                class="org.apache.roller.weblogger.planet.ui.PlanetGroupSubs">
            <result name="list" type="tiles">.PlanetGroupSubs</result>
            <allowed-methods>execute,deleteSubscription,saveGroup,saveSubscription</allowed-methods>
        </action>
        
        <action name="planetGroups"
                class="org.apache.roller.weblogger.planet.ui.PlanetGroups">
            <result name="list" type="tiles">.PlanetGroups</result>
            <allowed-methods>delete,execute</allowed-methods>
        </action>
    </package>
    
    
    <!-- Weblogger Authoring UI -->
    <package name="weblogger-authoring" namespace="/roller-ui/authoring" extends="weblogger" >

        <action name="mediaFileAdd"
                class="org.apache.roller.weblogger.ui.struts2.editor.MediaFileAdd">
            <result name="input" type="tiles">.MediaFileAdd</result>
            <result name="success" type="tiles">.MediaFileAddSuccess</result>
            <result name="error" type="tiles">.MediaFileAdd</result>
            <result name="cancel" type="redirectAction">
                <param name="actionName">mediaFileView</param>
                <param name="weblog">${weblog}</param>
            </result>
            <allowed-methods>execute,save</allowed-methods>
        </action>

        <action name="mediaFileEdit"
                class="org.apache.roller.weblogger.ui.struts2.editor.MediaFileEdit">
            <result name="input" type="tiles">.MediaFileEdit</result>
            <result name="success" type="tiles">.MediaFileEditSuccess</result>
            <allowed-methods>execute,save</allowed-methods>
        </action>

        <action name="mediaFileAddExternalInclude"
                class="org.apache.roller.weblogger.ui.struts2.editor.MediaFileEdit">
            <result name="input" type="tiles">.MediaFileAddExternalInclude</result>
            <result name="success" type="tiles">.MediaFileAddExternalInclude</result>
            <result name="error" type="tiles">.MediaFileAddExternalInclude</result>
            <allowed-methods>execute,save</allowed-methods>
        </action>

	    <action name="mediaFileView"
                class="org.apache.roller.weblogger.ui.struts2.editor.MediaFileView">
            <result name="success" type="tiles">.MediaFileView</result>
            <result name="success.json" type="dispatcher">/WEB-INF/jsps/editor/MediaFileViewLight.jsp</result>
            <allowed-methods>
                delete,execute,createNewDirectory,deleteFolder,deleteSelected,fetchDirectoryContentLight,includeInGallery,moveSelected,search,view
            </allowed-methods>
        </action>

	    <action name="mediaFileImageDim"
                class="org.apache.roller.weblogger.ui.struts2.editor.MediaFileImageDim">
            <result name="success" type="tiles">.MediaFileImageDimension</result>
            <allowed-methods>execute</allowed-methods>
        </action>

        <action name="entryAddWithMediaFile"
                class="org.apache.roller.weblogger.ui.struts2.editor.EntryAddWithMediaFile">
            <result name="success" type="chain">entryAdd</result>
            <allowed-methods>execute</allowed-methods>
        </action>

        <action name="entryAdd"
                class="org.apache.roller.weblogger.ui.struts2.editor.EntryEdit">
            <param name="actionName">entryAdd</param>
            <param name="pageTitle">weblogEdit.title.newEntry</param>
            <result name="input" type="tiles">.EntryEdit</result>
            <result name="success" type="redirectAction">
                <param name="actionName">entryEdit!firstSave</param>
                <param name="weblog">${weblog}</param>
                <param name="bean.id">${bean.id}</param>
            </result>
            <allowed-methods>execute,firstSave,publish,saveDraft,trackback</allowed-methods>
        </action>

        <action name="entryEdit"
                class="org.apache.roller.weblogger.ui.struts2.editor.EntryEdit">
            <param name="actionName">entryEdit</param>
            <param name="pageTitle">weblogEdit.title.editEntry</param>
            <result name="input" type="tiles">.EntryEdit</result>
            <result name="error" type="chain">
                <param name="actionName">menu</param>
                <param name="namespace">/roller-ui</param>
            </result>
            <allowed-methods>execute,firstSave,publish,saveDraft,trackback</allowed-methods>
        </action>
        
        <action name="entryRemove"
                class="org.apache.roller.weblogger.ui.struts2.editor.EntryRemove">
            <param name="actionName">entryRemove</param>
            <result name="input" type="tiles">.EntryRemove</result>
            <result name="error" type="chain">
                <param name="actionName">menu</param>
                <param name="namespace">/roller-ui</param>
            </result>
            <result name="success" type="chain">entryAdd</result>
            <allowed-methods>execute,remove</allowed-methods>
        </action>

        <!-- Below activated by Entries.jsp and EntryRemove.jsp,kept separate from
        entryRemove above as return pages are different,both in the confirm delete
        and cancel delete scenarios.

        Note the different actionName parameters.  The actionName is used to determine
        which menu item to highlight as configured in editor-menu.xml (and MenuHelper).
        It's also used in EntryRemove.jsp to code the confirm delete and cancel buttons
        to return to the appropriate pages based on the actionName.  See Struts2
        StaticParametersInterceptor javadoc for more info on static parameters.
        -->
        <action name="entryRemoveViaList"
              class="org.apache.roller.weblogger.ui.struts2.editor.EntryRemove">
          <param name="actionName">entryRemoveViaList</param>
          <result name="input" type="tiles">.EntryRemove</result>
            <result name="error" type="chain">
                <param name="actionName">menu</param>
                <param name="namespace">/roller-ui</param>
            </result>
          <result name="success" type="chain">entries</result>
            <allowed-methods>execute,remove</allowed-methods>
        </action>

        <action name="entries"
                class="org.apache.roller.weblogger.ui.struts2.editor.Entries">
            <result name="list" type="tiles">.Entries</result>
            <allowed-methods>execute</allowed-methods>
        </action>

        <action name="comments"
                class="org.apache.roller.weblogger.ui.struts2.editor.Comments">
            <result name="list" type="tiles">.Comments</result>
            <allowed-methods>delete,execute,query,update</allowed-methods>
        </action>

        <action name="categories"
                class="org.apache.roller.weblogger.ui.struts2.editor.Categories">
            <result name="list" type="tiles">.Categories</result>
            <allowed-methods>execute,move</allowed-methods>
        </action>

        <action name="categoryAdd"
                class="org.apache.roller.weblogger.ui.struts2.editor.CategoryEdit">
            <param name="actionName">categoryAdd</param>
            <param name="pageTitle">categoryForm.add.title</param>
            <result name="input" type="tiles">.CategoryEdit</result>
            <result name="success" type="chain">categories</result>
            <result name="error" type="chain">categories</result>
            <allowed-methods>execute,save</allowed-methods>
        </action>

        <action name="categoryEdit"
                class="org.apache.roller.weblogger.ui.struts2.editor.CategoryEdit">
            <param name="actionName">categoryEdit</param>
            <param name="pageTitle">categoryForm.edit.title</param>
            <result name="input" type="tiles">.CategoryEdit</result>
            <result name="success" type="chain">categories</result>
            <result name="cancel" type="redirectAction">
                <param name="actionName">categories</param>
                <param name="weblog">${weblog}</param>
            </result>
            <allowed-methods>execute,save</allowed-methods>
        </action>

        <action name="categoryRemove"
                class="org.apache.roller.weblogger.ui.struts2.editor.CategoryRemove">
            <result name="input" type="tiles">.CategoryRemove</result>
            <result name="cancel" type="redirectAction">
                <param name="actionName">categories</param>
                <param name="weblog">${weblog}</param>
            </result>
            <result name="success" type="chain">categories</result>
            <allowed-methods>execute,remove</allowed-methods>
        </action>

        <action name="bookmarks"
                class="org.apache.roller.weblogger.ui.struts2.editor.Bookmarks">
            <result name="list" type="tiles">.Bookmarks</result>
            <allowed-methods>delete,deleteFolder,execute,folderCreated,move,view</allowed-methods>
        </action>

        <action name="bookmarkAdd"
                class="org.apache.roller.weblogger.ui.struts2.editor.BookmarkEdit">
            <param name="actionName">bookmarkAdd</param>
            <param name="pageTitle">bookmarkForm.add.title</param>
            <result name="input" type="tiles">.BookmarkEdit</result>
            <result name="success" type="chain">bookmarks</result>
            <result name="error" type="chain">bookmarks</result>
            <allowed-methods>execute,save</allowed-methods>
        </action>

        <action name="bookmarkEdit"
                class="org.apache.roller.weblogger.ui.struts2.editor.BookmarkEdit">
            <param name="actionName">bookmarkEdit</param>
            <param name="pageTitle">bookmarkForm.edit.title</param>
            <result name="input" type="tiles">.BookmarkEdit</result>
            <result name="success" type="chain">bookmarks</result>
            <result name="cancel" type="redirectAction">
                <param name="actionName">bookmarks</param>
                <param name="weblog">${weblog}</param>
                <param name="folderId">${folderId}</param>
            </result>
            <result name="error" type="chain">bookmarkEdit</result>
            <allowed-methods>execute,save</allowed-methods>
        </action>

        <action name="bookmarksImport"
                class="org.apache.roller.weblogger.ui.struts2.editor.BookmarksImport">
            <result name="input" type="tiles">.BookmarksImport</result>
            <result name="success" type="chain">bookmarks</result>
            <allowed-methods>execute,save</allowed-methods>
        </action>

        <action name="folderAdd"
                class="org.apache.roller.weblogger.ui.struts2.editor.FolderEdit">
            <param name="actionName">folderAdd</param>
            <param name="pageTitle">folderForm.add.title</param>
            <result name="input" type="tiles">.FolderEdit</result>
            <!-- redirect because switching to the newly created bookmarks folder -->
            <result name="success" type="redirectAction">
                <param name="actionName">bookmarks!folderCreated</param>
                <param name="weblog">${weblog}</param>
                <param name="folderId">${folderId}</param>
            </result>
            <result name="error" type="chain">bookmarks</result>
            <allowed-methods>execute,save</allowed-methods>
        </action>

        <action name="folderEdit"
                class="org.apache.roller.weblogger.ui.struts2.editor.FolderEdit">
            <param name="actionName">folderEdit</param>
            <param name="pageTitle">folderForm.edit.title</param>
            <result name="input" type="tiles">.FolderEdit</result>
            <result name="success" type="chain">bookmarks</result>
            <result name="cancel" type="redirectAction">
                <param name="actionName">bookmarks</param>
                <param name="weblog">${weblog}</param>
                <param name="folderId">${folderId}</param>
            </result>
            <result name="error" type="chain">bookmarks</result>
            <allowed-methods>execute,save</allowed-methods>
        </action>

        <action name="weblogConfig"
                class="org.apache.roller.weblogger.ui.struts2.editor.WeblogConfig">
            <result name="input" type="tiles">.WeblogConfig</result>
            <allowed-methods>execute,save</allowed-methods>
        </action>
        
        <action name="weblogRemove"
                class="org.apache.roller.weblogger.ui.struts2.editor.WeblogRemove">
            <result name="confirm" type="tiles">.WeblogRemoveConfirm</result>
            <result name="success" type="chain">
                <param name="actionName">menu</param>
                <param name="namespace">/roller-ui</param>
            </result>
            <allowed-methods>execute,remove</allowed-methods>
        </action>
        
        <action name="themeEdit"
                class="org.apache.roller.weblogger.ui.struts2.editor.ThemeEdit">
            <result name="input" type="tiles">.ThemeEdit</result>
            <allowed-methods>execute,save</allowed-methods>
        </action>
        
        <action name="stylesheetEdit"
                class="org.apache.roller.weblogger.ui.struts2.editor.StylesheetEdit">
            <result name="input" type="tiles">.StylesheetEdit</result>
            <allowed-methods>copyStylesheet,delete,execute,revert,save</allowed-methods>
        </action>
        
        <action name="templates"
                class="org.apache.roller.weblogger.ui.struts2.editor.Templates">
            <result name="list" type="tiles">.Templates</result>
            <allowed-methods>add,execute</allowed-methods>
        </action>
        
        <action name="templateEdit"
                class="org.apache.roller.weblogger.ui.struts2.editor.TemplateEdit">
            <result name="list" type="chain">templates</result>
            <result name="input" type="tiles">.TemplateEdit</result>
            <allowed-methods>execute,save</allowed-methods>
        </action>

        <action name="members"
                class="org.apache.roller.weblogger.ui.struts2.editor.Members">
            <result name="list" type="tiles">.Members</result>
            <allowed-methods>execute,save</allowed-methods>
        </action>
        
        <action name="invite"
                class="org.apache.roller.weblogger.ui.struts2.editor.MembersInvite">
            <result name="input" type="tiles">.MembersInvite</result>
            <!-- <result name="disabled" type="tiles">.disabled</result> -->
            <result name="success" type="chain">members</result>
            <result name="cancel" type="redirectAction">
                <param name="actionName">members</param>
                <param name="weblog">${weblog}</param>
            </result>
            <allowed-methods>execute,save</allowed-methods>
        </action>

        <action name="memberResign"
                class="org.apache.roller.weblogger.ui.struts2.editor.MemberResign">
            <result name="input" type="tiles">.MemberResign</result>
            <result name="error" type="chain">
                <param name="actionName">menu</param>
                <param name="namespace">/roller-ui</param>
            </result>
            <result name="success" type="chain">
                <param name="actionName">menu</param>
                <param name="namespace">/roller-ui</param>
            </result>
            <allowed-methods>execute,resign</allowed-methods>
        </action>

        <action name="pings"
                class="org.apache.roller.weblogger.ui.struts2.editor.Pings">
            <result name="list" type="tiles">.Pings</result>
            <allowed-methods>disable,enable,execute,pingNow</allowed-methods>
        </action>

        <action name="maintenance"
                class="org.apache.roller.weblogger.ui.struts2.editor.Maintenance">
            <result name="success" type="tiles">.Maintenance</result>
            <allowed-methods>execute,flushCache,reset</allowed-methods>
        </action>

    </package>

    <!-- Weblogger Authoring UI - overlay pages-->
    
    <package name="weblogger-authoring-overlay" namespace="/roller-ui/authoring/overlay" extends="weblogger-authoring" >

        <action name="mediaFileAdd"
                class="org.apache.roller.weblogger.ui.struts2.editor.MediaFileAdd">
            <param name="overlayMode">true</param>
            <result name="input" type="tiles">.MediaFileAddInclude</result>
            <result name="success" type="tiles">.MediaFileAddSuccessInclude</result>
            <result name="error" type="tiles">.MediaFileAddInclude</result>
            <allowed-methods>execute,save</allowed-methods>
        </action>

	    <action name="mediaFileImageChooser"
                class="org.apache.roller.weblogger.ui.struts2.editor.MediaFileImageChooser">
            <param name="overlayMode">true</param>
            <result name="input" type="tiles">.MediaFileImageChooser</result>
            <result name="error" type="tiles">.MediaFileImageChooser</result>
            <result name="success" type="tiles">.MediaFileImageChooser</result>
            <allowed-methods>execute,save</allowed-methods>
        </action>

    </package>

</struts>
