Skip to content

Commit a47c442

Browse files
committedMar 29, 2013
Update Issue 200
Moving to new layout, filling out the connection information automatically, adding DAR validation
1 parent e8e245c commit a47c442

File tree

5 files changed

+124
-31
lines changed

5 files changed

+124
-31
lines changed
 

‎management/sip-servlets-management/src/main/webapp/index.html

+77-17
Original file line numberDiff line numberDiff line change
@@ -18,28 +18,71 @@
1818
padding-right: 5px;
1919
}
2020
}
21+
22+
.required{
23+
border:1px solid rgba(196, 39, 39, 0.3) !important;
24+
-webkit-box-shadow: 0px 0px 5px 2px rgba(196, 39, 39, 0.3) !important;
25+
box-shadow: 0px 0px 5px 2px rgba(196, 39, 39, 0.3) !important;
26+
}
2127
</style>
2228
<link href="resources/css/font-awesome-3.0.2.min.css" rel="stylesheet">
2329
<link href="resources/css/main.css" rel="stylesheet" />
2430
<script src="resources/js/jquery-1.9.1.min.js"></script>
25-
<script src="resources/js/jquery-ui-1.10.1.min.js"></script>
26-
<script src="resources/js/highcharts-3.0.0.js"></script>
31+
<script src="resources/js/jquery-ui-1.10.1.min.js"></script>
2732
<script src="resources/js/bootstrap-2.3.1.min.js"></script>
2833
<script src="resources/js/jolokia-min.js"></script>
2934
<script src="resources/js/jolokia-simple-min.js"></script>
3035
<script src="resources/js/servercontrol.js"></script>
3136
<title>Mobicents Management Console</title>
3237
</head>
3338
<body>
34-
<div class="header">
35-
<div class="container">
36-
<img src="resources/images/logo.png" />
37-
<img src="resources/images/header.png" />
39+
<div class="navbar navbar-inverse navbar-fixed-top">
40+
<div class="navbar-inner">
41+
<div class="container-fluid">
42+
<button type="button" class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
43+
<span class="icon-bar"></span>
44+
<span class="icon-bar"></span>
45+
<span class="icon-bar"></span>
46+
</button>
47+
<span class="brand" style="vertical-align: bottom;"><img src="resources/images/telestax_logo_dark1.png" /> SIP SERVLETS MANAGEMENT CONSOLE</span>
48+
<!--div class="nav-collapse collapse">
49+
<p class="navbar-text pull-right" style="font-size: 1.3em;">
50+
<span style="margin-top: 15px; vertical-align: sub;">
51+
<i class="icon-user"></i> &nbsp; <a href="#" class="navbar-link">Administrator</a>
52+
</span>
53+
&nbsp; <a href="#" class="btn btn-danger btn-small"><i class="icon-off"></i> Sign Out</a>
54+
</p>
55+
</div--><!--/.nav-collapse -->
56+
</div>
3857
</div>
3958
</div>
40-
<div class="container-fluid">
59+
<div class="container-fluid" style="padding-top: 60px;">
4160
<div class="row-fluid">
4261
<div class="span3">
62+
<div class="well sidebar-nav">
63+
<ul class="nav nav-list">
64+
<li class="nav-header"><i class="icon-desktop"></i> Connected to: <span id="connected-to" style="color: #777777; font-size: 12px;"></span> &nbsp; <span><button class="btn btn-small" style="width: 26px;" onclick="showConnectionOptions();"><i id="conn-options-icon"class="icon-caret-down" style="margin-left: -5px;" data-toggle="tooltip" data-placement="right" title="Show Connection Options"></i></button></span></li>
65+
<span id="connection-options" style="display: none;">
66+
<hr style="margin: 10px 0;"/>
67+
<li class="nav-header"><i class="icon-plus-sign"></i>New Connection</li>
68+
<li>
69+
<input class="span7" id="host" type="text" placeholder="IP Address">
70+
<input class="span3" id="port" type="text" placeholder="Port">
71+
<button id="protocol" type="button" onclick="changeProtocol()" style="vertical-align: baseline; height: 28px;" class="btn btn-small btn-danger" data-toggle="button" ><i id="protocolIcon" class="icon-unlock" style="font-size: 22px; width: 12px;" data-toggle="tooltip" data-placement="right" title="Secure Connection (HTTPS)"></i></button>
72+
<!--input class="span6" id="user" type="text" placeholder="Username" />
73+
<input class="span6 " id="pass" type="password" placeholder="Password" /-->
74+
<button class="btn btn-primary" type="button" onclick="connect()">Connect</button>
75+
</li>
76+
<!--hr style="margin: 20px 0 10px 0;"/>
77+
<li class="nav-header"><i class="icon-time"></i>Recent Connections</li>
78+
<li><a href="#"><span style="padding-left: 20px;">192.168.1.123:8080</span></a></li>
79+
<li><a href="#"><span style="padding-left: 20px;">127.0.0.2:8080</span></a></li>
80+
<li><a href="#"><span style="padding-left: 20px;">84.143.32.234:8080</span></a></li>
81+
<li><a href="#"><span style="padding-left: 20px;">101.102.103.104:80</span></a></li>
82+
<li><a href="#"><span style="padding-left: 20px;">1.2.3.4:8080</span></a></li-->
83+
</span>
84+
</ul>
85+
</div>
4386
<div class="well sidebar-nav">
4487
<ul class="nav nav-list">
4588
<li class="nav-header">Management</li>
@@ -71,18 +114,35 @@ <h5 style="margin: 0px;">
71114
$(function () {
72115
$("[data-toggle='tooltip']").tooltip();
73116
});
74-
window.jolokiaAddress = '127.0.0.1';
75-
window.jolokiaPort = '8080';
76-
jolokia = new Jolokia({url: "http://" + window.jolokiaAddress + ":" + window.jolokiaPort + "/jolokia"});
77-
if(!window.jolokiaAddress || ! window.jolokiaPort) {
78-
// ask for it...
79-
}
80-
else {
81-
$('#content').load('modules/application-routing.html');
82-
}
117+
$("#host").val(window.location.hostname);
118+
$("#port").val(window.location.port);
119+
window.jolokiaProtocol = "http://";
120+
if(window.location.protocol == "https:") {
121+
changeProtocol();
122+
}
123+
window.jolokiaAddress = window.location.hostname;
124+
window.jolokiaPort = window.location.port;
125+
jolokia = new Jolokia({url: window.jolokiaProtocol + window.jolokiaAddress + ":" + window.jolokiaPort + "/jolokia"});
126+
$('#content').load('modules/application-routing.html');
83127
$("#btn-min-console").click();
84-
logToConsole('INFO', 'Mobicents SIP Servlets Management Console ready!');
128+
logToConsole('INFO', 'Mobicents SIP Servlets Management Console ready ! Connected to : ' + window.jolokiaProtocol + window.jolokiaAddress + ":" + window.jolokiaPort);
85129
});
130+
131+
function changeProtocol() {
132+
if($('#protocolIcon').hasClass('icon-unlock')) {
133+
window.jolokiaProtocol = "https://";
134+
$('#protocol').removeClass();$('#protocol').addClass('btn btn-small btn-success');
135+
$('#protocolIcon').removeClass();$('#protocolIcon').addClass('icon-lock');
136+
} else {
137+
window.jolokiaProtocol = "http://";
138+
$('#protocol').removeClass();$('#protocol').addClass('btn btn-small btn-danger');
139+
$('#protocolIcon').removeClass();$('#protocolIcon').addClass('icon-unlock');
140+
}
141+
}
142+
143+
function connect() {
144+
logToConsole('INFO', 'Connected to : ' + window.jolokiaProtocol + window.jolokiaAddress + ":" + window.jolokiaPort);
145+
}
86146
</script>
87147
</div>
88148
</div>

‎management/sip-servlets-management/src/main/webapp/modules/application-routing.html

+35-6
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,11 @@ <h3 style="margin: 0px;"><i class="icon-copy"></i> Application Routing</h3>
1313
<i class="icon-info-sign" style="color: #000000;"></i> Click on Each Tab to individually configure the applications to be called for each SIP Message received by the container
1414
</div>
1515

16+
<div class="alert alert-error" id="login-error" style="display:none;">
17+
<button type="button" class="close">&times;</button>
18+
Please verify that "Subscriber Identity" and "Order" fields are correctly filled out or each application !
19+
</div>
20+
1621
<p>
1722
<span id="mss-settings">
1823
<ul class="nav nav-tabs" id="myTab">
@@ -190,13 +195,18 @@ <h3 id="sourceModalLabel">Default Application Router Source</h3>
190195
<button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
191196
</div>
192197
</div>
193-
<script type="text/javascript">
198+
<script type="text/javascript">
199+
$('#login-error .close').on("click", function(e) {
200+
$(this).parent().hide();
201+
});
202+
194203
$('#sourceModal').on('show', function () {
195204
content = "<pre>" + getDarConfiguration() + "</pre>";
196205
$("#sourceModalBody").html(content);
197206
})
198207

199208
var applications;
209+
var formInvalid;
200210

201211
function addApplication(type) {
202212
addApplication(type, null, null, null, null, null, null);
@@ -315,6 +325,18 @@ <h3 id="sourceModalLabel">Default Application Router Source</h3>
315325
routeModifiers = $("#" + methodLowserCase + "-application-content-"+ i +"-routeModifiers").val();
316326
route = $("#" + methodLowserCase + "-application-content-"+ i +"-route").val();
317327
order = $("#" + methodLowserCase + "-application-content-"+ i +"-order").val();
328+
if(subscriberIdentity.trim() == "") {
329+
$("#" + methodLowserCase + "-application-content-"+ i +"-subscriberIdentity").addClass("required");
330+
formInvalid = true;
331+
} else if($("#" + methodLowserCase + "-application-content-"+ i +"-subscriberIdentity").hasClass("required")) {
332+
$("#" + methodLowserCase + "-application-content-"+ i +"-subscriberIdentity").removeClass("required");
333+
}
334+
if(order.trim() == "") {
335+
$("#" + methodLowserCase + "-application-content-"+ i +"-order").addClass("required");
336+
formInvalid = true;
337+
} else if($("#" + methodLowserCase + "-application-content-"+ i +"-order").hasClass("required")) {
338+
$("#" + methodLowserCase + "-application-content-"+ i +"-order").removeClass("required");
339+
}
318340
var darApplication = "(";
319341
darApplication = darApplication + "\"" + sipApplicationName + "\",";
320342
darApplication = darApplication + "\"" + subscriberIdentity + "\",";
@@ -349,20 +371,27 @@ <h3 id="sourceModalLabel">Default Application Router Source</h3>
349371
}
350372

351373
function saveDarConfiguration() {
374+
formInvalid = false;
375+
darConfiguration = getDarConfiguration();
376+
if(formInvalid) {
377+
$("#login-error").show();
378+
logToConsole("ERROR", "Please verify that \"Subscriber Identity\" and \"Order\" fields are correctly filled out or each application !");
379+
return false;
380+
}
352381
mbeanSearch="*:type=SipApplicationDispatcher";
353382
var mbean;
354383
$.ajax({
355384
dataType: "json",
356-
url: "http://" + window.jolokiaAddress + ":" + window.jolokiaPort + "/jolokia/search/" + mbeanSearch
385+
url: window.jolokiaProtocol + window.jolokiaAddress + ":" + window.jolokiaPort + "/jolokia/search/" + mbeanSearch
357386
})
358387
.done(function(html) {
359388
if (html.error) {
360389
logToConsole("ERROR", html.error);
361390
}
362391
else {
363392
mbean = html.value[0];
364-
var j4p = new Jolokia({url: "http://" + window.jolokiaAddress + ":" + window.jolokiaPort + "/jolokia/" });
365-
j4p.execute(mbean, "updateApplicationRouterConfiguration(java.lang.Object)", getDarConfiguration(), {
393+
var j4p = new Jolokia({url: window.jolokiaProtocol + window.jolokiaAddress + ":" + window.jolokiaPort + "/jolokia/" });
394+
j4p.execute(mbean, "updateApplicationRouterConfiguration(java.lang.Object)", darConfiguration, {
366395
success: function(value) {
367396
logToConsole("INFO", "DAR Information successfully updated");
368397
},
@@ -397,15 +426,15 @@ <h3 id="sourceModalLabel">Default Application Router Source</h3>
397426
var mbean;
398427
$.ajax({
399428
dataType: "json",
400-
url: "http://" + window.jolokiaAddress + ":" + window.jolokiaPort + "/jolokia/search/" + mbeanSearch
429+
url: window.jolokiaProtocol + window.jolokiaAddress + ":" + window.jolokiaPort + "/jolokia/search/" + mbeanSearch
401430
})
402431
.done(function(html) {
403432
if (html.error) {
404433
logToConsole("ERROR", html.error);
405434
}
406435
else {
407436
mbean = html.value[0];
408-
var j4p = new Jolokia({url: "http://" + window.jolokiaAddress + ":" + window.jolokiaPort + "/jolokia/" });
437+
var j4p = new Jolokia({url: window.jolokiaProtocol + window.jolokiaAddress + ":" + window.jolokiaPort + "/jolokia/" });
409438
j4p.execute(mbean, "findInstalledSipApplications", {
410439
success: function(value) {
411440
applications=value;

‎management/sip-servlets-management/src/main/webapp/modules/server-settings.html

+4-4
Original file line numberDiff line numberDiff line change
@@ -48,15 +48,15 @@ <h3 style="margin: 0px;"><i class="icon-dashboard"></i> SIP Servlets Server Sett
4848
var mbean;
4949
$.ajax({
5050
dataType: "json",
51-
url: "http://" + window.jolokiaAddress + ":" + window.jolokiaPort + "/jolokia/search/" + mbeanSearch
51+
url: window.jolokiaProtocol + window.jolokiaAddress + ":" + window.jolokiaPort + "/jolokia/search/" + mbeanSearch
5252
})
5353
.done(function(html) {
5454
if (html.error) {
5555
logToConsole("ERROR", html.error);
5656
}
5757
else {
5858
mbean = html.value[0];
59-
var j4p = new Jolokia({url: "http://" + window.jolokiaAddress + ":" + window.jolokiaPort + "/jolokia/" });
59+
var j4p = new Jolokia({url: window.jolokiaProtocol + window.jolokiaAddress + ":" + window.jolokiaPort + "/jolokia/" });
6060
var baseTimerInterval = j4p.getAttribute(mbean, "BaseTimerInterval",{method: "post"});
6161
var t2Interval = j4p.getAttribute(mbean, "T2Interval",{method: "post"});
6262
var t4Interval = j4p.getAttribute(mbean, "T4Interval",{method: "post"});
@@ -88,15 +88,15 @@ <h3 style="margin: 0px;"><i class="icon-dashboard"></i> SIP Servlets Server Sett
8888
var mbean;
8989
$.ajax({
9090
dataType: "json",
91-
url: "http://" + window.jolokiaAddress + ":" + window.jolokiaPort + "/jolokia/search/" + mbeanSearch
91+
url: window.jolokiaProtocol + window.jolokiaAddress + ":" + window.jolokiaPort + "/jolokia/search/" + mbeanSearch
9292
})
9393
.done(function(html) {
9494
if (html.error) {
9595
logToConsole("ERROR", html.error);
9696
}
9797
else {
9898
mbean = html.value[0];
99-
var j4p = new Jolokia({url: "http://" + window.jolokiaAddress + ":" + window.jolokiaPort + "/jolokia/" });
99+
var j4p = new Jolokia({url: window.jolokiaProtocol + window.jolokiaAddress + ":" + window.jolokiaPort + "/jolokia/" });
100100
j4p.setAttribute(mbean, "BaseTimerInterval",$("#sipBaseTimer").val(),{method: "post"});
101101
j4p.setAttribute(mbean, "T2Interval",$("#sipTimerT2").val(),{method: "post"});
102102
j4p.setAttribute(mbean, "T4Interval",$("#sipTimerT4").val(),{method: "post"});
Loading

‎management/sip-servlets-management/src/main/webapp/resources/js/servercontrol.js

+8-4
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,16 @@ function setMenu(element, module) {
2727
});
2828
}
2929

30+
function showConnectionOptions() {
31+
$("#connection-options").toggle();
32+
}
33+
3034
function changeServerState(method) {
3135
mbeanSearch="*:type=SipApplicationDispatcher";
3236
var mbean;
3337
$.ajax({
3438
dataType: "json",
35-
url: "http://" + window.jolokiaAddress + ":" + window.jolokiaPort + "/jolokia/search/" + mbeanSearch
39+
url: window.jolokiaProtocol + window.jolokiaAddress + ":" + window.jolokiaPort + "/jolokia/search/" + mbeanSearch
3640
})
3741
.done(function(html) {
3842
if (html.error) {
@@ -43,7 +47,7 @@ function changeServerState(method) {
4347
timeToWait = $("#time-to-wait").val();
4448
$.ajax({
4549
dataType: "json",
46-
url: "http://" + window.jolokiaAddress + ":" + window.jolokiaPort + "/jolokia/exec/" + jolokia.escape(mbean) + "/" + method + "/" + timeToWait
50+
url: window.jolokiaProtocol + window.jolokiaAddress + ":" + window.jolokiaPort + "/jolokia/exec/" + jolokia.escape(mbean) + "/" + method + "/" + timeToWait
4751
})
4852
.done(function(html) {
4953
if (html.error) {
@@ -254,7 +258,7 @@ function cancelDeployableUnitInstall() {
254258
// }
255259
// $.ajax({
256260
// dataType: "json",
257-
// url: "http://" + window.jolokiaAddress + ":" + window.jolokiaPort + "/jolokia/exec/" + jolokia.escape(mbean) + "/" + method + "/" + $("#du-filename-path").val().replace(/\//g,'!/')
261+
// url: window.jolokiaProtocol + window.jolokiaAddress + ":" + window.jolokiaPort + "/jolokia/exec/" + jolokia.escape(mbean) + "/" + method + "/" + $("#du-filename-path").val().replace(/\//g,'!/')
258262
// })
259263
// .done(function(html) {
260264
// if (html.error) {
@@ -291,7 +295,7 @@ function cancelDeployableUnitInstall() {
291295
// // });
292296
// $.ajax({
293297
// dataType: "json",
294-
// url: "http://" + window.jolokiaAddress + ":" + window.jolokiaPort + "/jolokia/exec/" + jolokia.escape(mbean) + "/" + method + "/" + url.replace(/\//g,'!/')
298+
// url: window.jolokiaProtocol + window.jolokiaAddress + ":" + window.jolokiaPort + "/jolokia/exec/" + jolokia.escape(mbean) + "/" + method + "/" + url.replace(/\//g,'!/')
295299
// })
296300
// .done(function(html) {
297301
// if (html.error) {

0 commit comments

Comments
 (0)
Please sign in to comment.