* @package admin
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
* @version $Id$
*/
/**
* Class to admin cron-job like timed calls of eGroupWare methods
*/
class uiasyncservice
{
var $public_functions = array(
'index' => True,
);
function index()
{
if ($GLOBALS['egw']->acl->check('asyncservice_access',1,'admin'))
{
$GLOBALS['egw']->redirect_link('/index.php');
}
$GLOBALS['egw_info']['flags']['app_header'] = lang('Admin').' - '.lang('Asynchronous timed services');
$GLOBALS['egw']->common->egw_header();
echo parse_navbar();
$async = $GLOBALS['egw']->asyncservice; // use an own instance, as we might set debug=True
$async->debug = !!$_POST['debug'];
$units = array(
'year' => lang('Year'),
'month' => lang('Month'),
'day' => lang('Day'),
'dow' => lang('Day of week
(0-6, 0=Sun)'),
'hour' => lang('Hour
(0-23)'),
'min' => lang('Minute')
);
if ($_POST['send'] || $_POST['test'] || $_POST['cancel'] || $_POST['install'] || $_POST['deinstall'] || $_POST['update'] || isset($_POST['asyncservice']))
{
$times = array();
foreach($units as $u => $ulabel)
{
if ($_POST[$u] !== '')
{
$times[$u] = $_POST[$u];
}
}
if ($_POST['test'])
{
if (strpos($GLOBALS['egw_info']['user']['email'],'@') === false)
{
echo '
'.lang("You have no email address for your user set !!!")."
\n"; } elseif (!$async->set_timer($times,'test','admin.uiasyncservice.test',$GLOBALS['egw_info']['user']['email'])) { echo ''.lang("Error setting timer, wrong syntax or maybe there's one already running !!!")."
\n"; } } if ($_POST['cancel']) { if (!$async->cancel_timer('test')) { echo ''.lang("Error canceling timer, maybe there's none set !!!")."
\n"; } } if ($_POST['install'] || $_POST['deinstall']) { if (!($install = $async->install($_POST['install'] ? $times : False))) { echo ''.lang('Error: %1 not found or other error !!!',$async->crontab)."
\n"; } $_POST['asyncservice'] = $_POST['deinstall'] ? 'fallback' : 'crontab'; } } else { $times = array('min' => '*/5'); // set some default } echo '