templates/usuarios/login.twig line 1

Open in your IDE?
  1. {% import "_macros.twig" as forms %}
  2. {% extends 'baseLogin.twig' %}
  3. {% block content %}
  4. <div class="inner-wrap" id="div_login">
  5.     <div id="div_entrar" class="">
  6.         <div class="form-card">
  7.             <div class="">
  8.                 <figure class="image container  is-128x128">
  9.                     <img class="" style="max-width: 100px;" src="/images/logo.png">
  10.                 </figure>
  11.             </div>
  12.             <div class="auth-head">
  13.                 <h2 data-bind="text:labels.titulo">Bienvenido</h2>
  14.                 {% if error %}
  15.                 <div class="message is-danger">
  16.                     {{ errorCredenciales }}
  17.                 </div>
  18.                 {% endif %}
  19.             </div>
  20.             <form action="{{ path('app_login') }}" method="post">
  21.                 <div id="signin-form" class="login-form">
  22.                     {{ forms.input('_username', 'labels.nomUsuario', 'nomUsuario') }}
  23.                     {{ forms.contra('_password', 'labels.contra', 'contra') }}
  24.                     <input type="hidden" name="_csrf_token" value="{{ csrf_token('authenticate') }}">
  25.                     <!-- <input type="hidden" name="claCliente" value="claCliente" > -->
  26.                     <div class="control login">
  27.                         <button class="button h-button is-primary is-bold is-fullwidth is-raised"
  28.                             data-bind="text:labels.entrar,css: { 'is-loading': enProgreso()}, click:enviar">Sign
  29.                             In</button>
  30.                     </div>
  31.                 </div>
  32.             </form>
  33.         </div>
  34.         <div class="forgot-link has-text-centered">
  35.             <a data-bind="text:labels.olvido, click:olvido" href="#">Forgot Password?</a>
  36.         </div>
  37.     </div>
  38.     <div id="div_olvido" class="is-hidden">
  39.         <div class="form-card">
  40.             <div class="">
  41.                 <figure class="image container  is-128x128">
  42.                     <img class="" style="max-width: 100px;" src="/images/logo.png">
  43.                 </figure>
  44.             </div>
  45.             <div class="auth-head">
  46.                 <h2 data-bind="text:labels.olvidoTitulo">Bienvenido</h2>
  47.             </div>
  48.             <form>
  49.                 <div id="signin-form" class="login-form">
  50.                     {{ forms.input('txtCorreo', 'labels.correo', 'correo') }}
  51.                     <div class="control login">
  52.                         <button class="button h-button is-primary is-bold is-fullwidth is-raised"
  53.                             data-bind="text:labels.recuperar,css:{'is-loading': enProgreso()}, click:olvidoEnviar"></button>
  54.                     </div>
  55.                 </div>
  56.             </form>
  57.         </div>
  58.         <div class="forgot-link has-text-centered">
  59.             <a data-bind="text:labels.cancelar, click:cancelar" href="#"></a>
  60.         </div>
  61.     </div>
  62. </div>
  63. {% endblock %}
  64. {% block js %}
  65. {#///#}
  66. <script type="text/javascript">
  67.     var rotulos = JSON.parse("{{rotulos|e('js')}}");
  68.     var valores = JSON.parse("{{valores|e('js')}}");
  69.     ///
  70.     var ViewModel = function () {
  71.         var self = this;
  72.         self.labels = {};
  73.         for (rotulo in rotulos) {
  74.             self.labels[rotulo] = ko.observable(rotulos[rotulo]);
  75.         }
  76.         ///
  77.         self.valores = {};
  78.         for (var i = 0; i < valores.length; i++) {
  79.             self.valores[valores[i].alias] = ko.observable(valores[i].valor);
  80.         }
  81.         self.nomUsuario = ko.observable(valores.nomUsuario).extend(
  82.             { required: { message: self.labels.nomUsuarioAviso() } }
  83.         );
  84.         self.contra = ko.observable().extend(
  85.             { required: { message: self.labels.contraAviso() } }
  86.         );
  87.         self.correo = ko.observable('').extend(
  88.             {
  89.                 required: { message: self.labels.correoAviso() },
  90.                 email: { message: self.labels.correoAviso() }
  91.             }
  92.         );
  93.         self.enProgreso = ko.observable(false);
  94.         ///
  95.         self.enviar = function () {
  96.             self.enProgreso(true);
  97.             if (loginVM.errorsLogin().length > 0) {
  98.                 loginVM.errorsLogin.showAllMessages();
  99.                 setTimeout(function () {
  100.                     self.enProgreso(false);
  101.                 }, 2000);
  102.                 return;
  103.             }
  104.             self.enProgreso(false);
  105.             return true;
  106.         };
  107.         ///
  108.         self.olvidoEnviar = function () {
  109.             self.enProgreso(true);
  110.             if (loginVM.errorsOlvido().length > 0) {
  111.                 loginVM.errorsOlvido.showAllMessages();
  112.                 setTimeout(function () {
  113.                     self.enProgreso(false);
  114.                 }, 2000);
  115.                 return;
  116.             }
  117.             $.ajax('/usuarios/contraRecuperarEnviar', {
  118.                 type: 'post',
  119.                 data: {
  120.                     correo: self.correo(),
  121.                 },
  122.                 success: function (respuesta) {
  123.                     if (typeof (respuesta.resultado) == "undefined") {
  124.                         //si la sesion expiro
  125.                         $("#div_html_base").html(respuesta);
  126.                         return;
  127.                     }
  128.                     if (respuesta.resultado === 1) {
  129.                     } else {
  130.                     }
  131.                     self.enProgreso(false);
  132.                     alertify.alert('Invent', respuesta.mensaje).set('closable', false).set('label', '{{ cerrar }}');
  133.                 }
  134.             });
  135.         };
  136.         ///
  137.         self.olvido = function () {
  138.             $("#div_olvido").removeClass("is-hidden");
  139.             $("#div_entrar").addClass("is-hidden");
  140.         };
  141.         ///
  142.         self.cancelar = function () {
  143.             $("#div_entrar").removeClass("is-hidden");
  144.             $("#div_olvido").addClass("is-hidden");
  145.         };
  146.     };// viewModel
  147.     window.loginVM = new ViewModel();
  148.     loginVM.errorsLogin = ko.validation.group([loginVM.nomUsuario, loginVM.contra]);
  149.     loginVM.errorsOlvido = ko.validation.group([loginVM.correo]);
  150.     ko.applyBindings(loginVM, $("#div_login").get(0));
  151.     $('#_username').ready(function () {
  152.         $('#_username').focus();
  153.         var divs = document.getElementsByTagName('div');
  154.         var numIdInvent = 0;
  155.         for (var i = 0; i < divs.length; i++) {
  156.             if (divs[i].id.indexOf('invent-app') != -1) {
  157.                 numIdInvent++;
  158.             }
  159.         }
  160.         if (numIdInvent > 1) {
  161.             window.location = "/login";
  162.         }
  163.     });
  164. </script>
  165. {% endblock %}