Activity log is now working
[gwvp-mini.git] / gwvpmini / gwvpmini_activity.php
index 4f07fc5..107cb48 100644 (file)
@@ -1,4 +1,8 @@
 <?php
+global $HOME_PAGE_PROVIDERS;\r
+\r
+\r
+$HOME_PAGE_PROVIDERS["10activity"] = "gwvpmini_HomePageActivityLog";\r
 
 
 if($IS_WEB_REQUEST) {
@@ -11,23 +15,133 @@ if($IS_WEB_REQUEST) {
                $activityloglength = true;\r
        } else {\r
                $activityloglength = false;\r
-       }\r
+       }
+       
+       global $activity_log_length;\r
 }      \r
 
 
 // this will add a repo activity (a commit for eg)
 // and auto populate the field in the activity
 // log
-function gwvpmini_AddActivityForRepo($desc, $userbyid)
+function gwvpmini_AddCommitActivityForRepo($reponame, $byusername, $commitid, $desc, $branch)
 {
+       // gwvpmini_AddActivityLog($type, $userid, $repoid, $commitid, $commitlog, $visibleto="a")
+       $rid = gwvpmini_GetRepoId($reponame);
+       $uid = gwvpmini_GetUserId($byusername);
+       
+       if($rid < 1 || $uid < 1) return false;
+       
+       $vis = gwvpmini_GetVisibilityForRepo($rid);
        
+       gwvpmini_AddActivityLog("commit", $uid, $rid, "$branch:$commitid", $desc, $vis);
+}
+
+function gwvpmini_AddRefActivityForRepo($reponame, $byusername, $branchname, $acttype="branch")
+{
+       $rid = gwvpmini_GetRepoId($reponame);\r
+       $uid = gwvpmini_GetUserId($byusername);\r
+       \r
+       if($rid < 1 || $uid < 1) return false;
+       
+       $vis = gwvpmini_GetVisibilityForRepo($rid);
+       \r
+       gwvpmini_AddActivityLog("refs", $uid, $rid, "$acttype:$branchname", "", $vis);
+}
+
+function gwvpmini_GetVisibilityForRepo($repoid)
+{
+       $perms = gwvpmini_GetRepoPerms($repoid);
+       $dets = gwvpmini_getRepo($repoid);
+       $oid = $dets["ownerid"];
+       
+       if($perms["b"] == "a") return "a";
+       if($perms["b"] == "r") return "r";
+       
+       $st = ":$oid:";
+       foreach($perms as $key => $val) {
+               if($key!="b") $st .= "$key:";
+       }
+       return $st;
 }
 
 // gets the activity log as it would be viewed by
 // the user id of "$forid"
-function gwvpmini_GetActivityLogFor($forid)
+function gwvpmini_HomePageActivityLog()
+{
+       global $BASE_URL;
+       
+       $id = $_SESSION["id"];
+       
+       if($id < 0) {
+               $ents = gwvpmini_GetActivityLog();
+       } else { 
+               $ents = gwvpmini_GetActivityLog(20, $id);
+       }
+       
+       echo "<h2>News</h2>";
+       echo "<table border=\"1\">";
+       foreach($ents as $vals) {
+               /*
+                *              $ret[$nent]["type"] = $vals["activity_type"];
+               $ret[$nent]["date"] = $vals["activity_date"];
+               $ret[$nent]["userid"] = $vals["activity_user"];
+               $ret[$nent]["repoid"] = $vals["activity_repo"];
+               $ret[$nent]["commitid"] = $vals["activity_commitid"];
+               $ret[$nent]["commitlog"] = $vals["activitiy_commitlog"];
+
+                */
+               $type = $vals["type"];
+               //$rest = $vals["date"].", ".$vals["userid"].", ".$vals["repoid"].", ".$vals["commitid"].", ".$vals["commitlog"];
+               
+               if($vals["type"] == "commit") {
+                       $udets = gwvpmini_getUser(null, null, $vals["userid"]);
+                       $rdets = gwvpmini_getRepo(null, null, $vals["repoid"]);
+                       $reponame = $rdets["name"];
+                       $uname = $udets["username"];
+                       $fname = $udets["fullname"];
+                       $br_spl = explode(":", $vals["commitid"]);
+                       $branch = $br_spl[0];
+                       $cid = $br_spl[1];
+                       $compressedcid = gwvpmini_CompressCommitId($cid);
+                       $log = $vals["commitlog"];
+                       $tdiff = gwvpmini_TimeDiffText($vals["date"]);
+                       $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>";
+                       $col2 = $tdiff."<br>Commited change <b>$compressedcid</b><br><table border=\"1\"><tr><td bgcolor=\"#eeeeee\"><pre>$log</pre></td></tr></table><br>";
+               } else if($vals["type"] == "refs") {
+                       $udets = gwvpmini_getUser(null, null, $vals["userid"]);\r
+                       $rdets = gwvpmini_getRepo(null, null, $vals["repoid"]);\r
+                       $reponame = $rdets["name"];\r
+                       $uname = $udets["username"];\r
+                       $fname = $udets["fullname"];
+                       $tdiff = gwvpmini_TimeDiffText($vals["date"]);
+                       $tp_spl = explode(":", $vals["commitid"]);
+                       $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>";
+                       if($tp_spl[0] == "tagcreate") {
+                               $colapp = "$tdiff<br>Created Tag <b>".$tp_spl[1]."</b>";
+                       } else if($tp_spl[0] == "branchcreate") {
+                               $colapp = "$tdiff<br>Created Branch <b>".$tp_spl[1]."</b>";
+                       } else {
+                               $colapp = "$tdiff<br>Performed some unknown action.";
+                       }
+                       $col2 = $colapp;
+                       
+               }
+               
+               echo "<tr><td>$col1</td><td>$col2</td></tr>";
+       }
+       echo "</table>";
+}
+
+function gwvpmini_TimeDiffText($time)
 {
+       $tdiff = time() - $time;
        
+       if($tdiff < 10) return "Now";
+       if($tdiff < 60) return "$tdiff Seconds Ago";
+       if($tdiff < 3600) return "".(int)($tdiff/60)." Minutes Ago";
+       if($tdiff < 86400) return "".(int)($tdiff/3600)." Hours Ago";
+       return "".(int)($tdiff/86400)." Days Ago";
 }
 
 ?>
\ No newline at end of file