A gitsrht/templates/settings.html => gitsrht/templates/settings.html +20 -0
@@ 0,0 1,20 @@
+{% extends "layout.html" %}
+
+{% block body %}
+<div class="header-tabbed">
+ <div class="container">
+ <h2>
+ <a href="/{{ owner.canonical_name }}">{{ owner.canonical_name }}</a>/<wbr
+ >{{ repo.name }}
+ </h2>
+ <ul class="nav nav-tabs">
+ {% block tabs %}
+ {% include "settingstabs.html" %}
+ {% endblock %}
+ </div>
+ </div>
+</div>
+<div class="container">
+ {% block content %}{% endblock %}
+</div>
+{% endblock %}
A gitsrht/templates/settings_access.html => gitsrht/templates/settings_access.html +99 -0
@@ 0,0 1,99 @@
+{% extends "settings.html" %}
+
+{% block content %}
+<div class="row">
+ <div class="col-md-12">
+ {% if len(repo.access_grants) > 0 %}
+ <table class="table">
+ <thead>
+ <tr>
+ <th>user</th>
+ <th>granted</th>
+ <th>last used</th>
+ <th>access</th>
+ <th></th>
+ </tr>
+ </thead>
+ <tbody>
+ {% for grant in repo.access_grants %}
+ <tr>
+ <td>
+ <a href="/~{{ grant.user.username }}">~{{grant.user.username}}</a>
+ </td>
+ <td>{{ grant.created | date }}</td>
+ <td>{{ grant.updated | date }}</td>
+ <td>{{ grant.mode.value }}</td>
+ <td style="width: 6rem">
+ <form
+ method="POST"
+ action="/~{{owner.username}}/{{
+ repo.name
+ }}/settings/access/revoke/{{ grant.id }}"
+ >
+ {{csrf_token()}}
+ <button type="submit" class="btn btn-danger btn-fill">Revoke</button>
+ </form>
+ </td>
+ </tr>
+ {% endfor %}
+ </tbody>
+ </table>
+ {% endif %}
+ </div>
+</div>
+<div class="row">
+ <div class="col-md-8">
+ <h4>Grant Access</h4>
+ <form method="POST">
+ {{csrf_token()}}
+ <div class="form-group">
+ <label for="user">User</label>
+ <input
+ type="text"
+ class="form-control {{valid.cls("user")}}"
+ id="user"
+ name="user"
+ placeholder="~{{ current_user.username }}"
+ value="{{user or ""}}"
+ />
+ {{valid.summary("user")}}
+ </div>
+ <fieldset class="form-group">
+ <legend>Access</legend>
+ <!-- This is in a weird spot cause it looks better over here -->
+ <button type="submit" class="btn btn-primary pull-right">
+ Grant access {{icon("caret-right")}}
+ </button>
+ <div class="form-check form-check-inline">
+ <label
+ class="form-check-label"
+ title="Can view on the web and clone the repository"
+ >
+ <input
+ class="form-check-input"
+ type="radio"
+ name="access"
+ value="ro"
+ {{ "checked" if not access or access.value == "ro" else "" }}
+ > Read only
+ </label>
+ </div>
+ <div class="form-check form-check-inline">
+ <label
+ class="form-check-label"
+ title="Can push commits to the repository"
+ >
+ <input
+ class="form-check-input"
+ type="radio"
+ name="access"
+ value="rw"
+ {{ "checked" if access and access.value == "rw" else "" }}
+ > Read/write
+ </label>
+ </div>
+ </fieldset>
+ </form>
+ </div>
+</div>
+{% endblock %}
A gitsrht/templates/settings_delete.html => gitsrht/templates/settings_delete.html +23 -0
@@ 0,0 1,23 @@
+{% extends "settings.html" %}
+
+{% block content %}
+<div class="row">
+ <div class="col-md-12">
+ <p>
+ This will permanently delete your repository,
+ <strong>{{ owner.canonical_name }}/{{ repo.name }}</strong>.
+ This cannot be undone.
+ </p>
+ <form method="POST">
+ {{csrf_token()}}
+ <button type="submit" class="btn btn-danger">
+ Delete {{repo.name}} {{icon("caret-right")}}
+ </button>
+ <a
+ href="/{{ owner.canonical_name }}/{{ repo.name }}"
+ class="btn btn-default"
+ >Nevermind</a>
+ </form>
+ </div>
+</div>
+{% endblock %}
A gitsrht/templates/settings_rename.html => gitsrht/templates/settings_rename.html +32 -0
@@ 0,0 1,32 @@
+{% extends "settings.html" %}
+
+{% block content %}
+<div class="row">
+ <div class="col-md-6">
+ <h3>Rename Repository</h3>
+ <form method="POST">
+ {{csrf_token()}}
+ <div class="form-group">
+ <label for="name" style="display: block">
+ New repository name:
+ </label>
+ <input
+ type="text"
+ class="form-control {{valid.cls('name')}}"
+ id="name"
+ name="name"
+ value="{{name or repo.name}}" />
+ {{valid.summary('name')}}
+ </div>
+ <p>
+ This will change the canonical URL of your repository. A redirect from
+ the old URL to the new one will be in place until you create another
+ repository with the same name.
+ </p>
+ <button type="submit" class="btn btn-primary pull-right">
+ Rename repository {{icon("caret-right")}}
+ </button>
+ </form>
+ </div>
+</div>
+{% endblock %}
A gitsrht/templates/settingstabs.html => gitsrht/templates/settingstabs.html +30 -0
@@ 0,0 1,30 @@
+{% macro link(path, title) %}
+<a
+ class="nav-link {% if request.path.endswith(path) %}active{% endif %}"
+ href="/{{ owner.canonical_name }}/{{ repo.name }}/settings{{ path }}"
+>{{ title }}</a>
+{% endmacro %}
+
+<li class="nav-item">
+ <a
+ class="nav-link"
+ href="/{{ owner.canonical_name }}/{{ repo.name }}"
+ >
+ {{icon("caret-left")}} back
+ </a>
+</li>
+{% if request.path.endswith("/rename") %}
+<li class="nav-item">
+ {{ link("/rename", "rename") }}
+</li>
+{% endif %}
+<li class="nav-item">
+ {{ link("/info", "info") }}
+</li>
+<li class="nav-item">
+ {{ link("/access", "access") }}
+</li>
+{% block extratabs %}{% endblock %}
+<li class="nav-item">
+ {{ link("/delete", "delete") }}
+</li>
A gitsrht/templates/user.html => gitsrht/templates/user.html +84 -0
@@ 0,0 1,84 @@
+{% extends "base.html" %}
+
+{% block content %}
+<div class="container">
+ <div class="row">
+ <section class="col-md-4">
+ <h2>
+ ~{{ user.username }}
+ </h2>
+ {% if user.location %}
+ <p>{{user.location}}</p>
+ {% endif %}
+ {% if user.url %}
+ <p>
+ <a
+ href="{{user.url}}"
+ target="_blank"
+ rel="me noopener noreferrer nofollow"
+ >{{user.url}}</a>
+ </p>
+ {% endif %}
+ {% if user.bio %}
+ {{user.bio | md}}
+ {% endif %}
+ {% if notice %}
+ <div class="alert alert-success">
+ {{ notice }}
+ </div>
+ {% endif %}
+ </section>
+ <section class="col-md-8">
+ {% if len(repos) == 0 %}
+ {% if search %}
+ <form>
+ <input
+ name="search"
+ type="text"
+ placeholder="Search"
+ class="form-control"
+ value="{{ search if search else "" }}" />
+ </form>
+ <p>Nothing found.</p>
+ {% else %}
+ <p>This user has no repositories.</p>
+ {% endif %}
+ {% else %}
+ <form>
+ <input
+ name="search"
+ type="text"
+ placeholder="Search"
+ class="form-control{% if search_error %} is-invalid{% endif %}"
+ value="{{ search if search else "" }}" />
+ {% if search_error %}
+ <div class="invalid-feedback">{{ search_error }}</div>
+ {% endif %}
+ </form>
+ <div class="event-list">
+ {% for repo in repos %}
+ <div class="event">
+ <h4>
+ <a href="/~{{user.username}}/{{repo.name}}">
+ ~{{user.username}}/{{repo.name}}
+ </a>
+ {% if repo.visibility.value != 'public' %}
+ <small class="pull-right">
+ {{ repo.visibility.value }}
+ </small>
+ {% endif %}
+ </h4>
+ {% if repo.description %}
+ <p>{{ repo.description }}</p>
+ {% endif %}
+ <p>
+ </p>
+ </div>
+ {% endfor %}
+ </div>
+ {% endif %}
+ {{ pagination() }}
+ </section>
+ </div>
+</div>
+{% endblock %}