This commit is contained in:
2018-07-27 20:34:49 +00:00
parent c631ada380
commit c4a9e27b5f
7 changed files with 268 additions and 199 deletions

View File

@@ -26,137 +26,163 @@ namespace rockfishCore.Controllers
//status of ops
[HttpGet("status")]
public dtoOpsStatus GetOpsStatus()
[HttpGet("status/{service}")]
public dtoOpsStatus GetOpsStatus([FromRoute] string service)
{
dtoOpsStatus Ret = new dtoOpsStatus();
// //TESTING
// Ret.OpsCheckError="Fake error message\r\nwith more fake text\r\neot";
// Ret.MailMirrorOK=true;
// Ret.ContactFormOK=true;
try
{
Ret.MailMirrorOK = RfMail.MailIsMirroringProperly();
switch (service)
{
case "MailMirror":
Ret.Status = true;//RfMail.MailIsMirroringProperly();
break;
case "AyaNovaSite":
Ret.Status = false;//OpsDiagnostics.CheckWebsite("https://www.ayanova.com/", "Ground Zero Tech-Works Inc.");
break;
case "APISite":
Ret.Status = true;// OpsDiagnostics.CheckWebsite("https://api.ayanova.com/", "WorkorderTypes Enumeration");
break;
case "ContactForm":
Ret.Status = false; //OpsDiagnostics.CheckWebsite("https://contact.ayanova.com/contact", "Contact.Email");
break;
case "RequestForm":
Ret.Status = true;// OpsDiagnostics.CheckWebsite("https://contact.ayanova.com/request", "Contact.Email");
break;
case "RequestLiteForm":
Ret.Status = false; //OpsDiagnostics.CheckWebsite("https://contact.ayanova.com/requestlite", "Contact.Email");
break;
case "Subversion":
Ret.Status = true; //OpsDiagnostics.CheckWebsite("http://svn.helloayanova.com:3343/csvn/login/auth", "Subversion Edge");
break;
case "Forum":
Ret.Status = false; //OpsDiagnostics.CheckWebsite("http://forum.ayanova.com/", "AyaNova support resources");
break;
case "DevOps":
Ret.Status = true; //OpsDiagnostics.CheckWebsite("https://test.helloayanova.com/api/v8/", "AyaNova server");
break;
case "Backup":
Ret.Status = false;//OpsDiagnostics.VerifyBackups();
break;
default:
Ret.Status = false;
Ret.ServiceCheckError=$"Unknown service: \"{service}\"";
break;
}
}
catch (Exception ex)
{
Ret.OpsCheckError += $"Mail mirror: {ex.Message}\r\n";
Ret.ServiceCheckError += $"{service}: {ex.Message}\r\n";
}
try
{
Ret.AyaNovaSiteOK = OpsDiagnostics.CheckWebsite("https://www.ayanova.com/", "Ground Zero Tech-Works Inc.");
}
catch (Exception ex)
{
Ret.OpsCheckError += $"AyaNova site: {ex.Message}\r\n";
}
Ret.ServiceCheckError=$"test {service} error";
try
{
Ret.APISiteOK = OpsDiagnostics.CheckWebsite("https://api.ayanova.com/", "WorkorderTypes Enumeration");
}
catch (Exception ex)
{
Ret.OpsCheckError += $"API site: {ex.Message}\r\n";
}
// try
// {
// Ret.MailMirrorOK = RfMail.MailIsMirroringProperly();
// }
// catch (Exception ex)
// {
// Ret.OpsCheckError += $"Mail mirror: {ex.Message}\r\n";
// }
try
{
Ret.ContactFormOK = OpsDiagnostics.CheckWebsite("https://contact.ayanova.com/contact", "Contact.Email");
}
catch (Exception ex)
{
Ret.OpsCheckError += $"Contact form: {ex.Message}\r\n";
}
// try
// {
// Ret.AyaNovaSiteOK = OpsDiagnostics.CheckWebsite("https://www.ayanova.com/", "Ground Zero Tech-Works Inc.");
// }
// catch (Exception ex)
// {
// Ret.OpsCheckError += $"AyaNova site: {ex.Message}\r\n";
// }
try
{
Ret.RequestFormOK = OpsDiagnostics.CheckWebsite("https://contact.ayanova.com/request", "Contact.Email");
}
catch (Exception ex)
{
Ret.OpsCheckError += $"Request form: {ex.Message}\r\n";
}
// try
// {
// Ret.APISiteOK = OpsDiagnostics.CheckWebsite("https://api.ayanova.com/", "WorkorderTypes Enumeration");
// }
// catch (Exception ex)
// {
// Ret.OpsCheckError += $"API site: {ex.Message}\r\n";
// }
try
{
Ret.RequestLiteFormOK = OpsDiagnostics.CheckWebsite("https://contact.ayanova.com/requestlite", "Contact.Email");
}
catch (Exception ex)
{
Ret.OpsCheckError += $"RequestLite form: {ex.Message}\r\n";
}
// try
// {
// Ret.ContactFormOK = OpsDiagnostics.CheckWebsite("https://contact.ayanova.com/contact", "Contact.Email");
// }
// catch (Exception ex)
// {
// Ret.OpsCheckError += $"Contact form: {ex.Message}\r\n";
// }
try
{
Ret.SubversionOK = OpsDiagnostics.CheckWebsite("http://svn.helloayanova.com:3343/csvn/login/auth", "Subversion Edge");
}
catch (Exception ex)
{
Ret.OpsCheckError += $"Subversion: {ex.Message}\r\n";
}
// try
// {
// Ret.RequestFormOK = OpsDiagnostics.CheckWebsite("https://contact.ayanova.com/request", "Contact.Email");
// }
// catch (Exception ex)
// {
// Ret.OpsCheckError += $"Request form: {ex.Message}\r\n";
// }
try
{
Ret.ForumOK = OpsDiagnostics.CheckWebsite("http://forum.ayanova.com/", "AyaNova support resources");
}
catch (Exception ex)
{
Ret.OpsCheckError += $"Forum: {ex.Message}\r\n";
}
// try
// {
// Ret.RequestLiteFormOK = OpsDiagnostics.CheckWebsite("https://contact.ayanova.com/requestlite", "Contact.Email");
// }
// catch (Exception ex)
// {
// Ret.OpsCheckError += $"RequestLite form: {ex.Message}\r\n";
// }
try
{
Ret.DevOpsOK = OpsDiagnostics.CheckWebsite("https://test.helloayanova.com/api/v8/", "AyaNova server");
}
catch (Exception ex)
{
Ret.OpsCheckError += $"DevOps: {ex.Message}\r\n";
}
// try
// {
// Ret.SubversionOK = OpsDiagnostics.CheckWebsite("http://svn.helloayanova.com:3343/csvn/login/auth", "Subversion Edge");
// }
// catch (Exception ex)
// {
// Ret.OpsCheckError += $"Subversion: {ex.Message}\r\n";
// }
try
{
Ret.BackupOK = OpsDiagnostics.VerifyBackups();
}
catch (Exception ex)
{
Ret.OpsCheckError += $"Backup: {ex.Message}\r\n";
}
// try
// {
// Ret.ForumOK = OpsDiagnostics.CheckWebsite("http://forum.ayanova.com/", "AyaNova support resources");
// }
// catch (Exception ex)
// {
// Ret.OpsCheckError += $"Forum: {ex.Message}\r\n";
// }
// try
// {
// Ret.DevOpsOK = OpsDiagnostics.CheckWebsite("https://test.helloayanova.com/api/v8/", "AyaNova server");
// }
// catch (Exception ex)
// {
// Ret.OpsCheckError += $"DevOps: {ex.Message}\r\n";
// }
// try
// {
// Ret.BackupOK = OpsDiagnostics.VerifyBackups();
// }
// catch (Exception ex)
// {
// Ret.OpsCheckError += $"Backup: {ex.Message}\r\n";
// }
return Ret;
}
public class dtoOpsStatus
{
public bool MailMirrorOK;
public bool ForumOK;
public bool AyaNovaSiteOK;
public bool APISiteOK;
public bool ContactFormOK;
public bool RequestFormOK;
public bool RequestLiteFormOK;
public bool SubversionOK;
public bool DevOpsOK;
public bool BackupOK;
public string OpsCheckError;
public bool Status;
public string ServiceCheckError;
public dtoOpsStatus()
{
MailMirrorOK = false;
ForumOK = false;
AyaNovaSiteOK = false;
APISiteOK = false;
ContactFormOK = false;
RequestFormOK = false;
RequestLiteFormOK = false;
SubversionOK = false;
DevOpsOK = false;
BackupOK = false;
OpsCheckError = string.Empty;
Status = false;
ServiceCheckError = string.Empty;
}
}

View File

@@ -2,7 +2,7 @@ namespace rockfishCore.Util
{
public static class RfVersion
{
public const string NumberOnly="6.5";
public const string NumberOnly="6.6";
public const string Full = "Rockfish server " + NumberOnly;
}
}

View File

@@ -11,69 +11,69 @@
<title>Rockfish loading....</title>
<!-- ICONS / MANIFEST -->
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png?rfv=6.5">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png?rfv=6.5">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png?rfv=6.5">
<link rel="manifest" href="/manifest.json?rfv=6.5">
<link rel="mask-icon" href="/safari-pinned-tab.svg?rfv=6.5" color="#5bbad5">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png?rfv=6.6">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png?rfv=6.6">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png?rfv=6.6">
<link rel="manifest" href="/manifest.json?rfv=6.6">
<link rel="mask-icon" href="/safari-pinned-tab.svg?rfv=6.6" color="#5bbad5">
<meta name="theme-color" content="#ffffff">
<!-- 3rd party components fonts and icons -->
<link href="css/materialdesignicons.min.css?rfv=6.5" media="all" rel="stylesheet" type="text/css" />
<link rel="stylesheet" href="css/bootstrap.min.css?rfv=6.5" type="text/css" />
<link rel="stylesheet" href="css/app.css?rfv=6.5" type="text/css" />
<link rel="stylesheet" href="css/mdi-bs4-compat.css?rfv=6.5" type="text/css" />
<link href="css/materialdesignicons.min.css?rfv=6.6" media="all" rel="stylesheet" type="text/css" />
<link rel="stylesheet" href="css/bootstrap.min.css?rfv=6.6" type="text/css" />
<link rel="stylesheet" href="css/app.css?rfv=6.6" type="text/css" />
<link rel="stylesheet" href="css/mdi-bs4-compat.css?rfv=6.6" type="text/css" />
<!-- third-party javascript -->
<script src="js/lib/jquery-3.3.1.min.js?rfv=6.5"></script>
<script src="js/lib/page.js?rfv=6.5"></script>
<script src="js/lib/jquery.event.gevent.js?rfv=6.5"></script>
<script src="js/lib/jquery.gzserialize.js?rfv=6.5"></script>
<script src="js/lib/handlebars.runtime-v4.0.5.js?rfv=6.5"></script>
<script src="js/lib/store.min.js?rfv=6.5"></script>
<script src="js/lib/jquery.autocomplete.min.js?rfv=6.5"></script>
<script src="js/lib/moment.min.js?rfv=6.5"></script>
<script src="js/lib/jquery-3.3.1.min.js?rfv=6.6"></script>
<script src="js/lib/page.js?rfv=6.6"></script>
<script src="js/lib/jquery.event.gevent.js?rfv=6.6"></script>
<script src="js/lib/jquery.gzserialize.js?rfv=6.6"></script>
<script src="js/lib/handlebars.runtime-v4.0.5.js?rfv=6.6"></script>
<script src="js/lib/store.min.js?rfv=6.6"></script>
<script src="js/lib/jquery.autocomplete.min.js?rfv=6.6"></script>
<script src="js/lib/moment.min.js?rfv=6.6"></script>
<!-- our javascript -->
<script src="js/index.js?rfv=6.5"></script>
<script src="js/app.util.js?rfv=6.5"></script>
<script src="js/app.api.js?rfv=6.5"></script>
<script src="js/app.utilB.js?rfv=6.5"></script>
<script src="js/app.nav.js?rfv=6.5"></script>
<script src="js/app.shell.js?rfv=6.5"></script>
<script src="js/app.fourohfour.js?rfv=6.5"></script>
<script src="js/app.authenticate.js?rfv=6.5"></script>
<script src="js/app.customers.js?rfv=6.5"></script>
<script src="js/app.customerEdit.js?rfv=6.5"></script>
<script src="js/app.customerSites.js?rfv=6.5"></script>
<script src="js/app.customerSiteEdit.js?rfv=6.5"></script>
<script src="js/app.purchases.js?rfv=6.5"></script>
<script src="js/app.purchaseEdit.js?rfv=6.5"></script>
<script src="js/app.license.js?rfv=6.5"></script>
<script src="js/app.licenseTemplates.js?rfv=6.5"></script>
<script src="js/app.licenseRequestEdit.js?rfv=6.5"></script>
<script src="js/app.licenses.js?rfv=6.5"></script>
<script src="js/app.licenseView.js?rfv=6.5"></script>
<script src="js/app.reportData.js?rfv=6.5"></script>
<script src="js/app.reportDataProdEmail.js?rfv=6.5"></script>
<script src="js/app.reportDataExpires.js?rfv=6.5"></script>
<script src="js/app.search.js?rfv=6.5"></script>
<script src="js/app.subscription.js?rfv=6.5"></script>
<script src="js/app.subnotify.js?rfv=6.5"></script>
<script src="js/app.templates.js?rfv=6.5"></script>
<script src="js/app.templateEdit.js?rfv=6.5"></script>
<script src="js/app.inbox.js?rfv=6.5"></script>
<script src="js/app.mailEdit.js?rfv=6.5"></script>
<script src="js/app.rfcaseEdit.js?rfv=6.5"></script>
<script src="js/app.rfcases.js?rfv=6.5"></script>
<script src="js/app.rfsettings.js?rfv=6.5"></script>
<script src="js/app.ops.js?rfv=6.5"></script>
<script src="js/index.js?rfv=6.6"></script>
<script src="js/app.util.js?rfv=6.6"></script>
<script src="js/app.api.js?rfv=6.6"></script>
<script src="js/app.utilB.js?rfv=6.6"></script>
<script src="js/app.nav.js?rfv=6.6"></script>
<script src="js/app.shell.js?rfv=6.6"></script>
<script src="js/app.fourohfour.js?rfv=6.6"></script>
<script src="js/app.authenticate.js?rfv=6.6"></script>
<script src="js/app.customers.js?rfv=6.6"></script>
<script src="js/app.customerEdit.js?rfv=6.6"></script>
<script src="js/app.customerSites.js?rfv=6.6"></script>
<script src="js/app.customerSiteEdit.js?rfv=6.6"></script>
<script src="js/app.purchases.js?rfv=6.6"></script>
<script src="js/app.purchaseEdit.js?rfv=6.6"></script>
<script src="js/app.license.js?rfv=6.6"></script>
<script src="js/app.licenseTemplates.js?rfv=6.6"></script>
<script src="js/app.licenseRequestEdit.js?rfv=6.6"></script>
<script src="js/app.licenses.js?rfv=6.6"></script>
<script src="js/app.licenseView.js?rfv=6.6"></script>
<script src="js/app.reportData.js?rfv=6.6"></script>
<script src="js/app.reportDataProdEmail.js?rfv=6.6"></script>
<script src="js/app.reportDataExpires.js?rfv=6.6"></script>
<script src="js/app.search.js?rfv=6.6"></script>
<script src="js/app.subscription.js?rfv=6.6"></script>
<script src="js/app.subnotify.js?rfv=6.6"></script>
<script src="js/app.templates.js?rfv=6.6"></script>
<script src="js/app.templateEdit.js?rfv=6.6"></script>
<script src="js/app.inbox.js?rfv=6.6"></script>
<script src="js/app.mailEdit.js?rfv=6.6"></script>
<script src="js/app.rfcaseEdit.js?rfv=6.6"></script>
<script src="js/app.rfcases.js?rfv=6.6"></script>
<script src="js/app.rfsettings.js?rfv=6.6"></script>
<script src="js/app.ops.js?rfv=6.6"></script>
<!-- handlebars templates -->
<script src="js/templates/templates.js?rfv=6.5"></script>
<script src="js/templates/templates.js?rfv=6.6"></script>
<script>
@@ -103,7 +103,7 @@ window.onerror = function ( error ) {
<body class="rf-body">
<div id="app" class="container"></div>
<script src="js/lib/bootstrap.min.js?rfv=6.5"></script>
<script src="js/lib/bootstrap.min.js?rfv=6.6"></script>
</body>
</html>

View File

@@ -27,7 +27,7 @@ app.api = (function() {
generateFromRequest,
licenseEmailResponse;
RockFishVersion = "6.5";
RockFishVersion = "6.6";
//////////////////////////////////////////////////////////////////////////////////////
// NOT AUTHORIZED ERROR HANDLER

View File

@@ -12,7 +12,7 @@ app.ops = (function() {
//---------------- BEGIN MODULE SCOPE VARIABLES --------------
var stateMap = {},
configModule,
generateItem,
checkService,
initModule;
//----------------- END MODULE SCOPE VARIABLES ---------------
@@ -20,19 +20,41 @@ app.ops = (function() {
//////////////////
//Generate list item
//
generateItem = function(okStatus, label) {
checkService = function(service) {
// var okClassFragment = okStatus
// ? "mdi-check-circle text-success"
// : "mdi-alert text-danger";
var okClassFragment = okStatus
? "mdi-check-circle text-success"
: "mdi-alert text-danger";
// return (
// '<h4><i class="mdi mdi-36px ' +
// okClassFragment +
// '"></i> ' +
// label +
// "</h4>"
// );
return (
'<h4><i class="mdi mdi-36px ' +
okClassFragment +
'"></i> ' +
label +
"</h4>"
);
app.api.get("ops/status/" + service, function(res) {
if (res.error) {
$.gevent.publish("app-show-error", res.msg);
} else {
if (res.ServiceCheckError) {
var errorText = $("#rf-ops-error").text();
errorText += "\r\n";
errorText += res.ServiceCheckError;
$("#rf-ops-error").text(errorText);
}
var serviceElement = $("#" + service);
serviceElement.removeClass("mdi-help-circle-outline text-warning");
if (res.status == true) {
serviceElement.addClass("mdi-check-circle text-success");
} else {
serviceElement.addClass("mdi-alert text-danger");
}
//remove ? class and warning class
//add appropriate icon and text color class
}
});
};
//-------------------- END UTILITY METHODS -------------------
@@ -59,37 +81,17 @@ app.ops = (function() {
}
$container.html(Handlebars.templates["app.ops"]({}));
$("#rf-ops-error").text("");
$("#rf-ops-status").html("<h4>Checking...</h4>");
// $("#rf-ops-status").html("<h4>Checking...</h4>");
//Context menu
app.nav.contextClear();
app.api.get("ops/status/", function(res) {
if (res.error) {
$.gevent.publish("app-show-error", res.msg);
} else {
if (res.opsCheckError) {
$("#rf-ops-error").text(res.opsCheckError);
}
var generatedHtml = "";
generatedHtml += generateItem(res.mailMirrorOK, "Mail & mirror");
generatedHtml += generateItem(res.ayaNovaSiteOK, "AyaNova site");
generatedHtml += generateItem(res.backupOK, "Backup");
generatedHtml += generateItem(res.contactFormOK, "Contact form");
generatedHtml += generateItem(res.requestFormOK, "Request form");
generatedHtml += generateItem(
res.requestLiteFormOK,
"Request lite form"
);
generatedHtml += generateItem(res.forumOK, "Forum");
generatedHtml += generateItem(res.subversionOK, "Subversion");
generatedHtml += generateItem(res.devOpsOK, "Devops site");
generatedHtml += generateItem(res.apiSiteOK, "API site");
$("#rf-ops-status").html(generatedHtml);
}
});
checkService("MailMirror");
checkService("AyaNovaSite");
checkService("APISite");
checkService("ContactForm");
checkService("RequestForm");
checkService("Backup");
};
//PUBLIC METHODS

View File

@@ -1,5 +1,46 @@
<div>
<pre id="rf-ops-error" class="text-danger"></pre>
<div id="rf-ops-status">
<h4>
<i id="MailMirror" class="mdi mdi-36px mdi-help-circle-outline text-warning"></i>
Mail / mirror
</h4>
<h4>
<i id="AyaNovaSite" class="mdi mdi-36px mdi-help-circle-outline text-warning"></i>
AyaNova site
</h4>
<h4>
<i id="Backup" class="mdi mdi-36px mdi-help-circle-outline text-warning"></i>
Backup
</h4>
<h4>
<i id="ContactForm" class="mdi mdi-36px mdi-help-circle-outline text-warning"></i>
Contact form
</h4>
<h4>
<i id="RequestForm" class="mdi mdi-36px mdi-help-circle-outline text-warning"></i>
Request form
</h4>
<h4>
<i id="RequestLiteForm" class="mdi mdi-36px mdi-help-circle-outline text-warning"></i>
Request lite form
</h4>
<h4>
<i id="Forum" class="mdi mdi-36px mdi-help-circle-outline text-warning"></i>
Forum
</h4>
<h4>
<i id="Subversion" class="mdi mdi-36px mdi-help-circle-outline text-warning"></i>
Subversion
</h4>
<h4>
<i id="DevOps" class="mdi mdi-36px mdi-help-circle-outline text-warning"></i>
DevOps server
</h4>
<h4>
<i id="APISite" class="mdi mdi-36px mdi-help-circle-outline text-warning"></i>
API site
</h4>
</div>
</div>
</div>

File diff suppressed because one or more lines are too long