Skip to content
This repository has been archived by the owner on Oct 8, 2021. It is now read-only.

Commit

Permalink
Pagecontainer: Honor both reload and reloadPage during load
Browse files Browse the repository at this point in the history
Option reload takes precedence over option reloadPage

(cherry picked from commit 5f622de)

Closes gh-7801
Fixes gh-7769
  • Loading branch information
Gabriel Schulhof committed Oct 27, 2014
1 parent 198e5d2 commit 7b97a67
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 6 deletions.
13 changes: 9 additions & 4 deletions js/widgets/pagecontainer.js
Expand Up @@ -587,8 +587,16 @@ define( [
// know when the content is done loading, or if an error has occurred.
var deferred = ( options && options.deferred ) || $.Deferred(),

// Examining the option "reloadPage" passed by the user is deprecated as of 1.4.0
// and will be removed in 1.5.0.
// Copy option "reloadPage" to "reload", but only if option "reload" is not present
reloadOptionExtension =
( ( options && options.reload === undefined &&
options.reloadPage !== undefined ) ?
{ reload: options.reloadPage } : {} ),

// The default load options with overrides specified by the caller.
settings = $.extend( {}, this._loadDefaults, options ),
settings = $.extend( {}, this._loadDefaults, options, reloadOptionExtension ),

// The DOM element for the content after it has been loaded.
content = null,
Expand All @@ -598,9 +606,6 @@ define( [
absUrl = $.mobile.path.makeUrlAbsolute( url, this._findBaseWithDefault() ),
fileUrl, dataUrl, pblEvent, triggerData;

// DEPRECATED reloadPage
settings.reload = settings.reloadPage;

// If the caller provided data, and we're using "get" request,
// append the data to the URL.
if ( settings.data && settings.type === "get" ) {
Expand Down
27 changes: 25 additions & 2 deletions tests/unit/pagecontainer/pagecontainer_core.js
Expand Up @@ -13,10 +13,12 @@ test( "_find() can handle weird data-url attributes", function() {
});

( function() {
var originalLoad = $.mobile.pagecontainer.prototype._triggerWithDeprecated
var triggerData,
originalLoad = $.mobile.pagecontainer.prototype._triggerWithDeprecated;
module( "load method", {
setup: function(){
$.mobile.pagecontainer.prototype._triggerWithDeprecated = function(){
$.mobile.pagecontainer.prototype._triggerWithDeprecated = function( eventName, data ) {
triggerData = data;
return {
deprecatedEvent: {
isDefaultPrevented: function() {
Expand All @@ -30,6 +32,7 @@ module( "load method", {
}
},
teardown: function(){
triggerData = null;
$.mobile.pagecontainer.prototype._triggerWithDeprecated = originalLoad;
}
});
Expand All @@ -40,6 +43,26 @@ test( "load does not trigger an error when called withput a second param", funct
ok( "no error triggered when load method called without options" );
});

test( "Options 'reload' and 'reloadPage' both work, and 'reload' takes precedence", function() {
var pagecontainer = $( ":mobile-pagecontainer" );

pagecontainer.pagecontainer( "load", "stuff.html", {
reload: true,
reloadPage: false
});

deepEqual( triggerData.options.reload, true,
"The value of option 'reload' is not affected by the value of option 'reloadPage'" );

pagecontainer.pagecontainer( "load", "stuff.html", {
reloadPage: true
});

deepEqual( triggerData.options.reload, true,
"The value of option 'reloadPage' is copied to the value of option 'reload' if the " +
"latter is absent from the options hash" );
});

module( "_handleDialog()" );

test( "A dialog is recognized via presence of the data key, not the ui-dialog class", function() {
Expand Down

0 comments on commit 7b97a67

Please sign in to comment.