2 $CALL_ME_FUNCTIONS["repoadmin"] = "gwvp_RepoAdminCallMe";
4 $MENU_ITEMS["20repos"]["text"] = "Repo Admin";
5 $MENU_ITEMS["20repos"]["link"] = "$BASE_URL/admin/repos";
7 function gwvp_RepoAdminCallMe()
10 error_log("in repoadmin callme");
11 if(isset($_REQUEST["q"])) {
12 $query = $_REQUEST["q"];
13 $qspl = explode("/", $query);
14 if(isset($qspl[0]) && isset($qspl[1])) {
15 if($qspl[0] == "admin" && $qspl[1] == "repos") {
16 error_log("i got here, where next?");
20 return "gwvp_CreateRepoPage";
23 return "gwvp_DoCreateRepoPage";
26 return "gwvp_RepoAdminPage";
29 return "gwvp_RepoAdminPage";
39 function gwvp_RepoAdminPage()
41 gwvp_goMainPage("gwvp_RepoAdminPageBody");
44 function gwvp_CreateRepoPage()
46 gwvp_goMainPage("gwvp_CreateRepoPageBody");
49 function gwvp_DoCreateRepoPage()
53 $reponame = $_REQUEST["reponame"];
54 $repodesc = $_REQUEST["repodesc"];
56 // TODO: this code is bollocks, need to redo
57 if(gwvp_repoExists($reponame)) {
58 gwvp_SendMessage("error", "a repository with the name <b>\"$reponame\"</b> already exists");
59 //header("Location: $BASE_URL/admin/repos/create?reponameobv=$reponame&repodescobv=$repodesc");
60 } else if($_FILES["bundlefile"]["size"] > 0) { // if(isset($_FILES["bundlefile"]["size"])) <--- this needs to happen here TODO
61 error_log("bundle file tmpname is ".$_FILES["bundlefile"]["tmp_name"]);
62 gwvp_createGitRepo($reponame, $_FILES["bundlefile"]["tmp_name"]);
63 gwvp_SendMessage("info", "Repo, $reponame, created");
64 } else if(gwvp_createGitRepo($reponame)) {
65 gwvp_SendMessage("info", "Repo, $reponame, created");
67 header("Location: $BASE_URL/admin/repos");
72 function gwvp_CreateRepoPageBody()
74 global $BASE_URL, $repo_base;
79 if(isset($_REQUEST["reponameobv"])) $reponameobv = $_REQUEST["reponameobv"];
80 if(isset($_REQUEST["repodescobv"])) $repodescobv = $_REQUEST["repodescobv"];
82 echo "<h2>Create a Repo</h2>";
83 echo "<form method=\"post\" enctype=\"multipart/form-data\" action=\"$BASE_URL/admin/repos/docreate\">";
85 echo "<tr><td>Repository Name</td><td bgcolor=\"#eeeeee\"><input type=\"text\" name=\"reponame\" value=\"$reponameobv\"></td></tr>";
86 echo "<tr><td>Repository Description</td><td bgcolor=\"#eeeeee\"><input type=\"text\" name=\"repodesc\" value=\"$repodescobv\"></td></tr>";
87 echo "<tr><td>Repository Bundle</td><td bgcolor=\"#eeeeee\"><input type=\"file\" name=\"bundlefile\"></td><td><i>Create a bundle for pro-creating the git repository (export your git bundle with \"git bundle create /tmp/filename --branches\")</i></td></tr>";
89 echo "<tr><td>Default Permisison Set</td><td bgcolor=\"#eeeeee\">";
92 echo "<tr><td><input type=\"checkbox\" name=\"permsall\" checked></td><td>Anyone Can Read, Only you can write</td></tr>";
93 echo "<tr><td><input type=\"checkbox\" name=\"permsmeonly\"></td><td>Anyone can see the repository exists, but only you can read or write to it</td></tr>";
94 echo "<tr><td><input type=\"checkbox\" name=\"permsinvisible\"></td><td>Repository only visible to you</td></tr>";
98 echo "</td><td><i>Permissions can be changed in repository management later</i></td></tr>";
106 echo "<input type=\"submit\" name=\"create\" value=\"Create\"><br>";
110 function gwvp_RepoAdminPageBody()
112 // first we need a menu
115 echo "<h2>Repo Management</h2>";
116 echo "<a href=\"$BASE_URL/admin/repos/create\">Create a Repo</a><br>";
119 // next we need a repo list - with perms checking - ug
120 // i must also remember that the home page will also contain a list of repos and that this page is solely for maintance
121 // and creation of repos - so i dont need to get over-worked about the info stored on this page outside of those activities
122 $rlist = gwvp_GetRepoList();
123 echo "<table border=\"1\"><tr><th>Repo Name</th><th>Repo Description</th><th>Repo Owner</th><th>Control</th></tr>";
124 foreach($rlist as $u_res) {
126 $rname = $u_res["name"];
127 $rdesc = $u_res["description"];
128 $rown = gwvp_getUserName($u_res["owner"]);
129 echo "<tr><td>$rname</td><td>$rdesc</td><td>$rown</td><td><a href=\"$BASE_URL/admin/repos/modify/$rid\">Modify</a></td></tr>";