Commit 5bf3a25f by Van

View list/add & edit quasi done

parent efb24d48
......@@ -5,8 +5,10 @@ namespace Bolt\Extension\Appolo\Tourinsoft\Controller\Backend;
use Bolt\Application;
use Bolt\Controller\Backend\BackendBase;
use Bolt\Extension\Appolo\Tourinsoft\Storage\Entity\Flux;
use Bolt\Extension\Appolo\Tourinsoft\Storage\Repository\FluxRepository;
use Bolt\Extension\Appolo\Tourinsoft\Synchronisation\Synchronisation;
use Silex\ControllerCollection;
use Symfony\Component\HttpFoundation\Request;
class FluxController extends BackendBase
{
......@@ -43,19 +45,66 @@ class FluxController extends BackendBase
* Index ('/')
*/
public function index() {
dump('fuck');
$flux = $this->getRepository(Flux::class)->findAll();
return $this->render('@tourinsoft/Backend/flux/list.html.twig', [], [
'flux' => $flux
]);
}
/**
* Add ('/add')
* @param Request $request
* @return \Bolt\Response\TemplateResponse|\Bolt\Response\TemplateView|\Symfony\Component\HttpFoundation\RedirectResponse
* @throws \Exception
*/
public function add() {}
public function add( Request $request) {
$flux = $this->getRepository(Flux::class)->findAll();
$form = $this->createForm('Bolt\Extension\Appolo\Tourinsoft\Form\FluxType', new Flux());
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid())
{
$flux = $form->getData();
$flux->setCreatedAt(new \DateTimeImmutable());
$flux->setEnabled(true);
$this->getRepository(Flux::class)->save($flux);
return $this->redirectToRoute('tourinsoft_admin_flux_index');
}
return $this->render('@tourinsoft/Backend/flux/add.html.twig', [], [
'form' => $form->createView(),
'flux' => $flux
]);
}
/**
* Edit ('/edit/:id')
*/
public function edit($id) {
dump($id);
public function edit(Request $request) {
$flux = $this->getRepository(Flux::class)->find($request->get('id'));
if (!$flux){
$this->app['session']->getFlashBag()->add('error', 'Modification impossible: Flux inexistant');
return $this->redirectToRoute('tourinsoft_admin_flux_index');
}
$form = $this->createForm('Bolt\Extension\Appolo\Tourinsoft\Form\FluxType', $flux);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid())
{
$this->getRepository(Flux::class)->update($flux);
return $this->redirectToRoute('tourinsoft_admin_flux_index');
}
return $this->render('@tourinsoft/Backend/flux/edit.html.twig', [], [
'form' => $form->createView(),
'flux' => $flux
]);
}
/**
......
<?php
namespace Bolt\Extension\Appolo\Tourinsoft\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
class FluxType extends AbstractType
{
/*
* {@inheritdoc}
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add(
'title',
TextType::class,
[
'label' => 'Titre',
'required' => false
])
->add(
'code',
TextType::class,
[
'label' => 'Code',
'required' => false
])
->add(
'key',
TextType::class,
[
'label' => 'Key',
'required' => false
])
->add(
'contentType',
TextType::class,
[
'label' => 'Content Type',
'required' => false
])
;
}
/*
* {@inheritdoc}
*/
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([]);
}
/*
* {@inheritdoc}
*/
public function getBlockPrefix()
{
return 'tourinsoft_admin_flux_add';
}
}
\ No newline at end of file
......@@ -19,7 +19,7 @@ class Flux extends BaseTable
$this->table->addColumn('contentType', 'string', ['notnull' => true]);
$this->table->addColumn('enabled', 'boolean', ['default' => false]);
$this->table->addColumn('createdAt', 'datetime', ['notnull' => true]);
$this->table->addColumn('updateAt', 'datetime', ['notnull' => true]);
$this->table->addColumn('updateAt', 'datetime', ['notnull' => false]);
}
/**
......
......@@ -8,6 +8,7 @@ use Bolt\Extension\SimpleExtension;
use Bolt\Extension\StorageTrait;
use Bolt\Menu\MenuEntry;
use Silex\Application;
use Symfony\Component\Form\Extension\Core\Type\FormType;
/**
* Tourinsoft extension class.
......@@ -65,6 +66,17 @@ class TourinsoftExtension extends SimpleExtension
parent::registerServices($app); // TODO: Change the autogenerated stub
}
/**
* @param string $type
* @param string $data
* @param array $options
* @return mixed
*/
protected function createForm($type = FormType::class, $data = Storage\Entity\Flux::class, array $options = []){
return $this->getContainer()['form.factory']->create($type,$data,$options);
}
/**
* @return array
*/
......
{% from '@bolt/_sub/_record_list.twig' import record_list as list %}
{% import '@bolt/_macro/_panels.twig' as panels %}
{% extends '@bolt/_base/_page-nav.twig' %}
{% block page_title %}
<h1 class="page-header">
<strong>{{ __('general.phrase.overview') }} »</strong>
<i style="font-style: normal;"> {{ __('Création de Flux') }}</i>
</h1>
{% endblock page_title %}
{% block page_main %}
{{ form_start(form) }}
<div class="col-md-8">
{{ form_label(form.title) }}
{{ form_widget(form.title) }}
{{ form_errors(form.title) }}
</div>
<div class="col-md-8">
{{ form_label(form.code) }}
{{ form_widget(form.code) }}
{{ form_errors(form.code) }}
</div>
<div class="col-md-8">
{{ form_label(form.key) }}
{{ form_widget(form.key) }}
{{ form_errors(form.key) }}
</div>
<div class="col-md-8">
{{ form_label(form.contentType) }}
{{ form_widget(form.contentType) }}
{{ form_errors(form.contentType) }}
</div>
<!-- sidebar -->
<aside class="col-md-4">
<div class="panel panel-default panel-news">
<div class="panel-heading">
<i class="fa fa-fw fa-cog"></i>
{{ __('Actions') }}
</div>
<div class="panel-body">
<button type="submit" class="btn btn-primary"> Valider l'ajout </button>
<br/>
<a class="btn btn-default" style="margin-top: 1em;" href="{{ path('tourinsoft_admin_flux_index') }}">
<i class="fa fa-undo" aria-hidden="true"></i> {{ __('Retour à la liste des flux') }}
</a>
</div>
</div>
</aside>
<!-- / sidebar -->
{{ form_end(form) }}
{% endblock %}
{% from '@bolt/_sub/_record_list.twig' import record_list as list %}
{% import '@bolt/_macro/_panels.twig' as panels %}
{% extends '@bolt/_base/_page-nav.twig' %}
{% block page_title %}
<h1 class="page-header">
<strong>{{ __('general.phrase.overview') }} »</strong>
<i style="font-style: normal;"> {{ __('Modification de Flux') }}</i>
</h1>
{% endblock page_title %}
{% block page_main %}
{{ form_start(form) }}
<div class="col-md-8">
{{ form_label(form.title) }}
{{ form_widget(form.title) }}
{{ form_errors(form.title) }}
</div>
<div class="col-md-8">
{{ form_label(form.code) }}
{{ form_widget(form.code) }}
{{ form_errors(form.code) }}
</div>
<div class="col-md-8">
{{ form_label(form.key) }}
{{ form_widget(form.key) }}
{{ form_errors(form.key) }}
</div>
<div class="col-md-8">
{{ form_label(form.contentType) }}
{{ form_widget(form.contentType) }}
{{ form_errors(form.contentType) }}
</div>
<!-- sidebar -->
<aside class="col-md-4">
<div class="panel panel-default panel-news">
<div class="panel-heading">
<i class="fa fa-fw fa-cog"></i>
{{ __('Actions') }}
</div>
<div class="panel-body">
<button type="submit" class="btn btn-primary"> Valider la modification </button>
<br/>
<a class="btn btn-default" style="margin-top: 1em;" href="{{ path('tourinsoft_admin_flux_index') }}">
<i class="fa fa-undo" aria-hidden="true"></i> {{ __('Retour à la liste des flux') }}
</a>
</div>
</div>
</aside>
<!-- / sidebar -->
{{ form_end(form) }}
{% endblock %}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment