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

Issue #11 Feld "day of week" fehlt in der eingabe

Übergeordneter 7749ec86
No related branches found
No related tags found
Keine zugehörigen Merge Requests gefunden
......@@ -8,6 +8,7 @@
* @param String $hour
* @param String $day
* @param String $month
* @param String $dayOfWeek
* @param string $params
*/
function package_quiqqer_cron_ajax_add(
......@@ -16,16 +17,17 @@ function package_quiqqer_cron_ajax_add(
$hour,
$day,
$month,
$dayOfWeek,
$params
) {
$params = json_decode($params, true);
$Manager = new \QUI\Cron\Manager();
$Manager->add($cron, $min, $hour, $day, $month, $params);
$Manager = new QUI\Cron\Manager();
$Manager->add($cron, $min, $hour, $day, $month, $dayOfWeek, $params);
}
\QUI::$Ajax->register(
QUI::$Ajax->register(
'package_quiqqer_cron_ajax_add',
array('cron', 'min', 'hour', 'day', 'month', 'params'),
array('cron', 'min', 'hour', 'day', 'month', 'dayOfWeek', 'params'),
'Permission::checkAdminUser'
);
......@@ -9,6 +9,7 @@
* @param String $hour
* @param String $day
* @param String $month
* @param String $dayOfWeek
* @param String $params
*/
function package_quiqqer_cron_ajax_edit(
......@@ -18,16 +19,17 @@ function package_quiqqer_cron_ajax_edit(
$hour,
$day,
$month,
$dayOfWeek,
$params
) {
$params = json_decode($params, true);
$Manager = new \QUI\Cron\Manager();
$Manager->edit($cronId, $cron, $min, $hour, $day, $month, $params);
$Manager = new QUI\Cron\Manager();
$Manager->edit($cronId, $cron, $min, $hour, $day, $month, $dayOfWeek, $params);
}
\QUI::$Ajax->register(
QUI::$Ajax->register(
'package_quiqqer_cron_ajax_edit',
array('cronId', 'cron', 'min', 'hour', 'day', 'month', 'params'),
array('cronId', 'cron', 'min', 'hour', 'day', 'month', 'dayOfWeek', 'params'),
'Permission::checkAdminUser'
);
......@@ -7,12 +7,12 @@
*/
function package_quiqqer_cron_ajax_getList()
{
$CronManager = new \QUI\Cron\Manager();
$CronManager = new QUI\Cron\Manager();
return $CronManager->getList();
}
\QUI::$Ajax->register(
QUI::$Ajax->register(
'package_quiqqer_cron_ajax_getList',
false,
'Permission::checkAdminUser'
......
......@@ -38,28 +38,28 @@
.control-cron-add-intervall-entry {
float: left;
margin-right: 10px;
width: 50px;
width: 100px;
}
.control-cron-add-intervall-entry input {
float: left;
margin: 0;
width: 50px;
width: 100%;
}
.control-cron-add-intervall-entry label {
clear: both;
margin: 0 0 0 2px;
width: 50px;
width: 100%;
}
.control-cron-add-params-container {
border-top: 1px solid #DEDEDE;
clear: both;
float: left;
margin-top: 20px;
padding-top: 30px;
width: 100%;
}
#control-cron-add-params {
......
<div class="control-cron-add">
<label for="control-cron-add-list">
Cron
</label>
<select class="control-cron-add-list" id="control-cron-add-list"></select>
<div class="control-cron-add-intervall">
<div class="control-cron-add-intervall-title"></div>
<div class="control-cron-add-intervall-entries">
<div class="control-cron-add-intervall-entry">
<input type="text" name="min" id="control-cron-add-minute"/>
<label for="control-cron-add-minute"></label>
</div>
<div class="control-cron-add-intervall-entry">
<input type="text" name="hour" id="control-cron-add-hour"/>
<label for="control-cron-add-hour"></label>
</div>
<div class="control-cron-add-intervall-entry">
<input type="text" name="day" id="control-cron-add-day"/>
<label for="control-cron-add-day"></label>
</div>
<div class="control-cron-add-intervall-entry">
<input type="text" name="month" id="control-cron-add-month"/>
<label for="control-cron-add-month"></label>
</div>
<div class="control-cron-add-intervall-entry">
<input type="text" name="dayOfWeek" id="control-cron-add-dayOfWeek"/>
<label for="control-cron-add-dayOfWeek"></label>
</div>
</div>
</div>
<div class="control-cron-add-params-container">
<label for="control-cron-add-params"></label>
<input type="text" name="params" id="control-cron-add-params"/>
</div>
</div>
\ No newline at end of file
/**
* Cron Window
*
* @module URL_OPT_DIR/quiqqer/cron/bin/CronWindow
* @author www.namerobot.com (Henning Leutz)
* @module package/quiqqer/cron/bin/CronWindow
* @author www.pcsg.de (Henning Leutz)
*
* @require qui/controls/windows/Confirm
* @require qui/controls/input/Params
* @require Ajax
* @require text!package/quiqqer/cron/bin/CronWindow.html
* @require css!package/quiqqer/cron/bin/CronWindow.css
*/
define('package/quiqqer/cron/bin/CronWindow', [
'qui/controls/windows/Confirm',
......@@ -18,30 +17,39 @@ define('package/quiqqer/cron/bin/CronWindow', [
'Ajax',
'Locale',
'text!package/quiqqer/cron/bin/CronWindow.html',
'css!package/quiqqer/cron/bin/CronWindow.css'
], function(QUIConfirm, QUIParams, Ajax, QUILocale)
{
], function (QUIConfirm, QUIParams, Ajax, QUILocale, cronWindowTemplate) {
"use strict";
var lg = 'quiqqer/cron';
return new Class({
Type : 'package/quiqqer/cron/bin/CronWindow',
Extends : QUIConfirm,
Type : 'package/quiqqer/cron/bin/CronWindow',
Extends: QUIConfirm,
options: {
title : QUILocale.get('quiqqer/cron', 'cron.window.add.cron.title'),
icon : 'icon-time',
maxWidth : 750,
maxHeight: 500,
options : {
title : QUILocale.get( 'quiqqer/cron', 'cron.window.add.cron.title' ),
icon : 'icon-time',
maxWidth : 440,
maxHeight : 500,
cronId: null, // if you want to edit a cron
cronId : null // if you want to edit a cron
cancel_button : {
text : QUILocale.get('quiqqer/system', 'cancel'),
textimage : 'icon-remove fa fa-remove'
},
ok_button : {
text : QUILocale.get('quiqqer/system', 'ok'),
textimage : 'icon-ok fa fa-check'
}
},
initialize : function(options)
{
this.parent( options );
initialize: function (options) {
this.parent(options);
this.$available = [];
......@@ -57,155 +65,128 @@ define('package/quiqqer/cron/bin/CronWindow', [
/**
* Open the Window
*
* @return {self}
* @return {Object} self
*/
open : function()
{
open: function () {
this.parent();
this.Loader.show();
var self = this,
Content = this.getContent();
Content.set(
'html',
'<div class="control-cron-add">' +
'<label for="control-cron-add-list">' +
'Cron' +
'</label>' +
'<select ' +
'class="control-cron-add-list" ' +
'id="control-cron-add-list">' +
'</select>' +
'<div class="control-cron-add-intervall">' +
'<div class="control-cron-add-intervall-title">' +
QUILocale.get( 'quiqqer/cron', 'cron.interval' ) +
'</div>' +
'<div class="control-cron-add-intervall-entries">' +
'<div class="control-cron-add-intervall-entry">' +
'<input type="text" name="min" id="control-cron-add-minute" />' +
'<label for="control-cron-add-minute">'+
QUILocale.get( 'quiqqer/system', 'minute' ) +
'</label>' +
'</div>' +
'<div class="control-cron-add-intervall-entry">' +
'<input type="text" name="hour" id="control-cron-add-hour" />' +
'<label for="control-cron-add-hour">'+
QUILocale.get( 'quiqqer/system', 'hour' ) +
'</label>' +
'</div>' +
'<div class="control-cron-add-intervall-entry">' +
'<input type="text" name="day" id="control-cron-add-day" />' +
'<label for="control-cron-add-day">'+
QUILocale.get( 'quiqqer/cron', 'cron.day' ) +
'</label>' +
'</div>' +
'<div class="control-cron-add-intervall-entry">' +
'<input type="text" name="month" id="control-cron-add-month" />' +
'<label for="control-cron-add-month">'+
QUILocale.get( 'quiqqer/system', 'month' ) +
'</label>' +
'</div>' +
'</div>' +
'</div>' +
'<div class="control-cron-add-params-container">' +
'<label for="control-cron-add-params">' +
QUILocale.get( 'quiqqer/cron', 'cron.params' ) +
'</label>' +
'<input type="text" name="params" id="control-cron-add-params" />' +
'</div>' +
'</div>'
);
this.$List = Content.getElement( '.control-cron-add-list' );
this.$Min = Content.getElement( '[name="min"]' );
this.$Hour = Content.getElement( '[name="hour"]' );
this.$Day = Content.getElement( '[name="day"]' );
this.$Month = Content.getElement( '[name="month"]' );
this.$Params = Content.getElement( '[name="params"]' );
this.$List.addEvent('change', function()
{
if ( !self.$available ) {
Content.set('html', cronWindowTemplate);
// locale
Content.getElement(
'.control-cron-add-intervall-title'
).set('html', QUILocale.get(lg, 'cron.interval'));
Content.getElement(
'[for="control-cron-add-minute"]'
).set('html', QUILocale.get(lg, 'cron.min'));
Content.getElement(
'[for="control-cron-add-hour"]'
).set('html', QUILocale.get(lg, 'cron.hour'));
Content.getElement(
'[for="control-cron-add-day"]'
).set('html', QUILocale.get(lg, 'cron.day'));
Content.getElement(
'[for="control-cron-add-month"]'
).set('html', QUILocale.get(lg, 'cron.month'));
Content.getElement(
'[for="control-cron-add-dayOfWeek"]'
).set('html', QUILocale.get(lg, 'cron.dayOfWeek'));
Content.getElement(
'[for="control-cron-add-params"]'
).set('html', QUILocale.get(lg, 'cron.params'));
// data
this.$List = Content.getElement('.control-cron-add-list');
this.$Min = Content.getElement('[name="min"]');
this.$Hour = Content.getElement('[name="hour"]');
this.$Day = Content.getElement('[name="day"]');
this.$Month = Content.getElement('[name="month"]');
this.$DayOfWeek = Content.getElement('[name="dayOfWeek"]');
this.$Params = Content.getElement('[name="params"]');
this.$List.addEvent('change', function () {
if (!self.$available) {
return;
}
if ( !self.$ParamsControl ) {
if (!self.$ParamsControl) {
return;
}
var i, len, p, plen;
var val = self.$List.value,
available = self.$available,
var val = self.$List.value,
available = self.$available,
allowedParams = [],
params = [];
for ( i = 0, len = available.length; i < len; i++ )
{
if ( available[ i ].title != val ) {
for (i = 0, len = available.length; i < len; i++) {
if (available[i].title != val) {
continue;
}
params = available[ i ].params;
params = available[i].params;
for ( p = 0, plen = params.length; p < plen; p++ ) {
allowedParams.push( params[ p ].name );
for (p = 0, plen = params.length; p < plen; p++) {
allowedParams.push(params[p].name);
}
}
self.$ParamsControl.setAttribute( 'allowedParams', allowedParams );
self.$ParamsControl.setAttribute('allowedParams', allowedParams);
});
Ajax.get('package_quiqqer_cron_ajax_getAvailableCrons', function(result)
{
var size = self.getElm().getSize();
Ajax.get('package_quiqqer_cron_ajax_getAvailableCrons', function (result) {
self.$available = result;
for ( var i = 0, len = result.length; i < len; i++ )
{
for (var i = 0, len = result.length; i < len; i++) {
new Element('option', {
value : result[ i ].title,
html : result[ i ].title +' - '+ result[ i ].description
}).inject( self.$List );
value: result[i].title,
html : result[i].title + ' - ' + result[i].description
}).inject(self.$List);
}
self.$ParamsControl = new QUIParams(self.$Params);
if ( !self.getAttribute( 'cronId' ) )
{
if (!self.getAttribute('cronId')) {
self.Loader.hide();
return;
}
Ajax.get('package_quiqqer_cron_ajax_cron_get', function(result)
{
self.$List.value = result.title;
self.$Min.value = result.min;
self.$Hour.value = result.hour;
self.$Day.value = result.day;
self.$Month.value = result.month;
self.$Params.value = result.params;
Ajax.get('package_quiqqer_cron_ajax_cron_get', function (result) {
self.$List.value = result.title;
self.$Min.value = result.min;
self.$Hour.value = result.hour;
self.$Day.value = result.day;
self.$Month.value = result.month;
self.$DayOfWeek.value = result.dayOfWeek;
self.$Params.value = result.params;
self.$Params.fireEvent( 'change' );
self.$List.fireEvent( 'change' );
self.$Params.fireEvent('change');
self.$List.fireEvent('change');
self.Loader.hide();
}, {
'package' : 'quiqqer/cron',
cronId : self.getAttribute( 'cronId' )
'package': 'quiqqer/cron',
cronId : self.getAttribute('cronId')
});
}, {
'package' : 'quiqqer/cron'
'package': 'quiqqer/cron'
});
......@@ -215,53 +196,51 @@ define('package/quiqqer/cron/bin/CronWindow', [
/**
* Add the Cron to the list
*
* @return {self}
* @return {Object} self
*/
submit : function()
{
submit: function () {
var self = this;
if ( !this.$List ) {
if (!this.$List) {
return this;
}
if ( !this.getContent() ) {
if (!this.getContent()) {
return this;
}
if ( this.getAttribute( 'cronId' ) )
{
Ajax.post('package_quiqqer_cron_ajax_edit', function()
{
self.fireEvent( 'submit' );
if (this.getAttribute('cronId')) {
Ajax.post('package_quiqqer_cron_ajax_edit', function () {
self.fireEvent('submit');
self.close();
}, {
'package' : 'quiqqer/cron',
cronId : this.getAttribute( 'cronId' ),
cron : this.$List.value,
min : this.$Min.value,
hour : this.$Hour.value,
day : this.$Day.value,
month : this.$Month.value,
params : JSON.encode( this.$ParamsControl.getValue() )
'package': 'quiqqer/cron',
cronId : this.getAttribute('cronId'),
cron : this.$List.value,
min : this.$Min.value,
hour : this.$Hour.value,
day : this.$Day.value,
month : this.$Month.value,
dayOfWeek: this.$DayOfWeek.value,
params : JSON.encode(this.$ParamsControl.getValue())
});
return this;
}
Ajax.post('package_quiqqer_cron_ajax_add', function()
{
self.fireEvent( 'submit' );
Ajax.post('package_quiqqer_cron_ajax_add', function () {
self.fireEvent('submit');
self.close();
}, {
'package' : 'quiqqer/cron',
cron : this.$List.value,
min : this.$Min.value,
hour : this.$Hour.value,
day : this.$Day.value,
month : this.$Month.value,
params : JSON.encode( this.$ParamsControl.getValue() )
'package': 'quiqqer/cron',
cron : this.$List.value,
min : this.$Min.value,
hour : this.$Hour.value,
day : this.$Day.value,
month : this.$Month.value,
dayOfWeek: this.$DayOfWeek.value,
params : JSON.encode(this.$ParamsControl.getValue())
});
return this;
......
Dieser Diff ist reduziert.
......@@ -10,6 +10,7 @@
<field type="VARCHAR( 128 ) NOT NULL">hour</field>
<field type="VARCHAR( 128 ) NOT NULL">day</field>
<field type="VARCHAR( 128 ) NOT NULL">month</field>
<field type="VARCHAR( 128 ) NOT NULL">dayOfWeek</field>
<field type="TEXT NOT NULL">exec</field>
<field type="TEXT NOT NULL">params</field>
<field type="DATETIME NULL">lastexec</field>
......
......@@ -28,11 +28,12 @@ class Manager
* @param String $hour - On which hour should it start
* @param String $day - On which day should it start
* @param String $month - On which month should it start
* @param String $dayOfWeek - day of week (0 - 6) (0 to 6 are Sunday to Saturday, or use names; 7 is Sunday, the same as 0)
* @param Array $params - Cron Parameter
*
* @throws QUI\Exception
*/
public function add($cron, $min, $hour, $day, $month, $params = array())
public function add($cron, $min, $hour, $day, $month, $dayOfWeek, $params = array())
{
Permission::checkPermission('quiqqer.cron.add');
......@@ -50,19 +51,22 @@ class Manager
}
QUI::getDataBase()->insert($this->Table(), array(
'active' => 1,
'exec' => $cronData['exec'],
'title' => $cronData['title'],
'min' => $min,
'hour' => $hour,
'day' => $day,
'month' => $month,
'params' => json_encode($params)
'active' => 1,
'exec' => $cronData['exec'],
'title' => $cronData['title'],
'min' => $min,
'hour' => $hour,
'day' => $day,
'month' => $month,
'dayOfWeek' => $dayOfWeek,
'params' => json_encode($params)
));
QUI::getMessagesHandler()->addSuccess(
QUI::getLocale()
->get('quiqqer/cron', 'message.cron.succesful.added')
QUI::getLocale()->get(
'quiqqer/cron',
'message.cron.succesful.added'
)
);
}
......@@ -75,6 +79,7 @@ class Manager
* @param String $hour
* @param String $day
* @param String $month
* @param String $dayOfWeek
* @param Array $params
*
* @throws QUI\Exception
......@@ -86,6 +91,7 @@ class Manager
$hour,
$day,
$month,
$dayOfWeek,
$params = array()
) {
Permission::checkPermission('quiqqer.cron.edit');
......@@ -102,7 +108,7 @@ class Manager
// test the cron data
try {
CronExpression::factory(
"$min $hour $day $month *"
"$min $hour $day $month $dayOfWeek"
);
} catch (\Exception $Exception) {
......@@ -110,19 +116,23 @@ class Manager
}
QUI::getDataBase()->update($this->Table(), array(
'exec' => $cronData['exec'],
'title' => $cronData['title'],
'min' => $min,
'hour' => $hour,
'day' => $day,
'month' => $month,
'params' => json_encode($params)
'exec' => $cronData['exec'],
'title' => $cronData['title'],
'min' => $min,
'hour' => $hour,
'day' => $day,
'month' => $month,
'dayOfWeek' => $dayOfWeek,
'params' => json_encode($params)
), array(
'id' => $cronId
));
QUI::getMessagesHandler()->addSuccess(
QUI::getLocale()->get('quiqqer/cron', 'message.cron.succesful.edit')
QUI::getLocale()->get(
'quiqqer/cron',
'message.cron.succesful.edit'
)
);
}
......@@ -201,14 +211,19 @@ class Manager
$lastexec = $entry['lastexec'];
$min = $entry['min'];
$hour = $entry['hour'];
$day = $entry['day'];
$month = $entry['month'];
$year = '*';
$min = $entry['min'];
$hour = $entry['hour'];
$day = $entry['day'];
$month = $entry['month'];
$dayOfWeek = '*';
if (isset($entry['dayOfMonth']) && !empty($entry['dayOfMonth'])) {
$dayOfWeek = $entry['dayOfMonth'];
}
$Cron = CronExpression::factory(
"$min $hour $day $month $year"
"$min $hour $day $month $dayOfWeek"
);
$next = $Cron->getNextRunDate($lastexec)->getTimestamp();
......
......@@ -45,14 +45,14 @@ class QuiqqerCrons
*/
static function clearAdminMediaCache()
{
QUI\Utils\System\File::unlink(VAR_DIR.'cache/admin/media/');
QUI\Utils\System\File::unlink(VAR_DIR . 'cache/admin/media/');
}
/**
* Check project sites release dates
* Activate or deactivate sites
*
* @param Array $params - Cron Parameter
* @param Array $params - Cron Parameter
* @param \QUI\Cron\Manager $CronManager
*
* @throws QUI\Exception
......@@ -69,13 +69,13 @@ class QuiqqerCrons
$Project = QUI::getProject($params['project'], $params['lang']);
$now = date('Y-m-d H:i:s');
$now = date('Y-m-d H:i:s');
// search sites with release dates
$PDO = QUI::getDataBase()->getPDO();
$deactivate = array();
$activate = array();
$activate = array();
/**
......@@ -145,18 +145,18 @@ class QuiqqerCrons
}
QUI\System\Log::addInfo(
'Folgende Seiten wurden deaktiviert: '.implode(',', $deactivate)
'Folgende Seiten wurden deaktiviert: ' . implode(',', $deactivate)
);
QUI\System\Log::addInfo(
'Folgende Seiten wurden aktiviert: '.implode(',', $activate)
'Folgende Seiten wurden aktiviert: ' . implode(',', $activate)
);
}
/**
* Send the mail queue
*
* @param array $params
* @param array $params
* @param \QUI\Cron\Manager $CronManager
*/
static function mailQueue($params, $CronManager)
......
......@@ -57,6 +57,10 @@
<de><![CDATA[Monat]]></de>
<en><![CDATA[month]]></en>
</locale>
<locale name="cron.dayOfWeek">
<de><![CDATA[Tag der Woche]]></de>
<en><![CDATA[Day of week]]></en>
</locale>
<locale name="cron.execute">
<de><![CDATA[Exec]]></de>
<en><![CDATA[Exec]]></en>
......
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