diff --git a/admin_cronjobs.php b/admin_cronjobs.php
index 692d69d5..164560ed 100644
--- a/admin_cronjobs.php
+++ b/admin_cronjobs.php
@@ -75,12 +75,6 @@ if($page == 'cronjobs'
$description = $lng['crondesc'][$row['desc_lng_key']];
- /*
- * don't allow deletion of 'froxlor' cronjobs
- */
- $vendor_a = explode('/', $row['module']);
- $vendor = $vendor_a[0];
-
eval("\$crons.=\"" . getTemplate("cronjobs/cronjobs_cronjob") . "\";");
$count++;
}
@@ -94,21 +88,68 @@ if($page == 'cronjobs'
elseif($action == 'new')
{
/*
- * @TODO Finish me
+ * @TODO later
*/
}
elseif($action == 'edit'
&& $id != 0)
{
- /*
- * @TODO Finish me
- */
+ $result = $db->query_first("SELECT * FROM `" . TABLE_PANEL_CRONRUNS . "` WHERE `id`='" . (int)$id . "'");
+
+ if ($result['cronfile'] != '')
+ {
+ if(isset($_POST['send'])
+ && $_POST['send'] == 'send')
+ {
+ $isactive = intval($_POST['isactive']);
+ $interval_value = validate($_POST['interval_value'], 'interval_value', '/^([0-9]+)$/Di', 'stringisempty');
+ $interval_interval = validate($_POST['interval_interval'], 'interval_interval');
+
+ if($isactive != 1)
+ {
+ $isactive = 0;
+ }
+
+ $interval = $interval_value.' '.strtoupper($interval_interval);
+
+ $db->query("UPDATE `" . TABLE_PANEL_CRONRUNS . "`
+ SET `isactive` = '".(int)$isactive."',
+ `interval` = '".$interval."'
+ WHERE `id` = '" . (int)$id . "'");
+
+ redirectTo($filename, Array('page' => $page, 's' => $s));
+ }
+ else
+ {
+ $isactive = makeyesno('isactive', '1', '0', $result['isactive']);
+ // interval
+ $interval_nfo = explode(' ', $result['interval']);
+ $interval_value = $interval_nfo[0];
+
+ $interval_interval = '';
+ $interval_interval.= makeoption($lng['cronmgmt']['seconds'], 'SECOND', $interval_nfo[1]);
+ $interval_interval.= makeoption($lng['cronmgmt']['minutes'], 'MINUTE', $interval_nfo[1]);
+ $interval_interval.= makeoption($lng['cronmgmt']['hours'], 'HOUR', $interval_nfo[1]);
+ $interval_interval.= makeoption($lng['cronmgmt']['days'], 'DAY', $interval_nfo[1]);
+ $interval_interval.= makeoption($lng['cronmgmt']['weeks'], 'WEEK', $interval_nfo[1]);
+ $interval_interval.= makeoption($lng['cronmgmt']['months'], 'MONTH', $interval_nfo[1]);
+ // end of interval
+
+ $change_cronfile = false;
+ if (substr($result['module'], 0, strpos($result['module'], '/')) != 'froxlor')
+ {
+ $change_cronfile = true;
+ }
+
+ eval("echo \"" . getTemplate("cronjobs/cronjob_edit") . "\";");
+ }
+ }
}
elseif($action == 'delete'
&& $id != 0)
{
/*
- * @TODO Finish me
+ * @TODO later
*/
}
}
diff --git a/lib/navigation/00.froxlor.main.php b/lib/navigation/00.froxlor.main.php
index dc19bd9f..c0e3b74f 100644
--- a/lib/navigation/00.froxlor.main.php
+++ b/lib/navigation/00.froxlor.main.php
@@ -200,15 +200,11 @@ return array (
'label' => $lng['admin']['ipsandports']['ipsandports'],
'required_resources' => 'change_serversettings',
),
- /*
- * @TODO this is for Froxlor-1.0
- *
array (
'url' => 'admin_cronjobs.php?page=overview',
'label' => $lng['admin']['cron']['cronsettings'],
'required_resources' => 'change_serversettings',
),
- */
array (
'url' => 'admin_settings.php?page=rebuildconfigs',
'label' => $lng['admin']['rebuildconf'],
diff --git a/lng/english.lng.php b/lng/english.lng.php
index 21b59c9c..9a55d262 100644
--- a/lng/english.lng.php
+++ b/lng/english.lng.php
@@ -1262,22 +1262,6 @@ $lng['update']['update'] = 'Froxlor Update';
$lng['update']['proceed'] = 'Proceed';
$lng['update']['update_information'] = 'The Froxlor files have been updated to version %newversion. The installed version is %curversion.
Customers will not be able to log in until the update has been finished.
Proceed?';
$lng['update']['noupdatesavail'] = 'You already have the latest Froxlor version.';
-$lng['admin']['cron']['cronsettings'] = 'Cronjob settings';
-$lng['cron']['cronname'] = 'cronjob-name';
-$lng['cron']['lastrun'] = 'last run';
-$lng['cron']['interval'] = 'interval';
-$lng['cron']['isactive'] = 'enabled';
-$lng['admin']['cron']['add'] = 'Add a new cronjob';
-$lng['cron']['description'] = 'description';
-$lng['crondesc']['cron_unknown_desc'] = 'no description given';
-$lng['crondesc']['cron_tasks'] = 'generating of configfiles';
-$lng['crondesc']['cron_legacy'] = 'legacy (old) cronjob';
-$lng['crondesc']['cron_apsinstaller'] = 'APS-installer';
-$lng['crondesc']['cron_autoresponder'] = 'e-mail autoresponder';
-$lng['crondesc']['cron_apsupdater'] = 'updating APS packages';
-$lng['crondesc']['cron_traffic'] = 'traffic calculation';
-$lng['crondesc']['cron_ticketsreset'] = 'resetting ticket-counters';
-$lng['crondesc']['cron_ticketarchive'] = 'archiving old tickets';
$lng['admin']['specialsettingsforsubdomains'] = 'Apply specialsettings to all subdomains (*.example.com)';
$lng['serversettings']['specialsettingsforsubdomains']['description'] = 'If yes these custom vhost-settings will be added to all subdomains; if no subdomain-specialsettings are being removed.';
$lng['tasks']['outstanding_tasks'] = 'Outstanding cron-tasks';
@@ -1331,4 +1315,32 @@ $lng['dkim']['dkim_add_adsp']['description'] = 'If you don\'t know what this is,
$lng['dkim']['dkim_add_adsppolicy']['title'] = 'ADSP policy';
$lng['dkim']['dkim_add_adsppolicy']['description'] = 'For more information about this setting see http://wiki.froxlor.org/contrib/dkim-adsp-policies';
+$lng['admin']['cron']['cronsettings'] = 'Cronjob settings';
+$lng['cron']['cronname'] = 'cronjob-name';
+$lng['cron']['lastrun'] = 'last run';
+$lng['cron']['interval'] = 'interval';
+$lng['cron']['isactive'] = 'enabled';
+$lng['cron']['description'] = 'description';
+$lng['crondesc']['cron_unknown_desc'] = 'no description given';
+$lng['crondesc']['cron_tasks'] = 'generating of configfiles';
+$lng['crondesc']['cron_legacy'] = 'legacy (old) cronjob';
+$lng['crondesc']['cron_apsinstaller'] = 'APS-installer';
+$lng['crondesc']['cron_autoresponder'] = 'e-mail autoresponder';
+$lng['crondesc']['cron_apsupdater'] = 'updating APS packages';
+$lng['crondesc']['cron_traffic'] = 'traffic calculation';
+$lng['crondesc']['cron_ticketsreset'] = 'resetting ticket-counters';
+$lng['crondesc']['cron_ticketarchive'] = 'archiving old tickets';
+$lng['cronmgmt']['seconds'] = 'seconds';
+$lng['cronmgmt']['minutes'] = 'minutes';
+$lng['cronmgmt']['hours'] = 'hours';
+$lng['cronmgmt']['days'] = 'days';
+$lng['cronmgmt']['weeks'] = 'weeks';
+$lng['cronmgmt']['months'] = 'months';
+$lng['admin']['cronjob_edit'] = 'Edit cronjob';
+$lng['cronjob']['cronjobsettings'] = 'Cronjob settings';
+$lng['cronjob']['cronjobinterval'] = 'Runtime interval';
+$lng['panel']['options'] = 'options';
+$lng['admin']['warning'] = 'WARNING - Please note!';
+$lng['cron']['changewarning'] = 'Changing these values can have a negative cause to the behavior of Froxlor and its automated tasks.
Please, only change values here if you are *damn sure* you know what you are doing.';
+
?>
diff --git a/lng/german.lng.php b/lng/german.lng.php
index e9a0c181..71ddfce1 100644
--- a/lng/german.lng.php
+++ b/lng/german.lng.php
@@ -1242,22 +1242,6 @@ $lng['update']['update'] = 'Froxlor Aktualisierung';
$lng['update']['proceed'] = 'Ausführen';
$lng['update']['update_information'] = 'Die Froxlor Dateien wurden aktualisiert. Neue Version ist %newversion. Die bisher installierte Version ist %curversion
Ein Kunden-Login ist vor Abschluss des Aktualisierungsvorganges nicht m&oouml;glich.
Aktualisierung ausführen?';
$lng['update']['noupdatesavail'] = 'Ihre Froxlor-Version ist aktuell.';
-$lng['admin']['cron']['cronsettings'] = 'Cronjob Einstellungen';
-$lng['cron']['cronname'] = 'Cronjob-Name';
-$lng['cron']['lastrun'] = 'zuletzt gestartet';
-$lng['cron']['interval'] = 'Interval';
-$lng['cron']['isactive'] = 'Aktiv';
-$lng['admin']['cron']['add'] = 'Cronjob hinzufügen';
-$lng['cron']['description'] = 'Beschreibung';
-$lng['crondesc']['cron_unknown_desc'] = 'Keine Beschreibung angegeben';
-$lng['crondesc']['cron_tasks'] = 'Erstellen von Konfigurationsdateien';
-$lng['crondesc']['cron_legacy'] = 'Legacy (alter) Cronjob';
-$lng['crondesc']['cron_apsinstaller'] = 'APS-Installer';
-$lng['crondesc']['cron_autoresponder'] = 'E-Mail Autoresponder';
-$lng['crondesc']['cron_apsupdater'] = 'Aktualisieren der APS Pakete';
-$lng['crondesc']['cron_traffic'] = 'Traffic-Berechnung';
-$lng['crondesc']['cron_ticketsreset'] = 'Zurücksetzen der Ticket-Zähler';
-$lng['crondesc']['cron_ticketarchive'] = 'Archivieren alter Tickets';
$lng['admin']['specialsettingsforsubdomains'] = 'Übernehme Einstellungen für alle Subdomains (*.beispiel.de)';
$lng['serversettings']['specialsettingsforsubdomains']['description'] = 'Wenn ja, werden die individuellen Einstellungen für alle Subdomains übernommen; wenn nein, werden Subdomain-Specialsettings entfernt.';
$lng['tasks']['outstanding_tasks'] = 'Ausstehende Cron-Aufgaben';
@@ -1299,4 +1283,33 @@ $lng['serversettings']['adminmail_return']['title'] = 'Antwort-Adresse';
$lng['serversettings']['adminmail_return']['description'] = 'Standard-Antwort-Adresse für E-Mails aus dem Panel.';
$lng['serversettings']['adminmail_defname'] = 'Panel Absender Name';
+$lng['admin']['cron']['cronsettings'] = 'Cronjob Einstellungen';
+$lng['cron']['cronname'] = 'Cronjob-Name';
+$lng['cron']['lastrun'] = 'zuletzt gestartet';
+$lng['cron']['interval'] = 'Intervall';
+$lng['cron']['isactive'] = 'Aktiv';
+$lng['admin']['cron']['add'] = 'Cronjob hinzufügen';
+$lng['cron']['description'] = 'Beschreibung';
+$lng['crondesc']['cron_unknown_desc'] = 'Keine Beschreibung angegeben';
+$lng['crondesc']['cron_tasks'] = 'Erstellen von Konfigurationsdateien';
+$lng['crondesc']['cron_legacy'] = 'Legacy (alter) Cronjob';
+$lng['crondesc']['cron_apsinstaller'] = 'APS-Installer';
+$lng['crondesc']['cron_autoresponder'] = 'E-Mail Autoresponder';
+$lng['crondesc']['cron_apsupdater'] = 'Aktualisieren der APS Pakete';
+$lng['crondesc']['cron_traffic'] = 'Traffic-Berechnung';
+$lng['crondesc']['cron_ticketsreset'] = 'Zurücksetzen der Ticket-Zähler';
+$lng['crondesc']['cron_ticketarchive'] = 'Archivieren alter Tickets';
+$lng['cronmgmt']['seconds'] = 'Sekunden';
+$lng['cronmgmt']['minutes'] = 'Minuten';
+$lng['cronmgmt']['hours'] = 'Stunden';
+$lng['cronmgmt']['days'] = 'Tage';
+$lng['cronmgmt']['weeks'] = 'Wochen';
+$lng['cronmgmt']['months'] = 'Monate';
+$lng['admin']['cronjob_edit'] = 'Cronjob bearbeiten';
+$lng['cronjob']['cronjobsettings'] = 'Cronjob Einstellungen';
+$lng['cronjob']['cronjobinterval'] = 'Laufzeit-Intervall';
+$lng['panel']['options'] = 'Optionen';
+$lng['admin']['warning'] = 'ACHTUNG - Wichtiger Hinweis!';
+$lng['cron']['changewarning'] = 'Änderungen an diesen Werten kann einen negativen Effekt auf das Verhalten von Froxlor und seinen automatisierten Aufgaben haben.
Also bitte nur etwas ändern, wenn du dir *verdammt sicher* bist das du weisst was du tust.';
+
?>
diff --git a/templates/admin/cronjobs/cronjob_edit.tpl b/templates/admin/cronjobs/cronjob_edit.tpl
new file mode 100644
index 00000000..a52be65d
--- /dev/null
+++ b/templates/admin/cronjobs/cronjob_edit.tpl
@@ -0,0 +1,48 @@
+$header
+