|
|
|
@@ -11,67 +11,71 @@
|
|
|
|
|
<div class="divider"></div>
|
|
|
|
|
<div class="row">
|
|
|
|
|
<div class="col s12">
|
|
|
|
|
<h5>Options</h5>
|
|
|
|
|
<h5>Options</h5>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="row">
|
|
|
|
|
<div class="col s12 l4 m-4">
|
|
|
|
|
<div class="card">
|
|
|
|
|
<div class="card">
|
|
|
|
|
<div class="card-content">
|
|
|
|
|
<span class="card-title">Direct actions</span>
|
|
|
|
|
<form class="mt-4" method="post" onsubmit="return confirm('Are you sure?');">
|
|
|
|
|
<form class="mt-4" method="post" onsubmit="return confirm('Are you sure?');">
|
|
|
|
|
<button class="btn mb-2 red" type="submit" name="task" value="empty-queue">Empty Queue</button>
|
|
|
|
|
<br>
|
|
|
|
|
<span class="supporting-text">Removes all queued ids</span>
|
|
|
|
|
</form>
|
|
|
|
|
<form class="mt-4" method="post" onsubmit="return confirm('Are you sure?');">
|
|
|
|
|
<br>
|
|
|
|
|
<span class="supporting-text">Removes all queued ids</span>
|
|
|
|
|
</form>
|
|
|
|
|
<form class="mt-4" method="post" onsubmit="return confirm('Are you sure?');">
|
|
|
|
|
<button class="btn mb-2" type="submit" name="task" value="clean-retired">Clean retired</button>
|
|
|
|
|
<br>
|
|
|
|
|
<span class="supporting-text">Prunes all deactivated endpoints, but keeps last 3 days</span>
|
|
|
|
|
</form>
|
|
|
|
|
|
|
|
|
|
<br>
|
|
|
|
|
<span class="supporting-text">Prunes all deactivated endpoints, but keeps last 3 days</span>
|
|
|
|
|
</form>
|
|
|
|
|
<form class="mt-4" method="post" onsubmit="return confirm('Are you sure?');">
|
|
|
|
|
<button class="btn mb-2 green" type="submit" name="task" value="queue-run-once">Download oldest queued</button>
|
|
|
|
|
<br>
|
|
|
|
|
<span class="supporting-text">Will download the oldest queued video ID</span>
|
|
|
|
|
</form>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="col s12 l4 m-4">
|
|
|
|
|
<div class="card">
|
|
|
|
|
<div class="card">
|
|
|
|
|
<div class="card-content">
|
|
|
|
|
<span class="card-title">Create new endpoint</span>
|
|
|
|
|
<form method="post">
|
|
|
|
|
<div class="row">
|
|
|
|
|
<form method="post">
|
|
|
|
|
<div class="row">
|
|
|
|
|
<div class="col s12 input-field">
|
|
|
|
|
<input placeholder="Custom endpoint" name="value" type="text" class="validate" minlength="12">
|
|
|
|
|
<span class="supporting-text">Leaving this empty will create a random secure string</span>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="col s12 input-field">
|
|
|
|
|
<span class="supporting-text">Leaving this empty will create a random secure string</span>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="col s12 input-field">
|
|
|
|
|
<input placeholder="Description" name="description" type="text" class="validate" minlength="8" maxlength="64" required>
|
|
|
|
|
<span class="supporting-text">Description for the endpoint for better administration</span>
|
|
|
|
|
</div>
|
|
|
|
|
<span class="supporting-text">Description for the endpoint for better administration</span>
|
|
|
|
|
</div>
|
|
|
|
|
<button class="btn mt-4" type="submit" name="task" value="add-endpoint">Create</button>
|
|
|
|
|
</div>
|
|
|
|
|
</form>
|
|
|
|
|
</div>
|
|
|
|
|
</form>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="col s12 l4 m-4">
|
|
|
|
|
<div class="card">
|
|
|
|
|
<div class="card">
|
|
|
|
|
<div class="card-content">
|
|
|
|
|
<span class="card-title">Queue manually</span>
|
|
|
|
|
<form method="post">
|
|
|
|
|
<div class="row">
|
|
|
|
|
<form method="post">
|
|
|
|
|
<div class="row">
|
|
|
|
|
<div class="col s12 input-field">
|
|
|
|
|
<input placeholder="Youtube video ID" name="value" type="text" class="validate" minlength="11" maxlength="11" required>
|
|
|
|
|
<span class="supporting-text">Must be a valid Youtube video ID</span>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="col s12 mt-5 input-field">
|
|
|
|
|
<span class="supporting-text">Must be a valid Youtube video ID</span>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="col s12 mt-5 input-field">
|
|
|
|
|
<div class="switch">
|
|
|
|
|
<label>Queue<input type="checkbox" value="direct" name="direct"><span class="lever"></span>Direct</label>
|
|
|
|
|
<span class="supporting-text">Queue up or start directly</span>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<label>Queue<input type="checkbox" value="direct" name="direct"><span class="lever"></span>Direct</label>
|
|
|
|
|
<span class="supporting-text">Queue up or start directly</span>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<button class="btn mt-4" type="submit" name="task" value="manual-queue">Queue</button>
|
|
|
|
|
</div>
|
|
|
|
|
</form>
|
|
|
|
|
</div>
|
|
|
|
|
</form>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
@@ -79,10 +83,10 @@
|
|
|
|
|
<div class="divider"></div>
|
|
|
|
|
<div class="row">
|
|
|
|
|
<div class="col s6 l9">
|
|
|
|
|
<h5>Registered endpoints</h5>
|
|
|
|
|
<h5>Registered endpoints</h5>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="col s6 l3 m-4 input-field">
|
|
|
|
|
<input id="filter_query" type="text">
|
|
|
|
|
<input id="filter_query" type="text">
|
|
|
|
|
<label for="filter_query">Filter results</label>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
@@ -91,30 +95,30 @@
|
|
|
|
|
<table class="striped highlight responsive-table">
|
|
|
|
|
<thead>
|
|
|
|
|
<tr>
|
|
|
|
|
<th>Actions</th>
|
|
|
|
|
<th>id</th>
|
|
|
|
|
<th>description</th>
|
|
|
|
|
<th>status</th>
|
|
|
|
|
<th>created_time</th>
|
|
|
|
|
<th>retired_time</th>
|
|
|
|
|
<th>Actions</th>
|
|
|
|
|
<th>id</th>
|
|
|
|
|
<th>description</th>
|
|
|
|
|
<th>status</th>
|
|
|
|
|
<th>created_time</th>
|
|
|
|
|
<th>retired_time</th>
|
|
|
|
|
</tr>
|
|
|
|
|
</thead>
|
|
|
|
|
<tbody>
|
|
|
|
|
{% for endpoint in endpoints %}
|
|
|
|
|
{% for endpoint in endpoints %}
|
|
|
|
|
<tr class="filterable">
|
|
|
|
|
<td>
|
|
|
|
|
<form method="post">
|
|
|
|
|
<input type="text" value="{{ endpoint.get('id') }}" name="value" hidden>
|
|
|
|
|
<button class="btn-small waves-effect waves-light" type="submit" name="task" value="retire" title="Retire endpoint" {% if endpoint.get('status') != 'active' %}disabled{% endif %}>🗑️</button>
|
|
|
|
|
</form>
|
|
|
|
|
</td>
|
|
|
|
|
<td>{{ endpoint.get('id') }}</td>
|
|
|
|
|
<td>{{ endpoint.get('description') }}</td>
|
|
|
|
|
<td>{{ endpoint.get('status') }}</td>
|
|
|
|
|
<td>{{ endpoint.get('created_time') }}</td>
|
|
|
|
|
<td>{{ endpoint.get('retired_time') }}</td>
|
|
|
|
|
<td>
|
|
|
|
|
<form method="post">
|
|
|
|
|
<input type="text" value="{{ endpoint.get('id') }}" name="value" hidden>
|
|
|
|
|
<button class="btn-small waves-effect waves-light" type="submit" name="task" value="retire" title="Retire endpoint" {% if endpoint.get('status') != 'active' %}disabled{% endif %}>🗑️</button>
|
|
|
|
|
</form>
|
|
|
|
|
</td>
|
|
|
|
|
<td>{{ endpoint.get('id') }}</td>
|
|
|
|
|
<td>{{ endpoint.get('description') }}</td>
|
|
|
|
|
<td>{{ endpoint.get('status') }}</td>
|
|
|
|
|
<td>{{ endpoint.get('created_time') }}</td>
|
|
|
|
|
<td>{{ endpoint.get('retired_time') }}</td>
|
|
|
|
|
</tr>
|
|
|
|
|
{% endfor %}
|
|
|
|
|
{% endfor %}
|
|
|
|
|
</tbody>
|
|
|
|
|
</table>
|
|
|
|
|
</div>
|
|
|
|
@@ -122,10 +126,10 @@
|
|
|
|
|
<div class="divider"></div>
|
|
|
|
|
<div class="row">
|
|
|
|
|
<div class="col s6 l9">
|
|
|
|
|
<h5>Queued ID's</h5>
|
|
|
|
|
<h5>Queued ID's</h5>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="col s6 l3 m-4 input-field">
|
|
|
|
|
<input id="filter_query" type="text">
|
|
|
|
|
<input id="filter_query" type="text">
|
|
|
|
|
<label for="filter_query">Filter results</label>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
@@ -134,28 +138,33 @@
|
|
|
|
|
<table class="striped highlight responsive-table">
|
|
|
|
|
<thead>
|
|
|
|
|
<tr>
|
|
|
|
|
<th>Actions</th>
|
|
|
|
|
<th>id</th>
|
|
|
|
|
<th>endpoint</th>
|
|
|
|
|
<th>status</th>
|
|
|
|
|
<th>created_time</th>
|
|
|
|
|
<th>Actions</th>
|
|
|
|
|
<th>id</th>
|
|
|
|
|
<th>endpoint</th>
|
|
|
|
|
<th>status</th>
|
|
|
|
|
<th>created_time</th>
|
|
|
|
|
</tr>
|
|
|
|
|
</thead>
|
|
|
|
|
<tbody>
|
|
|
|
|
{% for id in queue %}
|
|
|
|
|
{% for id in queue %}
|
|
|
|
|
<tr class="filterable">
|
|
|
|
|
<td>
|
|
|
|
|
<form method="post">
|
|
|
|
|
<input type="text" value="{{ id.get('id') }}" name="value" hidden>
|
|
|
|
|
<button class="btn-small waves-effect waves-light" type="submit" name="task" value="delete-queue" title="Delete from queue" {% if id.get('status') != 'queued' %}disabled{% endif %}>🗑️</button>
|
|
|
|
|
</form>
|
|
|
|
|
</td>
|
|
|
|
|
<td>{{ id.get('id') }}</td>
|
|
|
|
|
<td>{{ id.get('endpoint') }}</td>
|
|
|
|
|
<td>{{ id.get('status') }}</td>
|
|
|
|
|
<td>{{ id.get('created_time') }}</td>
|
|
|
|
|
<td>
|
|
|
|
|
<form method="post">
|
|
|
|
|
<input type="text" value="{{ id.get('id') }}" name="value" hidden>
|
|
|
|
|
<button class="btn-small waves-effect waves-light" type="submit" name="task" value="delete-queue" title="Delete from queue" {% if id.get('status') != 'queued' %}disabled{% endif %}>🗑️</button>
|
|
|
|
|
</form>
|
|
|
|
|
<form method="post">
|
|
|
|
|
<input type="text" value="{{ id.get('id') }}" name="value" hidden>
|
|
|
|
|
<button class="btn-small waves-effect waves-light" type="submit" name="task" value="run-download" title="Run download task" disabled}>⏩</button>
|
|
|
|
|
<!-- This function fill not work until the download queue and video download process is rewritten -->
|
|
|
|
|
</form>
|
|
|
|
|
</td>
|
|
|
|
|
<td>{{ id.get('id') }}</td>
|
|
|
|
|
<td>{{ id.get('endpoint') }}</td>
|
|
|
|
|
<td>{{ id.get('status') }}</td>
|
|
|
|
|
<td>{{ id.get('created_time') }}</td>
|
|
|
|
|
</tr>
|
|
|
|
|
{% endfor %}
|
|
|
|
|
{% endfor %}
|
|
|
|
|
</tbody>
|
|
|
|
|
</table>
|
|
|
|
|
</div>
|
|
|
|
|