';
print '';
-$arg_url='&page='.$page.'&status='.$status.'&search_label='.$search_label;
-print_liste_field_titre($langs->trans("ID"),$_SERVER["PHP_SELF"],"t.rowid","",$arg_url,'',$sortfield,$sortorder);
-print_liste_field_titre($langs->trans("CronLabel"),$_SERVER["PHP_SELF"],"t.label","",$arg_url,'',$sortfield,$sortorder);
-print_liste_field_titre($langs->trans("CronTask"),'','',"",$arg_url,'',$sortfield,$sortorder);
-print_liste_field_titre($langs->trans("CronDtStart"),$_SERVER["PHP_SELF"],"t.datestart","",$arg_url,'',$sortfield,$sortorder);
-print_liste_field_titre($langs->trans("CronDtEnd"),$_SERVER["PHP_SELF"],"t.dateend","",$arg_url,'',$sortfield,$sortorder);
-print_liste_field_titre($langs->trans("CronDtLastLaunch"),$_SERVER["PHP_SELF"],"t.datelastrun","",$arg_url,'',$sortfield,$sortorder);
-print_liste_field_titre($langs->trans("CronDtNextLaunch"),$_SERVER["PHP_SELF"],"t.datenextrun","",$arg_url,'',$sortfield,$sortorder);
-print_liste_field_titre($langs->trans("CronFrequency"),'',"","",$arg_url,'',$sortfield,$sortorder);
-print_liste_field_titre($langs->trans("CronNbRun"),$_SERVER["PHP_SELF"],"t.nbrun","",$arg_url,'',$sortfield,$sortorder);
-print_liste_field_titre($langs->trans("CronLastResult"),$_SERVER["PHP_SELF"],"t.lastresult","",$arg_url,'',$sortfield,$sortorder);
-print_liste_field_titre($langs->trans("CronLastOutput"),$_SERVER["PHP_SELF"],"t.lastoutput","",$arg_url,'',$sortfield,$sortorder);
-print_liste_field_titre($langs->trans("Enabled"),$_SERVER["PHP_SELF"],"t.status","",$arg_url,'align="center"',$sortfield,$sortorder);
+print_liste_field_titre($langs->trans("ID"),$_SERVER["PHP_SELF"],"t.rowid","",$param,'',$sortfield,$sortorder);
+print_liste_field_titre($langs->trans("CronLabel"),$_SERVER["PHP_SELF"],"t.label","",$param,'',$sortfield,$sortorder);
+print_liste_field_titre($langs->trans("CronTask"),'','',"",$param,'',$sortfield,$sortorder);
+print_liste_field_titre($langs->trans("CronDtStart"),$_SERVER["PHP_SELF"],"t.datestart","",$param,'',$sortfield,$sortorder);
+print_liste_field_titre($langs->trans("CronDtEnd"),$_SERVER["PHP_SELF"],"t.dateend","",$param,'',$sortfield,$sortorder);
+print_liste_field_titre($langs->trans("CronDtLastLaunch"),$_SERVER["PHP_SELF"],"t.datelastrun","",$param,'',$sortfield,$sortorder);
+print_liste_field_titre($langs->trans("CronDtNextLaunch"),$_SERVER["PHP_SELF"],"t.datenextrun","",$param,'',$sortfield,$sortorder);
+print_liste_field_titre($langs->trans("CronFrequency"),'',"","",$param,'',$sortfield,$sortorder);
+print_liste_field_titre($langs->trans("CronNbRun"),$_SERVER["PHP_SELF"],"t.nbrun","",$param,'',$sortfield,$sortorder);
+print_liste_field_titre($langs->trans("CronMaxRun"),$_SERVER["PHP_SELF"],"t.maxrun","",$param,'',$sortfield,$sortorder);
+print_liste_field_titre($langs->trans("CronLastResult"),$_SERVER["PHP_SELF"],"t.lastresult","",$param,'',$sortfield,$sortorder);
+print_liste_field_titre($langs->trans("CronLastOutput"),$_SERVER["PHP_SELF"],"t.lastoutput","",$param,'',$sortfield,$sortorder);
+print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"t.status","",$param,'align="center"',$sortfield,$sortorder);
print_liste_field_titre('');
print "
\n";
@@ -194,8 +200,9 @@ print ' | ';
print ' | ';
print ' | ';
print ' | ';
+print ' | ';
print '';
-print $form->selectarray('status', array('0'=>$langs->trans("No"),'1'=>$langs->trans("Yes")), $status, 1);
+print $form->selectarray('status', array('0'=>$langs->trans("Disabled"), '1'=>$langs->trans("Enabled"), '-2'=>$langs->trans("EnabledAndDisabled"), '2'=>$langs->trans("Archived")), $status, 1);
print ' | ';
print '';
print '';
@@ -203,9 +210,9 @@ print ' | ';
print '';
-if (count($object->lines) > 0)
+if ($num > 0)
{
- // Loop on each active job
+ // Loop on each job
$style='pair';
foreach($object->lines as $line)
{
@@ -229,7 +236,7 @@ if (count($object->lines) > 0)
}
else
{
- print $langs->trans('CronNone');
+ //print $langs->trans('CronNone');
}
print '';
@@ -253,19 +260,19 @@ if (count($object->lines) > 0)
print '';
print '';
- if(!empty($line->datestart)) {print dol_print_date($line->datestart,'dayhour');} else {print $langs->trans('CronNone');}
+ if(!empty($line->datestart)) {print dol_print_date($line->datestart,'dayhour');}
print ' | ';
print '';
- if(!empty($line->dateend)) {print dol_print_date($line->dateend,'dayhour');} else {print $langs->trans('CronNone');}
+ if(!empty($line->dateend)) {print dol_print_date($line->dateend,'dayhour');}
print ' | ';
print '';
- if(!empty($line->datelastrun)) {print dol_print_date($line->datelastrun,'dayhour');} else {print $langs->trans('CronNone');}
+ if(!empty($line->datelastrun)) {print dol_print_date($line->datelastrun,'dayhour');}
print ' | ';
print '';
- if(!empty($line->datenextrun)) {print dol_print_date($line->datenextrun,'dayhour');} else {print $langs->trans('CronNone');}
+ if(!empty($line->datenextrun)) {print dol_print_date($line->datenextrun,'dayhour');}
print ' | ';
print '';
@@ -276,20 +283,26 @@ if (count($object->lines) > 0)
print ' | ';
print '';
- if(!empty($line->nbrun)) {print $line->nbrun;} else {print '0';}
+ if (!empty($line->nbrun)) {print $line->nbrun;} else {print '0';}
print ' | ';
print '';
- if(!empty($line->lastresult)) {print dol_trunc($line->lastresult);} else {print $langs->trans('CronNone');}
+ if (!empty($line->maxrun)) {print $line->maxrun;}
+ print ' | ';
+
+ print '';
+ if(!empty($line->lastresult)) {print dol_trunc($line->lastresult);}
print ' | ';
print '';
- if(!empty($line->lastoutput)) {print dol_trunc(nl2br($line->lastoutput),100);} else {print $langs->trans('CronNone');}
+ if(!empty($line->lastoutput)) {print dol_trunc(nl2br($line->lastoutput),100);}
print ' | ';
// Status
print '';
- print yn($line->status);
+ if ($line->status == 1) print $langs->trans("Enabled");
+ elseif ($line->status == 2) print $langs->trans("Archived");
+ else print $langs->trans("Disabled");
print ' | ';
print '';
diff --git a/htdocs/install/mysql/tables/llx_cronjob.key.sql b/htdocs/install/mysql/tables/llx_cronjob.key.sql
new file mode 100644
index 00000000000..063a793165e
--- /dev/null
+++ b/htdocs/install/mysql/tables/llx_cronjob.key.sql
@@ -0,0 +1,23 @@
+-- ===================================================================
+-- Copyright (C) 2015 Laurent Destailleur
+--
+-- 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 .
+--
+-- ===================================================================
+
+ALTER TABLE llx_cronjob ADD INDEX idx_cronjob_status (status);
+ALTER TABLE llx_cronjob ADD INDEX idx_cronjob_datelastrun (datelastrun);
+ALTER TABLE llx_cronjob ADD INDEX idx_cronjob_datenextrun (datenextrun);
+ALTER TABLE llx_cronjob ADD INDEX idx_cronjob_datestart (datestart);
+ALTER TABLE llx_cronjob ADD INDEX idx_cronjob_dateend (dateend);
diff --git a/htdocs/install/mysql/tables/llx_cronjob.sql b/htdocs/install/mysql/tables/llx_cronjob.sql
index 96784189b05..6e076d518a7 100644
--- a/htdocs/install/mysql/tables/llx_cronjob.sql
+++ b/htdocs/install/mysql/tables/llx_cronjob.sql
@@ -44,8 +44,8 @@ CREATE TABLE llx_cronjob
frequency integer NOT NULL DEFAULT 0,
maxrun integer NOT NULL DEFAULT 0, -- set this to 1 for a job queued for on run only
nbrun integer, -- nb of run complete (failed or not)
- autodelete integer DEFAULT 0, -- Job can be delete once finished
- status integer NOT NULL DEFAULT 1,
+ autodelete integer DEFAULT 0, -- 1=Job must be deleted once finished, 2=Job must be archived once finished (archive = status 2)
+ status integer NOT NULL DEFAULT 1, -- 0=disabled, 1=enabled, 2=archived
fk_user_author integer DEFAULT NULL,
fk_user_mod integer DEFAULT NULL,
fk_mailing integer DEFAULT NULL, -- id of emailing if job was queued to send mass emailing
diff --git a/htdocs/langs/en_US/cron.lang b/htdocs/langs/en_US/cron.lang
index 5369859bb8b..ae997d0a490 100644
--- a/htdocs/langs/en_US/cron.lang
+++ b/htdocs/langs/en_US/cron.lang
@@ -18,8 +18,9 @@ CronExplainHowToRunUnix=On Unix environment you should use the following crontab
CronExplainHowToRunWin=On Microsoft(tm) Windows environement you can use Scheduled task tools to run the command line each 5 minutes
# Menu
CronJobs=Scheduled jobs
-CronListActive=List of active/scheduled jobs
+CronListActive=List of enabled/scheduled jobs
CronListInactive=List of disabled jobs
+EnabledAndDisabled=Enabled and disabled
# Page list
CronDateLastRun=Last run
CronLastOutput=Last run output
@@ -51,6 +52,7 @@ CronNoJobs=No jobs registered
CronPriority=Priority
CronLabel=Description
CronNbRun=Nb. launch
+CronMaxRun=Max nb. launch
CronEach=Every
JobFinished=Job launched and finished
#Page card
|