mirror of
https://codeberg.org/danielsiepmann/news-reader-php.git
synced 2024-11-22 12:16:09 +01:00
Improve layout
Don't have left sidebar. Add small sidebar to the right of each entry to interact with each entry.
This commit is contained in:
parent
463bd1b4bf
commit
bed87f8a10
12 changed files with 68 additions and 81 deletions
|
@ -1,4 +0,0 @@
|
||||||
body > main {
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: var(--width-sidebar-max) calc(100% - var(--width-sidebar-max));
|
|
||||||
}
|
|
|
@ -1,4 +1,4 @@
|
||||||
body > main > section {
|
body > main {
|
||||||
padding: var(--spacing-elements);
|
padding: var(--spacing-elements);
|
||||||
header h1 {
|
header h1 {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
|
|
|
@ -1,10 +0,0 @@
|
||||||
body > main > nav {
|
|
||||||
border: {
|
|
||||||
right: var(--color-blue-light) solid var(--width-border-default);
|
|
||||||
}
|
|
||||||
|
|
||||||
a {
|
|
||||||
display: block;
|
|
||||||
padding: var(--spacing-small-elements);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,7 +1,6 @@
|
||||||
@import 'variables';
|
@import 'variables';
|
||||||
@import 'elements';
|
@import 'elements';
|
||||||
@import 'components/header';
|
@import 'components/header';
|
||||||
@import 'components/sidebar';
|
|
||||||
@import 'components/content';
|
@import 'components/content';
|
||||||
@import 'components/footer';
|
@import 'components/footer';
|
||||||
@import 'layout';
|
@import 'layout';
|
||||||
|
|
|
@ -2,4 +2,3 @@ twig:
|
||||||
default_path: '%kernel.project_dir%/templates'
|
default_path: '%kernel.project_dir%/templates'
|
||||||
globals:
|
globals:
|
||||||
app_name: RSS Reader
|
app_name: RSS Reader
|
||||||
buckets: '@App\Repository\BucketRepository'
|
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
# Static pages / templates
|
|
||||||
start:
|
start:
|
||||||
path: /
|
path: /
|
||||||
controller: Symfony\Bundle\FrameworkBundle\Controller\TemplateController
|
controller: App\Controller\BucketController::index
|
||||||
defaults:
|
|
||||||
template: 'static/start.html.twig'
|
buckets:
|
||||||
|
path: /buckets/
|
||||||
|
controller: App\Controller\BucketController::index
|
||||||
|
|
||||||
bucket:
|
bucket:
|
||||||
path: /bucket/{slug}
|
path: /bucket/{slug}
|
||||||
|
|
|
@ -51,15 +51,9 @@ body > header {
|
||||||
body > header h1 {
|
body > header h1 {
|
||||||
margin: 0; }
|
margin: 0; }
|
||||||
|
|
||||||
body > main > nav {
|
body > main {
|
||||||
border-right: var(--color-blue-light) solid var(--width-border-default); }
|
|
||||||
body > main > nav a {
|
|
||||||
display: block;
|
|
||||||
padding: var(--spacing-small-elements); }
|
|
||||||
|
|
||||||
body > main > section {
|
|
||||||
padding: var(--spacing-elements); }
|
padding: var(--spacing-elements); }
|
||||||
body > main > section header h1 {
|
body > main header h1 {
|
||||||
margin: 0; }
|
margin: 0; }
|
||||||
|
|
||||||
article {
|
article {
|
||||||
|
@ -97,7 +91,3 @@ article {
|
||||||
body > footer {
|
body > footer {
|
||||||
padding: var(--spacing-small-elements);
|
padding: var(--spacing-small-elements);
|
||||||
border-top: var(--color-blue-light) solid var(--width-border-default); }
|
border-top: var(--color-blue-light) solid var(--width-border-default); }
|
||||||
|
|
||||||
body > main {
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: var(--width-sidebar-max) calc(100% - var(--width-sidebar-max)); }
|
|
||||||
|
|
|
@ -3,13 +3,32 @@
|
||||||
namespace App\Controller;
|
namespace App\Controller;
|
||||||
|
|
||||||
use App\Entity\Bucket;
|
use App\Entity\Bucket;
|
||||||
|
use App\Repository\BucketRepository;
|
||||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||||
|
|
||||||
class BucketController extends AbstractController
|
class BucketController extends AbstractController
|
||||||
{
|
{
|
||||||
public function show(Bucket $bucket)
|
/**
|
||||||
|
* @var BucketRepository
|
||||||
|
*/
|
||||||
|
private $repository;
|
||||||
|
|
||||||
|
public function __construct(
|
||||||
|
BucketRepository $repository
|
||||||
|
) {
|
||||||
|
$this->repository = $repository;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function index()
|
||||||
{
|
{
|
||||||
return $this->render('bucket/index.html.twig', [
|
return $this->render('bucket/index.html.twig', [
|
||||||
|
'buckets' => $this->repository->findAll(),
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function show(Bucket $bucket)
|
||||||
|
{
|
||||||
|
return $this->render('bucket/show.html.twig', [
|
||||||
'bucket' => $bucket,
|
'bucket' => $bucket,
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,15 +13,7 @@
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<main>
|
<main>
|
||||||
<nav>
|
|
||||||
{% for bucket in buckets.findAll %}
|
|
||||||
<a href="{{ path('bucket', {slug: bucket.slug}) }}">{{ bucket.name }}</a>
|
|
||||||
{% endfor %}
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
<section>
|
|
||||||
{% block body %}{% endblock %}
|
{% block body %}{% endblock %}
|
||||||
</section>
|
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
<footer>
|
<footer>
|
||||||
|
|
|
@ -1,24 +1,21 @@
|
||||||
{% extends 'base.html.twig' %}
|
{% extends 'base.html.twig' %}
|
||||||
|
|
||||||
{% block title %}{{ bucket.name }} | {{ parent() }}{% endblock %}
|
|
||||||
|
|
||||||
{% block body %}
|
{% block body %}
|
||||||
<header>
|
{% for bucket in buckets %}
|
||||||
<h1>Bucket: {{ bucket.name }} <small>with {{ bucket.feeds | length }} feeds</small></h1>
|
<article>
|
||||||
<nav> </nav>
|
<h1><a href="{{ path('bucket', {slug: bucket.slug}) }}">Bucket: {{ bucket.name }}</a> <small>with {{ bucket.feeds | length }} feeds</small></h1>
|
||||||
</header>
|
|
||||||
|
|
||||||
{# TODO: collect newest entries of all feeds in controller #}
|
<main>
|
||||||
{{ include('feed/entries.html.twig', {entries: bucket.feeds.first.entries | slice(0, 10) }) }}
|
|
||||||
|
|
||||||
<aside>
|
|
||||||
<h1>Feeds in this bucket</h1>
|
|
||||||
<ul>
|
<ul>
|
||||||
{% for feed in bucket.feeds %}
|
{% for feed in bucket.feeds %}
|
||||||
<li>
|
<li>{{ feed.name }}</li>
|
||||||
<a href="{{ path('feed', {slug: feed.slug}) }}">{{ feed.name }}</a>
|
|
||||||
</li>
|
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</ul>
|
</ul>
|
||||||
</aside>
|
</main>
|
||||||
|
|
||||||
|
<nav>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
</article>
|
||||||
|
{% endfor %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
24
templates/bucket/show.html.twig
Normal file
24
templates/bucket/show.html.twig
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
{% extends 'base.html.twig' %}
|
||||||
|
|
||||||
|
{% block title %}{{ bucket.name }} | {{ parent() }}{% endblock %}
|
||||||
|
|
||||||
|
{% block body %}
|
||||||
|
<header>
|
||||||
|
<h1>Bucket: {{ bucket.name }} <small>with {{ bucket.feeds | length }} feeds</small></h1>
|
||||||
|
<nav> </nav>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
{# TODO: collect newest entries of all feeds in controller #}
|
||||||
|
{{ include('feed/entries.html.twig', {entries: bucket.feeds.first.entries | slice(0, 10) }) }}
|
||||||
|
|
||||||
|
<aside>
|
||||||
|
<h1>Feeds in this bucket</h1>
|
||||||
|
<ul>
|
||||||
|
{% for feed in bucket.feeds %}
|
||||||
|
<li>
|
||||||
|
<a href="{{ path('feed', {slug: feed.slug}) }}">{{ feed.name }}</a>
|
||||||
|
</li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
</aside>
|
||||||
|
{% endblock %}
|
|
@ -1,20 +0,0 @@
|
||||||
{% extends 'base.html.twig' %}
|
|
||||||
|
|
||||||
{% block title %}Hello FeedController!{% endblock %}
|
|
||||||
|
|
||||||
{% block body %}
|
|
||||||
<style>
|
|
||||||
.example-wrapper { margin: 1em auto; max-width: 800px; width: 95%; font: 18px/1.5 sans-serif; }
|
|
||||||
.example-wrapper code { background: #F5F5F5; padding: 2px 6px; }
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<div class="example-wrapper">
|
|
||||||
<h1>Hello {{ controller_name }}! ✅</h1>
|
|
||||||
|
|
||||||
This friendly message is coming from:
|
|
||||||
<ul>
|
|
||||||
<li>Your controller at <code><a href="{{ '/home/daniels/Projects/own/rss/project/src/Controller/FeedController.php'|file_link(0) }}">src/Controller/FeedController.php</a></code></li>
|
|
||||||
<li>Your template at <code><a href="{{ '/home/daniels/Projects/own/rss/project/templates/feed/index.html.twig'|file_link(0) }}">templates/feed/index.html.twig</a></code></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
{% endblock %}
|
|
Loading…
Reference in a new issue