5 <li flexy:if="ent.isDay" class="change-log-day">{ent.day}</li>
6 <li flexy:if="ent.isTicket" class="change-log-item">
7 <div class='timelineevent'>{link.username(ent.who,#no_name=1,size=48,class=timelineface#)}
8 <div class='timelinetext'>
9 <div class='timelinereason'>
12 <span class='time'>{ent.time}</span> $item by {link.username(ent.who,#no_image=1#)}
16 // figure out an event type based on the object and the reason
17 if (strpos($row['object'], ':') !== false) {
18 list($object, $id) = explode(':', $row['object'], 3);
21 $object = $row['object'];
23 $item = $row['object'];
26 if (!strncmp($row['reason'], 'created ', 8)) {
27 } elseif (!strncmp($row['reason'], 'closed ', 7)) {
30 $item = "Ticket " . mtrack_ticket($id);
33 $item = "Wiki " . mtrack_wiki_link($id);
36 $item = "Milestone <span class='milestone'><a href='{$ABSWEB}milestone.php/$id'>$id</a></span>";
39 preg_match("/^changeset:(.*):([^:]+)$/", $row['object'], $M);
41 if (!$this->is_repo_visible($repo)) {
45 $item = "<a href='{$ABSWEB}Browse.php/$repo'>$repo</a> change " . mtrack_changeset($id, $repo);
48 $item = "<a href='{$ABSWEB}snippet.php/$id'>View Snippet</a>";
52 if ($repos === null) {
55 'select repoid, shortname, parent from repos')->fetchAll()
60 if (!$this->is_repo_visible($id)) {
63 if (isset($repos[$id])) {
64 $name = MTrackRepo::makeDisplayName($repos[$id]);
65 $item = "<a href='{$ABSWEB}Browse.php/$name'>$name</a>";
67 $item = "<item has been deleted>";
72 $reason = MTrack_Wiki::format_to_oneliner($row['reason']);
74 echo "<div class='timelineevent'>",
75 mtrack_username($row['who'], array(
78 'class' => 'timelineface'
80 "<div class='timelinetext'>",
81 "<div class='timelinereason'>",
83 "<span class='time'>$time</span> $item by ",
84 mtrack_username($row['who'], array('no_image' => true)),