Skip to content
Code-Schnipsel Gruppen Projekte
Commit 82830bf9 erstellt von Florian Bogner's avatar Florian Bogner
Dateien durchsuchen

feat: Cronservice will now display a message regarding the activation email...

feat: Cronservice will now display a message regarding the activation email and will allow the user to resend the activation mail.
Übergeordneter f4df3ac1
No related branches found
No related tags found
Keine zugehörigen Merge Requests gefunden
<?php
/**
* Requests the server to resend the activationmail again
*
* @param - The email which was used for registration.
*/
QUI::$Ajax->registerFunction(
'package_quiqqer_cron_ajax_cronservice_resendActivation',
function () {
$CronService = new \QUI\Cron\CronService();
$CronService->resendActivationMail();
},
array(),
''
);
\ No newline at end of file
......@@ -80,3 +80,7 @@
float : right;
}
.quiqqer-cron-cronservicewindow-registration-success-btn-confirm {
float : right;
margin : 15px 0 0 0;
}
\ No newline at end of file
......@@ -13,9 +13,10 @@ define('package/quiqqer/cron/bin/CronServiceWindow', [
'text!package/quiqqer/cron/bin/CronServiceWindow.html',
'text!package/quiqqer/cron/bin/CronServiceWindowRegistration.html',
'text!package/quiqqer/cron/bin/CronServiceWindowRegistrationSuccess.html',
'css!package/quiqqer/cron/bin/CronServiceWindow.css'
], function (QUI, QUIPopup, QUIButton, Mustache, QUILocale, QUIAjax, QUISheets, template, registrationTemplate) {
], function (QUI, QUIPopup, QUIButton, Mustache, QUILocale, QUIAjax, QUISheets, template, registrationTemplate, registrationSuccessTemplate) {
"use strict";
var lg = 'quiqqer/cron';
......@@ -101,40 +102,66 @@ define('package/quiqqer/cron/bin/CronServiceWindow', [
}));
self.registered = (status['status'] != 0);
self.status = status['status'];
var Buttons = Content.getElement('.quiqqer-cron-cronservicewindow-buttons');
// get the button text : register or unregister
var btnText = QUILocale.get(lg, 'cron.window.cronservice.content.btn.register');
// Register/Unregister Button
if (self.status)
// Get the button text : register or unregister
{
var btnText = QUILocale.get(lg, 'cron.window.cronservice.content.btn.register');
}
if (self.registered) {
btnText = QUILocale.get(lg, 'cron.window.cronservice.content.btn.unregister');
}
new QUIButton({
text : btnText,
textimage: 'fa fa-arrow-right',
events : {
onClick: function (Button) {
if (!self.registered) {
self.showRegistration();
return;
var Button = null;
if (self.status == 2) {
Button = new QUIButton({
text : QUILocale.get(lg, 'cron.window.cronservice.content.btn.resend.activation.mail'),
textimage: 'fa fa-envelope-o',
events : {
onClick: function (Button) {
self.resendActivationMail();
}
Button.setAttribute('text', QUILocale.get('quiqqer/cron', 'cron.window.cronservice.content.btn.unregister.confirm'));
if (Button.getAttribute('clickcnt') == 1) {
self.unregister().then(function () {
self.refresh();
});
},
styles : {
'float': 'none',
margin : '0 auto',
width : 200
}
});
} else {
Button = new QUIButton({
text : btnText,
textimage: 'fa fa-arrow-right',
events : {
onClick: function (Button) {
if (!self.registered) {
self.showRegistration();
return;
}
Button.setAttribute('text', QUILocale.get('quiqqer/cron', 'cron.window.cronservice.content.btn.unregister.confirm'));
if (Button.getAttribute('clickcnt') == 1) {
self.unregister().then(function () {
self.refresh();
});
}
Button.setAttribute('clickcnt', 1);
}
Button.setAttribute('clickcnt', 1);
},
styles : {
'float': 'none',
margin : '0 auto',
width : 200
}
},
styles : {
'float': 'none',
margin : '0 auto',
width : 200
}
}).inject(Buttons);
});
}
Button.inject(Buttons);
self.Loader.hide();
}, {
......@@ -172,8 +199,10 @@ define('package/quiqqer/cron/bin/CronServiceWindow', [
Content.getElement('.quiqqer-cron-cronservicewindow-btn-register').addEvent('click', function () {
self.Loader.show();
self.register(Email.value).then(function () {
self.refresh();
self.Loader.hide();
self.showRegistrationSuccess();
Sheet.destroy();
}).catch(function () {
self.Loader.hide();
});
......@@ -187,6 +216,41 @@ define('package/quiqqer/cron/bin/CronServiceWindow', [
}).inject(this.$Elm).show();
},
showRegistrationSuccess: function () {
var self = this;
new QUISheets({
header : true,
icon : 'fa fa-cloud',
title : QUILocale.get(lg, 'cron.window.cronservice.title'),
buttons: false,
events : {
onOpen : function (Sheet) {
var Content = Sheet.getContent();
self.Loader.show();
Content.set('html', Mustache.render(registrationSuccessTemplate, {
cron_window_cronservice_registration_success_title : QUILocale.get(lg, 'cron.window.cronservice.registration.success.title'),
cron_window_cronservice_registration_success_text : QUILocale.get(lg, 'cron.window.cronservice.registration.success.text'),
cron_window_cronservice_content_registration_successfull_btn_confirm: QUILocale.get(lg, 'cron.window.cronservice.registration.success.btn.confirm.text')
}));
// Click event handler
Content.getElement('.quiqqer-cron-cronservicewindow-registration-success-btn-confirm').addEvent('click', function () {
self.refresh();
Sheet.destroy();
});
self.Loader.hide();
},
onClose: function (Sheet) {
Sheet.destroy();
}
}
}).inject(this.$Elm).show();
},
/**
* Register a email to the cron service
*
......@@ -215,6 +279,15 @@ define('package/quiqqer/cron/bin/CronServiceWindow', [
onError : reject
});
});
},
resendActivationMail: function () {
return new Promise(function (resolve, reject) {
QUIAjax.get('package_quiqqer_cron_ajax_cronservice_resendActivation', resolve, {
'package': lg,
onError : reject
});
});
}
});
});
<div class="quiqqer-cron-cronservicewindow-registration">
<h1 class="quiqqer-cron-cronservicewindow-registration-title">
{{cron_window_cronservice_registration_success_title}}
</h1>
<div>
{{{cron_window_cronservice_registration_success_text}}}
</div>
<div class="quiqqer-cron-cronservicewindow-registration-success-btn-confirm qui-button">
<span class="fa fa-check"></span>
<span>{{cron_window_cronservice_content_registration_successfull_btn_confirm}}</span>
</div>
</div>
\ No newline at end of file
......@@ -164,107 +164,7 @@
<de><![CDATA[Aufgabenverlauf]]></de>
<en><![CDATA[Cron history]]></en>
</locale>
<locale name="cron.panel.manager.btn.cronservice.register">
<de><![CDATA[Cronservice]]></de>
<en><![CDATA[Cronservice]]></en>
</locale>
<locale name="cron.window.cronservice.title">
<de><![CDATA[Cronservice]]></de>
<en><![CDATA[Cronservice]]></en>
</locale>
<locale name="cron.window.cronservice.btn.cancel">
<de><![CDATA[Abbrechen]]></de>
<en><![CDATA[Cancel]]></en>
</locale>
<locale name="cron.window.cronservice.btn.register">
<de><![CDATA[Registrieren]]></de>
<en><![CDATA[Register]]></en>
</locale>
<locale name="cron.window.cronservice.content.title">
<de><![CDATA[Cronservice]]></de>
<en><![CDATA[Cronservice]]></en>
</locale>
<locale name="cron.window.cronservice.content.about.title">
<de><![CDATA[Was ist das?]]></de>
<en><![CDATA[About]]></en>
</locale>
<locale name="cron.window.cronservice.content.about.text">
<de><![CDATA[Der QUIQQER Cronservice ermöglicht es Crons auf Systemen auszuführen, die nativ keine Crons ausführen können.
Realisiert wird dies durch einen Server, an dem sich QUIQQER-SYteme anmelden können, welcher wiederrum regelmäßig die Crons der angemeldeten Systeme anstoßt.
Dies kann vorallem auf Shared-Hostings von großem Nutzen sein.]]></de>
<en><![CDATA[The QUIQQER cronservice enables systems withou native cronfunctionality to execute the QUIQQER crons anyway.
This is works with an external server on which QUIQQER systems can register themselves. This server will start the scheduled crons of all registered QUIQQER systems regularely.
]]></en>
</locale>
<locale name="cron.window.cronservice.content.status.title">
<de><![CDATA[Status]]></de>
<en><![CDATA[State]]></en>
</locale>
<locale name="cron.window.cronservice.content.status.text">
<de><![CDATA[Hier können Sie den Status Ihrer Registrierung verfolgen :]]></de>
<en><![CDATA[You can check the state of your registration here :]]></en>
</locale>
<locale name="cron.window.cronservice.content.btn.register">
<de><![CDATA[Registrieren]]></de>
<en><![CDATA[Register]]></en>
</locale>
<locale name="cron.window.cronservice.content.register.title">
<de><![CDATA[Registrieren]]></de>
<en><![CDATA[Register]]></en>
</locale>
<locale name="cron.window.cronservice.content.register.placeholder.email">
<de><![CDATA[Email]]></de>
<en><![CDATA[Email]]></en>
</locale>
<locale name="cron.window.cronservice.registration.title">
<de><![CDATA[Registration]]></de>
<en><![CDATA[Registration]]></en>
</locale>
<locale name="cron.window.cronservice.content.register.txt.email.title">
<de><![CDATA[Email]]></de>
<en><![CDATA[Email]]></en>
</locale>
<locale name="cron.window.cronservice.content.register.btn.register">
<de><![CDATA[Registrieren]]></de>
<en><![CDATA[Register]]></en>
</locale>
<locale name="cron.window.cronservice.content.register.btn.unregister">
<de><![CDATA[Abmelden]]></de>
<en><![CDATA[Unregister]]></en>
</locale>
<locale name="cron.window.cronservice.status.text.inactive">
<de><![CDATA[Inaktiv]]></de>
<en><![CDATA[Inactive]]></en>
</locale>
<locale name="cron.window.cronservice.status.text.registered">
<de><![CDATA[Aktiv]]></de>
<en><![CDATA[Active]]></en>
</locale>
<locale name="cron.window.cronservice.status.text.unregistered">
<de><![CDATA[Nicht registriert]]></de>
<en><![CDATA[Not registered]]></en>
</locale>
<locale name="cron.window.cronservice.content.register.lbl.stats.status">
<de><![CDATA[Status: ]]></de>
<en><![CDATA[Status: ]]></en>
</locale>
<locale name="cron.window.cronservice.content.register.lbl.stats.errors">
<de><![CDATA[Fehlerzahl: ]]></de>
<en><![CDATA[Errorcount: ]]></en>
</locale>
<locale name="cron.window.cronservice.content.register.lbl.stats.lastExecution">
<de><![CDATA[Letzte Ausführung: ]]></de>
<en><![CDATA[Last execution: ]]></en>
</locale>
<locale name="cron.window.cronservice.content.btn.unregister.confirm">
<de><![CDATA[Sind Sie sicher?]]></de>
<en><![CDATA[Are you sure?]]></en>
</locale>
<locale name="cron.window.cronservice.content.btn.unregister">
<de><![CDATA[Registrierung entfernen]]></de>
<en><![CDATA[Unregister]]></en>
</locale>
<locale name="permission.quiqqer.cron._header">
<de><![CDATA[Aufgaben / Tasks]]></de>
......@@ -427,5 +327,118 @@ This is works with an external server on which QUIQQER systems can register them
<de><![CDATA[Intervall]]></de>
<en><![CDATA[Interval]]></en>
</locale>
<!-- Cronservice -->
<locale name="cron.panel.manager.btn.cronservice.register">
<de><![CDATA[Cronservice]]></de>
<en><![CDATA[Cronservice]]></en>
</locale>
<locale name="cron.window.cronservice.title">
<de><![CDATA[Cronservice]]></de>
<en><![CDATA[Cronservice]]></en>
</locale>
<locale name="cron.window.cronservice.btn.cancel">
<de><![CDATA[Abbrechen]]></de>
<en><![CDATA[Cancel]]></en>
</locale>
<locale name="cron.window.cronservice.btn.register">
<de><![CDATA[Registrieren]]></de>
<en><![CDATA[Register]]></en>
</locale>
<locale name="cron.window.cronservice.content.title">
<de><![CDATA[Cronservice]]></de>
<en><![CDATA[Cronservice]]></en>
</locale>
<locale name="cron.window.cronservice.content.about.title">
<de><![CDATA[Was ist das?]]></de>
<en><![CDATA[About]]></en>
</locale>
<locale name="cron.window.cronservice.content.about.text">
<de><![CDATA[Der QUIQQER Cronservice ermöglicht es Crons auf Systemen auszuführen, die nativ keine Crons ausführen können.
Realisiert wird dies durch einen Server, an dem sich QUIQQER-SYteme anmelden können, welcher wiederrum regelmäßig die Crons der angemeldeten Systeme anstoßt.
Dies kann vorallem auf Shared-Hostings von großem Nutzen sein.]]></de>
<en><![CDATA[The QUIQQER cronservice enables systems withou native cronfunctionality to execute the QUIQQER crons anyway.
This is works with an external server on which QUIQQER systems can register themselves. This server will start the scheduled crons of all registered QUIQQER systems regularely.
]]></en>
</locale>
<locale name="cron.window.cronservice.content.status.title">
<de><![CDATA[Status]]></de>
<en><![CDATA[State]]></en>
</locale>
<locale name="cron.window.cronservice.content.status.text">
<de><![CDATA[Hier können Sie den Status Ihrer Registrierung verfolgen :]]></de>
<en><![CDATA[You can check the state of your registration here :]]></en>
</locale>
<locale name="cron.window.cronservice.content.btn.register">
<de><![CDATA[Registrieren]]></de>
<en><![CDATA[Register]]></en>
</locale>
<locale name="cron.window.cronservice.content.register.title">
<de><![CDATA[Registrieren]]></de>
<en><![CDATA[Register]]></en>
</locale>
<locale name="cron.window.cronservice.content.register.placeholder.email">
<de><![CDATA[Email]]></de>
<en><![CDATA[Email]]></en>
</locale>
<locale name="cron.window.cronservice.registration.title">
<de><![CDATA[Registration]]></de>
<en><![CDATA[Registration]]></en>
</locale>
<locale name="cron.window.cronservice.content.register.txt.email.title">
<de><![CDATA[Email]]></de>
<en><![CDATA[Email]]></en>
</locale>
<locale name="cron.window.cronservice.content.register.btn.register">
<de><![CDATA[Registrieren]]></de>
<en><![CDATA[Register]]></en>
</locale>
<locale name="cron.window.cronservice.content.register.btn.unregister">
<de><![CDATA[Abmelden]]></de>
<en><![CDATA[Unregister]]></en>
</locale>
<locale name="cron.window.cronservice.status.text.inactive">
<de><![CDATA[Inaktiv]]></de>
<en><![CDATA[Inactive]]></en>
</locale>
<locale name="cron.window.cronservice.status.text.registered">
<de><![CDATA[Aktiv]]></de>
<en><![CDATA[Active]]></en>
</locale>
<locale name="cron.window.cronservice.status.text.unregistered">
<de><![CDATA[Nicht registriert]]></de>
<en><![CDATA[Not registered]]></en>
</locale>
<locale name="cron.window.cronservice.content.register.lbl.stats.status">
<de><![CDATA[Status: ]]></de>
<en><![CDATA[Status: ]]></en>
</locale>
<locale name="cron.window.cronservice.content.register.lbl.stats.errors">
<de><![CDATA[Fehlerzahl: ]]></de>
<en><![CDATA[Errorcount: ]]></en>
</locale>
<locale name="cron.window.cronservice.content.register.lbl.stats.lastExecution">
<de><![CDATA[Letzte Ausführung: ]]></de>
<en><![CDATA[Last execution: ]]></en>
</locale>
<locale name="cron.window.cronservice.content.btn.unregister.confirm">
<de><![CDATA[Sind Sie sicher?]]></de>
<en><![CDATA[Are you sure?]]></en>
</locale>
<locale name="cron.window.cronservice.content.btn.unregister">
<de><![CDATA[Registrierung entfernen]]></de>
<en><![CDATA[Unregister]]></en>
</locale>
<locale name="cron.window.cronservice.registration.success.title">
<de><![CDATA[Registrierung erfolgreich]]></de>
<en><![CDATA[Registration successfull]]></en>
</locale>
<locale name="cron.window.cronservice.registration.success.text" html="true">
<de>
<![CDATA[Die Registrierung war erfolgreich! <br /> Bitte überprüfen Sie nun das angegebene Email Postfach und bestätigen Sie die Registrierung. <br /> Bitte bedenken Sie, dass die Email im Spamordner gelandet sein könnte.]]></de>
<en>
<![CDATA[The registration was successfull. Please check your email inbox and confirm the registration. <br /> Bear in mind that the email could have been marked as spam.]]></en>
</locale>
</groups>
</locales>
\ No newline at end of file
......@@ -25,7 +25,7 @@ class CronService
$url_dir = QUI::$Conf->get("globals", "url_dir");
// VHost Domain
$vhost = QUI::getProjectManager()->getStandard()->getVHost(true, true);
$vhost = QUI::getProjectManager()->getStandard()->getVHost(true, true);
// Check if https should be used.
if (substr($vhost, 0, 8) == 'https://') {
......@@ -106,6 +106,26 @@ class CronService
));
}
/**
* Requests the cronservice to resend the activation email
* @throws Exception
*/
public function resendActivationMail()
{
if (!isset($this->domain) || empty($this->domain)) {
throw new Exception("Could not get the instances domain.");
}
$this->makeServerAjaxCall(
"package_pcsg_cronservice_ajax_resendActivationMail",
array(
"domain" => $this->domain
)
);
}
/**
* Sends an ajax request to the cronservice server.
*
......
0% oder .
You are about to add 0 people to the discussion. Proceed with caution.
Bearbeitung dieser Nachricht zuerst beenden!
Bitte registrieren oder zum Kommentieren