blob: cd7efa605f6db53daf9e6ffbd2eedcddbd1eae72 [file] [log] [blame]
//>>excludeStart("jqmBuildExclude", pragmas.jqmBuildExclude);
//>>description: Basic page definition and formatting.
//>>label: Page Creation
//>>group: Core
define( [ "jquery", "../jquery.mobile.widget" ], function( jQuery ) {
//>>excludeEnd("jqmBuildExclude");
(function( $, undefined ) {
$.widget( "mobile.page", $.mobile.widget, {
options: {
theme: "c",
domCache: false,
keepNativeDefault: ":jqmData(role='none'), :jqmData(role='nojs')"
},
_create: function() {
var self = this;
// if false is returned by the callbacks do not create the page
if ( self._trigger( "beforecreate" ) === false ) {
return false;
}
self.element
.addClass( "ui-page ui-body-" + self.options.theme )
.bind( "pagebeforehide", function() {
self.removeContainerBackground();
} )
.bind( "pagebeforeshow", function() {
self.setContainerBackground();
} );
},
refresh: function() {
$( this.element ).children( ".ui-content" ).trigger("updatelayout", ["external"]);
},
/* GUI Builder only : redesign page when user drag&drop header, footer */
setToolbar: function () {
$( this.element ).trigger( "pagebeforeshow" );
},
removeContainerBackground: function() {
$.mobile.pageContainer.removeClass( "ui-overlay-" + $.mobile.getInheritedTheme( this.element.parent() ) );
},
// set the page container background to the page theme
setContainerBackground: function( theme ) {
if ( this.options.theme ) {
$.mobile.pageContainer.addClass( "ui-overlay-" + ( theme || this.options.theme ) );
}
},
addBackBtn : function ( target ) {
var $dest = $( ".ui-page-active .ui-footer" );
if ( target == "header" ) {
$dest = $( ".ui-page-active .ui-header" );
}
backBtn = $( "<a href='#' class='ui-btn-back' data-" + $.mobile.ns + "rel='back'></a>" )
.buttonMarkup( {icon: "header-back-btn", theme : "s"} );
if ( !$dest.find( ".ui-btn-back").length ) {
backBtn.prependTo( $dest );
}
},
keepNativeSelector: function() {
var options = this.options,
keepNativeDefined = options.keepNative && $.trim( options.keepNative );
if ( keepNativeDefined && options.keepNative !== options.keepNativeDefault ) {
return [options.keepNative, options.keepNativeDefault].join( ", " );
}
return options.keepNativeDefault;
}
});
})( jQuery );
//>>excludeStart("jqmBuildExclude", pragmas.jqmBuildExclude);
});
//>>excludeEnd("jqmBuildExclude");