<!DOCTYPE html>
<!--
  ~ 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>

    <head>
        <title>PORTER</title>
        <link href="css/style.css" rel="stylesheet" type="text/css" media="all" />
        <script type="text/javascript" src="js/jquery-1.11.1.min.js"></script>
        <script type="text/javascript" src="js/upload.js"></script>
    </head>

    <body>
    <div class="header">
        <h2>Upload</h2>
    </div>
    <div class="section">
        <form id="upload_form" method="POST">
            <p>
                File Name: <input type="file" name="fileName"/>
            </p>
            <p>
                <input type="button" value="Upload" onclick="uploadAction()">
            </p>
        </form>
    </div>

    <div class="header">
        <h2>Delete file</h2>
    </div>
    <div class="section">
        <form id="delete_form" method="DELETE">
            <p>
                File ID: <input id="fileID" type="text"/>
            </p>
            <p>
                <input type="button" value="Delete" onclick="deleteAction()">
            </p>
        </form>
    </div>
    <div class="footer">
        <p id="error" hidden="true" class="error"/>
    </div>
    </body>

</html>