Git Repositories

Improve styles in repository edition and about page. v1.0
authorCyrille Pontvieux <jrd@enialis.net>
Mon, 15 Dec 2014 02:36:43 +0000 (02:36 +0000)
committerCyrille Pontvieux <jrd@enialis.net>
Mon, 15 Dec 2014 02:36:43 +0000 (02:36 +0000)
src/about.php
src/admin-users.php
src/repo-edit.php
src/repo-info.php
src/repo-list.php
src/repo-users.php

index 2fea3f8..e007bd9 100644 (file)
@@ -2,6 +2,19 @@
 require_once('include.inc.php');
 $cat = 'about';
 require('header.inc.php');
-echo "<h1>About</h1>\n";
-require('footer.inc.php');
 ?>
+<div class="jumbotron">
+  <h1>Simple Git Host</h1>
+  <p>A simple way to host git projects, without too many dependencies.</p>
+  <dl class="dl-horizontal">
+    <dt>URL</dt>
+    <dd><ul class="list-inline"><li><a href="https://github.com/jrd/simple-git-host" target="github">Github</a></li><li><a href="http://git.enialis.net/info/simple-git-host" target="enialis">Enialis</a></li></ul></dd>
+    <dt>Version</dt>
+    <dd><?php readfile('.version'); ?></dd>
+    <dt>By</dt>
+    <dd><?php readfile('.copyright'); ?></dd>
+    <dt>License</dt>
+    <dd><?php readfile('.license'); ?></dd>
+  </dl>
+</div>
+<?php require('footer.inc.php'); ?>
index 2044d06..273b000 100644 (file)
@@ -29,7 +29,7 @@ require('header.inc.php');
 <?php
 $users = gitrepoinfo('list-users');
 foreach ($users as $user) {
-  $actions = "<a href=\"".url('user-del', 'user', $user)."\" onclick=\"return confirm('Êtes-vous sûr de vouloir supprimer l\'utilisateur \'$user\' ?');\">Supprimer</a>";
+  $actions = "<a href=\"".url('user-del', 'user', $user)."\" onclick=\"return confirm('Êtes-vous sûr de vouloir supprimer l\'utilisateur \'$user\' ?');\"><span class=\"glyphicon glyphicon-trash\" aria-hidden=\"true\"></span>&nbsp;Supprimer</a>";
   echo "        <tr><td>$user</td><td class=\"actions\">$actions</td></tr>\n";
 }
 ?>
index 542a644..f91a95c 100644 (file)
@@ -6,17 +6,12 @@ if (empty($vars['repo'])) {
   $repo = $vars['repo'];
 }
 redirectifnotrepoadmin($repo);
-$errorMsgDesc = '';
-$errorMsgConfig = '';
-$errorMsgExport = '';
-$errorMsgSyncTo = '';
-$errorMsgSyncFrom = '';
 $redirect = false;
 if (isset($_POST['submit_repo_desc'])) {
   $fDesc = $_POST['new-desc'];
   $res = gitrepoinfo('set', $repo, 'description', $fDesc);
   if ($res === false) {
-    $errorMsgDesc = "La description n'a pas pu être appliquée.";
+    $errorMsg = "La description n'a pas pu être appliquée.";
   } else {
     $redirect = true;
   }
@@ -25,7 +20,7 @@ if (isset($_POST['submit_repo_desc'])) {
   $fValue = $_POST['new-value'];
   $res = gitrepoinfo('set', $repo, $fOption, $fValue);
   if ($res === false) {
-    $errorMsgConfig = "L'option n'a pas pu être appliquée.";
+    $errorMsg = "L'option n'a pas pu être appliquée.";
   } else {
     $redirect = true;
   }
@@ -33,7 +28,7 @@ if (isset($_POST['submit_repo_desc'])) {
   $fExport = $_POST['new-export'] == 'on' ? 'on' : 'off';
   $res = gitrepoinfo('export', $repo, $fExport);
   if ($res === false) {
-    $errorMsgExport = "L'export n'a pas pu être appliqué.";
+    $errorMsg = "L'export n'a pas pu être appliqué.";
   } else {
     $redirect = true;
   }
@@ -41,14 +36,14 @@ if (isset($_POST['submit_repo_desc'])) {
   $fUrl = $_POST['new-syncto-url'];
   $res = gitrepoinfo('sync', $repo, 'to', $fUrl);
   if ($res === false) {
-    $errorMsgSyncTo = "L'url n'a pas pu être ajoutée.";
+    $errorMsg = "L'url n'a pas pu être ajoutée.";
   } else {
     $redirect = true;
   }
 } else if (isset($_POST['submit_repo_syncto_deploy'])) {
   $res = gitrepoinfo('deploy-key', $repo);
   if ($res === false) {
-    $errorMsgSyncTo = "La clé de déploiement n'a pas pu être ajoutée.";
+    $errorMsg = "La clé de déploiement n'a pas pu être ajoutée.";
   } else {
     $redirect = true;
   }
@@ -60,7 +55,7 @@ if (isset($_POST['submit_repo_desc'])) {
   $fUrl = $_POST['new-syncfrom-url'];
   $res = gitrepoinfo('sync', $repo, 'from', $fUrl);
   if ($res === false) {
-    $errorMsgSyncFrom = "L'url n'a pas pu être ajoutée.";
+    $errorMsg = "L'url n'a pas pu être ajoutée.";
   } else {
     $redirect = true;
   }
@@ -79,107 +74,108 @@ $exportok = file_exists("$gitdir/$repo.git/git-daemon-export-ok");
 $repoadmin = true;
 require('repo-nav.inc.php');
 ?>
-    <div id="desc">
-      <div class="error"><?php echo $errorMsgDesc; ?></div>
-      <form id="repo-edit-desc" action="" method="POST">
-        <fieldset>
-          <legend>Description</legend>
+    <div class="panel panel-info">
+      <div class="panel-heading">Description de <strong><?php echo $repo; ?></strong> :</div>
+      <div class="panel-body">
+        <form id="repo-edit-desc" action="" method="POST">
           <label for="new-desc">Description :</label>&nbsp;<input type="text" name="new-desc" id="new-desc" value="<?php echo htmlspecialchars(file_get_contents("$gitdir/$repo.git/description")); ?>"/>
           <input type="submit" name="submit_repo_desc" value="Mettre à jour la description"/>
-        </fieldset>
-      </form>
+        </form>
+      </div>
     </div>
-    <div id="config">
-      <div class="invite">Configuration de <span><?php echo $repo; ?></span> :</div>
-      <pre>
+    <div class="panel panel-info">
+      <div class="panel-heading">Configuration de <strong><?php echo $repo; ?></strong> :</div>
+      <div class="panel-body">
+        <pre>
 <?php
   $cfg = file_get_contents("$gitdir/$repo.git/config");
   echo preg_replace('/[ \t][ \t]*/', '  ', $cfg);
 ?>
-      </pre>
-      <div class="error"><?php echo $errorMsgConfig; ?></div>
-      <form id="repo-edit-config" action="" method="POST">
-        <fieldset>
-          <legend>Changer/Ajouter une option de config</legend>
-          <label for="new-option">Config option :</label>&nbsp;<input type="text" name="new-option" id="new-option" value=""/>
-          <label for="new-value">Config value :</label>&nbsp;<input type="text" name="new-value" id="new-value" value=""/>
-          <input type="submit" name="submit_repo_config" value="Mettre à jour l'option de configuration"/>
-        </fieldset>
-      </form>
+        </pre>
+        <form id="repo-edit-config" action="" method="POST">
+          <fieldset>
+            <legend>Changer/Ajouter une option de config</legend>
+            <label for="new-option">Config option :</label>&nbsp;<input type="text" name="new-option" id="new-option" value=""/>
+            <label for="new-value">Config value :</label>&nbsp;<input type="text" name="new-value" id="new-value" value=""/>
+            <input type="submit" name="submit_repo_config" value="Mettre à jour l'option de configuration"/>
+          </fieldset>
+        </form>
+      </div>
     </div>
-    <?php if (!empty($gitwebpath)) { ?>
-    <?php $isExport = file_exists("$gitdir/$repo.git/git-daemon-export-ok") ? 'checked="checked"' : ''; ?>
-    <div id="export">
-      <div class="error"><?php echo $errorMsgExport; ?></div>
-      <form id="repo-edit-export" action="" method="POST">
-        <fieldset>
-          <legend>Gitweb</legend>
+    <div class="panel panel-default">
+      <div class="panel-heading">Visibilité de <strong><?php echo $repo; ?></strong> :</div>
+      <div class="panel-body">
+        <?php $isExport = file_exists("$gitdir/$repo.git/git-daemon-export-ok") ? 'checked="checked"' : ''; ?>
+        <form id="repo-edit-export" action="" method="POST">
           <label for="new-export">Anonymous read-only access :</label>&nbsp;<input type="checkbox" name="new-export" id="new-export" value="on" <?php echo $isExport; ?>/>
           <input type="submit" name="submit_repo_export" value="Mettre à jour l'option d'export lecture-seule"/>
-        </fieldset>
-      </form>
+        </form>
+      </div>
     </div>
-    <?php } ?>
-    <div id="syncto">
-      <div class="error"><?php echo $errorMsgSyncTo; ?></div>
-      <div class="invite">This repo is synchronized to :</div>
-      <table>
-        <tr>
-          <th class="name">Url</th>
-          <th class="actions">Actions</th>
-        </tr>
-<?php
-  $urls = gitrepoinfo('listsync', $repo, 'to');
-  foreach ($urls as $url) {
-    echo "        <tr>\n";
-    echo "          <td class=\"name\">$url</td>\n";
-    echo "          <td class=\"actions\"><a class=\"delete\" href=\"?delete=syncto&url=$url\" onclick=\"return confirm('Êtes-vous sûr de vouloir supprimer cette url ?');\">Supprimer</a></td>\n";
-    echo "        </tr>\n";
-  }
-?>
-      </table>
-      <form id="repo-syncto-add" action="" method="POST">
-        <fieldset>
-          <legend>Ajouter une URL vers laquelle se synchroniser</legend>
-          <label for="new-syncto-url">URL :</label>&nbsp;<input type="text" name="new-syncto-url" id="new-syncto-url" value=""/>
-          <input type="submit" name="submit_repo_syncto_add" value="Ajouter l'URL"/>
-        </fieldset>
-      </form>
-      <div class="invite">Clé de déploiement :</div>
+    <div class="panel panel-default">
+      <div class="panel-heading"><strong><?php echo $repo; ?></strong> is synchronized to:</div>
+      <div class="panel-body">
+        <table class="table table-hover">
+          <thead>
+            <tr>
+              <th>Url</th>
+              <th>Actions</th>
+            </tr>
+          </thead>
+          <tbody>
+<?php $urls = gitrepoinfo('listsync', $repo, 'to'); foreach ($urls as $url) { ?>
+            <tr>
+              <td><?php echo $url; ?></td>
+              <td class="actions"><a href="?delete=syncto&url=<?php echo $url; ?>" onclick="return confirm('Êtes-vous sûr de vouloir supprimer cette url ?');"><span class="glyphicon glyphicon-trash" aria-hidden="true"></span>&nbsp;Supprimer</a></td>
+            </tr>
+<?php } ?>
+          </tbody>
+        </table>
+        <form id="repo-syncto-add" action="" method="POST">
+          <fieldset>
+            <legend>Ajouter une URL vers laquelle se synchroniser</legend>
+            <label for="new-syncto-url">URL :</label>&nbsp;<input type="text" name="new-syncto-url" id="new-syncto-url" value=""/>
+            <input type="submit" name="submit_repo_syncto_add" value="Ajouter l'URL"/>
+          </fieldset>
+        </form>
+        <h4>Clé de déploiement :</h4>
 <?php
   if (file_exists("$gitdir/$repo.git/id_rsa.pub")) {
     $deploy = file_get_contents("$gitdir/$repo.git/id_rsa.pub");
-    echo "<div><em>$deploy</em></div>\n";
+    echo "<p class=\"well\" style=\"word-break: break-all;\">$deploy</p>";
   } else {
-    echo "<form id=\"repo-syncto-deploy\" action=\"\" method=\"POST\"><input type=\"submit\" name=\"submit_repo_syncto_deploy\" value=\"Générer une clé de déploiement\"/></form>\n";
+    echo '<form action="" method="POST"><input type="submit" name="submit_repo_syncto_deploy" value="Générer une clé de déploiement"/></form>';
   }
 ?>
+      </div>
     </div>
-    <div id="syncfrom">
-      <div class="error"><?php echo $errorMsgSyncFrom; ?></div>
-      <div class="invite">This repo is synchronized from :</div>
-      <table>
-        <tr>
-          <th class="name">Url</th>
-          <th class="actions">Actions</th>
-        </tr>
-<?php
-  $urls = gitrepoinfo('listsync', $repo, 'from');
-  foreach ($urls as $url) {
-    echo "        <tr>\n";
-    echo "          <td class=\"name\">$url</td>\n";
-    echo "          <td class=\"actions\"><a class=\"delete\" href=\"?delete=syncfrom&url=$url\" onclick=\"return confirm('Êtes-vous sûr de vouloir supprimer cette url ?');\">Supprimer</a></td>\n";
-    echo "        </tr>\n";
-  }
-?>
-      </table>
-      <p>Url to trigger synchronization: <a class="text" href="/<?php echo $gitwebroot;?>post-update.php">post-update.php</a></p>
-      <form id="repo-syncfrom-add" action="" method="POST">
-        <fieldset>
-          <legend>Ajouter une URL depuis laquelle se synchroniser</legend>
-          <label for="new-syncfrom-url">URL :</label>&nbsp;<input type="text" name="new-syncfrom-url" id="new-syncfrom-url" value=""/>
-          <input type="submit" name="submit_repo_syncfrom_add" value="Ajouter l'URL"/>
-        </fieldset>
-      </form>
+    <div class="panel panel-default">
+      <div class="panel-heading"><strong><?php echo $repo; ?></strong> is synchronized from:</div>
+      <div class="panel-body">
+        <table class="table table-hover">
+          <thead>
+            <tr>
+              <th>Url</th>
+              <th>Actions</th>
+            </tr>
+          </thead>
+          <tbody>
+<?php $urls = gitrepoinfo('listsync', $repo, 'from'); foreach ($urls as $url) { ?>
+            <tr>
+              <td><?php echo $url; ?></td>
+              <td class="actions"><a href="?delete=syncfrom&url=<?php echo $url; ?>" onclick="return confirm('Êtes-vous sûr de vouloir supprimer cette url ?');"><span class="glyphicon glyphicon-trash" aria-hidden="true"></span>&nbsp;Supprimer</a></td>
+            </tr>
+<?php } ?>
+          </tbody>
+        </table>
+        <p class="well">Url to trigger synchronization: <a class="text" href="/<?php echo $gitwebroot;?>post-update.php">post-update.php</a></p>
+        <form id="repo-syncfrom-add" action="" method="POST">
+          <fieldset>
+            <legend>Ajouter une URL depuis laquelle se synchroniser</legend>
+            <label for="new-syncfrom-url">URL :</label>&nbsp;<input type="text" name="new-syncfrom-url" id="new-syncfrom-url" value=""/>
+            <input type="submit" name="submit_repo_syncfrom_add" value="Ajouter l'URL"/>
+          </fieldset>
+        </form>
+      </div>
     </div>
 <?php require('footer.inc.php'); ?>
index 527d722..6732785 100644 (file)
@@ -85,7 +85,7 @@ require('repo-nav.inc.php');
         <div class="panel panel-default">
           <div class="panel-heading">URL</div>
           <div class="panel-body">
-            <div class="uri uri-ssh"><?php echo "$gituser@$githost:$repo.git"; ?></div>
+          <?php if ($logged) { ?><div class="uri uri-ssh"><?php echo "$gituser@$githost:$repo.git"; ?></div><?php } ?>
             <?php if (file_exists("$gitdir/$repo.git/git-daemon-export-ok")) { ?>
               <div class="uri uri-git"><?php echo "git://$githost/$repo.git"; ?></div>
               <?php $httpurl = sprintf("%s://%s/{$gitwebroot}readonly/%s.git", isset($_SERVER['HTTPS']) ? 'https' : 'http', $_SERVER['HTTP_HOST'], $repo); ?>
index 186c608..d619c81 100644 (file)
@@ -90,12 +90,14 @@ foreach ($files as $file) {
     }
     $actions .= "&nbsp;<a href=\"".url('repo-users', 'repo', $proj)."\"><span class=\"glyphicon glyphicon-user\" aria-hidden=\"true\"></span>&nbsp;Utilisateurs</a>";
     if ($admin || $right == 'admin') {
-      $actions .= "&nbsp;<a class=\"edit\" href=\"".url('repo-edit', 'repo', $proj)."\"><span class=\"glyphicon glyphicon-pencil\" aria-hidden=\"true\"></span>&nbsp;Éditer</a>";
-      $actions .= "&nbsp;<a class=\"delete\" href=\"".url('repo-del', 'repo', $proj)."\" onclick=\"return confirm('Êtes-vous sûr de vouloir supprimer le dépôt \'$proj\' ?');\"><span class=\"glyphicon glyphicon-trash\" aria-hidden=\"true\"></span>&nbsp;Supprimer</a>";
+      $actions .= "&nbsp;<a href=\"".url('repo-edit', 'repo', $proj)."\"><span class=\"glyphicon glyphicon-pencil\" aria-hidden=\"true\"></span>&nbsp;Éditer</a>";
+      $actions .= "&nbsp;<a href=\"".url('repo-del', 'repo', $proj)."\" onclick=\"return confirm('Êtes-vous sûr de vouloir supprimer le dépôt \'$proj\' ?');\"><span class=\"glyphicon glyphicon-trash\" aria-hidden=\"true\"></span>&nbsp;Supprimer</a>";
     }
     $name = $proj;
     echo "        <tr><td title=\"$desc\"><a href=\"".url('repo-info', 'repo', $proj)."\">$name</a></td><td class=\"address\">";
-    echo "<div class=\"uri uri-ssh\">$gituser@$githost:$file</div>";
+    if ($logged) {
+      echo "<div class=\"uri uri-ssh\">$gituser@$githost:$file</div>";
+    }
     if ($exportok) {
       echo "<div class=\"uri uri-git\">git://$githost/$file</div>";
       $httpurl = sprintf("%s://%s/{$gitwebroot}readonly/%s", isset($_SERVER['HTTPS']) ? 'https' : 'http', $_SERVER['HTTP_HOST'], $file);
index dff2791..df9de18 100644 (file)
@@ -22,16 +22,15 @@ require('repo-nav.inc.php');
 ?>
     <div id="users">
       <h3>Les membres de <strong><?php echo $repo; ?></strong> :</h3>
-      <div class="table-responsive">
-        <table class="table table-hover">
-          <thead>
-            <tr>
-              <th>Utilisateur</th>
-              <th>Droit</th>
-              <th>Actions</th>
-            </tr>
-          </thead>
-          <tbody>
+      <table class="table table-hover">
+        <thead>
+          <tr>
+            <th>Utilisateur</th>
+            <th>Droit</th>
+            <th>Actions</th>
+          </tr>
+        </thead>
+        <tbody>
 <?php
 $members = array();
 foreach (gitrepoinfo('show-users', $repo) as $userinfo) {
@@ -40,19 +39,20 @@ foreach (gitrepoinfo('show-users', $repo) as $userinfo) {
 }
 $isExport = file_exists("$gitdir/$repo.git/git-daemon-export-ok");
 foreach ($members as $user => $right) {
+  $rightlabel = $right;
   $actions = ' — ';
-  if ($repoadmin) {
-    $actions = '<a href="' . url('repo-user-right', 'repo', $repo, 'user', $user, 'right', 'admin') . '">→ admin right</a>';
-    $actions .= '&nbsp;<a href="' . url('repo-user-right', 'repo', $repo, 'user', $user, 'right', 'user') . '">→ user right</a>';
-    $actions .= '&nbsp;<a href="' . url('repo-user-right', 'repo', $repo, 'user', $user, 'right', 'readonly') . '">→ readonly right</a>';
-    $actions .= '&nbsp;<a href="' . url('repo-user-del', 'repo', $repo, 'user', $user) . '">Retirer</a>';
+  if ($repoadmin && ($admin || $user != $username)) {
+    $rightlabel = '<div class="dropdown"><a class="dropdown-toggle" aria_expended="false" role="button" data-toggle="dropdown" href="#">' . $right . '&nbsp;<span class="caret"></a><ul class="dropdown-menu" role="menu">';
+    $rightlabel .= '<li role="presentation"><a href="' . url('repo-user-right', 'repo', $repo, 'user', $user, 'right', 'admin') . '">admin</a></li>';
+    $rightlabel .= '<li role="presentation"><a href="' . url('repo-user-right', 'repo', $repo, 'user', $user, 'right', 'user') . '">user</a></li>';
+    $rightlabel .= '<li role="presentation"><a href="' . url('repo-user-right', 'repo', $repo, 'user', $user, 'right', 'readonly') . '">readonly</a></li>';
+    $actions = '<a href="' . url('repo-user-del', 'repo', $repo, 'user', $user) . '"><span class="glyphicon glyphicon-trash" aria-hidden="true"></span>&nbsp;Retirer</a>';
   }
-  echo "        <tr><td>$user</td><td>$right</td><td class=\"actions\">$actions</td></tr>\n";
+  echo "        <tr><td>$user</td><td>$rightlabel</td><td class=\"actions\">$actions</td></tr>\n";
 }
 ?>
-          </tbody>
-        </table>
-      </div>
+        </tbody>
+      </table>
     </div>
 <?php if ($repoadmin) { ?>
     <form id="repo-add-user" action="" method="POST">