project_name, project_color_identifier'); $q->addJoin('contacts', 'con', 'contact_id = user_contact'); $q->addWhere("user_id = forum_owner"); $q->addWhere("forum_id = {$forum_id}"); $q->addWhere("forum_project = project_id"); $q->exec(ADODB_FETCH_ASSOC); $forum = $q->fetchRow(); $forum_name = $forum["forum_name"]; echo db_error(); $q->clear(); $start_date = intval($forum["forum_create_date"]) ? new CDate($forum["forum_create_date"]) : null; //20090907 KSen@Itsutsubashi $project_id = $forum['forum_project']; // setup the title block $titleBlock = new CTitleBlock('Forum', 'support.png', $m, "{$m}.{$a}"); $titleBlock->addCell(arraySelect($filters, 'f', 'size="1" class="text" onchange="document.filterFrm.submit();"', $f, true), '', '<form action="?m=forums&a=viewer&forum_id=' . $forum_id . '" method="post" name="filterFrm">', '</form>'); $titleBlock->show(); ?> <table width="100%" cellspacing="0" cellpadding="2" border="0" class="std"> <tr> <td height="20" colspan="3" style="border: outset #D1D1CD 1px;background-color:#<?php echo $forum["project_color_identifier"]; ?> "> <font size="2" color=<?php echo bestColor($forum["project_color_identifier"]); ?> ><strong><?php echo @$forum["forum_name"]; ?> </strong></font>
*/ $project = new CProject(); $extra = array('from' => 'files', 'where' => 'project_id = file_project'); $projects = $project->getAllowedRecords($AppUI->user_id, 'project_id,project_name', 'project_name', null, $extra); $projects = arrayMerge(array('0' => $AppUI->_('All', UI_OUTPUT_RAW)), $projects); // get SQL for allowed projects/tasks and folders $task = new CTask(); $allowedProjects = $project->getAllowedSQL($AppUI->user_id, 'file_project'); $allowedTasks = $task->getAllowedSQL($AppUI->user_id, 'file_task'); $cfObj = new CFileFolder(); $allowedFolders = $cfObj->getAllowedSQL($AppUI->user_id, 'file_folder'); //get permissions for folder tab $canAccess_folders = getPermission('file_folders', 'access'); // setup the title block $titleBlock = new CTitleBlock('Files', 'folder5.png', $m, $m . '.' . $a); $titleBlock->addCell($AppUI->_('Filter') . ':'); $titleBlock->addCell(arraySelect($projects, 'project_id', 'onchange="javascript:document.pickProject.submit()" size="1" class="text"', $project_id), '', '<form name="pickProject" action="?m=files" method="post">', '</form>'); /* * override the file module's $canEdit variable passed from the main index.php * in order to check on file folder permissions */ $canAuthor_folders = getPermission('file_folders', 'add'); if ($canAuthor) { $titleBlock->addCell('<input type="submit" class="button" value="' . $AppUI->_('new file') . '" />', '', '<form action="?m=files&a=addedit&folder=' . $folder . '" method="post">', '</form>'); } if ($canAuthor_folders) { $titleBlock->addCell('<input type="submit" class="button" value="' . $AppUI->_('new folder') . '" />', '', '<form action="?m=files&a=addedit_folder" method="post">', '</form>'); } $titleBlock->show(); $file_types = dPgetSysVal('FileType'); $fts = $file_types;
$event_filter = $AppUI->checkPrefState('CalIdxFilter', w2PgetParam($_REQUEST, 'event_filter', 'my'), 'EVENTFILTER', 'my'); // get the passed timestamp (today if none) $ctoday = new w2p_Utilities_Date(); $today = $ctoday->format(FMT_TIMESTAMP_DATE); $date = w2PgetParam($_GET, 'date', $today); // get the list of visible companies $company = new CCompany(); $companies = $company->getAllowedRecords($AppUI->user_id, 'company_id,company_name', 'company_name'); $companies = arrayMerge(array('0' => $AppUI->_('All')), $companies); // setup the title block $titleBlock = new CTitleBlock('Monthly Calendar', 'myevo-appointments.png', $m, $m . '.' . $a); $titleBlock->addCrumb('?m=calendar&a=year_view&date=' . $date, 'year view'); $titleBlock->addCrumb('?m=calendar&date=' . $date, 'month view'); $titleBlock->addCrumb('?m=calendar&a=week_view&date=' . $date, 'week view'); $titleBlock->addCrumb('?m=calendar&a=day_view&date=' . $date, 'day view'); $titleBlock->addCell($AppUI->_('Company') . ':'); $titleBlock->addCell(arraySelect($companies, 'company_id', 'onChange="document.pickCompany.submit()" class="text"', $company_id), '', '<form action="' . $_SERVER['REQUEST_URI'] . '" method="post" name="pickCompany" accept-charset="utf-8">', '</form>'); $titleBlock->addCell($AppUI->_('Event Filter') . ':'); $titleBlock->addCell(arraySelect($event_filter_list, 'event_filter', 'onChange="document.pickFilter.submit()" class="text"', $event_filter, true), '', '<form action="' . $_SERVER['REQUEST_URI'] . '" method="post" name="pickFilter" accept-charset="utf-8">', '</form>'); $titleBlock->show(); ?> <script language="javascript" type="text/javascript"> function clickDay( uts, fdate ) { window.location = './index.php?m=calendar&a=day_view&date='+uts+'&tab=0'; } function clickWeek( uts, fdate ) { window.location = './index.php?m=calendar&a=week_view&date='+uts; } </script>
// En of contact search form $a2z = '<table cellpadding="2" cellspacing="1" border="0">'; $a2z .= '<tr>'; $a2z .= '<td width="100%" align="right">' . $AppUI->_('Show') . ': </td>'; $a2z .= '<td><a href="./index.php?m=contacts&where=0">' . $AppUI->_('All') . '</a></td>'; // Pull First Letters $letters = CContact::getFirstLetters($AppUI->user_id); for ($c = 65; $c < 91; $c++) { $cu = chr($c); $cell = !(mb_strpos($letters, $cu) === false) ? '<a href="?m=contacts&search_string=' . $cu . '">' . $cu . '</a>' : '<font color="#999999">' . $cu . '</font>'; $a2z .= '<td class="button">' . $cell . '</td>'; } $a2z .= '</tr><tr><td colspan="28">' . $form . '</td></tr></table>'; // setup the title block $titleBlock = new CTitleBlock('Contacts', 'monkeychat-48.png', $m, $m . '.' . $a); $titleBlock->addCell($a2z); if ($canEdit) { $titleBlock->addCell('<input type="submit" class="button" value="' . $AppUI->_('new contact') . '">', '', '<form action="?m=contacts&a=addedit" method="post" accept-charset="utf-8">', '</form>'); $titleBlock->addCrumb('?m=contacts&a=csvexport&suppressHeaders=1', 'CSV Download'); $titleBlock->addCrumb('?m=contacts&a=vcardimport&dialog=0', 'Import vCard'); } $titleBlock->show(); // TODO: Check to see that the Edit function is separated. ?> <script language="javascript" type="text/javascript"> // Callback function for the generic selector function goProject( key, val ) { var f = document.modProjects; if (val != '') { f.project_id.value = key; f.submit();
<?php /* TICKETSMITH $Id: index.php 6150 2012-01-09 12:21:18Z ajdonnison $ */ if (!defined('DP_BASE_DIR')) { die('You should not access this file directly.'); } if (!$canAccess) { $AppUI->redirect("m=public&a=access_denied"); } // setup the title block $titleBlock = new CTitleBlock('Trouble Ticket Management', 'gconf-app-icon.png', $m, "{$m}.{$a}"); if ($canAuthor) { $titleBlock->addCell('<input type="submit" class="button" value="' . $AppUI->_('new ticket') . '">', '', '<form name="ticketform" action="?m=ticketsmith&a=post_ticket" method="post">', '</form>'); } $titleBlock->show(); require DP_BASE_DIR . '/modules/ticketsmith/config.inc.php'; require DP_BASE_DIR . '/modules/ticketsmith/common.inc.php'; $column = $CONFIG["order_by"]; $direction = $CONFIG["message_order"]; $offset = 0; $limit = $CONFIG["view_rows"]; $dbprefix = dPgetConfig('dbprefix', ''); $type = dPgetCleanParam($_GET, 'type', ''); $column = dPgetCleanParam($_GET, 'column', $column); $direction = dPgetCleanParam($_GET, 'direction', $direction); $offset = dPgetCleanParam($_GET, 'offset', $offset); $action = dPgetCleanParam($_REQUEST, 'action', null); if ($type == '') { if ($AppUI->getState("ticket_type")) { $type = $AppUI->getState("ticket_type"); } else {
case 4: $q->addWhere("project_status <> 7 AND project_company = {$AppUI->user_company}"); break; case 5: $q->addWhere("project_status = 7"); break; default: $q->addWhere("project_status <> 7"); break; } $q->addGroup('forum_id'); $q->addOrder("{$orderby} {$orderdir}"); $forums = $q->loadList(); // setup the title block $titleBlock = new CTitleBlock('Forums', 'support.png', $m, "{$m}.{$a}"); $titleBlock->addCell(arraySelect($filters, 'f', 'size="1" class="text" onChange="document.forum_filter.submit();"', $f, true), '', '<form name="forum_filter" action="?m=forums" method="post">', '</form>'); if ($canAuthor) { $titleBlock->addCell('<input type="submit" class="button" value="' . $AppUI->_('new forum') . '">', '', '<form action="index.php" method="get"><input type="hidden" name="m" value="forums" /><input type="hidden" name="a" value="addedit" />', '</form>'); } $titleBlock->show(); ?> <table width="100%" cellspacing="1" cellpadding="2" border="0" class="tbl"> <form name="watcher" action="./index.php?m=forums&f=<?php echo $f; ?> " method="post"> <tr> <th nowrap="nowrap"> </th> <th nowrap="nowrap" width="25"><a href="?m=forums&orderby=watch_user" class="hdr"><?php echo $AppUI->_('Watch');
$total_project_hours = $obj->getTotalProjectHours(); // create Date objects from the datetime fields $start_date = intval($obj->project_start_date) ? new CDate($obj->project_start_date) : null; $end_date = intval($obj->project_end_date) ? new CDate($obj->project_end_date) : null; $actual_end_date = intval($criticalTasks[0]['task_end_date']) ? new CDate($criticalTasks[0]['task_end_date']) : null; $today = new CDate(); $style = $actual_end_date > $end_date && !empty($end_date) ? 'style="color:red; font-weight:bold"' : ''; $style = $obj->project_percent_complete < 99.98999999999999 && $today > $end_date && !empty($end_date) ? 'style="color:red; font-weight:bold"' : $style; // setup the title block $ttl = 'ProjectDesigner'; $titleBlock = new CTitleBlock($ttl, 'projectdesigner.png', $m, $m . '.' . $a); $titleBlock->addCrumb('?m=projects', 'projects list'); $titleBlock->addCrumb('?m=' . $m, 'select another project'); $titleBlock->addCrumb('?m=projects&a=view&bypass=1&project_id=' . $project_id, 'normal view project'); if ($canAddProject) { $titleBlock->addCell(); $titleBlock->addCell('<input type="submit" class="button" value="' . $AppUI->_('new project') . '">', '', '<form action="?m=projects&a=addedit" method="post" accept-charset="utf-8">', '</form>'); } if ($canAddTask) { $titleBlock->addCell(); $titleBlock->addCell('<input type="submit" class="button" value="' . $AppUI->_('new task') . '">', '', '<form action="?m=tasks&a=addedit&task_project=' . $project_id . '" method="post" accept-charset="utf-8">', '</form>'); } if ($canEditProject) { $titleBlock->addCell(); $titleBlock->addCell('<input type="submit" class="button" value="' . $AppUI->_('new event') . '">', '', '<form action="?m=calendar&a=addedit&event_project=' . $project_id . '" method="post" accept-charset="utf-8">', '</form>'); $titleBlock->addCell(); $titleBlock->addCell('<input type="submit" class="button" value="' . $AppUI->_('new file') . '">', '', '<form action="?m=files&a=addedit&project_id=' . $project_id . '" method="post" accept-charset="utf-8">', '</form>'); $titleBlock->addCrumb('?m=projects&a=addedit&project_id=' . $project_id, 'edit this project'); if ($canDeleteProject) { $titleBlock->addCrumbDelete('delete project', $canDelete, $msg); }
$titleBlock = new CTitleBlock('Invalid User ID', 'helix-setup-user.png', $m, "{$m}.{$a}"); $titleBlock->addCrumb('?m=admin', 'users list'); $titleBlock->show(); } else { // setup the title block $titleBlock = new CTitleBlock('View User', 'helix-setup-user.png', $m, "{$m}.{$a}"); if ($canRead) { $titleBlock->addCrumb('?m=admin', 'users list'); } if ($canEdit) { $titleBlock->addCrumb('?m=admin&a=addedituser&user_id=' . $user_id, 'edit this user'); } if ($canEdit || $user_id == $AppUI->user_id) { $titleBlock->addCrumb('?m=system&a=addeditpref&user_id=' . $user_id, 'edit preferences'); $titleBlock->addCrumbRight('<a href="#" onclick="popChgPwd();return false">' . $AppUI->_('change password') . '</a>'); $titleBlock->addCell('<input type="button" class=button value="' . $AppUI->_('add user') . '" onClick="javascript:window.location=\'./index.php' . '?m=admin&a=addedituser\';" />'); } $titleBlock->show(); ?> <script type="text/javascript" language="javascript"> <?php // security improvement: // some javascript functions may not appear on client side in case of user not having write permissions // else users would be able to arbitrarily run 'bad' functions if ($canEdit || $user_id == $AppUI->user_id) { ?> function popChgPwd() { window.open('./index.php?m=public&a=chpwd&dialog=1&user_id=<?php echo $user['user_id']; ?> ', 'chpwd', 'top=250,left=250,width=350, height=220, scrollbars=no');
$project_status = $tab; } else { if ($tab == 0) { $project_status = 0; } } if ($tab == 5 || $tab == 7) { $project_active = 0; } //for getting permissions for records related to projects $obj_project = new CProject(); // collect the full (or filtered) projects list data via function in projects.class.php projects_list_data(); // setup the title block $titleBlock = new CTitleBlock('Projects', 'applet3-48.png', $m, $m . '.' . $a); $titleBlock->addCell($AppUI->_('Owner') . ':'); $titleBlock->addCell('<form action="?m=projects" method="post" name="pickUser">' . "\n" . $bufferUser . "\n" . '</form>' . "\n"); $titleBlock->addCell($AppUI->_('Company') . '/' . $AppUI->_('Division') . ':'); $titleBlock->addCell('<form action="?m=projects" method="post" name="pickCompany">' . "\n" . $cBuffer . "\n" . '</form>' . "\n"); $titleBlock->addCell(); if ($canAuthor) { $titleBlock->addCell('<form action="?m=projects&a=addedit" method="post">' . "\n" . '<input type="submit" class="button" value="' . $AppUI->_('new project') . '" />' . "\n" . '</form>' . "\n"); } $titleBlock->show(); $project_types = dPgetSysVal('ProjectStatus'); // count number of projects per project_status $q->addTable('projects', 'p'); $q->addQuery('p.project_status, COUNT(p.project_id) as count'); $obj_project->setAllowedSQL($AppUI->user_id, $q, null, 'p'); if ($owner > 0) { $q->addWhere('p.project_owner = ' . $owner);
if (file_exists(DP_BASE_DIR . '/modules/' . $modules[$module] . '/locales/' . $lang . '.inc')) { @readfile(DP_BASE_DIR . '/modules/' . $modules[$module] . '/locales/' . $lang . '.inc'); } else { @readfile(DP_BASE_DIR . '/locales/' . $lang . '/' . $modules[$module] . '.inc'); } eval("\$locale=array(" . ob_get_contents() . "\n'0');"); ob_end_clean(); foreach ($locale as $k => $v) { if ($v != "0") { $trans[$k]['lang'] = $v; } } } ksort($trans); $titleBlock = new CTitleBlock('Translation Management', 'rdf2.png', $m, "{$m}.{$a}"); $titleBlock->addCell($AppUI->_('Module'), '', '<form action="?m=system&a=translate" method="post" name="modlang">', ''); $titleBlock->addCell(arraySelect($modules, 'module', 'size="1" class="text" onchange="document.modlang.submit();"', $module)); $titleBlock->addCell($AppUI->_('Language')); $temp = $AppUI->setWarning(false); $titleBlock->addCell(arraySelect($locales, 'lang', 'size="1" class="text" onchange="document.modlang.submit();"', $lang, true), '', '', '</form>'); $AppUI->setWarning($temp); $titleBlock->addCrumb("?m=system", "system admin"); $titleBlock->show(); ?> <table width="100%" border="0" cellpadding="1" cellspacing="1" class="tbl"> <tr> <th width="15%" nowrap><?php echo $AppUI->_('Abbreviation'); ?> </th>
$sql = "select company_name, company_id from companies where company_type = 3"; $ar_mold = db_loadList($sql); $buf = ''; $buf = '<select name = "fmoldista" class="text">' . '<option value="no"></option>'; foreach ($ar_mold as $ar) { $buf .= '<option value = ' . $ar["company_id"] . ' '; if ($ar["company_id"] == $fmoldista) { $buf .= 'selected'; } $buf .= '>' . $ar["company_name"] . '</option>'; } $titleBlock->addCell($buf, "", ""); //////////////////////////////////////////////////////////////////////////////////////////////////////////// $titleBlock->show(); $titleBlock = new CTitleBlock(''); $titleBlock->addCell($AppUI->_('etiq_Cliente') . ':'); $sql = "select company_name, company_id from companies where company_type = 2"; $ar_mold = db_loadList($sql); $buf = ''; $buf = '<select name = "fcliente" class="text">' . '<option value="no"></option>'; foreach ($ar_mold as $ar) { $buf .= '<option value = ' . $ar["company_id"] . ' '; if ($ar["company_id"] == $fcliente) { $buf .= ' selected '; } $buf .= '>' . $ar["company_name"] . '</option>'; } $titleBlock->addCell($buf, "", "", ""); $buf = '<input type="text" name="alias_string" size=12 value="' . $alias_string . '" class="text"> '; $titleBlock->addCell($AppUI->_('etiq_Referencia') . ':');
$AppUI->redirect('m=public&a=access_denied'); } $department = new CDepartment(); $department->loadFull($AppUI, $dept_id); if (!$department) { $AppUI->setMsg('Department'); $AppUI->setMsg('invalidID', UI_MSG_ERROR, true); $AppUI->redirect(); } else { $AppUI->savePlace(); } $countries = w2PgetSysVal('GlobalCountries'); $types = w2PgetSysVal('DepartmentType'); $titleBlock = new CTitleBlock('View Department', 'departments.png', $m, $m . '.' . $a); if ($canEdit) { $titleBlock->addCell(); $titleBlock->addCell('<input type="submit" class="button" value="' . $AppUI->_('new department') . '">', '', '<form action="?m=departments&a=addedit&company_id=' . $department->dept_company . '&dept_parent=' . $dept_id . '" method="post" accept-charset="utf-8">', '</form>'); } $titleBlock->addCrumb('?m=departments', 'department list'); $titleBlock->addCrumb('?m=companies', 'company list'); $titleBlock->addCrumb('?m=companies&a=view&company_id=' . $department->dept_company, 'view this company'); if ($canEdit) { $titleBlock->addCrumb('?m=departments&a=addedit&dept_id=' . $dept_id, 'edit this department'); if ($canDelete) { $titleBlock->addCrumbDelete('delete department', $canDelete, $msg); } } $titleBlock->show(); ?> <script language="javascript" type="text/javascript"> <?php
$canReadProject = !getDenyRead('projects', $obj->task_project); // get the users on this task $q->addTable('users', 'u'); $q->addTable('user_tasks', 't'); $q->leftJoin('contacts', 'c', 'user_contact = contact_id'); $q->addQuery('u.user_id, u.user_username, contact_email'); $q->addWhere('t.task_id = ' . $task_id); $q->addWhere('t.user_id = u.user_id'); $q->addOrder('u.user_username'); $sql = $q->prepare(); $q->clear(); $users = db_loadList($sql); $durnTypes = dPgetSysVal('TaskDurationType'); // setup the title block $titleBlock = new CTitleBlock('View Task', 'applet-48.png', $m, "{$m}.{$a}"); $titleBlock->addCell(); if ($canEdit) { $titleBlock->addCell('<input type="submit" class="button" value="' . $AppUI->_('new task') . '">', '', '<form action="?m=tasks&a=addedit&task_project=' . $obj->task_project . '&task_parent=' . $task_id . '" method="post">', '</form>'); $titleBlock->addCell('<input type="submit" class="button" value="' . $AppUI->_('new file') . '">', '', '<form action="?m=files&a=addedit&project_id=' . $obj->task_project . '&file_task=' . $obj->task_id . '" method="post">', '</form>'); } $titleBlock->addCrumb("?m=tasks", "tasks list"); if ($canReadProject) { $titleBlock->addCrumb("?m=projects&a=view&project_id={$obj->task_project}", "view this project"); } if ($perms->checkModule('tasks', 'edit')) { $titleBlock->addCrumb("?m=tasks&a=addedit&task_id={$task_id}", "edit this task"); } if ($canDelete) { $titleBlock->addCrumbDelete('delete task', $canDelete, $msg); } $titleBlock->show();
$titleBlock = new CTitleBlock('Invalid User ID', 'helix-setup-user.png', $m, "{$m}.{$a}"); $titleBlock->addCrumb('?m=admin', 'users list'); $titleBlock->show(); } else { $countries = w2PgetSysVal('GlobalCountries'); // setup the title block $titleBlock = new CTitleBlock('View User', 'helix-setup-user.png', $m, "{$m}.{$a}"); if ($canRead) { $titleBlock->addCrumb('?m=admin', 'users list'); } if ($canEdit || $user_id == $AppUI->user_id) { $titleBlock->addCrumb('?m=admin&a=addedituser&user_id=' . $user_id, 'edit this user'); $titleBlock->addCrumb('?m=contacts&a=addedit&contact_id=' . $user->contact_id, 'edit this contact'); $titleBlock->addCrumb('?m=system&a=addeditpref&user_id=' . $user_id, 'edit preferences'); $titleBlock->addCrumbRight('<div class="crumb"><ul style="float:right;"><li><a href="javascript: void(0);" onclick="popChgPwd();return false"><span>' . $AppUI->_('change password') . '</span></a></li></ul></div>'); $titleBlock->addCell('<td align="right" width="100%"><input type="button" class=button value="' . $AppUI->_('add user') . '" onclick="javascript:window.location=\'./index.php?m=admin&a=addedituser\';" /></td>'); } $titleBlock->show(); ?> <script language="javascript" type="text/javascript"> <?php // security improvement: // some javascript functions may not appear on client side in case of user not having write permissions // else users would be able to arbitrarily run 'bad' functions if ($canEdit || $user_id == $AppUI->user_id) { ?> function popChgPwd() { window.open( './index.php?m=public&a=chpwd&dialog=1&user_id=<?php echo $user->user_id; ?> ', 'chpwd', 'top=250,left=250,width=350, height=220, scrollbars=no' );
<?php /* TASKS $Id: tasksperuser.php,v 1.5.6.2 2007/03/06 00:34:45 merlinyoda Exp $ */ if (!defined('DP_BASE_DIR')) { die('You should not access this file directly.'); } $AppUI->savePlace(); if (isset($_POST['company_id'])) { $AppUI->setState('CompanyIdxFilter', $_POST['company_id']); } $company_id = $AppUI->getState('CompanyIdxFilter') ? $AppUI->getState('CompanyIdxFilter') : 'all'; $log_all_projects = true; // show tasks for all projects $df = $AppUI->getPref('SHDATEFORMAT'); // get the prefered date format // get CCompany() to filter tasks by company require_once $AppUI->getModuleClass('companies'); $comp = new CCompany(); $companies = $comp->getAllowedRecords($AppUI->user_id, 'company_id,company_name', 'company_name'); $compFilter = arrayMerge(array('all' => $AppUI->_('All Companies')), $companies); // setup the title block $titleBlock = new CTitleBlock('Tasks per User', 'applet-48.png', $m, "{$m}.{$a}"); $titleBlock->addCell($AppUI->_('Company') . ':'); $titleBlock->addCell(arraySelect($compFilter, 'company_id', 'size="1" class="text" onChange="document.companyFilter.submit();"', $company_id, false), '', '<form action="?m=tasks&a=tasksperuser" method="post" name="companyFilter">', '</form>'); $titleBlock->addCrumb("?m=tasks", "tasks list"); $titleBlock->addCrumb("?m=tasks&a=todo&user_id={$user_id}", "my todo"); $titleBlock->show(); // include the re-usable sub view $min_view = false; include DP_BASE_DIR . '/modules/tasks/tasksperuser_sub.php';
$q->addOrder('contact_last_name'); if ($rows = $q->loadList()) { foreach ($rows as $row) { $bufferUser .= '<option value="' . $row['user_id'] . '" ' . ($owner == $row['user_id'] ? 'selected' : '') . '>' . $row['contact_first_name'] . ' ' . $row['contact_last_name'] . '</option>'; } } // Collect the full projects list data via function in projects.class.php projects_list_data(); $nolist = array(P_HOLDING, P_COMPLETED, P_ARCHIVED, P_ALL); if ($AppUI->user_type > 5) { // only Manager & upper level can create Template project $nolist[] = P_TEMPLATE; } // Setup the title block $titleBlock = new CTitleBlock('Projects'); $titleBlock->addCell($AppUI->_('Owner') . ':'); $titleBlock->addCell($bufferUser, '', '<form action="?m=projects" method="post" name="pickUser">', '</form>'); $titleBlock->addCell($AppUI->_('Company') . '/' . $AppUI->_('Division') . ':'); $titleBlock->addCell($buffer, '', '<form action="?m=projects" method="post" name="pickCompany">', '</form>'); $titleBlock->addCell(); if ($canAuthor) { $label = in_array($psfilter, $nolist) ? $pstatus[$psf = P_ACTIVE] : $pstatus[$psf = $psfilter]; $titleBlock->addButton($AppUI->_('new ' . $label . ' project'), 'index.php?m=projects&a=addedit&project_status=' . $psf); } $titleBlock->show(); $counter = array_fill(0, count($pstatus), 0); if (is_array($projects)) { foreach ($projects as $p) { ++$counter[$p['project_status']]; } }
$q->clear(); $obj = null; if (!db_loadObject($sql, $obj)) { $AppUI->setMsg('Company'); $AppUI->setMsg("invalidID", UI_MSG_ERROR, true); $AppUI->redirect(); } else { $AppUI->savePlace(); } // load the list of project statii and company types $pstatus = dPgetSysVal('ProjectStatus'); $types = dPgetSysVal('CompanyType'); // setup the title block $titleBlock = new CTitleBlock('View Company', 'handshake.png', $m, "{$m}.{$a}"); if ($canEdit) { $titleBlock->addCell(); $titleBlock->addCell('<input type="submit" class="button" value="' . $AppUI->_('new company') . '" />', '', '<form action="?m=companies&a=addedit" method="post">', '</form>'); $titleBlock->addCell('<input type="submit" class="button" value="' . $AppUI->_('new project') . '" />', '', '<form action="?m=projects&a=addedit&company_id=' . $company_id . '" method="post">', '</form>'); } $titleBlock->addCrumb("?m=companies", "company list"); if ($canEdit) { $titleBlock->addCrumb("?m=companies&a=addedit&company_id={$company_id}", "edit this company"); $titleBlock->addCrumbDelete('delete company', $canDelete, $msg); } $titleBlock->show(); ?> <table border="0" cellpadding="4" cellspacing="0" width="100%" class="std"> <?php
$q->clear(); } if (!db_loadHash($sql, $dept)) { $titleBlock = new CTitleBlock('Invalid Department ID', 'users.gif', $m, $m . '.' . $a); $titleBlock->addCrumb('?m=companies', 'companies list'); $titleBlock->show(); } else { if ($dept_id <= 0) { echo $AppUI->_('Please choose a Department first!'); } else { $company_id = $dept['dept_company']; if (!$min_view) { // setup the title block $titleBlock = new CTitleBlock('View Department', 'users.gif', $m, $m . '.' . $a); if ($canEdit) { $titleBlock->addCell(); $titleBlock->addCell('<form action="?m=departments&a=addedit&company_id=' . $company_id . '&dept_parent=' . $dept_id . '" method="post">' . '<input type="submit" class="button" value="' . $AppUI->_('new department') . '" />' . '</form>'); } $titleBlock->addCrumb('?m=companies', 'company list'); $titleBlock->addCrumb('?m=companies&a=view&company_id=' . $company_id, 'view this company'); if ($canEdit) { $titleBlock->addCrumb('?m=departments&a=addedit&dept_id=' . $dept_id, 'edit this department'); if ($canDelete) { $titleBlock->addCrumbDelete('delete department', $canDelete, $msg); } } $titleBlock->show(); } // format dates $df = $AppUI->getPref('SHDATEFORMAT'); if (strlen($dept["dept_batching_maintenance"]) == 0) {
$last_time = clone $this_day; $last_time->setTime(23, 59, 59); $prev_day = new w2p_Utilities_Date(Date_calc::prevDay($dd, $mm, $yy, FMT_TIMESTAMP_DATE)); $next_day = new w2p_Utilities_Date(Date_calc::nextDay($dd, $mm, $yy, FMT_TIMESTAMP_DATE)); // get the list of visible companies $company = new CCompany(); global $companies; $companies = $company->getAllowedRecords($AppUI->user_id, 'company_id,company_name', 'company_name'); $companies = arrayMerge(array('0' => $AppUI->_('All')), $companies); // setup the title block $titleBlock = new CTitleBlock('Day View', 'myevo-appointments.png', $m, $m . '.' . $a); $titleBlock->addCrumb('?m=calendar&a=year_view&date=' . $this_day->format(FMT_TIMESTAMP_DATE), 'year view'); $titleBlock->addCrumb('?m=calendar&date=' . $this_day->format(FMT_TIMESTAMP_DATE), 'month view'); $titleBlock->addCrumb('?m=calendar&a=week_view&date=' . $this_week, 'week view'); $titleBlock->addCrumb('?m=calendar&a=day_view&date=' . $this_day->format(FMT_TIMESTAMP_DATE), 'day view'); $titleBlock->addCell($AppUI->_('Company') . ':'); $titleBlock->addCell(arraySelect($companies, 'company_id', 'onChange="document.pickCompany.submit()" class="text"', $company_id), '', '<form action="' . $_SERVER['REQUEST_URI'] . '" method="post" name="pickCompany" accept-charset="utf-8">', '</form>'); $titleBlock->addCell('<input type="submit" class="button" value="' . $AppUI->_('new event') . '">', '', '<form action="?m=calendar&a=addedit&date=' . $this_day->format(FMT_TIMESTAMP_DATE) . '" method="post" accept-charset="utf-8">', '</form>'); $titleBlock->show(); ?> <script language="javascript"> function clickDay( idate, fdate ) { window.location = './index.php?m=calendar&a=day_view&date='+idate+'&tab=0'; } </script> <table class="std" width="100%" cellspacing="0" cellpadding="4"> <tr> <td valign="top"> <table border="0" cellspacing="1" cellpadding="2" width="100%" class="motitle"> <tr>
if (!$resource_id) { $AppUI->setMsg("invalid ID", UI_MSG_ERROR); $AppUI->redirect(); } // TODO: tab stuff $obj = new CResource(); if (!$obj->load($resource_id)) { $AppUI->setMsg('Resource'); $AppUI->setMsg('invalidID', UI_MSG_ERROR, true); $AppUI->redirect(); } else { $AppUI->savePlace(); } $titleBlock = new CTitleBlock('View Resource', 'helpdesk.png', $m, "{$m}.{$a}"); if ($canAuthor) { $titleBlock->addCell('<input type="submit" class="button" value="' . $AppUI->_('new resource') . '" />', '', '<form action="?m=resources&a=addedit" method="post">', '</form>'); } $titleBlock->addCrumb('?m=resources', 'resource list'); if ($canEdit) { $titleBlock->addCrumb("?m=resources&a=addedit&resource_id={$resource_id}", "edit this resource"); } if ($canDelete) { $titleBlock->addCrumbDelete('delete resource', $canDelete, 'no delete permission'); } $titleBlock->show(); if ($canDelete) { ?> <script type="text/javascript" language="javascript"> can_delete = true; delete_msg = "<?php echo $AppUI->_('doDelete') . ' ' . $AppUI->_('Resource') . '?';
$AppUI->setMsg('Contact'); $AppUI->setMsg('invalidID', UI_MSG_ERROR, true); $AppUI->redirect(); } else { if ($row->contact_private && $row->contact_owner != $AppUI->user_id && $row->contact_owner && $contact_id != 0) { $AppUI->redirect('m=public&a=access_denied'); } } // setup the title block $ttl = 'View Contact'; $titleBlock = new CTitleBlock($ttl, 'monkeychat-48.png', $m, "{$m}.{$a}"); $titleBlock->addCrumb('?m=contacts', 'contacts list'); if ($canEdit && $contact_id) { $titleBlock->addCrumb('?m=contacts&a=addedit&contact_id=' . $contact_id, 'edit'); } $titleBlock->addCell('<input type="submit" class="button" value="' . $AppUI->_('new project') . '" />', '', '<form action="?m=projects&a=addedit&company_id=' . $row->contact_company . '&contact_id=' . $contact_id . '" method="post">', '</form>'); if ($canDelete && $contact_id) { $titleBlock->addCrumbDelete('delete contact', $canDelete, $msg); } $titleBlock->show(); ?> <form name="changecontact" action="?m=contacts" method="post"> <input type="hidden" name="dosql" value="do_contact_aed" /> <input type="hidden" name="del" value="0" /> <input type="hidden" name="contact_id" value="<?php echo $contact_id; ?> " /> <input type="hidden" name="contact_owner" value="<?php echo $row->contact_owner ? $row->contact_owner : $AppUI->user_id; ?>
} $cBuffer .= '</select>'; $titleBlock->addCell('<form action="?m=tasks" method="post" name="companyFilter">' . "\n" . $cBuffer . "\n" . '</form>' . "\n"); $titleBlock->addCell(); if ($canEdit && $project_id) { $titleBlock->addCell('<input type="submit" class="button" value="' . $AppUI->_('new task') . '">', '', '<form action="?m=tasks&a=addedit&task_project=' . $project_id . '" method="post">', '</form>'); } $titleBlock->show(); if (dPgetParam($_GET, 'inactive', '') == 'toggle') { $AppUI->setState('inactive', $AppUI->getState('inactive') == -1 ? 0 : -1); } $in = $AppUI->getState('inactive') == -1 ? '' : 'in'; // use a new title block (a new row) to prevent from oversized sites $titleBlock = new CTitleBlock('', 'shim.gif'); $titleBlock->showhelp = false; $titleBlock->addCell(' ' . $AppUI->_('Task Filter') . ':'); $titleBlock->addCell(arraySelect($filters, 'f', 'size=1 class=text onChange="document.taskFilter.submit();"', $f, true), '', '<form action="?m=tasks" method="post" name="taskFilter">', '</form>'); $titleBlock->addCell(); $titleBlock->addCrumb('?m=tasks&a=todo&user_id=' . $user_id, 'my todo'); if (dPgetParam($_GET, 'pinned') == 1) { $titleBlock->addCrumb('?m=tasks', 'all tasks'); } else { $titleBlock->addCrumb('?m=tasks&pinned=1', 'my pinned tasks'); } $titleBlock->addCrumb('?m=tasks&inactive=toggle', 'show ' . $in . 'active tasks'); $titleBlock->addCrumb('?m=tasks&a=tasksperuser', 'tasks per user'); $titleBlock->addCrumb('?m=projects&a=reports', 'reports'); $titleBlock->show(); // include the re-usable sub view $min_view = false; include DP_BASE_DIR . '/modules/tasks/tasks.php';
} // get the prefered date format $df = $AppUI->getPref('SHDATEFORMAT'); // create Date objects from the datetime fields $start_date = intval($obj->project_start_date) ? new CDate($obj->project_start_date) : null; $end_date = intval($obj->project_end_date) ? new CDate($obj->project_end_date) : null; $actual_end_date = intval($criticalTasks[0]['task_end_date']) ? new CDate($criticalTasks[0]['task_end_date']) : null; $style = $actual_end_date > $end_date && !empty($end_date) ? 'style="color:red; font-weight:bold"' : ''; // setup the title block $titleBlock = new CTitleBlock('View Project', 'applet3-48.png', $m, "{$m}.{$a}"); // patch 2.12.04 text to search entry box if (isset($_POST['searchtext'])) { $AppUI->setState('searchtext', $_POST['searchtext']); } $search_text = $AppUI->getState('searchtext') ? $AppUI->getState('searchtext') : ''; $titleBlock->addCell(' ' . $AppUI->_('Search') . ':'); $titleBlock->addCell('<input type="text" class="text" SIZE="10" name="searchtext" onChange="document.searchfilter.submit();" value=' . "'{$search_text}'" . 'title="' . $AppUI->_('Search in name and description fields') . '"/> <!--<input type="submit" class="button" value=">" title="' . $AppUI->_('Search in name and description fields') . '"/>-->', '', '<form action="?m=projects&a=view&project_id=' . $project_id . '" method="post" id="searchfilter">', '</form>'); if ($canEditT) { $titleBlock->addCell(); $titleBlock->addCell('<input type="submit" class="button" value="' . $AppUI->_('new task') . '">', '', '<form action="?m=tasks&a=addedit&task_project=' . $project_id . '" method="post">', '</form>'); } if ($canEdit) { $titleBlock->addCell(); $titleBlock->addCell('<input type="submit" class="button" value="' . $AppUI->_('new event') . '">', '', '<form action="?m=calendar&a=addedit&event_project=' . $project_id . '" method="post">', '</form>'); $titleBlock->addCell(); $titleBlock->addCell('<input type="submit" class="button" value="' . $AppUI->_('new file') . '">', '', '<form action="?m=files&a=addedit&project_id=' . $project_id . '" method="post">', '</form>'); } $titleBlock->addCrumb("?m=projects", "projects list"); if ($canEdit) { $titleBlock->addCrumb("?m=projects&a=addedit&project_id={$project_id}", "edit this project");
} $q->clear(); $a2z = "\n" . '<table cellpadding="2" cellspacing="1" border="0">'; $a2z .= "\n<tr>"; $a2z .= '<td width="100%" align="right">' . $AppUI->_('Show') . ': </td>'; $a2z .= '<td><a href="?m=admin&stub=0">' . $AppUI->_('All') . '</a></td>'; for ($c = 65; $c < 91; $c++) { $cu = chr($c); $cell = mb_strpos($let, $cu) > 0 ? '<a href="?m=admin&stub=' . $cu . '">' . $cu . '</a>' : '<font color="#999999">' . $cu . '</font>'; $a2z .= "\n\t<td>" . $cell . '</td>'; } $a2z .= "\n</tr>\n</table>"; // setup the title block $titleBlock = new CTitleBlock('User Management', 'helix-setup-users.png', $m, "{$m}.{$a}"); $where = dPformSafe($where); $titleBlock->addCell('<form action="index.php?m=admin" method="post">' . '<input type="text" name="where" class="text" size="10" value="' . $where . '" /> <input type="submit" value="' . $AppUI->_('search') . '" class="button" /></form>', '', '', ''); $titleBlock->addCell($a2z); $titleBlock->show(); ?> <script language="javascript" type="text/javascript"> <?php // security improvement: // some javascript functions may not appear on client side in case of user not having write permissions // else users would be able to arbitrarily run 'bad' functions if ($canDelete) { ?> function delMe(x, y) { if (confirm("<?php echo $AppUI->_('doDelete', UI_OUTPUT_JS) . ' ' . $AppUI->_('User', UI_OUTPUT_JS); ?> " + y + "?")) {
} $project_id = $AppUI->getState('LinkIdxProject') !== NULL ? $AppUI->getState('LinkIdxProject') : 0; if (dPgetParam($_GET, 'tab', -1) != -1) { $AppUI->setState('LinkIdxTab', intval(dPgetParam($_GET, 'tab'))); } $tab = $AppUI->getState('LinkIdxTab') !== NULL ? $AppUI->getState('LinkIdxTab') : 0; $active = intval(!$AppUI->getState('LinkIdxTab')); require_once $AppUI->getModuleClass('projects'); // get the list of visible companies $extra = array('from' => 'links', 'where' => 'project_id = link_project'); $project = new CProject(); $projects = $project->getAllowedRecords($AppUI->user_id, 'project_id,project_name', 'project_name', null, $extra); $projects = arrayMerge(array('0' => $AppUI->_('All', UI_OUTPUT_JS)), $projects); // setup the title block $titleBlock = new CTitleBlock('Links', 'folder5.png', $m, "{$m}.{$a}"); $titleBlock->addCell($AppUI->_('Search') . ':'); $titleBlock->addCell('<input type="text" class="text" size="10" name="search" onchange="javascript:document.searchfilter.submit();" value=' . "'{$search}'" . 'title="' . $AppUI->_('Search in name and description fields', UI_OUTPUT_JS) . '"/>', '', '<form action="?m=links" method="post" id="searchfilter">', '</form>'); $titleBlock->addCell($AppUI->_('Filter') . ':'); $titleBlock->addCell(arraySelect($projects, 'project_id', 'onchange="javascript:document.pickProject.submit()" size="1" class="text"', $project_id), '', '<form name="pickProject" action="?m=links" method="post">', '</form>'); if ($canEdit) { $titleBlock->addCell('<input type="submit" class="button" value="' . $AppUI->_('new link') . '" />', '', '<form action="?m=links&a=addedit" method="post">', '</form>'); } $titleBlock->show(); $link_types = dPgetSysVal('LinkType'); if ($tab != -1) { array_unshift($link_types, 'All Links'); } array_map(array($AppUI, '_'), $link_types); $tabBox = new CTabBox('?m=links', DP_BASE_DIR . '/modules/links/', $tab); $i = 0; foreach ($link_types as $link_type) {
$types = dPgetSysVal('EventType'); // load the event recurs types $recurs = array('Never', 'Hourly', 'Daily', 'Weekly', 'Bi-Weekly', 'Every Month', 'Quarterly', 'Every 6 months', 'Every Year'); $assigned = $obj->getAssigned(); if ($obj->event_owner != $AppUI->user_id && !getPermission('admin', 'view')) { $canEdit = false; } $df = $AppUI->getPref('SHDATEFORMAT'); $tf = $AppUI->getPref('TIMEFORMAT'); $start_date = $obj->event_start_date ? new CDate($obj->event_start_date) : null; $end_date = $obj->event_end_date ? new CDate($obj->event_end_date) : null; $event_project = db_LoadResult('SELECT project_name FROM projects where project_id=' . $obj->event_project); // setup the title block $titleBlock = new CTitleBlock('View Event', 'myevo-appointments.png', $m, "{$m}.{$a}"); if ($canAuthor) { $titleBlock->addCell(); $titleBlock->addCell('<form action="?m=calendar&a=addedit" method="post">' . '<input type="submit" class="button" value="' . $AppUI->_('new event') . '" /></form>', '', '', ''); } $titleBlock->addCrumb('?m=calendar&date=' . $start_date->format(FMT_TIMESTAMP_DATE), 'month view'); $titleBlock->addCrumb('?m=calendar&a=day_view&date=' . $start_date->format(FMT_TIMESTAMP_DATE) . '&tab=0', 'day view'); if ($canEdit) { $titleBlock->addCrumb('?m=calendar&a=addedit&event_id=' . $event_id, 'edit this event'); if ($canDelete) { $titleBlock->addCrumbDelete('delete event', $canDelete, $msg); } } $titleBlock->show(); ?> <script language="javascript"> <?php // security improvement:
} // Pagination $items_per_page = $HELPDESK_CONFIG['items_per_page']; // Figure out number of total results, but do not retrieve $total_results = db_num_rows(db_exec($sql)); // Figure out the offset $offset = $page * $items_per_page; // Limit the results to enable pagination $sql .= " LIMIT {$offset},{$items_per_page}"; // Get the actual, paginated results $rows = db_loadList($sql); // Setup the title block if (!$_REQUEST['project_id'] && !$_REQUEST['company_id']) { $titleBlock = new CTitleBlock('Help Desk', 'helpdesk.png', $m, 'ID_HELP_HELPDESK_IDX'); if (hditemCreate()) { $titleBlock->addCell('<input type="submit" class="button" value="' . $AppUI->_('new item') . '" />', '', '<form action="?m=helpdesk&a=addedit" method="post">', '</form>'); } $titleBlock->addCrumb("?m=helpdesk", "home"); $titleBlock->addCrumb("?m=helpdesk&a=list", "list"); $titleBlock->addCrumb("?m=helpdesk&a=reports", "reports"); $titleBlock->show(); } ?> <script language="javascript"> function changeList() { document.filterFrm.submit(); } </script> <?php if (!$_REQUEST['project_id'] && !$_REQUEST['company_id']) { ?>
//no tasks in project so "fake" project data $worked_hours = $total_hours = $total_project_hours = 0.0; } // create Date objects from the datetime fields $start_date = intval($obj->project_start_date) ? new CDate($obj->project_start_date) : null; $end_date = intval($obj->project_end_date) ? new CDate($obj->project_end_date) : null; $actual_end_date = intval($criticalTasks[0]['task_end_date']) ? new CDate($criticalTasks[0]['task_end_date']) : null; $style = $actual_end_date > $end_date && !empty($end_date) ? 'style="color:red; font-weight:bold"' : ''; // setup the title block $ttl = "ProjectDesigner"; $titleBlock = new CTitleBlock($ttl, 'projectdesigner.png', $m, "{$m}.{$a}"); $titleBlock->addCrumb("?m=projects", "projects list"); $titleBlock->addCrumb("?m={$m}", "select another project"); $titleBlock->addCrumb("?m=projects&a=view&project_id={$project_id}", "normal view project"); if ($canAddProject) { $titleBlock->addCell(); $titleBlock->addCell('<input type="submit" class="button" value="' . $AppUI->_('new project') . '">', '', '<form action="?m=projects&a=addedit" method="post">', '</form>'); } if ($canAddTask) { $titleBlock->addCell(); $titleBlock->addCell('<input type="submit" class="button" value="' . $AppUI->_('new task') . '">', '', '<form action="?m=tasks&a=addedit&task_project=' . $project_id . '" method="post">', '</form>'); } if ($canEditProject) { $titleBlock->addCell(); $titleBlock->addCell('<input type="submit" class="button" value="' . $AppUI->_('new event') . '">', '', '<form action="?m=calendar&a=addedit&event_project=' . $project_id . '" method="post">', '</form>'); $titleBlock->addCell(); $titleBlock->addCell('<input type="submit" class="button" value="' . $AppUI->_('new file') . '">', '', '<form action="?m=files&a=addedit&project_id=' . $project_id . '" method="post">', '</form>'); $titleBlock->addCrumb("?m=projects&a=addedit&project_id={$project_id}", "edit this project"); if ($canDeleteProject) { $titleBlock->addCrumbDelete('delete project', $canDelete, $msg); }
$q->clear(); $obj = null; if (!db_loadObject($sql, $obj)) { $AppUI->setMsg('Company'); $AppUI->setMsg("invalidID", UI_MSG_ERROR, true); $AppUI->redirect(); } else { $AppUI->savePlace(); } // load the list of project statii and company types $pstatus = dPgetSysVal('ProjectStatus'); $types = dPgetSysVal('CompanyType'); // setup the title block $titleBlock = new CTitleBlock('Company Information'); if ($canEdit) { $titleBlock->addCell(); $titleBlock->addButton($AppUI->_('new company'), 'index.php?m=companies&a=addedit'); } $titleBlock->addButton('company list', 'index.php?m=companies'); $titleBlock->show(); ?> <script language="javascript"> <?php // security improvement: // some javascript functions may not appear on client side in case of user not having write permissions // else users would be able to arbitrarily run 'bad' functions if ($canDelete) { ?> function delIt() { if (confirm( "<?php echo $AppUI->_('doDelete') . ' ' . $AppUI->_('company') . ' [' . $obj->company_name . '] ?';
/* $Id: index_table.php 1878 2011-05-06 22:11:48Z caseydk $ $URL: https://web2project.svn.sourceforge.net/svnroot/web2project/tags/version2.4/modules/links/index_table.php $ */ if (!defined('W2P_BASE_DIR')) { die('You should not access this file directly.'); } global $AppUI, $deny1, $canRead, $canEdit, $project_id, $task_id, $showProject; if ($task_id && !$project_id) { $task = new CTask(); $task->load($task_id); $project_id = $task->task_project; } // modified later by Pablo Roca (proca) in 18 August 2003 - added page support // Files modules: index page re-usable sub-table $m = 'links'; if ($canEdit) { $titleBlock = new CTitleBlock('', '', $m, "{$m}.{$a}"); $titleBlock->addCell('<input type="submit" class="button" value="' . $AppUI->_('new link') . '">', '', '<form action="?m=links&a=addedit&project_id=' . $project_id . '&task_id=' . $task_id . '" method="post" accept-charset="utf-8">', '</form>'); $titleBlock->show(); } $page = (int) w2PgetParam($_GET, 'page', 1); $search = w2PgetParam($_POST, 'search', ''); if (!isset($project_id)) { $project_id = (int) w2PgetParam($_POST, 'project_id', 0); } $df = $AppUI->getPref('SHDATEFORMAT'); $tf = $AppUI->getPref('TIMEFORMAT'); $link_types = w2PgetSysVal('LinkType'); if ($canRead) { $link = new CLink(); $links = $link->getProjectTaskLinksByCategory($AppUI, $project_id, $task_id, $tab - 1, $search); } else { $AppUI->redirect('m=public&a=access_denied');