Skip to content

Commit bdc1099

Browse files
committed
Eiffel Documentation Links menu dynamically configured in application.properties file.
1 parent abca500 commit bdc1099

File tree

4 files changed

+49
-12
lines changed

4 files changed

+49
-12
lines changed

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

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -32,15 +32,15 @@ public class WebController {
3232
private String backendServerHost;
3333
private int backendServerPort;
3434

35-
private String eiffelDocumentationUrl;
35+
private String eiffelDocumentationUrls;
3636

3737

3838
@RequestMapping("/")
3939
public String greeting(Model model) {
4040

41-
String eiffelDocumentationUrlLink = String.format("%s", eiffelDocumentationUrl);
41+
String eiffelDocumentationUrlLinks = String.format("%s", eiffelDocumentationUrls);
4242

43-
model.addAttribute("eiffelDocumentationUrlLink", eiffelDocumentationUrlLink); // inject in DOM for AJAX etc
43+
model.addAttribute("eiffelDocumentationUrlLinks", eiffelDocumentationUrlLinks); // inject in DOM for AJAX etc
4444

4545

4646

@@ -126,11 +126,11 @@ public void setBackendServerPort(int backendServerPort) {
126126
this.backendServerPort = backendServerPort;
127127
}
128128

129-
public String getEiffelDocumentationUrl() {
130-
return eiffelDocumentationUrl;
129+
public String getEiffelDocumentationUrls() {
130+
return eiffelDocumentationUrls;
131131
}
132132

133-
public void setEiffelDocumentationUrl(String eiffelDocumentationUrl) {
134-
this.eiffelDocumentationUrl = eiffelDocumentationUrl;
133+
public void setEiffelDocumentationUrls(String eiffelDocumentationUrls) {
134+
this.eiffelDocumentationUrls = eiffelDocumentationUrls;
135135
}
136136
}

src/main/resources/application.properties

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,9 @@ ei.backendServerPort=8090
1616
ei.subscriptionFilePath=subscriptions/subscriptionsTemplate.json
1717

1818
###### EI Documentation Link Url ##########
19-
ei.eiffelDocumentationUrl=https://github.com/Ericsson/eiffel-intelligence-frontend
19+
ei.eiffelDocumentationUrls={ "EI GitHub": "https://github.com/Ericsson/eiffel-intelligence-frontend",\
20+
"Eiffel Github": "https://github.com/Ericsson/eiffel",\
21+
"Eiffel Github main page": "http://ericsson.github.io/eiffel" }
2022

2123
#### LOGGING #########
2224
logging.level.root: INFO

src/main/resources/static/js/main.js

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11

22
jQuery(document).ready(function() {
33

4+
// Fetch injected URL from DOM
5+
var eiffelDocumentationUrlLinks = $('#eiffelDocumentationUrlLinks').text();
6+
47
document.getElementById("testRulesBtn").onclick = function() {
58

69
var iframe = document.getElementById("mainFrame");
@@ -49,10 +52,36 @@ jQuery(document).ready(function() {
4952
document.getElementById("subscriptionBtn").onclick = function() {
5053

5154
loadMainPage();
55+
}
56+
57+
function loadDocumentLinks(){
58+
// eiffelDocumentationUrlLinks variable is configure in application.properties
59+
var linksList = JSON.parse(eiffelDocumentationUrlLinks);
60+
61+
var docLinksDoc = document.getElementById('collapseDocPages');
62+
var liTag = null;
63+
var aTag = null;
64+
65+
Object.keys(linksList).forEach(function(linkKey) {
66+
liTag = document.createElement('li');
67+
aTag = document.createElement('a');
68+
aTag.innerHTML = linkKey;
69+
aTag.setAttribute('href', linksList[linkKey]);
70+
aTag.setAttribute('target', '_blanc');
71+
liTag.appendChild(aTag);
72+
docLinksDoc.appendChild(liTag);
73+
});
74+
75+
76+
77+
78+
79+
5280
}
5381

5482
var initOneTime = function(){
5583
initOneTime = function(){}; // kill it as soon as it was called
84+
loadDocumentLinks();
5685
loadMainPage();
5786
};
5887

src/main/resources/templates/index.html

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@
1919
</head>
2020

2121
<body class="fixed-nav bg-dark" id="page-top">
22+
23+
<div class="hidden" id="eiffelDocumentationUrlLinks" th:text="${eiffelDocumentationUrlLinks}"></div>
24+
2225
<!-- Navigation-->
2326
<nav class="navbar navbar-expand-lg navbar-dark bg-dark fixed-top" id="mainNav">
2427
<a class="navbar-brand" href="/">Eiffel Intelligence</a>
@@ -62,11 +65,14 @@
6265
</li>
6366
</ul>
6467
</li>
65-
<li class="nav-item" data-toggle="tooltip" data-placement="right" title="Link">
66-
<a class="nav-link" th:href="${eiffelDocumentationUrlLink}" target="_blanc">
67-
<i class="fa fa-fw fa-link"></i>
68-
<span class="nav-link-text">Documentation Link</span>
68+
<li class="nav-item" data-toggle="tooltip" data-placement="right" title="Documentation Links">
69+
<a class="nav-link nav-link-collapse collapsed" data-toggle="collapse" href="#collapseDocPages" data-parent="#exampleAccordion">
70+
<i class="fa fa-fw fa-file"></i>
71+
<span class="nav-link-text">Documentation Links</span>
6972
</a>
73+
<ul class="sidenav-second-level collapse" id="collapseDocPages">
74+
<!-- Li and A tags and document links content is injected from main.js -->
75+
</ul>
7076
</li>
7177
</ul>
7278
<ul class="navbar-nav sidenav-toggler">

0 commit comments

Comments
 (0)