diff --git a/htdocs/cron/card.php b/htdocs/cron/card.php index 13bc2624966..ef1adf44441 100644 --- a/htdocs/cron/card.php +++ b/htdocs/cron/card.php @@ -316,9 +316,9 @@ if (($action=="create") || ($action=="edit")) print ''; - print '"; - print ""; print ""; @@ -496,7 +496,7 @@ if (($action=="create") || ($action=="edit")) print ""; print "\n"; - print '
'; + print '
'; print $langs->trans('CronLabel')."label."\" /> "; + print "label."\" /> "; print ""; print "
'; + print '
'; $maxrun=''; if (!empty($object->maxrun)) { $maxrun=$object->maxrun; @@ -552,7 +552,7 @@ else // box add_jobs_box print ''; - print '"; print "\n"; @@ -614,7 +614,7 @@ else print '
'; + print '
'; print $langs->trans('CronId')."".$form->showrefnav($object, 'id', $linkback, 1, 'rowid', 'id', '', '', 0); print "
'; - print ""; print ""; - print '"; @@ -653,11 +653,13 @@ else print $langs->trans('CronDtNextLaunch'); print ' ('.$langs->trans('CronFrom').')'; print ""; print '
"; + print '
'; print $langs->trans('CronEvery').""; if($object->unitfrequency == "60") print $langs->trans('CronEach')." ".($object->frequency)." ".$langs->trans('Minutes'); @@ -623,7 +623,7 @@ else if($object->unitfrequency == "604800") print $langs->trans('CronEach')." ".($object->frequency)." ".$langs->trans('Weeks'); print "
'; + print '
'; print $langs->trans('CronDtStart').""; if(!empty($object->datestart)) {print dol_print_date($object->datestart,'dayhoursec');} print "
"; - print ''; - if (!empty($object->datenextrun)) {print dol_print_date($object->datenextrun,'dayhoursec');} else {print $langs->trans('CronNone');} + //print ''; + if (! $object->status) print $langs->trans("Disabled"); + elseif (!empty($object->datenextrun)) { print img_picto('','object_calendarday').' '.dol_print_date($object->datenextrun,'dayhoursec');} + else {print $langs->trans('CronNone');} + //print ''; if ($object->maxnbrun && $object->nbrun >= $object->maxrun) print img_warning($langs->trans("Finished")); if ($object->datenextrun && $object->datenextrun < $now) print img_warning($langs->trans("Late")); - print ''; print "
'; @@ -666,7 +668,7 @@ else print ''; - print '"; diff --git a/htdocs/cron/class/cronjob.class.php b/htdocs/cron/class/cronjob.class.php index 99b17da3899..b60ad5c963a 100644 --- a/htdocs/cron/class/cronjob.class.php +++ b/htdocs/cron/class/cronjob.class.php @@ -411,9 +411,6 @@ class Cronjob extends CommonObject $sqlwhere = array(); - if (!empty($module_name)) { - $sqlwhere[]='(t.module_name='.$module_name.')'; - } if (count($sqlwhere)>0) { $sql.= " WHERE ".implode(' AND ',$sqlwhere); } diff --git a/htdocs/cron/list.php b/htdocs/cron/list.php index b6ad4a8d2aa..10f9b954cb1 100644 --- a/htdocs/cron/list.php +++ b/htdocs/cron/list.php @@ -39,31 +39,38 @@ $action=GETPOST('action','alpha'); $confirm=GETPOST('confirm','alpha'); $id=GETPOST('id','int'); -$limit = GETPOST('limit')?GETPOST('limit','int'):$conf->liste_limit; +$limit = GETPOST("limit")?GETPOST("limit","int"):$conf->liste_limit; $sortfield = GETPOST("sortfield",'alpha'); $sortorder = GETPOST("sortorder",'alpha'); $page = GETPOST("page",'int'); -if ($page == -1) { - $page = 0; -} +if ($page == -1) { $page = 0; } $offset = $limit * $page; -if (! $sortorder) $sortorder='ASC'; -if (! $sortfield) $sortfield='t.label'; $pageprev = $page - 1; $pagenext = $page + 1; +if (! $sortfield) $sortfield='t.status'; +if (! $sortorder) $sortorder='ASC'; + +// Initialize technical object to manage hooks of thirdparties. Note that conf->hooks_modules contains array array +$contextpage='cronjoblist'; $status=GETPOST('status','int'); if ($status == '') $status=-2; //Search criteria $search_label=GETPOST("search_label",'alpha'); - -if (empty($sortorder)) $sortorder="DESC"; -if (empty($sortfield)) $sortfield="t.status"; if (empty($arch)) $arch = 0; -if ($page == -1) { - $page = 0 ; -} + +$diroutputmassaction=$conf->cronjob->dir_output . '/temp/massgeneration/'.$user->id; + +// Initialize technical object to manage hooks of thirdparties. Note that conf->hooks_modules contains array array +$hookmanager->initHooks(array('cronjoblist')); +$extrafields = new ExtraFields($db); + +// fetch optionals attributes and labels +$extralabels = $extrafields->fetch_name_optionals_label('cronjob'); +$search_array_options=$extrafields->getOptionalsFromPost($extralabels,'','search_'); + +$object = new Cronjob($db); /* @@ -71,7 +78,7 @@ if ($page == -1) { */ // Do we click on purge search criteria ? -if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter")) // Both test are required to be compatible with all browsers +if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter.x") || GETPOST("button_removefilter")) // All test are required to be compatible with all browsers { $search_label=''; $status=-1; @@ -141,110 +148,195 @@ $pagetitle=$langs->trans("CronList"); llxHeader('',$pagetitle); -// list of jobs created -// TODO Replace this with an embedded select. -$object = new Cronjob($db); -$result=$object->fetch_all($sortorder, $sortfield, $limit, $offset, $status, $filter); -if ($result < 0) -{ - setEventMessages($object->error, $object->errors, 'errors'); + +$sql = "SELECT"; +$sql.= " t.rowid,"; +$sql.= " t.tms,"; +$sql.= " t.datec,"; +$sql.= " t.jobtype,"; +$sql.= " t.label,"; +$sql.= " t.command,"; +$sql.= " t.classesname,"; +$sql.= " t.objectname,"; +$sql.= " t.methodename,"; +$sql.= " t.params,"; +$sql.= " t.md5params,"; +$sql.= " t.module_name,"; +$sql.= " t.priority,"; +$sql.= " t.datelastrun,"; +$sql.= " t.datenextrun,"; +$sql.= " t.dateend,"; +$sql.= " t.datestart,"; +$sql.= " t.lastresult,"; +$sql.= " t.datelastresult,"; +$sql.= " t.lastoutput,"; +$sql.= " t.unitfrequency,"; +$sql.= " t.frequency,"; +$sql.= " t.status,"; +$sql.= " t.fk_user_author,"; +$sql.= " t.fk_user_mod,"; +$sql.= " t.note,"; +$sql.= " t.nbrun,"; +$sql.= " t.libname,"; +$sql.= " t.test"; +$sql.= " FROM ".MAIN_DB_PREFIX."cronjob as t"; +$sql.= " WHERE 1 = 1"; +if ($status >= 0 && $status < 2) $sql.= " AND t.status = ".(empty($status)?'0':'1'); +if ($status == 2) $sql.= " AND t.status = 2"; +//Manage filter +if (is_array($filter) && count($filter)>0) { + foreach($filter as $key => $value) { + $sql.= ' AND '.$key.' LIKE \'%'.$value.'%\''; + } } -$nbtotalofrecord=0; -$num=count($object->lines); - -$param='&page='.$page.'&status='.$status.'&search_label='.$search_label; - -$stringcurrentdate = $langs->trans("CurrentHour").': '.dol_print_date(dol_now(), 'dayhour'); - - - -if ($action == 'delete') +$sqlwhere = array(); +if (!empty($module_name)) { + $sqlwhere[]='(t.module_name='.$module_name.')'; +} +if (count($sqlwhere)>0) { + $sql.= " WHERE ".implode(' AND ',$sqlwhere); +} +// Add where from extra fields +foreach ($search_array_options as $key => $val) { - print $form->formconfirm($_SERVER['PHP_SELF']."?id=".$id.'&status='.$status,$langs->trans("CronDelete"),$langs->trans("CronConfirmDelete"),"confirm_delete",'','',1); + $crit=$val; + $tmpkey=preg_replace('/search_options_/','',$key); + $typ=$extrafields->attribute_type[$tmpkey]; + $mode=0; + if (in_array($typ, array('int','double'))) $mode=1; // Search on a numeric + if ($val && ( ($crit != '' && ! in_array($typ, array('select'))) || ! empty($crit))) + { + $sql .= natural_search('ef.'.$tmpkey, $crit, $mode); + } +} +// Add where from hooks +$parameters=array(); +$reshook=$hookmanager->executeHooks('printFieldListWhere',$parameters); // Note that $action and $object may have been modified by hook +$sql.=$hookmanager->resPrint; +$sql.= $db->order($sortfield,$sortorder); + +// Count total nb of records +$nbtotalofrecords = 0; +if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) +{ + $result = $db->query($sql); + $nbtotalofrecords = $db->num_rows($result); } -if ($action == 'execute') -{ - print $form->formconfirm($_SERVER['PHP_SELF']."?id=".$id.'&status='.$status,$langs->trans("CronExecute"),$langs->trans("CronConfirmExecute"),"confirm_execute",'','',1); - -} - - -print ''."\n"; -print ''; -if ($optioncss != '') print ''; -print ''; -print ''; -print ''; -print ''; -print ''; - -print_barre_liste($pagetitle, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $stringcurrentdate, $num, 0, 'title_setup', 0, '', '', $limit); - - -// Line with explanation and button new job -if (! $user->rights->cron->create) -{ - $buttontoshow.=''.$langs->trans("CronCreateJob").''; -} -else -{ - $buttontoshow.=''.$langs->trans("CronCreateJob").''; -} -print '
'; + print '
'; print $langs->trans('CronDtLastLaunch').""; if(!empty($object->datelastrun)) {print dol_print_date($object->datelastrun,'dayhoursec');} else {print $langs->trans('CronNone');} print "
'.$langs->trans('CronInfo').''.$buttontoshow.'
'; -print '
'; - - -print ''; -print ''; -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("CronFrequency"),'',"","",$param,'',$sortfield,$sortorder); -print_liste_field_titre($langs->trans("CronDtStart"),$_SERVER["PHP_SELF"],"t.datestart","",$param,'align="center"',$sortfield,$sortorder); -print_liste_field_titre($langs->trans("CronDtEnd"),$_SERVER["PHP_SELF"],"t.dateend","",$param,'align="center"',$sortfield,$sortorder); -print_liste_field_titre($langs->trans("CronMaxRun"),$_SERVER["PHP_SELF"],"t.maxrun","",$param,'align="right"',$sortfield,$sortorder); -print_liste_field_titre($langs->trans("CronNbRun"),$_SERVER["PHP_SELF"],"t.nbrun","",$param,'align="right"',$sortfield,$sortorder); -print_liste_field_titre($langs->trans("CronDtNextLaunch"),$_SERVER["PHP_SELF"],"t.datenextrun","",$param,'align="center"',$sortfield,$sortorder); -print_liste_field_titre($langs->trans("CronDtLastLaunch"),$_SERVER["PHP_SELF"],"t.datelastrun","",$param,'align="center"',$sortfield,$sortorder); -print_liste_field_titre($langs->trans("CronLastResult"),$_SERVER["PHP_SELF"],"t.lastresult","",$param,'align="center"',$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"; - -print ''; -print ''; -print ''; -print ''; -print ''; -print ''; -print ''; -print ''; -print ''; -print ''; -print ''; -print ''; -print ''; -print ''; -print ''; +$sql.= $db->plimit($limit+1, $offset); +$result=$db->query($sql); +if (! $result) dol_print_error($db); +$num = $db->num_rows($result); if ($num > 0) { + $param='&status='.$status; + if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.$contextpage; + if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.$limit; + if ($search_label) $param.='&search_label='.$search_label; + if ($optioncss != '') $param.='&optioncss='.$optioncss; + // Add $param from extra fields + foreach ($search_array_options as $key => $val) + { + $crit=$val; + $tmpkey=preg_replace('/search_options_/','',$key); + if ($val != '') $param.='&search_options_'.$tmpkey.'='.urlencode($val); + } + + //$massactionbutton=$form->selectMassAction('', $massaction == 'presend' ? array() : array('presend'=>$langs->trans("SendByMail"), 'builddoc'=>$langs->trans("PDFMerge"))); + + $stringcurrentdate = $langs->trans("CurrentHour").': '.dol_print_date(dol_now(), 'dayhour'); + + if ($action == 'delete') + { + print $form->formconfirm($_SERVER['PHP_SELF']."?id=".$id.'&status='.$status,$langs->trans("CronDelete"),$langs->trans("CronConfirmDelete"),"confirm_delete",'','',1); + } + if ($action == 'execute') + { + print $form->formconfirm($_SERVER['PHP_SELF']."?id=".$id.'&status='.$status,$langs->trans("CronExecute"),$langs->trans("CronConfirmExecute"),"confirm_execute",'','',1); + } + + + print ''."\n"; + print ''; + if ($optioncss != '') print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + + print_barre_liste($pagetitle, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $stringcurrentdate, $num, $nbtotalofrecords, 'title_setup', 0, '', '', $limit); + + + // Line with explanation and button new job + if (! $user->rights->cron->create) + { + $buttontoshow.=''.$langs->trans("CronCreateJob").''; + } + else + { + $buttontoshow.=''.$langs->trans("CronCreateJob").''; + } + print '
 '; -print ''; -print '          '; -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 ''; -print '
'.$langs->trans('CronInfo').''.$buttontoshow.'
'; + print '
'; + + + print ''; + print ''; + 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("CronFrequency"),'',"","",$param,'',$sortfield,$sortorder); + print_liste_field_titre($langs->trans("CronDtStart"),$_SERVER["PHP_SELF"],"t.datestart","",$param,'align="center"',$sortfield,$sortorder); + print_liste_field_titre($langs->trans("CronDtEnd"),$_SERVER["PHP_SELF"],"t.dateend","",$param,'align="center"',$sortfield,$sortorder); + print_liste_field_titre($langs->trans("CronMaxRun"),$_SERVER["PHP_SELF"],"t.maxrun","",$param,'align="right"',$sortfield,$sortorder); + print_liste_field_titre($langs->trans("CronNbRun"),$_SERVER["PHP_SELF"],"t.nbrun","",$param,'align="right"',$sortfield,$sortorder); + print_liste_field_titre($langs->trans("CronDtNextLaunch"),$_SERVER["PHP_SELF"],"t.datenextrun","",$param,'align="center"',$sortfield,$sortorder); + print_liste_field_titre($langs->trans("CronDtLastLaunch"),$_SERVER["PHP_SELF"],"t.datelastrun","",$param,'align="center"',$sortfield,$sortorder); + print_liste_field_titre($langs->trans("CronLastResult"),$_SERVER["PHP_SELF"],"t.lastresult","",$param,'align="center"',$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"; + + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + // Loop on each job $style='pair'; - foreach($object->lines as $line) + $now = dol_now(); + $i=0; + $var=true; + $totalarray=array(); + while ($i < min($num,$limit)) { - if (! verifCond($line->test)) continue; // Discard line with test = false + $obj = $db->fetch_object($result); + $var=!$var; + + if (! verifCond($obj->test)) continue; // Discard line with test = false // title profil if ($style=='pair') {$style='impair';} @@ -253,16 +345,16 @@ if ($num > 0) print ''; print ''; print ''; print ''; print ''; print ''; print ''; print ''; print ''; print ''; print ''; print ''; print ''; // Status print ''; print ''; print ''; + + $i++; } } else diff --git a/htdocs/langs/en_US/cron.lang b/htdocs/langs/en_US/cron.lang index d52433ed267..949703bb06e 100644 --- a/htdocs/langs/en_US/cron.lang +++ b/htdocs/langs/en_US/cron.lang @@ -23,7 +23,7 @@ CronCommand=Command CronList=Scheduled jobs CronDelete=Delete scheduled jobs CronConfirmDelete=Are you sure you want to delete these scheduled jobs ? -CronExecute=Launch scheduled jobs +CronExecute=Launch scheduled job CronConfirmExecute=Are you sure you want to execute these scheduled jobs now ? CronInfo=Scheduled job module allow to execute job that have been planned CronTask=Job @@ -39,7 +39,7 @@ CronMethod=Method CronModule=Module CronNoJobs=No jobs registered CronPriority=Priority -CronLabel=Description +CronLabel=Label CronNbRun=Nb. launch CronMaxRun=Max nb. launch CronEach=Every diff --git a/htdocs/theme/eldy/style.css.php b/htdocs/theme/eldy/style.css.php index ad9ab064a6f..d0fed74c7d0 100644 --- a/htdocs/theme/eldy/style.css.php +++ b/htdocs/theme/eldy/style.css.php @@ -2724,9 +2724,9 @@ div.liste_titre, tr.liste_titre, tr.liste_titre_sel, form.liste_titre, form.list border-bottom: 1px solid #FDFFFF; text-align: ; } -tr.liste_titre th, th.liste_titre, form.liste_titre div, div.liste_titre +tr.liste_titre th, tr.liste_titre td, th.liste_titre, form.liste_titre div, div.liste_titre { - border-bottom: 1px solid #FDFFFF; + border-bottom: 1px solid #; } tr.liste_titre th, th.liste_titre, tr.liste_titre td, td.liste_titre, form.liste_titre div, div.liste_titre { diff --git a/htdocs/theme/md/style.css.php b/htdocs/theme/md/style.css.php index 13ab596db17..a9726641c58 100644 --- a/htdocs/theme/md/style.css.php +++ b/htdocs/theme/md/style.css.php @@ -2604,9 +2604,9 @@ div.liste_titre, tr.liste_titre, tr.liste_titre_sel, form.liste_titre, form.list border-bottom: 1px solid #FDFFFF; text-align: ; } -tr.liste_titre th, th.liste_titre, form.liste_titre div, div.liste_titre +tr.liste_titre th, tr.liste_titre td, th.liste_titre, form.liste_titre div, div.liste_titre { - border-bottom: 1px solid #FDFFFF; + border-bottom: 1px solid #; } tr.liste_titre th, th.liste_titre, tr.liste_titre td, td.liste_titre, form.liste_titre div, div.liste_titre {
 '; + print ''; + print '          '; + 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 ''; + print '
'; - print ''; + print ''; print img_picto('', 'object_cron').' '; - print $line->id; + print $obj->rowid; print ''; print ''; - if (! empty($line->label)) + if (! empty($obj->label)) { - print ''.$langs->trans($line->label).''; + print ''.$langs->trans($obj->label).''; } else { @@ -271,86 +363,86 @@ if ($num > 0) print ''; - if ($line->jobtype=='method') + if ($obj->jobtype=='method') { $text=$langs->trans("CronClass"); - $texttoshow=$langs->trans('CronModule').': '.$line->module_name.'
'; - $texttoshow.=$langs->trans('CronClass').': '. $line->classesname.'
'; - $texttoshow.=$langs->trans('CronObject').': '. $line->objectname.'
'; - $texttoshow.=$langs->trans('CronMethod').': '. $line->methodename; - $texttoshow.='
'.$langs->trans('CronArgs').': '. $line->params; - $texttoshow.='
'.$langs->trans('Comment').': '. $langs->trans($line->note); + $texttoshow=$langs->trans('CronModule').': '.$obj->module_name.'
'; + $texttoshow.=$langs->trans('CronClass').': '. $obj->classesname.'
'; + $texttoshow.=$langs->trans('CronObject').': '. $obj->objectname.'
'; + $texttoshow.=$langs->trans('CronMethod').': '. $obj->methodename; + $texttoshow.='
'.$langs->trans('CronArgs').': '. $obj->params; + $texttoshow.='
'.$langs->trans('Comment').': '. $langs->trans($obj->note); } - elseif ($line->jobtype=='command') + elseif ($obj->jobtype=='command') { $text=$langs->trans('CronCommand'); - $texttoshow=$langs->trans('CronCommand').': '.dol_trunc($line->command); - $texttoshow.='
'.$langs->trans('CronArgs').': '. $line->params; - $texttoshow.='
'.$langs->trans('Comment').': '. $langs->trans($line->note); + $texttoshow=$langs->trans('CronCommand').': '.dol_trunc($obj->command); + $texttoshow.='
'.$langs->trans('CronArgs').': '. $obj->params; + $texttoshow.='
'.$langs->trans('Comment').': '. $langs->trans($obj->note); } print $form->textwithpicto($text, $texttoshow, 1); print '
'; - if($line->unitfrequency == "60") print $langs->trans('CronEach')." ".($line->frequency)." ".$langs->trans('Minutes'); - if($line->unitfrequency == "3600") print $langs->trans('CronEach')." ".($line->frequency)." ".$langs->trans('Hours'); - if($line->unitfrequency == "86400") print $langs->trans('CronEach')." ".($line->frequency)." ".$langs->trans('Days'); - if($line->unitfrequency == "604800") print $langs->trans('CronEach')." ".($line->frequency)." ".$langs->trans('Weeks'); + if($obj->unitfrequency == "60") print $langs->trans('CronEach')." ".($obj->frequency)." ".$langs->trans('Minutes'); + if($obj->unitfrequency == "3600") print $langs->trans('CronEach')." ".($obj->frequency)." ".$langs->trans('Hours'); + if($obj->unitfrequency == "86400") print $langs->trans('CronEach')." ".($obj->frequency)." ".$langs->trans('Days'); + if($obj->unitfrequency == "604800") print $langs->trans('CronEach')." ".($obj->frequency)." ".$langs->trans('Weeks'); print ''; - if(!empty($line->datestart)) {print dol_print_date($line->datestart,'dayhour');} + if(!empty($obj->datestart)) {print dol_print_date($obj->datestart,'dayhour');} print ''; - if(!empty($line->dateend)) {print dol_print_date($line->dateend,'dayhour');} + if(!empty($obj->dateend)) {print dol_print_date($obj->dateend,'dayhour');} print ''; - if (!empty($line->maxrun)) {print $line->maxrun;} + if (!empty($obj->maxrun)) {print $obj->maxrun;} print ''; - if (!empty($line->nbrun)) {print $line->nbrun;} else {print '0';} + if (!empty($obj->nbrun)) {print $obj->nbrun;} else {print '0';} print ''; - if(!empty($line->datenextrun)) {print dol_print_date($line->datenextrun,'dayhour');} + if(!empty($obj->datenextrun)) {print dol_print_date($obj->datenextrun,'dayhour');} print ''; - if(!empty($line->datelastrun)) {print dol_print_date($line->datelastrun,'dayhour');} + if(!empty($obj->datelastrun)) {print dol_print_date($obj->datelastrun,'dayhour');} print ''; - if ($line->lastresult != '') {print dol_trunc($line->lastresult);} + if ($obj->lastresult != '') {print dol_trunc($obj->lastresult);} print ''; - if(!empty($line->lastoutput)) {print dol_trunc(nl2br($line->lastoutput),50);} + if(!empty($obj->lastoutput)) {print dol_trunc(nl2br($obj->lastoutput),50);} print ''; - if ($line->status == 1) print $langs->trans("Enabled"); - elseif ($line->status == 2) print $langs->trans("Archived"); + if ($obj->status == 1) print $langs->trans("Enabled"); + elseif ($obj->status == 2) print $langs->trans("Archived"); else print $langs->trans("Disabled"); print ''; if ($user->rights->cron->create) { - print "id."&action=edit".($sortfield?'&sortfield='.$sortfield:'').($sortorder?'&sortorder='.$sortorder:'').$param."&backtourl=".urlencode($_SERVER["PHP_SELF"])."\" title=\"".dol_escape_htmltag($langs->trans('Edit'))."\">".img_picto($langs->trans('Edit'),'edit')."  "; + print "rowid."&action=edit".($sortfield?'&sortfield='.$sortfield:'').($sortorder?'&sortorder='.$sortorder:'').$param."&backtourl=".urlencode($_SERVER["PHP_SELF"])."\" title=\"".dol_escape_htmltag($langs->trans('Edit'))."\">".img_picto($langs->trans('Edit'),'edit')."  "; } if ($user->rights->cron->delete) { - print "id."&action=delete".($sortfield?'&sortfield='.$sortfield:'').($sortorder?'&sortorder='.$sortorder:'').$param."\" title=\"".dol_escape_htmltag($langs->trans('CronDelete'))."\">".img_picto($langs->trans('CronDelete'),'delete')."  "; + print "rowid."&action=delete".($sortfield?'&sortfield='.$sortfield:'').($sortorder?'&sortorder='.$sortorder:'').$param."\" title=\"".dol_escape_htmltag($langs->trans('CronDelete'))."\">".img_picto($langs->trans('CronDelete'),'delete')."  "; } else { print "trans('NotEnoughPermissions'))."\">".img_picto($langs->trans('NotEnoughPermissions'), 'delete')."   "; } if ($user->rights->cron->execute) { - if (!empty($line->status)) print "id."&action=execute".($sortfield?'&sortfield='.$sortfield:'').($sortorder?'&sortorder='.$sortorder:'').$param."\" title=\"".dol_escape_htmltag($langs->trans('CronExecute'))."\">".img_picto($langs->trans('CronExecute'),"play").""; + if (!empty($obj->status)) print "rowid."&action=execute".($sortfield?'&sortfield='.$sortfield:'').($sortorder?'&sortorder='.$sortorder:'').$param."\" title=\"".dol_escape_htmltag($langs->trans('CronExecute'))."\">".img_picto($langs->trans('CronExecute'),"play").""; else print "trans('JobDisabled'))."\">".img_picto($langs->trans('JobDisabled'),"play").""; } else { print "trans('NotEnoughPermissions'))."\">".img_picto($langs->trans('NotEnoughPermissions'),"play").""; @@ -358,6 +450,8 @@ if ($num > 0) print '