*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
/**
* \file cron/card.php
* \ingroup cron
* \brief Cron Jobs Card
*/
require '../main.inc.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
// librairie jobs
require_once DOL_DOCUMENT_ROOT."/cron/class/cronjob.class.php";
require_once DOL_DOCUMENT_ROOT."/core/class/html.formcron.class.php";
require_once DOL_DOCUMENT_ROOT.'/core/lib/cron.lib.php';
$langs->load("admin");
$langs->load("cron");
if (!$user->rights->cron->create) accessforbidden();
$id=GETPOST('id','int');
$action=GETPOST('action','alpha');
$confirm=GETPOST('confirm','alpha');
$cancel=GETPOST('cancel');
$object = new Cronjob($db);
if (!empty($id)) {
$result=$object->fetch($id);
if ($result < 0) {
setEventMessage($object->error,'errors');
}
}
if(!empty($cancel)) {
if (!empty($id)) {
$action='';
}else {
Header("Location: ".dol_buildpath('/cron/cron/list.php',1).'?status=1');
}
}
// Delete jobs
if ($action == 'confirm_delete' && $confirm == "yes" && $user->rights->cron->delete){
$result = $object->delete($user);
if ($result < 0) {
setEventMessage($object->error,'errors');
$action='edit';
}else {
Header("Location: ".dol_buildpath('/cron/cron/list.php',1).'?status=1');
}
}
// Execute jobs
if ($action == 'confirm_execute' && $confirm == "yes" && $user->rights->cron->execute){
$result=$object->run_jobs($user->login);
if ($result < 0) {
setEventMessage($object->error,'errors');
$action='';
}else {
if ($object->lastresult > 0) setEventMessage($langs->trans("JobFinished"),'warnings');
else setEventMessage($langs->trans("JobFinished"),'mesgs');
$action='';
}
}
if ($action=='add') {
$object->jobtype=GETPOST('jobtype','alpha');
$object->label=GETPOST('label','alpha');
$object->command=GETPOST('command','alpha');
$object->priority=GETPOST('priority','int');
$object->classesname=GETPOST('classesname','alpha');
$object->objectname=GETPOST('objectname','alpha');
$object->methodename=GETPOST('methodename','alpha');
$object->params=GETPOST('params');
$object->md5params=GETPOST('md5params');
$object->module_name=GETPOST('module_name','alpha');
$object->note=GETPOST('note');
$object->datestart=dol_mktime(GETPOST('datestarthour','int'), GETPOST('datestartmin','int'), 0, GETPOST('datestartmonth','int'), GETPOST('datestartday','int'), GETPOST('datestartyear','int'));
$object->dateend=dol_mktime(GETPOST('dateendhour','int'), GETPOST('dateendmin','int'), 0, GETPOST('dateendmonth','int'), GETPOST('dateendday','int'), GETPOST('dateendyear','int'));
$object->unitfrequency=GETPOST('unitfrequency','int');
$object->frequency=$object->unitfrequency * GETPOST('nbfrequency','int');
//Ajout de la tache cron
$result = $object->create($user);
// test du Resultat de la requete
if ($result < 0) {
setEventMessage($object->error,'errors');
$action='create';
}
else {
setEventMessage($langs->trans('CronSaveSucess'),'mesgs');
$action='';
}
}
// Save parameters
if ($action=='update') {
$object->id=$id;
$object->jobtype=GETPOST('jobtype');
$object->label=GETPOST('label');
$object->command=GETPOST('command');
$object->classesname=GETPOST('classesname','alpha');
$object->priority=GETPOST('priority','int');
$object->objectname=GETPOST('objectname','alpha');
$object->methodename=GETPOST('methodename','alpha');
$object->params=GETPOST('params');
$object->md5params=GETPOST('md5params');
$object->module_name=GETPOST('module_name','alpha');
$object->note=GETPOST('note');
$object->datestart=dol_mktime(GETPOST('datestarthour','int'), GETPOST('datestartmin','int'), 0, GETPOST('datestartmonth','int'), GETPOST('datestartday','int'), GETPOST('datestartyear','int'));
$object->dateend=dol_mktime(GETPOST('dateendhour','int'), GETPOST('dateendmin','int'), 0, GETPOST('dateendmonth','int'), GETPOST('dateendday','int'), GETPOST('dateendyear','int'));
$object->unitfrequency=GETPOST('unitfrequency','int');
$object->frequency=$object->unitfrequency * GETPOST('nbfrequency','int');
//Ajout de la tache cron
$result = $object->update($user);
// test du Resultat de la requete
if ($result < 0) {
setEventMessage($object->error,'errors');
$action='edit';
}
else {
setEventMessage($langs->trans('CronSaveSucess'),'mesgs');
$action='';
}
}
if ($action=='activate') {
$object->status=1;
//Ajout de la tache cron
$result = $object->update($user);
// test du Resultat de la requete
if ($result < 0) {
setEventMessage($object->error,'errors');
$action='edit';
}
else {
setEventMessage($langs->trans('CronSaveSucess'),'mesgs');
$action='';
}
}
if ($action=='inactive') {
$object->status=0;
//Ajout de la tache cron
$result = $object->update($user);
// test du Resultat de la requete
if ($result < 0) {
setEventMessage($object->error,'errors');
$action='edit';
}
else {
setEventMessage($langs->trans('CronSaveSucess'),'mesgs');
$action='';
}
}
/*
* View
*/
llxHeader('',$langs->trans("CronAdd"));
if ($action=='edit' || empty($action) || $action=='delete' || $action=='execute')
{
$head=cron_prepare_head($object);
dol_fiche_head($head, 'card', $langs->trans("CronTask"), 0, 'bill');
}
elseif ($action=='create')
{
print_fiche_titre($langs->trans("CronTask"),'','setup');
}
if ($conf->use_javascript_ajax)
{
print "\n".''."\n";
}
$form = new Form($db);
$formCron = new FormCron($db);
if ($action == 'delete')
{
$ret=$form->form_confirm($_SERVER['PHP_SELF']."?id=".$object->id,$langs->trans("CronDelete"),$langs->trans("CronConfirmDelete"),"confirm_delete",'','',1);
if ($ret == 'html') print '
';
$action='';
}
if ($action == 'execute'){
$ret=$form->form_confirm($_SERVER['PHP_SELF']."?id=".$object->id,$langs->trans("CronExecute"),$langs->trans("CronConfirmExecute"),"confirm_execute",'','',1);
if ($ret == 'html') print '
';
$action='';
}
/*
* Create Template
*/
if (empty($object->status) && $action != 'create')
{
dol_htmloutput_mesg($langs->trans("CronTaskInactive"),'','warning',1);
}
if (($action=="create") || ($action=="edit"))
{
print '
\n";
}else {
/*
* view Template
*/
// box add_jobs_box
print '';
print '| ';
print $langs->trans('CronId')." | ";
print "".$form->showrefnav($object, 'id', $linkback, 1, 'rowid', 'id');
print " |
\n";
print '| ';
print $langs->trans('CronLabel')." | ";
print "".$object->label;
print " |
";
print "| ";
print $langs->trans('CronType')." | ";
print $formCron->select_typejob('jobtype',$object->jobtype,1);
print " |
";
print "| ";
print $langs->trans('CronHourStart')." | ";
if(!empty($object->datestart)) {print dol_print_date($object->datestart,'dayhourtext');} else {print $langs->trans('CronNone');}
print " |
";
print "| ";
print $langs->trans('CronDtEnd')." | ";
if(!empty($object->dateend)) {print dol_print_date($object->dateend,'dayhourtext');} else {print $langs->trans('CronNone');}
print " |
";
print "| ";
print $langs->trans('CronPriority')." | ";
print "".$object->priority;
print " |
";
print "| ";
print $langs->trans('CronNbRun')." | ";
print "".$object->nbrun;
print " |
";
print "| ";
print $langs->trans('CronEvery')." | ";
print "";
if($object->unitfrequency == "60") print $langs->trans('CronEach')." ".($object->frequency/$object->unitfrequency)." ".$langs->trans('Minutes');
if($object->unitfrequency == "3600") print $langs->trans('CronEach')." ".($object->frequency/$object->unitfrequency)." ".$langs->trans('Hours');
if($object->unitfrequency == "86400") print $langs->trans('CronEach')." ".($object->frequency/$object->unitfrequency)." ".$langs->trans('Days');
if($object->unitfrequency == "604800") print $langs->trans('CronEach')." ".($object->frequency/$object->unitfrequency)." ".$langs->trans('Weeks');
print " |
";
print '| ';
print $langs->trans('CronModule')." | ";
print $object->module_name;
print " |
";
print '| ';
print $langs->trans('CronClassFile')." | ";
print $object->classesname;
print " |
";
print '| ';
print $langs->trans('CronObject')." | ";
print $object->objectname;
print " |
";
print '| ';
print $langs->trans('CronMethod')." | ";
print $object->methodename;
print " |
";
print '| ';
print $langs->trans('CronArgs')." | ";
print $object->params;
print " |
";
print '| ';
print $langs->trans('CronCommand')." | ";
print $object->command;
print " |
";
print '| ';
print $langs->trans('CronNote')." | ";
print $object->note;
print " |
";
print '| ';
print $langs->trans('CronDtLastLaunch')." | ";
if(!empty($object->datelastrun)) {print dol_print_date($object->datelastrun,'dayhourtext');} else {print $langs->trans('CronNone');}
print " |
";
print '| ';
print $langs->trans('CronDtNextLaunch')." | ";
if(!empty($object->datenextrun)) {print dol_print_date($object->datenextrun,'dayhourtext');} else {print $langs->trans('CronNone');}
print " |
";
print '| ';
print $langs->trans('CronDtLastResult')." | ";
if(!empty($object->datelastresult)) {print dol_print_date($object->datelastresult,'dayhourtext');} else {print $langs->trans('CronNone');}
print " |
";
print '| ';
print $langs->trans('CronLastResult')." | ";
print $object->lastresult;
print " |
";
print '| ';
print $langs->trans('CronLastOutput')." | ";
print nl2br($object->lastoutput);
print " |
";
print '
';
dol_fiche_end();
print "\n\n';
}
$db->close();
llxFooter();