<?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.
  
-->
<html xmlns:wicket="http://wicket.apache.org">
	<wicket:panel>
		<div>
	        <span wicket:id="uploadFeedback"/>
	     </div>
		<!-- wicket:id="form"  -->
		<form wicket:id="backupUpload" class="adminForm adminBackupForm">
			<fieldset>
				<legend><wicket:ommessage key="1066" /></legend>
				<div class="formelement">
				    <div class="info-icon" /><span style="font-style: italic;"><wicket:ommessage key="1065" /></span>
	            </div>
	            <div class="formelement">
                   <label><wicket:ommessage key="1537" /></label> <input type="checkbox" wicket:id="includeFilesInBackup" />
	            </div>
	            <div class="formelement">
	               <input class="uploadFileField" wicket:id="fileInput" type="file"/>
	            </div>
	            <div class="formelement">
	               <span wicket:id="progress">[[upload progressbar]]</span>
	            </div>
	            <div class="formelement">
		            <!-- Perform Download -->
					<input type="submit" wicket:ommessage="value:1536" wicket:id="upload" />
					<!-- Perform Upload -->
					<input type="submit" wicket:ommessage="value:1066" wicket:id="download" />
	            </div>
	            <div class="formelement">
		            <!-- Max upload size -->
		            <wicket:ommessage key="1491" /> <span wicket:id="MaxUploadSize" /><span>MB</span>
	            </div>
	            <div class="formelement">
		            <!-- Backup CLI import information -->
	               <div class="info-icon" /><span style="font-style: italic;"><wicket:ommessage key="1505" /></span>
	            </div>
	        </fieldset>
		</form>
	</wicket:panel>
</html>
