META-INF.resources.scripts.vendor.plugins.ui.jquery.alerts.js Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of lightadmin Show documentation
Show all versions of lightadmin Show documentation
Pluggable data management solution for Java web applications developed in a "Rapid" manner
The newest version!
// jQuery Alert Dialogs Plugin
//
// Version 1.1
//
// Cory S.N. LaViska
// A Beautiful Site (http://abeautifulsite.net/)
// 14 May 2009
//
// Visit http://abeautifulsite.net/notebook/87 for more information
//
// Usage:
// jAlert( message, [title, callback] )
// jConfirm( message, [title, callback] )
// jPrompt( message, [value, title, callback] )
//
// History:
//
// 1.00 - Released (29 December 2008)
//
// 1.01 - Fixed bug where unbinding would destroy all resize events
//
// License:
//
// This plugin is dual-licensed under the GNU General Public License and the MIT License and
// is copyright 2008 A Beautiful Site, LLC.
//
(function ( $ ) {
$.alerts = {
// These properties can be read/written by accessing $.alerts.propertyName from your scripts at any time
verticalOffset: -75, // vertical offset of the dialog from center screen, in pixels
horizontalOffset: 0, // horizontal offset of the dialog from center screen, in pixels/
repositionOnResize: true, // re-centers the dialog on window resize
overlayOpacity: .01, // transparency level of overlay
overlayColor: '#FFF', // base color of overlay
draggable: true, // make the dialogs draggable (requires UI Draggables plugin)
okButton: ' OK ', // text for the OK button
cancelButton: ' Cancel ', // text for the Cancel button
dialogClass: null, // if specified, this class will be applied to all dialogs
// Public methods
alert: function ( message, title, callback ) {
if ( title == null ) {
title = 'Alert';
}
$.alerts._show( title, message, null, 'alert', function ( result ) {
if ( callback ) {
callback( result );
}
} );
},
confirm: function ( message, title, callback ) {
if ( title == null ) {
title = 'Confirm';
}
$.alerts._show( title, message, null, 'confirm', function ( result ) {
if ( callback ) {
callback( result );
}
} );
},
prompt: function ( message, value, title, callback ) {
if ( title == null ) {
title = 'Prompt';
}
$.alerts._show( title, message, value, 'prompt', function ( result ) {
if ( callback ) {
callback( result );
}
} );
},
// Private methods
_show: function ( title, msg, value, type, callback ) {
$.alerts._hide();
$.alerts._overlay( 'show' );
$( "BODY" ).append( '' + '' + '' + '' + '' + '' );
if ( $.alerts.dialogClass ) {
$( "#popup_container" ).addClass( $.alerts.dialogClass );
}
// IE6 Fix
var pos = ($.browser.msie && parseInt( $.browser.version ) <= 6 ) ? 'absolute' : 'fixed';
$( "#popup_container" ).css( {
position: pos,
zIndex: 99999,
padding: 5,
margin: 0
} );
$( "#popup_title" ).text( title );
$( "#popup_content" ).addClass( type );
$( "#popup_message" ).text( msg );
$( "#popup_message" ).html( $( "#popup_message" ).text().replace( /\n/g, '
' ) );
$( "#popup_container" ).css( {
minWidth: $( "#popup_container" ).outerWidth(),
maxWidth: $( "#popup_container" ).outerWidth()
} );
$.alerts._reposition();
$.alerts._maintainPosition( true );
switch ( type ) {
case 'alert':
$( "#popup_message" ).after( '' );
$( "#popup_ok" ).click( function () {
$.alerts._hide();
callback( true );
} );
$( "#popup_ok" ).focus().keypress( function ( e ) {
if ( e.keyCode == 13 || e.keyCode == 27 ) {
$( "#popup_ok" ).trigger( 'click' );
}
} );
break;
case 'confirm':
$( "#popup_message" ).after( ' ' );
$( "#popup_ok" ).click( function () {
$.alerts._hide();
if ( callback ) {
callback( true );
}
} );
$( "#popup_cancel" ).click( function () {
$.alerts._hide();
if ( callback ) {
callback( false );
}
} );
$( "#popup_ok" ).focus();
$( "#popup_ok, #popup_cancel" ).keypress( function ( e ) {
if ( e.keyCode == 13 ) {
$( "#popup_ok" ).trigger( 'click' );
}
if ( e.keyCode == 27 ) {
$( "#popup_cancel" ).trigger( 'click' );
}
} );
break;
case 'prompt':
$( "#popup_message" ).append( '
' ).after( ' ' );
$( "#popup_prompt" ).width( $( "#popup_message" ).width( -10 ) );
$( "#popup_ok" ).click( function () {
var val = $( "#popup_prompt" ).val();
$.alerts._hide();
if ( callback ) {
callback( val );
}
} );
$( "#popup_cancel" ).click( function () {
$.alerts._hide();
if ( callback ) {
callback( null );
}
} );
$( "#popup_prompt, #popup_ok, #popup_cancel" ).keypress( function ( e ) {
if ( e.keyCode == 13 ) {
$( "#popup_ok" ).trigger( 'click' );
}
if ( e.keyCode == 27 ) {
$( "#popup_cancel" ).trigger( 'click' );
}
} );
if ( value ) {
$( "#popup_prompt" ).val( value );
}
$( "#popup_prompt" ).focus().select();
break;
}
// Make draggable
if ( $.alerts.draggable ) {
try {
$( "#popup_container" ).draggable( { handle: $( "#popup_title" ) } );
$( "#popup_title" ).css( { cursor: 'move' } );
} catch ( e ) { /* requires jQuery UI draggables */
}
}
},
_hide: function () {
$( "#popup_container" ).remove();
$.alerts._overlay( 'hide' );
$.alerts._maintainPosition( false );
},
_overlay: function ( status ) {
switch ( status ) {
case 'show':
$.alerts._overlay( 'hide' );
$( "BODY" ).append( '' );
$( "#popup_overlay" ).css( {
position: 'absolute',
zIndex: 99998,
top: '0px',
left: '0px',
width: '100%',
height: $( document ).height(),
background: $.alerts.overlayColor,
opacity: $.alerts.overlayOpacity
} );
break;
case 'hide':
$( "#popup_overlay" ).remove();
break;
}
},
_reposition: function () {
var top = (($( window ).height() / 2) - ($( "#popup_container" ).outerHeight() / 2)) + $.alerts.verticalOffset;
var left = (($( window ).width() / 2) - ($( "#popup_container" ).outerWidth() / 2)) + $.alerts.horizontalOffset;
if ( top < 0 ) {
top = 0;
}
if ( left < 0 ) {
left = 0;
}
// IE6 fix
if ( $.browser.msie && parseInt( $.browser.version ) <= 6 ) {
top = top + $( window ).scrollTop();
}
$( "#popup_container" ).css( {
top: top + 'px',
left: left + 'px'
} );
$( "#popup_overlay" ).height( $( document ).height() );
},
_maintainPosition: function ( status ) {
if ( $.alerts.repositionOnResize ) {
switch ( status ) {
case true:
$( window ).bind( 'resize', $.alerts._reposition );
break;
case false:
$( window ).unbind( 'resize', $.alerts._reposition );
break;
}
}
}
}
// Shortuct functions
jAlert = function ( message, title, callback ) {
$.alerts.alert( message, title, callback );
}
jConfirm = function ( message, title, callback ) {
$.alerts.confirm( message, title, callback );
};
jPrompt = function ( message, value, title, callback ) {
$.alerts.prompt( message, value, title, callback );
};
})( jQuery );