Ejemplo n.º 1
0
 /**
  * Adds milestone ID criteria. Only allows one milestone to be specified.
  *
  * @param	string
  * @param	integer
  */
 function add_milestoneid($name, $value)
 {
     $id = intval($value);
     if (!$id) {
         return PT_SEARCHGEN_CRITERIA_UNNECESSARY;
     }
     $milestone = $this->registry->db->query_first("\r\n\t\t\tSELECT *\r\n\t\t\tFROM " . TABLE_PREFIX . "pt_milestone\r\n\t\t\tWHERE milestoneid = {$id}\r\n\t\t");
     if (!$milestone) {
         return PT_SEARCHGEN_CRITERIA_UNNECESSARY;
     }
     require_once DIR . '/includes/functions_pt_milestone.php';
     $projectperms = fetch_project_permissions($this->registry->userinfo, $milestone['projectid']);
     $milestone_types = fetch_viewable_milestone_types($projectperms);
     if (!$milestone_types) {
         // no permission, give a condition with no matches
         $this->where['milestoneid'] = "1=0";
     } else {
         $this->where['milestoneid'] = "\r\n\t\t\t\tissue.milestoneid = {$id}\r\n\t\t\t\tAND issue.projectid = {$milestone['projectid']}\r\n\t\t\t\tAND issue.issuetypeid IN ('" . implode("','", $milestone_types) . "')\r\n\t\t\t";
     }
     return PT_SEARCHGEN_CRITERIA_ADDED;
 }
Ejemplo n.º 2
0
    }
    if ($show['search_options']) {
        $assignable_users = fetch_assignable_users_select($project['projectid']);
        $search_status_options = fetch_issue_status_search_select($projectperms);
    }
    // navbar and output
    $navbits = construct_navbits(array('project.php' . $vbulletin->session->vars['sessionurl_q'] => $vbphrase['projects'], "project.php?" . $vbulletin->session->vars['sessionurl'] . "projectid={$project['projectid']}" => $project['title_clean'], "projectmilestone.php?" . $vbulletin->session->vars['sessionurl'] . "projectid={$project['projectid']}" => $vbphrase['milestones'], '' => $milestone['title_clean']));
    eval('$navbar = "' . fetch_template('navbar') . '";');
    eval('print_output("' . fetch_template('pt_milestone') . '");');
}
// #######################################################################
if ($_REQUEST['do'] == 'project') {
    $vbulletin->input->clean_array_gpc('r', array('projectid' => TYPE_UINT, 'viewall' => TYPE_BOOL));
    $project = verify_project($vbulletin->GPC['projectid']);
    $projectperms = fetch_project_permissions($vbulletin->userinfo, $project['projectid']);
    $milestone_types = fetch_viewable_milestone_types($projectperms);
    if (!$milestone_types) {
        print_no_permission();
    }
    $milestone_data = $vbulletin->db->query_read("\r\n\t\tSELECT *\r\n\t\tFROM " . TABLE_PREFIX . "pt_milestone\r\n\t\tWHERE projectid = {$project['projectid']}\r\n\t\tORDER BY completeddate DESC, targetdate\r\n\t");
    if (!$db->num_rows($milestone_data)) {
        standard_error(fetch_error('invalidid', $vbphrase['project'], $vbulletin->options['contactuslink']));
    }
    $counts = fetch_milestone_count_data("\r\n\t\tmilestone.projectid = {$project['projectid']}\r\n\t\tAND milestonetypecount.issuetypeid IN ('" . implode("','", $milestone_types) . "')\r\n\t");
    $active_milestones = '';
    $no_target_milestones = '';
    $completed_milestones = '';
    $count_completed = 0;
    while ($milestone = $db->fetch_array($milestone_data)) {
        if ($milestone['completeddate'] and !$vbulletin->GPC['viewall']) {
            $count_completed++;
Ejemplo n.º 3
0
    ($hook = vBulletinHook::fetch_hook('project_timeline_complete')) ? eval($hook) : false;
    eval('print_output("' . fetch_template('pt_timeline_page') . '");');
}
// #######################################################################
if ($_REQUEST['do'] == 'project') {
    $vbulletin->input->clean_array_gpc('r', array('projectid' => TYPE_UINT));
    $project = verify_project($vbulletin->GPC['projectid']);
    $projectperms = fetch_project_permissions($vbulletin->userinfo, $project['projectid']);
    $perms_query = build_issue_permissions_query($vbulletin->userinfo);
    if (empty($perms_query["{$project['projectid']}"])) {
        print_no_permission();
    }
    ($hook = vBulletinHook::fetch_hook('project_project_start')) ? eval($hook) : false;
    // milestones
    require_once DIR . '/includes/functions_pt_milestone.php';
    if ($project['milestonecount'] and fetch_viewable_milestone_types($projectperms)) {
        $show['milestones'] = true;
        $project['milestonecount_formatted'] = vb_number_format($project['milestonecount']);
    }
    // activity list
    $timeline = '';
    if ($vbulletin->options['pt_project_timelineentries']) {
        require_once DIR . '/includes/functions_pt_timeline.php';
        $note_perms = build_issuenote_permissions_query($vbulletin->userinfo);
        $activity_results = fetch_activity_list('(' . $perms_query["{$project['projectid']}"] . ') AND (' . $note_perms["{$project['projectid']}"] . ')', $vbulletin->options['pt_project_timelineentries'], 0, false);
        $activity_groups = prepare_activity_list($activity_results);
        $activitybits = '';
        foreach ($activity_groups as $groupid => $groupbits) {
            $group_date = make_group_date($groupid);
            ($hook = vBulletinHook::fetch_hook('project_timeline_group')) ? eval($hook) : false;
            eval('$activitybits .= "' . fetch_template('pt_timeline_group') . '";');