Skip to content

Commit a39b273

Browse files
committed
Added the new EiInfo html page and generation of EI Info tables on that page.
1 parent 480bdec commit a39b273

File tree

4 files changed

+163
-32
lines changed

4 files changed

+163
-32
lines changed

src/main/java/com/ericsson/ei/frontend/WebController.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,10 @@ public String testRules(Model model) {
5959

6060
@RequestMapping("/eiInfo.html")
6161
public String eiInfo(Model model) {
62+
63+
String frontendServiceUrl = String.format("http://%s:%d", frontendServiceHost, frontendServicePort);
64+
65+
model.addAttribute("frontendServiceUrl", frontendServiceUrl); // inject in DOM for AJAX etc
6266

6367
return "eiInfo";
6468
}
Lines changed: 128 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,128 @@
1+
2+
jQuery(document).ready(function() {
3+
4+
var body = document.getElementsByTagName('body')[0];
5+
6+
function createTable() {
7+
var tbl = document.createElement('table');
8+
tbl.style.width = '40%';
9+
tbl.style.align = 'right';
10+
tbl.setAttribute('border', '3');
11+
tbl.setAttribute('align', 'center');
12+
tbl.setAttribute('class', 'table table-bordered');
13+
return tbl;
14+
}
15+
16+
// Fetch injected URL from DOM
17+
frontendServiceUrl = $('#frontendServiceUrl').text();
18+
19+
function generateGeneralEiInfo(data) {
20+
21+
body.appendChild(document.createElement('br'));
22+
var tbdy = document.createElement('tbody');
23+
24+
var label = document.createElement('p');
25+
label.innerHTML = 'General Eiffel Intelligence Information';
26+
label.setAttribute('align', 'center');
27+
body.appendChild(label);
28+
29+
var tbl = createTable();
30+
31+
var tr = document.createElement('tr');
32+
var tdKey = document.createElement('td');
33+
tdKey.appendChild(document.createTextNode('ApplicationName'));
34+
tr.appendChild(tdKey);
35+
var tdValue = document.createElement('td');
36+
tdValue.appendChild(document.createTextNode(data.applicationName));
37+
tr.appendChild(tdValue);
38+
tbdy.appendChild(tr);
39+
40+
41+
tr = document.createElement('tr');
42+
tdKey = document.createElement('td');
43+
tdKey.appendChild(document.createTextNode('Version'));
44+
tr.appendChild(tdKey);
45+
tdValue = document.createElement('td');
46+
tdValue.appendChild(document.createTextNode(data.version));
47+
tr.appendChild(tdValue);
48+
tbdy.appendChild(tr);
49+
50+
51+
tbl.appendChild(tbdy);
52+
body.appendChild(tbl);
53+
54+
body.appendChild(document.createElement('br'));
55+
}
56+
57+
function generateEIInformationBasedOnList(data, listComponentName, tableLabel) {
58+
var rabbitMqInstancesList = data[listComponentName];
59+
60+
body.appendChild(document.createElement('br'));
61+
62+
var label = document.createElement('p');
63+
label.innerHTML = tableLabel;
64+
label.setAttribute('align', 'center');
65+
body.appendChild(label);
66+
67+
var tbdy = null;
68+
var tbl = null;
69+
70+
rabbitMqInstancesList.forEach(function(rabbitMqInstanceSubList) {
71+
tbdy = document.createElement('tbody');
72+
tbl = createTable();
73+
74+
console.log(rabbitMqInstanceSubList);
75+
Object.keys(rabbitMqInstanceSubList).forEach(function(rabbitMqInstanceKey) {
76+
console.log(rabbitMqInstanceKey + " : " + rabbitMqInstanceSubList[rabbitMqInstanceKey]);
77+
var tr = document.createElement('tr');
78+
var tdKey = document.createElement('td');
79+
tdKey.appendChild(document.createTextNode(rabbitMqInstanceKey));
80+
tr.appendChild(tdKey);
81+
var tdValue = document.createElement('td');
82+
tdValue.appendChild(document.createTextNode(rabbitMqInstanceSubList[rabbitMqInstanceKey]));
83+
tr.appendChild(tdValue);
84+
tbdy.appendChild(tr);
85+
86+
});
87+
88+
body.appendChild(document.createElement('br'));
89+
});
90+
91+
tbl.appendChild(tbdy);
92+
body.appendChild(tbl);
93+
94+
body.appendChild(document.createElement('br'));
95+
96+
}
97+
98+
function getInstanceInfo() {
99+
var eiInfoContainer = document.getElementById('eiInfoContainer');
100+
$.ajax({
101+
url: frontendServiceUrl + "/information",
102+
contentType : 'application/json;charset=UTF-8',
103+
type: 'GET',
104+
error : function (XMLHttpRequest, textStatus, errorThrown) {
105+
document.getElementById('info_text').innerHTML = errorThrown;
106+
},
107+
success : function (data, textStatus, xhr) {
108+
109+
},
110+
complete: function (XMLHttpRequest, textStatus) {
111+
var data = JSON.parse(XMLHttpRequest.responseText);
112+
console.log(data);
113+
114+
generateGeneralEiInfo(data);
115+
116+
generateEIInformationBasedOnList(data, "rabbitmq", "Eiffel Intelligence Connected RabbitMq Instances");
117+
generateEIInformationBasedOnList(data, "mongodb", "Eiffel Intelligence Connected MongoDb Instances");
118+
generateEIInformationBasedOnList(data, "threads", "Eiffel Intelligence Backend CPU Threads settings");
119+
generateEIInformationBasedOnList(data, "email", "Eiffel Intelligence Backend e-mail settings");
120+
generateEIInformationBasedOnList(data, "waitList", "Eiffel Intelligence Backend WaitList settings");
121+
}
122+
});
123+
124+
}
125+
126+
getInstanceInfo();
127+
128+
});
Lines changed: 29 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,39 @@
11
<!DOCTYPE html>
22
<html xmlns:th="http://www.thymeleaf.org">
33
<mvc:resources mapping="/resources/**" location="/resources/" />
4-
<head>
5-
<meta charset="utf-8"/>
6-
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
7-
<meta name="viewport" content="width=device-width, initial-scale=1"/>
8-
<title>Eiffel Intelligence Subscription Handling</title>
4+
<head>
5+
<meta charset="utf-8" />
6+
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
7+
<meta name="viewport" content="width=device-width, initial-scale=1" />
8+
<title>Eiffel Intelligence Subscription Handling</title>
99

10-
<!-- Style Sheets -->
10+
<!-- Style Sheets -->
1111

12-
<link href="assets/bootstrap/css/bootstrap.min.css" rel="stylesheet"/>
13-
14-
<!-- JavaScript imports -->
12+
<link href="assets/bootstrap/css/bootstrap.min.css" rel="stylesheet" />
1513

16-
<script type="text/javascript" src="assets/jquery/jquery-3.2.1.min.js"></script>
17-
<script type="text/javascript" src="assets/bootstrap/js/bootstrap.min.js"></script>
18-
<script type="text/javascript" src="assets/bootstrap-datepicker/js/bootstrap-datepicker.min.js"></script>
19-
<script type="text/javascript" src="assets/knockout/knockout-3.4.2.js"></script>
20-
<script type="text/javascript" src="assets/knockout/knockout.mapping.js"></script>
21-
<script type="text/javascript" src="assets/jquery-confirm/js/jquery-confirm.js"></script>
22-
<script type="text/javascript" src="assets/jgrowl/jquery.jgrowl.min.js"></script>
23-
<script type="text/javascript" src="assets/jquery-ui/jquery-ui.min.js"></script>
24-
25-
</head>
14+
<!-- JavaScript imports -->
15+
16+
<script type="text/javascript" src="assets/jquery/jquery-3.2.1.min.js"></script>
17+
<script type="text/javascript"
18+
src="assets/bootstrap/js/bootstrap.min.js"></script>
19+
<script type="text/javascript"
20+
src="assets/bootstrap-datepicker/js/bootstrap-datepicker.min.js"></script>
21+
<script type="text/javascript" src="assets/knockout/knockout-3.4.2.js"></script>
22+
<script type="text/javascript" src="assets/knockout/knockout.mapping.js"></script>
23+
<script type="text/javascript"
24+
src="assets/jquery-confirm/js/jquery-confirm.js"></script>
25+
<script type="text/javascript" src="assets/jgrowl/jquery.jgrowl.min.js"></script>
26+
<script type="text/javascript" src="assets/jquery-ui/jquery-ui.min.js"></script>
27+
<script type="text/javascript" src="assets/datatables/js/jquery.dataTables.min.js"></script>
28+
<script type="text/javascript" src="assets/datatables/js/dataTables.bootstrap.min.js"></script>
29+
30+
31+
</head>
2632

2733
<body>
28-
<div class="container pull-left">
29-
<br />
30-
<br />
31-
<div align="center"><label>Eiffel Intelligence Information</label></div>
32-
</div>
34+
<div class="hidden" id="frontendServiceUrl"
35+
th:text="${frontendServiceUrl}"></div>
36+
37+
<script type="text/javascript" src="js/eiInfo.js"></script>
3338
</body>
3439
</html>

src/main/resources/templates/index.html

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -206,18 +206,12 @@ <h6 class="dropdown-header">New Alerts:</h6>
206206
</nav>
207207
<div class="content-wrapper">
208208

209-
<iframe id="mainFrame" style="position:fixed; top:56px; left:250px; bottom:0px; right:0px; width:100%; height:100%; border:none;"></iframe>
209+
<iframe id="mainFrame" scrolling="yes" style="position:fixed; top:56px; left:250px; bottom:0px; right:0px; width:87%; height:90%; border:none;"></iframe>
210210

211211

212212
<!-- /.container-fluid-->
213213
<!-- /.content-wrapper-->
214-
<footer class="sticky-footer">
215-
<div class="container">
216-
<div class="text-center">
217-
<small>Copyright © Your Website 2017</small>
218-
</div>
219-
</div>
220-
</footer>
214+
221215
<!-- Scroll to Top Button-->
222216
<a class="scroll-to-top rounded" href="#page-top">
223217
<i class="fa fa-angle-up"></i>

0 commit comments

Comments
 (0)