-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathnavdata.php
More file actions
155 lines (146 loc) · 7.64 KB
/
navdata.php
File metadata and controls
155 lines (146 loc) · 7.64 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
<?php
/**
* NavData AIRAC Changelog
* Displays diffs between AIRAC cycles with search, filtering, and ARTCC grouping.
* No DB needed - loads static JSON changelogs from assets/data/logs/.
*/
include("sessions/handler.php");
include("load/config.php");
include("load/i18n.php");
?>
<!DOCTYPE html>
<html lang="en">
<head>
<?php $page_title = __('navdata.page.title'); include("load/header.php"); ?>
<link rel="stylesheet" href="assets/css/navdata.css<?= _v('assets/css/navdata.css') ?>">
</head>
<body>
<?php include("load/nav.php"); ?>
<!-- Hero Section -->
<section class="perti-hero perti-hero--compact bg-position-center jarallax bg-dark text-light" data-jarallax data-speed="0.3">
<div class="container-fluid pt-2 pb-4 py-lg-5">
<img class="jarallax-img" src="assets/img/jumbotron/main.png" alt="" style="opacity: 50%; height: 100vh;">
<center>
<h2><?= __('navdata.page.title') ?></h2>
<div class="d-flex align-items-center justify-content-center">
<label class="mb-0 mr-2 small text-white-50"><?= __('navdata.cycle') ?>:</label>
<select id="cycle-selector" class="form-control form-control-sm" style="width:200px"></select>
</div>
</center>
</div>
</section>
<div class="container-fluid mt-3 px-4">
<!-- Summary Cards -->
<div id="summary-cards" class="row mb-3"></div>
<!-- Controls Bar -->
<div class="d-flex justify-content-between align-items-center mb-3">
<div class="d-flex align-items-center">
<!-- Search -->
<div class="input-group input-group-sm mr-3" style="width:280px">
<div class="input-group-prepend">
<span class="input-group-text"><i class="fas fa-search"></i></span>
</div>
<input type="text" id="search-input" class="form-control"
placeholder="<?= __('navdata.search.placeholder') ?>">
<div class="input-group-append">
<button id="search-clear" class="btn btn-outline-secondary" type="button" style="display:none">
<i class="fas fa-times"></i>
</button>
</div>
</div>
<!-- Action Filter -->
<div class="btn-group btn-group-sm mr-3" id="action-filter">
<button class="btn btn-outline-secondary active" data-action="all"><?= __('common.all') ?></button>
<button class="btn btn-outline-success" data-action="added"><?= __('navdata.action.added') ?></button>
<button class="btn btn-outline-warning" data-action="moved"><?= __('navdata.action.moved') ?></button>
<button class="btn btn-outline-info" data-action="changed"><?= __('navdata.action.changed') ?></button>
<button class="btn btn-outline-primary" data-action="superseded"><?= __('navdata.action.superseded') ?></button>
<button class="btn btn-outline-danger" data-action="removed"><?= __('navdata.action.removed') ?></button>
</div>
</div>
<div class="d-flex align-items-center">
<!-- Scope Filter -->
<div class="btn-group btn-group-sm mr-3" id="scope-filter">
<button class="btn btn-outline-secondary active" data-scope="all"><?= __('common.all') ?></button>
<button class="btn btn-outline-primary" data-scope="nasr"><?= __('navdata.scope.nasr') ?></button>
<button class="btn btn-outline-info" data-scope="intl"><?= __('navdata.scope.intl') ?></button>
</div>
<span id="result-count" class="text-muted small mr-3"></span>
</div>
</div>
<!-- Type Tabs -->
<ul class="nav nav-tabs mb-3" id="type-tabs">
<li class="nav-item">
<a class="nav-link active" href="#" data-type="all"><?= __('common.all') ?></a>
</li>
<li class="nav-item">
<a class="nav-link" href="#" data-type="fix"><?= __('navdata.type.fixes') ?></a>
</li>
<li class="nav-item">
<a class="nav-link" href="#" data-type="navaid"><?= __('navdata.type.navaids') ?></a>
</li>
<li class="nav-item">
<a class="nav-link" href="#" data-type="airway"><?= __('navdata.type.airways') ?></a>
</li>
<li class="nav-item">
<a class="nav-link" href="#" data-type="cdr"><?= __('navdata.type.cdrs') ?></a>
</li>
<li class="nav-item">
<a class="nav-link" href="#" data-type="dp"><?= __('navdata.type.dps') ?></a>
</li>
<li class="nav-item">
<a class="nav-link" href="#" data-type="star"><?= __('navdata.type.stars') ?></a>
</li>
<li class="nav-item">
<a class="nav-link" href="#" data-type="playbook"><?= __('navdata.type.playbook') ?></a>
</li>
</ul>
<!-- Changes Table -->
<div class="table-responsive">
<table class="table table-sm table-hover" id="changes-table">
<thead class="thead-dark">
<tr>
<th style="width:180px"><?= __('navdata.col.name') ?></th>
<th style="width:80px"><?= __('navdata.col.type') ?></th>
<th style="width:100px"><?= __('navdata.col.action') ?></th>
<th><?= __('navdata.col.detail') ?></th>
</tr>
</thead>
<tbody id="changes-body"></tbody>
</table>
</div>
<!-- Pagination Controls -->
<div class="d-flex align-items-center justify-content-between mt-2" id="pagination-controls" style="display:none">
<div class="d-flex align-items-center">
<span id="page-info" class="text-muted small mr-3"></span>
<select id="page-size" class="custom-select custom-select-sm" style="width:auto">
<option value="50">50</option>
<option value="100" selected>100</option>
<option value="250">250</option>
<option value="0"><?= __('navdata.pagination.all') ?></option>
</select>
<span class="text-muted small ml-2"><?= __('navdata.pagination.perPage') ?></span>
</div>
<div class="btn-group btn-group-sm">
<button class="btn btn-outline-secondary" id="page-prev" disabled>« <?= __('navdata.pagination.prev') ?></button>
<button class="btn btn-outline-secondary" id="page-next"><?= __('navdata.pagination.next') ?> »</button>
</div>
</div>
<div id="empty-state" class="text-center py-5" style="display:none">
<i class="fas fa-inbox fa-3x text-muted mb-3 d-block"></i>
<p class="text-muted" id="empty-message"></p>
</div>
<div id="loading-state" class="text-center py-5">
<i class="fas fa-spinner fa-spin fa-2x text-muted"></i>
</div>
<!-- Statistics Footer -->
<div id="stats-panel" class="card mt-4 mb-4" style="display:none">
<div class="card-body py-2">
<div class="row text-center small text-muted" id="stats-row"></div>
</div>
</div>
</div>
<script src="assets/js/navdata.js<?= _v('assets/js/navdata.js') ?>"></script>
<?php include("load/footer.php"); ?>
</body>
</html>