7a0b10c4ec8af8a334b874eb67d12b657b41058c
[gwvp.git] / gwvplib / gwvprepoadmin.php
1 <?php
2 $CALL_ME_FUNCTIONS["repoadmin"] = "gwvp_RepoAdminCallMe";
3
4 $MENU_ITEMS["20repos"]["text"] = "Repo Admin";
5 $MENU_ITEMS["20repos"]["link"] = "$BASE_URL/admin/repos";
6
7 function gwvp_RepoAdminCallMe()
8 {
9         
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?");
17                                 if(isset($qspl[2])) {
18                                         switch($qspl[2]) {
19                                                 case "create":
20                                                         return "gwvp_CreateRepoPage";
21                                                         break;
22                                                 case "docreate":
23                                                         return "gwvp_DoCreateRepoPage";
24                                                         break;
25                                                 default:
26                                                         return "gwvp_RepoAdminPage";
27                                         }                                       
28                                 } else {
29                                         return "gwvp_RepoAdminPage";
30                                 }
31                         }
32                 } 
33                 else return false;
34         }
35         
36         return false;
37 }
38
39 function gwvp_RepoAdminPage()
40 {
41         gwvp_goMainPage("gwvp_RepoAdminPageBody");
42 }
43
44 function gwvp_CreateRepoPage()
45 {
46         gwvp_goMainPage("gwvp_CreateRepoPageBody");
47 }
48
49 function gwvp_DoCreateRepoPage()
50 {
51         global $BASE_URL;
52         
53         $reponame = $_REQUEST["reponame"];
54         $repodesc = $_REQUEST["repodesc"];
55         
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");
66         }
67         header("Location: $BASE_URL/admin/repos");
68         
69         
70 }
71
72 function gwvp_CreateRepoPageBody()
73 {
74         global $BASE_URL, $repo_base;
75         
76         $reponameobv = "";
77         $repodescobv = "";
78         
79         if(isset($_REQUEST["reponameobv"])) $reponameobv = $_REQUEST["reponameobv"];
80         if(isset($_REQUEST["repodescobv"])) $repodescobv = $_REQUEST["repodescobv"];
81         
82         echo "<h2>Create a Repo</h2>";
83         echo "<form method=\"post\" enctype=\"multipart/form-data\" action=\"$BASE_URL/admin/repos/docreate\">";
84         echo "<table>";
85         echo "<tr><td>Repository Name</td><td><input type=\"text\" name=\"reponame\" value=\"$reponameobv\"></td></tr>";
86         echo "<tr><td>Repository Description</td><td><input type=\"text\" name=\"repodesc\" value=\"$repodescobv\"></td></tr>";
87         echo "<tr><td>Repository Bundle</td><td><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>";
88         echo "</table>";
89         echo "<input type=\"submit\" name=\"create\" value=\"Create\"><br>";
90         echo "</form>";
91 }
92
93 function gwvp_RepoAdminPageBody()
94 {
95         // first we need a menu
96         global $BASE_URL;
97         
98         echo "<h2>Repo Management</h2>";
99         echo "<a href=\"$BASE_URL/admin/repos/create\">Create a Repo</a><br>";
100         
101         
102         // next we need a repo list - with perms checking - ug
103         // i must also remember that the home page will also contain a list of repos and that this page is solely for maintance
104         // and creation of repos - so i dont need to get over-worked about the info stored on this page outside of those activities
105         $rlist = gwvp_GetRepoList();
106         echo "<table border=\"1\"><tr><th>Repo Name</th><th>Repo Description</th><th>Repo Owner</th></tr>";
107         foreach($rlist as $u_res) {
108                 $rname = $u_res["name"];
109                 $rdesc = $u_res["description"];
110                 $rown = $u_res["owner"];
111                 echo "<tr><td>$rname</td><td>$rdesc</td><td>$rown</td></tr>";
112         }
113         echo "</table>";
114         
115         return;
116 }
117
118
119
120 ?>