73 lines
2.8 KiB
HTML
73 lines
2.8 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>Multi-Project Progress Monitor</title>
|
|
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
|
|
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
|
|
<link rel="stylesheet" href="/static/css/style.css">
|
|
</head>
|
|
<body>
|
|
<div class="container">
|
|
<!-- Project Selector -->
|
|
{% include 'components/project_selector.html' %}
|
|
|
|
<!-- Navigation between views (remains the same) -->
|
|
{% include 'components/navigation_tabs.html' %}
|
|
|
|
<!-- Dynamic Content Area -->
|
|
<div id="project-content">
|
|
<!-- SCADA Content Section -->
|
|
{% include 'views/scada_content.html' %}
|
|
|
|
<!-- Drawing Content Section (Initially Hidden) -->
|
|
{% include 'views/drawings_content.html' %}
|
|
|
|
<!-- Conflicts Content Section (Initially Hidden) -->
|
|
{% include 'views/conflicts_content.html' %}
|
|
|
|
</div> <!-- End project-content -->
|
|
|
|
</div> <!-- End container -->
|
|
|
|
<!-- Status Bar -->
|
|
{% include 'components/status_bar.html' %}
|
|
|
|
<!-- Bootstrap Modal for Details (remains the same structure, content filled by JS) -->
|
|
{% include 'modals/details_modal.html' %}
|
|
<!-- End Bootstrap Modal for Details -->
|
|
|
|
<!-- NEW: Add Project Modal -->
|
|
{% include 'modals/add_project_modal.html' %}
|
|
<!-- End Add Project Modal -->
|
|
|
|
<!-- NEW: Manage Project Files Modal -->
|
|
{% include 'modals/manage_files_modal.html' %}
|
|
<!-- End Manage Project Files Modal -->
|
|
|
|
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
|
|
<!-- Pass initial data to JavaScript -->
|
|
<script>
|
|
// Render Jinja data into intermediate JS variables
|
|
const initialProjectsJson = {{ projects | tojson | safe }};
|
|
const initialStatusJson = {{ initial_statuses | tojson | safe }};
|
|
|
|
// Embed initial data directly into the page for faster initial load
|
|
const initialServerData = {
|
|
projects: initialProjectsJson,
|
|
status: initialStatusJson
|
|
// Note: Full progress data is not embedded initially, fetched via SSE
|
|
};
|
|
</script>
|
|
<!-- Refactored JavaScript Modules -->
|
|
<script src="/static/js/state.js"></script>
|
|
<script src="/static/js/api.js"></script>
|
|
<script src="/static/js/chartManager.js"></script>
|
|
<script src="/static/js/modalManager.js"></script>
|
|
<script src="/static/js/ui.js"></script>
|
|
<script src="/static/js/sse.js"></script>
|
|
<script src="/static/js/script.js"></script> <!-- Core logic/coordinators -->
|
|
<script src="/static/js/events.js"></script> <!-- Event listeners (must be last) -->
|
|
</body>
|
|
</html> |