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.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 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: 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/. . 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 3) COPY
Copy over to production server, safest is all files from publish into /srv/coreapps/rockfish Copy over to production server, safest is all files from publish into /srv/coreapps/rockfish
SKIP json files
.NET Core apps: /srv/coreapps .NET Core apps: /srv/coreapps
only need the .dll and the wwwroot folder contents, 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 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 //Scheduleable users
private const string SERVICE_TECHS_FEATURE_NAME = "ServiceTechs"; private const string SERVICE_TECHS_FEATURE_NAME = "ServiceTechs";
//Add-on's / integrations //Add-on's / integrations
private const string OLI_FEATURE_NAME = "OLI"; //thse are now included so not relevant here but keeping for renaming for future subscription add-on's
private const string QBI_FEATURE_NAME = "QBI"; // private const string OLI_FEATURE_NAME = "OLI";
private const string QBOI_FEATURE_NAME = "QBOI"; // private const string QBI_FEATURE_NAME = "QBI";
// private const string QBOI_FEATURE_NAME = "QBOI";
//This feature name means it's a trial key //This feature name means it's a trial key
private const string TRIAL_FEATURE_NAME = "TrialMode"; 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 //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 #region license classes
@@ -92,21 +93,21 @@ Plugins:
sb.AppendLine("Temporary license for evaluation"); sb.AppendLine("Temporary license for evaluation");
continue; continue;
} }
if (f.Feature == RENTAL_FEATURE_NAME) if (f.Feature == SUBSCRIPTION_FEATURE_NAME)
{ {
sb.AppendLine("Service / Rental license"); 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; 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) if (f.Feature == SERVICE_TECHS_FEATURE_NAME)
{ {
sb.AppendLine($"Scheduleable resources: {f.Count}"); sb.AppendLine($"Scheduleable resources: {f.Count}");
@@ -215,7 +216,7 @@ Plugins:
{ {
get get
{ {
return HasLicenseFeature(RENTAL_FEATURE_NAME); return HasLicenseFeature(SUBSCRIPTION_FEATURE_NAME);
} }
} }
@@ -292,11 +293,11 @@ Plugins:
//flag as trial key not regular key //flag as trial key not regular key
k.Features.Add(new LicenseFeature() { Feature = TRIAL_FEATURE_NAME, Count = 0 }); 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 //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 //add every possible feature
k.Features.Add(new LicenseFeature() { Feature = QBI_FEATURE_NAME, Count = 0 }); //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 = SERVICE_TECHS_FEATURE_NAME, Count = 100 });
return GenerateRavenKey(k); return GenerateRavenKey(k);
} }
@@ -475,13 +476,13 @@ oArP0E2Vbow3JMxq/oeXmHbrLMLQfYyXwFmciLFigOtkd45bfHdrbA==
k.LicenseFormat = "8"; k.LicenseFormat = "8";
k.RegisteredTo = "GZ TestCo Inc."; k.RegisteredTo = "GZ TestCo Inc.";
k.DbId = dbid; k.DbId = dbid;
k.Features.Add(new LicenseFeature() { Feature = QBI_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 = QBOI_FEATURE_NAME, Count = 0 });
k.Features.Add(new LicenseFeature() { Feature = OLI_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.Features.Add(new LicenseFeature() { Feature = SERVICE_TECHS_FEATURE_NAME, Count = 1000 });
k.MaintenanceExpiration = k.LicenseExpiration = DateTime.UtcNow.AddMonths(1); 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 = 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); return GenerateRavenKey(k);
} }

View File

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

View File

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

View File

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