Files
photoassistant/templates/base.html

147 lines
8.4 KiB
HTML

{% if not InDBox %}
<!DOCTYPE html>
<html lang="en">
<head>
<title>Photo Assistant</title>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="Photo Assistant">
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="{{ url_for( 'internal', filename='upstream/bootstrap-5.0.2-dist/css/bootstrap.min.css' ) }}">
<link rel="stylesheet" href="{{ url_for( 'internal', filename='upstream/jquery.contextMenu.css' ) }}">
<!-- code to get bootstrap to work -->
<script src="{{ url_for( 'internal', filename='upstream/jquery-3.6.0.min.js')}}"></script>
<script src="{{ url_for( 'internal', filename='upstream/bootstrap-5.0.2-dist/js/bootstrap.bundle.min.js')}}"></script>
<script src="{{ url_for( 'internal', filename='upstream/jquery.contextMenu.min.js')}}"></script>
<script src="{{ url_for( 'internal', filename='upstream/jquery.ui.position.min.js')}}"></script>
<script src="{{ url_for( 'internal', filename='js/jobs.js')}}"></script>
<link rel="shortcut icon" href="{{ url_for('internal', filename='favicon.ico') }}">
{% import "bootstrap/wtf.html" as wtf %}
<style>
.highlight { box-shadow: 0 0 7px 4px #5bc0de }
.sm-txt { font-size: 0.7rem }
</style>
<script>
function HandleSearch()
{
st=encodeURIComponent( $('#search_term').val() )
if( st != '' ) {
document.location.href='/search/'+st
}
}
</script>
</head>
<body>
<!-- Modal Dialog Box, jquery used to show / set content -->
<div id="dbox" class="modal fade" tabindex="-1" role="dialog">
<div class="modal-dialog mw-100 w-75">
<div class="modal-content">
<div class="modal-header">
<h5 id="dbox-title" class="modal-title"></h5>
<button type="button" class="close" data-bs-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<div class="container-fluid">
<div id="dbox-content" class="row">
</div>
</div>
</div>
</div>
</div>
</div>
<nav class="navbar navbar-expand-lg navbar-light bg-light justify-content-between py-1">
<div class="container-fluid">
{% if config.ENV == "production" %}
<a class="navbar-brand" href="/">Photo Assistant</a>
{% else %}
<a class="navbar-brand bg-secondary text-white px-2 py-0" style="border-radius:4px" href="/">PA (DEV)</a>
{% endif %}
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNavAltMarkup" aria-controls="navbarNavAltMarkup" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNavAltMarkup">
<div class="navbar-nav col-12">
<div class="nav-item dropdown">
<a class="nav-item dropdown nav-link dropdown-toggle" href="#" id="FileMenu" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Files</a>
<div class="dropdown-menu" aria-labelledby="FileMenu">
<a class="dropdown-item" href="{{url_for('files_ip')}}">View Photos to Import</a>
<a class="dropdown-item" href="{{url_for('file_list_ip')}}">View Details of Photos to Import</a>
<a class="dropdown-item" href="{{url_for('files_sp')}}">View Stored Photos</a>
<a class="dropdown-item" href="{{url_for('files_rbp')}}">View Recycle Bin</a>
</div>
</div class="nav-item dropdown">
<div class="nav-item dropdown">
<a class="nav-item dropdown nav-link dropdown-toggle" href="#" id="PersonMenu" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Person</a>
<div class="dropdown-menu" aria-labelledby="PersonMenu">
<a class="dropdown-item" href="{{url_for('new_person')}}">Create Person</a>
<a class="dropdown-item" href="{{url_for('persons')}}">Show People</a>
<a class="dropdown-item" href="{{url_for('ai_stats')}}">View stats of matches</a>
<a class="dropdown-item" href="{{url_for('run_ai_on_import')}}">Match in import path(s) </a>
<a class="dropdown-item" href="{{url_for('run_ai_on_storage')}}">Match in storage path(s) </a>
{% if config.ENV != "production" %}
<a class="dropdown-item" href="{{url_for('unmatched_faces')}}">Show unmatched</a>
{% endif %}
</div>
</div class="nav-item dropdown">
<div class="nav-item dropdown">
<a class="nav-item dropdown nav-link dropdown-toggle" href="#" id="AdminMenu" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Admin</a>
<div class="dropdown-menu" aria-labelledby="AdminMenu">
<a class="dropdown-item" href="{{url_for('settings')}}">Edit Settings</a>
<a class="dropdown-item" href="{{url_for('scan_ip')}}">Scan now (for new files)</a>
<a class="dropdown-item" href="{{url_for('scan_sp')}}">Scan Storage Path</a>
{% if config.ENV != "production" %}
<a class="dropdown-item" href="{{url_for('force_scan')}}">Force Scan (delete data & rebuild)</a>
{% endif %}
<a class="dropdown-item" href="{{url_for('force_clear')}}">Clear Messages (Force)</a>
<a class="dropdown-item" href="{{url_for('wake_up')}}">Force wake the job manager</a>
</div class="dropdow-menu">
</div class="nav-item dropdown">
<div class="d-flex nav-link flex-grow-1 justify-content-center p-0">
<a href="{{url_for('jobs')}}"}}<span class="navbar-text">Active Jobs:
<span id="num_active_jobs" class="badge badge-pill bg-danger invisible">0</></span>
</a>
</div class="nav-item">
<form class="d-flex col ms-5" method="POST" onSubmit="HandleSearch(); return false">
<input id="search_term" class="form-control" type="search" placeholder="by file, date (YYYMMDD) or tag" aria-label="Search" name="search_term">
<button class="btn btn-outline-success" onClick="HandleSearch()" type="button">Search</button>
</form>
<div class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdownMenuLink" role="button" data-bs-toggle="dropdown" aria-expanded="false">
<svg width="20" height="20" fill="currentColor"><use xlink:href="{{url_for('internal', filename='icons.svg')}}#user"/></svg>
</a>
<div class="dropdown-menu dropdown-menu-end" aria-labelledby="navbarDropdownMenuLink">
<div><a class="dropdown-item" href="{{url_for('states')}}">{{current_user.dn|Username}}</a></div>
<div><a class="dropdown-item" href="{{url_for('about')}}">About</a></div>
<div><a class="dropdown-item" href="{{url_for('logout')}}">Logout</a></div>
</div>
</div>
</div class="navbar-nav">
</div class="collapse navbar-collapse">
</div class="container-fluid">
</nav>
{% endif %} {# not InDBox #}
{% block main_content %}
{% endblock main_content %}
{% if not InDBox %}
{%block script_content %}{% endblock script_content %}
<div id="status_container" class="position-fixed top-0 end-0 p-0 my-5" style="z-index: 9999"> </div>
<!-- CheckForJobs(), will see if there are any messages/jobs and keep doing this until there are 0 more and then stop -->
<script>
$(document).ready(function() { CheckForJobs() } )
</script>
</body>
</html>
{% endif %}