diff --git a/apps/desktop/src/auth/lock.component.html b/apps/desktop/src/auth/lock.component.html
index 9f71a691963..dcd04fd15d8 100644
--- a/apps/desktop/src/auth/lock.component.html
+++ b/apps/desktop/src/auth/lock.component.html
@@ -73,4 +73,9 @@
+
+
+ {{ (deprecated ? "windows8Deprecated" : "windows8SoonDeprecated") | i18n }}
+
+
diff --git a/apps/desktop/src/auth/lock.component.ts b/apps/desktop/src/auth/lock.component.ts
index 3d6774bb104..edab4cac891 100644
--- a/apps/desktop/src/auth/lock.component.ts
+++ b/apps/desktop/src/auth/lock.component.ts
@@ -1,3 +1,5 @@
+import * as os from "os";
+
import { Component, NgZone } from "@angular/core";
import { ActivatedRoute, Router } from "@angular/router";
import { ipcRenderer } from "electron";
@@ -27,6 +29,8 @@ const BroadcasterSubscriptionId = "LockComponent";
})
export class LockComponent extends BaseLockComponent {
private deferFocus: boolean = null;
+ protected oldOs = false;
+ protected deprecated = false;
constructor(
router: Router,
@@ -66,6 +70,20 @@ export class LockComponent extends BaseLockComponent {
policyService,
passwordGenerationService
);
+
+ if (process.platform === "win32") {
+ try {
+ const release = os.release();
+ const majorVersion = parseInt(release.split(".")[0], 10);
+
+ this.oldOs = majorVersion < 10;
+ if (new Date() > new Date("2023-05-31")) {
+ this.deprecated = true;
+ }
+ } catch (e) {
+ this.logService.error(e);
+ }
+ }
}
async ngOnInit() {
diff --git a/apps/desktop/src/auth/login/login.component.html b/apps/desktop/src/auth/login/login.component.html
index 31eceb77696..bdea479b708 100644
--- a/apps/desktop/src/auth/login/login.component.html
+++ b/apps/desktop/src/auth/login/login.component.html
@@ -159,6 +159,12 @@
+
+
+
+ {{ (deprecated ? "windows8Deprecated" : "windows8SoonDeprecated") | i18n }}
+
+
diff --git a/apps/desktop/src/auth/login/login.component.ts b/apps/desktop/src/auth/login/login.component.ts
index 4aca3cd0e76..fd1bb373a64 100644
--- a/apps/desktop/src/auth/login/login.component.ts
+++ b/apps/desktop/src/auth/login/login.component.ts
@@ -1,3 +1,5 @@
+import * as os from "os";
+
import { Component, NgZone, OnDestroy, ViewChild, ViewContainerRef } from "@angular/core";
import { FormBuilder } from "@angular/forms";
import { ActivatedRoute, Router } from "@angular/router";
@@ -37,6 +39,8 @@ export class LoginComponent extends BaseLoginComponent implements OnDestroy {
showingModal = false;
private deferFocus: boolean = null;
+ protected oldOs = false;
+ protected deprecated = false;
get loggedEmail() {
return this.formGroup.value.email;
@@ -89,6 +93,20 @@ export class LoginComponent extends BaseLoginComponent implements OnDestroy {
super.onSuccessfulLogin = () => {
return syncService.fullSync(true);
};
+
+ if (process.platform === "win32") {
+ try {
+ const release = os.release();
+ const majorVersion = parseInt(release.split(".")[0], 10);
+
+ this.oldOs = majorVersion < 10;
+ if (new Date() > new Date("2023-05-31")) {
+ this.deprecated = true;
+ }
+ } catch (e) {
+ this.logService.error(e);
+ }
+ }
}
async ngOnInit() {
diff --git a/apps/desktop/src/locales/en/messages.json b/apps/desktop/src/locales/en/messages.json
index 34a6974c7aa..c0006ce726f 100644
--- a/apps/desktop/src/locales/en/messages.json
+++ b/apps/desktop/src/locales/en/messages.json
@@ -2233,5 +2233,13 @@
"example": "14"
}
}
+ },
+ "windows8SoonDeprecated": {
+ "message": "The operating system you are using will no longer be supported after the 2023.5.0 release. Upgrade to a supported operating system. Continuing without updating your operating system may result in unexpected behavior or security risks.",
+ "description": "Windows 8, 8.1 and Server 2012 R2 are no longer supported by Electron & Chromium. Show a notice on the login and lock screen while 2023.4.0 is the active version."
+ },
+ "windows8Deprecated": {
+ "message": "The operating system you are using is no longer supported. Continuing without updating your operating system may result in unexpected behavior.",
+ "description": "Windows 8, 8.1 and Server 2012 R2 are no longer supported by Electron & Chromium. Show a notice on the login and lock screen after 2023.5.0 is released."
}
}
diff --git a/apps/desktop/src/scss/pages.scss b/apps/desktop/src/scss/pages.scss
index 3db75845fb0..13d2f514213 100644
--- a/apps/desktop/src/scss/pages.scss
+++ b/apps/desktop/src/scss/pages.scss
@@ -272,3 +272,13 @@
}
}
}
+
+// TODO: Remove after 2023.4 release
+.os-deprecated {
+ margin-top: 20px;
+ width: 500px;
+}
+
+#lock-page {
+ flex-direction: column;
+}