True,
'add' => True,
'edit' => True,
'delete' => True
);
var $bo;
var $nextmatchs;
function uiapplications()
{
$this->bo = CreateObject('admin.boapplications');
$this->nextmatchs = CreateObject('phpgwapi.nextmatchs');
}
function get_list()
{
$GLOBALS['phpgw']->common->phpgw_header();
echo parse_navbar();
$GLOBALS['phpgw']->template->set_file(array('applications' => 'applications.tpl'));
$GLOBALS['phpgw']->template->set_block('applications','list','list');
$GLOBALS['phpgw']->template->set_block('applications','row','row');
$start = $GLOBALS['HTTP_POST_VARS']['start'];
$sort = $GLOBALS['HTTP_GET_VARS']['sort'];
$order = $GLOBALS['HTTP_GET_VARS']['order'];
$offset = $GLOBALS['phpgw_info']['user']['preferences']['common']['maxmatchs'];
$apps = $this->bo->get_list();
$total = count($apps);
$sort = $sort ? $sort : 'ASC';
if($sort == 'ASC')
{
ksort($apps);
}
else
{
krsort($apps);
}
if ($start && $offset)
{
$limit = $start + $offset;
}
elseif ($start && !$offset)
{
$limit = $start;
}
elseif(!$start && !$offset)
{
$limit = $total;
}
else
{
$start = 0;
$limit = $offset;
}
if ($limit > $total)
{
$limit = $total;
}
$i = 0;
$applications = array();
while(list($app,$data) = @each($apps))
{
if($i >= $start && $i<= $limit)
{
$applications[$app] = $data;
}
$i++;
}
$GLOBALS['phpgw']->template->set_var('lang_installed',lang('Installed applications'));
$GLOBALS['phpgw']->template->set_var('bg_color',$GLOBALS['phpgw_info']['theme']['bg_color']);
$GLOBALS['phpgw']->template->set_var('th_bg',$GLOBALS['phpgw_info']['theme']['th_bg']);
$GLOBALS['phpgw']->template->set_var('sort_title',$this->nextmatchs->show_sort_order($sort,'title','title','/index.php',lang('Title'),'&menuaction=admin.uiapplications.get_list'));
$GLOBALS['phpgw']->template->set_var('lang_showing',$this->nextmatchs->show_hits($total,$start));
$GLOBALS['phpgw']->template->set_var('left',$this->nextmatchs->left('/index.php',$start,$total,'menuaction=admin.uiapplications.get_list'));
$GLOBALS['phpgw']->template->set_var('right',$this->nextmatchs->right('index.php',$start,$total,'menuaction=admin.uiapplications.get_list'));
$GLOBALS['phpgw']->template->set_var('lang_edit',lang('Edit'));
$GLOBALS['phpgw']->template->set_var('lang_delete',lang('Delete'));
$GLOBALS['phpgw']->template->set_var('lang_enabled',lang('Enabled'));
$GLOBALS['phpgw']->template->set_var('new_action',$GLOBALS['phpgw']->link('/index.php','menuaction=admin.uiapplications.add'));
$GLOBALS['phpgw']->template->set_var('lang_add',lang('add'));
@reset($applications);
while (list($key,$app) = @each($applications))
{
$tr_color = $this->nextmatchs->alternate_row_color($tr_color);
if($app['title'])
{
$name = $app['title'];
}
elseif($app['name'])
{
$name = $app['name'];
}
else
{
$name = ' ';
}
$GLOBALS['phpgw']->template->set_var('tr_color',$tr_color);
$GLOBALS['phpgw']->template->set_var('name',$name);
$GLOBALS['phpgw']->template->set_var('edit',' ' . lang('Edit') . ' ');
$GLOBALS['phpgw']->template->set_var('delete',' ' . lang('Delete') . ' ');
if ($app['status'])
{
$status = lang('Yes');
}
else
{
$status = '' . lang('No') . '';
}
$GLOBALS['phpgw']->template->set_var('status',$status);
$GLOBALS['phpgw']->template->parse('rows','row',True);
}
$GLOBALS['phpgw']->template->pparse('out','list');
}
function display_row($label, $value)
{
$GLOBALS['phpgw']->template->set_var('tr_color',$this->nextmatchs->alternate_row_color());
$GLOBALS['phpgw']->template->set_var('label',$label);
$GLOBALS['phpgw']->template->set_var('value',$value);
$GLOBALS['phpgw']->template->parse('rows','row',True);
}
function add()
{
$GLOBALS['phpgw']->template->set_file(array('application' => 'application_form.tpl'));
$GLOBALS['phpgw']->template->set_block('application','form','form');
$GLOBALS['phpgw']->template->set_block('application','row','row');
if ($GLOBALS['HTTP_POST_VARS']['submit'])
{
$totalerrors = 0;
$app_order = $GLOBALS['HTTP_POST_VARS']['app_order'] ? $GLOBALS['HTTP_POST_VARS']['app_order'] : 0;
$n_app_name = chop($GLOBALS['HTTP_POST_VARS']['n_app_name']);
$n_app_title = chop($GLOBALS['HTTP_POST_VARS']['n_app_title']);
$n_app_status = $GLOBALS['HTTP_POST_VARS']['n_app_status'];
if ($this->bo->exists($n_app_name))
{
$error[$totalerrors++] = lang('That application name already exists.');
}
if (preg_match("/\D/",$app_order))
{
$error[$totalerrors++] = lang('That application order must be a number.');
}
if (!$n_app_name)
{
$error[$totalerrors++] = lang('You must enter an application name.');
}
if (!$n_app_title)
{
$error[$totalerrors++] = lang('You must enter an application title.');
}
if (!$totalerrors)
{
$this->bo->add(array(
'n_app_name' => $n_app_name,
'n_app_title' => $n_app_title,
'n_app_status' => $n_app_status,
'app_order' => $app_order
));
Header('Location: ' . $GLOBALS['phpgw']->link('/index.php','menuaction=admin.uiapplications.get_list'));
$GLOBALS['phpgw']->common->phpgw_exit();
}
else
{
$GLOBALS['phpgw']->template->set_var('error','
' . $GLOBALS['phpgw']->common->error_list($error) . '
');
}
}
else
{ // else submit
$GLOBALS['phpgw']->template->set_var('error','');
}
$GLOBALS['phpgw']->common->phpgw_header();
echo parse_navbar();
$GLOBALS['phpgw']->template->set_var('lang_header',lang('Add new application'));
$GLOBALS['phpgw']->template->set_var('th_bg',$GLOBALS['phpgw_info']['theme']['th_bg']);
$GLOBALS['phpgw']->template->set_var('hidden_vars','');
$GLOBALS['phpgw']->template->set_var('form_action',$GLOBALS['phpgw']->link('/index.php','menuaction=admin.uiapplications.add'));
$this->display_row(lang('application name'),'');
$this->display_row(lang('application title'),'');
if(!isset($n_app_status))
{
$n_app_status = 1;
}
$selected[$n_app_status] = ' selected';
$status_html = ''
. ''
. '';
$this->display_row(lang('Status'),'');
if (!$app_order)
{
$app_order = $this->bo->app_order();
}
$this->display_row(lang('Select which location this app should appear on the navbar, lowest (left) to highest (right)'),'');
$GLOBALS['phpgw']->template->set_var('lang_submit_button',lang('add'));
$GLOBALS['phpgw']->template->pparse('out','form');
}
function edit()
{
$app_name = $GLOBALS['HTTP_GET_VARS']['app_name'];
$GLOBALS['phpgw']->template->set_file(array('application' => 'application_form.tpl'));
$GLOBALS['phpgw']->template->set_block('application','form','form');
$GLOBALS['phpgw']->template->set_block('application','row','row');
if ($GLOBALS['HTTP_POST_VARS']['submit'])
{
$totalerrors = 0;
$old_app_name = $GLOBALS['HTTP_POST_VARS']['old_app_name'];
$app_order = $GLOBALS['HTTP_POST_VARS']['app_order'] ? $GLOBALS['HTTP_POST_VARS']['app_order'] : 0;
$n_app_name = chop($GLOBALS['HTTP_POST_VARS']['n_app_name']);
$n_app_title = chop($GLOBALS['HTTP_POST_VARS']['n_app_title']);
$n_app_status = $GLOBALS['HTTP_POST_VARS']['n_app_status'];
if (! $n_app_name)
{
$error[$totalerrors++] = lang('You must enter an application name.');
}
if (! $n_app_title)
{
$error[$totalerrors++] = lang('You must enter an application title.');
}
if ($old_app_name != $n_app_name)
{
if ($this->bo->exists($n_app_name))
{
$error[$totalerrors++] = lang('That application name already exists.');
}
}
if (! $totalerrors)
{
$this->bo->save(array(
'n_app_name' => $n_app_name,
'n_app_title' => $n_app_title,
'n_app_status' => $n_app_status,
'app_order' => $app_order,
'old_app_name' => $old_app_name
));
Header('Location: ' . $GLOBALS['phpgw']->link('/index.php','menuaction=admin.uiapplications.get_list'));
$GLOBALS['phpgw']->common->phpgw_exit();
}
}
$GLOBALS['phpgw']->common->phpgw_header();
echo parse_navbar();
if ($totalerrors)
{
$GLOBALS['phpgw']->template->set_var('error','' . $GLOBALS['phpgw']->common->error_list($error) . '
');
}
else
{
$GLOBALS['phpgw']->template->set_var('error','');
list($n_app_name,$n_app_title,$n_app_status,$old_app_name,$app_order) = $this->bo->read($app_name);
}
$GLOBALS['phpgw']->template->set_var('lang_header',lang('Edit application'));
$GLOBALS['phpgw']->template->set_var('hidden_vars','');
$GLOBALS['phpgw']->template->set_var('th_bg',$GLOBALS['phpgw_info']['theme']['th_bg']);
$GLOBALS['phpgw']->template->set_var('form_action',$GLOBALS['phpgw']->link('/index.php','menuaction=admin.uiapplications.edit'));
$this->display_row(lang('application name'),'');
$this->display_row(lang('application title'),'');
$GLOBALS['phpgw']->template->set_var('lang_status',lang('Status'));
$GLOBALS['phpgw']->template->set_var('lang_submit_button',lang('edit'));
$selected[$n_app_status] = ' selected';
$status_html = ''
. ''
. '';
$this->display_row(lang("Status"),'');
$this->display_row(lang("Select which location this app should appear on the navbar, lowest (left) to highest (right)"),'');
$GLOBALS['phpgw']->template->set_var('select_status',$status_html);
$GLOBALS['phpgw']->template->pparse('out','form');
}
function delete()
{
$app_name = $GLOBALS['HTTP_GET_VARS']['app_name'];
if (!$app_name)
{
Header('Location: ' . $GLOBALS['phpgw']->link('/index.php','menuaction=admin.uiapplications.get_list'));
}
$GLOBALS['phpgw']->template->set_file(array('body' => 'delete_common.tpl'));
if ($GLOBALS['HTTP_GET_VARS']['confirm'])
{
$this->bo->delete($app_name);
Header('Location: ' . $GLOBALS['phpgw']->link('/index.php','menuaction=admin.uiapplications.get_list'));
$GLOBALS['phpgw']->common->phpgw_exit();
}
$GLOBALS['phpgw']->common->phpgw_header();
echo parse_navbar();
$GLOBALS['phpgw']->template->set_var('messages',lang('Are you sure you want to delete this application ?'));
$GLOBALS['phpgw']->template->set_var('no','' . lang('No') . '');
$GLOBALS['phpgw']->template->set_var('yes','' . lang('Yes') . '');
$GLOBALS['phpgw']->template->pparse('out','body');
$GLOBALS['phpgw']->common->phpgw_footer();
}
}
?>