thedrummeraki/tanoshimu

View on GitHub
app/views/application/login.html.erb

Summary

Maintainability
Test Coverage
<% url = @login_url if !@login_url.nil? %>
<% url = '/login' if url.nil? %>
<% error_cont_id = 'error-message' %>
<% wait_cont_id = 'waiting-message' %>
<% succ_cont_id = 'success-message' %>


<section class="hero is-fullheight">
  <div class="hero-body">
    <div class="container has-text-centered">
      <div class="column is-4 is-offset-4">
        <h3 class="title has-text-grey"><%= t('welcome.title') %></h3>
        <p class="has-text-grey"><%= t('welcome.catch-phrase') %></p>
        <div class="card" style="padding: 30px; margin-top: 10px;">
          <figure class="avatar is-rounded">
              <%= image_tag 'tanoshimu', class: 'login logo' %>
          </figure>

          <div id="login-messages" class="text-center login-messages small" style="padding: 13px;">
            <div class="text-danger">
              <span id="error-message" class="has-text-danger"></span>
            </div>
            <div class="text-warning">
              <span id="waiting-message" class="has-text-warning"></span>
            </div>
            <div class="text-success">
              <span id="success-message" class="has-text-success"></span>
            </div>
          </div>

          <form id="login-form" class="form-signin" onsubmit="return false;">
            <div class="field">
              <div class="control">
                <input type="text" id="username" class="input is-rounded is-dark" placeholder="<%= t('welcome.login.username') %>" autocomplete="off" autofocus>
              </div>
            </div>

            <div class="field">
              <div class="control">
                <input type="password" id="password" class="input is-rounded is-dark" placeholder="<%= t('welcome.login.password') %>">
              </div>
            </div>
            <div style="margin-top: 10px;">
              <button class="button is-fullwidth is-primary" type="submit"><%= t('welcome.login.login') %></button>
            </div>

            <div class="text-center" style="margin-top: 20px;">
              <% if Config.oauth_enabled? %>
                <p style="margin-bottom: 10px;" style="color: #e0e0e0;">- <%= t('welcome.login.google-or') %> -</p>
                <% if Config.google_client_id.present? && Config.google_oauth_enabled? %>
                  <div>
                    <%= link_to '/auth/google_oauth2', method: :post, class: 'google-btn' do %>
                      <img width="20px" src="https://upload.wikimedia.org/wikipedia/commons/thumb/5/53/Google_%22G%22_Logo.svg/512px-Google_%22G%22_Logo.svg.png"/>
                      <%= t('welcome.login.google-login') %>
                    <% end %>
                  </div>
                <% end %>
                <% if Config.misete_client_id.present? %>
                  <div style="margin-top: 20px">
                    <%= link_to '/auth/misete', method: :post, class: 'google-btn' do %>
                      <i class="material-icons" style="font-size: 18px; padding-right: 5px;">lock</i><%= t('welcome.login.misete-login') %>
                    <% end %>
                  </div>
                <% end %>
              <% end %>
            </div>
          </form>
          <div class="hf-section">
            <%= render 'shared/language_change' %>
          </div>
          <div class="hf-section">
            <small><p>Request ID: </p><code class="request-id"><%= request_id %></code></small>
          </div>
        </div>
      </div>
    </div>
  </div>
</section>

<script type="text/javascript">
  document.addEventListener('DOMContentLoaded', () => {
    function execLogin() {
      submit.style.display = 'none';
      login('error-message', 'waiting-message', 'success-message', 'login-form', () => {
        submit.style.display = 'block';
      }); 
    }
    const submit = document.querySelector('[type="submit"]');
    if (!submit) {
      return;
    }

    submit.addEventListener('click', () => {
      execLogin();
    });
  });


  // $(document).ready(function() {
  //   const submit = document.query

  //   var $submit = $('[type="submit"]');
  //   $('#login-form').find('input').keypress(function(e) {
  //      // Enter pressed?
  //      if(e.which == 10 || e.which == 13) {
  //        $submit.trigger('click');
  //      }
  //    });

  //    $submit.on('click', function() {
  //     execLogin();
  //    });

  //    function execLogin() {
  //      $submit.hide();
  //      login('error-message', 'waiting-message', 'success-message', 'login-form', function() {
  //        $submit.show();
  //      });
  //    }
  // });
</script>

<script src="https://apis.google.com/js/platform.js?onload=renderButton" async defer></script>