158 lines
5.6 KiB
HTML

{% extends "layout.html" %}
{% set active_page = "directory" %}
{% block title %}An excellent title{% endblock title %}
{% block body %}
<script>
function swapToForm(elem, fields, formAction, inputName) {
var form = document.createElement("form");
form.setAttribute("action", formAction);
for (var i in fields) {
var hiddenInput = document.createElement("input");
hiddenInput.setAttribute("type", "hidden");
hiddenInput.setAttribute("value", fields[i].value);
hiddenInput.setAttribute("name", fields[i].name);
form.appendChild(hiddenInput);
}
var input = document.createElement("input");
input.setAttribute("class", "form-control");
input.setAttribute("type", "text");
input.setAttribute("name", inputName);
input.value = elem.innerHTML;
form.appendChild(input);
elem.parentNode.insertBefore(form, elem);
elem.remove();
input.focus();
input.addEventListener("focusout", function () {
form.submit();
});
return input;
}
function modifyVal(optId, key) {
swapToForm(document.getElementById("val-" + optId), [
{name: "id", value: optId},
{name: "key", value: key},
{name: "dir_id", value: {{ directory.id }}}
], "/directory/{{ directory.id }}/update_opt", "value");
}
function modifyDisplayName() {
swapToForm(document.getElementById("display-name"), [],
"/directory/{{ directory.id }}/update", "name");
}
function modifyPath() {
swapToForm(document.getElementById("path"), [],
"/directory/{{ directory.id }}/update", "path");
}
</script>
<div class="container">
<div class="card">
<div class="card-header">Summary</div>
<div class="card-body">
<table class="info-table">
<tr onclick="modifyDisplayName()">
<th style="width: 20%">Display name</th>
<td>
<pre id="display-name" title="Click to update">{{ directory.name }}</pre>
</td>
</tr>
<tr onclick="modifyPath()">
<th style="width: 20%">Path</th>
<td>
<pre id="path" title="Click to update">{{ directory.path }}</pre>
</td>
</tr>
<tr>
<th style="width: 20%">Enabled</th>
<td>
<form action="/directory/{{ directory.id }}/update" style="display: inline;">
<input type="hidden" name="enabled" value="{{ "0" if directory.enabled else "1" }}">
<button class="btn btn-sm {{ "btn-danger" if directory.enabled else "btn-success" }}">
<i class="far {{ "fa-check-square" if directory.enabled else "fa-square" }}"></i>
{{ "Disable" if directory.enabled else "Enable" }}
</button>
</form>
</td>
</tr>
</table>
</div>
</div>
<div class="card">
<div class="card-header">An excellent option list</div>
<div class="card-body">
<table class="info-table table-striped table-hover">
<thead>
<tr>
<th>Option</th>
<th>Value</th>
</tr>
</thead>
<tbody>
{% for option in directory.options %}
<tr>
<td style="width: 30%"><span>{{ option.key }}</span></td>
<td onclick="modifyVal({{ option.id }}, '{{ option.key }}')" title="Click to update"><span id="val-{{ option.id }}">{{ option.value }}</span></td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
<div class="card">
<div class="card-header">An excellent control panel</div>
<div class="card-body">
<div class="d-flex">
<div class="dropdown" style="margin-right: 1em;">
<button class="btn dropdown-toggle btn-primary" data-toggle="dropdown">Create a task</button>
<div class="dropdown-menu">
<a class="dropdown-item" href="#">Indexing task</a>
<a class="dropdown-item" href="#">Thumbnail generation task</a>
</div>
</div>
<div class="dropdown">
<button class="btn dropdown-toggle btn-danger" data-toggle="dropdown">Action</button>
<div class="dropdown-menu">
<a class="dropdown-item" href="/directory/{{ directory.id }}/del">Delete directory</a>
<a class="dropdown-item" href="#">Reset to default settings</a>
</div>
</div>
</div>
</div>
</div>
</div>
{% endblock body %}