1
0
mirror of https://github.com/ToxicCrack/PrintABrick.git synced 2025-05-17 04:40:08 -07:00

Add homepage

This commit is contained in:
Unknown 2017-05-22 15:36:38 +02:00
parent 1f77e126ca
commit 8ad9c14765
12 changed files with 109 additions and 14 deletions

View File

@ -0,0 +1,24 @@
.hidden.menu {
display: none;
}
.masthead.segment {
min-height: 500px;
padding: 1em 0em;
}
.masthead .logo.item img {
margin-right: 1em;
}
.masthead .ui.menu .ui.button {
margin-left: 0.5em;
}
.masthead h1.ui.header {
margin-top: 1.5em;
margin-bottom: 0em;
font-size: 4em;
font-weight: normal;
}
.masthead h2 {
font-size: 1.7em;
font-weight: normal;
}

View File

@ -6,7 +6,7 @@
min-height: calc(100% - 67px); min-height: calc(100% - 67px);
} }
.ui.masthead { .ui.head {
position: relative; position: relative;
.header { .header {

View File

@ -2,6 +2,7 @@
@import "mixins"; @import "mixins";
@import "main"; @import "main";
@import "homepage";
@import "modelviewer"; @import "modelviewer";
@import "part"; @import "part";

View File

@ -381,4 +381,6 @@ u9209c01: u9209
2772c02: 2772c01 2772c02: 2772c01
2772c03: 2772c01 2772c03: 2772c01
81294: 3351a 81294: 3351a
61738: 54086

View File

@ -68,4 +68,14 @@ page:
filter: filter:
model: model:
search: Search Model search: Search Model
category: Category category: Category
homepage:
models:
title: %count% models
text:
browse: Browse models
sets:
title: %count% sets
text:
browse: Browse sets

View File

@ -21,7 +21,7 @@
{% block page %} {% block page %}
<div class="ui main"> <div class="ui main">
<div class="ui container"> <div class="ui container">
<div class="ui masthead vertical segment"> <div class="ui head vertical segment">
<h1 class="ui header">{% block header %}{% endblock %}</h1> <h1 class="ui header">{% block header %}{% endblock %}</h1>
<div class="ui small breadcrumb"> <div class="ui small breadcrumb">

View File

@ -1,16 +1,51 @@
{% extends 'base.html.twig' %} {% extends 'base.html.twig' %}
{% block page %} {% block body %}
<div class="ui main"> <!-- Page Contents -->
<div class="ui grid massive message vertical"> <div class="pusher">
<div class="ui inverted vertical masthead center aligned segment">
<div class="ui container"> <div class="ui container">
<div class="row"> <div class="ui large secondary inverted pointing menu">
<div class="h1 ui huge header"> {{ knp_menu_render('mainMenu') }}
Hello, world!
<div class="right menu">
<div class="ui search item category right aligned">
<div class="ui icon input transparent inverted">
<input class="prompt" type="text" placeholder="Search..." >
<i class="search icon"></i>
</div>
<div class="results transition"></div>
</div>
</div>
</div>
</div>
<div class="ui text container">
<h1 class="ui inverted header">
PrintABrick
</h1>
<h2>{{ 'page.home.title.text' | trans }}</h2>
</div>
</div>
<div class="ui vertical stripe quote segment">
<div class="ui equal width stackable internally celled grid">
<div class="center aligned row">
<div class="column">
<h3>{{ 'homepage.models.title' | trans({'%count%' : models})}}</h3>
<p>{{ 'homepage.models.text' | trans }}</p>
<a class="ui button big primary" href="{{ path('model_index') }}">{{ 'homepage.models.browse' | trans }}</a>
</div>
<div class="column">
<h3>{{ 'homepage.sets.title' | trans({'%count%' : sets}) }}</h3>
<p>{{ 'homepage.sets.text' | trans }}</p>
<a class="ui button big primary" href="{{ path('set_index') }}">{{ 'homepage.sets.browse' | trans }}</a>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
{% endblock %} {% endblock %}

View File

@ -63,13 +63,13 @@
{% import _self as blocks %} {% import _self as blocks %}
{{ blocks.setImage(set.id,'set_min') }} {{ blocks.setImage(set.id,'set_min') }}
<div class="content"> <div class="content">
<h3 class="header truncate"> <h3 title="{{ set.name }}" class="header truncate">
{{ set.name }} {{ set.name }}
</h3> </h3>
<div class="meta"> <div class="meta">
<span class="left floated">{{ set.id }}</span> <span class="left floated">{{ set.id }}</span>
<br> <br>
<span class="left floated truncate"><small>{{ set.theme.fullName }}</small></span> <span title="{{ set.theme.fullName }}" class="left floated truncate"><small>{{ set.theme.fullName }}</small></span>
</div> </div>
<div class="description"> <div class="description">
<small> <small>

View File

@ -2,6 +2,8 @@
namespace AppBundle\Controller; namespace AppBundle\Controller;
use AppBundle\Repository\LDraw\ModelRepository;
use AppBundle\Repository\Rebrickable\SetRepository;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller; use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Request;
@ -13,7 +15,14 @@ class DefaultController extends Controller
*/ */
public function indexAction(Request $request) public function indexAction(Request $request)
{ {
/** @var ModelRepository $modelRepository */
$modelRepository = $this->get('repository.ldraw.model');
/** @var SetRepository $setRepository */
$setRepository = $this->get('repository.rebrickable.set');
return $this->render('default/index.html.twig', [ return $this->render('default/index.html.twig', [
'models' => $modelRepository->count(),
'sets' => $setRepository->count(),
]); ]);
} }
} }

View File

@ -32,7 +32,7 @@ class Builder
'route' => 'homepage', 'route' => 'homepage',
]); ]);
$menu->addChild('homepage', [ $menu->addChild('Home', [
'route' => 'homepage', 'route' => 'homepage',
]); ]);

View File

@ -106,6 +106,13 @@ class ModelRepository extends BaseRepository
return $queryBuilder->getQuery()->getResult(); return $queryBuilder->getQuery()->getResult();
} }
public function count() {
$queryBuilder = $this->createQueryBuilder('model');
$queryBuilder->select('count(model)');
return $queryBuilder->getQuery()->getSingleScalarResult();
}
/** /**
* Create new Model entity with $number or retrieve one. * Create new Model entity with $number or retrieve one.
* *

View File

@ -73,6 +73,13 @@ class SetRepository extends BaseRepository
return $queryBuilder->getQuery()->getSingleScalarResult(); return $queryBuilder->getQuery()->getSingleScalarResult();
} }
public function count() {
$queryBuilder = $this->createQueryBuilder('s');
$queryBuilder->select('count(s)');
return $queryBuilder->getQuery()->getSingleScalarResult();
}
public function getMaxYear() public function getMaxYear()
{ {
$queryBuilder = $this->createQueryBuilder('s') $queryBuilder = $this->createQueryBuilder('s')