/** * companyList * * @ingroup pages * * - requires prj or task or tsk_* */ function companyList() { global $PH; global $auth; $presets = array('all_companies' => array('name' => __('all'), 'filters' => array('company_category' => array('id' => 'company_category', 'visible' => true, 'active' => true, 'min' => CCATEGORY_UNDEFINED, 'max' => CCATEGORY_PARTNER)), 'list_settings' => array('tasks' => array('hide_columns' => array(''), 'style' => 'tree'))), 'clients' => array('name' => __('clients'), 'filters' => array('company_category' => array('id' => 'company_category', 'visible' => true, 'active' => true, 'min' => CCATEGORY_CLIENT, 'max' => CCATEGORY_CLIENT)), 'list_settings' => array('tasks' => array('hide_columns' => array(''), 'style' => 'tree'))), 'pros_clients' => array('name' => __('prospective clients'), 'filters' => array('company_category' => array('id' => 'company_category', 'visible' => true, 'active' => true, 'min' => CCATEGORY_PROSCLIENT, 'max' => CCATEGORY_PROSCLIENT)), 'list_settings' => array('tasks' => array('hide_columns' => array(''), 'style' => 'tree'))), 'supplier' => array('name' => __('supplier'), 'filters' => array('company_category' => array('id' => 'company_category', 'visible' => true, 'active' => true, 'min' => CCATEGORY_SUPPLIER, 'max' => CCATEGORY_SUPPLIER)), 'list_settings' => array('tasks' => array('hide_columns' => array(''), 'style' => 'tree'))), 'partner' => array('name' => __('partner'), 'filters' => array('company_category' => array('id' => 'company_category', 'visible' => true, 'active' => true, 'min' => CCATEGORY_PARTNER, 'max' => CCATEGORY_PARTNER)), 'list_settings' => array('tasks' => array('hide_columns' => array(''), 'style' => 'tree')))); ## set preset location ## $preset_location = 'companyList'; $preset_id = 'all_companies'; # default value if ($tmp_preset_id = get('preset')) { if (isset($presets[$tmp_preset_id])) { $preset_id = $tmp_preset_id; } ### set cookie setcookie('STREBER_companyList_preset', $preset_id, time() + 60 * 60 * 24 * 30, '', '', 0); } else { if ($tmp_preset_id = get('STREBER_companyList_preset')) { if (isset($presets[$tmp_preset_id])) { $preset_id = $tmp_preset_id; } } } ### create from handle ### $PH->defineFromHandle(array('preset_id' => $preset_id)); $page = new Page(); $page->cur_tab = 'companies'; $page->title = __("Companies"); if (!($auth->cur_user->user_rights & RIGHT_VIEWALL)) { $page->title_minor = sprintf(__("related projects of %s"), $page->title_minor = $auth->cur_user->name); } else { $page->title_minor = __("admin view"); } $page->type = __("List"); $page->options = build_companyList_options(); ### page functions ### if ($auth->cur_user->user_rights & RIGHT_COMPANY_CREATE) { ### page functions ### $page->add_function(new PageFunctionGroup(array('name' => __('new')))); $page->add_function(new PageFunction(array('target' => 'companyNew', 'name' => __('Company'), 'params' => array('company_category' => CCATEGORY_UNDEFINED)))); } ### render title ### echo new PageHeader(); echo new PageContentOpen(); $list = new ListBlock_companies(); $list->filters[] = new ListFilter_companies(); $preset = $presets[$preset_id]; foreach ($preset['filters'] as $f_name => $f_settings) { switch ($f_name) { case 'company_category': $list->filters[] = new ListFilter_company_category_min(array('value' => $f_settings['min'])); $list->filters[] = new ListFilter_company_category_max(array('value' => $f_settings['max'])); break; default: trigger_error("Unknown filter setting {$f_name}", E_USER_WARNING); break; } } $filter_empty_folders = isset($preset['filter_empty_folders']) && $preset['filter_empty_folders'] ? true : NULL; ### may user create companies? ### if ($auth->cur_user->user_rights & RIGHT_COMPANY_CREATE) { $list->no_items_html = $PH->getLink('companyNew', '', array('person' => $auth->cur_user->id)); } else { $list->no_items_html = __("no companies"); } $order_str = get("sort_" . $PH->cur_page->id . "_" . $list->id); $order_str = str_replace(",", ", ", $order_str); $list->query_options['order_str'] = $order_str; $list->title = $page->title; $page->print_presets(array('target' => $preset_location, 'project_id' => '', 'preset_id' => $preset_id, 'presets' => $presets, 'person_id' => '')); $list->print_automatic(); ### Link to start cvs export ### $format = get('format'); if ($format == FORMAT_HTML || $format == '') { echo $PH->getCSVLink(); } echo new PageContentClose(); echo new PageHtmlEnd(); }