Skip to content

Commit 0fe46ec

Browse files
committed
implement showing message automatically based on url params
1 parent bd3e75b commit 0fe46ec

File tree

8 files changed

+247
-228
lines changed

8 files changed

+247
-228
lines changed

favicon.ico

1.12 KB
Binary file not shown.

index.html

Lines changed: 127 additions & 124 deletions
Original file line numberDiff line numberDiff line change
@@ -1,140 +1,143 @@
11
<!DOCTYPE html>
22
<html lang="en">
3-
<head>
4-
<meta charset="utf-8" />
5-
<meta name="viewport" content="width=device-width, initial-scale=1" />
6-
<title>NAVADMIN Viewer</title>
73

8-
<!-- Native app functionality and links -->
9-
<link rel="manifest" href="manifest.json">
10-
<meta name="apple-itunes-app" content="app-id=1345135985">
11-
<meta property="og:description" content="NAVADMIN Viewer" />
12-
<meta property="og:image" content="assets/Icon1024.png" />
13-
<meta name="google-site-verification" content="6EKYmQgGQXMflnG4iUF-NLqeuMPwiE5pE4LrZL3H9UE" />
4+
<head>
5+
<meta charset="utf-8" />
6+
<meta name="viewport" content="width=device-width, initial-scale=1" />
7+
<title>NAVADMIN Viewer</title>
148

15-
<link href="css/style.css" rel="stylesheet" />
16-
<link href="css/bootstrap.min.css" rel="stylesheet" />
9+
<!-- Native app functionality and links -->
10+
<link rel="manifest" href="manifest.json">
11+
<meta name="apple-itunes-app" content="app-id=1345135985">
12+
<meta property="og:description" content="NAVADMIN Viewer" />
13+
<meta property="og:image" content="assets/Icon1024.png" />
14+
<meta name="google-site-verification" content="6EKYmQgGQXMflnG4iUF-NLqeuMPwiE5pE4LrZL3H9UE" />
15+
16+
<link href="css/style.css" rel="stylesheet" />
17+
<link href="css/bootstrap.min.css" rel="stylesheet" />
1718
</head>
19+
1820
<body>
19-
<nav class="navbar navbar-expand-lg navbar-light bg-light">
20-
<a class="navbar-brand" href="#">
21-
<img src="assets/navadmin_transparent_512.png" width="30" height="30" alt="">
22-
</a>
23-
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
21+
<nav class="navbar navbar-expand-lg navbar-light bg-light">
22+
<a class="navbar-brand" href="#">
23+
<img src="assets/navadmin_transparent_512.png" width="30" height="30" alt="">
24+
</a>
25+
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
2426
<span class="navbar-toggler-icon"></span>
2527
</button>
26-
<div class="collapse navbar-collapse" id="navbarNav">
27-
<ul class="navbar-nav">
28-
<li class="nav-item">
29-
<a class="nav-link active" href="#">Messages</a>
30-
</li>
31-
<li class="nav-item">
32-
<a class="nav-link" id="nav-app-link" href="https://apps.apple.com/us/app/navadmin-viewer/id1345135985">App</a>
33-
</li>
34-
<li class="nav-item">
35-
<a class="nav-link" href="mailto:support@ansonliu.com">Contact</a>
36-
</li>
37-
</ul>
38-
</div>
39-
40-
<div class="input-group">
41-
<div class="input-group-prepend">
42-
<button class="btn btn-outline-primary dropdown-toggle" id="msg-type-dropdown" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">N/A</button>
43-
<div class="dropdown-menu" id="msg-type-dropdown-menu">
44-
<!-- <a class="dropdown-item" href="#">NAVADMIN</a> -->
45-
</div>
46-
</div>
47-
<div class="input-group-prepend">
48-
<button class="btn btn-outline-secondary dropdown-toggle" id="msg-year-dropdown" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">N/A</button>
49-
<div class="dropdown-menu" id="msg-year-dropdown-menu">
50-
<!-- <a class="dropdown-item" href="#">Latest year</a> -->
51-
</div>
52-
</div>
53-
<div class="input-group-prepend">
54-
<button class="btn btn-outline-secondary dropdown-toggle disabled" id="msg-year-dropdown" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Title Only</button>
55-
<div class="dropdown-menu" id="msg-year-dropdown-menu">
56-
<!-- <a class="dropdown-item" href="#">title only</a> -->
57-
</div>
58-
</div>
59-
<input type="text" class="form-control" id="msg-search-input" aria-label="Search text input">
60-
</div>
61-
</nav>
62-
<div class="container-fluid" id="main-container">
63-
<div class="progress" id="loading-progress">
64-
<div class="progress-bar progress-bar-striped progress-bar-animated" role="progressbar" style="width: 100%">Retrieving data</div>
65-
</div>
66-
<div id="messages-list">
67-
<table class="table table-striped table-hover">
68-
<thead>
69-
<tr>
70-
<th scope="col">#</th>
71-
<th scope="col">Title</th>
72-
</tr>
73-
</thead>
74-
<tbody id= "msg-list-table-body">
75-
<tr>
76-
<th scope="row">XXX/YY</th>
77-
<td>N/A</td>
78-
</tr>
79-
</tbody>
80-
</table>
81-
</div>
82-
<footer class="pt-4 my-sm-5 pt-sm-5 border-top">
83-
<div class="row">
84-
<div class="col-12 col-sm">
85-
<img class="mb-2" src="assets/navadmin_transparent_512.png" alt="" width="30" height="30">
86-
<small class="d-block mb-3 text-muted">All original code is © 2020 Anson Liu</small>
87-
</div>
88-
<div class="col-6 col-sm">
89-
<h5>About</h5>
90-
<ul class="list-unstyled text-small">
91-
<li>
92-
<a class="text-muted" href="http://AnsonLiu.com">Anson Liu</a>
93-
</li>
94-
<li>
95-
<a class="text-muted" href="https://github.com/navadmin-viewer/navadmin-viewer.github.io">Code repository</a>
96-
</li>
97-
<li>
98-
<a class="text-muted" href="https://navadmin-viewer.github.io/privacy.html">Privacy Policy</a>
99-
</li>
100-
</ul>
101-
</div>
102-
<div class="col-12 col-sm">
103-
<h5>Disclaimer</h5>
104-
<ul class="list-unstyled text-small">
105-
<span class="text-muted">This program comes with no warranty nor is it an official Department of Defense product. All data is provided as is and the user is responsible for verifying any data with official sources.</span>
106-
</ul>
107-
</div>
108-
</div>
109-
</footer>
110-
<!-- Modal -->
111-
<div class="modal fade" id="msg-body-modal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLongTitle" aria-hidden="true">
112-
<div class="modal-dialog modal-lg" role="document">
113-
<div class="modal-content">
114-
<div class="modal-header">
115-
<h5 class="modal-title" id="exampleModalLongTitle"></h5>
116-
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
117-
<span aria-hidden="true">&times;</span>
118-
</button>
28+
<div class="collapse navbar-collapse" id="navbarNav">
29+
<ul class="navbar-nav">
30+
<li class="nav-item">
31+
<a class="nav-link active" href="#">Messages</a>
32+
</li>
33+
<li class="nav-item">
34+
<a class="nav-link" id="nav-app-link" href="https://apps.apple.com/us/app/navadmin-viewer/id1345135985">App</a>
35+
</li>
36+
<li class="nav-item">
37+
<a class="nav-link" href="mailto:support@ansonliu.com">Contact</a>
38+
</li>
39+
</ul>
40+
</div>
41+
42+
<div class="input-group">
43+
<div class="input-group-prepend">
44+
<button class="btn btn-outline-primary dropdown-toggle" id="msg-type-dropdown" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">N/A</button>
45+
<div class="dropdown-menu" id="msg-type-dropdown-menu">
46+
<!-- <a class="dropdown-item" href="#">NAVADMIN</a> -->
47+
</div>
11948
</div>
120-
<div class="modal-body">
49+
<div class="input-group-prepend">
50+
<button class="btn btn-outline-secondary dropdown-toggle" id="msg-year-dropdown" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">N/A</button>
51+
<div class="dropdown-menu" id="msg-year-dropdown-menu">
52+
<!-- <a class="dropdown-item" href="#">Latest year</a> -->
53+
</div>
12154
</div>
122-
<div class="modal-footer">
123-
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
124-
<button type="button" class="btn btn-info modal-share-link">Share</button>
55+
<div class="input-group-prepend">
56+
<button class="btn btn-outline-secondary dropdown-toggle disabled" id="msg-year-dropdown" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Title Only</button>
57+
<div class="dropdown-menu" id="msg-year-dropdown-menu">
58+
<!-- <a class="dropdown-item" href="#">title only</a> -->
59+
</div>
60+
</div>
61+
<input type="text" class="form-control" id="msg-search-input" aria-label="Search text input">
62+
</div>
63+
</nav>
64+
<div class="container-fluid" id="main-container">
65+
<div class="progress" id="loading-progress">
66+
<div class="progress-bar progress-bar-striped progress-bar-animated" role="progressbar" style="width: 100%">Retrieving data</div>
67+
</div>
68+
<div id="messages-list">
69+
<table class="table table-striped table-hover">
70+
<thead>
71+
<tr>
72+
<th scope="col">#</th>
73+
<th scope="col">Title</th>
74+
</tr>
75+
</thead>
76+
<tbody id="msg-list-table-body">
77+
<tr>
78+
<th scope="row">XXX/YY</th>
79+
<td>N/A</td>
80+
</tr>
81+
</tbody>
82+
</table>
83+
</div>
84+
<footer class="pt-4 my-sm-5 pt-sm-5 border-top">
85+
<div class="row">
86+
<div class="col-12 col-sm">
87+
<img class="mb-2" src="assets/navadmin_transparent_512.png" alt="" width="30" height="30">
88+
<small class="d-block mb-3 text-muted">All original code is © 2020 Anson Liu</small>
89+
</div>
90+
<div class="col-6 col-sm">
91+
<h5>About</h5>
92+
<ul class="list-unstyled text-small">
93+
<li>
94+
<a class="text-muted" href="http://AnsonLiu.com">Anson Liu</a>
95+
</li>
96+
<li>
97+
<a class="text-muted" href="https://github.com/navadmin-viewer/navadmin-viewer.github.io">Code repository</a>
98+
</li>
99+
<li>
100+
<a class="text-muted" href="https://navadmin-viewer.github.io/privacy.html">Privacy Policy</a>
101+
</li>
102+
</ul>
103+
</div>
104+
<div class="col-12 col-sm">
105+
<h5>Disclaimer</h5>
106+
<ul class="list-unstyled text-small">
107+
<span class="text-muted">This program comes with no warranty nor is it an official Department of Defense product. All data is provided as is and the user is responsible for verifying any data with official sources.</span>
108+
</ul>
109+
</div>
110+
</div>
111+
</footer>
112+
<!-- Modal -->
113+
<div class="modal fade" id="msg-body-modal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLongTitle" aria-hidden="true">
114+
<div class="modal-dialog modal-lg" role="document">
115+
<div class="modal-content">
116+
<div class="modal-header">
117+
<h5 class="modal-title" id="exampleModalLongTitle"></h5>
118+
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
119+
<span aria-hidden="true">&times;</span>
120+
</button>
121+
</div>
122+
<div class="modal-body">
123+
</div>
124+
<div class="modal-footer">
125+
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
126+
<button type="button" class="btn btn-info modal-share-link">Share</button>
127+
</div>
128+
</div>
125129
</div>
126130
</div>
127131
</div>
128-
</div>
129-
</div>
130-
131-
<script src="js/jquery-3.4.1.min.js"></script>
132-
<script src="js/popper.min.js"></script>
133-
<script src="js/bootstrap.min.js"></script>
134-
<script src="js/types.js"></script>
135-
<script src="js/utilities.js"></script>
136-
<script src="js/fetch.js"></script>
137-
<script src="js/custom.js"></script>
132+
133+
<script src="js/jquery-3.4.1.min.js"></script>
134+
<script src="js/popper.min.js"></script>
135+
<script src="js/bootstrap.min.js"></script>
136+
<script src="js/types.js"></script>
137+
<script src="js/utilities.js"></script>
138+
<script src="js/fetch.js"></script>
139+
<script src="js/custom.js"></script>
138140

139141
</body>
142+
140143
</html>

js/custom.js

Lines changed: 32 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,16 @@
11
var availableMsgTypes = [
2-
MsgType.NAVADMIN,
3-
MsgType.ALNAV,
4-
MsgType.MARADMIN,
2+
MsgType.NAVADMIN,
3+
MsgType.ALNAV,
4+
MsgType.MARADMIN,
55
MsgType.ALMAR
66
];
77

8+
var urlParamMsgType = MsgType.UNKNOWN;
9+
var urlParamMsgYear = -1;
10+
var urlParamMsgNumber = -1;
11+
812
// msg-type -> {msg-year:[]msg}
9-
var cachedMessages = new Map();
13+
var cachedMessages;
1014
// postData -> 1 | not set
1115
var activeMetadataRequests = new Map();
1216

@@ -16,15 +20,15 @@ var userSelectedMsgNumber = 0;
1620

1721
var navAppLink;
1822

19-
var loadingProgress;
23+
var loadingProgress;
2024
var loadingProgressHideShowDuration = 100;
2125

2226
var msgModal;
2327
var msgModalTitle;
2428
var msgModalBody;
2529
var msgModalShare;
2630

27-
$( document ).ready(function() {
31+
$(document).ready(function() {
2832
navAppLink = $('#nav-app-link');
2933

3034
loadingProgress = $('#loading-progress');
@@ -34,19 +38,24 @@ $( document ).ready(function() {
3438
msgModalBody = $('#msg-body-modal .modal-body');
3539
msgModalShare = $('#msg-body-modal .modal-share-link');
3640

37-
var urlParamMsgType = stringToMsgType(getUrlParameter(window.location.href, 'type'));
38-
if (urlParamMsgType != MsgType.UNKNOWN)
39-
userSelectedMsgType = urlParamMsgType
40-
var urlParamMsgYear = getUrlParameter(window.location.href, 'year');
41-
userSelectedMsgYear = urlParamMsgYear
42-
var urlParamMsgNumber = getUrlParameter(window.location.href, 'number');
43-
userSelectedMsgNumber = urlParamMsgNumber
41+
urlParamMsgType = stringToMsgType(getUrlParameter(window.location.href, 'type'));
42+
urlParamMsgYear = getUrlParameter(window.location.href, 'year');
43+
urlParamMsgNumber = getUrlParameter(window.location.href, 'number');
4444

4545
setFilterMsgTypeDropdown(availableMsgTypes);
46-
$("#msg-search-input").on('keyup paste',msgFilterSearchInputChanged);
47-
getYearsForMsgType(userSelectedMsgType, [], true);
46+
$("#msg-search-input").on('keyup paste', msgFilterSearchInputChanged);
47+
4848
setUIInLoadingStatus(true);
4949

50+
if (urlParamMsgType != MsgType.UNKNOWN && urlParamMsgYear != -1 && urlParamMsgNumber != -1) {
51+
getMsgBody(urlParamMsgType, urlParamMsgYear, urlParamMsgNumber, function() {
52+
getYearsForMsgType(userSelectedMsgType, [], true);
53+
});
54+
console.log('test')
55+
} else {
56+
getYearsForMsgType(userSelectedMsgType, [], true);
57+
}
58+
5059
navAppLink.click(navigateToAppStore)
5160

5261
msgModalShare.click(shareUserSelectedMessageLink);
@@ -55,12 +64,12 @@ $( document ).ready(function() {
5564
function setUIInLoadingStatus(disable) {
5665
if (disable) {
5766
loadingProgress.show(loadingProgressHideShowDuration);
58-
$( document ).css('cursor', 'wait');
67+
$(document).css('cursor', 'wait');
5968
} else {
6069
loadingProgress.hide(loadingProgressHideShowDuration);
61-
$( document ).css('cursor', 'default');
70+
$(document).css('cursor', 'default');
6271
}
63-
72+
6473
}
6574

6675
/**
@@ -83,7 +92,7 @@ function setFilterMsgTypeDropdown(msgTypes) {
8392
}
8493

8594
for (var i = 0; i < msgTypes.length; i++) {
86-
var a = $('<a>', {'class': 'dropdown-item'});
95+
var a = $('<a>', { 'class': 'dropdown-item' });
8796
a.text(msgTypeToString(msgTypes[i]));
8897
a.click(createHandler(msgTypes[i]));
8998
$('#msg-type-dropdown-menu').append(a);
@@ -116,8 +125,8 @@ function setFilterMsgYearDropdown(msgType, msgYear) {
116125
}
117126

118127
if (cachedMessageTypeYears)
119-
cachedMessages.get(msgType).forEach(function (v, k) {
120-
var a = $('<a>', {'class': 'dropdown-item'});
128+
cachedMessages.get(msgType).forEach(function(v, k) {
129+
var a = $('<a>', { 'class': 'dropdown-item' });
121130
a.text(k);
122131
a.click(createHandler(msgType, k));
123132
$('#msg-year-dropdown-menu').append(a);
@@ -148,7 +157,7 @@ function setTableMessages(msgType, msgYear) {
148157
setUIInLoadingStatus(true);
149158
return;
150159
}
151-
cachedMessages.get(msgType).forEach(function (v, k) {
160+
cachedMessages.get(msgType).forEach(function(v, k) {
152161
if (msgYear == -1)
153162
msgYear = k;
154163
});
@@ -164,7 +173,7 @@ function setTableMessages(msgType, msgYear) {
164173
return;
165174
}
166175

167-
for (var i = msg.length-1; i >= 0; i--) {
176+
for (var i = msg.length - 1; i >= 0; i--) {
168177
m = msg[i];
169178
var tr = $("<tr>", {});
170179
var th = $("<th>", {});

0 commit comments

Comments
 (0)