Allow browsing public snips

Fixed big with branch name not existing if nothing committed
This commit is contained in:
Tim 2023-04-06 20:30:11 +02:00
parent ce456adf10
commit 004044022d
7 changed files with 49 additions and 4 deletions

View File

@ -28,6 +28,16 @@ class SnipController extends AbstractController
{
return $this->render('snip/index.html.twig', [
'snips' => $this->repository->findByUser($this->getUser()),
'title' => 'My Snips'
]);
}
#[Route('/public', name: '_public')]
public function public(): Response
{
return $this->render('snip/index.html.twig', [
'snips' => $this->repository->findPublic(),
'title' => 'Public Snips'
]);
}

View File

@ -49,4 +49,14 @@ class SnipRepository extends ServiceEntityRepository
return $qb->getQuery()->getResult();
}
public function findPublic(): array
{
$qb = $this->createQueryBuilder('s');
$qb->where('s.public = :public')
->setParameter('public', true)
->orderBy('s.createdAt', 'DESC');
return $qb->getQuery()->getResult();
}
}

View File

@ -22,6 +22,9 @@ class SnipServiceFactory
$repoPath = sprintf('%s/%s', $this->snipBasePath, $snip->getId());
if (!is_dir($repoPath)) {
$repo = $git->init($repoPath);
touch(sprintf('%s/.gitignore', $repoPath));
$repo->addFile('.gitignore');
$repo->commit('Initial commit');
} else {
$repo = $git->open($repoPath);
}

View File

@ -19,6 +19,9 @@
<li class="nav-item">
<a class="nav-link" href="{{ path('snip_new') }}">New snip</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{{ path('snip_public') }}">Public snips</a>
</li>
{% endif %}
</ul>
<ul class="navbar-nav my-2 my-lg-0">

View File

@ -1,16 +1,22 @@
{% extends 'base/base.html.twig' %}
{% block title %}My snips{% endblock %}
{% block title %}{{ title }}{% endblock %}
{% block body %}
<h1>My snips</h1>
<h1>{{ title }}</h1>
<a class="btn btn-success" href="{{ path('snip_new') }}">
<i class="fa fa-plus"></i> Add
</a><br><br>
<div class="list-group">
{% for snip in snips %}
<a class="list-group-item" href="{{ path('snip_single', {snip: snip.id}) }}">
{{ include('snip/badge.html.twig', {snip: snip}) }} {{ snip }}
{% if snip.createdBy == app.user %}
{{ include('snip/badge.html.twig', {snip: snip}) }}
{% endif %}
{{ snip }}
{% if snip.createdBy != app.user %}
{{ include('user/badge.html.twig', {user: snip.createdBy}) }}
{% endif %}
</a>
{% endfor %}
</div>

View File

@ -27,7 +27,19 @@
<p class="card-text">Current branch: {{ branch }}</p>
</div>
<div class="card-body">
<p class="card-text">{{ content|nl2br }}</p>
<pre><code>{{ content }}</code></pre>
</div>
</div>
{% endblock %}
{% block css %}
{{ parent() }}
<link rel="stylesheet"
href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/styles/default.min.css">
{% endblock %}
{% block js %}
{{ parent() }}
<script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/highlight.min.js"></script>
<script>hljs.highlightAll();</script>
{% endblock %}

View File

@ -0,0 +1 @@
<span class="badge bg-secondary">{{ user }}</span>