Permalink
Find file
6f9e80c May 11, 2013
81 lines (81 sloc) 4.93 KB
<!--
/**
* Copyright (c) 2012, FinancialForce.com, inc
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the FinancialForce.com, inc nor the names of its contributors
* may be used to endorse or promote products derived from this software without
* specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
* THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
**/
-->
<apex:page controller="MetadataRetrieveController" action="{!init}" sidebar="false">
<apex:includeScript value="{!URLFOR($Resource.jszip, '/jszip.js')}"/>
<apex:includeScript value="{!URLFOR($Resource.jszip, '/jszip-load.js')}"/>
<apex:includeScript value="{!URLFOR($Resource.jszip, '/jszip-deflate.js')}"/>
<apex:includeScript value="{!URLFOR($Resource.jszip, '/jszip-inflate.js')}"/>
<apex:form id="form" >
<apex:sectionHeader title="Metadata Retrieve Demo"/>
<apex:pageMessages id="messages"/>
<apex:actionPoller action="{!checkAsyncRequest}" interval="5" rerender="form" rendered="{!NOT(ISNULL(AsyncResult))}"/>
<apex:pageBlock title="Layouts" rendered="{!AND(ISNULL(AsyncResult),ISNULL(MetaDataRetrieveZip))}">
<apex:pageBlockButtons >
<apex:commandButton value="List" action="{!listMetadataItems}" />
<apex:commandButton value="Retrieve" action="{!retrieveMetadataItem}" />
</apex:pageBlockButtons>
<apex:pageBlockSection columns="1">
<apex:pageBlockSectionItem >
<apex:outputLabel value="Metadata Type:" />
<apex:selectList size="1" value="{!MetadataType}" >
<apex:selectOptions value="{!MetadataTypes}"/>
<apex:actionSupport event="onchange" action="{!listMetadataItems}"/>
</apex:selectList>
</apex:pageBlockSectionItem>
<apex:pageBlockSectionItem >
<apex:outputLabel value="Metadata Folder" />
<apex:inputText value="{!MetaDataFolder}" />
</apex:pageBlockSectionItem>
<apex:pageBlockSectionItem >
<apex:outputLabel value="Metadata Item:" />
<apex:selectList size="1" value="{!MetaDataItem}" >
<apex:selectOptions value="{!MetaDataItems}"/>
</apex:selectList>
</apex:pageBlockSectionItem>
</apex:pageBlockSection>
</apex:pageBlock>
<apex:outputPanel rendered="{!NOT(ISNULL(MetaDataRetrieveZip))}">
<apex:actionFunction name="receiveFile" action="{!receiveMetadataZipFile}" rerender="messages,files" oncomplete="unzip();">
<apex:param name="filename" assignTo="{!MetadataFileName}" value=""/>
<apex:param name="filedata" assignTo="{!MetadataFileData}" value=""/>
</apex:actionFunction>
<apex:actionFunction name="receiveComplete" action="{!receiveComplete}" rerender="form"/>
<c:unzip name="unzip" oncomplete="if(more) receiveFile(path, data); else receiveComplete();">{!MetaDataRetrieveZip}</c:unzip>
</apex:outputPanel>
<apex:pageBlock id="files" title="Retrieved Metadata Files" rendered="{!NOT(ISNULL(MetadataFiles))}">
<apex:pageBlockSection columns="1">
<apex:repeat value="{!MetadataFiles}" var="file">
<apex:pageBlockSectionItem >
<apex:outputLabel value="{!file.fullName}"/>
<apex:outputLabel ><pre>{!file.content}</pre></apex:outputLabel>
</apex:pageBlockSectionItem>
</apex:repeat>
</apex:pageBlockSection>
</apex:pageBlock>
</apex:form>
</apex:page>