Compare commits

...

5 Commits

Author SHA1 Message Date
Maxime Thévenot 38d84a0257 Fix : bad cookie setting 2018-06-08 10:04:10 +02:00
Maxime Thévenot d3d8339a6f Fix : set cookie for redirect after registration 2018-06-08 10:01:11 +02:00
Maxime Thévenot 8ef169197d Fix : redirection when creating account after spontaneous 2018-06-05 16:38:46 +02:00
Thomas MONCHICOURT 737af1052b Fix: recherceh url 2018-05-28 12:26:30 +02:00
Thomas MONCHICOURT 85b1e2406d Fix : optimisation mobile css 2018-05-25 16:49:33 +02:00
16 changed files with 190 additions and 84 deletions
+2 -1
View File
@@ -10,4 +10,5 @@ rewrite ^/page/les-conseils$ https://www.talentstube.com/accompagnement-entrep
rewrite ^/page/presentation-talent$ https://www.talentstube.com/cv-video permanent;
rewrite ^/page/la-plateforme$ https://www.talentstube.com/ permanent;
rewrite ^/tarifs$ https://www.talentstube.com/accompagnement-entreprise permanent;
rewrite ^/annonce/38-charge-de-projets-developpement-h-f$ https://www.talentstube.com/annonce/38-charge-de-projets-developpement-cosmetique-h-f permanent;
rewrite ^/annonce/38-charge-de-projets-developpement-h-f$ https://www.talentstube.com/annonce/38-charge-de-projets-developpement-cosmetique-h-f permanent;
rewrite ^/annonce/recherche/$ https://www.talentstube.com/annonce/recherche permanent;
@@ -3,20 +3,25 @@
{% trans_default_domain 'FOSUserBundle' %}
{% block content %}
<div class="container contentWrapper">
<div class="row">
<div class="col push-s3 s6">
<h1 class="m-t-20 alttitle center-align">{{'user.register.title'|trans({},"messages") }}</h1>
<p>{{ 'registration.confirmed'|trans({'%username%': user.username}) }}</p>
{% if targetUrl %}
<p><a href="{{ targetUrl }}">{{ 'registration.back'|trans }}</a></p>
{% endif %}
<br /><br />
<div class="container contentWrapper">
<div class="row">
<div class="col push-s3 s6">
<h1 class="m-t-20 alttitle center-align">{{'user.register.title'|trans({},"messages") }}</h1>
<p>{{ 'registration.confirmed'|trans({'%username%': user.username}) }}</p>
{% if targetUrl %}
<p>
<a href="{{ targetUrl }}">{{ 'registration.back'|trans }}</a>
</p>
{% endif %}
<br/><br/>
{% if destination_login is defined %}
<a href="{{ destination_login }}" class="btn btn-default">Poursuivre votre vandidature</a>
{% endif %}
</div>
</div>
</div>
</div>
</div>
{% endblock %}
{% block metarobot %}
<meta name="robots" content="noindex,nofollow">
{% endblock %}
{% endblock %}
@@ -1,7 +1,7 @@
<footer class="page-footer">
<div class="container">
<div class="row footer-info">
<div class="col xl2 l2 m6 s6">
<div class="col xl2 l2 m6 s12 col-footer-logo">
<img src="{{ asset('/img/logo-mini-white.svg') }}" alt="Talents Tube 1er job board 100% vidéo">
</div>
<div class="col xl3 l3 m6 s6">
@@ -86,7 +86,7 @@ class UserController extends Controller
$mailer = $this->get('fos_user.mailer');
$mailer->sendConfirmationEmailMessage($user);
return $this->redirectToRoute('admin_config_user');
return $this->redirectToRoute('admin_config_users');
}
/**
@@ -8,33 +8,30 @@ use AppBundle\Entity\Company;
use AppBundle\Entity\Message;
use AppBundle\Form\AnswerType;
use AppBundle\Form\ContactTalentType;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Cookie;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Session\Session;
use Symfony\Component\EventDispatcher\EventDispatcher,
Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken,
Symfony\Component\Security\Http\Event\InteractiveLoginEvent;
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
use Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken;
class AnswerController extends Controller
{
/**
/**
* @Route("/anwser/edit/comment/{id}", name="anwser_edit_comment")
*/
public function anwserEditCommentAction(Request $request, Answer $answer)
{
if($answer) {
{
if ($answer) {
$em = $this->getDoctrine()->getManager();
$answer->setComment($request->get('comment'));
$em->persist($answer);
$em->flush();
}
}
return new JsonResponse(array('success' => "true"));
}
@@ -57,15 +54,16 @@ class AnswerController extends Controller
return $this->finishAnswerAction($request, $company, $answer);
}
public function finishAnswerAction($request, $object, $answer) {
public function finishAnswerAction($request, $object, $answer)
{
$securityContext = $this->container->get('security.authorization_checker');
if($object instanceof Ad) {
if ($object instanceof Ad) {
$route = "ad_show";
$varReqAnswer = "ad";
$contact = $object->getCreator();
$title = $answer->getAd()->getTitle();
}
if($object instanceof Company) {
if ($object instanceof Company) {
$route = "company_show";
$varReqAnswer = "company";
$contact = $object->getMainUser();
@@ -74,7 +72,7 @@ class AnswerController extends Controller
if (!$securityContext->isGranted('IS_AUTHENTICATED_FULLY')) {
return $this->redirectToRoute($route, array('alias' => $object->getAlias()));
}
if($answer) {
if ($answer) {
$em = $this->getDoctrine()->getManager();
$existAnswer = $em->getRepository('AppBundle:Answer')->findOneBy(array('user' => $this->getUser(), $varReqAnswer => $object));
if (!$this->getUser()->hasRole('ROLE_TALENT')) {
@@ -82,7 +80,7 @@ class AnswerController extends Controller
$session = new Session();
$session->getFlashBag()->add('popup_answer_not_allowed', true);
} else {
if($existAnswer && ($existAnswer->getId() !== $answer->getid())){
if ($existAnswer && ($existAnswer->getId() !== $answer->getid())) {
$em->remove($answer);
$session = new Session();
$session->getFlashBag()->add('popup_answer_already_send', true);
@@ -91,31 +89,31 @@ class AnswerController extends Controller
$session->getFlashBag()->add('popup_answer_already_send', false);
$answer->setStatus('SENDED');
$em->persist($answer);
$mediaManager = $this->get('media_manager');
$mediaManager->getThumbnails($answer);
$thumbnailsArray = $answer->getVideo()->getThumbnails();
$img = $thumbnailsArray[0]['sizes'][3]['link'];
$mailManager = $this->get('app.mail_manager');
$link = $this->generateUrl('company_answer_show', array('id' => $answer->getId()),UrlGeneratorInterface::ABSOLUTE_URL);
$link = $this->generateUrl('company_answer_show', array('id' => $answer->getId()), UrlGeneratorInterface::ABSOLUTE_URL);
$mailManager->sendMail(
'Candidature TalentsTube ',
'<div style="margin:0 auto;max-width:600px;background:#FFFFFF;"><table class="" cellpadding="0" cellspacing="0" style="width:100%;font-size:0px;background:#FFFFFF;" align="center"><tbody><tr><td style="text-align:center;vertical-align:top;font-size:0;padding:0px;"><!--[if mso]>
<table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:600px;">
<![endif]--><div style="vertical-align:top;display:inline-block;font-size:13px;text-align:left;width:100%;" class="mj-column-per-100" aria-labelledby="mj-column-per-100"><table width="100%"><tbody><tr><td style="font-size:0;padding:0px;" align="center"><table cellpadding="0" cellspacing="0" style="border-collapse:collapse;border-spacing:0px;" align="center"><tbody><tr><td><img alt="" src="'.$img.'" style="border:none;display:block;outline:none;text-decoration:none;width:100%;max-width:600px;height:auto;" width="600" height="auto"></td></tr></tbody></table></td></tr></tbody></table></div><!--[if mso]>
<![endif]--><div style="vertical-align:top;display:inline-block;font-size:13px;text-align:left;width:100%;" class="mj-column-per-100" aria-labelledby="mj-column-per-100"><table width="100%"><tbody><tr><td style="font-size:0;padding:0px;" align="center"><table cellpadding="0" cellspacing="0" style="border-collapse:collapse;border-spacing:0px;" align="center"><tbody><tr><td><img alt="" src="' . $img . '" style="border:none;display:block;outline:none;text-decoration:none;width:100%;max-width:600px;height:auto;" width="600" height="auto"></td></tr></tbody></table></td></tr></tbody></table></div><!--[if mso]>
</td></tr></table>
<![endif]--></td></tr></tbody></table></div>
<div style="margin:0 auto;max-width:600px;background:#FFFFFF;"><table class="" cellpadding="0" cellspacing="0" style="width:100%;font-size:0px;background:#FFFFFF;" align="center"><tbody><tr><td style="text-align:center;vertical-align:top;font-size:0;padding:0px;"><!--[if mso]>
<table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:600px;">
<![endif]--><div style="vertical-align:top;display:inline-block;font-size:13px;text-align:left;width:100%;" class="mj-column-per-100" aria-labelledby="mj-column-per-100"><table width="100%"><tbody><tr><td style="font-size:0;padding:20px 35px 20px 35px;" align="left"><div class="mj-content" style="cursor:auto;color:#534F4F;font-family:Trebuchet,Helvetica,sans-serif;font-size:14px;line-height:22px;"><p>Bonjour '.$contact->getLastname().' '.$contact->getFirstname().',</p>
<p>Le talent '.$answer->getUser()->getFirstname().' '.$answer->getUser()->getLastname().' a répondu à votre annonce '.$title.'.</p></div></td></tr></tbody></table></div><!--[if mso]>
<![endif]--><div style="vertical-align:top;display:inline-block;font-size:13px;text-align:left;width:100%;" class="mj-column-per-100" aria-labelledby="mj-column-per-100"><table width="100%"><tbody><tr><td style="font-size:0;padding:20px 35px 20px 35px;" align="left"><div class="mj-content" style="cursor:auto;color:#534F4F;font-family:Trebuchet,Helvetica,sans-serif;font-size:14px;line-height:22px;"><p>Bonjour ' . $contact->getLastname() . ' ' . $contact->getFirstname() . ',</p>
<p>Le talent ' . $answer->getUser()->getFirstname() . ' ' . $answer->getUser()->getLastname() . ' a répondu à votre annonce ' . $title . '.</p></div></td></tr></tbody></table></div><!--[if mso]>
</td></tr></table>
<![endif]--></td></tr></tbody></table></div>
<div style="margin:0 auto;max-width:600px;background:#FFFFFF;"><table class="" cellpadding="0" cellspacing="0" style="width:100%;font-size:0px;background:#FFFFFF;" align="center"><tbody><tr><td style="text-align:center;vertical-align:top;font-size:0;padding:0px 0px 40px 0px;"><!--[if mso]>
<table border="0" cellpadding="0" cellspacing="0"><tr><td style="width:600px;">
<![endif]--><div style="vertical-align:top;display:inline-block;font-size:13px;text-align:left;width:100%;" class="mj-column-per-100" aria-labelledby="mj-column-per-100"><table width="100%"><tbody><tr><td style="font-size:0;padding:15px 30px;" align="center"><table cellpadding="0" cellspacing="0" style="border:none;border-radius:30px;" align="center"><tbody><tr><td style="background:#1689FB;border-radius:30px;color:#FFFFFF;cursor:auto;" align="center" valign="middle" bgcolor="#1689FB"><a class="mj-content" href="'.$link.'" style="display:inline-block;text-decoration:none;background:#1689FB;border:1px solid #1689FB;border-radius:30px;color:#FFFFFF;font-family:Trebuchet,Helvetica,sans-serif;font-size:14px;font-weight:normal;padding:15px 30px;" target="_blank">Découvrir le talent</a></td></tr></tbody></table></td></tr></tbody></table></div><!--[if mso]>
<![endif]--><div style="vertical-align:top;display:inline-block;font-size:13px;text-align:left;width:100%;" class="mj-column-per-100" aria-labelledby="mj-column-per-100"><table width="100%"><tbody><tr><td style="font-size:0;padding:15px 30px;" align="center"><table cellpadding="0" cellspacing="0" style="border:none;border-radius:30px;" align="center"><tbody><tr><td style="background:#1689FB;border-radius:30px;color:#FFFFFF;cursor:auto;" align="center" valign="middle" bgcolor="#1689FB"><a class="mj-content" href="' . $link . '" style="display:inline-block;text-decoration:none;background:#1689FB;border:1px solid #1689FB;border-radius:30px;color:#FFFFFF;font-family:Trebuchet,Helvetica,sans-serif;font-size:14px;font-weight:normal;padding:15px 30px;" target="_blank">Découvrir le talent</a></td></tr></tbody></table></td></tr></tbody></table></div><!--[if mso]>
</td></tr></table>
<![endif]--></td></tr></tbody></table></div>',
$contact,
@@ -123,9 +121,9 @@ class AnswerController extends Controller
);
}
}
$session->getFlashBag()->add('popup_answer_send', true);
$em->flush();
$session->getFlashBag()->add('popup_answer_send', true);
$em->flush();
}
return $this->redirect($this->generateUrl($route, array('alias' => $object->getAlias())));
@@ -147,14 +145,15 @@ class AnswerController extends Controller
return $this->generateStep2($request, $company, $type);
}
public function generateStep2(Request $request, $object, $type) {
if($object instanceof Ad) {
public function generateStep2(Request $request, $object, $type)
{
if ($object instanceof Ad) {
$route = "ad_show";
$routeStep3 = 'answer_create_ad_step3';
$varReqAnswer = "ad";
$typeObject = "Ad";
}
if($object instanceof Company) {
if ($object instanceof Company) {
$route = "company_show";
$routeStep3 = 'answer_create_company_step3';
$varReqAnswer = "company";
@@ -162,7 +161,7 @@ class AnswerController extends Controller
}
$securityContext = $this->container->get('security.authorization_checker');
if (!$securityContext->isGranted('IS_AUTHENTICATED_FULLY')) {
return $this->redirectToRoute($route, array('alias' => $object->getAlias()));
return $this->redirectToRoute($route, array('alias' => $object->getAlias()));
}
$em = $this->getDoctrine()->getManager();
$user = $this->getUser();
@@ -182,18 +181,22 @@ class AnswerController extends Controller
}
if ($form->isSubmitted() && $form->isValid()) {
if(!$mustLogin){
return $this->redirect($this->generateUrl($routeStep3, array($varReqAnswer => $object->getId(), 'answer'=> $answer->getId())));
if (!$mustLogin) {
return $this->redirect($this->generateUrl($routeStep3, array($varReqAnswer => $object->getId(), 'answer' => $answer->getId())));
}
}
/*Definition des urls de destination pour ouath login et register*/
$destination_login = $this->generateUrl($routeStep3, array($varReqAnswer => $object->getId(), 'answer'=> $answer->getId()));
/*Definition des urls de destination pour oauth login et register*/
$destination_login = $this->generateUrl($routeStep3, array($varReqAnswer => $object->getId(), 'answer' => $answer->getId()));
$this->get('twig')->addGlobal('destination_login', $destination_login);
$session = new Session();
$session->set('registration_destination', $destination_login);
return $this->render('answer/answer_create_'.$type.'.twig', array(
$res = new Response();
$res->headers->setCookie(new Cookie('redirect_register', $destination_login));
$res->send();
return $this->render('answer/answer_create_' . $type . '.twig', array(
'routeObject' => $route,
'typeObject' => $typeObject,
'object' => $object,
@@ -202,23 +205,24 @@ class AnswerController extends Controller
'video' => $video,
'videos' => $videos,
$varReqAnswer => $object,
'mustLogin' => $mustLogin
'mustLogin' => $mustLogin,
));
}
private function createAnonymousUser() {
private function createAnonymousUser()
{
$userManager = $this->get('fos_user.user_manager');
$user = $userManager->createUser();
$uniqId = uniqId();
$user->setUsername("anonym_".$uniqId);
$user->setUsername("anonym_" . $uniqId);
$user->setFirstname("anonym");
$user->setLastname("anonym");
$user->setEmail("anonym_".$uniqId."@talentstube.com");
$user->setEmail("anonym_" . $uniqId . "@talentstube.com");
$user->setPlainPassword($uniqId);
$user->setEnabled(false);
$user->setRoles(array('ROLE_TALENT_TMP'));
$company = new Company();
$company->setAlias("anonym_".$uniqId);
$company->setAlias("anonym_" . $uniqId);
$company->setType("TALENT_TMP");
$user->setCompany($company);
$userManager->updateUser($user);
@@ -267,7 +271,7 @@ class AnswerController extends Controller
'answer' => $answer,
'object' => $company,
'mustLogin' => $mustLogin,
'route_videotheque' => $route_videotheque
'route_videotheque' => $route_videotheque,
));
}
@@ -306,7 +310,7 @@ class AnswerController extends Controller
'answer' => $answer,
'object' => $ad,
'mustLogin' => $mustLogin,
'route_videotheque' => $route_videotheque
'route_videotheque' => $route_videotheque,
));
}
@@ -368,7 +372,7 @@ class AnswerController extends Controller
$answers = $em->getRepository('AppBundle:Answer')->getAnswerByCompany($user->getCompany()->getId());
return $this->render('company/answer_list.html.twig', [
'answers' => $answers,
'type' => 'answer'
'type' => 'answer',
]);
}
@@ -382,7 +386,7 @@ class AnswerController extends Controller
$answers = $em->getRepository('AppBundle:Answer')->findBy(array('company' => $user->getCompany()->getId(), 'status' => 'SENDED'));
return $this->render('company/answer_list.html.twig', [
'answers' => $answers,
'type' => 'spontaneous'
'type' => 'spontaneous',
]);
}
@@ -423,7 +427,7 @@ class AnswerController extends Controller
{
$message = array('success' => 200,
'filename' => null,
'originalFilename' => null
'originalFilename' => null,
);
foreach ($request->files as $uploadedFile) {
$mediaManager = $this->get('media_manager');
@@ -447,5 +451,4 @@ class AnswerController extends Controller
return new JsonResponse(array('success' => "true"));
}
}
}
+15 -8
View File
@@ -1,3 +1,8 @@
window.onresize = resize;
var w = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
function resize() {
w = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
}
$(document).ready(function () {
//Slide sur tags
if($('.frame').length) {
@@ -172,10 +177,18 @@ $(document).ready(function () {
/*owl carousel*/
if( $(".territory-carousel").length ) {
//Carousel territoire
console.log("carousel =="+w);
if(w <= 640){
var marginValue = 20;
var paddingValue = 10;
} else {
var marginValue = 150;
var paddingValue = 100;
}
$(".territory-carousel").owlCarousel({
items:1,
margin: 150,
stagePadding: 100,
margin: marginValue,
stagePadding: paddingValue,
nav: true,
loop: true,
center:true,
@@ -337,12 +350,6 @@ $(document).ready(function () {
});
});
window.onresize = resize;
var w = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
function resize() {
w = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
}
$('.roleUser').click(function(){
$('.roleUser').removeClass('btn-default');
$('.roleUser').addClass('btn-dark');
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+31
View File
@@ -13096,6 +13096,11 @@ a.link-white-underline {
.blocs-texte-video .btn {
margin-bottom: 15px; }
@media screen and (max-width: 420px) {
.blocs-texte-video h2 {
font-size: 20px; }
.blocs-texte-video a {
font-size: 10px; } }
/*Détail*/
.btn-logo-company {
padding: 10px;
@@ -13308,15 +13313,29 @@ a.link-white-underline {
#liste-jobs {
padding-bottom: 40px; }
@media screen and (max-width: 420px) {
#liste-jobs h2 {
font-size: 20px; } }
#liste-talents {
padding: 120px 0 40px 0; }
@media screen and (max-width: 420px) {
#liste-talents h2 {
font-size: 20px; } }
#liste-company {
padding: 120px 0 40px 0; }
@media screen and (max-width: 420px) {
#liste-company h2 {
font-size: 20px; } }
#liste-territoires {
padding: 120px 0 40px 0; }
@media screen and (max-width: 420px) {
#liste-territoires h2 {
font-size: 20px; }
#liste-territoires a {
font-size: 10px; } }
/*Blocs fixes accueil*/
#endScroll {
@@ -13622,6 +13641,13 @@ a.link-white-underline {
.blocs-texte-video .inside-m {
padding: 40px 40px 40px 80px; }
@media screen and (max-width: 420px) {
.blocs-texte-video .inside-m {
padding: 10px 10px 30px 10px; }
.row-bloc-video-2 {
display: flex;
flex-direction: column-reverse; } }
.no-margin-top {
margin-top: 0px; }
@@ -14597,6 +14623,11 @@ footer {
footer .footer-more-links {
margin-top: 80px;
font-size: 13px; }
@media screen and (max-width: 420px) {
footer .col-footer-logo {
text-align: center; }
footer.page-footer {
padding: 10px 0 20px 0; } }
/*onglets*/
.tabs {
File diff suppressed because one or more lines are too long
+16 -9
View File
@@ -1,3 +1,8 @@
window.onresize = resize;
var w = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
function resize() {
w = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
}
$(document).ready(function () {
//Slide sur tags
if($('.frame').length) {
@@ -172,10 +177,18 @@ $(document).ready(function () {
/*owl carousel*/
if( $(".territory-carousel").length ) {
//Carousel territoire
console.log("carousel =="+w);
if(w <= 640){
var marginValue = 20;
var paddingValue = 10;
} else {
var marginValue = 150;
var paddingValue = 100;
}
$(".territory-carousel").owlCarousel({
items:1,
margin: 150,
stagePadding: 100,
margin: marginValue,
stagePadding: paddingValue,
nav: true,
loop: true,
center:true,
@@ -336,10 +349,4 @@ $(document).ready(function () {
$('#modal_voeux').find("iframe").attr('src',"");
});
});
window.onresize = resize;
var w = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
function resize() {
w = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
}
});
@@ -23,6 +23,16 @@
margin-bottom: 15px;
}
}
@media screen and (max-width: 420px){
.blocs-texte-video{
h2{
font-size: 20px;
}
a{
font-size: 10px;
}
}
}
/*Détail*/
@@ -49,18 +49,41 @@
#liste-jobs {
padding-bottom: 40px;
@media screen and (max-width: 420px){
h2{
font-size: 20px;
}
}
}
#liste-talents {
padding: 120px 0 40px 0;
@media screen and (max-width: 420px){
h2{
font-size: 20px;
}
}
}
#liste-company {
padding: 120px 0 40px 0;
@media screen and (max-width: 420px){
h2{
font-size: 20px;
}
}
}
#liste-territoires {
padding: 120px 0 40px 0;
@media screen and (max-width: 420px){
h2{
font-size: 20px;
}
a{
font-size: 10px;
}
}
}
/*Blocs fixes accueil*/
@@ -51,4 +51,12 @@ footer{
margin-top:80px;
font-size:13px;
}
@media screen and (max-width: 420px){
.col-footer-logo{
text-align: center;
}
&.page-footer{
padding: 10px 0 20px 0;
}
}
}
@@ -20,6 +20,17 @@
padding:40px 40px 40px 80px;
}
}
@media screen and (max-width: 420px){
.blocs-texte-video{
.inside-m{
padding: 10px 10px 30px 10px;
}
}
.row-bloc-video-2{
display: flex;
flex-direction: column-reverse;
}
}
.no-margin-top{
margin-top:0px;
}