-
-
- {{ 'TOOLTIP.SIGN_IN_USERNAME' | translate }}
-
-
diff --git a/src/portal/src/app/account/sign-in/sign-in.component.scss b/src/portal/src/app/account/sign-in/sign-in.component.scss
index dec695bf4..3ca24911d 100644
--- a/src/portal/src/app/account/sign-in/sign-in.component.scss
+++ b/src/portal/src/app/account/sign-in/sign-in.component.scss
@@ -14,31 +14,6 @@
top: -5px;
}
-.popular-repo-wrapper {
- background-color: white;
- min-height: 100vh;
- display: flex;
- flex-grow: 1;
- margin-top: 24px;
- justify-content: center;
- flex-direction: column;
- height: auto;
- position: relative;
- border-left: 1px solid #eee;
-}
-
-.repo-container {
- width: 100%;
- margin-top: -210px;
-}
-
-.more-info-link {
- position: relative;
- top: 80px;
- left: 294px;
- padding-right: 36px;
-}
-
.tm-font {
font-size: 14px !important;
position: relative;
@@ -59,10 +34,6 @@
background:transparent;
}
}
-.login-oidc{
- margin-top: 50px;
-}
-
.reset-label {
font-size:inherit;
color:inherit;
@@ -81,4 +52,42 @@
}
.pwd-input {
padding-right: 26px;
-}
\ No newline at end of file
+}
+
+.divider-container {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+}
+.divider {
+ margin: 0;
+ width: 8.5rem;
+}
+.login {
+ padding-bottom: 180px;
+}
+.back-icon {
+ position: absolute;
+ top: 1rem;
+ display: flex;
+ align-items: center;
+ color: #007cbb;
+ font-size: 16px;
+ cursor: pointer;
+}
+.margin-left-3 {
+ margin-left: 3px;
+}
+.title {
+ position: absolute;
+ top: 10rem
+}
+.login-group {
+ width: 70%;
+ position: absolute;
+ top: 10rem
+}
+.more-info {
+ text-align: right;
+ padding-top: 2rem;
+}
diff --git a/src/portal/src/app/account/sign-in/sign-in.component.ts b/src/portal/src/app/account/sign-in/sign-in.component.ts
index 0bf236a47..17b914b5d 100644
--- a/src/portal/src/app/account/sign-in/sign-in.component.ts
+++ b/src/portal/src/app/account/sign-in/sign-in.component.ts
@@ -28,6 +28,7 @@ import { AboutDialogComponent } from "../../shared/components/about-dialog/about
import { CommonRoutes, CONFIG_AUTH_MODE } from "../../shared/entities/shared.const";
import { SignInCredential } from "./sign-in-credential";
import { UserPermissionService } from "../../shared/services";
+import {finalize} from "rxjs/operators";
// Define status flags for signing in states
export const signInStatusNormal = 0;
@@ -45,7 +46,6 @@ const expireDays = 10;
export class SignInComponent implements AfterViewChecked, OnInit {
showPwd: boolean = false;
redirectUrl: string = "";
- appConfig: AppConfig = new AppConfig();
// Remeber me indicator
rememberMe: boolean = false;
rememberedName: string = "";
@@ -68,6 +68,8 @@ export class SignInComponent implements AfterViewChecked, OnInit {
password: ""
};
isCoreServiceAvailable: boolean = true;
+ steps: number = 1;
+ hasLoadedAppConfig: boolean = false;
constructor(
private router: Router,
private session: SessionService,
@@ -88,15 +90,6 @@ export class SignInComponent implements AfterViewChecked, OnInit {
this.customAppTitle = customSkinObj.loginTitle;
}
}
-
- // Before login: Make sure the updated configuration can be loaded
- this.appConfigService.load()
- .subscribe(updatedConfig => this.appConfig = updatedConfig
- , error => {
- // Catch the error
- console.error("Failed to load bootstrap options with error: ", error);
- });
-
this.route.queryParams
.subscribe(params => {
this.redirectUrl = params["redirect_url"] || "";
@@ -117,7 +110,7 @@ export class SignInComponent implements AfterViewChecked, OnInit {
// App title
public get appTitle(): string {
- if (this.appConfig && this.appConfig.with_admiral) {
+ if (this.appConfigService.getConfig() && this.appConfigService.getConfig().with_admiral) {
return "APP_TITLE.VIC";
}
@@ -140,11 +133,11 @@ export class SignInComponent implements AfterViewChecked, OnInit {
// Whether show the 'sign up' link
public get selfSignUp(): boolean {
- return this.appConfig.auth_mode === CONFIG_AUTH_MODE.DB_AUTH
- && this.appConfig.self_registration;
+ return this.appConfigService.getConfig() && this.appConfigService.getConfig().auth_mode === CONFIG_AUTH_MODE.DB_AUTH
+ && this.appConfigService.getConfig().self_registration;
}
public get isOidcLoginMode(): boolean {
- return this.appConfig.auth_mode === CONFIG_AUTH_MODE.OIDC_AUTH;
+ return this.appConfigService.getConfig() && this.appConfigService.getConfig().auth_mode === CONFIG_AUTH_MODE.OIDC_AUTH;
}
clickRememberMe($event: any): void {
if ($event && $event.target) {
@@ -261,11 +254,7 @@ export class SignInComponent implements AfterViewChecked, OnInit {
// after login successfully: Make sure the updated configuration can be loaded
this.appConfigService.load()
- .subscribe(updatedConfig => this.appConfig = updatedConfig
- , error => {
- // Catch the error
- console.error("Failed to load bootstrap options with error: ", error);
- });
+ .subscribe();
}, error => {
// 403 oidc login no body;
if (this.isOidcLoginMode && error && error.status === 403) {
diff --git a/src/portal/src/i18n/lang/de-de-lang.json b/src/portal/src/i18n/lang/de-de-lang.json
index e7467afc5..c9939ae62 100644
--- a/src/portal/src/i18n/lang/de-de-lang.json
+++ b/src/portal/src/i18n/lang/de-de-lang.json
@@ -14,6 +14,8 @@
"INVALID_MSG": "Falscher Nutzername oder Passwort.",
"FORGOT_PWD": "Passwort vergessen",
"HEADER_LINK": "Einloggen",
+ "OR": "OR",
+ "VIA_LOCAL_DB": "LOGIN VIA LOCAL DB",
"CORE_SERVICE_NOT_AVAILABLE": "Core Service ist nicht verfügbar"
},
"SIGN_UP": {
diff --git a/src/portal/src/i18n/lang/en-us-lang.json b/src/portal/src/i18n/lang/en-us-lang.json
index 403bb224f..c35726db2 100644
--- a/src/portal/src/i18n/lang/en-us-lang.json
+++ b/src/portal/src/i18n/lang/en-us-lang.json
@@ -14,7 +14,9 @@
"INVALID_MSG": "Invalid user name or password.",
"FORGOT_PWD": "Forgot password",
"HEADER_LINK": "Sign In",
- "CORE_SERVICE_NOT_AVAILABLE": "Core service is not available."
+ "CORE_SERVICE_NOT_AVAILABLE": "Core service is not available.",
+ "OR": "OR",
+ "VIA_LOCAL_DB": "LOGIN VIA LOCAL DB"
},
"SIGN_UP": {
"TITLE": "Sign Up"
diff --git a/src/portal/src/i18n/lang/es-es-lang.json b/src/portal/src/i18n/lang/es-es-lang.json
index b182cfb9d..1494750e7 100644
--- a/src/portal/src/i18n/lang/es-es-lang.json
+++ b/src/portal/src/i18n/lang/es-es-lang.json
@@ -14,7 +14,9 @@
"INVALID_MSG": "Nombre o contraseña no válidos.",
"FORGOT_PWD": "Olvidé mi contraseña",
"HEADER_LINK": "Identificarse",
- "CORE_SERVICE_NOT_AVAILABLE": "Core service is not available."
+ "CORE_SERVICE_NOT_AVAILABLE": "Core service is not available.",
+ "OR": "OR",
+ "VIA_LOCAL_DB": "LOGIN VIA LOCAL DB"
},
"SIGN_UP": {
"TITLE": "Registrarse"
diff --git a/src/portal/src/i18n/lang/fr-fr-lang.json b/src/portal/src/i18n/lang/fr-fr-lang.json
index 04eea2bdb..fc7e1cd7b 100644
--- a/src/portal/src/i18n/lang/fr-fr-lang.json
+++ b/src/portal/src/i18n/lang/fr-fr-lang.json
@@ -14,7 +14,9 @@
"INVALID_MSG": "Nom d'utilisateur ou mot de passe invalide.",
"FORGOT_PWD": "Mot de passe oublié",
"HEADER_LINK": "S'identifier",
- "CORE_SERVICE_NOT_AVAILABLE": "Core service is not available."
+ "CORE_SERVICE_NOT_AVAILABLE": "Core service is not available.",
+ "OR": "OR",
+ "VIA_LOCAL_DB": "LOGIN VIA LOCAL DB"
},
"SIGN_UP": {
"TITLE": "S'inscrire"
diff --git a/src/portal/src/i18n/lang/pt-br-lang.json b/src/portal/src/i18n/lang/pt-br-lang.json
index c07cb9da6..823044c51 100644
--- a/src/portal/src/i18n/lang/pt-br-lang.json
+++ b/src/portal/src/i18n/lang/pt-br-lang.json
@@ -14,7 +14,9 @@
"INVALID_MSG": "Usuário ou senha inválidos",
"FORGOT_PWD": "Esqueci a senha",
"HEADER_LINK": "Logar-se",
- "CORE_SERVICE_NOT_AVAILABLE": "Core service is not available."
+ "CORE_SERVICE_NOT_AVAILABLE": "Core service is not available.",
+ "OR": "OR",
+ "VIA_LOCAL_DB": "LOGIN VIA LOCAL DB"
},
"SIGN_UP": {
"TITLE": "Registrar-se"
diff --git a/src/portal/src/i18n/lang/tr-tr-lang.json b/src/portal/src/i18n/lang/tr-tr-lang.json
index 078ba32e9..ca60ef6f0 100644
--- a/src/portal/src/i18n/lang/tr-tr-lang.json
+++ b/src/portal/src/i18n/lang/tr-tr-lang.json
@@ -14,7 +14,9 @@
"INVALID_MSG": "Geçersiz kullanıcı adı veya şifre.",
"FORGOT_PWD": "Parolamı Unuttum",
"HEADER_LINK": "Oturum aç",
- "CORE_SERVICE_NOT_AVAILABLE": "Core service is not available."
+ "CORE_SERVICE_NOT_AVAILABLE": "Core service is not available.",
+ "OR": "OR",
+ "VIA_LOCAL_DB": "LOGIN VIA LOCAL DB"
},
"SIGN_UP": {
"TITLE": "Kayıt ol"
diff --git a/src/portal/src/i18n/lang/zh-cn-lang.json b/src/portal/src/i18n/lang/zh-cn-lang.json
index 2c88657f9..30e75d0f2 100644
--- a/src/portal/src/i18n/lang/zh-cn-lang.json
+++ b/src/portal/src/i18n/lang/zh-cn-lang.json
@@ -14,7 +14,9 @@
"INVALID_MSG": "用户名或者密码不正确。",
"FORGOT_PWD": "忘记密码",
"HEADER_LINK": "登录",
- "CORE_SERVICE_NOT_AVAILABLE": "核心服务不可用。"
+ "CORE_SERVICE_NOT_AVAILABLE": "核心服务不可用。",
+ "OR": "或",
+ "VIA_LOCAL_DB": "通过本地数据库登录"
},
"SIGN_UP": {
"TITLE": "注册"
diff --git a/src/portal/src/i18n/lang/zh-tw-lang.json b/src/portal/src/i18n/lang/zh-tw-lang.json
index a5c12533b..8b46762d1 100644
--- a/src/portal/src/i18n/lang/zh-tw-lang.json
+++ b/src/portal/src/i18n/lang/zh-tw-lang.json
@@ -14,7 +14,9 @@
"INVALID_MSG": "用戶名或者密碼不正確。",
"FORGOT_PWD": "忘記密碼",
"HEADER_LINK": "登錄",
- "CORE_SERVICE_NOT_AVAILABLE": "Core service is not available."
+ "CORE_SERVICE_NOT_AVAILABLE": "Core service is not available.",
+ "OR": "OR",
+ "VIA_LOCAL_DB": "LOGIN VIA LOCAL DB"
},
"SIGN_UP": {
"TITLE": "註冊"