예제 #1
0
 /**
  * Returns an array of active filters
  *
  * @param   array $options The options array
  * @return array
  */
 public static function getActiveFilters($options)
 {
     $prj_id = Auth::getCurrentProject();
     $filter_info = self::getFiltersInfo();
     $return = array();
     foreach ($filter_info as $filter_key => $filter) {
         $display = false;
         if (isset($filter['param']) && isset($options[$filter['param']])) {
             $filter_details = $options[$filter['param']];
         }
         if (isset($filter['is_custom'])) {
             // custom fields
             $fld_id = $filter['fld_id'];
             if (!isset($options['custom_field'][$fld_id]) || empty($options['custom_field'][$fld_id])) {
                 continue;
             } elseif ($filter['fld_type'] == 'date' && empty($options['custom_field'][$fld_id]['Year'])) {
                 continue;
             } elseif ($filter['fld_type'] == 'integer') {
                 if (!isset($options['custom_field'][$fld_id]['value']) || empty($options['custom_field'][$fld_id]['value'])) {
                     continue;
                 } else {
                     $filter_details = $options['custom_field'][$fld_id];
                     switch ($filter_details['filter_type']) {
                         case 'ge':
                             $display = ev_gettext('%1$s or greater', $filter_details['value']);
                             break;
                         case 'le':
                             $display = ev_gettext('%1$s or less', $filter_details['value']);
                             break;
                         case 'gt':
                             $display = ev_gettext('Greater than %1$s', $filter_details['value']);
                             break;
                         case 'lt':
                             $display = ev_gettext('Less than %1$s', $filter_details['value']);
                             break;
                         default:
                             $display = $filter_details['value'];
                     }
                 }
             } elseif (in_array($filter['fld_type'], array('multiple', 'combo'))) {
                 $display = implode(', ', Custom_Field::getOptions($fld_id, $options['custom_field'][$fld_id]));
             } else {
                 $display = $options['custom_field'][$fld_id];
             }
         } elseif (!isset($options[$filter['param']]) || empty($options[$filter['param']]) || in_array($filter_key, array('sort_order', 'sort_by', 'rows', 'search_type'))) {
             continue;
         } elseif (isset($filter['is_date']) && $filter['is_date'] == true) {
             if (!empty($filter_details['Year']) || isset($filter_details['time_period'])) {
                 switch ($filter_details['filter_type']) {
                     case 'in_past':
                         $display = ev_gettext('In Past %1$s hours', $filter_details['time_period']);
                         break;
                     case 'null':
                         $display = ev_gettext('Is NULL');
                         break;
                     case 'between':
                         $end = $options[$filter['param'] . '_end'];
                         $display = ev_gettext('Is between %1$s-%2$s-%3$s AND %4$s-%5$s-%6$s', $filter_details['Year'], $filter_details['Month'], $filter_details['Day'], $end['Year'], $end['Month'], $end['Day']);
                         break;
                     case 'greater':
                         $display = ev_gettext('Is greater than %1$s-%2$s-%3$s', $filter_details['Year'], $filter_details['Month'], $filter_details['Day']);
                         break;
                     case 'less':
                         $display = ev_gettext('Is less than %1$s-%2$s-%3$s', $filter_details['Year'], $filter_details['Month'], $filter_details['Day']);
                 }
             }
         } elseif ($filter['param'] == 'status') {
             $statuses = Status::getAssocStatusList($prj_id);
             $display = $statuses[$filter_details];
         } elseif ($filter['param'] == 'category') {
             $categories = Category::getAssocList($prj_id);
             if (is_array($filter_details)) {
                 $active_categories = array();
                 foreach ($filter_details as $category) {
                     $active_categories[] = $categories[$category];
                 }
                 $display = implode(', ', $active_categories);
             } else {
                 $display = $categories[$filter_details];
             }
         } elseif ($filter['param'] == 'priority') {
             $priorities = Priority::getAssocList($prj_id);
             $display = $priorities[$filter_details];
         } elseif ($filter['param'] == 'severity') {
             $severities = Severity::getAssocList($prj_id);
             $display = $severities[$filter_details];
         } elseif ($filter['param'] == 'users') {
             if ($filter_details == -1) {
                 $display = ev_gettext('un-assigned');
             } elseif ($filter_details == -2) {
                 $display = ev_gettext('myself and un-assigned');
             } elseif ($filter_details == -3) {
                 $display = ev_gettext('myself and my group');
             } elseif ($filter_details == -4) {
                 $display = ev_gettext('myself, un-assigned and my group');
             } elseif (substr($filter_details, 0, 3) == 'grp') {
                 $display = ev_gettext('%1$s Group', Group::getName(substr($filter_details, 4)));
             } else {
                 $display = User::getFullName($filter_details);
             }
         } elseif ($filter['param'] == 'hide_closed') {
             if ($filter_details == true) {
                 $display = ev_gettext('Yes');
             }
         } elseif ($filter['param'] == 'reporter') {
             $display = User::getFullName($filter_details);
         } elseif ($filter['param'] == 'release') {
             $display = Release::getTitle($filter_details);
         } elseif ($filter['param'] == 'customer_id') {
             try {
                 $crm = CRM::getInstance($prj_id);
                 $customer = $crm->getCustomer($filter_details);
                 $display = $customer->getName();
             } catch (CRMException $e) {
                 $display = $filter_details;
             }
         } elseif ($filter['param'] == 'product') {
             $display = Product::getTitle($filter_details);
         } else {
             $display = $filter_details;
         }
         if ($display != false) {
             $return[$filter['title']] = array('value' => $display, 'remove_link' => 'list.php?view=clearandfilter&' . self::buildUrl($filter_info, $options, $filter_key, true));
         }
     }
     return $return;
 }
예제 #2
0
 /**
  * Returns the options associated with a specific field
  *
  * @param   string $field_name The name of the field
  * @param   integer $issue_id The ID of the issue
  * @return  array An array of options for the specified field
  */
 private static function getOptions($field_name, $issue_id)
 {
     $prj_id = Issue::getProjectID($issue_id);
     switch ($field_name) {
         case 'assignee':
             $users = Project::getUserAssocList($prj_id, 'active', User::ROLE_CUSTOMER);
             $current_assignees = Issue::getAssignedUserIDs($issue_id);
             foreach ($current_assignees as $usr_id) {
                 if (!isset($users[$usr_id])) {
                     $users[$usr_id] = User::getFullName($usr_id);
                 }
                 asort($users);
             }
             return $users;
         case 'priority':
             return Priority::getAssocList($prj_id);
         case 'severity':
             return Severity::getAssocList($prj_id);
     }
     return array();
 }
예제 #3
0
파일: list.php 프로젝트: korusdipl/eventum
}
if (count($groups) > 0 && Auth::getCurrentRole() > User::getRoleID('Customer')) {
    foreach ($groups as $grp_id => $grp_name) {
        $assign_options["grp:{$grp_id}"] = ev_gettext('Group') . ': ' . $grp_name;
    }
}
$assign_options += $users;
$list = Search::getListing($prj_id, $options, $pagerRow, $rows);
$tpl->assign('list', $list['list']);
$tpl->assign('list_info', $list['info']);
$tpl->assign('csv_data', base64_encode(@$list['csv']));
$tpl->assign('match_modes', Search::getMatchModes());
$tpl->assign('supports_excerpts', Search::doesBackendSupportExcerpts());
$tpl->assign('columns', Display_Column::getColumnsToDisplay($prj_id, 'list_issues'));
$tpl->assign('priorities', Priority::getAssocList($prj_id));
$tpl->assign('severities', Severity::getAssocList($prj_id));
$tpl->assign('status', Status::getAssocStatusList($prj_id));
$tpl->assign('assign_options', $assign_options);
$tpl->assign('custom', Filter::getAssocList($prj_id));
$tpl->assign('csts', Filter::getListing(true));
$tpl->assign('active_filters', Filter::getActiveFilters($options));
$tpl->assign('categories', Category::getAssocList($prj_id));
$tpl->assign('releases', Release::getAssocList($prj_id, true));
$tpl->assign('reporters', Project::getReporters($prj_id));
$tpl->assign(array('products' => Product::getAssocList(false)));
$prefs = Prefs::get($usr_id);
$tpl->assign('refresh_rate', $prefs['list_refresh_rate'] * 60);
$tpl->assign('refresh_page', 'list.php');
// items needed for bulk update tool
if (Auth::getCurrentRole() > User::getRoleID('Developer')) {
    $tpl->assign('users', $users);
예제 #4
0
    $statuses = Status::getAssocStatusList($prj_id, false);
}
if (!empty($details['iss_sta_id']) && empty($statuses[$details['iss_sta_id']])) {
    $statuses[$details['iss_sta_id']] = Status::getStatusTitle($details['iss_sta_id']);
}
$columns = array(0 => array(), 1 => array());
if (CRM::hasCustomerIntegration($prj_id) and !empty($details['iss_customer_id'])) {
    $columns[0][] = array('title' => 'Customer', 'field' => 'customer_0');
    $columns[1][] = array('title' => 'Customer Contract', 'field' => 'customer_1');
}
$categories = Category::getAssocList($prj_id);
if (count($categories) > 0) {
    $columns[0][] = array('title' => ev_gettext('Category'), 'data' => $details['prc_title'], 'field' => 'category');
}
$columns[0][] = array('title' => ev_gettext('Status'), 'data' => $details['sta_title'], 'data_bgcolor' => $details['status_color'], 'field' => 'status');
$severities = Severity::getAssocList($prj_id);
if (count($severities) > 0) {
    $columns[0][] = array('title' => ev_gettext('Severity'), 'data' => $details['sev_title'], 'field' => 'severity');
}
$priorities = Priority::getAssocList($prj_id);
if (count($priorities) > 0 && (!isset($issue_fields_display['priority']) || $issue_fields_display['priority'] != false)) {
    if (isset($issue_fields_display['priority']['min_role']) && $issue_fields_display['priority']['min_role'] > User::getRoleID('Customer')) {
        $bgcolor = APP_INTERNAL_COLOR;
    } else {
        $bgcolor = '';
    }
    $columns[0][] = array('title' => ev_gettext('Priority'), 'data' => $details['pri_title'], 'title_bgcolor' => $bgcolor, 'field' => 'priority');
}
$releases = Release::getAssocList($prj_id);
if (count($releases) > 0 && $role_id != User::getRoleID('Customer')) {
    $columns[0][] = array('title' => ev_gettext('Scheduled Release'), 'data' => $details['pre_title'], 'title_bgcolor' => APP_INTERNAL_COLOR);
예제 #5
0
    // wouldn't make much sense to create a reminder for a 'Not Prioritized'
    // issue, so let's remove that as an option
    $priorities = array_flip(Priority::getAssocList($info['rem_prj_id']));
    unset($priorities['Not Prioritized']);
    $tpl->assign('priorities', array_flip($priorities));
    $tpl->assign('severities', Severity::getAssocList($info['rem_prj_id']));
    $tpl->assign('products', Product::getAssocList());
} elseif (@$_GET['cat'] == 'change_rank') {
    Reminder::changeRank($_GET['id'], $_GET['rank']);
} elseif (!empty($_GET['prj_id'])) {
    $tpl->assign('info', array('rem_prj_id' => $_GET['prj_id']));
    $tpl->assign('issues', Reminder::getIssueAssocListByProject($_GET['prj_id']));
    // wouldn't make much sense to create a reminder for a 'Not Prioritized'
    // issue, so let's remove that as an option
    $priorities = array_flip(Priority::getAssocList($_GET['prj_id']));
    unset($priorities['Not Prioritized']);
    $tpl->assign('priorities', array_flip($priorities));
    $tpl->assign('severities', Severity::getAssocList($_GET['prj_id']));
    $tpl->assign('products', Product::getAssocList());
    // only show customers and support levels if the selected project really needs it
    $project_has_customer_integration = CRM::hasCustomerIntegration($_GET['prj_id']);
    $tpl->assign('project_has_customer_integration', $project_has_customer_integration);
    if ($project_has_customer_integration) {
        $crm = CRM::getInstance($_GET['prj_id']);
        $tpl->assign('customers', $crm->getCustomerAssocList());
        $tpl->assign('support_levels', $crm->getSupportLevelAssocList());
    }
}
$tpl->assign('project_list', Project::getAll());
$tpl->assign('list', Reminder::getAdminList());
$tpl->displayTemplate();