Skip to content

Commit a6de24b

Browse files
committed
Extracted the error message logic into a new, reusable $.mobile.showMessage() function which can be used to display any message to the user. In addition to specifying a custom message, options such as delayTime, fadeTime, and wrapperClass can be specified. NOTE: the delayTime remains 800ms for page loading error messages for the sake of continuity, but the default delayTime has been increased to 2500ms, which seems more appropriate for messages of any length.
1 parent 8124e10 commit a6de24b

File tree

1 file changed

+23
-9
lines changed

1 file changed

+23
-9
lines changed

js/jquery.mobile.navigation.js

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -700,16 +700,8 @@
700700

701701
// Remove loading message.
702702
if ( settings.showLoadMsg ) {
703-
$.mobile.hidePageLoadingMsg();
704-
705703
//show error message
706-
$( "<div class='ui-loader ui-overlay-shadow ui-body-e ui-corner-all'><h1>"+ $.mobile.pageLoadErrorMessage +"</h1></div>" )
707-
.css({ "display": "block", "opacity": 0.96, "top": $window.scrollTop() + 100 })
708-
.appendTo( settings.pageContainer )
709-
.delay( 800 )
710-
.fadeOut( 400, function() {
711-
$( this ).remove();
712-
});
704+
$.mobile.showMessage( $.mobile.pageLoadErrorMessage, { pageContainer: settings.pageContainer, delayTime: 800 } );
713705
}
714706

715707
deferred.reject( absUrl, options );
@@ -728,6 +720,28 @@
728720
pageContainer: undefined
729721
};
730722

723+
// Show a custom message to the user (will be shown in the active page unless specified otherwise in options)
724+
$.mobile.showMessage = function( message, options ) {
725+
$.mobile.hidePageLoadingMsg();
726+
727+
var showMessageOptions = $.extend( {}, $.mobile.showMessage.defaults, options );
728+
$( "<div class='ui-loader ui-overlay-shadow ui-corner-all "+ showMessageOptions.wrapperClass +"'><h1>"+ message +"</h1></div>" )
729+
.css({ "display": "block", "opacity": 0.96, "top": $window.scrollTop() + 100 })
730+
.appendTo( showMessageOptions.pageContainer == undefined ? $.mobile.activePage : showMessageOptions.pageContainer )
731+
.delay( showMessageOptions.delayTime )
732+
.fadeOut( showMessageOptions.fadeTime, function() {
733+
$( this ).remove();
734+
});
735+
};
736+
737+
// Default options for showMessage()
738+
$.mobile.showMessage.defaults = {
739+
delayTime: 2500,
740+
fadeTime: 400,
741+
wrapperClass: 'ui-body-e',
742+
pageContainer: undefined
743+
};
744+
731745
// Show a specific page in the page container.
732746
$.mobile.changePage = function( toPage, options ) {
733747
// XXX: REMOVE_BEFORE_SHIPPING_1.0

0 commit comments

Comments
 (0)