Merge pull request #84 from george-e-shaw-iv/master

Managing bundle public server status and viewing bundle logs from server now works
This commit is contained in:
George Shaw 2017-11-26 18:45:17 -06:00 committed by GitHub
commit 61cbdb0f7f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 212 additions and 0 deletions

View file

@ -47,6 +47,18 @@ func (con *Controller) apiHandler(res http.ResponseWriter, req *http.Request) (b
switch suspectApi {
case "/server/status":
return true, server.Status(res, req, specific.Public)
case "/server/start":
return true, server.Start(res, req, specific.Public)
case "/server/shutdown":
return true, server.Shutdown(res, req, specific.Public)
case "/server/maintenance":
return true, server.Maintenance(res, req, specific.Public)
case "/server/restart":
return true, server.Restart(res, req, specific.Public)
case "/log/read":
return true, log.Read(res, req, specific.Directory)
case "/log/delete":
return true, log.Delete(res, req, specific.Directory)
default:
return false, false
}

View file

@ -0,0 +1,11 @@
jQuery('._js_back-to-specific-bundle').on('click', function(e){
e.preventDefault();
jQuery('.view-log-modal').modal('hide');
jQuery('.specific-bundle-modal').modal('show');
});
jQuery('.view-log-modal').on('hidden.bs.modal', function(e){
jQuery('._js_back-to-specific-bundle').removeClass('d-none');
jQuery('._js_back-to-specific-bundle').addClass('d-none');
});

View file

@ -0,0 +1,62 @@
var logModal = jQuery('.view-log-modal');
jQuery('._js_specific-bundle-log-view').on('click', function(e){
e.preventDefault();
var logName = jQuery(this).attr('data');
var title;
switch(logName) {
case "public_errors":
title = "Public Error Log";
break;
case "account_errors":
title = "Account Error Log";
break;
case "public_load_time":
title = "Public Load Time Log";
break;
default:
return;
break;
}
jQuery(logModal).find('.modal-title').html(title);
jQuery(logModal).find('._js_back-to-specific-bundle').removeClass('d-none');
jQuery(logModal).find('._js_log-clear').attr('data', logName);
var name = jQuery('.specific-bundle-modal').attr('data');
var requestData = {};
requestData["bundle_name"] = name;
requestData["name"] = logName;
var xhr = new XMLHttpRequest();
xhr.open('POST', 'api/log/read', true);
xhr.send(JSON.stringify(requestData));
xhr.onloadend = function() {
if(xhr.status == 200) {
var responseData;
if(xhr.response != undefined && xhr.response.length != 0) {
responseData = xhr.response;
}
else {
responseData = "The log is currently empty."
}
jQuery(logModal).find('.modal-body textarea').html(responseData);
jQuery('.specific-bundle-modal').modal('hide');
jQuery(logModal).modal('show');
}
else {
if(xhr.response != undefined && xhr.response.length != 0) {
alert(xhr.response);
}
else {
alert('An error has occurred, please contact your webhost administrator.');
}
}
}
});

View file

@ -0,0 +1,20 @@
jQuery('._js_specific-bundle-public-maintenance-mode').on('click', function(e){
e.preventDefault();
var name = jQuery('.specific-bundle-modal').attr('data');
var requestData = {};
requestData["bundle_name"] = name;
var xhr = new XMLHttpRequest();
xhr.open('UPDATE', 'api/server/maintenance', true);
xhr.send(JSON.stringify(requestData));
xhr.onloadend = function() {
if(xhr.status == 204) {
getPublicServerStatus(name);
}
else {
alert('An error has occurred, please contact your webhost administrator.');
}
}
});

View file

@ -0,0 +1,33 @@
jQuery('._js_specific-bundle-public-restart-graceful, ._js_specific-bundle-public-restart-forceful').on('click', function(e){
e.preventDefault();
var name = jQuery('.specific-bundle-modal').attr('data');
var requestData = {};
requestData["bundle_name"] = name
if(jQuery(this).hasClass('_js_specific-bundle-public-restart-graceful')) {
requestData["graceful"] = true;
}
else {
requestData["graceful"] = false;
}
var xhr = new XMLHttpRequest();
xhr.open('UPDATE', 'api/server/restart', true);
xhr.send(JSON.stringify(requestData));
xhr.onloadend = function() {
if(xhr.status == 204) {
getPublicServerStatus(name);
alert('Server successfully restarted.');
}
else {
if(xhr.response) {
alert(xhr.response);
}
else {
alert('An error has occurred, please contact your webhost administrator.');
}
}
}
});

View file

@ -0,0 +1,32 @@
jQuery('._js_specific-bundle-public-shutdown-graceful, ._js_specific-bundle-public-shutdown-forceful').on('click', function(e){
e.preventDefault();
var name = jQuery('.specific-bundle-modal').attr('data');
var requestData = {};
requestData["bundle_name"] = name;
if(jQuery(this).hasClass('_js_specific-bundle-public-shutdown-graceful')) {
requestData["graceful"] = true;
}
else {
requestData["graceful"] = false;
}
var xhr = new XMLHttpRequest();
xhr.open('UPDATE', 'api/server/shutdown', true);
xhr.send(JSON.stringify(requestData));
xhr.onloadend = function() {
if(xhr.status == 204) {
getPublicServerStatus(name);
}
else {
if(xhr.response) {
alert(xhr.response);
}
else {
alert('An error has occurred, please contact your webhost administrator.');
}
}
}
});

View file

@ -0,0 +1,25 @@
jQuery('._js_specific-bundle-public-start').on('click', function(e){
e.preventDefault();
var name = jQuery('.specific-bundle-modal').attr('data');
requestData = {};
requestData["bundle_name"] = name;
var xhr = new XMLHttpRequest();
xhr.open('UPDATE', 'api/server/start', true);
xhr.send(JSON.stringify(requestData));
xhr.onloadend = function() {
if(xhr.status == 204) {
getPublicServerStatus(name);
}
else {
if(xhr.response) {
alert(xhr.response);
}
else {
alert('An error has occurred, please contact your webhost administrator.');
}
}
}
});

View file

@ -10,6 +10,15 @@ jQuery('._js_log-clear').on('click', function(e){
case "server_errors":
title = "Server Error Log";
break;
case "public_errors":
title = "Public Error Log";
break;
case "account_errors":
title = "Account Error Log";
break;
case "public_load_time":
title = "Public Load Time Log";
break;
default:
return;
break;

View file

@ -169,6 +169,7 @@
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-danger _js_log-clear" data="">Clear Log</button>
<button type="button" class="btn d-none btn-warning _js_back-to-specific-bundle">Back to Bundle Management</button>
</div>
</div>
</div>
@ -230,6 +231,13 @@
<script type="text/javascript" src="assets/js/panelHandlers/bundles/manage.js"></script>
<script type="text/javascript" src="assets/js/panelHandlers/bundles/specific/server/status.js"></script>
<script type="text/javascript" src="assets/js/panelHandlers/bundles/specific/server/start.js"></script>
<script type="text/javascript" src="assets/js/panelHandlers/bundles/specific/server/shutdown.js"></script>
<script type="text/javascript" src="assets/js/panelHandlers/bundles/specific/server/restart.js"></script>
<script type="text/javascript" src="assets/js/panelHandlers/bundles/specific/server/maintenance.js"></script>
<script type="text/javascript" src="assets/js/panelHandlers/bundles/specific/log/view.js"></script>
<script type="text/javascript" src="assets/js/panelHandlers/bundles/specific/log/back.js"></script>
<script type="text/javascript" src="assets/js/panelHandlers/bundles/specific/open.js"></script>
<script type="text/javascript" src="assets/js/panelHandlers/bundles/specific/back.js"></script>