app/views/sessions/new.html.erb
<% @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>