vendor/uvdesk/core-framework/Resources/views/login.html.twig line 1

Open in your IDE?
  1. {% extends "@UVDeskCoreFramework//Templates//layout.html.twig" %}
  2. {% block title %}Login{% endblock %}
  3. {% set recaptchaDetail = recaptcha_service.getRecaptchaDetails() %}
  4. {% block templateCSS %}
  5. <style>
  6.     #loginForm h1 {
  7.         font-size: 28px;
  8.         color: #6F6F6F;
  9.         font-weight: 600;
  10.         margin: 0px 0px 10px 0px;
  11.     }
  12.     .forgot-password-cta {
  13.         position: absolute;
  14.         font-size: 15px !important;
  15.         right: 0px;
  16.         top: 0px;
  17.     }
  18. </style>
  19. {% endblock %}
  20. {% block pageWrapper %}
  21.     <div class="uv-large-box-plank">
  22.         <div class="uv-large-box-rt">
  23.             <div class="uv-center-box uv-text-center">
  24.                 <form action="" method="post" id="loginForm">
  25.                     <div class="uv-adjacent-center">
  26.                         <h1>{{ "Log in to your"|trans }} <span class="uv-brand">{{ website.name }}</span></h1>
  27.                         <p>{{ "Enter your credentials below to gain access to your helpdesk account."|trans }}</p>
  28.                         <div class="uv-adjacent-form">
  29.                             <div class="uv-adjacent-element-block">
  30.                                 <label>{{ "Email" |trans}}</label>
  31.                                 <div class="uv-max-field">
  32.                                     <input type="email" name="_username">
  33.                                 </div>
  34.                             </div>
  35.                             <div class="uv-adjacent-element-block" style="position: relative;">
  36.                                 <label>{{ "Password" |trans}}</label>
  37.                                 <div class="uv-max-field">
  38.                                     <a class="forgot-password-cta" href="{{ path('helpdesk_forgot_account_password') }}" tabindex="-1">{{ "Forgot Password?" |trans}}</a>
  39.                                     <input type="password"  name="_password">
  40.                                 </div>
  41.                             </div>
  42.                             <div class="uv-adjacent-element-block">
  43.                                 <label>
  44.                                     <div class="uv-checkbox">
  45.                                         <input type="checkbox" name="_remember_me" checked>
  46.                                         <span class="uv-checkbox-view"></span>
  47.                                     </div>
  48.                                     <span class="uv-checkbox-label">{{ "Keep me logged in" |trans}}</span>
  49.                                 </label>
  50.                             </div>
  51.                             <div class="uv-adjacent-element-block">
  52.                                 {% if recaptchaDetail and recaptchaDetail.isActive == true %}
  53.                                     <div class="clearfix"></div>
  54.                                     <div class="g-recaptcha" data-sitekey="{{ recaptchaDetail.siteKey }}"></div>
  55.                                     <div class="clearfix"></div>
  56.                                 {% else %}
  57.                                     <!-- Recaptcha will not support -->
  58.                                 {% endif %}
  59.                             </div>
  60.                             <button class="uv-btn">{{ 'Sign In'|trans }}</button>
  61.                         </div>
  62.                     </div>
  63.                 </div>
  64.             </form>
  65.         </div>
  66.         <div class="uv-large-box-lt">
  67.             <div class="uv-center-box uv-text-center">
  68.                 <a href="https://www.uvdesk.com">
  69.                     <img alt="UVdesk" title="UVdesk" src="{{ asset('bundles/uvdeskcoreframework/images/uvdesk-logo-symbol.svg') }}">
  70.                 </a>
  71.             </div>
  72.         </div>
  73.     </div>
  74. {% endblock %}
  75. {% block footer %}
  76.     {{ parent() }}
  77.     {% if recaptchaDetail and recaptchaDetail.isActive == true %}
  78.         <script src='https://www.google.com/recaptcha/api.js'></script>
  79.     {% endif %}
  80.     <script type="text/javascript">
  81.         $(function () {
  82.              _.extend(Backbone.Validation.callbacks, {
  83.                 valid : function (view, attr, selector) {
  84.                     var $el = view.$('[name="' + attr + '"]');
  85.                     $el.removeClass('uv-field-error');
  86.                     $el.parents('.uv-adjacent-element-block').find('.uv-field-message').remove();
  87.                 },
  88.                 invalid : function (view, attr, error, selector) {
  89.                     var $el = view.$('[name="' + attr + '"]');
  90.                     $el.addClass('uv-field-error');
  91.                     $el.parents('.uv-adjacent-element-block').find('.uv-field-message').remove();
  92.                     $el.parents('.uv-adjacent-element-block').append("<span class='uv-field-message'>" + error + "</span>");
  93.                 }
  94.             });
  95.             var LoginModel = Backbone.Model.extend({
  96.                 validation: {
  97.                     '_username': [{
  98.                         required: true,
  99.                         msg: '{{ "This field is mandatory"|trans }}'
  100.                     },{
  101.                         pattern: 'email',
  102.                         msg: '{{ "This is not a valid email address"|trans }}'
  103.                     }],
  104.                     '_password': [{
  105.                         required: true,
  106.                         msg: '{{"This field is mandatory"|trans }}'
  107.                     },{
  108.                         minLength: 8,
  109.                         msg: '{{"Password must contains 8 Characters"|trans }}'
  110.                     }],
  111.                     {% if recaptchaDetail and recaptchaDetail.isActive == true %}
  112.                         'g-recaptcha-response' : {
  113.                             fn: function(value) {
  114.                                 if(grecaptcha.getResponse().length > 0)
  115.                                     return false;
  116.                                 else
  117.                                     return true;
  118.                             },
  119.                             msg : '{{ "Please select CAPTCHA"|trans }}'
  120.                         }
  121.                     {% endif %}
  122.                 }
  123.             });
  124.             var LoginForm = Backbone.View.extend({
  125.                 events: {
  126.                     'click .uv-btn': 'submit',
  127.                     'blur input': 'formChanegd'
  128.                 },
  129.                 initialize: function () {
  130.                     Backbone.Validation.bind(this);
  131.                     {% if error.messageKey is defined %}
  132.                         app.appView.renderResponseAlert({'alertClass': 'danger', 'alertMessage': '{{ error.messageKey|trans}}'})
  133.                     {% endif %}
  134.                 },
  135.                 formChanegd: function(e) {
  136.                     this.model.set(Backbone.$(e.currentTarget).attr('name'), Backbone.$(e.currentTarget).val())
  137.                     this.model.isValid([Backbone.$(e.currentTarget).attr('name')])
  138.                 },
  139.                 submit: function (e) {
  140.                     e.preventDefault();
  141.                     var data = this.$el.serializeObject();
  142.                     this.model.set(data);
  143.                     if(this.model.isValid(true)){
  144.                         this.$el.submit();
  145.                     }
  146.                 }
  147.             });
  148.             var Login = new LoginForm({
  149.                 el: $('#loginForm'),
  150.                 model: new LoginModel()
  151.             });
  152.         });
  153.     </script>
  154. {% endblock %}