/** * Show tickets for a project * * @param $project Project object **/ static function showForProject(Project $project) { global $DB, $CFG_GLPI; $ID = $project->getField('id'); if (!$project->can($ID, READ)) { return false; } $canedit = $project->canEdit($ID); $rand = mt_rand(); $showentities = Session::isMultiEntitiesMode(); $query = "SELECT DISTINCT `glpi_changes_projects`.`id` AS linkID,\n `glpi_changes`.*\n FROM `glpi_changes_projects`\n LEFT JOIN `glpi_changes`\n ON (`glpi_changes_projects`.`changes_id` = `glpi_changes`.`id`)\n WHERE `glpi_changes_projects`.`projects_id` = '{$ID}'\n ORDER BY `glpi_changes`.`name`"; $result = $DB->query($query); $changes = array(); $used = array(); if ($numrows = $DB->numrows($result)) { while ($data = $DB->fetch_assoc($result)) { $changes[$data['id']] = $data; $used[$data['id']] = $data['id']; } } if ($canedit) { echo "<div class='firstbloc'>"; echo "<form name='changeproject_form{$rand}' id='changeproject_form{$rand}' method='post'\n action='" . Toolbox::getItemTypeFormURL(__CLASS__) . "'>"; echo "<table class='tab_cadre_fixe'>"; echo "<tr class='tab_bg_2'><th colspan='2'>" . __('Add a change') . "</th></tr>"; echo "<tr class='tab_bg_2'><td>"; echo "<input type='hidden' name='projects_id' value='{$ID}'>"; Change::dropdown(array('used' => $used, 'entity' => $project->getEntityID(), 'entity_sons' => $project->isRecursive())); echo "</td><td class='center'>"; echo "<input type='submit' name='add' value=\"" . _sx('button', 'Add') . "\" class='submit'>"; echo "</td></tr></table>"; Html::closeForm(); echo "</div>"; } echo "<div class='spaced'>"; if ($canedit && $numrows) { Html::openMassiveActionsForm('mass' . __CLASS__ . $rand); $massiveactionparams = array('num_displayed' => $numrows, 'container' => 'mass' . __CLASS__ . $rand); Html::showMassiveActions($massiveactionparams); } echo "<table class='tab_cadre_fixehov table-striped table-hover'>"; echo "<tr class='noHover'><th colspan='12'>" . Change::getTypeName($numrows) . "</th></tr>"; if ($numrows) { Change::commonListHeader(Search::HTML_OUTPUT, 'mass' . __CLASS__ . $rand); Session::initNavigateListItems('Change', sprintf(__('%1$s = %2$s'), Project::getTypeName(1), $project->fields["name"])); $i = 0; foreach ($changes as $data) { Session::addToNavigateListItems('Change', $data["id"]); Change::showShort($data['id'], array('row_num' => $i, 'type_for_massiveaction' => __CLASS__, 'id_for_massiveaction' => $data['linkID'])); $i++; } Change::commonListHeader(Search::HTML_OUTPUT, 'mass' . __CLASS__ . $rand); } echo "</table>"; if ($canedit && $numrows) { $massiveactionparams['ontop'] = false; Html::showMassiveActions($massiveactionparams); Html::closeForm(); } echo "</div>"; }
/** * @param $item * * @return number **/ static function countForProject(Project $item) { $restrict = "`glpi_projectteams`.`projects_id` = '" . $item->getField('id') . "'"; return countElementsInTable(array('glpi_projectteams'), $restrict); }
/** * @param $item Project object * * @return number **/ static function countForProject(Project $item) { return countElementsInTable(array('glpi_projecttaskteams'), ['glpi_projecttaskteams.projecttasks_id' => $item->getField('id')]); }