2020-10-11 21:30:11 +00:00
|
|
|
{% extends "layout.html" %}
|
|
|
|
|
|
|
|
{% block body_header_additional %}
|
|
|
|
<link rel="stylesheet" href="{{ url_for('static', filename='css/base.css')}}">
|
2021-01-25 07:15:46 +00:00
|
|
|
<link rel="stylesheet" href="{{ url_for('static', filename='css/overrides.css')}}">
|
2020-10-11 21:30:11 +00:00
|
|
|
<link rel="stylesheet" href="{{ url_for('static', filename='css/main.css')}}">
|
|
|
|
|
|
|
|
<link rel="stylesheet" href="{{ url_for('static', filename='css/bootstrap/bootstrap-table.min.css')}}">
|
|
|
|
{% endblock body_header_additional%}
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-12-21 19:02:34 +00:00
|
|
|
{% block body_content %}
|
2020-10-11 21:30:11 +00:00
|
|
|
<div class="row sticky-top">
|
|
|
|
<div class="col">
|
|
|
|
<!-- Server messages -->
|
|
|
|
<div class="row">
|
|
|
|
<div id="page-alert-zone" class="col">
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<!-- Controls -->
|
|
|
|
<div class="row">
|
|
|
|
<div class="col text-center justify-content-center">
|
|
|
|
|
|
|
|
<div class="input-group input-group-sm justify-content-center">
|
|
|
|
<button title="Other Options..." class="btn btn-secondary btn-sm"
|
|
|
|
data-toggle="modal" data-target="#options-modal">⚙</button>
|
|
|
|
<button title="Refresh..." id="refresh-btn" class="btn btn-sm btn-secondary" hash="{{dHash}}">↻</button>
|
|
|
|
<button title="Back..." id="back-btn" class="btn btn-sm btn-secondary" hash="{{ddHash}}">⇐</button>
|
|
|
|
|
|
|
|
<input id="search-files-field" type="text" class="form-control"
|
|
|
|
aria-label="Search..." placeholder="Search..." style="max-width: 260px">
|
|
|
|
<div class="input-group-prepend">
|
|
|
|
<!-- <button title="Clears search..." id="clear-search-btn" class="btn btn-sm btn-secondary">X</button> -->
|
|
|
|
<span id="clear-search-btn" class="input-group-text" title="Clears search..." >X</span>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<button title="File viewer..." class="btn btn-secondary btn-sm"
|
|
|
|
data-toggle="modal" data-target="#file-view-modal">🖼</button>
|
2021-01-25 07:15:46 +00:00
|
|
|
{% if oidc_loggedin() %}
|
2020-10-25 19:59:15 +00:00
|
|
|
<a href="/logout">
|
|
|
|
<button title="Logout..." class="btn btn-danger btn-sm">
|
|
|
|
Logout
|
|
|
|
</button>
|
|
|
|
</a>
|
|
|
|
{% else %}
|
|
|
|
<a href="/login">
|
|
|
|
<button title="Login..." class="btn btn-success btn-sm">
|
|
|
|
Login
|
|
|
|
</button>
|
|
|
|
</a>
|
|
|
|
{% endif %}
|
2020-10-11 21:30:11 +00:00
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<br/>
|
|
|
|
<div class="row text-center justify-content-center">
|
|
|
|
<div class="col-auto">
|
|
|
|
<button class="btn btn-sm btn-secondary" data-toggle="modal"
|
|
|
|
data-target="#favorites-modal">Faves List ↕</button>
|
|
|
|
<button id="tggl-faves-btn" class="btn btn-sm btn-secondary" title="Add/Delete from favorites..." >☆</button>
|
|
|
|
<button id="lock-folders-btn" class="btn btn-sm btn-secondary" title="Lock unlocked folders..." >🔒</button>
|
|
|
|
<button id="scroll-files-to-top-btn" class="btn btn-sm btn-secondary" title="Lock unlocked folders..." >Scroll Files To Top</button>
|
|
|
|
</div>
|
|
|
|
<div class="col-auto">
|
|
|
|
<h3 id="path" ></h3>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="row">
|
|
|
|
<div class="col">
|
2020-12-21 19:02:34 +00:00
|
|
|
<ul id="file-grid" class="scroller">
|
2020-10-11 21:30:11 +00:00
|
|
|
</ul>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<!-- Favorites modal -->
|
|
|
|
<div class="modal fade" id="favorites-modal" tabindex="-1" role="dialog">
|
|
|
|
<div class="modal-dialog" role="document">
|
|
|
|
<div class="modal-content">
|
|
|
|
<div class="modal-header">
|
|
|
|
<h3>Favorites:</h3>
|
|
|
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
|
|
|
<span aria-hidden="true">×</span>
|
|
|
|
</button>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="modal-body">
|
|
|
|
<div class="row">
|
|
|
|
<div class="col scroller" style="max-height: 30em; overflow: auto;">
|
|
|
|
<ul id="faves-list">
|
|
|
|
</ul>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="modal-footer">
|
|
|
|
<button type="button" data-dismiss="modal" class="btn btn-danger btn-sm">Close</button>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<!-- File viewer modal -->
|
|
|
|
<div class="modal fade" id="file-view-modal" tabindex="-1" role="dialog">
|
|
|
|
<div class="modal-dialog modal-xl" role="document">
|
|
|
|
<div class="modal-content">
|
|
|
|
<div class="modal-header">
|
|
|
|
<h3>File Viewer:</h3>
|
2021-01-25 07:15:46 +00:00
|
|
|
<button type="button" onclick="pauseVideo()" class="close" data-dismiss="modal" aria-label="Close">
|
2020-10-11 21:30:11 +00:00
|
|
|
<span aria-hidden="true">×</span>
|
|
|
|
</button>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="modal-body text-center justify-content-center">
|
|
|
|
<div class="row">
|
2021-01-25 07:15:46 +00:00
|
|
|
<div class="col scroller" style="max-height: 70vh; overflow: auto;">
|
2020-10-11 21:30:11 +00:00
|
|
|
<!-- For video -->
|
2021-01-25 07:15:46 +00:00
|
|
|
<div id="video-container">
|
2020-12-21 19:02:34 +00:00
|
|
|
<video id="video-viewer"
|
2021-01-25 07:15:46 +00:00
|
|
|
loop
|
2020-12-21 19:02:34 +00:00
|
|
|
src=""
|
|
|
|
autoplay=""
|
2021-01-25 07:15:46 +00:00
|
|
|
volume="0.75"
|
|
|
|
poster="{{ url_for('static', filename='imgs/icons/loading.gif')}}"
|
|
|
|
onmousemove="showControls()">
|
2020-12-21 19:02:34 +00:00
|
|
|
</video>
|
2021-01-25 07:15:46 +00:00
|
|
|
|
|
|
|
<div id="video-controls">
|
|
|
|
<div class="row pl-5 pr-5">
|
|
|
|
<div class="col-md-8">
|
|
|
|
<input id="seek-slider" class="form-control-range" type="range" min="0" value="0" max="100" step="1"/>
|
|
|
|
</div>
|
|
|
|
<div class="col-md-3">
|
|
|
|
<span id="videoCurrentTime"></span>
|
|
|
|
/
|
|
|
|
<span id="videoDuration"></span>
|
|
|
|
</div>
|
|
|
|
<div class="col-md-1">
|
|
|
|
<span id="volumeIcon" onclick="toggleVolumeControl()">🔈</span>
|
|
|
|
<input id="volume-slider" class="form-control-range volume-control-positioner" style="display: none;"
|
|
|
|
type="range" orient="vertical" min="0.0" max="1.0" value="0.75" step="0.05" />
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
2020-12-21 19:02:34 +00:00
|
|
|
</div>
|
|
|
|
|
2020-10-11 21:30:11 +00:00
|
|
|
|
|
|
|
<!-- For image -->
|
|
|
|
<img id="image-viewer"
|
2021-01-25 07:15:46 +00:00
|
|
|
style="width: inherit; height: auto; display: none;"
|
2020-10-11 21:30:11 +00:00
|
|
|
src="" alt="" />
|
|
|
|
|
|
|
|
<!-- For pdf -->
|
|
|
|
<iframe id="pdf-viewer"
|
|
|
|
src=""
|
|
|
|
width="720" height="460"
|
|
|
|
style="display: none;"
|
|
|
|
allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture"
|
|
|
|
allowfullscreen="allowfullscreen"
|
|
|
|
mozallowfullscreen="mozallowfullscreen"
|
|
|
|
msallowfullscreen="msallowfullscreen"
|
|
|
|
oallowfullscreen="oallowfullscreen"
|
|
|
|
webkitallowfullscreen="webkitallowfullscreen">
|
|
|
|
</iframe>
|
|
|
|
|
|
|
|
<!-- For text -->
|
|
|
|
<pre id="text-viewer"
|
2021-01-25 07:15:46 +00:00
|
|
|
style="width: inherit; height: auto; display: none;">
|
2020-10-11 21:30:11 +00:00
|
|
|
</pre>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="modal-footer">
|
2021-01-25 07:15:46 +00:00
|
|
|
<button onclick="pauseVideo()" type="button" data-dismiss="modal" class="btn btn-danger btn-sm">Close</button>
|
2020-10-11 21:30:11 +00:00
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<!-- Other Options modal -->
|
|
|
|
<div class="modal fade" id="options-modal" tabindex="-1" role="dialog">
|
|
|
|
<div class="modal-dialog modal-xl" role="document">
|
|
|
|
<div class="modal-content">
|
|
|
|
<div class="modal-header">
|
|
|
|
<h3>Settings:</h3>
|
|
|
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
|
|
|
<span aria-hidden="true">×</span>
|
|
|
|
</button>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="modal-body">
|
|
|
|
<div class="row">
|
|
|
|
<div class="col scroller" style="max-height: 30em; overflow: auto;">
|
|
|
|
|
|
|
|
<!-- <center>
|
|
|
|
<form>
|
|
|
|
<input class="ulFile" type="file" title="files To Upload" name="filesToUpload[]" data-multiple-caption="{count} files selected" multiple />
|
|
|
|
<input type="button" onclick="uploadFiles()" name="UploadFiles" title="Upload File(s)" value="Upload File(s)" />
|
|
|
|
<input type="reset" title="Clear" id="CLEARBTTN" value="Clear" style="display:none;">
|
|
|
|
<input type="text" id="DIRPATHUL" name="DIRPATHUL" value="">
|
|
|
|
</form>
|
|
|
|
<br/>
|
|
|
|
<input type="text" id="NewItem" value=""/>
|
|
|
|
<input type="button" value="New Dir" onclick="createItem('dir')"/>
|
|
|
|
<input type="button" value="New File" onclick="createItem('file')"/>
|
|
|
|
<input type="button" value="Show Server Messages" onclick="tgglElmView('serverMsgView')"/>
|
|
|
|
<br/>
|
|
|
|
<input id="MergeType" type="checkbox" onchange="getDir('./')" />
|
|
|
|
<label for="MergeType">Show seassons in same list.</label>
|
|
|
|
</center> -->
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="modal-footer">
|
|
|
|
<button type="button" data-dismiss="modal" class="btn btn-danger btn-sm">Close</button>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!-- Templates -->
|
|
|
|
<template id="dirTemplate">
|
|
|
|
<li class="dir-style" tabindex="1" style="background-image: url('')" hash="">
|
|
|
|
<input class="dir-title" type="text" value="" readonly="true" />
|
|
|
|
</li>
|
|
|
|
</template>
|
|
|
|
<template id="vidTemplate">
|
|
|
|
<li class="video-style" tabindex="1" style="background-image: url('')" hash="">
|
|
|
|
<span class="card-popout-btn" title="Open In Local Program">∽</span>
|
|
|
|
<input class="video-title" type="text" value="" readonly="true" />
|
|
|
|
</li>
|
|
|
|
</template>
|
|
|
|
<template id="imgTemplate">
|
|
|
|
<li class="image-style" tabindex="1" style="background-image: url('')" hash="">
|
|
|
|
</li>
|
|
|
|
</template>
|
|
|
|
<template id="filTemplate">
|
|
|
|
<li class="file-style" style="background-image: url('')" hash="">
|
|
|
|
<input class="file-title" type="text" value="" readonly="true" />
|
|
|
|
</li>
|
|
|
|
</template>
|
|
|
|
|
|
|
|
<!-- Background -->
|
2020-10-25 19:59:15 +00:00
|
|
|
<!-- <img id="bg" src="{{ url_for('static', filename='imgs/backgrounds/000.png')}}" /> -->
|
|
|
|
|
|
|
|
<video id="bg" src="{{ url_for('static', filename='imgs/backgrounds/particles.mp4')}}"
|
|
|
|
poster="{{ url_for('static', filename='imgs/backgrounds/000.png')}}"
|
|
|
|
autoplay loop>
|
|
|
|
</video>
|
|
|
|
|
2020-10-11 21:30:11 +00:00
|
|
|
|
|
|
|
{% block body_content_additional %}
|
|
|
|
{% endblock body_content_additional%}
|
|
|
|
{% endblock %}
|
|
|
|
|
|
|
|
|
|
|
|
{% block body_footer_additional %}
|
|
|
|
{% endblock body_footer_additional%}
|
|
|
|
|
|
|
|
|
|
|
|
{% block body_scripts_additional %}
|
|
|
|
<!-- Table scripts -->
|
|
|
|
<script src="{{ url_for('static', filename='js/libs/bootstrap/bootstrap-table.min.js')}}"></script>
|
|
|
|
|
|
|
|
<!-- Created scripts -->
|
|
|
|
<script src="{{ url_for('static', filename='js/libs/js.cookie.js')}}"></script>
|
|
|
|
<script src="{{ url_for('static', filename='js/favorites.js')}}"></script>
|
|
|
|
<script src="{{ url_for('static', filename='js/cookie-manager.js')}}"></script>
|
|
|
|
<script src="{{ url_for('static', filename='js/post-ajax.js')}}"></script>
|
|
|
|
<script src="{{ url_for('static', filename='js/ajax.js')}}"></script>
|
|
|
|
<script src="{{ url_for('static', filename='js/ui-logic.js')}}"></script>
|
|
|
|
<script src="{{ url_for('static', filename='js/events.js')}}"></script>
|
2021-01-25 07:15:46 +00:00
|
|
|
<script src="{{ url_for('static', filename='js/video-events.js')}}"></script>
|
2020-10-11 21:30:11 +00:00
|
|
|
{% endblock body_scripts_additional %}
|