Compare commits

...

26 Commits

Author SHA1 Message Date
Thomas MONCHICOURT ceb2f7f7ce Feat : correction mineur #7244 @0h20 2018-09-12 14:22:02 +02:00
Thomas MONCHICOURT 49d47b70f6 Feat : ajout d’un status visionnée candidature talent #7229 @0h15 2018-09-10 15:56:01 +02:00
Thomas MONCHICOURT 49cc496661 Feat : changer les photos de temoignages #7220 @0h10 2018-09-10 15:13:01 +02:00
Thomas MONCHICOURT a46d69f190 Feat : mise en place suppression d’une candidature 2018-09-07 13:35:12 +02:00
Thomas MONCHICOURT 26a41d4eb6 Fix : modal tuto #7202 @1h 2018-09-06 16:52:39 +02:00
Thomas MONCHICOURT feca14ae4d Fix : ajouter au menu et changement status direct #7177 @0h10 2018-09-05 12:26:58 +02:00
Thomas MONCHICOURT 33c1221cb2 Feat : lister les candidatures en admin #7177 @1h 2018-09-05 12:16:56 +02:00
Thomas MONCHICOURT b13ebb9d0f Fix: birtday date error on save 2018-08-29 14:20:53 +02:00
Maxime Thévenot 76f557501e Fix : update registration template to fix button 2018-08-28 15:27:09 +02:00
Maxime Thévenot 2eb399776b Fix : hover color on territory title 2018-08-28 11:44:22 +02:00
Maxime Thévenot 8986ae738a Fix : typo in wording and redirect castre mazamet 2018-08-28 11:29:07 +02:00
Thomas MONCHICOURT 7dfaf01705 Fix : correction template pour message direct au talent 2018-08-27 12:22:26 +02:00
Thomas MONCHICOURT a4631872e0 Fix : https on graph picture facebook 2018-08-24 12:24:04 +02:00
Thomas MONCHICOURT ddc6b18d0a Fix : erreur 500 talent non connecté 2018-08-24 12:20:43 +02:00
Thomas MONCHICOURT 6033516273 Fix : erreur 500 sur talent en tant qu’admin 2018-08-23 17:10:11 +02:00
Thomas MONCHICOURT 73a44a011d Fix : double tags input 2018-08-23 16:39:01 +02:00
Thomas MONCHICOURT 57299b841e Fix : check birthday if empty talent 2018-08-23 16:09:03 +02:00
Thomas MONCHICOURT fb11613b7c Feat : rechargement de la dropzone au chargement de video sur les réponse 2018-08-23 15:31:54 +02:00
Thomas MONCHICOURT e13ef32197 Merge branch 'master' into develop 2018-08-23 15:23:18 +02:00
Thomas MONCHICOURT e70c1c7f5e Feat : dropzone reload 2018-08-23 15:19:46 +02:00
Thomas MONCHICOURT 0c9c4f0fc2 Fix : video vimeo pour dev 2018-08-23 15:19:37 +02:00
Thomas MONCHICOURT 5cd78b272a Fix : video égérie talent 2018-08-23 14:56:42 +02:00
Thomas MONCHICOURT f3597146ad Feat : ajout title analitycs annonce #7115 @0h10 2018-08-23 14:15:12 +02:00
Thomas MONCHICOURT f52f49ce9a Fix : css form parent probleme 2018-08-23 13:57:16 +02:00
Thomas MONCHICOURT 0b6a04e8d0 Feat : form validation talent + datepicker 2018-08-23 12:32:30 +02:00
Thomas MONCHICOURT 0dfc9af863 Feat : modification couleur cookie bar 2018-08-22 16:48:40 +02:00
46 changed files with 748 additions and 140 deletions
+2 -1
View File
@@ -11,4 +11,5 @@ rewrite ^/page/presentation-talent$ https://www.talentstube.com/cv-video perma
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/recherche/$ https://www.talentstube.com/annonce/recherche permanent;
rewrite ^/annonce/recherche/$ https://www.talentstube.com/annonce/recherche permanent;
rewrite ^/territoire/1573-communaute-d-agglomeration-castres-mazamet/$ https://www.talentstube.com/territoire/1573-castres-mazamet/ permanent;
@@ -15,7 +15,7 @@
</p>
{% endif %}
<br/><br/>
{% if app.request.cookies.get('redirect_register')is defined %}
{% if app.request.cookies.get('redirect_register') is defined and app.request.cookies.get('redirect_register') is not null %}
<div class="center">
<a href="{{ app.request.cookies.get('redirect_register') }}" class="btn btn-default">Poursuivre votre candidature</a>
</div>
@@ -9,13 +9,20 @@
{% set text_accept_button = fairlane_cookie_consent.twig.text_accept_button %}
{% endif %}
<div id="fairlane-cookie-consent" {% if fairlane_cookie_consent.useBootstrap == true %}class="navbar navbar-fixed-top"{% endif %}>
<p>
{{ text_info }}
{% if fairlane_cookie_consent.twig.url_additional_info| length > 1 and text_additional_info_link | length > 1 %}
<a href="{{ fairlane_cookie_consent.twig.url_additional_info }}" target="_blank">{{ text_additional_info_link }}</a>
{% endif %}
</p>
<button class="btn btn-default">{{ text_accept_button }}</button>
<div class="container">
<div class="row">
<div class="col s8">
<p>{{ text_info }}
{% if fairlane_cookie_consent.twig.url_additional_info| length > 1 and text_additional_info_link | length > 1 %}
<a href="{{ fairlane_cookie_consent.twig.url_additional_info }}" target="_blank">{{ text_additional_info_link }}</a>
{% endif %}
</p>
</div>
<div class="col s4">
<button class="btn btn-default">{{ text_accept_button }}</button>
</div>
</div>
</div>
</div>
{% if fairlane_cookie_consent.useJquery %}
<script type="text/javascript">
@@ -552,8 +552,20 @@
<source>label.answer.history.title</source>
<target>Historique des messages envoyés</target>
</trans-unit>
<!-- Territoires -->
<trans-unit id="message.territory.list.ads">
<source>message.territory.list.ads</source>
<target>offres d'emploi en cours sur ce territoire</target>
</trans-unit>
<trans-unit id="message.territory.list.ad">
<source>message.territory.list.ad</source>
<target>offre d'emploi en cours sur ce territoire</target>
</trans-unit>
<trans-unit id="message.territory.list.noads">
<source>message.territory.list.noads</source>
<target>Découvrez les entreprises qui recrutent sur ce territoire</target>
</trans-unit>
</body>
</file>
</xliff>
@@ -0,0 +1,134 @@
{% extends 'admin/base_admin.html.twig' %}
{% block contentHeader %}
<h1>
Liste des Candidatures
</h1>
<ol class="breadcrumb">
<li><a href="{{ path('admin_dashboard') }}"><i class="fa fa-dashboard"></i> Dashboard</a></li>
<li class="active">Annonces</li>
</ol>
{% endblock %}
{% block content %}
<div class="box box-primary">
<div class="box-body">
<table id="answer_list_table" class="table table-hover table-bordered">
<thead>
<tr>
<th class="col-xs-2">Date d'envoi</th>
<th>Utilisateur</th>
<th>Annonce / Entreprise</th>
<th>video</th>
<th>Status</th>
<th>action</th>
</tr>
</thead>
<tbody>
{% for answer in answers if answer.status != "DRAFT" %}
<tr>
<td data-order="{{ answer.sendTime|date('U') }}">{{ answer.sendTime|date('d/m/Y') }}</td>
<td>{{ answer.user.firstname }} {{ answer.user.lastname }}</td>
{% if answer.ad %}
<td>{{ answer.ad.company.brandname }} - {{ answer.ad.title }}</td>
{% else %}
<td>{{ answer.company.brandname }}</td>
{% endif %}
<td>
ID Candidature : {{ answer.id }}<br />
{% if answer.video.cdnUrl is defined %}
<iframe src="https://player.vimeo.com/video/{{ answer.video.cdnUrl|replace({ "/videos/": ""}) }}"
width="auto" height="auto" frameborder="0" webkitallowfullscreen mozallowfullscreen
allowfullscreen></iframe>
{% endif %}
</td>
<td class="status">{{ answer.status }}</td>
<td>
Actions :
<select class="changeStatus" name="changeStatus" data-id="{{ answer.id }}">
<option value="null">choisir</option>
<option value="SENDED">Envoyé</option>
<option value="DRAFT">Brouillon</option>
<option value="REFUSED">Refuser</option>
</select>
<br />
<a class="delete-answer" href='{{ path("admin_answer_delete",{'id':answer.id }) }}' data-toggle="tooltip" title="Supprimer">
Supprimer <i class="fa fa-trash"></i>
</a>
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
{% endblock %}
{% block javascripts %}
<script>
$(function () {
$('.changeStatus').change(function(e){
e.preventDefault();
var idAnswer = $(this).data('id');
var value = $(this).val();
var route = '/app_dev.php/admin/config/answer/' + idAnswer + '/status/' + value;
var select = $(this);
$.ajax({
type: "POST",
url: route,
dataType: "json",
success: function (msg) {
console.log("ok");
select.parent().prev('.status').html(value);
}
});
});
$('#answer_list_table').DataTable({
"paging": true,
"lengthChange": true,
"searching": true,
"ordering": true,
"info": true,
"autoWidth": false,
"language": {
"url": "http://cdn.datatables.net/plug-ins/1.10.11/i18n/French.json"
},
"columnDefs": [
{"targets": 1, "searchable": true, "orderable": true},
{"targets": 2, "searchable": true, "orderable": true},
{"targets": 4, "searchable": true, "orderable": true, "className": "text-center"},
],
"order": [[ 0, "desc" ]]
});
$(".delete-answer").confirm({
title: "Êtes vous sûr de supprimer cette candidature ?",
content: "Supprimer cette candidature supprimera le média associé",
type: 'red',
boxWidth: '30%',
useBootstrap: false,
buttons: {
confirm: {
text: 'Confirmer',
action: function () {
console.log(this.$target);
location.href = this.$target.attr('href');
return true;
}
},
cancel: {
text: 'Annuler'
}
}
});
});
</script>
{% endblock %}
@@ -28,6 +28,11 @@
<i class="fa fa-file-video-o" aria-hidden="true"></i> <span>Vidéos Talent</span>
</a>
</li>
<li>
<a href="{{ path('admin_anwser_moderation_list') }}">
<i class="fa fa-file-video-o" aria-hidden="true"></i> <span>Candidatures</span>
</a>
</li>
</ul>
<ul class="sidebar-menu">
<li class="header">ENTITEES</li>
@@ -1,13 +1,13 @@
<div id="modal-tuto" class="modal">
<div id="modal-tuto" class="modal modal-fixed-footer">
<div class="modal-content">
<div class="row">
<div class="col s12">
<h3 class="color-blue1 center-align title-tuto">Les conseils de Talents Tube</h3>
<div class="col-content">
<h3 class="color-blue1 center-align">Les conseils de Talents Tube</h3>
<div class="owl-carousel tuto-carousel">
<div class="item-tuto-webcam carousel-item">
<div class="row">
<div class="col s4 offset-s1 hide-on-med-and-down">
<div class="col s3 offset-s1 hide-on-med-and-down">
<img class="responsive-img" src="{{ asset('img/img_popupcv/cv_video_step_1.svg')}}" alt="">
</div>
<div class="col s11 m11 l6 offset-s1 left-align">
@@ -31,7 +31,7 @@
</div>
<div class="item-tuto-webcam carousel-item">
<div class="row">
<div class="col s4 offset-s1 hide-on-med-and-down">
<div class="col s3 offset-s1 hide-on-med-and-down">
<img class="responsive-img" src="{{ asset('img/img_popupcv/cv_video_step_2.svg')}}" alt="">
</div>
<div class="col s11 m11 l6 offset-s1 left-align">
@@ -51,7 +51,7 @@
</div>
<div class="item-tuto-webcam carousel-item">
<div class="row">
<div class="col s4 offset-s1 hide-on-med-and-down">
<div class="col s3 offset-s1 hide-on-med-and-down">
<img class="responsive-img" src="{{ asset('img/img_popupcv/cv_video_step_3.svg')}}" alt="">
</div>
<div class="col s11 m11 l6 offset-s1 left-align">
@@ -73,12 +73,15 @@
</div>
</div>
</div>
<div class="carousel-fixed-item right">
<a class="text close-tuto">Passer l'intro</a>
<a class="btn btn-default next-slide">suivant</a>
</div>
</div>
</div>
</div>
</div>
<div class="modal-footer">
<div id="customDots" class="owl-dots"></div>
<div class="carousel-fixed-item right">
<a class="text close-tuto">Passer l'intro</a>
<a class="btn btn-default next-slide">suivant</a>
</div>
</div>
</div>
@@ -2,7 +2,7 @@
{% block content %}
<div class="fluid-container bg-grey-3 dashboardWrapper">
<div class="fluid-container bg-grey-3 dashboardWrapper dashboardCompanyWrapper">
<div class="container">
<div class="row flexcontainer">
{% include "company/menu.html.twig" ignore missing %}
@@ -100,7 +100,7 @@
{% elseif not is_granted('ROLE_COMPANY') %}
{% if not ad.isPromoted %}
<p class="item-detail-reply">
<a href="{{ path('talent_answer_create',{'id': ad.getId()}) }}"
<a title="postuler-bottom" href="{{ path('talent_answer_create',{'id': ad.getId()}) }}"
class="btn btn-default">
Postuler
</a>
@@ -58,7 +58,7 @@
{% elseif not is_granted('ROLE_COMPANY') %}
{% if not ad.isPromoted %}
<p class="item-detail-reply">
<a href="{{ path('talent_answer_create',{'id': ad.getId()}) }}"
<a title="postuler-side" href="{{ path('talent_answer_create',{'id': ad.getId()}) }}"
class="btn btn-default">
Postuler
</a>
@@ -32,15 +32,22 @@
<div class="row row-tags row-noMargin">
<div class="col s11 col-noPadding" style="position:relative;">
<div class="chip center-align">
{% set nbAds = c.getPublishedAds|length %}
{% set fragment = "" %}
{% if nbAds > 0 %}
{% set fragment = "offers" %}
{% endif %}
<a class="td-none color-grey3"
href="{{ path('company_show',{'alias': c.alias, '_fragment':'offers' }) }}">
href="{{ path('company_show',{'alias': c.alias, '_fragment': fragment }) }}">
{% set nbAds = c.getPublishedAds|length %}
{% if nbAds > 1 %}
<strong>{{ c.getPublishedAds|length }} offres d'emploi en
cours</strong>
{% else %}
{% elseif nbAds == 1 %}
<strong>{{ c.getPublishedAds|length }} offre d'emploi en
cours</strong>
{% else %}
<strong>candidature spontanée</strong>
{% endif %}
</a>
</div>
@@ -133,7 +133,7 @@
{% if t.extra.terType is defined %}
<div class="m-t-15 fs-12 text-100">{{ t.extra.terType|upper }}</div>
{% endif %}
<div class="m-t-5">
<div class="m-t-5 hover-none">
<a href="{{ path('territory_show',{'alias': t.alias }) }}" class="color-white td-none">{{ t.brandName|upper }}</a>
</div>
</div>
@@ -165,7 +165,7 @@
<a href="#!" data-video="#video2" class="img_content embed-responsive embed-responsive-16by9" style="background:url(/img-cnt/cv_video.jpg);background-size:cover;">
<span class="playerbtn"></span>
</a>
<iframe style="display:block;" class="hide" id="video2" src="https://player.vimeo.com/video/215657518?title=0&byline=0&portrait=0" width="100%" height="344" frameborder="0" webkitallowfullscreen="webkitallowfullscreen" mozallowfullscreen="mozallowfullscreen" allowfullscreen="allowfullscreen"></iframe>
<iframe style="display:block;" class="hide" id="video2" src="https://player.vimeo.com/video/286344340?title=0&byline=0&portrait=0" width="100%" height="344" frameborder="0" webkitallowfullscreen="webkitallowfullscreen" mozallowfullscreen="mozallowfullscreen" allowfullscreen="allowfullscreen"></iframe>
</div>
<div class="col l6 m12 s12 valign-wrapper">
<div class="inside-m valign">
@@ -12,12 +12,12 @@
<div class="row">
<div class="col s12">
{% if medias|length == 0 and is_granted('ROLE_TALENT') %}
<div class="col s12 col-actions center-align">
<div class="col s12 center-align">
<br/><br/>
<strong class="color-grey3">Vous ne possédez pas encore de CV vidéo!</strong><br/>
<span class="color-grey2">Cliquez sur le bouton pour ajouter votre première vidéo.</span>
<br/><br/>
<a class="waves-effect waves-light btn btn-default modal-trigger" href="#addVideo">Ajouter une
<a class="btn btn-default modal-trigger" href="#addVideo">Ajouter une
vidéo</a>
</div>
{% else %}
@@ -38,7 +38,14 @@
<a href="{{ path('talent_answer_create',{id:a.ad.id}) }}">
<i class="fa fa-pencil-square-o" aria-hidden="true"></i>
</a>
{% endif %}{{ a.status|trans }}
{% endif %}
{% if a.isViewed %}
{% if a.isViewed.status == "DRAFT" %}
{{ 'VIEWED'|trans }}
{% endif %}
{% else %}
{{ a.status|trans }}
{% endif %}
</td>
</tr>
{% endfor %}
@@ -19,6 +19,29 @@
{% endblock %}
{% block javascripts %}
{{ parent() }}
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDYV8IJGtIoWLfXJQQvIuDQ88n2aEuRgpg&libraries=places"></script>
{% javascripts
'@vendors'
'@global'
'@talents'
output='assetic/main.dashboard.talent.js' filter='?uglifyjs2' %}
<script src="{{ asset_url }}"></script>
{% endjavascripts %}
<script type="text/javascript">
$.fn.datepicker.languages['fr-FR'] = {
format: 'dd/mm/yyyy',
days: ['Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi'],
daysShort: ['Dim', 'Lun', 'Mar', 'Mer', 'Jeu', 'Ven', 'Sam'],
daysMin: ['Di', 'Lu', 'Ma', 'Me', 'Je', 'Ve', 'Sa'],
weekStart: 1,
months: ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Aout', 'Septembre', 'Octobre', 'Novembre', 'Décembre'],
monthsShort: ['Jan', 'Fev', 'Mar', 'Avr', 'Mai', 'Jun', 'Jui', 'Aou', 'Sep', 'Oct', 'Nov', 'Dec']
};
$('.datepicker').datepicker({
language: 'fr-FR'
});
$('form[name="talent_profile"]').validate();
</script>
{% endblock %}
@@ -165,7 +165,6 @@
{% endblock %}
{% block javascripts %}
{{ parent() }}
<script type="text/javascript">
var urlDropzone = '{{ path("upload_media_presentation") }}';
@@ -65,18 +65,21 @@
<div class="col s11 col-noPadding" style="position:relative;">
<div class="chip center-align">
<p class="m-0">
{% set nbAds = 0 %}
{% set fragment = "companies" %}
{% for territoryAd in c.getTerritoryAds if territoryAd.ad != null %}
{% set nbAds = nbAds + 1 %}
{% set fragment = "offers" %}
{% endfor %}
<a class="td-none color-grey3"
href="{{ path('territory_show',{'alias': c.alias, '_fragment':'offers' }) }}">
{% set nbAds = 0 %}
{% for territoryAd in c.getTerritoryAds if territoryAd.ad != null %}
{% set nbAds = nbAds + 1 %}
{% endfor %}
href="{{ path('territory_show',{'alias': c.alias, '_fragment': fragment }) }}">
{% if nbAds > 1 %}
<strong>{{ nbAds }} offres d'emploi en
cours sur ce territoire</strong>
<strong>{{ nbAds }} {{ 'message.territory.list.ads'|trans }}</strong>
{% elseif nbAds == 1 %}
<strong>{{ nbAds }} {{ 'message.territory.list.ad'|trans }}</strong>
{% else %}
<strong>{{ nbAds }} offre d'emploi en
cours sur ce territoire</strong>
<strong>{{ 'message.territory.list.noads'|trans }}</strong>
{% endif %}
</a>
</p>
@@ -30,6 +30,10 @@ assetic:
- 'js/company.js'
- 'js/vendors/moment.min.js'
- 'js/vendors/jquery.daterangepicker.min.js'
talents:
inputs:
- 'js/vendors/datepicker.min.js'
- 'js/vendors/jquery.validate.min.js'
admin:
inputs:
- 'admin/AdminLTE/plugins/jQuery/jquery-2.2.3.min.js'
@@ -0,0 +1,68 @@
<?php
namespace AppBundle\Controller\Admin;
use AppBundle\Entity\Answer;
use AppBundle\Entity\Ad;
use AppBundle\Form\Admin\AdType;
use AppBundle\Form\Admin\ModerationDeclineType;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\JsonResponse;
class AnswerController extends Controller
{
/***********************
* MODERATION
***********************/
/**
* @Route("/admin/moderation/anwser/list", name="admin_anwser_moderation_list")
*/
public function adminAnswerModerationListAction()
{
$em = $this->getDoctrine()->getManager();
$answers = $em->getRepository('AppBundle:Answer')->findAll();
return $this->render('admin/answer_list_moderation.html.twig', array(
'answers' => $answers,
));
}
/**
* @Route("/admin/config/answer/{id}/status/{status}", name="admin_answer_status")
*/
public function adminStatusAnswerAction(Answer $answer, $status)
{
$em = $this->getDoctrine()->getManager();
$answer->setStatus($status);
$em->persist($answer);
$em->flush();
$result = array("msg" => "toggle ok");
return new JsonResponse($result);
}
/**
* @Route("/admin/config/answer/{id}/delete", name="admin_answer_delete")
*/
public function adminAnswerDeleteAction(Answer $answer)
{
$em = $this->getDoctrine()->getManager();
$t = $em->getRepository('AppBundle:User')->findByRole('ROLE_TALENT');
$media = $answer->getVideo();
$answer->setVideo(null);
$em->remove($answer);
$mediaManager = $this->get('media_manager');
if($media){
$mediaManager->delete($media);
$em->remove($media);
}
$em->flush();
return $this->redirectToRoute('admin_anwser_moderation_list');
}
}
@@ -56,6 +56,8 @@ class TalentController extends Controller
$form = $this->createForm(TalentProfileType::class, $user);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$birthday = \DateTime::createFromFormat('d/m/Y', $form->getData()->getBirthday());
$user->setBirthday($birthday);
$companyManager = $this->get('app.company_manager');
$companyManager->updateTalent($user);
$event = new UserEvent($user);
@@ -216,12 +218,12 @@ class TalentController extends Controller
if ($form->isSubmitted() && $form->isValid()) {
$userCompany = $this->getUser();
$message = $form['message']->getData();
$htmlView = $this->renderView('email/contact_talent.html.twig', array(
$htmlView = $this->renderView('email/contact_default.html.twig', array(
'type' => 'html',
'message' => $message,
'user' => $user{0},
));
$plainView = $this->renderView('email/contact_talent.html.twig', array(
$plainView = $this->renderView('email/contact_default.html.twig', array(
'type' => 'plain',
'message' => $message,
'user' => $user{0},
@@ -247,14 +249,16 @@ class TalentController extends Controller
$mustLogin = true;
if ($this->getUser() && $this->getUser()->hasRole('ROLE_TALENT')) {
$mustLogin = false;
if ($this->getUser() && ($this->getUser()->getCompany()->getId() == $talent->getId())) {
$showRecommendation = false;
}
}
$showRecommendation = true;
if ($this->getUser() && !$this->getUser()->hasRole('ROLE_TALENT')) {
$showRecommendation = false;
}
if ($this->getUser() && ($this->getUser()->getCompany()->getId() == $talent->getId())) {
$showRecommendation = false;
}
$em = $this->getDoctrine()->getManager();
$recommendations = $em->getRepository('AppBundle:Recommendation')->findBy(
array('isEnabled'=>true, 'status'=> 'SENDED', 'user'=> $talent->getMainUser()),
@@ -107,7 +107,7 @@ class TerritoryAdminType extends AbstractType
'data' => $terType,
'choices' => array(
'Région' => 'Région',
'Communauté d\'aglgomération' => 'Communauté d\'aglgomération',
'Communauté d\'agglomération' => 'Communauté d\'agglomération',
'Communauté de commune' => 'Communauté de commune',
'Commune' => 'Commune',
'Département' => 'Département',
@@ -16,6 +16,7 @@ use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\DateType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\OptionsResolver\OptionsResolver;
@@ -26,7 +27,10 @@ class TalentProfileType extends AbstractType
{
$user = $options['data'];
$user->getCompany()->init();
$birthday = $options['data']->getBirthday();
if(!empty($birthday)){
$options['data']->setBirthday($birthday->format('d/m/Y'));
}
$builder
->add('firstname', null, array(
'label' => 'Prénom',
@@ -36,11 +40,12 @@ class TalentProfileType extends AbstractType
'label' => 'Nom',
'required' => true,
))
->add('birthday', DateType::class, array(
'widget' => 'single_text',
->add('birthday', TextType::class, array(
'label' => 'Date de naissance',
'attr' => array(
'class' => 'calendar'
'class' => 'datepicker',
'data-date-format' => "dd/mm/yyyy",
'data-toggle'=>"datepicker"
)
))
->add('gender', ChoiceType::class, array(
@@ -146,7 +146,7 @@ class FOSUBUserProvider extends BaseFOSUBProvider
$lastname = $data['lastName'];
} else {
$userPhoto = 'http://graph.facebook.com/'.$data['id'].'/picture?height=200';
$userPhoto = 'https://graph.facebook.com/'.$data['id'].'/picture?height=200';
if(isset($data['birthday'])){
$birthday = \DateTime::createFromFormat ('m/d/Y', $data['birthday']);
} else {
@@ -84,17 +84,20 @@ class MediaManager
*/
public function delete($entity)
{
$video = $entity;
if (unlink($this->mediaVideoDir . $video->getOriginalUrl())) {
if ($this->env != "dev") {
if ($this->env != "dev") {
$video = $entity;
if (unlink($this->mediaVideoDir . $video->getOriginalUrl())) {
$response = $this->vimeo->request($video->getCdnUrl(), [], 'DELETE');
}
$this->em->remove($video);
$this->em->flush();
$this->em->remove($video);
$this->em->flush();
return array('success' => "true");
return array('success' => "true");
} else {
return array('success' => "false");
}
} else {
return array('success' => "false");
return array('success' => "true");
}
}
@@ -134,9 +137,9 @@ class MediaManager
$thumbnails = array();
//PUSH VIDEO TO Vimeo
if ($this->env == "dev") {
$uriVimeo = "/videos/215657518";
$uriVimeo = "/videos/217844541";
$nameVimeo = "name";
$linkVimeo = "/videos/215657518";
$linkVimeo = "/videos/217844541";
} else {
$urlToPull = $this->mediaVideoUrl . $fileName;
$response = $this->vimeo->request('/me/videos', array('type' => 'pull', 'link' => $urlToPull), 'POST');
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
+4 -1
View File
@@ -2800,11 +2800,14 @@
.overlay-hover {
opacity: 0.7;
transition: .5s ease;
transition: 0.5s ease;
backface-visibility: hidden; }
.overlay-hover:hover {
opacity: 1; }
.hover-none a:hover {
color: #ffffff; }
.color-white {
color: #FFFFFF; }
+218 -26
View File
@@ -12649,6 +12649,152 @@ coloring of icons.
color: #49e;
font-weight: 700; }
/*!
* Datepicker v1.0.0
* https://fengyuanchen.github.io/datepicker
*
* Copyright 2014-present Chen Fengyuan
* Released under the MIT license
*
* Date: 2018-08-05T03:02:13.513Z
*/
.datepicker-container {
-moz-user-select: none;
-ms-touch-action: none;
-ms-user-select: none;
-webkit-tap-highlight-color: transparent;
-webkit-touch-callout: none;
-webkit-user-select: none;
background-color: #fff;
direction: ltr;
font-size: 12px;
left: 0;
line-height: 30px;
position: fixed;
top: 0;
touch-action: none;
user-select: none;
width: 210px;
z-index: -1; }
.datepicker-container:after, .datepicker-container:before {
border: 5px solid transparent;
content: " ";
display: block;
height: 0;
position: absolute;
width: 0; }
.datepicker-dropdown {
-webkit-box-shadow: 0 3px 6px #ccc;
-webkit-box-sizing: content-box;
border: 1px solid #ccc;
box-shadow: 0 3px 6px #ccc;
box-sizing: content-box;
position: absolute;
z-index: 1; }
.datepicker-inline {
position: static; }
.datepicker-top-left, .datepicker-top-right {
border-top-color: #39f; }
.datepicker-top-left:after, .datepicker-top-left:before, .datepicker-top-right:after, .datepicker-top-right:before {
border-top: 0;
left: 10px;
top: -5px; }
.datepicker-top-left:before, .datepicker-top-right:before {
border-bottom-color: #39f; }
.datepicker-top-left:after, .datepicker-top-right:after {
border-bottom-color: #fff;
top: -4px; }
.datepicker-bottom-left, .datepicker-bottom-right {
border-bottom-color: #39f; }
.datepicker-bottom-left:after, .datepicker-bottom-left:before, .datepicker-bottom-right:after, .datepicker-bottom-right:before {
border-bottom: 0;
bottom: -5px;
left: 10px; }
.datepicker-bottom-left:before, .datepicker-bottom-right:before {
border-top-color: #39f; }
.datepicker-bottom-left:after, .datepicker-bottom-right:after {
border-top-color: #fff;
bottom: -4px; }
.datepicker-bottom-right:after, .datepicker-bottom-right:before, .datepicker-top-right:after, .datepicker-top-right:before {
left: auto;
right: 10px; }
.datepicker-panel > ul {
margin: 0;
padding: 0;
width: 102%; }
.datepicker-panel > ul:after, .datepicker-panel > ul:before {
content: " ";
display: table; }
.datepicker-panel > ul:after {
clear: both; }
.datepicker-panel > ul > li {
background-color: #fff;
cursor: pointer;
float: left;
height: 30px;
list-style: none;
margin: 0;
padding: 0;
text-align: center;
width: 30px; }
.datepicker-panel > ul > li:hover {
background-color: #e5f2ff; }
.datepicker-panel > ul > li.muted, .datepicker-panel > ul > li.muted:hover {
color: #999; }
.datepicker-panel > ul > li.highlighted {
background-color: #e5f2ff; }
.datepicker-panel > ul > li.highlighted:hover {
background-color: #cce5ff; }
.datepicker-panel > ul > li.picked, .datepicker-panel > ul > li.picked:hover {
color: #39f; }
.datepicker-panel > ul > li.disabled, .datepicker-panel > ul > li.disabled:hover {
background-color: #fff;
color: #ccc;
cursor: default; }
.datepicker-panel > ul > li.disabled.highlighted, .datepicker-panel > ul > li.disabled:hover.highlighted {
background-color: #e5f2ff; }
.datepicker-panel > ul > li[data-view="month next"], .datepicker-panel > ul > li[data-view="month prev"], .datepicker-panel > ul > li[data-view="year next"], .datepicker-panel > ul > li[data-view="year prev"], .datepicker-panel > ul > li[data-view="years next"], .datepicker-panel > ul > li[data-view="years prev"], .datepicker-panel > ul > li[data-view=next] {
font-size: 18px; }
.datepicker-panel > ul > li[data-view="month current"], .datepicker-panel > ul > li[data-view="year current"], .datepicker-panel > ul > li[data-view="years current"] {
width: 150px; }
.datepicker-panel > ul[data-view=months] > li, .datepicker-panel > ul[data-view=years] > li {
height: 52.5px;
line-height: 52.5px;
width: 52.5px; }
.datepicker-panel > ul[data-view=week] > li, .datepicker-panel > ul[data-view=week] > li:hover {
background-color: #fff;
cursor: default; }
.datepicker-hide {
display: none; }
/*Base
---------------------------------------------------*/
/*************************** VARIABLES ***************************/
@@ -13013,11 +13159,14 @@ coloring of icons.
.overlay-hover {
opacity: 0.7;
transition: .5s ease;
transition: 0.5s ease;
backface-visibility: hidden; }
.overlay-hover:hover {
opacity: 1; }
.hover-none a:hover {
color: #ffffff; }
.color-white {
color: #FFFFFF; }
@@ -13307,8 +13456,8 @@ a.link-white-underline {
position: fixed;
bottom: 0;
width: 100%;
background: rgba(255, 255, 255, 0.8);
text-align: center;
background: rgba(0, 0, 0, 0.8);
color: #FFF;
padding: 20px;
font-size: 12px; }
@@ -14811,6 +14960,17 @@ textarea.materialize-textarea:focus:not([readonly]) {
box-shadow: 0 1px 0 0 #1689fb;
outline: none; }
form[name=talent_profile] div.col label.error {
color: red;
position: absolute;
top: 20px;
left: 0; }
form[name=talent_profile] div.col label.error.active {
color: red; }
form[name=talent_profile] .bg-bordered .col div {
position: relative; }
body {
font-size: 16px;
font-family: "Raleway", sans-serif;
@@ -15938,6 +16098,18 @@ span.titleVideo {
text-decoration: none;
color: #000; }
.dashboardCompanyWrapper .profil-picture .responsive-img {
object-fit: cover;
width: auto;
height: auto;
max-height: 100%; }
#ad_show .profil-picture .responsive-img, #company_show .profil-picture .responsive-img {
object-fit: cover;
width: auto;
height: auto;
max-height: 100%; }
/*tableaux*/
thead {
border-bottom: solid 2px #232323;
@@ -16009,33 +16181,17 @@ tbody td {
display: none; }
.tuto-carousel .item-tuto-webcam {
height: 385px; }
.tuto-carousel .owl-dots {
margin-top: 30px;
text-align: center;
-webkit-tap-highlight-color: transparent; }
.tuto-carousel .owl-dots .owl-dot {
display: inline-block;
zoom: 1; }
.tuto-carousel .owl-dots .owl-dot span {
width: 10px;
height: 10px;
margin: 5px 7px;
background: #D6D6D6;
display: block;
-webkit-backface-visibility: visible;
transition: opacity .2s ease;
border-radius: 30px; }
.tuto-carousel .owl-dots .owl-dot.active span, .tuto-carousel .owl-dots .owl-dot:hover span {
background: #155EE5; }
.tuto-carousel .owl-nav {
width: 103%;
z-index: 10; }
.carousel-fixed-item {
margin-right: 45px;
margin-top: -40px;
position: relative;
z-index: 100; }
z-index: 100;
display: flex;
justify-items: center;
align-items: center; }
.title-bubble {
display: inline-block;
@@ -16059,7 +16215,43 @@ tbody td {
width: 80%;
min-height: 540px;
background: #FFFFFF; }
#answerPage #modal-tuto .title-tuto {
position: fixed;
width: 100%;
background: #FFF;
display: block;
z-index: 2;
height: 30px;
top: 0;
left: 0;
padding: 15px 0; }
#answerPage #modal-tuto .modal-footer {
height: 70px;
background: #FFFFFF;
border: none; }
#answerPage #modal-tuto .modal-footer .owl-dots {
margin-top: 30px;
text-align: center;
-webkit-tap-highlight-color: transparent;
position: absolute;
left: 50%;
bottom: 15px; }
#answerPage #modal-tuto .modal-footer .owl-dots .owl-dot {
display: inline-block;
zoom: 1; }
#answerPage #modal-tuto .modal-footer .owl-dots .owl-dot span {
width: 10px;
height: 10px;
margin: 5px 7px;
background: #D6D6D6;
display: block;
-webkit-backface-visibility: visible;
transition: opacity .2s ease;
border-radius: 30px; }
#answerPage #modal-tuto .modal-footer .owl-dots .owl-dot.active span, #answerPage #modal-tuto .modal-footer .owl-dots .owl-dot:hover span {
background: #155EE5; }
#answerPage #modal-tuto .col-content {
margin-top: 50px;
margin-bottom: 0; }
#answerPage #modal-tuto .close-tuto {
margin-right: 60px;
@@ -16101,17 +16293,17 @@ tbody td {
color: #FFF;
text-decoration: none; }
@media only screen and (max-width: 800px) {
@media only screen and (max-width: 1000px) {
#modal-tuto {
width: 98%; }
#modal-tuto .modal-footer .owl-dots {
display: none; }
#modal-tuto .modal-content {
padding: 10px; }
#modal-tuto .modal-content h3 {
font-size: 1.5rem; }
#modal-tuto .modal-content .col {
padding: 0; }
#modal-tuto .modal-content .owl-dots {
display: none; }
#modal-tuto .modal-content .carousel-fixed-item {
margin-top: 0;
margin-right: 0;
File diff suppressed because one or more lines are too long
Binary file not shown.

Before

Width:  |  Height:  |  Size: 107 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 214 KiB

After

Width:  |  Height:  |  Size: 9.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 214 KiB

+2 -1
View File
@@ -32,7 +32,8 @@ $(document).ready(function(){
margin: 50,
stagePadding: padding,
navRewind:false,
navText: ['<span class="left-arrow"></span>', '<span class="right-arrow"></span>']
navText: ['<span class="left-arrow"></span>', '<span class="right-arrow"></span>'],
dotsContainer: '#customDots',
});
$(".tuto-carousel").trigger('refresh.owl.carousel');
$(".tuto-carousel").on('changed.owl.carousel', function(event) {
+24 -20
View File
@@ -34,30 +34,34 @@ if ($("#dropzone-row").length) {
$('.meter').show();
});
self.on("success", function (file, response) {
$(window).unbind("beforeunload");
if (response.success == 200) {
$('#preview_video').html('<div class="green center-align" style="border-radius:10px;padding:20px;color:#FFF;">Votre vidéo a été bien enregistrée.</div>')
//CAS VIDEO NON ATTACHEE
if ($("#form_media").length) {
$("#form_media .id_media").attr('value', response.mediaId);
$("#form_media #submit").removeClass('hide').fadeIn();
if ($("#form_media #submit").hasClass('disabled')) {
$("#form_media #submit").removeClass('disabled');
$("#form_media #submit").addClass('pulse');
}
}
//CAS VIDEO REPONSE CANDIDATURE
if($('#validFormVideo').length){
form['contact_talent_video'] = 1;
if ($("#form_media #submit").hasClass('disabled')) {
if( form['contact_talent_status'] == 1){
$("#validFormVideo .btn").removeClass('disabled');
if($('.dashboardCompanyWrapper').length == 0){
location.reload();
} else {
if (response.success == 200) {
$('#preview_video').html('<div class="green center-align" style="border-radius:10px;padding:20px;color:#FFF;">Votre vidéo a été bien enregistrée.</div>')
//CAS VIDEO NON ATTACHEE
if ($("#form_media").length) {
$("#form_media .id_media").attr('value', response.mediaId);
$("#form_media #submit").removeClass('hide').fadeIn();
if ($("#form_media #submit").hasClass('disabled')) {
$("#form_media #submit").removeClass('disabled');
$("#form_media #submit").addClass('pulse');
}
}
//CAS VIDEO REPONSE CANDIDATURE
if($('#validFormVideo').length){
form['contact_talent_video'] = 1;
if ($("#form_media #submit").hasClass('disabled')) {
if( form['contact_talent_status'] == 1){
$("#validFormVideo .btn").removeClass('disabled');
}
}
}
} else {
$('#preview_video').html('<div class="red" style="margin:0 0 0 20px;padding:20px;color:#FFF;">Une erreur est survenue,<br /> veuillez réessayer, si le problème persiste merci de contacter talentstube.</div>')
}
} else {
$('#preview_video').html('<div class="red" style="margin:0 0 0 20px;padding:20px;color:#FFF;">Une erreur est survenue,<br /> veuillez réessayer, si le problème persiste merci de contacter talentstube.</div>')
}
$(window).unbind("beforeunload");
});
self.on("totaluploadprogress", function (progress) {
$('.determinate').width(progress + '%');
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -472,9 +472,17 @@
.overlay-hover {
opacity: 0.7;
transition: .5s ease;
transition: 0.5s ease;
backface-visibility: hidden;
&:hover {
opacity: 1;
}
}
.hover-none {
a {
&:hover {
color: #ffffff;
}
}
}
@@ -22,25 +22,6 @@
.item-tuto-webcam{
height: 385px;
}
.owl-dots{
margin-top: 30px;
text-align:center;
-webkit-tap-highlight-color:transparent;
}
.owl-dots .owl-dot{display:inline-block;zoom:1}
.owl-dots .owl-dot span{
width:10px;
height:10px;
margin:5px 7px;
background:#D6D6D6;
display:block;
-webkit-backface-visibility:visible;
transition:opacity .2s ease;
border-radius:30px;
}
.owl-dots .owl-dot.active span,.owl-dots .owl-dot:hover span{
background:#155EE5;
}
.owl-nav{
width:103%;
z-index: 10;
@@ -48,9 +29,11 @@
}
.carousel-fixed-item{
margin-right: 45px;
margin-top:-40px;
position: relative;
z-index: 100;
display: flex;
justify-items: center;
align-items: center;
}
.title-bubble{
@@ -74,10 +57,51 @@
background: url(/img/img_popupcv/step_arrow.svg) 40px no-repeat #FFFFFF;;
}
#modal-tuto{
.title-tuto{
position: fixed;
width: 100%;
background: #FFF;
display: block;
z-index: 2;
height: 30px;
top: 0;
left: 0;
padding: 15px 0;
}
.modal-footer{
height: 70px;
background: $white;
border: none;
.owl-dots{
margin-top: 30px;
text-align:center;
-webkit-tap-highlight-color:transparent;
position: absolute;
left: 50%;
bottom: 15px;
}
.owl-dots .owl-dot{display:inline-block;zoom:1}
.owl-dots .owl-dot span{
width:10px;
height:10px;
margin:5px 7px;
background:#D6D6D6;
display:block;
-webkit-backface-visibility:visible;
transition:opacity .2s ease;
border-radius:30px;
}
.owl-dots .owl-dot.active span,.owl-dots .owl-dot:hover span{
background:#155EE5;
}
}
width: 80%;
min-height: 540px;
background: $white;
.col-content{
margin-top: 50px;
margin-bottom: 0;
}
.close-tuto{
@@ -144,9 +168,14 @@
}
}
@media only screen and (max-width: 800px) {
@media only screen and (max-width: 1000px) {
#modal-tuto {
width: 98%;
.modal-footer{
.owl-dots{
display: none;
}
}
.modal-content{
h3{
font-size: 1.5rem;
@@ -155,9 +184,6 @@
.col{
padding: 0;
}
.owl-dots{
display: none;
}
.carousel-fixed-item{
margin-top:0;
margin-right:0;
@@ -166,4 +192,4 @@
}
}
}
}
}
@@ -272,8 +272,8 @@
position: fixed;
bottom: 0;
width: 100%;
background: rgba(255,255,255,0.8);
text-align: center;
background: rgba(0,0,0,0.8);
color: #FFF;
padding: 20px;
font-size:12px;
}
@@ -73,4 +73,19 @@ textarea.materialize-textarea:focus:not([readonly]){
box-shadow: 0 1px 0 0 $blue2;
outline: none;
}
}
form[name=talent_profile] div.col label.error{
color: red;
position: absolute;
top: 20px;
left: 0;
&.active{
color: red;
}
}
form[name=talent_profile] .bg-bordered .col div{
position: relative;
}
@@ -100,4 +100,22 @@
text-decoration: none;
color: #000;
}
}
.dashboardCompanyWrapper{
.profil-picture .responsive-img {
object-fit: cover;
width: auto;
height: auto;
max-height: 100%;
}
}
#ad_show,#company_show{
.profil-picture .responsive-img {
object-fit: cover;
width: auto;
height: auto;
max-height: 100%;
}
}
@@ -11,6 +11,7 @@
@import "vendors/videojs.record";
@import "vendors/tooltipster/tooltipster";
@import "vendors/daterangepicker.min";
@import "vendors/datepicker.min";
/*Base
---------------------------------------------------*/
@import 'base/variables';
+9
View File
@@ -0,0 +1,9 @@
/*!
* Datepicker v1.0.0
* https://fengyuanchen.github.io/datepicker
*
* Copyright 2014-present Chen Fengyuan
* Released under the MIT license
*
* Date: 2018-08-05T03:02:13.513Z
*/.datepicker-container{-moz-user-select:none;-ms-touch-action:none;-ms-user-select:none;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;background-color:#fff;direction:ltr;font-size:12px;left:0;line-height:30px;position:fixed;top:0;touch-action:none;user-select:none;width:210px;z-index:-1}.datepicker-container:after,.datepicker-container:before{border:5px solid rgba(0,0,0,0);content:" ";display:block;height:0;position:absolute;width:0}.datepicker-dropdown{-webkit-box-shadow:0 3px 6px #ccc;-webkit-box-sizing:content-box;border:1px solid #ccc;box-shadow:0 3px 6px #ccc;box-sizing:content-box;position:absolute;z-index:1}.datepicker-inline{position:static}.datepicker-top-left,.datepicker-top-right{border-top-color:#39f}.datepicker-top-left:after,.datepicker-top-left:before,.datepicker-top-right:after,.datepicker-top-right:before{border-top:0;left:10px;top:-5px}.datepicker-top-left:before,.datepicker-top-right:before{border-bottom-color:#39f}.datepicker-top-left:after,.datepicker-top-right:after{border-bottom-color:#fff;top:-4px}.datepicker-bottom-left,.datepicker-bottom-right{border-bottom-color:#39f}.datepicker-bottom-left:after,.datepicker-bottom-left:before,.datepicker-bottom-right:after,.datepicker-bottom-right:before{border-bottom:0;bottom:-5px;left:10px}.datepicker-bottom-left:before,.datepicker-bottom-right:before{border-top-color:#39f}.datepicker-bottom-left:after,.datepicker-bottom-right:after{border-top-color:#fff;bottom:-4px}.datepicker-bottom-right:after,.datepicker-bottom-right:before,.datepicker-top-right:after,.datepicker-top-right:before{left:auto;right:10px}.datepicker-panel>ul{margin:0;padding:0;width:102%}.datepicker-panel>ul:after,.datepicker-panel>ul:before{content:" ";display:table}.datepicker-panel>ul:after{clear:both}.datepicker-panel>ul>li{background-color:#fff;cursor:pointer;float:left;height:30px;list-style:none;margin:0;padding:0;text-align:center;width:30px}.datepicker-panel>ul>li:hover{background-color:#e5f2ff}.datepicker-panel>ul>li.muted,.datepicker-panel>ul>li.muted:hover{color:#999}.datepicker-panel>ul>li.highlighted{background-color:#e5f2ff}.datepicker-panel>ul>li.highlighted:hover{background-color:#cce5ff}.datepicker-panel>ul>li.picked,.datepicker-panel>ul>li.picked:hover{color:#39f}.datepicker-panel>ul>li.disabled,.datepicker-panel>ul>li.disabled:hover{background-color:#fff;color:#ccc;cursor:default}.datepicker-panel>ul>li.disabled.highlighted,.datepicker-panel>ul>li.disabled:hover.highlighted{background-color:#e5f2ff}.datepicker-panel>ul>li[data-view="month next"],.datepicker-panel>ul>li[data-view="month prev"],.datepicker-panel>ul>li[data-view="year next"],.datepicker-panel>ul>li[data-view="year prev"],.datepicker-panel>ul>li[data-view="years next"],.datepicker-panel>ul>li[data-view="years prev"],.datepicker-panel>ul>li[data-view=next]{font-size:18px}.datepicker-panel>ul>li[data-view="month current"],.datepicker-panel>ul>li[data-view="year current"],.datepicker-panel>ul>li[data-view="years current"]{width:150px}.datepicker-panel>ul[data-view=months]>li,.datepicker-panel>ul[data-view=years]>li{height:52.5px;line-height:52.5px;width:52.5px}.datepicker-panel>ul[data-view=week]>li,.datepicker-panel>ul[data-view=week]>li:hover{background-color:#fff;cursor:default}.datepicker-hide{display:none}