mirror of
https://github.com/Part-DB/Part-DB-server.git
synced 2025-06-21 01:25:55 +02:00
Added an system for showing flash messages to user.
This commit is contained in:
parent
cc1badb853
commit
2d18014b35
6 changed files with 146 additions and 6 deletions
|
@ -134,7 +134,15 @@ body {
|
|||
line-height: 1.1;
|
||||
}
|
||||
|
||||
|
||||
/********************************
|
||||
* Toasts
|
||||
********************************/
|
||||
.toast-container {
|
||||
position: fixed;
|
||||
top: auto;
|
||||
z-index: 1;
|
||||
right: 25px;
|
||||
}
|
||||
|
||||
/**********************************
|
||||
* Helper classes
|
||||
|
|
58
src/Controller/DebugController.php
Normal file
58
src/Controller/DebugController.php
Normal file
|
@ -0,0 +1,58 @@
|
|||
<?php
|
||||
/**
|
||||
*
|
||||
* part-db version 0.1
|
||||
* Copyright (C) 2005 Christoph Lechner
|
||||
* http://www.cl-projects.de/
|
||||
*
|
||||
* part-db version 0.2+
|
||||
* Copyright (C) 2009 K. Jacobs and others (see authors.php)
|
||||
* http://code.google.com/p/part-db/
|
||||
*
|
||||
* Part-DB Version 0.4+
|
||||
* Copyright (C) 2016 - 2019 Jan Böhmer
|
||||
* https://github.com/jbtronics
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version 2
|
||||
* of the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*
|
||||
*/
|
||||
|
||||
namespace App\Controller;
|
||||
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||
use Symfony\Component\Routing\Annotation\Route;
|
||||
|
||||
/**
|
||||
* Class DebugController
|
||||
* @package App\Controller
|
||||
*/
|
||||
class DebugController extends AbstractController
|
||||
{
|
||||
/**
|
||||
* @Route("/debug/flash_test")
|
||||
*/
|
||||
public function flashTest()
|
||||
{
|
||||
$this->addFlash('success', 'Success Flash Message!');
|
||||
$this->addFlash('error', 'Error Flash Message!');
|
||||
$this->addFlash('warning', 'Warning Flash Message!');
|
||||
$this->addFlash('notice', 'Notice Flash Message!');
|
||||
$this->addFlash('info', 'Info Flash Message! <b>Test</b>');
|
||||
|
||||
$this->addFlash('testkjfd', 'Blabla. This message type should be not know to template!');
|
||||
|
||||
return $this->render("base.html.twig");
|
||||
}
|
||||
}
|
|
@ -42,6 +42,7 @@ use Doctrine\ORM\EntityManagerInterface;
|
|||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\Routing\Annotation\Route;
|
||||
use Symfony\Contracts\Translation\TranslatorInterface;
|
||||
|
||||
class PartController extends AbstractController
|
||||
{
|
||||
|
@ -89,14 +90,12 @@ class PartController extends AbstractController
|
|||
*
|
||||
* @return \Symfony\Component\HttpFoundation\Response
|
||||
*/
|
||||
public function new(Request $request, EntityManagerInterface $em)
|
||||
public function new(Request $request, EntityManagerInterface $em, TranslatorInterface $translator)
|
||||
{
|
||||
$new_part = new Part();
|
||||
$category = $em->find(Category::class, 1);
|
||||
$new_part->setCategory($category);
|
||||
|
||||
$this->addFlash('success', 'Article Created!');
|
||||
|
||||
$form = $this->createForm(PartType::class, $new_part);
|
||||
|
||||
$form->handleRequest($request);
|
||||
|
@ -106,7 +105,7 @@ class PartController extends AbstractController
|
|||
//$part = $form->getData();
|
||||
$em->persist($new_part);
|
||||
$em->flush();
|
||||
$this->addFlash('success', 'Article Created! Knowledge is power!');
|
||||
$this->addFlash('success', $translator->trans('part.created_flash'));
|
||||
return $this->redirectToRoute('part_edit',['id' => $new_part->getID()]);
|
||||
}
|
||||
|
||||
|
|
|
@ -101,11 +101,42 @@
|
|||
</ul>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
|
||||
<div class="toast-container ">
|
||||
{% for label, messages in app.flashes() %}
|
||||
{% for message in messages %}
|
||||
{% set flash_title = label|replace({'success': 'flash.success', 'error': 'flash.error'
|
||||
, 'warning': 'flash.warning', 'notice': 'flash.notice', 'info': 'flash.info'}) %}
|
||||
{% set flash_symbol = label|replace({'success': 'fa-check-circle', 'error': 'fa-exclamation-triangle'
|
||||
, 'warning': 'fa-exclamation-circle', 'notice': 'fa-flag', 'info': 'fa-flag'}) %}
|
||||
|
||||
{% set flash_bg = label|replace({'success': 'bg-success text-white',
|
||||
'error': 'bg-danger text-white', 'warning': 'bg-warning text-white',
|
||||
'notice': 'bg-info text-white', 'info': 'bg'})%}
|
||||
|
||||
<div class="toast " role="alert" aria-live="assertive" aria-atomic="true" data-delay="2000">
|
||||
<div class="toast-header {{ flash_bg }}">
|
||||
{# <img src="..." class="rounded mr-2" alt="...">#}
|
||||
<i class="fas fa-fw {{ flash_symbol }} mr-2"></i>
|
||||
<strong class="mr-auto">{{ flash_title|trans }}</strong>
|
||||
{#<small class="text-muted">11 mins ago</small> #}
|
||||
<button type="button" class="ml-2 mb-1 close" data-dismiss="toast" aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="toast-body {{ flash_bg }}">
|
||||
{{ message}}
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
||||
</header>
|
||||
|
||||
<main>
|
||||
<div class="container-fluid">
|
||||
|
||||
<div class="row">
|
||||
<div class="collapse d-md-block bg-light" id="sidebar-container">
|
||||
<nav class="fixed-sidebar col-md-3 col-lg-2 " id="fixed-sidebar">
|
||||
|
@ -258,6 +289,10 @@
|
|||
|
||||
<script src="{{ asset('helper/datatables.js') }}"></script>
|
||||
|
||||
<script>
|
||||
$(".toast").toast('show');
|
||||
</script>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block scripts %}
|
||||
|
|
|
@ -285,6 +285,26 @@
|
|||
<source>part_list.loading.message</source>
|
||||
<target state="translated">Dies kann einen Moment dauern. Wenn diese Nachricht längere Zeit bestehen bleibt, versuchen sie die Seite erneut zu laden.</target>
|
||||
</trans-unit>
|
||||
<trans-unit resname="flash.success" id="flash.success">
|
||||
<source>flash.success</source>
|
||||
<target state="translated">Erfolg</target>
|
||||
</trans-unit>
|
||||
<trans-unit resname="flash.error" id="flash.error">
|
||||
<source>flash.error</source>
|
||||
<target state="translated">Fehler</target>
|
||||
</trans-unit>
|
||||
<trans-unit resname="flash.warning" id="flash.warning">
|
||||
<source>flash.warning</source>
|
||||
<target state="translated">Warnung</target>
|
||||
</trans-unit>
|
||||
<trans-unit resname="flash.notice" id="flash.notice">
|
||||
<source>flash.notice</source>
|
||||
<target state="translated">Hinweis</target>
|
||||
</trans-unit>
|
||||
<trans-unit resname="flash.info" id="flash.info">
|
||||
<source>flash.info</source>
|
||||
<target state="translated">Info</target>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
||||
|
|
|
@ -301,6 +301,26 @@
|
|||
<source>part_list.loading.message</source>
|
||||
<target state="translated">This can take a moment. If this message do not disappear, try to reload the page.</target>
|
||||
</trans-unit>
|
||||
<trans-unit resname="flash.success" id="flash.success">
|
||||
<source>flash.success</source>
|
||||
<target state="translated">Success</target>
|
||||
</trans-unit>
|
||||
<trans-unit resname="flash.error" id="flash.error">
|
||||
<source>flash.error</source>
|
||||
<target state="translated">Error</target>
|
||||
</trans-unit>
|
||||
<trans-unit resname="flash.warning" id="flash.warning">
|
||||
<source>flash.warning</source>
|
||||
<target state="translated">Warning</target>
|
||||
</trans-unit>
|
||||
<trans-unit resname="flash.notice" id="flash.notice">
|
||||
<source>flash.notice</source>
|
||||
<target state="translated">Notice</target>
|
||||
</trans-unit>
|
||||
<trans-unit resname="flash.info" id="flash.info">
|
||||
<source>flash.info</source>
|
||||
<target state="translated">Info</target>
|
||||
</trans-unit>
|
||||
</body>
|
||||
</file>
|
||||
</xliff>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue