ilscipio/scipio-erp

View on GitHub
applications/cms/widget/CMSScreens.xml

Summary

Maintainability
Test Coverage
<?xml version="1.0" encoding="UTF-8"?>
<screens xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/widget-screen.xsd">

    <!-- Generic screens -->
    <screen name="main">
        <section>
            <actions>
                <set field="activeSubMenuItem" value="main"/>
                
                <!-- Includes -->
                <set field="layoutSettings.VT_FTPR_JAVASCRIPT[+0]" value="/base-theme/bower_components/jquery.cookie/jquery.cookie.js" global="true"/>    
                <set field="layoutSettings.VT_STYLESHEET[+0]" value="/base-theme/bower_components/jstree/dist/themes/default/style.css" global="true"/>
                <set field="layoutSettings.VT_FTPR_JAVASCRIPT[+0]" value="/base-theme/bower_components/jstree/dist/jstree.min.js" global="true"/>
            </actions>
            <widgets>
                <decorator-screen name="CommonCMSAppDecorator" location="${parameters.mainDecoratorLocation}">
                    <decorator-section name="body">
                        <container style="${styles.grid_row}">
                            <container style="${styles.grid_large}12 ${styles.grid_cell}">
                                <include-screen name="CmsContentTree" location="component://cms/widget/CommonScreens.xml"/>
                            </container>                            
                        </container>
                    </decorator-section>
                </decorator-screen>
            </widgets>
        </section>
    </screen>
    
    <screen name="CommonScriptAssocActions"><!-- for editTemplate & editAsset -->
        <actions>
            <script lang="groovy"><![CDATA[
                import org.ofbiz.base.util.*;
                import org.ofbiz.entity.*;
                import org.ofbiz.entity.condition.*;
                import com.ilscipio.scipio.cms.template.CmsScriptTemplate;

                final String module = "CommonEditRenderTemplateActions.groovy";

                standaloneScriptTemplates = [];
                slaveScriptTemplates = [];
                allScriptTemplates = [];
                try {
                    for (st in CmsScriptTemplate.getWorker().findAll(delegator, (EntityCondition) null, ["templateName"], false)) {
                        if (st.isStandalone()) {
                            standaloneScriptTemplates.add(st);
                        } else {
                            slaveScriptTemplates.add(st);
                        }
                    }
                    allScriptTemplates.addAll(standaloneScriptTemplates);
                    allScriptTemplates.addAll(slaveScriptTemplates);
                } catch (Exception e) {
                    Debug.logError(e, "Cms: Could not read script templates", module);
                }
                context.standaloneScriptTemplates = standaloneScriptTemplates;
                context.slaveScriptTemplates = slaveScriptTemplates;
                context.allScriptTemplates = allScriptTemplates;
            ]]></script>
        </actions>
    </screen>
    
    <!-- Page Screens -->
    
    <screen name="pages">
        <section>
            <actions>
                <set field="activeSubMenu" value="Pages"/>
                <set field="activeSubMenuItem" value="listPages"/>
                <set field="viewIndex" from-field="parameters.VIEW_INDEX" type="Integer" default-value="0"/>
                <set field="viewSize" from-field="parameters.VIEW_SIZE" type="Integer" default-value="50"/>
                <script location="component://cms/script/com/ilscipio/scipio/cms/editor/CmsGetPageList.groovy"/>
            </actions>
            <widgets>
                <decorator-screen name="CommonCMSAppDecorator" location="${parameters.mainDecoratorLocation}">
                    <decorator-section name="body">
                        <platform-specific>
                            <html><html-template location="component://cms/webapp/cms/pages/listPages.ftl"/></html>
                        </platform-specific>
                    </decorator-section>
                </decorator-screen>
            </widgets>
        </section>
    </screen>

    <screen name="contentEditorActions">
        <actions>
            <set field="layoutSettings.VT_FTPR_JAVASCRIPT[]" value="/base-theme/bower_components/trumbowyg/dist/trumbowyg.min.js" global="true"/>
            <set field="layoutSettings.VT_FTPR_JAVASCRIPT[]" value="/base-theme/bower_components/trumbowyg/dist/plugins/table/trumbowyg.table.min.js" global="true"/>

            <set field="layoutSettings.VT_FTPR_JAVASCRIPT[]" value="/base-theme/js/cms/trumbowyg/trumbowyg.scipio_common.js" global="true"/>
            <set field="layoutSettings.VT_FTPR_JAVASCRIPT[]" value="/base-theme/js/cms/trumbowyg/scipio_media/trumbowyg.scipio_media.js" global="true"/>
            <set field="layoutSettings.VT_FTPR_JAVASCRIPT[]" value="/base-theme/js/cms/trumbowyg/scipio_links/trumbowyg.scipio_links.js" global="true"/>
            <set field="layoutSettings.VT_FTPR_JAVASCRIPT[]" value="/base-theme/js/cms/trumbowyg/scipio_assets/trumbowyg.scipio_assets.js" global="true"/>

            <set field="layoutSettings.VT_FTPR_JAVASCRIPT[]" value="/base-theme/bower_components/jquery.cookie/jquery.cookie.js" global="true"/>
            <set field="layoutSettings.VT_STYLESHEET[]" value="/base-theme/bower_components/jstree/dist/themes/default/style.css" global="true"/>
            <set field="layoutSettings.VT_FTPR_JAVASCRIPT[]" value="/base-theme/bower_components/jstree/dist/jstree.min.js" global="true"/>
        </actions>
    </screen>

    <screen name="editPage">
        <section>
            <actions>
                <set field="activeSubMenu" value="Pages"/>
                <set field="activeSubMenuItem" value="editPage"/>
                <include-screen-actions name="contentEditorActions"/>
                <script location="component://cms/script/com/ilscipio/scipio/cms/editor/CmsGetPage.groovy"/>
                <include-screen-actions name="CommonScriptAssocActions"/>
            </actions>
            <widgets>
                <decorator-screen name="CommonCMSAppDecorator" location="${parameters.mainDecoratorLocation}">
                    <decorator-section name="body">
                        <platform-specific>
                            <html><html-template location="component://cms/webapp/cms/pages/editPage.ftl"/></html>
                        </platform-specific>
                    </decorator-section>
                </decorator-screen>
            </widgets>
        </section>
    </screen>

    <screen name="pageVersionList">
        <section>
            <actions>
                <property-map resource="CMSUiLabels" map-name="uiLabelMap" global="true"/>
                <property-map resource="WebtoolsUiLabels" map-name="uiLabelMap" global="true"/>
                <property-map resource="ContentUiLabels" map-name="uiLabelMap" global="true"/>
                <property-map resource="CommonUiLabels" map-name="uiLabelMap" global="true"/>
                <script location="component://cms/script/com/ilscipio/scipio/cms/editor/CmsGetPage.groovy"/>
            </actions>
            <widgets>
                <container><!-- Do not remove container - jQuery kludge -->
                    <platform-specific>
                        <html><html-template location="component://cms/webapp/cms/pages/pageVersionList.ftl"/></html>
                    </platform-specific>
                </container>
            </widgets>
        </section>
    </screen>

    <!-- Template Screens -->
    
    <screen name="CommonEditRenderTemplateActions"><!-- for editTemplate & editAsset -->
        <actions>
            <include-screen-actions name="CommonScriptAssocActions"/>
        </actions>
    </screen>
    
    <screen name="templates">
        <section>
            <actions>
                <set field="activeSubMenu" value="Templates"/>
                <set field="activeSubMenuItem" value="templates"/>
                
                <set field="viewIndex" from-field="parameters.VIEW_INDEX" type="Integer" default-value="0"/>
                <set field="viewSize" from-field="parameters.VIEW_SIZE" type="Integer" default-value="50"/>
                <entity-condition entity-name="CmsPageTemplate" list="templateList">
                    <order-by field-name="templateName"/>
                    <limit-view view-size="${viewSize}" view-index="${viewIndex+1}"/>
                </entity-condition>
            </actions>
            <widgets>
                <decorator-screen name="CommonCMSAppDecorator" location="${parameters.mainDecoratorLocation}">
                    <decorator-section name="body">
                        <platform-specific>
                            <html><html-template location="component://cms/webapp/cms/templates/listTemplates.ftl"/></html>
                        </platform-specific>
                    </decorator-section>
                </decorator-screen>
            </widgets>
        </section>
    </screen>
    
    <screen name="editTemplate">
        <section>
            <actions>
                <set field="activeSubMenu" value="Templates"/>
                <set field="activeSubMenuItem" value="editTemplate"/>
                
                <include-screen-actions name="CodeEditorCommonIncludes" location="component://cms/widget/CommonScreens.xml"/>
                <include-screen-actions name="CommonEditRenderTemplateActions"/>
                
                <!-- Prepare Data -->
                <script location="component://cms/script/com/ilscipio/scipio/cms/editor/CmsGetTemplate.groovy"/>
            </actions>
            <widgets>
                <decorator-screen name="CommonCMSAppDecorator" location="${parameters.mainDecoratorLocation}">
                    <decorator-section name="body">
                        <platform-specific>
                            <html><html-template location="component://cms/webapp/cms/templates/editTemplate.ftl"/></html>
                        </platform-specific>
                    </decorator-section>
                </decorator-screen>
            </widgets>
        </section>
    </screen>
    
    <screen name="assets">
        <section>
            <actions>
                <set field="activeSubMenu" value="Templates"/>
                <set field="activeSubMenuItem" value="assets"/>
                
                <set field="viewIndex" from-field="parameters.VIEW_INDEX" type="Integer" default-value="0"/>
                <set field="viewSize" from-field="parameters.VIEW_SIZE" type="Integer" default-value="50"/>
                <entity-condition entity-name="CmsAssetTemplate" list="assetList">
                    <order-by field-name="templateName"/>
                    <limit-view view-size="${viewSize}" view-index="${viewIndex+1}"/>
                </entity-condition>
            </actions>
            <widgets>
                <decorator-screen name="CommonCMSAppDecorator" location="${parameters.mainDecoratorLocation}">
                    <decorator-section name="body">
                        <platform-specific>
                            <html><html-template location="component://cms/webapp/cms/assets/listAssets.ftl"/></html>
                        </platform-specific>
                    </decorator-section>
                </decorator-screen>
            </widgets>
        </section>
    </screen>
    
    <screen name="editAsset">
        <section>
            <actions>
                <set field="activeSubMenu" value="Templates"/>
                <set field="activeSubMenuItem" value="editAsset"/>

                <include-screen-actions name="contentEditorActions"/>
                <include-screen-actions name="CodeEditorCommonIncludes" location="component://cms/widget/CommonScreens.xml"/>
                <include-screen-actions name="CommonEditRenderTemplateActions"/>
                
                <!-- Prepare Data -->
                <script location="component://cms/script/com/ilscipio/scipio/cms/editor/CmsGetAsset.groovy"/>
            </actions>
            <widgets>
                <decorator-screen name="CommonCMSAppDecorator" location="${parameters.mainDecoratorLocation}">
                    <decorator-section name="body">
                        <platform-specific>
                            <html><html-template location="component://cms/webapp/cms/assets/editAsset.ftl"/></html>
                        </platform-specific>
                    </decorator-section>
                </decorator-screen>
            </widgets>
        </section>
    </screen>

    <screen name="contentAssets">
        <section>
            <actions>
                <set field="envAssetType" value="CONTENT"/>
                <set field="activeSubMenu" value="ContentAsset"/>
                <set field="activeSubMenuItem" value="contentAssets"/>

                <set field="viewIndex" from-field="parameters.VIEW_INDEX" type="Integer" default-value="0"/>
                <set field="viewSize" from-field="parameters.VIEW_SIZE" type="Integer" default-value="50"/>
                <entity-condition entity-name="CmsAssetTemplate" list="assetList">
                    <condition-expr field-name="assetType" from-field="envAssetType"/>
                    <order-by field-name="templateName"/>
                    <limit-view view-size="${viewSize}" view-index="${viewIndex+1}"/>
                </entity-condition>
            </actions>
            <widgets>
                <decorator-screen name="CommonCMSAppDecorator" location="${parameters.mainDecoratorLocation}">
                    <decorator-section name="body">
                        <platform-specific>
                            <html><html-template location="component://cms/webapp/cms/assets/listAssets.ftl"/></html>
                        </platform-specific>
                    </decorator-section>
                </decorator-screen>
            </widgets>
        </section>
    </screen>

    <screen name="editContentAsset">
        <section>
            <actions>
                <set field="envAssetType" value="CONTENT"/>
                <set field="activeSubMenu" value="ContentAsset"/>
                <set field="activeSubMenuItem" value="editContentAsset"/>

                <include-screen-actions name="contentEditorActions"/>
                <include-screen-actions name="CodeEditorCommonIncludes" location="component://cms/widget/CommonScreens.xml"/>
                <include-screen-actions name="CommonEditRenderTemplateActions"/>

                <!-- Prepare Data -->
                <script location="component://cms/script/com/ilscipio/scipio/cms/editor/CmsGetAsset.groovy"/>
            </actions>
            <widgets>
                <decorator-screen name="CommonCMSAppDecorator" location="${parameters.mainDecoratorLocation}">
                    <decorator-section name="body">
                        <platform-specific>
                            <html><html-template location="component://cms/webapp/cms/assets/editAsset.ftl"/></html>
                        </platform-specific>
                    </decorator-section>
                </decorator-screen>
            </widgets>
        </section>
    </screen>
    
    <screen name="scripts">
        <section>
            <actions>
                <set field="activeSubMenu" value="Templates"/>
                <set field="activeSubMenuItem" value="scripts"/>
                
                <set field="viewIndex" from-field="parameters.VIEW_INDEX" type="Integer" default-value="0"/>
                <set field="viewSize" from-field="parameters.VIEW_SIZE" type="Integer" default-value="50"/>
                <set field="showStandaloneOnly" type="String" from-field="parameters.showStandaloneOnly" default-value="N"/>
                <if>
                    <condition>
                        <if-compare field="showStandaloneOnly" operator="equals" value="Y"/>
                    </condition>
                    <then>
                        <entity-condition entity-name="CmsScriptTemplate" list="scriptList">
                            <condition-list combine="or">
                                <condition-expr field-name="standalone" value="Y"/>
                                <!-- WARN: default is hardcoded, see CmsScriptTemplate.java -->
                                <condition-expr field-name="standalone" value=""/>
                            </condition-list>
                            <order-by field-name="templateName"/>
                            <limit-view view-size="${viewSize}" view-index="${viewIndex+1}"/>
                        </entity-condition>
                    </then>
                    <else>
                        <entity-condition entity-name="CmsScriptTemplate" list="scriptList">
                            <order-by field-name="templateName"/>
                            <limit-view view-size="${viewSize}" view-index="${viewIndex+1}"/>
                        </entity-condition>
                    </else>
                </if>
            </actions>
            <widgets>
                <decorator-screen name="CommonCMSAppDecorator" location="${parameters.mainDecoratorLocation}">
                    <decorator-section name="body">
                        <platform-specific>
                            <html><html-template location="component://cms/webapp/cms/scripts/listScripts.ftl"/></html>
                        </platform-specific>
                    </decorator-section>
                </decorator-screen>
            </widgets>
        </section>
    </screen>
    
    <!-- NOTE: body editor will only support groovy for now; the other languages only support file locations -->
    <screen name="editScript">
        <section>
            <actions>
                <set field="activeSubMenu" value="Templates"/>
                <set field="activeSubMenuItem" value="editScript"/>
                
                <include-screen-actions name="CodeEditorCommonIncludes" location="component://cms/widget/CommonScreens.xml"/>
                
                <!-- Prepare Data -->
                <script location="component://cms/script/com/ilscipio/scipio/cms/editor/CmsGetScript.groovy"/>
            </actions>
            <widgets>
                <decorator-screen name="CommonCMSAppDecorator" location="${parameters.mainDecoratorLocation}">
                    <decorator-section name="body">
                        <platform-specific>
                            <html><html-template location="component://cms/webapp/cms/scripts/editScript.ftl"/></html>
                        </platform-specific>
                    </decorator-section>
                </decorator-screen>
            </widgets>
        </section>
    </screen>

    <!-- Media Screens -->
    
    <screen name="CommonMediaActions">
        <actions>
            <script lang="groovy"><![CDATA[
                import com.ilscipio.scipio.cms.util.fileType.PreviewHelper;
                context.previewHelper = PreviewHelper.getInstance(request, response);
            ]]></script>
        </actions>
    </screen>
    
    <screen name="media">
        <section>
            <actions>
                <set field="activeSubMenu" value="Media"/>
                <set field="activeSubMenuItem" value="media"/>
                
                <include-screen-actions name="CommonMediaActions"/>
                
                <property-to-field resource="widget" property="widget.form.defaultViewSize" field="viewSizeDefaultValue"/>
                
                <set field="viewIndex" from-field="parameters.VIEW_INDEX" type="Integer" default-value="0"/>
                <set field="viewSize" from-field="parameters.VIEW_SIZE" type="Integer" default-value="50"/>
                
                <!-- Prepare Data -->
                <script location="component://cms/script/com/ilscipio/scipio/cms/editor/CmsGetMediaList.groovy"/>                
            </actions>
            <widgets>
                <decorator-screen name="CommonCMSAppDecorator" location="${parameters.mainDecoratorLocation}">
                    <decorator-section name="body">
                        <platform-specific>
                            <html><html-template location="component://cms/webapp/cms/media/listMedia.ftl"/></html>
                        </platform-specific>
                    </decorator-section>
                </decorator-screen>
            </widgets>
        </section>
    </screen>
    
    <screen name="editMedia">
        <section>
            <actions>
                <set field="activeSubMenu" value="Media"/>
                <set field="activeSubMenuItem" value="media"/><!-- no such: "editMedia" -->
                <include-screen-actions name="CommonMediaActions"/>         
                <script location="component://cms/script/com/ilscipio/scipio/cms/editor/CmsGetMedia.groovy"/>
            </actions>
            <widgets>
                <decorator-screen name="CommonCMSAppDecorator" location="${parameters.mainDecoratorLocation}">
                    <decorator-section name="body">
                        <platform-specific>
                            <html><html-template location="component://cms/webapp/cms/media/editMedia.ftl"/></html>
                        </platform-specific>
                    </decorator-section>
                </decorator-screen>
            </widgets>
        </section>
    </screen>

    <screen name="customImageSizePresets">
        <section>
            <actions>
                <set field="activeSubMenu" value="Media"/>
                <set field="activeSubMenuItem" value="customImageSizePresets"/>
                <set field="viewIndex" from-field="parameters.VIEW_INDEX" type="Integer" default-value="0"/>
                <set field="viewSize" from-field="parameters.VIEW_SIZE" type="Integer" default-value="50"/>
                <entity-condition list="customImageSizePresets" entity-name="ImageSizePreset">
                    <limit-view view-size="${viewSize}" view-index="${viewIndex+1}"/>
                </entity-condition>
            </actions>
            <widgets>
                <decorator-screen name="CommonCMSAppDecorator" location="${parameters.mainDecoratorLocation}">
                    <decorator-section name="body">
                        <platform-specific>
                            <html><html-template location="component://cms/webapp/cms/media/customImageSizePreset.ftl"/></html>
                        </platform-specific>
                    </decorator-section>
                </decorator-screen>
            </widgets>
        </section>
    </screen>

    <!-- Exports Tika media types (mime-types) to entity MimeType representations -->
    <screen name="libMimeTypeExport">
        <section>
            <actions>
                <script lang="groovy"><![CDATA[
                    import com.ilscipio.scipio.cms.util.fileType.TikaUtil;
                    def mimeTypes;
                    // NOTE: CURRENTLY (2017-02-08) DOES NOT INCLUDE ALIASES (BY DEFAULT). TODO: REVIEW. 
                    boolean aliases = "true".equals(parameters.aliases)
                    if ("true".equals(parameters.missingOnly)) {
                        mimeTypes = TikaUtil.makeMissingEntityMimeTypes(delegator, aliases);
                    } else {
                        mimeTypes = TikaUtil.makeAllEntityMimeTypes(delegator, aliases);
                    }
                    if ("true".equals(parameters.sort)) {
                        mimeTypes = mimeTypes.toSorted { a, b -> a.mimeTypeId <=> b.mimeTypeId }
                    }
                    mimeTypes = mimeTypes.toUnique { a, b -> a.mimeTypeId <=> b.mimeTypeId }
                    context.mimeTypes = mimeTypes;
                ]]></script>
            </actions>
            <widgets>
                <platform-specific>
                    <xml><html-template trim-lines="false"><![CDATA[
<#if mimeTypes?has_content>
  <#list mimeTypes as mimeType>
    <MimeType mimeTypeId="${raw(mimeType.mimeTypeId)}" description="${raw(mimeType.description)}"/>
  </#list>
</#if>
                    ]]></html-template></xml>
                </platform-specific>
            </widgets>
        </section>
    </screen>
    
    <screen name="CmsDataExport">
        <section>
            <actions>
                <set field="titleProperty" value="WebtoolsDataExport"/>
                <set field="activeSubMenuItem" value="dataExport"/>
                <script location="component://cms/script/com/ilscipio/scipio/cms/importexport/CmsDataExport.groovy"/>
                <!-- TODO: we may need to check PageAuthorization at some point, but ENTITY_MAINT is too restrictive
                    NOTE: ENTITY_MAINT is still used to restrict the individual on-server single- and multi-file output modes -->
                <set field="useEntityMaintCheck" type="Boolean" value="false" global="true"/>
            </actions>
            <widgets>
                <decorator-screen name="CommonCmsImportExportDecorator" location="${parameters.mainDecoratorLocation}">
                    <decorator-section name="body">
                        <screenlet>
                            <platform-specific><html><html-template location="component://cms/webapp/cms/importexport/CmsDataExport.ftl"/></html></platform-specific>
                        </screenlet>
                    </decorator-section>
                </decorator-screen>
            </widgets>
        </section>
    </screen>

    <screen name="menus">
        <section>
            <actions>
                <set field="activeSubMenu" value="Menus"/>
                <set field="activeSubMenuItem" value="menus"/>
                <set field="layoutSettings.VT_FTPR_JAVASCRIPT[+0]" value="/base-theme/bower_components/jquery.cookie/jquery.cookie.js" global="true"/>    
                <set field="layoutSettings.VT_STYLESHEET[+0]" value="/base-theme/bower_components/jstree/dist/themes/default/style.css" global="true"/>
                <set field="layoutSettings.VT_FTPR_JAVASCRIPT[+0]" value="/base-theme/bower_components/jstree/dist/jstree.min.js" global="true"/>
                <script location="component://cms/script/com/ilscipio/scipio/cms/editor/CmsMenuTree.groovy"/>
                <script location="component://cms/script/com/ilscipio/scipio/cms/editor/CmsContentTree.groovy"/>
                <set field="layoutSettings.VT_FTPR_JAVASCRIPT[]" value="/base-theme/bower_components/trumbowyg/dist/trumbowyg.min.js" global="true"/>
                <set field="layoutSettings.VT_FTPR_JAVASCRIPT[]" value="/base-theme/bower_components/trumbowyg/dist/plugins/table/trumbowyg.table.min.js" global="true"/>

                <set field="layoutSettings.VT_FTPR_JAVASCRIPT[]" value="/base-theme/js/cms/trumbowyg/trumbowyg.scipio_common.js" global="true"/>
                <set field="layoutSettings.VT_FTPR_JAVASCRIPT[]" value="/base-theme/js/cms/trumbowyg/scipio_media/trumbowyg.scipio_media.js" global="true"/>
                <set field="layoutSettings.VT_FTPR_JAVASCRIPT[]" value="/base-theme/js/cms/trumbowyg/scipio_links/trumbowyg.scipio_links.js" global="true"/>
                <set field="layoutSettings.VT_FTPR_JAVASCRIPT[]" value="/base-theme/js/cms/trumbowyg/scipio_assets/trumbowyg.scipio_assets.js" global="true"/>
            </actions>
            <widgets>
                <decorator-screen name="CommonCMSAppDecorator" location="${parameters.mainDecoratorLocation}">
                    <decorator-section name="body">
                        <platform-specific>
                            <html><html-template location="component://cms/webapp/cms/menus/menuTree.ftl"/></html>
                        </platform-specific>
                    </decorator-section>
                </decorator-screen>
            </widgets>
        </section>
    </screen>

    <screen name="CmsDataImport">
        <section>
            <actions>
                <set field="titleProperty" value="WebtoolsDataImport"/>
                <set field="activeSubMenuItem" value="dataImport"/>
                <set field="messages" from-field="parameters.messages"/>
                <script location="component://cms/script/com/ilscipio/scipio/cms/importexport/CmsDataImport.groovy"/>
                <!-- NOTE: ENTITY_MAINT is still checked for some parameter options -->
                <set field="useEntityMaintCheck" type="Boolean" value="false" global="true"/>
            </actions>
            <widgets>
                <decorator-screen name="CommonCmsImportExportDecorator" location="${parameters.mainDecoratorLocation}">
                    <decorator-section name="body">
                        <screenlet>
                            <platform-specific>
                                <html><html-template location="component://cms/webapp/cms/importexport/CmsDataImport.ftl"/></html>
                            </platform-specific>
                        </screenlet>
                    </decorator-section>
                </decorator-screen>
            </widgets>
        </section>
    </screen>

    <screen name="redirects">
        <section>
            <actions>
                <set field="titleProperty" value="CommonRedirects"/>
                <set field="activeSubMenuItem" value="redirects"/>
                 <script lang="groovy"><![CDATA[
                    import org.ofbiz.entity.util.*;
                    import org.ofbiz.entity.condition.*;
                    import com.ilscipio.scipio.cms.webapp.CmsWebappUtil;

                    List<GenericValue> websites = delegator.from("WebSite").where(EntityCondition.makeCondition("productStoreId", EntityJoinOperator.NOT_EQUAL, null)).orderBy("siteName").queryList()
                    import org.ofbiz.entity.GenericValue;

                    ctx = globalContext;
                    ctx.websites = websites;
                ]]></script>
            </actions>
            <widgets>
                <decorator-screen name="CommonSettingsDecorator" location="${parameters.mainDecoratorLocation}">
                    <decorator-section name="body">
                        <platform-specific>
                            <html><html-template location="component://cms/webapp/cms/redirect/redirects.ftl"/></html>
                        </platform-specific>
                    </decorator-section>
                </decorator-screen>
            </widgets>
        </section>
    </screen>

    <screen name="robots">
        <section>
            <actions>
                <set field="titleProperty" value="CommonRobots"/>
                <set field="activeSubMenuItem" value="robots"/>
                <script lang="groovy"><![CDATA[
                    import org.ofbiz.base.util.*;
                    import com.ilscipio.scipio.cms.webapp.CmsWebappUtil
                    import org.ofbiz.entity.GenericValue
                    import org.ofbiz.entity.util.*;
                    import org.ofbiz.entity.condition.*;

                    ctx = globalContext;

                    // Script languages which can currently be executed from stored bodies
                    // script names should be a subset of: CmsScriptTemplate.ScriptLang.getNames()
                    // This is limited by the Ofbiz script utils/API, which mostly expect file locations rather than bodies.
                    ctx.supportedScriptBodyLangs = ["groovy"];
                    ctx.defaultScriptBodyLang = "groovy";

                    // Script language names we currently accept for template locations
                    // FIXME: for now, we always required "auto" - auto-determine language from location, to simplify our code;
                    //     later we should allow override, because the auto-resolve algorithm is weak (see CmsScriptTemplate.ScriptExecutor)
                    //     In theory we should allow: "groovy", "simple-method", "screen-actions", "auto"
                    ctx.supportedScriptLocationLangs = ["auto"];
                    ctx.defaultScriptLocationLang = "auto";

                    // map of internal CMS script lang names to CodeMirror lang modes
                    ctx.scriptLangEditorModeMap = [
                        "groovy" : "groovy",
                        "screen-actions" : "xml",
                        "simple-method" : "xml",
                        // FIXME: what is sane default/fallback/none mode? "clike"? I am putting "text" so that nothing highlights for these, but it's not a real mode name.
                        "auto" : "text",
                        "none" : "text",
                        "default" : "text" // default is for anything that doesn't map into the above
                    ];

                    ctx.indentWithTabs = UtilProperties.getPropertyAsBoolean("cms", "cms.editor.indentWithTabs", false);

                    List<GenericValue> websites = delegator.from("WebSite").where(EntityCondition.makeCondition("productStoreId", EntityJoinOperator.NOT_EQUAL, null)).orderBy("siteName").queryList()
                    //List<GenericValue> websites = CmsWebappUtil.getWebSiteList(delegator);

                    ctx = globalContext;

                    ctx.websites = websites;
                ]]></script>

                <!-- CODEMIRROR and Codemirror freemarker extension -->
                <set field="layoutSettings.VT_STYLESHEET[+0]" value="/base-theme/bower_components/codemirror/lib/codemirror.css" global="true"/>
                <set field="layoutSettings.VT_STYLESHEET[+0]" value="/base-theme/bower_components/codemirror/addon/fold/foldgutter.css" global="true"/>
                <set field="layoutSettings.VT_STYLESHEET[+0]" value="/base-theme/bower_components/codemirror/addon/hint/show-hint.css" global="true"/>
                <set field="layoutSettings.VT_FTPR_JAVASCRIPT[]" value="/base-theme/bower_components/codemirror/lib/codemirror.js" global="true"/>
                <set field="layoutSettings.VT_FTPR_JAVASCRIPT[]" value="/base-theme/bower_components/codemirror/addon/display/placeholder.js" global="true"/>
                <set field="layoutSettings.VT_FTPR_JAVASCRIPT[]" value="/base-theme/bower_components/codemirror/addon/edit/matchbrackets.js" global="true"/>
                <set field="layoutSettings.VT_FTPR_JAVASCRIPT[]" value="/base-theme/bower_components/codemirror/addon/edit/matchtags.js" global="true"/>
                <set field="layoutSettings.VT_FTPR_JAVASCRIPT[]" value="/base-theme/bower_components/codemirror/addon/edit/closetag.js" global="true"/>
                <set field="layoutSettings.VT_FTPR_JAVASCRIPT[]" value="/base-theme/bower_components/codemirror/addon/fold/foldcode.js" global="true"/>
                <set field="layoutSettings.VT_FTPR_JAVASCRIPT[]" value="/base-theme/bower_components/codemirror/addon/fold/foldgutter.js" global="true"/>
                <set field="layoutSettings.VT_FTPR_JAVASCRIPT[]" value="/base-theme/bower_components/codemirror/addon/fold/brace-fold.js" global="true"/>
                <set field="layoutSettings.VT_FTPR_JAVASCRIPT[]" value="/base-theme/bower_components/codemirror/addon/fold/xml-fold.js" global="true"/>
                <set field="layoutSettings.VT_FTPR_JAVASCRIPT[]" value="/base-theme/bower_components/codemirror/addon/fold/comment-fold.js" global="true"/>
                <set field="layoutSettings.VT_FTPR_JAVASCRIPT[]" value="/base-theme/bower_components/codemirror/addon/hint/show-hint.js" global="true"/>
                <set field="layoutSettings.VT_FTPR_JAVASCRIPT[]" value="/base-theme/bower_components/codemirror/addon/hint/xml-hint.js" global="true"/>
                <set field="layoutSettings.VT_FTPR_JAVASCRIPT[]" value="/base-theme/bower_components/codemirror/addon/hint/html-hint.js" global="true"/>

                <!-- Languages - essential for CMS: Freemarker (render templates), Groovy & XML (script templates, edit & view). -->
                <set field="layoutSettings.VT_FTPR_JAVASCRIPT[]" value="/base-theme/bower_components/codemirror/mode/xml/xml.js" global="true"/>
                <set field="layoutSettings.VT_FTPR_JAVASCRIPT[]" value="/base-theme/bower_components/codemirror/mode/htmlmixed/htmlmixed.js" global="true"/>
                <set field="layoutSettings.VT_FTPR_JAVASCRIPT[]" value="/base-theme/bower_components/codemirror/mode/javascript/javascript.js" global="true"/>
                <set field="layoutSettings.VT_FTPR_JAVASCRIPT[]" value="/base-theme/bower_components/codemirror/mode/vbscript/vbscript.js" global="true"/>
                <set field="layoutSettings.VT_FTPR_JAVASCRIPT[]" value="/base-theme/bower_components/codemirror/mode/groovy/groovy.js" global="true"/>
                <set field="layoutSettings.VT_FTPR_JAVASCRIPT[]" value="/base-theme/bower_components/codemirror-mode-freemarker/freemarker/freemarker.js" global="true"/>
            </actions>
            <widgets>
                <decorator-screen name="CommonSettingsDecorator" location="${parameters.mainDecoratorLocation}">
                    <decorator-section name="body">
                        <platform-specific>
                            <html><html-template location="component://cms/webapp/cms/robots/robots.ftl"/></html>
                        </platform-specific>
                    </decorator-section>
                </decorator-screen>
            </widgets>
        </section>
    </screen>
    
</screens>