sibprogrammer/owp

View on GitHub
app/views/sessions/new.html.erb

Summary

Maintainability
Test Coverage
<% @page_title = t('login.page_title') %>

<% javascript_tag do -%>
Ext.onReady(function() {     

  var loginFormSubmitAction = function() {
    loginForm.getForm().submit({
      waitMsg: '<%= tjs('form.loading') %>',
      success: function() {
        document.location.href = '<%= url_for :controller => 'admin/dashboard' %>';
      },
      failure: function(form, action) { 
        Owp.form.errorHandler(form, action, { 
          fn: function() {
            Ext.getCmp('password').setValue('');
            Ext.get('password').focus();
          } 
        });
      }
    });
  }

  var loginForm = new Owp.form.BasicForm({
    labelWidth: 100,
    waitMsgTarget: !Ext.isGecko,
    url: '<%= login_path %>',
    bodyStyle: 'padding: 15px 15px 0',
    keys: [{
      key: Ext.EventObject.ENTER,
      fn: loginFormSubmitAction
    }],
    items: [{
      fieldLabel: '<%= tjs('login.username') %>',
      name: 'login',
      id: 'login',
      width: 210,
      validationEvent: false,
      allowBlank: false
    }, {
      fieldLabel: '<%= tjs('login.password') %>',
      name: 'password',
      id: 'password',
      width: 210,
      inputType: 'password',
      validationEvent: false,
      allowBlank: false
    }, <% if !AppConfig.locale.single %> {
      fieldLabel: '<%= tjs('login.locale') %>',
      name: 'locale',
      width: 210,
      xtype: 'combo',
      mode: 'local',      
      hiddenName: 'locale',
      valueField: 'locale',
      value: '<%= I18n.locale %>',
      displayField: 'languageTitle',
      editable: false,
      triggerAction: 'all',
      store: new Ext.data.ArrayStore({
        id: 0,
        fields: ['locale', 'languageTitle'],
        data: <%= @available_locales.to_json %>
      })
    }, <% end -%> {
      fieldLabel: '<%= tjs('login.remember_me') %>',
      name: 'remember_me',
      xtype: 'checkbox',
      checked: true
    } <% if !external_auth? %>, {
      xtype: 'displayfield',
      hideLabel: true,
      style: {
        marginBottom: '10px'
      },
      html: '<a href="#" onclick="document.location.href = \'<%= restore_password_path %>\'"><%= tjs('login.button_restore_password') %></a>'
    }<% end -%>]
  });
  
  var loginWindow = new Owp.form.BasicFormWindow({
    applyTo: 'login-window',
    title: '<%= tjs('login.window_title', :product => @product_name) %>',
    iconCls: 'icon-window-login',
    width: 380,
    autoHeight: true,
    y: 150,
    closable: false,
    resizable: false,
    draggable: false,
    plain: true,
    items: loginForm,
    buttons: [{
      text: '<%= tjs('login.button_login') %>',
      iconCls: 'icon-button-login',
      handler: loginFormSubmitAction
    }]
  });
    
  loginWindow.show();
  
});
<% end -%>

<div id='login-window'></div>