{% extends "base.html" %}
{% block content %}

<details>
    <summary class="heading">
        {{ _("Current RaSCSI Configuration") }}
    </summary>
    <ul>
        <li>{{ _("Save and load device configurations, stored as json files in <tt>%(config_dir)s</tt>", config_dir=CFG_DIR) }}</li>
        <li>{{ _("To have a particular device configuration load when RaSCSI starts, save it as <em>default</em>.") }}</li>
    </ul>
</details>

<p>
<form action="/config/load" method="post">
    <label for="config_load_name">{{ _("File name") }}</label>
    <select name="name" id="config_load_name" required="" width="14">
        {% if config_files %}
        {% for config in config_files|sort %}
        <option value="{{ config }}">
            {{ config }}
        </option>
        {% endfor %}
        {% else %}
        <option disabled>
        {{ _("No saved configurations") }}
        </option>
        {% endif %}
    </select>
    <input name="load" type="submit" value="{{ _("Load") }}" onclick="return confirm('{{ _("Detach all current device and Load configuration?") }}')">
    <input name="delete" type="submit" value="{{ _("Delete") }}" onclick="return confirm('{{ _("Delete configuration file?") }}')">
</form>
</p>

<p>
<form action="/config/save" method="post">
    <label for="config_save_name">{{ _("File name") }}</label>
    <input name="name" id="config_save_name" value="default" size="20">
    .{{ CONFIG_FILE_SUFFIX }}
    <input type="submit" value="{{ _("Save") }}">
</form>
</p>

<table border="black" cellpadding="3" summary="List of attached devices">
    <tbody>
        <tr>
            <th scope="col">{{ _("ID") }}</th>
            {% if units %}
            <th scope="col">{{ _("LUN") }}</th>
            {% endif %}
            <th scope="col">{{ _("Device") }}</th>
            <th scope="col">{{ _("Parameters") }}</th>
            <th scope="col">{{ _("Product") }}</th>
            <th scope="col">{{ _("Actions") }}</th>
        </tr>
        {% for device in devices | sort(attribute='id') %}
        <tr>
            {% if device["id"] not in reserved_scsi_ids %}
            <td align="center">{{ device.id }}</td>
            {% if units %}
            <td align="center">{{ device.unit }}</td>
            {% endif %}
            <td align="center">{{ device.device_name }}</td>
            <td>
                {% if "No Media" in device.status %}
                <form action="/scsi/attach" method="post">
                    <input name="scsi_id" type="hidden" value="{{ device.id }}">
                    <input name="unit" type="hidden" value="{{ device.unit }}">
                    <input name="type" type="hidden" value="{{ device.device_type }}">
                    <input name="file_size" type="hidden" value="{{ device.size }}">
                    <label for="device_list_file_name_{{ device.id }}_{{ device.unit }}">{{ _("File name") }}</label>
                    <select type="select" name="file_name" id="device_list_file_name_{{ device.id }}_{{ device.unit }}">
                    {% for f in files|sort(attribute='name') %}
                    {% if device.device_type == "SCCD" %}
                    {% if f["name"].lower().endswith(env['cd_suffixes']) %}
                    <option value="{{ f["name"] }}">{{ f["name"].replace(env["image_dir"], '') }}</option>
                    {% endif %}
                    {% elif device.device_type == "SCRM" %}
                    {% if f["name"].lower().endswith(env['rm_suffixes']) %}
                    <option value="{{ f["name"] }}">{{ f["name"].replace(env["image_dir"], '') }}</option>
                    {% endif %}
                    {% elif device.device_type == "SCMO" %}
                    {% if f["name"].lower().endswith(env['mo_suffixes']) %}
                    <option value="{{ f["name"] }}">{{ f["name"].replace(env["image_dir"], '') }}</option>
                    {% endif %}
                    {% endif %}
                    {% endfor %}
                    </select>
                    <input type="submit" value="{{ _("Attach") }}">
                </form>
            {% else %}
            {% if device.params %}
            {% for key in device.params %}
            {% if key == "interface" %}
            ({{device.params[key]}})
            {% elif key == "timeout" %}
            ({{key}}:{{device.params[key]}})
            {% else %}
            {{device.params[key]}}
            {% endif %}
            {% endfor %}
            {% elif device.file %}
            {{ device.file }}
            {% endif %}
            {% endif %}
            </td>
            <td align="center">
                {% if device.vendor != "RaSCSI" %}
                {{ device.vendor }}
                {% endif %}
                {{ device.product }}
                {% if device.vendor != "RaSCSI" %}
                {{ device.revision }}
                {% endif %}
            </td>
            <td align="center">
                {% if device.id in scsi_ids["occupied_ids"] %}
                {% if device.device_type in REMOVABLE_DEVICE_TYPES and "No Media" not in device.status %}
                <form action="/scsi/eject" method="post" onsubmit="return confirm('{{ _("Eject Disk?  WARNING: On Mac OS, eject the Disk in the Finder instead!") }}')">
                    <input name="scsi_id" type="hidden" value="{{ device.id }}">
                    <input name="unit" type="hidden" value="{{ device.unit }}">
                    <input type="submit" value="{{ _("Eject") }}">
                </form>
                {% endif %}
                <form action="/scsi/detach" method="post" onsubmit="return confirm('{{ _("Detach Device?") }}')">
                    <input name="scsi_id" type="hidden" value="{{ device.id }}">
                    <input name="unit" type="hidden" value="{{ device.unit }}">
                    <input type="submit" value="{{ _("Detach") }}">
                </form>
                {% else %}
                <form action="/scsi/reserve" method="post" onsubmit="var memo = prompt('{{ _("Enter a memo for this reservation") }}'); if (memo === null) event.preventDefault(); document.getElementById('memo_{{ device.id }}').value = memo;">
                    <input name="scsi_id" type="hidden" value="{{ device.id }}">
                    <input name="memo" id="memo_{{ device.id }}" type="hidden" value="">
                    <input type="submit" value="{{ _("Reserve") }}">
                </form>
                {% endif %}
            </td>
            {% else %}
            <td class="inactive">{{ device.id }}</td>
            {% if units %}
            <td class="inactive"></td>
            {% endif %}
            <td class="inactive">{{ _("Reserved ID") }}</td>
            <td class="inactive">{{ RESERVATIONS[device.id] }}</td>
            <td class="inactive"></td>
            <td class="inactive">
                <form action="/scsi/release" method="post">
                    <input name="scsi_id" type="hidden" value="{{ device.id }}">
                    <input type="submit" value="{{ _("Release") }}">
                </form>
            </td>
            {% endif %}
        </tr>
        {% endfor %}
    </tbody>
</table>

<p>
    <form action="/scsi/detach_all" method="post" onsubmit="return confirm('{{ _("Detach all SCSI Devices?") }}')">
        <input type="submit" value="{{ _("Detach All Devices") }}">
    </form>
    <form action="/scsi/info" method="post">
        <input type="submit" value="{{ _("Show Device Info") }}">
    </form>
</p>

<hr/>

<details>
    <summary class="heading">
        {{ _("Image File Management") }}
    </summary>
    <ul>
        <li>{{ _("Manage image files in the active RaSCSI image directory: <tt>%(directory)s</tt> with a scan depth of %(scan_depth)s.", directory=env["image_dir"], scan_depth=scan_depth) }}</li>
        <li>{{ _("Select a valid SCSI ID and <a href=\"%(url)s\" target=\"_blank\">LUN</a> to attach to. Unless you know what you're doing, always use LUN 0.", url="https://en.wikipedia.org/wiki/Logical_unit_number") }}
        </li>
        <li>
            {{ _("Recognized image file types:") }}
            {% set comma = joiner(", ") %}
            {% for extension in valid_image_suffixes %}{{ comma() }}.{{ extension}}{% endfor %}
        </li>
        <li>
            {{ _("Recognized archive file types:") }}
            {% set comma = joiner(", ") %}
            {% for extension in ARCHIVE_FILE_SUFFIXES %}{{ comma() }}.{{ extension}}{% endfor %}
        </li>
    </ul>
</details>

<table border="black" cellpadding="3" summary="List of files in the image directory">
    <tbody>
        <tr>
            <th scope="col">{{ _("File") }}</th>
            <th scope="col">{{ _("Size") }}</th>
            <th scope="col">{{ _("Actions") }}</th>
        </tr>
        {% for file in files|sort(attribute='name') %}
        <tr>
            {% if file["prop"] %}
            <td>
                <details>
                    <summary>
                        {{ file["name"] }}
                    </summary>
                    <ul class="inline_list">
                    {% for key in file["prop"] %}
                        <li>{{ key }}: {{ file['prop'][key] }}</li>
                    {% endfor %}
                    <form action="/files/download" method="post">
                        <input name="file" type="hidden" value="{{ CFG_DIR }}/{{ file['name'].replace(env['image_dir'], '') }}.{{ PROPERTIES_SUFFIX }}">
                        <input type="submit" value="{{ _("Properties File") }} &#8595;">
                    </form>
                    </ul>
                </details>
            </td>
            {% elif file["archive_contents"] %}
            <td>
                <details>
                    <summary>
                        {{ file["name"] }}
                    </summary>
                    <ul class="inline_list">
                        {% for member in file["archive_contents"] %}
                            {% if not member["is_properties_file"] %}
                                <li>
                                    {% if member["related_properties_file"] %}
                                        <details>
                                            <summary>
                                                <label>{{ member["path"] }}</label>
                                                <form action="/files/extract_image" method="post">
                                                    <input name="archive_file" type="hidden" value="{{ file['name'] }}">
                                                    <input name="archive_members" type="hidden" value="{{ member["path"] }}|{{ member["related_properties_file"] }}">
                                                    <input type="submit" value="{{ _("Extract") }}" onclick="processNotify('{{ _("Extracting a single file...") }}')">
                                                </form>
                                            </summary>
                                            <ul class="inline_list">
                                                <li>{{ member["related_properties_file"] }}</li>
                                            </ul>
                                        </details>
                                    {% else %}
                                        <label>{{ member["path"] }}</label>
                                        <form action="/files/extract_image" method="post">
                                            <input name="archive_file" type="hidden" value="{{ file["name"] }}">
                                            <input name="archive_members" type="hidden" value="{{ member["path"] }}">
                                            <input type="submit" value="{{ _("Extract") }}" onclick="processNotify('{{ _("Extracting a single file...") }}')">
                                        </form>
                                    {% endif %}
                                </li>
                            {% endif %}
                        {% endfor %}
                    </ul>
                </details>
            </td>
            {% else %}
            <td>{{ file["name"] }}</td>
            {% endif %}
            <td align="center">
                <form action="/files/download" method="post">
                    <input name="file" type="hidden" value="{{ file['name'] }}">
                    <input type="submit" value="{{ file['size_mb'] }} {{ _("MiB") }} &#8595;">
                </form>
            </td>
            <td>
                {% if file["name"] in attached_images %}
                    {{ _("In use") }}
                {% else %}
                {% if file["archive_contents"] %}
                <form action="/files/extract_image" method="post">
                    <input name="archive_file" type="hidden" value="{{ file['name'] }}">
                    {% set pipe = joiner("|") %}
                    <input name="archive_members" type="hidden" value="{% for member in file["archive_contents"] %}{{ pipe() }}{{ member["path"] }}{% endfor %}">
                    <input type="submit" value="{{ _("Extract All") }}" onclick="processNotify('{{ _("Extracting all files...") }}')">
                </form>
                {% else %}
                <form action="/scsi/attach" method="post">
                    <input name="file_name" type="hidden" value="{{ file['name'] }}">
                    <input name="file_size" type="hidden" value="{{ file['size'] }}">
                    <label for="image_list_scsi_id_{{ file["name"] }}">{{ _("ID") }}</label>
                    <select name="scsi_id" id="image_list_scsi_id_{{ file["name"] }}">
                        {% for id in scsi_ids["valid_ids"] %}
                        <option name="id" value="{{id}}"{% if id == scsi_ids["recommended_id"] %} selected{% endif %}>
                            {{ id }}
                        </option>
                        {% endfor %}
                    </select>
                    <label for="image_list_unit_{{ file["name"] }}">{{ _("LUN") }}</label>
                    <input class="lun" name="unit" id="image_list_unit_{{ file["name"] }}" type="number" value="0" min="0" max="31" step="1" size="3">
                    {% if file["detected_type"] != "UNDEFINED" %}
                        <input name="type" type="hidden" value="{{ file['detected_type'] }}">
                        {{ file['detected_type_name'] }}
                    {% else %}
                        <label for="image_list_type_{{ file["name"] }}">{{ _("Type") }}</label>
                        <select name="type" id="image_list_type_{{ file["name"] }}">
                        <option selected disabled value="">
                        {{ _("Unknown") }}
                        </option>
                        {% for key, value in device_types.items() %}
                        {% if key in DISK_DEVICE_TYPES %}
                        <option value="{{ key }}">
                            {{ value["name"] }}
                        </option>
                        {% endif %}
                        {% endfor %}
                        </select>
                    {% endif %}
                    <input type="submit" value="{{ _("Attach") }}">
                {% endif %}
                </form>
                <form action="/files/rename" method="post" onsubmit="var new_file_name = prompt('{{ _("Enter new file name for: %(file_name)s", file_name=file["name"]) }}', '{{ file['name'] }}'); if (new_file_name === null) event.preventDefault(); document.getElementById('new_file_name_{{ loop.index }}').value = new_file_name;">
                    <input name="file_name" type="hidden" value="{{ file['name'] }}">
                    <input name="new_file_name" id="new_file_name_{{ loop.index }}" type="hidden" value="">
                    <input type="submit" value="{{ _("Rename") }}">
                </form>
                <form action="/files/copy" method="post" onsubmit="var copy_file_name = prompt('{{ _("Save copy of %(file_name)s as:", file_name=file["name"]) }}', '{{ file['name'] }}'); if (copy_file_name === null) event.preventDefault(); document.getElementById('copy_file_name_{{ loop.index }}').value = copy_file_name;">
                    <input name="file_name" type="hidden" value="{{ file['name'] }}">
                    <input name="copy_file_name" id="copy_file_name_{{ loop.index }}" type="hidden" value="">
                    <input type="submit" value="{{ _("Copy") }}">
                </form>
                <form action="/files/delete" method="post" onsubmit="return confirm('{{ _("Delete file: %(file_name)s?", file_name=file["name"]) }}')">
                    <input name="file_name" type="hidden" value="{{ file['name'] }}">
                    <input type="submit" value="{{ _("Delete") }}">
                </form>
                {% endif %}
                {% if not file["archive_contents"] %}
                <form action="/files/diskinfo" method="post">
                    <input name="file_name" type="hidden" value="{{ file['name'] }}">
                    <input type="submit" value="{{ _("?") }}">
                </form>
                {% endif %}
            </td>
        </tr>
        {% endfor %}
    </tbody>
</table>
<p><small>{{ _("%(disk_space)s MiB disk space remaining on the Pi", disk_space=env["free_disk_space"]) }}</small></p>

<hr/>
<details>
    <summary class="heading">
        {{ _("Attach Peripheral Device") }}
    </summary>
    <ul>
        </li>
        {% if bridge_configured %}
        <li>{{ _("The <tt>rascsi_bridge</tt> network bridge is active and ready to be used by an emulated network adapter!") }}</li>
        {% else %}
        <li>{{ _("Please configure the <tt>rascsi_bridge</tt> network bridge before attaching an emulated network adapter!") }}</li>
        {% endif %}
        <li>{{ _("To browse the modern web, install a vintage web proxy such as <a href=\"%(url)s\" target=\"_blank\">Macproxy</a>.", url="https://github.com/akuker/RASCSI/wiki/Vintage-Web-Proxy#macproxy") }}</li>
        </li>
        <li>{{ _("Read more about <a href=\"%(url)s\" target=\"_blank\">supported device types</a> on the wiki.", url="https://github.com/akuker/RASCSI/wiki/Supported-Device-Types") }}
        </li>
    </ul>
</details>
<table border="black" cellpadding="3" summary="List of peripheral devices">
    <tr>
        <th scope="col">{{ _("Device") }}</th>
        <th scope="col">{{ _("Key") }}</th>
        <th scope="col">{{ _("Parameters and Actions") }}</th>
    </tr>
    {% for type in REMOVABLE_DEVICE_TYPES + PERIPHERAL_DEVICE_TYPES %}
    <tr>
        <td>
            <div>{{ device_types[type]["name"] }}</div>
        </td>
        <td>
            <div>{{ type }}</div>
        </td>
        <td>
            <form action="/scsi/attach_device" method="post">
                <input name="type" type="hidden" value="{{ type }}">
                {% for key, value in device_types[type]["params"] | dictsort %}
                <label for="param_{{ type }}_{{ key }}">{{ key }}:</label>
                {% if value.isnumeric() %}
                <input name="param_{{ key }}" id="param_{{ type }}_{{ key }}" type="number" value="{{ value }}">
                {% elif key == "interface" %}
                <select name="param_{{ key }}" id="param_{{ type }}_{{ key }}">
                {% for if in netinfo["ifs"] %}
                    <option value="{{ if }}">
                        {{ if }}
                    </option>
                {% endfor %}
                </select>
                {% else %}
                <input name="param_{{ key }}" id="param_{{ type }}_{{ key }}" type="text" size="{{ value|length }}" placeholder="{{ value }}">
                {% endif %}
                {% endfor %}
                {% if type in REMOVABLE_DEVICE_TYPES %}
                <label for="{{ type }}_drive_name">{{ _("Masquerade as:") }}</label>
                <select name="drive_name" id="{{ type }}_drive_name">
                <option value="">
                {{ _("None") }}
                </option>
                {% if type == "SCCD" %}
                {% for drive in drive_properties["cd_conf"] | sort(attribute='name') %}
                <option value="{{ drive.name }}">
                {{ drive.name }}
                </option>
                {% endfor %}
                {% endif %}
                {% if type == "SCRM" %}
                {% for drive in drive_properties["rm_conf"] | sort(attribute='name') %}
                <option value="{{ drive.name }}">
                {{ drive.name }}
                </option>
                {% endfor %}
                {% endif %}
                {% if type == "SCMO" %}
                {% for drive in drive_properties["mo_conf"] | sort(attribute='name') %}
                <option value="{{ drive.name }}">
                {{ drive.name }}
                </option>
                {% endfor %}
                {% endif %}
                </select>
                {% endif %}
                <label for="{{ type }}_scsi_id">{{ _("ID") }}</label>
                <select name="scsi_id" id="{{ type }}_scsi_id">
                {% for id in scsi_ids["valid_ids"] %}
                    <option value="{{ id }}"{% if id == scsi_ids["recommended_id"] %} selected{% endif %}>
                        {{ id }}
                    </option>
                {% endfor %}
                </select>
                <label for="{{ type }}_unit">{{ _("LUN") }}</label>
                <input class="lun" name="unit" id="{{ type }}_unit" type="number" value="0" min="0" max="31" step="1" size="3">
                <input type="submit" value="{{ _("Attach") }}">
            </form>
        </td>
    </tr>
    {% endfor %}
</table>

<hr/>
<details>
    <summary class="heading">
        {{ _("Upload File from Local Computer") }}
    </summary>
    <ul>
        <li>{{ _("The largest file size accepted in this form is %(max_file_size)s MiB. Use other file transfer means for larger files.", max_file_size=max_file_size) }}</li>
        <li>{{ _("File uploads will progress only if you stay on this page. If you navigate away before the transfer is completed, you will end up with an incomplete file.") }}</li>
        <li>{{ _("Install <a href=\"%(url)s\" target=\"_blank\">Netatalk</a> to use the AFP File Server.", url="https://github.com/akuker/RASCSI/wiki/AFP-File-Sharing") }}</li>
    </ul>
</details>

<form name="dropper" action="/files/upload" method="post" class="dropzone dz-clickable" enctype="multipart/form-data" id="dropper">
    <p>
    <label for="upload_destination">{{ _("Target directory:") }}</label>
    <select name="destination" id="upload_destination">
        <option value="images">Images - {{ env["image_dir"] }}</option>
        <option value="afp">AppleShare - {{ AFP_DIR }}</option>
    </select>
    </p>
</form>

<script type="application/javascript">
    Dropzone.options.dropper = {
        paramName: 'file',
        chunking: true,
        forceChunking: true,
        url: '/files/upload',
        maxFilesize: {{ max_file_size }}, // MiB
        chunkSize: 1000000, // bytes
        dictDefaultMessage: "{{ _("Drop files here to upload") }}",
        dictFallbackMessage: "{{ _("Your browser does not support drag'n'drop file uploads.") }}",
        dictFallbackText: "{{ _("Please use the fallback form below to upload your files like in the olden days.") }}",
        dictFileTooBig: "{{ _("File is too big: {{filesize}}MiB. Max filesize: {{maxFilesize}}MiB.") }}",
        dictInvalidFileType: "{{ _("You can't upload files of this type.") }}",
        dictResponseError: "{{ _("Server responded with code: {{statusCode}}") }}",
        dictCancelUpload:" {{ _("Cancel upload") }}",
        dictUploadCanceled: "{{ _("Upload canceled.") }}",
        dictCancelUploadConfirmation: "{{ _("Are you sure you want to cancel this upload?") }}",
        dictRemoveFile: "{{ _("Remove file") }}",
        dictMaxFilesExceeded: "{{ _("You can not upload any more files.") }}",
        dictFileSizeUnits: {
            tb: "{{ _("TiB") }}",
            gb: "{{ _("GiB") }}",
            mb: "{{ _("MiB") }}",
            kb: "{{ _("KiB") }}",
            b: "{{ _("B") }}"
        }
    }
</script>

<hr/>

<details>
    <summary class="heading">
        {{ _("Download File from the Web") }}
    </summary>
    <ul>
        <li>{{ _("Install <a href=\"%(url)s\" target=\"_blank\">Netatalk</a> to use the AFP File Server.", url="https://github.com/akuker/RASCSI/wiki/AFP-File-Sharing") }}</li>
    </ul>
</details>

<form action="/files/download_url" method="post">
    <label for="download_destination">{{ _("Target directory:") }}</label>
    <select name="destination" id="download_destination">
        <option value="images">Images - {{ env["image_dir"] }}</option>
        <option value="afp">AppleShare - {{ AFP_DIR }}</option>
    </select>
    <label for="download_url">{{ _("URL:") }}</label>
    <input name="url" id="download_url" required="" type="url">
    <input type="submit" value="{{ _("Download") }}" onclick="processNotify('{{ _("Downloading File...") }}')">
</form>

<hr/>

<details>
    <summary class="heading">
        {{ _("Download File and Create CD-ROM image") }}
    </summary>
    <ul>
        <li>{{ _("Create an ISO file system CD-ROM image with the downloaded file, and mount it on the given SCSI ID.") }}</li>
        <li>{{ _("HFS is for Mac OS, Joliet for Windows, and Rock Ridge for POSIX.") }}</li>
        <li>{{ _("If the downloaded file is a zip archive, we will attempt to unzip it and store the resulting files.") }}</li>
    </ul>
</details>

<form action="/files/download_to_iso" method="post">
    <label for="iso_url">{{ _("URL:") }}</label>
    <input name="url" id="iso_url" required="" type="url">
    <label for="iso_type">{{ _("Type:") }}</label>
    <select name="type" id="iso_type">
        <option value="HFS">
            HFS
        </option>
        <option value="ISO-9660 Level 1">
            ISO-9660 Level 1
        </option>
        <option value="ISO-9660 Level 2">
            ISO-9660 Level 2
        </option>
        <option value="ISO-9660 Level 3">
            ISO-9660 Level 3
        </option>
        <option value="Joliet">
            Joliet
        </option>
        <option value="Rock Ridge">
            Rock Ridge
        </option>
    </select>
    <label for="iso_scsi_id">{{ _("ID") }}</label>
    <select name="scsi_id" id="iso_scsi_id">
        {% for id in scsi_ids["valid_ids"] %}
        <option value="{{ id }}"{% if id == scsi_ids["recommended_id"] %} selected{% endif %}>
            {{ id }}
        </option>
        {% endfor %}
    </select>
    <input type="submit" value="{{ _("Download and Mount CD-ROM image") }}" onclick="processNotify('{{ _("Downloading File and generating CD-ROM image...") }}')">
</form>

<hr/>

<details>
    <summary class="heading">
        {{ _("Create Empty Disk Image File") }}
    </summary>
    <ul>
        <li>{{ _("Please refer to <a href=\"%(url)s\" target=\"_blank\">wiki documentation</a> to learn more about the supported image file types.", url="https://github.com/akuker/RASCSI/wiki/Supported-Device-Types#image-types") }}</li>
    </ul>
</details>

<form action="/files/create" method="post">
    <label for="image_create_file_name">{{ _("File Name:") }}</label>
    <input name="file_name" id="image_create_file_name" required="" type="text">
    <label for="image_create_type">{{ _("Type:") }}</label>
    <select name="type" id="image_create_type">
        {% for key, value in image_suffixes_to_create.items() %}
        <option value="{{ key }}">
        {{ value }} [.{{ key }}]
        </option>
        {% endfor %}
    </select>
    <label for="image_create_size">{{ _("Size:") }}</label>
    <input name="size" id="image_create_size" type="number" placeholder="{{ _("MiB") }}" min="1" max="262144" required>
    <label for="image_create_drive_name">{{ _("Masquerade as:") }}</label>
    <select name="drive_name" id="image_create_drive_name">
    <option value="">
    {{ _("None") }}
    </option>
    {% for drive in drive_properties["hd_conf"] | sort(attribute='name') %}
    <option value="{{ drive.name }}">
    {{ drive.name }}
    </option>
    {% endfor %}
    </select>
    <input type="submit" value="{{ _("Create") }}">
</form>

<p><a href="/drive/list">{{ _("Create a named disk image that mimics real-life drives") }}</a></p>

<hr/>

<details>
    <summary class="heading">
        {{ _("Logging") }}
    </summary>
    <ul>
        <li>{{ _("The current dropdown selection indicates the active log level.") }}</li>
    </ul>
</details>

<div>
<form action="/logs/show" method="post">
    <label for="log_lines">{{ _("Log Lines:") }}</label>
    <input name="lines" id="log_lines" type="number" value="200" min="0" max="99999" step="100">
    <label for="log_scope">{{ _("Scope:") }}</label>
    <select name="scope" id="log_scope">
        <option value="">
            {{ _("All logs") }}
        </option>
        <option value="rascsi">
            rascsi
        </option>
        <option value="rascsi-web">
            rascsi-web
        </option>
        <option value="rascsi-oled">
            rascsi-oled
        </option>
        <option value="rascsi-ctrlboard">
            rascsi-ctrlboard
        </option>
    </select>
    <input type="submit" value="{{ _("Show Logs") }}">
</form>
</div>

<div>
<form action="/logs/level" method="post">
    <label for="log_level">{{ _("Log Level:") }}</label>
    <select name="level" id="log_level">
    {% for level in log_levels %}
        <option value="{{ level }}"{% if level == current_log_level %} selected{% endif %}>
            {{ level }}
        </option>
    {% endfor %}
    </select>
    <input type="submit" value="{{ _("Set Log Level") }}">
</form>
</div>

<hr/>

<details>
    <summary class="heading">
        {{ _("Language") }}
    </summary>
    <ul>
        <li>{{ _("Change the Web Interface language.") }}</li>
    </ul>
</details>

<form action="/language" method="post">
    <label for="locale">{{ _("Language:") }}</label>
    <select name="locale" id="locale">
    {% for locale in locales %}
        <option value="{{ locale.language }}">
        {{ locale.language }} - {{ locale.display_name }}
        </option>
    {% endfor %}
    </select>
    <input type="submit" value="{{ _("Change Language") }}">
</form>

<hr/>

<details>
    <summary class="heading">
        {{ _("Raspberry Pi Operations") }}
    </summary>
    <ul>
        <li>{{ _("IMPORTANT: Always shut down the Pi before turning off the power. Failing to do so may lead to data loss.") }}</li>
    </ul>
</details>

<form action="/pi/reboot" method="post" onclick="if (confirm('{{ _("Reboot the Raspberry Pi?") }}')) shutdownNotify('{{ _("Rebooting the Raspberry Pi...") }}'); else event.preventDefault();">
    <input type="submit" value="{{ _("Reboot Raspberry Pi") }}">
</form>
<form action="/pi/shutdown" method="post" onclick="if (confirm('{{ _("Shut down the Raspberry Pi?") }}')) shutdownNotify('{{ _("Shutting down the Raspberry Pi...") }}'); else event.preventDefault();">
    <input type="submit" value="{{ _("Shut Down Raspberry Pi") }}">
</form>

<hr/>

<a href="/sys/manpage?app=rascsi"><p>{{ _("Read the RaSCSI Manual") }}</p></a>

{% endblock content %}
