Skip to content
Code-Schnipsel Gruppen Projekte
Commit 732d9b10 erstellt von Henning Leutz's avatar Henning Leutz :martial_arts_uniform:
Dateien durchsuchen

fix: conflict solved

Übergeordnete 9e953378 4a6796ce
No related branches found
No related tags found
Keine zugehörigen Merge Requests gefunden
werden angezeigt mit 544 Ergänzungen und 56 Löschungen
......@@ -11,7 +11,6 @@
* @param String $dayOfWeek
* @param string $params
*/
QUI::$Ajax->registerFunction(
'package_quiqqer_cron_ajax_add',
function ($cron, $min, $hour, $day, $month, $dayOfWeek, $params) {
......
<?php
/**
* Gets the current Status for this instance
*
* @return string - Returns the status
*/
QUI::$Ajax->registerFunction(
'package_quiqqer_cron_ajax_cronservice_getStatus',
function () {
$CronService = new \QUI\Cron\CronService();
return $CronService->getStatus();
},
array(),
''
);
<?php
/**
* Revokes a registration on the cronservice server.
*
*/
QUI::$Ajax->registerFunction(
'package_quiqqer_cron_ajax_cronservice_revokeRegistration',
function () {
$CronService = new \QUI\Cron\CronService();
$CronService->revokeRegistration();
},
array(),
''
);
<?php
/**
* Sends a registration to the cronservice server.
*
*
*/
QUI::$Ajax->registerFunction(
'package_quiqqer_cron_ajax_cronservice_sendRegistration',
function ($email) {
$CronService = new \QUI\Cron\CronService();
$CronService->register($email);
},
array('email'),
''
);
......@@ -5,7 +5,6 @@
*
* @param string $ids - json array
*/
QUI::$Ajax->registerFunction(
'package_quiqqer_cron_ajax_delete',
function ($ids) {
......
<?php
/**
* Add a cron to the cron list
* Edit a cron
*
* @param String $cronId
* @param String $cron
......@@ -12,7 +12,6 @@
* @param String $dayOfWeek
* @param String $params
*/
QUI::$Ajax->registerFunction(
'package_quiqqer_cron_ajax_edit',
function ($cronId, $cron, $min, $hour, $day, $month, $dayOfWeek, $params) {
......
......@@ -3,14 +3,12 @@
/**
* Execute the cron list
*/
QUI::$Ajax->registerFunction(
'package_quiqqer_cron_ajax_execute',
function () {
try {
$Manager = new QUI\Cron\Manager();
$Manager->execute();
} catch (QUI\Exception $Exception) {
QUI\System\Log::addError(
'package_quiqqer_cron_ajax_execute() :: ' . $Exception->getMessage()
......
......@@ -5,7 +5,6 @@
*
* @return array
*/
QUI::$Ajax->registerFunction(
'package_quiqqer_cron_ajax_getList',
function () {
......
......@@ -13,8 +13,8 @@ QUI::$Ajax->registerFunction(
$params = json_decode($params, true);
return array(
'page' => (int)$params['page'],
'data' => $CronManager->getHistoryList($params),
'page' => (int)$params['page'],
'data' => $CronManager->getHistoryList($params),
'total' => $CronManager->getHistoryCount()
);
},
......
.quiqqer-cron-cronservicewindow-btn-openRegistration {
margin : 30px auto 0 auto;
float : right;
}
.quiqqer-cron-cronserviceWindow h2 {
font-weight : normal;
margin-bottom : 10px;
}
.quiqqer-cron-cronservicewindow-title {
padding-bottom : 10px;
text-align : center;
}
.quiqqer-cron-cronservicewindow-title span {
clear : both;
display : block;
}
.quiqqer-cron-cronservicewindow-title .fa {
font-size : 60px;
}
.quiqqer-cron-cronservicewindow-section {
margin : 15px auto;
}
.quiqqer-cron-cronservicewindow-buttons {
text-align : center;
margin-top : 40px;
width : 100%;
}
.quiqqer-cron-cronservicewindow-stat-title {
font-weight : bold;
}
.quiqqer-cron-cronservice-table-stats {
width : 100%;
}
.quiqqer-cron-cronservice-table-stats td {
width : 50%;
}
.quiqqer-cron-cronservicewindow-stat-negative {
color : red;
}
.quiqqer-cron-cronservicewindow-stat-positive {
color : green;
}
/* Registration Sheet */
.quiqqer-cron-cronservicewindow-registration {
padding : 20px;
}
.quiqqer-cron-cronservicewindow-registration-title {
border-bottom : 1px solid #eee;
padding-bottom : 10px;
}
.quiqqer-cron-cronservicewindow-registration-lbl-email {
font-weight : bold;
padding : 2px;
width : 100%;
}
.quiqqer-cron-cronservicewindow-registration-txt-email {
width : 100%;
margin-top : 6px;
}
.quiqqer-cron-cronservicewindow-btn-register {
margin-top : 20px;
float : right;
}
<h1 class="quiqqer-cron-cronservicewindow-title">
<span class="fa fa-cloud"></span>
<span>{{cron_window_cronservice_content_title}}</span>
</h1>
<div class="quiqqer-cron-cronservicewindow-section">
<h2>{{cron_window_cronservice_content_about_title}}</h2>
<p>
{{cron_window_cronservice_content_about_text}}
</p>
</div>
<div class="quiqqer-cron-cronservicewindow-section">
<h2>{{cron_window_cronservice_content_status_title}}</h2>
{{cron_window_cronservice_content_status_text}}
<table class="quiqqer-cron-cronservice-table-stats">
<tr>
<td>
<span class="quiqqer-cron-cronservicewindow-stat-title">
{{cron_window_cronservice_content_register_lbl_stats_status}}
</span>
</td>
<td>
<span class="{{#active}}quiqqer-cron-cronservicewindow-stat-positive{{/active}}{{^active}}quiqqer-cron-cronservicewindow-stat-negative{{/active}}">
{{statusText}}
</span>
</td>
</tr>
{{#registered}}
<tr>
<td>
<span class="quiqqer-cron-cronservicewindow-stat-title">
{{cron_window_cronservice_content_register_lbl_stats_errors}}
</span>
</td>
<td>
{{statusErrors}}
</td>
</tr>
<tr>
<td>
<span class="quiqqer-cron-cronservicewindow-stat-title">
{{cron_window_cronservice_content_register_lbl_stats_lastExecution}}
</span>
</td>
<td>
{{statusLastExecution}}
</td>
</tr>
{{/registered}}
</table>
</div>
<div class="quiqqer-cron-cronservicewindow-buttons"></div>
\ No newline at end of file
/**
*
*/
define('package/quiqqer/cron/bin/CronServiceWindow', [
'qui/QUI',
'qui/controls/windows/Popup',
'qui/controls/buttons/Button',
'Mustache',
'Locale',
'Ajax',
'qui/controls/desktop/panels/Sheet',
'text!package/quiqqer/cron/bin/CronServiceWindow.html',
'text!package/quiqqer/cron/bin/CronServiceWindowRegistration.html',
'css!package/quiqqer/cron/bin/CronServiceWindow.css'
], function (QUI, QUIPopup, QUIButton, Mustache, QUILocale, QUIAjax, QUISheets, template, registrationTemplate) {
"use strict";
var lg = 'quiqqer/cron';
return new Class({
Extends: QUIPopup,
Type : 'package/quiqqer/cron/bin/CronServiceWindow',
Binds: [
'$onSubmit',
'$onOpen',
'showRegistration'
],
options: {
title : QUILocale.get(lg, 'cron.window.cronservice.title'),
icon : 'fa fa-cloud',
maxWidth : 400,
maxHeight: 600,
autoclose: false,
buttons : false
},
initialize: function (options) {
this.parent(options);
this.registered = false;
this.addEvents({
onOpen: this.$onOpen
});
},
$onOpen: function () {
var Content = this.getContent();
Content.set('html', '');
Content.addClass('quiqqer-cron-cronserviceWindow');
this.refresh();
},
/**
* refresh
*/
refresh: function () {
var self = this,
Content = this.getContent();
this.Loader.show();
QUIAjax.get('package_quiqqer_cron_ajax_cronservice_getStatus', function (result) {
var status = result;
var statusText = QUILocale.get(lg, 'cron.window.cronservice.status.text.unregistered');
if (status['status'] == 1) {
statusText = QUILocale.get(lg, 'cron.window.cronservice.status.text.registered');
}
if (status['status'] == 2) {
statusText = QUILocale.get(lg, 'cron.window.cronservice.status.text.inactive');
}
Content.set('html', Mustache.render(template, {
cron_window_cronservice_content_title : QUILocale.get(lg, 'cron.window.cronservice.content.title'),
cron_window_cronservice_content_about_title : QUILocale.get(lg, 'cron.window.cronservice.content.about.title'),
cron_window_cronservice_content_about_text : QUILocale.get(lg, 'cron.window.cronservice.content.about.text'),
cron_window_cronservice_content_status_title : QUILocale.get(lg, 'cron.window.cronservice.content.status.title'),
cron_window_cronservice_content_status_text : QUILocale.get(lg, 'cron.window.cronservice.content.status.text'),
cron_window_cronservice_content_btn_unregister : QUILocale.get(lg, 'cron.window.cronservice.content.register.btn.unregister'),
cron_window_cronservice_content_btn_register : QUILocale.get(lg, 'cron.window.cronservice.content.btn.register'),
cron_window_cronservice_content_register_lbl_stats_status : QUILocale.get(lg, 'cron.window.cronservice.content.register.lbl.stats.status'),
cron_window_cronservice_content_register_lbl_stats_errors : QUILocale.get(lg, 'cron.window.cronservice.content.register.lbl.stats.errors'),
cron_window_cronservice_content_register_lbl_stats_lastExecution: QUILocale.get(lg, 'cron.window.cronservice.content.register.lbl.stats.lastExecution'),
statusText : statusText,
status : status['status'],
statusErrors : status['current_failures'], //== 0 ? "0": status['errors'].toString(),
statusLastExecution : status['last_execution'],
registered : (status['status'] != 0),
active : (status['status'] == 1),
inactive : (status['status'] == 2)
}));
self.registered = (status['status'] != 0);
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');
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;
}
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);
}
},
styles : {
'float': 'none',
margin : '0 auto',
width : 200
}
}).inject(Buttons);
self.Loader.hide();
}, {
'package': lg,
'onError': function () {
self.Loader.hide();
}
});
},
/**
* Opens the registration sheet
*/
showRegistration: 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();
Content.set('html', Mustache.render(registrationTemplate, {
cron_window_cronservice_registration_title : QUILocale.get(lg, 'cron.window.cronservice.registration.title'),
cron_window_cronservice_content_register_txt_email_title : QUILocale.get(lg, 'cron.window.cronservice.content.register.txt.email.title'),
cron_window_cronservice_content_register_placeholder_email: QUILocale.get(lg, 'cron.window.cronservice.content.register.placeholder.email'),
cron_window_cronservice_content_btn_register : QUILocale.get(lg, 'cron.window.cronservice.registration.title')
}));
var Email = Content.getElement('.quiqqer-cron-cronservicewindow-registration-txt-email');
Content.getElement('.quiqqer-cron-cronservicewindow-btn-register').addEvent('click', function () {
self.Loader.show();
self.register(Email.value).then(function () {
self.refresh();
Sheet.destroy();
}).catch(function () {
self.Loader.hide();
});
});
},
onClose: function (Sheet) {
Sheet.destroy();
}
}
}).inject(this.$Elm).show();
},
/**
* Register a email to the cron service
*
* @param {String} email
* @returns {Promise}
*/
register: function (email) {
return new Promise(function (resolve, reject) {
QUIAjax.post('package_quiqqer_cron_ajax_cronservice_sendRegistration', resolve, {
'package': lg,
'email' : email,
onError : reject
});
});
},
/**
* Unregister a email to the cron service
*
* @returns {Promise}
*/
unregister: function () {
return new Promise(function (resolve, reject) {
QUIAjax.get('package_quiqqer_cron_ajax_cronservice_revokeRegistration', resolve, {
'package': lg,
onError : reject
});
});
}
});
});
<div class="quiqqer-cron-cronservicewindow-registration">
<h1 class="quiqqer-cron-cronservicewindow-registration-title">
{{cron_window_cronservice_registration_title}}
</h1>
<form action="" method="POST">
<label
class="quiqqer-cron-cronservicewindow-registration-lbl-email"
for="quiqqer-cron-cronservicewindow-registration-txt-email"
>
{{cron_window_cronservice_content_register_txt_email_title}}
</label>
<input
id="quiqqer-cron-cronservicewindow-registration-txt-email"
type="text"
name="email"
required="required"
placeholder="{{cron_window_cronservice_content_register_placeholder_email}}"
class="quiqqer-cron-cronservicewindow-registration-txt-email"
/>
<div class="quiqqer-cron-cronservicewindow-btn-register qui-button">
<span class="fa fa-check"></span>
<span>{{cron_window_cronservice_content_btn_register}}</span>
</div>
</form>
</div>
\ No newline at end of file
......@@ -32,7 +32,7 @@ define('package/quiqqer/cron/bin/CronWindow', [
options: {
title : QUILocale.get('quiqqer/cron', 'cron.window.add.cron.title'),
icon : 'icon-time',
icon : 'fa fa-clock-o',
maxWidth : 750,
maxHeight: 500,
......@@ -40,11 +40,11 @@ define('package/quiqqer/cron/bin/CronWindow', [
cancel_button : {
text : QUILocale.get('quiqqer/system', 'cancel'),
textimage : 'icon-remove fa fa-remove'
textimage : 'fa fa-remove'
},
ok_button : {
text : QUILocale.get('quiqqer/system', 'ok'),
textimage : 'icon-ok fa fa-check'
textimage : 'fa fa-check'
}
},
......
......@@ -43,7 +43,7 @@ define('package/quiqqer/cron/bin/History', [
options: {
title: 'Cron-History',
icon : 'icon-long-arrow-right'
icon : 'fa fa-long-arrow-right'
},
initialize: function (options) {
......
......@@ -41,7 +41,7 @@ define('package/quiqqer/cron/bin/Manager', [
options: {
title: 'Cron-Manager',
icon : 'icon-time'
icon : 'fa fa-clock-o'
},
initialize: function (options) {
......@@ -81,7 +81,7 @@ define('package/quiqqer/cron/bin/Manager', [
for (var i = 0, len = result.length; i < len; i++) {
result[i].status = {
title : QUILocale.get(lg, 'cron.panel.manager.btn.toggle'),
icon : result[i].active == 1 ? 'icon-ok' : 'icon-remove',
icon : result[i].active == 1 ? 'fa fa-check' : 'fa fa-remove',
cronId: result[i].id,
events: {
onClick: toggleCron
......@@ -91,7 +91,7 @@ define('package/quiqqer/cron/bin/Manager', [
result[i].play = {
name : 'cron-play-button-' + result[i].id,
title : QUILocale.get(lg, 'cron.panel.manager.btn.execute'),
icon : 'icon-play',
icon : 'fa fa-play',
cronId: result[i].id,
events: {
onClick: execCron
......@@ -120,7 +120,7 @@ define('package/quiqqer/cron/bin/Manager', [
new QUIButton({
name : 'add',
text : QUILocale.get(lg, 'cron.panel.manager.btn.add'),
textimage: 'icon-plus',
textimage: 'fa fa-plus',
events : {
onClick: function () {
self.openAddCronWindow();
......@@ -135,7 +135,7 @@ define('package/quiqqer/cron/bin/Manager', [
new QUIButton({
name : 'edit',
text : QUILocale.get(lg, 'cron.panel.manager.btn.edit'),
textimage: 'icon-pencil',
textimage: 'fa fa-edit',
events : {
onClick: function () {
self.editMarkedCron();
......@@ -148,7 +148,7 @@ define('package/quiqqer/cron/bin/Manager', [
new QUIButton({
name : 'delete',
text : QUILocale.get(lg, 'cron.panel.manager.btn.delete'),
textimage: 'icon-trash',
textimage: 'fa fa-trash',
events : {
onClick: function () {
self.deleteMarkedCrons();
......@@ -163,7 +163,7 @@ define('package/quiqqer/cron/bin/Manager', [
new QUIButton({
name : 'history',
text : QUILocale.get(lg, 'cron.panel.manager.btn.history'),
textimage: 'icon-long-arrow-right',
textimage: 'fa fa-long-arrow-right',
events : {
onClick: function () {
self.showHistory();
......@@ -176,6 +176,21 @@ define('package/quiqqer/cron/bin/Manager', [
this.getButtons('delete').disable();
this.addButton(new QUIButtonSeperator());
this.addButton(
new QUIButton({
name : 'cronservice',
text : QUILocale.get(lg, 'cron.panel.manager.btn.cronservice.register'),
textimage: 'fa fa-cloud',
events : {
onClick: function () {
self.registerCronservice();
}
}
})
);
var Content = this.getContent(),
Container = new Element('div', {
......@@ -322,7 +337,7 @@ define('package/quiqqer/cron/bin/Manager', [
});
new QUIConfirm({
icon : 'icon-remove',
icon : 'fa fa-remove',
title : QUILocale.get(lg, 'cron.window.delete.cron.title'),
text : QUILocale.get(lg, 'cron.window.delete.cron.text'),
information: QUILocale.get(lg, 'cron.window.delete.cron.information', {
......@@ -442,12 +457,12 @@ define('package/quiqqer/cron/bin/Manager', [
}
for (i = 0, len = buttons.length; i < len; i++) {
buttons[i].setAttribute('icon', 'icon-refresh icon-spin');
buttons[i].setAttribute('icon', 'fa fa-spinner fa-spin');
}
Ajax.post('package_quiqqer_cron_ajax_cron_executeCron', function () {
for (i = 0, len = buttons.length; i < len; i++) {
buttons[i].setAttribute('icon', 'icon-play');
buttons[i].setAttribute('icon', 'fa fa-play');
}
}, {
......@@ -465,6 +480,16 @@ define('package/quiqqer/cron/bin/Manager', [
require(['package/quiqqer/cron/bin/History'], function (Panel) {
new Panel().inject(self.getParent());
});
},
/**
* Opens the Cronservice registration
*/
registerCronservice: function () {
require(['package/quiqqer/cron/bin/CronServiceWindow'], function (CronServiceWindow) {
var csWindow = new CronServiceWindow();
csWindow.open();
});
}
});
});
\ No newline at end of file
<?php
/**
* External execution
*/
define('QUIQQER_SYSTEM', true);
require dirname(dirname(dirname(dirname(__FILE__)))) . "/header.php";
use \Symfony\Component\HttpFoundation\Response;
$Cron = new QUI\Cron\Manager();
$Response = QUI::getGlobalResponse();
try {
if (!QUI::getUserBySession()->getId()
&& isset($_GET['username'])
&& isset($_GET['password'])
&& isset($_GET['login'])
) {
$User = QUI::getUsers()->login(
$_GET['username'],
$_GET['password']
);
if ($User->getId()) {
QUI::getSession()->set('uid', $User->getId());
QUI\Permissions\Permission::setUser($User);
}
}
} catch (QUI\Exception $Exception) {
$Response->setStatusCode(Response::HTTP_FORBIDDEN);
$Response->send();
exit;
}
try {
$Cron->execute();
$Response->setStatusCode(Response::HTTP_OK);
$Response->send();
} catch (QUI\Exception $Exception) {
QUI\System\Log::addAlert($Exception->getMessage(), array(
'type' => 'cron execution'
));
$Response->setStatusCode(Response::HTTP_SERVICE_UNAVAILABLE);
$Response->send();
}
exit;
{
"name" : "quiqqer/cron",
"type" : "quiqqer-module",
"description" : "Provided currency calculation and a automtatic cron to get the Euro foreign exchange reference rates.",
"version" : "dev-master",
"license" : "GPL-2.0+",
"authors" : [{
"name": "Henning Leutz",
"email": "leutz@pcsg.de",
"homepage": "http://www.pcsg.de",
"role": "Developer"
}],
"support" : {
"email" : "support@pcsg.de"
},
"require": {
"quiqqer/quiqqer" : "*@dev",
"mtdowling/cron-expression": "1.0.*"
},
"autoload": {
"psr-0" : {
"QUI" : "src/"
}
}
}
{"name":"quiqqer\/cron","type":"quiqqer-module","description":"Provided currency calculation and a automtatic cron to get the Euro foreign exchange reference rates.","version":"dev-master","license":"GPL-2.0+","authors":[{"name":"Henning Leutz","email":"leutz@pcsg.de","homepage":"http:\/\/www.pcsg.de","role":"Developer"}],"support":{"email":"support@pcsg.de"},"require":{"quiqqer\/quiqqer":"*@dev","quiqqer\/utils":">=1.4|dev-dev","mtdowling\/cron-expression":"1.0.*"},"autoload":{"psr-0":{"QUI":"src\/"}}}
\ No newline at end of file
......@@ -5,6 +5,11 @@
<description>Ordner für temporäre Daten leeren</description>
</cron>
<cron exec="\QUI\Cron\QuiqqerCrons::clearSessions">
<title>Sessions säubern</title>
<description>Löscht unnötige / abgelaufene Session Dateien</description>
</cron>
<cron exec="\QUI\Cron\QuiqqerCrons::clearCache">
<title>Cache leeren</title>
<description>Kompletten Cache leeren</description>
......@@ -13,8 +18,10 @@
<cron exec="\QUI\Cron\QuiqqerCrons::clearAdminMediaCache">
<title>Media Cache der Administration leeren</title>
<description>
Leert die Cachebilder von der Administration.<br />
Dies sind zum Beispiel die Vorschaubilder in der Administration.<br />
Leert die Cachebilder von der Administration.
<br/>
Dies sind zum Beispiel die Vorschaubilder in der Administration.
<br/>
Der öffentliche Mediacache wird nicht geleert
</description>
</cron>
......@@ -32,8 +39,8 @@
Durchsucht das Projekt und aktiviert oder deaktiviert Seiten je nach Veröffentlichungsdatum.
</description>
<params>
<param name="project" type="string" />
<param name="lang" type="string" />
<param name="project" type="string"/>
<param name="lang" type="string"/>
</params>
</cron>
......
......@@ -21,6 +21,12 @@
<field type="INT( 11 ) NOT NULL">uid</field>
<field type="DATETIME NULL">lastexec</field>
</table>
<table name="cron_cronservice">
<field type="INT( 3 ) NOT NULL">cronid</field>
<field type="INT( 11 ) NOT NULL">uid</field>
<field type="DATETIME NULL">lastexec</field>
</table>
</global>
</database>
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