public function getContent() { $html = ''; $uh = UserHelper::instance(); $request = HTTPRequest::instance(); $hp = Codendi_HTMLPurifier::instance(); $user = UserManager::instance()->getCurrentUser(); $pm = ProjectManager::instance(); $project_ids = $user->getProjects(); foreach ($project_ids as $project_id) { $project = $pm->getProject($project_id); if ($project->usesSVN()) { list($hide_now, $count_diff, $hide_url) = my_hide_url('my_svn_group', $project_id, $request->get('hide_item_id'), count($project_ids), $request->get('hide_my_svn_group')); $html .= $hide_url; $html .= '<strong>' . $project->getPublicName() . '</strong>'; if (!$hide_now) { list($latest_revisions, $nb_revisions) = svn_get_revisions($project, 0, $this->_nb_svn_commits, '', $user->getUserName(), '', '', 0, false); if (db_numrows($latest_revisions) > 0) { $i = 0; while ($data = db_fetch_array($latest_revisions)) { $html .= '<div class="' . util_get_alt_row_color($i++) . '" style="border-bottom:1px solid #ddd">'; $html .= '<div style="font-size:0.98em;">'; $html .= '<a href="' . $this->_getLinkToCommit($project->getGroupId(), $data['revision']) . '">rev #' . $data['revision'] . '</a>'; $html .= ' ' . $GLOBALS['Language']->getText('my_index', 'my_latest_svn_commit_on') . ' '; //In the db, svn dates are stored as int whereas cvs dates are stored as timestamp $html .= format_date($GLOBALS['Language']->getText('system', 'datefmt'), is_numeric($data['date']) ? $data['date'] : strtotime($data['date'])); $html .= ' ' . $GLOBALS['Language']->getText('my_index', 'my_latest_svn_commit_by') . ' '; if (isset($data['whoid'])) { $name = $uh->getDisplayNameFromUserId($data['whoid']); } else { $name = $uh->getDisplayNameFromUserName($data['who']); } $html .= $hp->purify($name, CODENDI_PURIFIER_CONVERT_HTML); $html .= '</div>'; $html .= '<div style="padding-left:20px; padding-bottom:4px; color:#555">'; $html .= util_make_links(substr($data['description'], 0, 255), $project->getGroupId()); if (strlen($data['description']) > 255) { $html .= ' [...]'; } $html .= '</div>'; $html .= '</div>'; } $html .= '<div style="text-align:center" class="' . util_get_alt_row_color($i++) . '">'; $html .= '<a href="' . $this->_getLinkToMore($project->getGroupId(), $user->getUserName()) . '">[ More ]</a>'; $html .= '</div>'; } else { $html .= '<div></div>'; } } else { $html .= '<div></div>'; } } } return $html; }
function getLatestRevisions() { if (!$this->latest_revisions) { $pm = ProjectManager::instance(); $project = $pm->getProject($this->group_id); if ($project && $this->canBeUsedByProject($project)) { list($this->latest_revisions, ) = svn_get_revisions($project, 0, 5, '', '', '', '', 0, false); } } return $this->latest_revisions; }
//echo 'setting pref'; user_set_preference('svn_commits_browcust' . $group_id, $pref_); } } else { if ($set == 'any') { $_commiter = 100; } } } /* Display commits based on the form post - by user or status or both */ $pm = ProjectManager::instance(); $project = $pm->getProject($group_id); $root = $project->getUnixName(false); list($result, $totalrows) = svn_get_revisions($project, $offset, $chunksz, $_rev_id, $_commiter, $_srch, $order_by, $pv); $statement = $Language->getText('svn_browse_revision', 'view_commit'); /* creating a custom technician box which includes "any" */ $tech_box = svn_utils_technician_box($group_id, '_commiter', $_commiter, 'Any'); /* Show the new pop-up boxes to select assigned to and/or status */ echo '<H3>' . $Language->getText('svn_browse_revision', 'browse_commit') . '</H3>'; echo '<FORM class="form-inline" name="commit_form" ACTION="" METHOD="GET"> <TABLE BORDER="0"> <INPUT TYPE="HIDDEN" NAME="group_id" VALUE="' . $group_id . '"> <INPUT TYPE="HIDDEN" NAME="func" VALUE="browse"> <INPUT TYPE="HIDDEN" NAME="set" VALUE="custom"> <TR align="center"><TD><b>' . $Language->getText('svn_browse_revision', 'rev') . '</b></TD><TD><b>' . $Language->getText('svn_browse_revision', 'commiter') . '</b></TD><TD><b>' . $Language->getText('svn_browse_revision', 'path') . '</b></TD><TD><b>' . $Language->getText('svn_browse_revision', 'search') . '</b></TD>' . '</TR>' . '<TR><TD><INPUT TYPE="TEXT" SIZE=5 CLASS="input-mini" NAME=_rev_id VALUE=' . $hp->purify($_rev_id) . '></TD>' . '<TD>' . $tech_box . '</TD>' . '<TD>' . '<INPUT type=text size=35 name=_path value=' . $hp->purify($_path) . '></TD>' . '<TD>' . '<INPUT type=text size=35 name=_srch value=' . $hp->purify($_srch) . '></TD>' . '</TR></TABLE>' . '<br><INPUT TYPE="SUBMIT" CLASS="btn" NAME="SUBMIT" VALUE="' . $Language->getText('global', 'btn_browse') . '">' . ' <input TYPE="text" name="chunksz" CLASS="input-mini" size="3" MAXLENGTH="5" ' . 'VALUE="' . $hp->purify($chunksz) . '">' . $Language->getText('svn_browse_revision', 'commit_at_once') . '</FORM>';
/** * XXX: USE IN TESTS ONLY !!! * * Wraps svn_get_revisions for testing purpose. */ public function getRawRevisionsAndCount($limit, PFUser $author) { return svn_get_revisions($this->project, 0, $limit, '', $author->getUserName(), '', '', 0, false); }