Skip to content
Code-Schnipsel Gruppen Projekte

Revisionen vergleichen

Änderungen werden so angezeigt, als ob die Quellrevision mit der Zielrevision zusammengeführt würde. Erfahre mehr über den Vergleich von Revisionen.

Quelle

Zielprojekt auswählen
No results found

Ziel

Zielprojekt auswählen
  • quiqqer/frontend-users
1 Ergebnis
Änderungen anzeigen
Commits auf Quelle (3)
......@@ -110,6 +110,11 @@ define('package/quiqqer/frontend-users/bin/frontend/controls/Registration', [
);
if (RedirectElm) {
if (RedirectElm.get('data-reload')) {
window.location.reload();
return;
}
var url = RedirectElm.get('data-url');
var instant = RedirectElm.get('data-instant') === "1";
......
......@@ -332,6 +332,7 @@ define('package/quiqqer/frontend-users/bin/frontend/controls/RegistrationSignUp'
sendRegistration: function (registrar, registration_id, formData) {
this.showLoader();
console.log(111);
var self = this;
return new Promise(function (resolve, reject) {
......@@ -395,8 +396,15 @@ define('package/quiqqer/frontend-users/bin/frontend/controls/RegistrationSignUp'
var Redirect = Section.getElement('.quiqqer-frontendUsers-redirect');
if (Redirect && Redirect.get('data-instant') && self.getAttribute('reloadOnSuccess')) {
window.location = Redirect.get('data-url');
if (Redirect && self.getAttribute('reloadOnSuccess')) {
if (Redirect.get('data-reload')) {
window.location.reload();
return;
}
if (Redirect.get('data-instant')){
window.location = Redirect.get('data-url');
}
}
if (Section.getElement('.content-message-error')) {
......@@ -442,8 +450,6 @@ define('package/quiqqer/frontend-users/bin/frontend/controls/RegistrationSignUp'
* @return {Promise}
*/
showTerms: function (registrar, isSocial) {
console.log('show terms', this.getAttribute('termsAccepted'));
if (this.getAttribute('termsAccepted')) {
return Promise.resolve();
}
......@@ -638,8 +644,15 @@ define('package/quiqqer/frontend-users/bin/frontend/controls/RegistrationSignUp'
var Redirect = Section.getElement('.quiqqer-frontendUsers-redirect');
if (Redirect && Redirect.get('data-instant')) {
window.location = Redirect.get('data-url');
if (Redirect && self.getAttribute('reloadOnSuccess')) {
if (Redirect.get('data-reload')) {
window.location.reload();
return;
}
if (Redirect.get('data-instant')){
window.location = Redirect.get('data-url');
}
}
var ErrorBox = Section.getElement('.content-message-error');
......@@ -1381,8 +1394,8 @@ define('package/quiqqer/frontend-users/bin/frontend/controls/RegistrationSignUp'
childNodes.setStyle('display', 'none');
return self.hideTerms().then(function () {
return self.showLoader();
return self.showLoader().then(() => {
return self.hideTerms();
}).then(function () {
var Form = self.getElm().getElement('form[name="quiqqer-fu-registrationSignUp-email"]'),
FormData = QUIFormUtils.getFormData(Form);
......
......@@ -512,16 +512,28 @@ define('package/quiqqer/frontend-users/bin/frontend/controls/login/Login', [
* opens the password forgotten sheet
*/
openForgottenPassword: function() {
var Reset = this.getElm().getElement('.quiqqer-fu-login-forget-password-reset');
if (!Reset) {
return;
}
const Login = this.getElm().getElement('.quiqqer-fu-login-container');
Login.style.height = Login.offsetHeight + 'px';
const LoginInner = this.getElm().getElement('.quiqqer-fu-login-container__inner');
Reset.setStyle('opacity', 0);
Reset.setStyle('left', -50);
Reset.setStyle('display', 'block');
if (LoginInner) {
moofx(LoginInner).animate({
opacity: 0
});
}
moofx(Reset).animate({
left: 0,
opacity: 1
......@@ -530,6 +542,12 @@ define('package/quiqqer/frontend-users/bin/frontend/controls/login/Login', [
}
});
if (LoginInner) {
moofx(Login).animate({
height: Reset.offsetHeight
});
}
},
/**
......@@ -614,6 +632,17 @@ define('package/quiqqer/frontend-users/bin/frontend/controls/login/Login', [
return;
}
const Login = this.getElm().getElement('.quiqqer-fu-login-container');
Login.style.height = Login.offsetHeight + 'px';
const LoginInner = this.getElm().getElement('.quiqqer-fu-login-container__inner');
if (LoginInner) {
moofx(LoginInner).animate({
opacity: 1
});
}
moofx(Reset).animate({
left: -50,
opacity: 0
......@@ -622,6 +651,16 @@ define('package/quiqqer/frontend-users/bin/frontend/controls/login/Login', [
Reset.setStyle('display', 'none');
}
});
if (LoginInner) {
moofx(Login).animate({
height: LoginInner.offsetHeight
}, {
callback: function() {
Login.style.height = null;
}
});
}
},
/**
......
......@@ -460,6 +460,14 @@
<en>
<![CDATA[Automatic redirect to the specified page after the user has been successfully activated. The automatic forwarding takes place after <b>10 seconds</b>. <b>Note:</b> Does not apply if users are required to be activated <b>manually</b> after a registration.]]></en>
</locale>
<locale name="settings.reloadOnSuccess.title">
<de><![CDATA[Seite neu laden nach Registrierung]]></de>
<en><![CDATA[Reload page after registration]]></en>
</locale>
<locale name="settings.reloadOnSuccess.description">
<de><![CDATA[Nach einer erfolgreichen Registrierung soll die Seite neu geladen werden. Diese Einstellung überschreibt die Einstellung "Automatische Weiterleitung nach Aktivierung".]]></de>
<en><![CDATA[After successful registration the page should be reloaded. This setting overwrites the setting "Auto redirect on activation".]]></en>
</locale>
<locale name="settings.redirectOnLogin.title">
<de><![CDATA[Automatische Weiterleitung nach Login]]></de>
<en><![CDATA[Auto redirect on log in]]></en>
......
......@@ -120,6 +120,10 @@
<conf name="autoRedirectOnSuccess">
<type><![CDATA[string]]></type>
</conf>
<conf name="reloadOnSuccess">
<type><![CDATA[bool]]></type>
<defaultvalue>0</defaultvalue>
</conf>
<conf name="addressFields">
<type><![CDATA[string]]></type>
</conf>
......@@ -582,6 +586,16 @@
</description>
</input>
<input conf="registration.reloadOnSuccess" type="checkbox">
<text>
<locale group="quiqqer/frontend-users" var="settings.reloadOnSuccess.title"/>
</text>
<description>
<locale group="quiqqer/frontend-users"
var="settings.reloadOnSuccess.description"/>
</description>
</input>
<input conf="registration.useCaptcha" type="checkbox">
<text>
<locale group="quiqqer/frontend-users" var="settings.useCaptcha.title"/>
......
......@@ -22,6 +22,10 @@
width: 100%;
}
.quiqqer-fu-login-container__inner {
display: flow-root;
}
.quiqqer-fu-login-social-entry {
border: 1px solid #ddd;
border-radius: 100%;
......@@ -135,8 +139,6 @@
}
.quiqqer-fu-login-forget-password-reset {
background: #fff;
height: 100%;
opacity: 0;
position: absolute;
top: 0;
......@@ -175,13 +177,6 @@
width: 100%;
}
.quiqqer-fu-login-forget-password-reset [name="cancel"] {
bottom: 0;
padding: 0.5rem 2rem;
position: absolute;
right: 0;
}
.quiqqer-fu-login-activation-info {
margin: 20px 0 20px 0;
}
......
......@@ -15,84 +15,86 @@
{else}
<section class="quiqqer-fu-login-container" style="display: none">
{if $this->getAttribute('header')}
<h2>{locale group="quiqqer/frontend-users" var="control.login.title"}</h2>
{/if}
<div class="quiqqer-fu-login-social">
{foreach $authenticators as $entry}
<form action=""
method="POST"
class="quiqqer-fu-login-social-entry"
data-authenticator="{$entry.class}"
data-authenticator-hash="{$entry.class|md5}"
>
<span class="quiqqer-fu-login-social-entry-icon">
{if $entry.icon}
<span class="{$entry.Login->getAttribute('icon')}"></span>
{elseif $entry.image}
<img src="{$entry.Login->getAttribute('icon')}" alt="" />
{/if}
</span>
<span class="quiqqer-fu-login-social-entry-loader">
<span class="fa fa-spin fa-spinner fas fa-circle-notch"></span>
</span>
<div class="quiqqer-fu-login-social-entry-control">
{$entry.Login->create()}
</div>
</form>
{/foreach}
</div>
<div class="quiqqer-fu-login-container__inner">
{if $this->getAttribute('header')}
<h2>{locale group="quiqqer/frontend-users" var="control.login.title"}</h2>
{/if}
{if $this->getAttribute('mail')}
{if count($authenticators)}
<div class="quiqqer-fu-login-between-text">
{locale group="quiqqer/frontend-users" var="control.login.message.between"}
<div class="quiqqer-fu-login-social">
{foreach $authenticators as $entry}
<form action=""
method="POST"
class="quiqqer-fu-login-social-entry"
data-authenticator="{$entry.class}"
data-authenticator-hash="{$entry.class|md5}"
>
<span class="quiqqer-fu-login-social-entry-icon">
{if $entry.icon}
<span class="{$entry.Login->getAttribute('icon')}"></span>
{elseif $entry.image}
<img src="{$entry.Login->getAttribute('icon')}" alt="" />
{/if}
</span>
<span class="quiqqer-fu-login-social-entry-loader">
<span class="fa fa-spin fa-spinner fas fa-circle-notch"></span>
</span>
<div class="quiqqer-fu-login-social-entry-control">
{$entry.Login->create()}
</div>
</form>
{/foreach}
</div>
{if $this->getAttribute('mail')}
{if count($authenticators)}
<div class="quiqqer-fu-login-between-text">
{locale group="quiqqer/frontend-users" var="control.login.message.between"}
</div>
{/if}
{/if}
{/if}
<div class="quiqqer-fu-login-activation-info"></div>
<div class="quiqqer-fu-login-activation-info"></div>
{if $this->getAttribute('mail')}
<form name="quiqqer-fu-login-email" class="quiqqer-fu-login-email">
<section class="quiqqer-fu-login-email-mailSection">
<label>
<span class="label">
{locale group="quiqqer/frontend-users" var="control.registration.sign.up.email.title"}
</span>
<span class="field">
<span class="icon fa fa-envelope"></span>
<input type="text" name="username" required autocomplete="email"/>
</span>
</label>
{if $this->getAttribute('mail')}
<form name="quiqqer-fu-login-email" class="quiqqer-fu-login-email">
<section class="quiqqer-fu-login-email-mailSection">
<label>
<span class="label">
{locale group="quiqqer/frontend-users" var="control.registration.sign.up.email.title"}
</span>
<span class="field">
<span class="icon fa fa-envelope"></span>
<input type="text" name="username" required autocomplete="email"/>
</span>
</label>
<label>
<span class="label">
{locale group="quiqqer/frontend-users" var="control.registration.sign.up.password.title"}
</span>
<span class="field">
<span class="icon fa fa-key"></span>
<input type="password" name="password" required autocomplete="off"/>
</span>
</label>
<label>
<span class="label">
{locale group="quiqqer/frontend-users" var="control.registration.sign.up.password.title"}
</span>
<span class="field">
<span class="icon fa fa-key"></span>
<input type="password" name="password" required autocomplete="off"/>
</span>
</label>
<div class="quiqqer-fu-login-email-buttons">
<button type="submit" name="mail-login">
{locale group="quiqqer/frontend-users" var="control.login.button"}
</button>
</div>
</section>
</form>
{/if}
<div class="quiqqer-fu-login-email-buttons">
<button type="submit" name="mail-login">
{locale group="quiqqer/frontend-users" var="control.login.button"}
</button>
</div>
</section>
</form>
{/if}
{if $showPasswordReset}
<div class="quiqqer-fu-login-forget-password-link">
<a href="#">
{locale group="quiqqer/frontend-users" var="control.login.forgotten.password"}
</a>
{if $showPasswordReset}
<div class="quiqqer-fu-login-forget-password-link">
<a href="#">
{locale group="quiqqer/frontend-users" var="control.login.forgotten.password"}
</a>
</div>
{/if}
</div>
{/if}
{if $showPasswordReset}
<div class="quiqqer-fu-login-forget-password-reset" style="display: none;">
......
......@@ -26,8 +26,12 @@
{$Registrar->getSuccessMessage()}
{/if}
{if $redirectUrl}
<div class="quiqqer-frontendUsers-redirect" data-url="{$redirectUrl}" data-instant="{if $instantRedirect}1{else}0{/if}">
{if !$instantRedirect}
<div class="quiqqer-frontendUsers-redirect"
data-url="{$redirectUrl}"
data-instant="{if $instantRedirect}1{else}0{/if}"
data-reload="{if $instantReload}1{else}0{/if}"
>
{if !$instantRedirect && !$instantReload}
{locale group="quiqqer/frontend-users" var="control.registration.auto_redirect" url=$redirectUrl}
{/if}
</div>
......
......@@ -157,12 +157,16 @@ public function getBody(): string
// redirect directives
$redirectUrl = false;
$instantRedirect = false;
$instantReload = false;
if ($success) {
$instantReload = !empty($registrationSettings['reloadOnSuccess']);
if (
$this->RegisteredUser
&& $this->RegisteredUser->isActive()
&& $registrationSettings['autoLoginOnActivation']
!$instantReload &&
$this->RegisteredUser &&
$this->RegisteredUser->isActive() &&
$registrationSettings['autoLoginOnActivation']
) {
// instantly redirect (only used on auto-login)
$loginSettings = $RegistrarHandler->getLoginSettings();
......@@ -182,7 +186,7 @@ public function getBody(): string
}
}
if (!$redirectUrl && !empty($registrationSettings['autoRedirectOnSuccess'][$projectLang])) {
if (!$instantReload && !$redirectUrl && !empty($registrationSettings['autoRedirectOnSuccess'][$projectLang])) {
// show success message and redirect after 10 seconds
try {
$RedirectSite = QUI\Projects\Site\Utils::getSiteByLink(
......@@ -335,6 +339,7 @@ public function getBody(): string
'success' => $success,
'redirectUrl' => $redirectUrl,
'instantRedirect' => $instantRedirect,
'instantReload' => $instantReload,
'Login' => $Login,
'termsOfUseLabel' => $termsOfUseLabel,
'termsOfUseRequired' => $termsOfUseRequired,
......