V12: Remove avatar step from login (#14629)

Co-authored-by: Niels Lyngsø <niels.lyngso@gmail.com>
This commit is contained in:
Jacob Overgaard
2023-08-04 14:20:27 +00:00
parent 8ce48a2634
commit cf12de50d8
17 changed files with 95 additions and 233 deletions

View File

@@ -2116,15 +2116,10 @@ Da upravljate svojom web lokacijom, jednostavno otvorite Umbraco backoffice i po
<key alias="userInvitedSuccessHelp">Novom korisniku je poslana pozivnica s detaljima o tome kako se prijaviti
Umbraco.
</key>
<key alias="userinviteWelcomeMessage">Pozdrav i dobrodošli u Umbraco! Za samo 1 minut možete krenuti, mi
samo trebate postaviti lozinku i dodati sliku za svoj avatar.
</key>
<key alias="userinviteWelcomeMessage">Pozdrav i dobrodošli u Umbraco! Za samo 1 minut možete krenuti, mi samo trebate postaviti lozinku.</key>
<key alias="userinviteExpiredMessage">Dobrodošli u Umbraco! Nažalost, vaš poziv je istekao. Molimo kontaktirajte svoju
administratora i zamolite ih da ga ponovo pošalju.
</key>
<key alias="userinviteAvatarMessage">Ako otpremite svoju fotografiju, drugi korisnici će ga lako prepoznati
ti. Kliknite na krug iznad da otpremite svoju fotografiju.
</key>
<key alias="writer">Pisac</key>
<key alias="change">Promjena</key>
<key alias="yourProfile" version="7.0">Vaš profil</key>

View File

@@ -1754,9 +1754,8 @@
<key alias="usergroup">Uživatelská skupina</key>
<key alias="userInvited">byl pozván</key>
<key alias="userInvitedSuccessHelp">Novému uživateli byla zaslána pozvánka s informacemi, jak se přihlásit do Umbraco.</key>
<key alias="userinviteWelcomeMessage">Dobrý den, vítejte v Umbraco! Za pouhou 1 minutu budete moci používat Umbraco. Jenom od vás potřebujeme, abyste si nastavili heslo a přidali obrázek pro svůj avatar.</key>
<key alias="userinviteWelcomeMessage">Dobrý den, vítejte v Umbraco! Za pouhou 1 minutu budete moci používat Umbraco. Jenom od vás potřebujeme, abyste si nastavili heslo.</key>
<key alias="userinviteExpiredMessage">Vítejte v Umbraco! Vaše pozvánka bohužel vypršela. Obraťte se na svého správce a požádejte jej, aby jí znovu odeslal.</key>
<key alias="userinviteAvatarMessage">Nahrání vaší fotografie usnadní ostatním uživatelům, aby vás poznali. Kliknutím na kruh výše nahrajte svou fotku.</key>
<key alias="writer">Spisovatel</key>
<key alias="change">Změnit</key>
<key alias="yourProfile" version="7.0">Váš profil</key>

View File

@@ -2308,9 +2308,8 @@ Er mwyn gweinyddu eich gwefan, agorwch swyddfa gefn Umbraco a dechreuwch ychwang
<key alias="userGroups">Grwpiau defnyddiwr</key>
<key alias="userInvited">wedi'i wahodd</key>
<key alias="userInvitedSuccessHelp">Mae gwahoddiad wedi cael ei anfon at y defnyddiwr newydd gyda manylion ar sut i fewngofnodi i Umbraco.</key>
<key alias="userinviteWelcomeMessage">Helo a chroeso i Umbraco! Mewn 1 munud yn unig, byddech chi'n barod i fynd, rydym dim ond angen gosod cyfrinair a llun ar gyfer eich avatar.</key>
<key alias="userinviteWelcomeMessage">Helo a chroeso i Umbraco! Mewn 1 munud yn unig, byddech chi'n barod i fynd, rydym dim ond angen gosod cyfrinair.</key>
<key alias="userinviteExpiredMessage">Croeso i Umbraco! Yn anffodus, mae eich gwahoddiad wedi terfynu. Cysylltwch â'ch gweinyddwr a gofynnwch iddynt ail-anfon.</key>
<key alias="userinviteAvatarMessage">Lanlwythwch lun i wneud o'n haws i boble eich adnabod chi.</key>
<key alias="writer">Ysgrifennydd</key>
<key alias="translator">Cyfieithydd</key>
<key alias="change">Newid</key>

View File

@@ -1895,14 +1895,11 @@ Mange hilsner fra Umbraco robotten
logger ind i Umbraco.
</key>
<key alias="userinviteWelcomeMessage">Hej og velkommen til Umbraco! På bare 1 minut vil du være klar til at komme i
gang, vi skal bare have dig til at oprette en adgangskode og tilføje et billede til din avatar.
gang, vi skal bare have dig til at oprette en adgangskode.
</key>
<key alias="userinviteExpiredMessage">Velkommen til Umbraco! Desværre er din invitation udløbet. Kontakt din
administrator og bed om at gensende invitationen.
</key>
<key alias="userinviteAvatarMessage">Hvis du uploader et billede af dig selv, gør du det nemt for andre brugere at
genkende dig. Klik på cirklen ovenfor for at uploade et billede.
</key>
<key alias="writer">Forfatter</key>
<key alias="configureTwoFactor">Konfigurer totrinsbekræftelse</key>
<key alias="change">Skift</key>

View File

@@ -2059,9 +2059,8 @@
<key alias="usergroup">Benutzergruppe</key>
<key alias="userInvited">wurde eingeladen</key>
<key alias="userInvitedSuccessHelp">Eine Einladung mit Anweisungen zur Anmeldung im Umbraco-Back-Office wurde dem neuen Benutzer zugeschickt.</key>
<key alias="userinviteWelcomeMessage">Hallo und Willkommen bei Umbraco! In nur einer Minute sind Sie bereit loszulegen, Sie müssen nur ein Kennwort festlegen und optional Ihrem Avatar ein Bild hinzufügen.</key>
<key alias="userinviteWelcomeMessage">Hallo und Willkommen bei Umbraco! In nur einer Minute sind Sie bereit loszulegen, Sie müssen nur ein Kennwort festlegen.</key>
<key alias="userinviteExpiredMessage">Willkommen bei Umbraco! Bedauerlicherweise ist Ihre Einladung verfallen. Bitte kontaktieren Sie Ihren Administrator und bitten Sie ihn, diese erneut zu schicken.</key>
<key alias="userinviteAvatarMessage">Laden Sie ein Foto von sich hoch, um es anderen Benutzern zu erleichtern, sie zu erkennen. Klicken Sie auf den Kreis oben, um Ihr Foto hochzuladen.</key>
<key alias="writer">Autor</key>
<key alias="change">Änderung</key>
<!--???-->

View File

@@ -2125,14 +2125,11 @@ To manage your website, simply open the Umbraco backoffice and start adding cont
Umbraco.
</key>
<key alias="userinviteWelcomeMessage">Hello there and welcome to Umbraco! In just 1 minute youll be good to go, we
just need you to setup a password and add a picture for your avatar.
just need you to setup a password.
</key>
<key alias="userinviteExpiredMessage">Welcome to Umbraco! Unfortunately your invite has expired. Please contact your
administrator and ask them to resend it.
</key>
<key alias="userinviteAvatarMessage">Uploading a photo of yourself will make it easy for other users to recognize
you. Click the circle above to upload your photo.
</key>
<key alias="writer">Writer</key>
<key alias="change">Change</key>
<key alias="yourProfile" version="7.0">Your profile</key>

View File

@@ -2222,14 +2222,11 @@ To manage your website, simply open the Umbraco backoffice and start adding cont
Umbraco.
</key>
<key alias="userinviteWelcomeMessage">Hello there and welcome to Umbraco! In just 1 minute youll be good to go, we
just need you to setup a password and add a picture for your avatar.
just need you to setup a password.
</key>
<key alias="userinviteExpiredMessage">Welcome to Umbraco! Unfortunately your invite has expired. Please contact your
administrator and ask them to resend it.
</key>
<key alias="userinviteAvatarMessage">Uploading a photo of yourself will make it easy for other users to recognize
you. Click the circle above to upload your photo.
</key>
<key alias="writer">Writer</key>
<key alias="configureTwoFactor">Configure Two-Factor</key>
<key alias="change">Change</key>

View File

@@ -1394,8 +1394,7 @@
<key alias="usergroup">Grupo de usuario</key>
<key alias="userInvited">ha sido invitado</key>
<key alias="userInvitedSuccessHelp">Se ha enviado una invitación al nuevo usuario con detalles sobre cómo acceder a Umbraco.</key>
<key alias="userinviteWelcomeMessage">¡Hola y bienvenido a Umbraco!. En un minuto todo estará listo para empezar, sólo necesitamos que configures tu contraseña y una imagen para tu avatar.</key>
<key alias="userinviteAvatarMessage">Sube una foto para que otros usuarios te reconozcan más fácilmente.</key>
<key alias="userinviteWelcomeMessage">¡Hola y bienvenido a Umbraco!. En un minuto todo estará listo para empezar, sólo necesitamos que configures tu contraseña.</key>
<key alias="writer">Redactor</key>
<key alias="change">Cambiar</key>
<key alias="yourProfile" version="7.0">Tu perfil</key>

View File

@@ -1795,9 +1795,8 @@ Pour gérer votre site, ouvrez simplement le backoffice Umbraco et commencez à
<key alias="usergroup">Groupe d'utilisateurs</key>
<key alias="userInvited">a été invité</key>
<key alias="userInvitedSuccessHelp">Une invitation a été envoyée au nouvel utilisateur avec les détails concernant la connexion à Umbraco.</key>
<key alias="userinviteWelcomeMessage">Bien le bonjour et bienvenue dans Umbraco! Vous serez prêt.e dans moins d'1 minute, vous devez encore simplement configurer votre mot de passe et ajouter une photo pour votre avatar.</key>
<key alias="userinviteWelcomeMessage">Bien le bonjour et bienvenue dans Umbraco! Vous serez prêt.e dans moins d'1 minute, vous devez encore simplement configurer votre mot de passe.</key>
<key alias="userinviteExpiredMessage">Bienvenue dans Umbraco! Malheureusement, votre invitation a expiré. Veuillez contacter votre administrateur et demandez-lui de vous l'envoyer à nouveau.</key>
<key alias="userinviteAvatarMessage">Chargez une photo afin que les autres utilisateurs puissent vous reconnaître facilement. Cliquez sur le cercle ci-dessus pour charger votre photo.</key>
<key alias="writer">Rédacteur</key>
<key alias="change">Modifier</key>
<key alias="yourProfile" version="7.0">Votre profil</key>

View File

@@ -2078,9 +2078,8 @@ Da bi upravljali svojom web lokacijom, jednostavno otvorite Umbraco backoffice i
<key alias="usergroup">Grupa korisnika</key>
<key alias="userInvited">je pozvan</key>
<key alias="userInvitedSuccessHelp">Novom korisniku je poslana pozivnica s detaljima o tome kako se prijaviti u Umbraco.</key>
<key alias="userinviteWelcomeMessage">Pozdrav i dobrodošli u Umbraco! Jedna minuta bit će vam potrebna da postavite svoju lozinku i dodate svoju profilnu sliku.</key>
<key alias="userinviteWelcomeMessage">Pozdrav i dobrodošli u Umbraco! Jedna minuta bit će vam potrebna da postavite svoju lozinku.</key>
<key alias="userinviteExpiredMessage">Dobrodošli u Umbraco! Nažalost pozivnica je istekla. Molimo kontaktirajte svog administratora i od njega tražite da ju ponovno pošalje.</key>
<key alias="userinviteAvatarMessage">AAko postavite svoju fotografiju, drugi korisnici će vas lako prepoznati. Kliknite krug iznad da biste prenijeli svoju fotografiju.</key>
<key alias="writer">Pisac</key>
<key alias="change">Promjeni</key>
<key alias="yourProfile" version="7.0">Vaš profil</key>

View File

@@ -2197,13 +2197,10 @@ Per gestire il tuo sito web, è sufficiente aprire il backoffice di Umbraco e in
<key alias="userInvitedSuccessHelp">
<![CDATA[Un invito è stato invitato al nuovo utente con le istruzioni su come effettuare il login in Umbraco.]]></key>
<key alias="userinviteWelcomeMessage">Ciao e benvenuto su Umbraco! In solo 1 minuto sarai pronto a partire, dovrai
solamente impostare una password e aggiungere una foto profilo.
solamente impostare una password.
</key>
<key alias="userinviteExpiredMessage">
<![CDATA[Benvenuto su Umbraco! Purtroppo il tuo invito è scaduto. Per favore contatta l'amministratore e chiedigli di rispedirlo.]]></key>
<key alias="userinviteAvatarMessage">Caricando una tua foto, gli altri utenti potranno riconoscerti facilmente. Fai
clic sul cerchio sopra per caricare la tua foto.
</key>
<key alias="writer">Autore</key>
<key alias="change">Modifica</key>
<key alias="yourProfile" version="7.0">Il tuo profilo</key>

View File

@@ -1940,12 +1940,11 @@ Echter, Runway biedt een gemakkelijke basis om je snel op weg te helpen. Als je
te loggen in Umbraco
</key>
<key alias="userinviteWelcomeMessage">Hallo en welkom in Umbraco! Binnen ongeveer één minuut kan je aan de slag. Je
moet enkel je wachtwoord instellen en een foto toevoegen.
moet enkel je wachtwoord instellen.
</key>
<key alias="userinviteExpiredMessage">Welkom bij Umbraco! Helaas is je uitnodiging vervallen. Vraag aan je
administrator om de uitnodiging opnieuw te versturen.
</key>
<key alias="userinviteAvatarMessage">Wijzig je foto zodat andere gebruikers je makkelijk kunnen herkennen.</key>
<key alias="writer">Auteur</key>
<key alias="configureTwoFactor">Configureer tweestapsverificatie</key>
<key alias="change">Wijzig</key>

View File

@@ -1703,8 +1703,7 @@
<key alias="usergroup">Группа пользователей</key>
<key alias="userInvited"> был приглашен</key>
<key alias="userInvitedSuccessHelp">Новому пользователю было отправлено приглашение, в котором содержатся инструкции для входа в панель Umbraco.</key>
<key alias="userinviteWelcomeMessage">Здравствуйте и добро пожаловать в Umbraco! Все будет готово в течении пары минут, нам лишь нужно задать Ваш пароль для входа и добавить аватар.</key>
<key alias="userinviteAvatarMessage">Загрузите изображение, это поможет другим пользователям идентифицировать Вас.</key>
<key alias="userinviteWelcomeMessage">Здравствуйте и добро пожаловать в Umbraco! Все будет готово в течении пары минут, нам лишь нужно задать Ваш пароль для входа.</key>
<key alias="userManagement">Управление пользователями</key>
<key alias="userPermissions">Разрешения для пользователя</key>
<key alias="writer">Автор</key>

View File

@@ -1879,9 +1879,8 @@ Web sitenizi yönetmek için, Umbraco'nun arka ofisini açın ve içerik eklemey
<key alias="usergroup">Kullanıcı grubu</key>
<key alias="userInvited">davet edildi</key>
<key alias="userInvitedSuccessHelp">Yeni kullanıcıya, Umbraco'da nasıl oturum açılacağına ilişkin ayrıntıları içeren bir davetiye gönderildi.</key>
<key alias="userinviteWelcomeMessage">Merhabalar, Umbraco'ya hoş geldiniz! Sadece 1 dakika içinde hazır olacaksınız, sadece bir şifre belirlemeniz ve avatarınız için bir resim eklemeniz gerekiyor.</key>
<key alias="userinviteWelcomeMessage">Merhabalar, Umbraco'ya hoş geldiniz! Sadece 1 dakika içinde hazır olacaksınız, sadece bir şifre belirlemeniz.</key>
<key alias="userinviteExpiredMessage">Umbraco'ya hoş geldiniz! Maalesef davetinizin süresi doldu. Lütfen yöneticinizle iletişime geçin ve yeniden göndermesini isteyin.</key>
<key alias="userinviteAvatarMessage">Kendi fotoğrafınızı yüklemek, diğer kullanıcıların sizi tanımasını kolaylaştıracaktır. Fotoğrafınızı yüklemek için yukarıdaki daireyi tıklayın.</key>
<key alias="writer">Yazar</key>
<key alias="change">Değiştir</key>
<key alias="yourProfile" version="7.0">Profiliniz</key>

View File

@@ -1703,8 +1703,7 @@
<key alias="usergroup">Група користувачів</key>
<key alias="userInvited"> був запрошений</key>
<key alias="userInvitedSuccessHelp">Новому користувачеві було надіслано запрошення, яке містить інструкції для входу в панель Umbraco.</key>
<key alias="userinviteWelcomeMessage">Привіт і ласкаво просимо до Umbraco! Все буде готове протягом декількох хвилин, нам потрібно задати пароль для входу і додати аватар.</key>
<key alias="userinviteAvatarMessage">Завантажте зображення, що допоможе іншим користувачам ідентифікувати Вас.</key>
<key alias="userinviteWelcomeMessage">Привіт і ласкаво просимо до Umbraco! Все буде готове протягом декількох хвилин, нам потрібно задати пароль для входу.</key>
<key alias="userManagement">Управління користувачами</key>
<key alias="userPermissions">Дозволи для користувача</key>
<key alias="writer">Автор</key>

View File

@@ -14,7 +14,7 @@
});
function UmbLoginController($scope, $location, currentUserResource, formHelper,
mediaHelper, umbRequestHelper, Upload, localizationService,
mediaHelper, umbRequestHelper, localizationService,
userService, externalLoginInfo, externalLoginInfoService,
resetPasswordCodeInfo, authResource, $q) {
@@ -34,15 +34,6 @@
submitButton: "init"
};
vm.avatarFile = {
filesHolder: null,
uploadStatus: null,
uploadProgress: 0,
maxFileSize: Umbraco.Sys.ServerVariables.umbracoSettings.maxFileSize + "KB",
acceptedFileTypes: mediaHelper.formatFileTypes(Umbraco.Sys.ServerVariables.umbracoSettings.imageFileTypes),
uploaded: false
};
vm.allowPasswordReset = Umbraco.Sys.ServerVariables.umbracoSettings.canSendRequiredEmail && Umbraco.Sys.ServerVariables.umbracoSettings.allowPasswordReset;
vm.errorMsg = "";
const tempUrl = new URL(Umbraco.Sys.ServerVariables.umbracoUrls.externalLoginsUrl, window.location.origin);
@@ -66,7 +57,6 @@
vm.$onInit = onInit;
vm.togglePassword = togglePassword;
vm.changeAvatar = changeAvatar;
vm.getStarted = getStarted;
vm.inviteSavePassword = inviteSavePassword;
vm.showLogin = showLogin;
@@ -154,12 +144,6 @@
$(".password-text.show, .password-text.hide").toggle();
}
function changeAvatar(files, event) {
if (files && files.length > 0) {
upload(files[0]);
}
}
function getStarted() {
$location.search('invite', null);
if (vm.onLogin) {
@@ -179,12 +163,17 @@
//success
formHelper.resetForm({ scope: $scope, formCtrl: vm.inviteUserPasswordForm });
vm.invitedUserPasswordModel.buttonState = "success";
//set the user and set them as logged in
vm.invitedUser = data;
userService.setAuthenticationSuccessful(data);
//set the user
vm.invitedUser = data;
// hide the password form
vm.inviteStep = 2;
// set the user as logged in, which will initialise the app flow in init.js
// and eventually redirect the user to the content section when it's ready
userService.setAuthenticationSuccessful(data);
}, function (err) {
formHelper.resetForm({ scope: $scope, hasErrors: true, formCtrl: vm.inviteUserPasswordForm });
formHelper.handleError(err);
@@ -379,69 +368,6 @@
});
}
function upload(file) {
vm.avatarFile.uploadProgress = 0;
Upload.upload({
url: umbRequestHelper.getApiUrl("currentUserApiBaseUrl", "PostSetAvatar"),
fields: {},
file: file
}).progress(function (evt) {
if (vm.avatarFile.uploadStatus !== "done" && vm.avatarFile.uploadStatus !== "error") {
// set uploading status on file
vm.avatarFile.uploadStatus = "uploading";
// calculate progress in percentage
var progressPercentage = parseInt(100.0 * evt.loaded / evt.total, 10);
// set percentage property on file
vm.avatarFile.uploadProgress = progressPercentage;
}
}).success(function (data, status, headers, config) {
vm.avatarFile.uploadProgress = 100;
// set done status on file
vm.avatarFile.uploadStatus = "done";
vm.invitedUser.avatars = data;
vm.avatarFile.uploaded = true;
}).error(function (evt, status, headers, config) {
// set status done
vm.avatarFile.uploadStatus = "error";
// If file not found, server will return a 404 and display this message
if (status === 404) {
vm.avatarFile.serverErrorMessage = "File not found";
}
else if (status == 400) {
//it's a validation error
vm.avatarFile.serverErrorMessage = evt.message;
}
else {
//it's an unhandled error
//if the service returns a detailed error
if (evt.InnerException) {
vm.avatarFile.serverErrorMessage = evt.InnerException.ExceptionMessage;
//Check if its the common "too large file" exception
if (evt.InnerException.StackTrace && evt.InnerException.StackTrace.indexOf("ValidateRequestEntityLength") > 0) {
vm.avatarFile.serverErrorMessage = "File too large to upload";
}
} else if (evt.Message) {
vm.avatarFile.serverErrorMessage = evt.Message;
}
}
});
}
function show2FALoginDialog(viewPath) {
vm.twoFactor.submitCallback = function submitCallback() {
vm.onLogin();

View File

@@ -14,90 +14,48 @@
<div class="form" ng-if="vm.inviteStep === 1">
<h1 style="margin-bottom: 10px; text-align: left;">Hi, {{vm.invitedUser.name}}</h1>
<p style="line-height: 1.6; margin-bottom: 25px;">
<localize key="user_userinviteWelcomeMessage">Welcome to Umbraco! Just need to get your password and avatar setup and then you're good to go</localize>
<localize key="user_userinviteWelcomeMessage">Welcome to Umbraco! Just need to get your password setup and then you're good to go</localize>
</p>
<div class="control-group" ng-class="{error: vm.setPasswordForm.password.$invalid}">
<label for="umb-passwordOne">
<localize key="user_newPassword">New password</localize>
<small style="font-size: 13px;">{{vm.invitedUserPasswordModel.passwordPolicyText}}</small>
</label>
<input type="password" ng-model="vm.invitedUserPasswordModel.password" name="password" id="umb-passwordOne" class="-full-width-input" umb-auto-focus required val-server-field="value" ng-minlength="{{vm.invitedUserPasswordModel.passwordPolicies.minPasswordLength}}" spellcheck="false" />
<span ng-messages="inviteUserPasswordForm.password.$error" show-validation-on-submit>
<span class="help-inline" ng-message="required"><localize key="user_passwordIsBlank">Your new password cannot be blank!</localize></span>
<span class="help-inline" ng-message="minlength">Minimum {{vm.invitedUserPasswordModel.passwordPolicies.minPasswordLength}} characters</span>
<span class="help-inline" ng-message="valServerField">{{inviteUserPasswordForm.password.errorMsg}}</span>
</span>
</div>
<div class="control-group" ng-class="{error: vm.setPasswordForm.confirmPassword.$invalid}">
<label for="umb-confirmPasswordOne"><localize key="user_confirmNewPassword">Confirm new password</localize></label>
<input type="password" ng-model="vm.invitedUserPasswordModel.confirmPassword" name="confirmPassword" id="umb-confirmPasswordOne" class="-full-width-input" required val-compare="password" spellcheck="false"/>
<span ng-messages="inviteUserPasswordForm.confirmPassword.$error" show-validation-on-submit>
<span class="help-inline" ng-message="required"><localize key="general_required">Required</localize></span>
<span class="help-inline" ng-message="valCompare"><localize key="user_passwordMismatch">The confirmed password doesn't match the new password!</localize></span>
</span>
</div>
<div class="flex justify-between items-center">
<umb-button type="submit"
button-style="success"
state="vm.invitedUserPasswordModel.buttonState"
label="Save password">
</umb-button>
</div>
</div>
</form>
<div class="form" ng-if="vm.inviteStep === 2">
<div class="flex justify-center items-center">
<ng-form name="vm.avatarForm">
<umb-progress-bar style="max-width: 100px; margin-bottom: 5px;"
ng-show="vm.avatarFile.uploadStatus === 'uploading'"
progress="{{ vm.avatarFile.uploadProgress }}"
size="s">
</umb-progress-bar>
<div class="umb-info-local-item text-error mt3" ng-if="vm.avatarFile.uploadStatus === 'error'">
{{ vm.avatarFile.serverErrorMessage }}
<div ng-if="vm.inviteStep === 1">
<div class="control-group" ng-class="{error: vm.setPasswordForm.password.$invalid}">
<label for="umb-passwordOne">
<localize key="user_newPassword">New password</localize>
<small style="font-size: 13px;">{{vm.invitedUserPasswordModel.passwordPolicyText}}</small>
</label>
<input type="password" ng-model="vm.invitedUserPasswordModel.password" name="password" id="umb-passwordOne" class="-full-width-input" umb-auto-focus required val-server-field="value" ng-minlength="{{vm.invitedUserPasswordModel.passwordPolicies.minPasswordLength}}" spellcheck="false" />
<span ng-messages="inviteUserPasswordForm.password.$error" show-validation-on-submit>
<span class="help-inline" ng-message="required"><localize key="user_passwordIsBlank">Your new password cannot be blank!</localize></span>
<span class="help-inline" ng-message="minlength">Minimum {{vm.invitedUserPasswordModel.passwordPolicies.minPasswordLength}} characters</span>
<span class="help-inline" ng-message="valServerField">{{inviteUserPasswordForm.password.errorMsg}}</span>
</span>
</div>
<a class="umb-avatar-btn"
ngf-select
ng-model="vm.avatarFile.filesHolder"
ngf-change="vm.changeAvatar($files, $event)"
ngf-multiple="false"
ngf-pattern="{{vm.avatarFile.acceptedFileTypes}}"
ngf-max-size="{{ vm.avatarFile.maxFileSize }}">
<div class="control-group" ng-class="{error: vm.setPasswordForm.confirmPassword.$invalid}">
<label for="umb-confirmPasswordOne"><localize key="user_confirmNewPassword">Confirm new password</localize></label>
<input type="password" ng-model="vm.invitedUserPasswordModel.confirmPassword" name="confirmPassword" id="umb-confirmPasswordOne" class="-full-width-input" required val-compare="password" spellcheck="false"/>
<span ng-messages="inviteUserPasswordForm.confirmPassword.$error" show-validation-on-submit>
<span class="help-inline" ng-message="required"><localize key="general_required">Required</localize></span>
<span class="help-inline" ng-message="valCompare"><localize key="user_passwordMismatch">The confirmed password doesn't match the new password!</localize></span>
</span>
<umb-avatar color="gray"
size="xl"
unknown-char="+"
img-src="{{vm.invitedUser.avatars[3]}}"
img-srcset="{{vm.invitedUser.avatars[4]}} 2x, {{vm.invitedUser.avatars[4]}} 3x">
</umb-avatar>
</a>
</div>
<div class="flex justify-between items-center">
<umb-button type="submit"
button-style="success"
state="vm.invitedUserPasswordModel.buttonState"
label="Save password">
</umb-button>
</div>
</div>
</ng-form>
</div>
<h1 style="margin-bottom: 10px;">Upload a photo</h1>
<p style="text-align: center; margin-bottom: 25px; line-height: 1.6em;">
<localize key="user_userinviteAvatarMessage">Uploading a photo of yourself will make it easy for other users to recognize you. Click the circle above to upload your photo.</localize>
</p>
<div class="flex justify-center items-center">
<umb-button type="button"
button-style="success"
label="Done"
action="vm.getStarted()">
</umb-button>
<div class="form" ng-if="vm.inviteStep === 2">
<h1 style="margin-bottom: 10px; text-align: left;">
<localize key="general_welcome">Welcome...</localize></h1>
</div>
</div>
</form>
</div>
<div ng-show="vm.invitedUser == null && vm.inviteStep === 3" ng-if="!vm.denyLocalLogin && vm.inviteStep === 3" class="umb-login-container">
@@ -106,6 +64,11 @@
<p style="line-height: 1.6; margin-bottom: 25px;">
<localize key="user_userinviteExpiredMessage">Welcome to Umbraco! Unfortunately your invite has expired. Please contact your administrator and ask them to resend it.</localize>
</p>
<p>
<a href="#" ng-href="#/login" style="text-decoration: underline;">
<localize key="login_returnToLogin">Return to login form</localize>
</a>
</p>
</div>
</div>
<div ng-show="vm.invitedUser == null && !vm.inviteStep" class="umb-login-container">