summaryrefslogtreecommitdiff
path: root/web
diff options
context:
space:
mode:
authorMax Magorsch <arzano@gentoo.org>2020-12-08 01:21:04 +0000
committerMax Magorsch <arzano@gentoo.org>2020-12-08 01:21:04 +0000
commitba76c05ceca6a7879678873f360cdaf575f0f493 (patch)
tree597f2ee142ca4e57f1daffd29286e533c10a397a /web
downloadgo-gentoo-ba76c05ceca6a7879678873f360cdaf575f0f493.tar.gz
go-gentoo-ba76c05ceca6a7879678873f360cdaf575f0f493.tar.bz2
go-gentoo-ba76c05ceca6a7879678873f360cdaf575f0f493.zip
Initial version
Signed-off-by: Max Magorsch <arzano@gentoo.org>
Diffstat (limited to 'web')
-rw-r--r--web/templates/admin/show.tmpl121
-rw-r--r--web/templates/layout/footer.tmpl51
-rw-r--r--web/templates/layout/head.tmpl12
-rw-r--r--web/templates/layout/header.tmpl6
-rw-r--r--web/templates/layout/sitetitle.tmpl37
-rw-r--r--web/templates/layout/tyriannav.tmpl34
-rw-r--r--web/templates/links/create.tmpl81
-rw-r--r--web/templates/links/created.tmpl52
-rw-r--r--web/templates/links/show.tmpl173
9 files changed, 567 insertions, 0 deletions
diff --git a/web/templates/admin/show.tmpl b/web/templates/admin/show.tmpl
new file mode 100644
index 0000000..2dbbb78
--- /dev/null
+++ b/web/templates/admin/show.tmpl
@@ -0,0 +1,121 @@
+<!DOCTYPE html>
+<html lang="en">
+{{template "head" .}}
+<body>
+{{template "header" .}}
+
+<div class="container mb-5">
+ <div class="row">
+ <div class="col-12">
+
+ <h2 class="mt-4"><span style="font-family: monospace;">/</span></h2>
+
+ {{$empty := true}}
+
+ <table class="table">
+ <colgroup>
+ <col span="1" style="width: 20%;">
+ <col span="1" style="width: 60%;">
+ <col span="1" style="width: 10%;">
+ <col span="1" style="width: 5%;">
+ <col span="1" style="width: 5%;">
+ </colgroup>
+ <thead>
+ <tr>
+ <th scope="col">Short URL</th>
+ <th scope="col">Target</th>
+ <th scope="col">Creator</th>
+ <th scope="col">Hits</th>
+ <th scope="col">Action</th>
+ </tr>
+ </thead>
+ <tbody>
+ {{$empty = true}}
+ {{range .UserLinks}}
+ {{if eq .Prefix ""}}
+ {{$empty = false}}
+ <tr>
+ <th scope="row"><a class="text-dark" href="{{.ShortLink}}">go.gentoo.org{{.ShortLink}}</a></th>
+ <td><a class="text-dark" href="{{.TargetLink}}">{{.TargetLink}}</a></td>
+ <td>{{replaceAll .UserEmail "@gentoo.org" ""}}</td>
+ <td>{{.Hits}}</td>
+ <td>
+ <form action="/links/delete" method="post">
+ <input hidden name="prefix" value="{{.Prefix}}">
+ <input hidden name="token" value="{{.URLToken}}">
+ <input hidden name="from" value="/admin/">
+ <button type="submit" class="btn btn-link py-0 text-dark">
+ <i class="fa fa-trash-o" aria-hidden="true"></i>
+ </button>
+ </form>
+ </td>
+ </tr>
+ {{end}}
+ {{end}}
+ {{if $empty}}
+ <tr>
+ <td colspan="4" class="text-center"><i>No shortened URLs yet</i></td>
+ </tr>
+ {{end}}
+ </tbody>
+ </table>
+
+
+ {{range $index, $project := getPrefixList .UserLinks}}
+ <h2 class="mt-5"><span style="font-family: monospace;">/{{$project}}/</span></h2>
+
+ <table class="table">
+ <colgroup>
+ <col span="1" style="width: 20%;">
+ <col span="1" style="width: 65%;">
+ <col span="1" style="width: 10%;">
+ <col span="1" style="width: 5%;">
+ </colgroup>
+ <thead>
+ <tr>
+ <th scope="col">Short URL</th>
+ <th scope="col">Target</th>
+ <th scope="col">Creator</th>
+ <th scope="col">Action</th>
+ </tr>
+ </thead>
+ <tbody>
+ {{$empty = true}}
+ {{range $.UserLinks}}
+ {{if eq .Prefix $project}}
+ {{$empty = false}}
+ <tr>
+ <th scope="row"><a class="text-dark" href="{{.ShortLink}}">go.gentoo.org{{.ShortLink}}</a></th>
+ <td><a class="text-dark" href="{{.TargetLink}}">{{.TargetLink}}</a></td>
+ <td>{{replaceAll .UserEmail "@gentoo.org" ""}}</td>
+ <td>
+ <form action="/links/delete" method="post">
+ <input hidden name="prefix" value="{{.Prefix}}">
+ <input hidden name="token" value="{{.URLToken}}">
+ <input hidden name="from" value="/admin/">
+ <button type="submit" class="btn btn-link py-0 text-dark">
+ <i class="fa fa-trash-o" aria-hidden="true"></i>
+ </button>
+ </form>
+ </td>
+ </tr>
+ {{end}}
+ {{end}}
+ {{if $empty}}
+ <tr>
+ <td colspan="4" class="text-center"><i>No shortened URLs yet</i></td>
+ </tr>
+ {{end}}
+ </tbody>
+ </table>
+ {{end}}
+ </div>
+ </div>
+</div>
+
+
+{{template "footer" .}}
+
+
+</body>
+</html>
diff --git a/web/templates/layout/footer.tmpl b/web/templates/layout/footer.tmpl
new file mode 100644
index 0000000..3b5efcf
--- /dev/null
+++ b/web/templates/layout/footer.tmpl
@@ -0,0 +1,51 @@
+{{define "footer"}}
+ <footer style="background-color: #fafafa; box-shadow:none!important;">
+ <div class="container pt-4" style="border-top: 1px solid #dddddd;">
+ <div class="row d-none">
+ <div class="col-12 offset-md-2 col-md-7">
+ <h3 class="footerhead">Gentoo Packages Database</h3>
+ <div class="row">
+ <div class="col-xs-12 col-md-4">
+ </div>
+ <div class="col-xs-12 col-md-4">
+ </div>
+ <div class="col-xs-12 col-md-4">
+ </div>
+ </div>
+ </div>
+ <div class="col-12 col-md-3">
+ <h3 class="footerhead">Questions or comments?</h3>
+ Please feel free to <a href="https://www.gentoo.org/inside-gentoo/contact/">contact us</a>.
+ </div>
+ </div>
+ <div class="row">
+ <div class="col-2 col-sm-2 col-md-2">
+ <ul class="footerlinks three-icons">
+ <li><a href="https://twitter.com/gentoo" title="@Gentoo on Twitter"><span class="fa fa-twitter fa-fw"></span></a></li>
+ <li><a href="https://www.facebook.com/gentoo.org" title="Gentoo on Facebook"><span class="fa fa-facebook fa-fw"></span></a></li>
+ <li><a href="https://www.reddit.com/r/Gentoo/" title="Gentoo on Reddit"><span class="fa fa-reddit-alien fa-fw"></span></a></li>
+ </ul>
+ </div>
+ <div class="col-8 col-sm-8 col-md-8">
+ <strong>&copy; 2001&ndash;2020 Gentoo Foundation, Inc.</strong><br>
+ <small>
+ Gentoo is a trademark of the Gentoo Foundation, Inc.
+ The contents of this document, unless otherwise expressly stated, are licensed under the
+ <a href="https://creativecommons.org/licenses/by-sa/4.0/" rel="license">CC-BY-SA-4.0</a> license.
+ The <a href="https://www.gentoo.org/inside-gentoo/foundation/name-logo-guidelines.html">Gentoo Name and Logo Usage Guidelines</a> apply.
+ </small>
+ </div>
+ <div class="col-2 col-sm-2 col-md-2 text-right">
+ <strong><a class="text-dark" href="https://www.gentoo.org/inside-gentoo/contact/">Contact</a></strong><br>
+ </div>
+ </div>
+ </div>
+ </footer>
+
+ <script
+ src="https://code.jquery.com/jquery-3.5.1.slim.min.js"
+ integrity="sha256-4+XzXVhsDmqanXGHaHvgh1gMQKX40OUvDEBTu8JcmNs="
+ crossorigin="anonymous"></script>
+ <script src="https://assets.gentoo.org/tyrian/v2/popper.min.js"></script>
+ <script src="https://assets.gentoo.org/tyrian/v2/bootstrap.min.js"></script>
+{{end}}
diff --git a/web/templates/layout/head.tmpl b/web/templates/layout/head.tmpl
new file mode 100644
index 0000000..4ab796a
--- /dev/null
+++ b/web/templates/layout/head.tmpl
@@ -0,0 +1,12 @@
+{{define "head"}}
+ <head>
+ <title>Gentoo URL Shortener</title>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <meta name="theme-color" content="#54487a">
+ <meta name="description" content="Gentoo URL Shortener">
+ <link href="https://assets.gentoo.org/tyrian/v2/tyrian.min.css" rel="stylesheet" media="screen">
+ <link href="/assets/application.css" rel="stylesheet" media="screen">
+ <link rel="icon" href="https://packages.gentoo.org/favicon.ico" type="image/x-icon">
+ </head>
+{{end}}
diff --git a/web/templates/layout/header.tmpl b/web/templates/layout/header.tmpl
new file mode 100644
index 0000000..571a58b
--- /dev/null
+++ b/web/templates/layout/header.tmpl
@@ -0,0 +1,6 @@
+{{define "header"}}
+ <header>
+ {{template "sitetitle"}}
+ {{template "tyrian-navbar" .}}
+ </header>
+{{end}}
diff --git a/web/templates/layout/sitetitle.tmpl b/web/templates/layout/sitetitle.tmpl
new file mode 100644
index 0000000..bd07b34
--- /dev/null
+++ b/web/templates/layout/sitetitle.tmpl
@@ -0,0 +1,37 @@
+{{define "sitetitle"}}
+ <div class="site-title">
+ <div class="container">
+ <div class="row justify-content-between">
+ <div class="logo">
+ <a href="/" title="Back to the homepage" class="site-logo">
+ <img src="https://assets.gentoo.org/tyrian/site-logo.png" alt="Gentoo" srcset="https://assets.gentoo.org/tyrian/site-logo.svg">
+ </a>
+ <span class="site-label">URL Shortener</span>
+ </div>
+ <div class="site-title-buttons">
+ <div class="btn-group btn-group-sm">
+ <a href="https://get.gentoo.org/" role="button" class="btn get-gentoo"><span class="fa fa-fw fa-download"></span> <strong>Get Gentoo!</strong></a>
+ <div class="btn-group btn-group-sm">
+ <a class="btn gentoo-org-sites dropdown-toggle" data-toggle="dropdown" data-target="#" href="#">
+ <span class="fa fa-fw fa-map-o"></span> <span class="d-none d-sm-inline">gentoo.org sites</span> <span class="caret"></span>
+ </a>
+ <div class="dropdown-menu dropdown-menu-right">
+ <a class="dropdown-item" href="https://www.gentoo.org/" title="Main Gentoo website"><span class="fa fa-home fa-fw"></span> gentoo.org</a>
+ <a class="dropdown-item" href="https://wiki.gentoo.org/" title="Find and contribute documentation"><span class="fa fa-file-text-o fa-fw"></span> Wiki</a>
+ <a class="dropdown-item" href="https://bugs.gentoo.org/" title="Report issues and find common issues"><span class="fa fa-bug fa-fw"></span> Bugs</a>
+ <a class="dropdown-item" href="https://forums.gentoo.org/" title="Discuss with the community"><span class="fa fa-comments-o fa-fw"></span> Forums</a>
+ <a class="dropdown-item" href="https://packages.gentoo.org/" title="Find software for your Gentoo"><span class="fa fa-hdd-o fa-fw"></span> Packages</a>
+ <div class="dropdown-divider"></div>
+ <a class="dropdown-item" href="https://planet.gentoo.org/" title="Find out what's going on in the developer community"><span class="fa fa-rss fa-fw"></span> Planet</a>
+ <a class="dropdown-item" href="https://archives.gentoo.org/" title="Read up on past discussions"><span class="fa fa-archive fa-fw"></span> Archives</a>
+ <a class="dropdown-item" href="https://sources.gentoo.org/" title="Browse our source code"><span class="fa fa-code fa-fw"></span> Sources</a>
+ <div class="dropdown-divider"></div>
+ <a class="dropdown-item" href="https://infra-status.gentoo.org/" title="Get updates on the services provided by Gentoo"><span class="fa fa-server fa-fw"></span> Infra Status</a>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+{{end}}
diff --git a/web/templates/layout/tyriannav.tmpl b/web/templates/layout/tyriannav.tmpl
new file mode 100644
index 0000000..6e1de17
--- /dev/null
+++ b/web/templates/layout/tyriannav.tmpl
@@ -0,0 +1,34 @@
+{{define "tyrian-navbar"}}
+ <nav class="tyrian-navbar navbar navbar-dark navbar-expand-lg bg-primary" role="navigation">
+ <div class="container">
+ <div class="navbar-header">
+ <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar-main-collapse" aria-controls="navbar-main-collapse" aria-expanded="false" aria-label="Toggle navigation">
+ <span class="navbar-toggler-icon"></span>
+ </button>
+ </div>
+ <div class="collapse navbar-collapse navbar-main-collapse" id="navbar-main-collapse">
+ <ul class="navbar-nav mr-auto">
+ <li class="nav-item {{if eq .Tab "create"}}active{{end}}"><a class="nav-link" href="/links/create">Shorten</a></li>
+ <li class="nav-item {{if eq .Tab "show"}}active{{end}}"><a class="nav-link" href="/links/show">Your Links</a></li>
+ </ul>
+
+ <ul class="navbar-nav">
+ {{if .User.IsAdmin }}
+ <li class="nav-item {{if eq .Tab "admin"}}active{{end}}"><a class="nav-link" href="/admin/">Admin</a></li>
+ {{end}}
+ <li class="nav-item dropdown">
+ <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+ <img style="border-radius: 50%;height:20px;border: 1px solid white;margin-right:5px;" src="{{gravatar .User.Email}}" />
+ </a>
+ <div class="dropdown-menu" aria-labelledby="navbarDropdown">
+ <a class="dropdown-item disabled">Signed in as <b>{{.User.UserName}}</b></a>
+ <div class="dropdown-divider"></div>
+ <a class="dropdown-item" href="/auth/logout">Logout</a>
+ </div>
+ </li>
+ </ul>
+
+ </div>
+ </div>
+ </nav>
+{{end}}
diff --git a/web/templates/links/create.tmpl b/web/templates/links/create.tmpl
new file mode 100644
index 0000000..3644e08
--- /dev/null
+++ b/web/templates/links/create.tmpl
@@ -0,0 +1,81 @@
+<!DOCTYPE html>
+<html lang="en">
+{{template "head" .}}
+<body>
+{{template "header" .}}
+
+<div class="container mb-5 h-100">
+ <div class="row align-items-center h-100">
+ <div class="col-12 pb-5 mb-5">
+
+ <div class="jumbotron my-auto" style="background: none!important;">
+ <h2 style="font-size: 3.25em;text-align: center;margin-bottom: 0.75em;margin-top: 0;font-weight: 500;" class="site-welcome stick-top">Welcome <span style="color: #54487A !important;">{{.User.UserName}}</span>!<br>
+ Shorten your next link</h2>
+
+ <form action="/links/create" method="post">
+ <div class="typeahead-container px-5" style="font-family: 'Open Sans',Arial,Helvetica,Sans-Serif;position: relative;">
+ <div class="row">
+ <div class="col-12">
+ <div class="typeahead-field" style="display: table;border-collapse: separate;box-sizing: border-box;position: relative;width: 100%;">
+ <span class="typeahead-query" style="font-size: 1.1em; height: 2.3em;display: table-cell;vertical-align: top;width: 100%;">
+ <input class="rounded" style="border: 1px solid #ccc;padding-left:10px;font-size: 1.3em; height: 2.5em;" id="target" name="target" type="search" autocomplete="off" placeholder="Paste your link" aria-label="Paste your link" autofocus="">
+ </span>
+ </div>
+ </div>
+ </div>
+
+ <div class="collapse" id="collapseExample">
+ <div class="row mt-4">
+ <div class="col-5">
+ <div class="form-group">
+ <label for="prefix">Prefix</label>
+ <select class="form-control" name="prefix" id="prefix" onchange="togglePrefix();">
+ <option value="">/</option>
+ <option value="{{$.User.UserName}}">/{{$.User.UserName}}/</option>
+ {{range $index, $project := .User.Projects}}
+ <option value="{{$project}}">/{{$project}}/</option>
+ {{end}}
+ </select>
+ </div>
+ </div>
+ <div class="col-2">
+ <div class="form-group">
+ <label for="index">Index</label>
+ <select class="form-control" name="index" id="index" disabled>
+ <option value="no" selected>no</option>
+ <option value="yes">yes</option>
+ </select>
+ </div>
+ </div>
+ <div class="col-5">
+ <div class="form-group">
+ <label for="token">Custom Link</label>
+ <input class="form-control" name="token" id="token" placeholder="Only available for prefix != '/'" disabled>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ <div class="row mt-4">
+ <div class="col-12">
+ <button class="float-right btn btn-primary">Shorten</button>
+ <button class="float-right btn btn-link text-dark" type="button" data-toggle="collapse" data-target="#collapseExample" aria-expanded="false" aria-controls="collapseExample">
+ Customize
+ </button>
+ </div>
+ </div>
+ </div>
+ </form>
+ </div>
+
+ </div>
+ </div>
+</div>
+
+
+{{template "footer" .}}
+
+<script src="/assets/application.js"></script>
+
+</body>
+</html>
diff --git a/web/templates/links/created.tmpl b/web/templates/links/created.tmpl
new file mode 100644
index 0000000..e3f93a5
--- /dev/null
+++ b/web/templates/links/created.tmpl
@@ -0,0 +1,52 @@
+<!DOCTYPE html>
+<html lang="en">
+{{template "head" .}}
+<body>
+{{template "header" .}}
+
+<div class="container mb-5 h-100">
+ <div class="row align-items-center h-100">
+ <div class="col-12 pb-5 mb-5">
+
+ <div class="jumbotron my-auto" style="background: none!important;">
+ <h2 style="font-size: 3.25em;text-align: center;margin-bottom: 0.75em;margin-top: 0;font-weight: 500;" class="site-welcome stick-top">Congratulations <span style="color: #54487A !important;">{{.User.UserName}}</span>!<br>
+ Your link has been shortened</h2>
+
+ <div class="typeahead-container px-5" style="font-family: 'Open Sans',Arial,Helvetica,Sans-Serif;position: relative;">
+ <div class="row">
+ <div class="col-12">
+ <div class="typeahead-field" style="display: table;border-collapse: separate;box-sizing: border-box;position: relative;width: 100%;">
+ <span class="typeahead-query" style="font-size: 1.1em; height: 2.3em;display: table-cell;vertical-align: top;width: 100%;">
+ <input class="rounded" style="border: 1px solid #ccc;padding-left:10px;font-size: 1.3em; height: 2.5em;" id="shortlink" name="shortlink" type="search" autocomplete="off" aria-label="Shortened Link" autofocus="" value="{{.ShortLink}}" readonly>
+ </span>
+ </div>
+ </div>
+ </div>
+
+ <div class="row">
+ <div id="copied" class="col-12 text-right text-primary" style="display: none;">
+ Successfully copied to the Clipboard.
+ </div>
+ </div>
+
+ <div class="row mt-4">
+ <div class="col-12">
+ <button data-clipboard-target="#shortlink" onclick="document.getElementById('copied').style.display = 'block';" class="float-right btn btn-primary">Copy to Clipbaord</button>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ </div>
+ </div>
+</div>
+
+{{template "footer" .}}
+
+<script src="/assets/clipboard.min.js"></script>
+<script>
+ new ClipboardJS('.btn');
+</script>
+
+</body>
+</html>
diff --git a/web/templates/links/show.tmpl b/web/templates/links/show.tmpl
new file mode 100644
index 0000000..de961f5
--- /dev/null
+++ b/web/templates/links/show.tmpl
@@ -0,0 +1,173 @@
+<!DOCTYPE html>
+<html lang="en">
+{{template "head" .}}
+<body>
+{{template "header" .}}
+
+<div class="container mb-5">
+ <div class="row">
+ <div class="col-12">
+
+ <h2 class="mt-4"><span style="font-family: monospace;">/</span></h2>
+
+ {{$empty := true}}
+
+ <table class="table">
+ <colgroup>
+ <col span="1" style="width: 20%;">
+ <col span="1" style="width: 60%;">
+ <col span="1" style="width: 10%;">
+ <col span="1" style="width: 5%;">
+ <col span="1" style="width: 5%;">
+ </colgroup>
+ <thead>
+ <tr>
+ <th scope="col">Short URL</th>
+ <th scope="col">Target</th>
+ <th scope="col">Creator</th>
+ <th scope="col">Hits</th>
+ <th scope="col">Action</th>
+ </tr>
+ </thead>
+ <tbody>
+ {{$empty = true}}
+ {{range .UserLinks}}
+ {{if eq .Prefix ""}}
+ {{$empty = false}}
+ <tr>
+ <th scope="row"><a class="text-dark" href="{{.ShortLink}}">go.gentoo.org{{.ShortLink}}</a></th>
+ <td><a class="text-dark" href="{{.TargetLink}}">{{.TargetLink}}</a></td>
+ <td>{{replaceAll .UserEmail "@gentoo.org" ""}}</td>
+ <td>{{.Hits}}</td>
+ <td>
+ <form action="/links/delete" method="post">
+ <input hidden name="prefix" value="{{.Prefix}}">
+ <input hidden name="token" value="{{.URLToken}}">
+ <input hidden name="from" value="/links/show">
+ <button type="submit" class="btn btn-link py-0 text-dark">
+ <i class="fa fa-trash-o" aria-hidden="true"></i>
+ </button>
+ </form>
+ </td>
+ </tr>
+ {{end}}
+ {{end}}
+ {{if $empty}}
+ <tr>
+ <td colspan="5" class="text-center"><i>No shortened URLs yet</i></td>
+ </tr>
+ {{end}}
+ </tbody>
+ </table>
+
+ <h2 class="mt-5"><span style="font-family: monospace;">/{{.User.UserName}}/</span></h2>
+
+ <table class="table">
+ <colgroup>
+ <col span="1" style="width: 20%;">
+ <col span="1" style="width: 60%;">
+ <col span="1" style="width: 10%;">
+ <col span="1" style="width: 5%;">
+ <col span="1" style="width: 5%;">
+ </colgroup>
+ <thead>
+ <tr>
+ <th scope="col">Short URL</th>
+ <th scope="col">Target</th>
+ <th scope="col">Creator</th>
+ <th scope="col">Hits</th>
+ <th scope="col">Action</th>
+ </tr>
+ </thead>
+ <tbody>
+ {{$empty = true}}
+ {{range .UserLinks}}
+ {{if eq .Prefix $.User.UserName}}
+ {{$empty = false}}
+ <tr>
+ <th scope="row"><a class="text-dark" href="{{.ShortLink}}">go.gentoo.org{{.ShortLink}}</a></th>
+ <td><a class="text-dark" href="{{.TargetLink}}">{{.TargetLink}}</a></td>
+ <td>{{replaceAll .UserEmail "@gentoo.org" ""}}</td>
+ <td>{{.Hits}}</td>
+ <td>
+ <form action="/links/delete" method="post">
+ <input hidden name="prefix" value="{{.Prefix}}">
+ <input hidden name="token" value="{{.URLToken}}">
+ <input hidden name="from" value="/links/show">
+ <button type="submit" class="btn btn-link py-0 text-dark">
+ <i class="fa fa-trash-o" aria-hidden="true"></i>
+ </button>
+ </form>
+ </td>
+ </tr>
+ {{end}}
+ {{end}}
+ {{if $empty}}
+ <tr>
+ <td colspan="4" class="text-center"><i>No shortened URLs yet</i></td>
+ </tr>
+ {{end}}
+ </tbody>
+ </table>
+
+ <div class="separator mt-5">Projects</div>
+
+ {{range $index, $project := .User.Projects}}
+ <h2 class="mt-5"><span style="font-family: monospace;">/{{$project}}/</span></h2>
+
+ <table class="table">
+ <colgroup>
+ <col span="1" style="width: 20%;">
+ <col span="1" style="width: 60%;">
+ <col span="1" style="width: 10%;">
+ <col span="1" style="width: 5%;">
+ <col span="1" style="width: 5%;">
+ </colgroup>
+ <thead>
+ <tr>
+ <th scope="col">Short URL</th>
+ <th scope="col">Target</th>
+ <th scope="col">Creator</th>
+ <th scope="col">Hits</th>
+ <th scope="col">Action</th>
+ </tr>
+ </thead>
+ <tbody>
+ {{$empty = true}}
+ {{range $.UserLinks}}
+ {{if eq .Prefix $project}}
+ {{$empty = false}}
+ <tr>
+ <th scope="row"><a class="text-dark" href="{{.ShortLink}}">go.gentoo.org{{.ShortLink}}</a></th>
+ <td><a class="text-dark" href="{{.TargetLink}}">{{.TargetLink}}</a></td>
+ <td>{{replaceAll .UserEmail "@gentoo.org" ""}}</td>
+ <td>{{.Hits}}</td>
+ <td>
+ <form action="/links/delete" method="post">
+ <input hidden name="prefix" value="{{.Prefix}}">
+ <input hidden name="token" value="{{.URLToken}}">
+ <input hidden name="from" value="/links/show">
+ <button type="submit" class="btn btn-link py-0 text-dark">
+ <i class="fa fa-trash-o" aria-hidden="true"></i>
+ </button>
+ </form>
+ </td>
+ </tr>
+ {{end}}
+ {{end}}
+ {{if $empty}}
+ <tr>
+ <td colspan="4" class="text-center"><i>No shortened URLs yet</i></td>
+ </tr>
+ {{end}}
+ </tbody>
+ </table>
+ {{end}}
+ </div>
+ </div>
+</div>
+
+{{template "footer" .}}
+
+</body>
+</html>