Activity log is now working
[gwvp-mini.git] / gwvpmini / gwvpmini_activity.php
1 <?php
2 global $HOME_PAGE_PROVIDERS;\r
3 \r
4 \r
5 $HOME_PAGE_PROVIDERS["10activity"] = "gwvpmini_HomePageActivityLog";\r
6
7
8 if($IS_WEB_REQUEST) {
9         $reg = gwvpmini_getConfigVal("activityloglength");\r
10         \r
11         $activity_log_length = false;\r
12         if($reg == null) {\r
13                 gwvpmini_setConfigVal("activityloglength", "100");\r
14         } else if($reg == 1) {\r
15                 $activityloglength = true;\r
16         } else {\r
17                 $activityloglength = false;\r
18         }
19         
20         global $activity_log_length;\r
21 }       \r
22
23
24 // this will add a repo activity (a commit for eg)
25 // and auto populate the field in the activity
26 // log
27 function gwvpmini_AddCommitActivityForRepo($reponame, $byusername, $commitid, $desc, $branch)
28 {
29         // gwvpmini_AddActivityLog($type, $userid, $repoid, $commitid, $commitlog, $visibleto="a")
30         $rid = gwvpmini_GetRepoId($reponame);
31         $uid = gwvpmini_GetUserId($byusername);
32         
33         if($rid < 1 || $uid < 1) return false;
34         
35         $vis = gwvpmini_GetVisibilityForRepo($rid);
36         
37         gwvpmini_AddActivityLog("commit", $uid, $rid, "$branch:$commitid", $desc, $vis);
38 }
39
40 function gwvpmini_AddRefActivityForRepo($reponame, $byusername, $branchname, $acttype="branch")
41 {
42         $rid = gwvpmini_GetRepoId($reponame);\r
43         $uid = gwvpmini_GetUserId($byusername);\r
44         \r
45         if($rid < 1 || $uid < 1) return false;
46         
47         $vis = gwvpmini_GetVisibilityForRepo($rid);
48         \r
49         gwvpmini_AddActivityLog("refs", $uid, $rid, "$acttype:$branchname", "", $vis);
50 }
51
52 function gwvpmini_GetVisibilityForRepo($repoid)
53 {
54         $perms = gwvpmini_GetRepoPerms($repoid);
55         $dets = gwvpmini_getRepo($repoid);
56         $oid = $dets["ownerid"];
57         
58         if($perms["b"] == "a") return "a";
59         if($perms["b"] == "r") return "r";
60         
61         $st = ":$oid:";
62         foreach($perms as $key => $val) {
63                 if($key!="b") $st .= "$key:";
64         }
65         return $st;
66 }
67
68 // gets the activity log as it would be viewed by
69 // the user id of "$forid"
70 function gwvpmini_HomePageActivityLog()
71 {
72         global $BASE_URL;
73         
74         $id = $_SESSION["id"];
75         
76         if($id < 0) {
77                 $ents = gwvpmini_GetActivityLog();
78         } else { 
79                 $ents = gwvpmini_GetActivityLog(20, $id);
80         }
81         
82         echo "<h2>News</h2>";
83         echo "<table border=\"1\">";
84         foreach($ents as $vals) {
85                 /*
86                  *              $ret[$nent]["type"] = $vals["activity_type"];
87                 $ret[$nent]["date"] = $vals["activity_date"];
88                 $ret[$nent]["userid"] = $vals["activity_user"];
89                 $ret[$nent]["repoid"] = $vals["activity_repo"];
90                 $ret[$nent]["commitid"] = $vals["activity_commitid"];
91                 $ret[$nent]["commitlog"] = $vals["activitiy_commitlog"];
92
93                  */
94                 $type = $vals["type"];
95                 //$rest = $vals["date"].", ".$vals["userid"].", ".$vals["repoid"].", ".$vals["commitid"].", ".$vals["commitlog"];
96                 
97                 if($vals["type"] == "commit") {
98                         $udets = gwvpmini_getUser(null, null, $vals["userid"]);
99                         $rdets = gwvpmini_getRepo(null, null, $vals["repoid"]);
100                         $reponame = $rdets["name"];
101                         $uname = $udets["username"];
102                         $fname = $udets["fullname"];
103                         $br_spl = explode(":", $vals["commitid"]);
104                         $branch = $br_spl[0];
105                         $cid = $br_spl[1];
106                         $compressedcid = gwvpmini_CompressCommitId($cid);
107                         $log = $vals["commitlog"];
108                         $tdiff = gwvpmini_TimeDiffText($vals["date"]);
109                         $col1 = "<font size=\"+1\"><a href=\"$BASE_URL/view/$reponame\">$reponame</a></font><br>".gwvpmini_HtmlGravatar($udets["email"], 30, "<br>")."<a href=\"$BASE_URL/user/$uname\">$uname</a>";
110                         $col2 = $tdiff."<br>Commited change <b>$compressedcid</b><br><table border=\"1\"><tr><td bgcolor=\"#eeeeee\"><pre>$log</pre></td></tr></table><br>";
111                 } else if($vals["type"] == "refs") {
112                         $udets = gwvpmini_getUser(null, null, $vals["userid"]);\r
113                         $rdets = gwvpmini_getRepo(null, null, $vals["repoid"]);\r
114                         $reponame = $rdets["name"];\r
115                         $uname = $udets["username"];\r
116                         $fname = $udets["fullname"];
117                         $tdiff = gwvpmini_TimeDiffText($vals["date"]);
118                         $tp_spl = explode(":", $vals["commitid"]);
119                         $col1 = "<font size=\"+1\"><a href=\"$BASE_URL/view/$reponame\">$reponame</a></font><br>".gwvpmini_HtmlGravatar($udets["email"], 30, "<br>")."<a href=\"$BASE_URL/user/$uname\">$uname</a>";
120                         if($tp_spl[0] == "tagcreate") {
121                                 $colapp = "$tdiff<br>Created Tag <b>".$tp_spl[1]."</b>";
122                         } else if($tp_spl[0] == "branchcreate") {
123                                 $colapp = "$tdiff<br>Created Branch <b>".$tp_spl[1]."</b>";
124                         } else {
125                                 $colapp = "$tdiff<br>Performed some unknown action.";
126                         }
127                         $col2 = $colapp;
128                         
129                 }
130                 
131                 echo "<tr><td>$col1</td><td>$col2</td></tr>";
132         }
133         echo "</table>";
134 }
135
136 function gwvpmini_TimeDiffText($time)
137 {
138         $tdiff = time() - $time;
139         
140         if($tdiff < 10) return "Now";
141         if($tdiff < 60) return "$tdiff Seconds Ago";
142         if($tdiff < 3600) return "".(int)($tdiff/60)." Minutes Ago";
143         if($tdiff < 86400) return "".(int)($tdiff/3600)." Hours Ago";
144         return "".(int)($tdiff/86400)." Days Ago";
145 }
146
147 ?>