Roo.extend(Roo.bootstrap.form.Password, Roo.bootstrap.form.Input, {
+ getAutoCreate : function()
+ {
+ this.after = {
+ xns : Roo.bootstrap,
+ xtype : 'Button',
+ cls : 'password-toggle'
+ };
+
+ return Roo.bootstrap.form.Password.superclass.getAutoCreate.call(this);
+ },
+
initEvents : function()
{
Roo.bootstrap.form.Password.superclass.initEvents.call(this);
this.el.addClass('form-password');
- this.inputEl().addClass('password-hidden');
+ this.toggleEl().addClass('password-hidden');
- this.inputEl().on('click', this.onPasswordClick, this);
+ this.toggleEl().on('click', this.onToggleClick, this);;
},
- onPasswordClick : function(e)
+ toggleEl: function()
{
- var input = this.inputEl();
+ return this.el.select('button.password-toggle',true).first();
+ },
- if(e.getPageX() < input.getX() + input.getWidth() - 30) {
- return;
- }
+ onToggleClick : function(e)
+ {
+ var input = this.inputEl();
+ var toggle = this.toggleEl();
- input.removeClass(['password-visible', 'password-hidden']);
+ toggle.removeClass(['password-visible', 'password-hidden']);
if(input.attr('type') == 'password') {
input.attr('type', 'text');
- input.addClass('password-visible');
+ toggle.addClass('password-visible');
}
else {
input.attr('type', 'password');
- input.addClass('password-hidden');
+ toggle.addClass('password-hidden');
}
}
});
\ No newline at end of file