function print_version_header($p_version_row)
{
    $t_project_id = $p_version_row['project_id'];
    $t_version_id = $p_version_row['id'];
    $t_version_name = $p_version_row['version'];
    $t_project_name = project_get_field($t_project_id, 'name');
    $t_release_title = '<a href="roadmap_page.php?project_id=' . $t_project_id . '">' . string_display_line($t_project_name) . '</a> - <a href="roadmap_page.php?version_id=' . $t_version_id . '">' . string_display_line($t_version_name) . '</a>';
    if (config_get('show_roadmap_dates')) {
        $t_version_timestamp = $p_version_row['date_order'];
        $t_scheduled_release_date = ' (' . lang_get('scheduled_release') . ' ' . string_display_line(date(config_get('short_date_format'), $t_version_timestamp)) . ')';
    } else {
        $t_scheduled_release_date = '';
    }
    echo '<tt>';
    echo '<br />', $t_release_title, $t_scheduled_release_date, lang_get('word_separator'), print_bracket_link('view_all_set.php?type=1&temporary=y&' . FILTER_PROPERTY_PROJECT_ID . '=' . $t_project_id . '&' . filter_encode_field_and_value(FILTER_PROPERTY_TARGET_VERSION, $t_version_name), lang_get('view_bugs_link')), '<br />';
    $t_release_title_without_hyperlinks = $t_project_name . ' - ' . $t_version_name . $t_scheduled_release_date;
    echo utf8_str_pad('', utf8_strlen($t_release_title_without_hyperlinks), '='), '<br />';
}
/**
 * Print header for the specified project version.
 * @param int $p_version_id a valid version id
 * @return null
 */
function print_version_header($p_version_id)
{
    $t_project_id = version_get_field($p_version_id, 'project_id');
    $t_version_name = version_get_field($p_version_id, 'version');
    $t_project_name = project_get_field($t_project_id, 'name');
    $t_release_title = '<a href="changelog_page.php?project_id=' . $t_project_id . '">' . string_display_line($t_project_name) . '</a> - <a href="changelog_page.php?version_id=' . $p_version_id . '">' . string_display_line($t_version_name) . '</a>';
    if (config_get('show_changelog_dates')) {
        $t_version_released = version_get_field($p_version_id, 'released');
        $t_release_timestamp = version_get_field($p_version_id, 'date_order');
        if ((bool) $t_version_released) {
            $t_release_date = ' (' . lang_get('released') . ' ' . string_display_line(date(config_get('short_date_format'), $t_release_timestamp)) . ')';
        } else {
            $t_release_date = ' (' . lang_get('not_released') . ')';
        }
    } else {
        $t_release_date = '';
    }
    echo '<br />', $t_release_title, $t_release_date, lang_get('word_separator'), print_bracket_link('view_all_set.php?type=1&temporary=y&' . FILTER_PROPERTY_PROJECT_ID . '=' . $t_project_id . '&' . filter_encode_field_and_value(FILTER_PROPERTY_FIXED_IN_VERSION, $t_version_name), lang_get('view_bugs_link')), '<br />';
    $t_release_title_without_hyperlinks = $t_project_name . ' - ' . $t_version_name . $t_release_date;
    echo utf8_str_pad('', utf8_strlen($t_release_title_without_hyperlinks), '='), '<br />';
}
Example #3
0
/**
 * Get a permanent link for the current active filter.  The results of using these fields by other users
 * can be inconsistent with the original results due to fields like "Myself", "Current Project",
 * and due to access level.
 * @param array $p_custom_filter Array containing a custom filter definition.
 * @return string the search.php?xxxx or an empty string if no criteria applied.
 */
function filter_get_url(array $p_custom_filter)
{
    $t_query = array();
    if (!filter_field_is_any($p_custom_filter[FILTER_PROPERTY_PROJECT_ID])) {
        $t_project_id = $p_custom_filter[FILTER_PROPERTY_PROJECT_ID];
        if (count($t_project_id) == 1 && $t_project_id[0] == META_FILTER_CURRENT) {
            $t_project_id = array(helper_get_current_project());
        }
        $t_query[] = filter_encode_field_and_value(FILTER_PROPERTY_PROJECT_ID, $t_project_id);
    }
    if (!filter_field_is_any($p_custom_filter[FILTER_PROPERTY_SEARCH])) {
        $t_query[] = filter_encode_field_and_value(FILTER_PROPERTY_SEARCH, $p_custom_filter[FILTER_PROPERTY_SEARCH]);
    }
    if (!filter_field_is_any($p_custom_filter[FILTER_PROPERTY_CATEGORY_ID])) {
        $t_query[] = filter_encode_field_and_value(FILTER_PROPERTY_CATEGORY_ID, $p_custom_filter[FILTER_PROPERTY_CATEGORY_ID]);
    }
    if (!filter_field_is_any($p_custom_filter[FILTER_PROPERTY_REPORTER_ID])) {
        $t_query[] = filter_encode_field_and_value(FILTER_PROPERTY_REPORTER_ID, $p_custom_filter[FILTER_PROPERTY_REPORTER_ID]);
    }
    if (!filter_field_is_any($p_custom_filter[FILTER_PROPERTY_STATUS])) {
        $t_query[] = filter_encode_field_and_value(FILTER_PROPERTY_STATUS, $p_custom_filter[FILTER_PROPERTY_STATUS]);
    }
    if (!filter_field_is_any($p_custom_filter[FILTER_PROPERTY_MONITOR_USER_ID])) {
        $t_query[] = filter_encode_field_and_value(FILTER_PROPERTY_MONITOR_USER_ID, $p_custom_filter[FILTER_PROPERTY_MONITOR_USER_ID]);
    }
    if (!filter_field_is_any($p_custom_filter[FILTER_PROPERTY_HANDLER_ID])) {
        $t_query[] = filter_encode_field_and_value(FILTER_PROPERTY_HANDLER_ID, $p_custom_filter[FILTER_PROPERTY_HANDLER_ID]);
    }
    if (!filter_field_is_any($p_custom_filter[FILTER_PROPERTY_NOTE_USER_ID])) {
        $t_query[] = filter_encode_field_and_value(FILTER_PROPERTY_NOTE_USER_ID, $p_custom_filter[FILTER_PROPERTY_NOTE_USER_ID]);
    }
    if (!filter_field_is_any($p_custom_filter[FILTER_PROPERTY_SEVERITY])) {
        $t_query[] = filter_encode_field_and_value(FILTER_PROPERTY_SEVERITY, $p_custom_filter[FILTER_PROPERTY_SEVERITY]);
    }
    if (!filter_field_is_any($p_custom_filter[FILTER_PROPERTY_RESOLUTION])) {
        $t_query[] = filter_encode_field_and_value(FILTER_PROPERTY_RESOLUTION, $p_custom_filter[FILTER_PROPERTY_RESOLUTION]);
    }
    if (!filter_field_is_any($p_custom_filter[FILTER_PROPERTY_PRIORITY])) {
        $t_query[] = filter_encode_field_and_value(FILTER_PROPERTY_PRIORITY, $p_custom_filter[FILTER_PROPERTY_PRIORITY]);
    }
    if (!filter_field_is_any($p_custom_filter[FILTER_PROPERTY_VIEW_STATE])) {
        $t_query[] = filter_encode_field_and_value(FILTER_PROPERTY_VIEW_STATE, $p_custom_filter[FILTER_PROPERTY_VIEW_STATE]);
    }
    if (!filter_field_is_any($p_custom_filter[FILTER_PROPERTY_STICKY])) {
        $t_query[] = filter_encode_field_and_value(FILTER_PROPERTY_STICKY, $p_custom_filter[FILTER_PROPERTY_STICKY] ? 'on' : 'off');
    }
    if (!filter_field_is_any($p_custom_filter[FILTER_PROPERTY_VERSION])) {
        $t_query[] = filter_encode_field_and_value(FILTER_PROPERTY_VERSION, $p_custom_filter[FILTER_PROPERTY_VERSION]);
    }
    if (!filter_field_is_any($p_custom_filter[FILTER_PROPERTY_BUILD])) {
        $t_query[] = filter_encode_field_and_value(FILTER_PROPERTY_BUILD, $p_custom_filter[FILTER_PROPERTY_BUILD]);
    }
    if (!filter_field_is_any($p_custom_filter[FILTER_PROPERTY_FIXED_IN_VERSION])) {
        $t_query[] = filter_encode_field_and_value(FILTER_PROPERTY_FIXED_IN_VERSION, $p_custom_filter[FILTER_PROPERTY_FIXED_IN_VERSION]);
    }
    if (!filter_field_is_any($p_custom_filter[FILTER_PROPERTY_TARGET_VERSION])) {
        $t_query[] = filter_encode_field_and_value(FILTER_PROPERTY_TARGET_VERSION, $p_custom_filter[FILTER_PROPERTY_TARGET_VERSION]);
    }
    if (!filter_field_is_any($p_custom_filter[FILTER_PROPERTY_SORT_FIELD_NAME])) {
        $t_query[] = filter_encode_field_and_value(FILTER_PROPERTY_SORT_FIELD_NAME, $p_custom_filter[FILTER_PROPERTY_SORT_FIELD_NAME]);
    }
    if (!filter_field_is_any($p_custom_filter[FILTER_PROPERTY_SORT_DIRECTION])) {
        $t_query[] = filter_encode_field_and_value(FILTER_PROPERTY_SORT_DIRECTION, $p_custom_filter[FILTER_PROPERTY_SORT_DIRECTION]);
    }
    if (!filter_field_is_any($p_custom_filter[FILTER_PROPERTY_ISSUES_PER_PAGE])) {
        if ($p_custom_filter[FILTER_PROPERTY_ISSUES_PER_PAGE] != config_get('default_limit_view')) {
            $t_query[] = filter_encode_field_and_value(FILTER_PROPERTY_ISSUES_PER_PAGE, $p_custom_filter[FILTER_PROPERTY_ISSUES_PER_PAGE]);
        }
    }
    if (!filter_field_is_any($p_custom_filter[FILTER_PROPERTY_HIGHLIGHT_CHANGED])) {
        if ($p_custom_filter[FILTER_PROPERTY_HIGHLIGHT_CHANGED] != config_get('default_show_changed')) {
            $t_query[] = filter_encode_field_and_value(FILTER_PROPERTY_HIGHLIGHT_CHANGED, $p_custom_filter[FILTER_PROPERTY_HIGHLIGHT_CHANGED]);
        }
    }
    if (!filter_field_is_any($p_custom_filter[FILTER_PROPERTY_HIDE_STATUS])) {
        $t_query[] = filter_encode_field_and_value(FILTER_PROPERTY_HIDE_STATUS, $p_custom_filter[FILTER_PROPERTY_HIDE_STATUS]);
    }
    if (!filter_field_is_any($p_custom_filter[FILTER_PROPERTY_FILTER_BY_DATE])) {
        $t_query[] = filter_encode_field_and_value(FILTER_PROPERTY_FILTER_BY_DATE, $p_custom_filter[FILTER_PROPERTY_FILTER_BY_DATE] ? 'on' : 'off');
        # The start and end dates are only applicable if filter by date is set.
        if (!filter_field_is_any($p_custom_filter[FILTER_PROPERTY_START_DAY])) {
            $t_query[] = filter_encode_field_and_value(FILTER_PROPERTY_START_DAY, $p_custom_filter[FILTER_PROPERTY_START_DAY]);
        }
        if (!filter_field_is_any($p_custom_filter[FILTER_PROPERTY_END_DAY])) {
            $t_query[] = filter_encode_field_and_value(FILTER_PROPERTY_END_DAY, $p_custom_filter[FILTER_PROPERTY_END_DAY]);
        }
        if (!filter_field_is_any($p_custom_filter[FILTER_PROPERTY_START_MONTH])) {
            $t_query[] = filter_encode_field_and_value(FILTER_PROPERTY_START_MONTH, $p_custom_filter[FILTER_PROPERTY_START_MONTH]);
        }
        if (!filter_field_is_any($p_custom_filter[FILTER_PROPERTY_END_MONTH])) {
            $t_query[] = filter_encode_field_and_value(FILTER_PROPERTY_END_MONTH, $p_custom_filter[FILTER_PROPERTY_END_MONTH]);
        }
        if (!filter_field_is_any($p_custom_filter[FILTER_PROPERTY_START_YEAR])) {
            $t_query[] = filter_encode_field_and_value(FILTER_PROPERTY_START_YEAR, $p_custom_filter[FILTER_PROPERTY_START_YEAR]);
        }
        if (!filter_field_is_any($p_custom_filter[FILTER_PROPERTY_END_YEAR])) {
            $t_query[] = filter_encode_field_and_value(FILTER_PROPERTY_END_YEAR, $p_custom_filter[FILTER_PROPERTY_END_YEAR]);
        }
    }
    if (!filter_field_is_any($p_custom_filter[FILTER_PROPERTY_RELATIONSHIP_TYPE])) {
        if ($p_custom_filter[FILTER_PROPERTY_RELATIONSHIP_TYPE] != -1) {
            $t_query[] = filter_encode_field_and_value(FILTER_PROPERTY_RELATIONSHIP_TYPE, $p_custom_filter[FILTER_PROPERTY_RELATIONSHIP_TYPE]);
        }
    }
    if (!filter_field_is_any($p_custom_filter[FILTER_PROPERTY_RELATIONSHIP_BUG])) {
        $t_query[] = filter_encode_field_and_value(FILTER_PROPERTY_RELATIONSHIP_BUG, $p_custom_filter[FILTER_PROPERTY_RELATIONSHIP_BUG]);
    }
    if (!filter_field_is_any($p_custom_filter[FILTER_PROPERTY_PLATFORM])) {
        $t_query[] = filter_encode_field_and_value(FILTER_PROPERTY_PLATFORM, $p_custom_filter[FILTER_PROPERTY_PLATFORM]);
    }
    if (!filter_field_is_any($p_custom_filter[FILTER_PROPERTY_OS])) {
        $t_query[] = filter_encode_field_and_value(FILTER_PROPERTY_OS, $p_custom_filter[FILTER_PROPERTY_OS]);
    }
    if (!filter_field_is_any($p_custom_filter[FILTER_PROPERTY_OS_BUILD])) {
        $t_query[] = filter_encode_field_and_value(FILTER_PROPERTY_OS_BUILD, $p_custom_filter[FILTER_PROPERTY_OS_BUILD]);
    }
    if (!filter_field_is_any($p_custom_filter[FILTER_PROPERTY_TAG_STRING])) {
        $t_query[] = filter_encode_field_and_value(FILTER_PROPERTY_TAG_STRING, $p_custom_filter[FILTER_PROPERTY_TAG_STRING]);
    }
    if (!filter_field_is_any($p_custom_filter[FILTER_PROPERTY_TAG_SELECT])) {
        $t_query[] = filter_encode_field_and_value(FILTER_PROPERTY_TAG_SELECT, $p_custom_filter[FILTER_PROPERTY_TAG_SELECT]);
    }
    $t_query[] = filter_encode_field_and_value(FILTER_PROPERTY_MATCH_TYPE, $p_custom_filter[FILTER_PROPERTY_MATCH_TYPE]);
    if (isset($p_custom_filter['custom_fields'])) {
        foreach ($p_custom_filter['custom_fields'] as $t_custom_field_id => $t_custom_field_values) {
            if (!filter_field_is_any($t_custom_field_values)) {
                $t_query[] = filter_encode_field_and_value('custom_field_' . $t_custom_field_id, $t_custom_field_values);
            }
        }
    }
    # Allow plugins to add filter fields
    $t_plugin_filter_array = filter_get_plugin_filters();
    foreach ($t_plugin_filter_array as $t_field_name => $t_filter_object) {
        if (!filter_field_is_any($p_custom_filter[$t_field_name])) {
            $t_query[] = filter_encode_field_and_value($t_field_name, $p_custom_filter[$t_field_name], $t_filter_object->type);
        }
    }
    if (count($t_query) > 0) {
        $t_query_str = implode($t_query, '&');
        $t_url = config_get('path') . 'search.php?' . $t_query_str;
    } else {
        $t_url = '';
    }
    return $t_url;
}