8.0.3 release

This commit is contained in:
2022-08-16 02:45:32 +00:00
parent 80417baf8e
commit 90946f90b1
5 changed files with 91 additions and 85 deletions

View File

@@ -20,10 +20,13 @@ dotnet publish -c Release -o ./../publish/ --no-self-contained -r linux-x64
2.7) in rockfish.last to remove **ALL** files and folders!! DANGER: /srv/coreapps/rockfish.last# rm * -r
2.8) BACKUP backup old version and db etc with this command run from /srv/coreapps folder:
2.71) STOP rockfish service
systemctl stop kestrel-rockfish.service
2.8) BACKUP backup old version and db etc with this command:
in rockfish.last to copy over all current rockfish files and folders:
root@ubuntu-s-1vcpu-1gb-amd-sfo3-01:/srv/coreapps/rockfish.last# cp -a ../rockfish/. .
@@ -35,6 +38,8 @@ If it won't start it's likely the .json config files are not present, copy back
3) COPY
Copy over to production server, safest is all files from publish into /srv/coreapps/rockfish
SKIP json files
.NET Core apps: /srv/coreapps
only need the .dll and the wwwroot folder contents,
remember not to delete the folders on the server only replace their contents because there are file permissions set

View File

@@ -25,13 +25,14 @@ namespace rockfishCore.Util
//Scheduleable users
private const string SERVICE_TECHS_FEATURE_NAME = "ServiceTechs";
//Add-on's / integrations
private const string OLI_FEATURE_NAME = "OLI";
private const string QBI_FEATURE_NAME = "QBI";
private const string QBOI_FEATURE_NAME = "QBOI";
//thse are now included so not relevant here but keeping for renaming for future subscription add-on's
// private const string OLI_FEATURE_NAME = "OLI";
// private const string QBI_FEATURE_NAME = "QBI";
// private const string QBOI_FEATURE_NAME = "QBOI";
//This feature name means it's a trial key
private const string TRIAL_FEATURE_NAME = "TrialMode";
//This feature name means it's a SAAS or rental mode key for month to month hosted service
private const string RENTAL_FEATURE_NAME = "Subscription";
private const string SUBSCRIPTION_FEATURE_NAME = "Subscription";
#region license classes
@@ -92,21 +93,21 @@ Plugins:
sb.AppendLine("Temporary license for evaluation");
continue;
}
if (f.Feature == RENTAL_FEATURE_NAME)
if (f.Feature == SUBSCRIPTION_FEATURE_NAME)
{
sb.AppendLine("Service / Rental license");
continue;
}
if (f.Feature == QBI_FEATURE_NAME)
{
sb.AppendLine("QuickBooks desktop integration option");
continue;
}
if (f.Feature == QBOI_FEATURE_NAME)
{
sb.AppendLine("QuickBooks online integration option");
sb.AppendLine("Subscription license");
continue;
}
// if (f.Feature == QBI_FEATURE_NAME)
// {
// sb.AppendLine("QuickBooks desktop integration option");
// continue;
// }
// if (f.Feature == QBOI_FEATURE_NAME)
// {
// sb.AppendLine("QuickBooks online integration option");
// continue;
// }
if (f.Feature == SERVICE_TECHS_FEATURE_NAME)
{
sb.AppendLine($"Scheduleable resources: {f.Count}");
@@ -215,7 +216,7 @@ Plugins:
{
get
{
return HasLicenseFeature(RENTAL_FEATURE_NAME);
return HasLicenseFeature(SUBSCRIPTION_FEATURE_NAME);
}
}
@@ -292,11 +293,11 @@ Plugins:
//flag as trial key not regular key
k.Features.Add(new LicenseFeature() { Feature = TRIAL_FEATURE_NAME, Count = 0 });
//flag it as a temporary expiring key so that the expiration date takes effect
k.Features.Add(new LicenseFeature() { Feature = RENTAL_FEATURE_NAME, Count = 0 });
k.Features.Add(new LicenseFeature() { Feature = SUBSCRIPTION_FEATURE_NAME, Count = 0 });
//add every possible feature
k.Features.Add(new LicenseFeature() { Feature = QBI_FEATURE_NAME, Count = 0 });
k.Features.Add(new LicenseFeature() { Feature = SERVICE_TECHS_FEATURE_NAME, Count = 1000 });
//k.Features.Add(new LicenseFeature() { Feature = QBI_FEATURE_NAME, Count = 0 });
k.Features.Add(new LicenseFeature() { Feature = SERVICE_TECHS_FEATURE_NAME, Count = 100 });
return GenerateRavenKey(k);
}
@@ -475,13 +476,13 @@ oArP0E2Vbow3JMxq/oeXmHbrLMLQfYyXwFmciLFigOtkd45bfHdrbA==
k.LicenseFormat = "8";
k.RegisteredTo = "GZ TestCo Inc.";
k.DbId = dbid;
k.Features.Add(new LicenseFeature() { Feature = QBI_FEATURE_NAME, Count = 0 });
k.Features.Add(new LicenseFeature() { Feature = QBOI_FEATURE_NAME, Count = 0 });
k.Features.Add(new LicenseFeature() { Feature = OLI_FEATURE_NAME, Count = 0 });
// k.Features.Add(new LicenseFeature() { Feature = QBI_FEATURE_NAME, Count = 0 });
// k.Features.Add(new LicenseFeature() { Feature = QBOI_FEATURE_NAME, Count = 0 });
// k.Features.Add(new LicenseFeature() { Feature = OLI_FEATURE_NAME, Count = 0 });
k.Features.Add(new LicenseFeature() { Feature = SERVICE_TECHS_FEATURE_NAME, Count = 1000 });
k.MaintenanceExpiration = k.LicenseExpiration = DateTime.UtcNow.AddMonths(1);
k.Features.Add(new LicenseFeature() { Feature = TRIAL_FEATURE_NAME, Count = 0 });
k.Features.Add(new LicenseFeature() { Feature = RENTAL_FEATURE_NAME, Count = 0 });
k.Features.Add(new LicenseFeature() { Feature = SUBSCRIPTION_FEATURE_NAME, Count = 0 });
return GenerateRavenKey(k);
}

View File

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

View File

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

View File

@@ -49,9 +49,9 @@
<label for="options">Additional features</label>
<select class="form-control" name="options" id="options" multiple>
<option value="Subscription">Subscription</option>
<option value="QBI">QuickBooks desktop</option>
<option value="QBOI">QuickBooks online</option>
<option value="OUTLOOK">Outlook</option>
<option value="XXXX">XXXX</option>
<option value="XXXXX">XXXXX</option>
<option value="XXXXXX">XXXXXX</option>
</select>
</div>
</div>