diff --git a/dashboard-ui/thirdparty/jquerymobile-1.4.5/jqm.controlgroup.js b/dashboard-ui/thirdparty/jquerymobile-1.4.5/jqm.controlgroup.js index 5b5f5c1553..2abd1a47da 100644 --- a/dashboard-ui/thirdparty/jquerymobile-1.4.5/jqm.controlgroup.js +++ b/dashboard-ui/thirdparty/jquerymobile-1.4.5/jqm.controlgroup.js @@ -1,5 +1,53 @@ (function ($, undefined) { + var uiScreenHiddenRegex = /\bui-screen-hidden\b/; + function noHiddenClass(elements) { + var index, + length = elements.length, + result = []; + + for (index = 0; index < length; index++) { + if (!elements[index].className.match(uiScreenHiddenRegex)) { + result.push(elements[index]); + } + } + + return $(result); + } + + $.mobile.behaviors.addFirstLastClasses = { + _getVisibles: function ($els, create) { + var visibles; + + if (create) { + visibles = noHiddenClass($els); + } else { + visibles = $els.filter(":visible"); + if (visibles.length === 0) { + visibles = noHiddenClass($els); + } + } + + return visibles; + }, + + _addFirstLastClasses: function ($els, $visibles, create) { + $els.removeClass("ui-first-child ui-last-child"); + $visibles.eq(0).addClass("ui-first-child").end().last().addClass("ui-last-child"); + if (!create) { + this.element.trigger("updatelayout"); + } + }, + + _removeFirstLastClasses: function ($els) { + $els.removeClass("ui-first-child ui-last-child"); + } + }; + +})(jQuery); + +(function ($, undefined) { + $.widget("mobile.controlgroup", $.extend({ options: { enhanced: false, diff --git a/dashboard-ui/thirdparty/jquerymobile-1.4.5/jqm.listview.js b/dashboard-ui/thirdparty/jquerymobile-1.4.5/jqm.listview.js index 130cf29e05..8f7fc3e822 100644 --- a/dashboard-ui/thirdparty/jquerymobile-1.4.5/jqm.listview.js +++ b/dashboard-ui/thirdparty/jquerymobile-1.4.5/jqm.listview.js @@ -1,5 +1,53 @@ (function ($, undefined) { + var uiScreenHiddenRegex = /\bui-screen-hidden\b/; + function noHiddenClass(elements) { + var index, + length = elements.length, + result = []; + + for (index = 0; index < length; index++) { + if (!elements[index].className.match(uiScreenHiddenRegex)) { + result.push(elements[index]); + } + } + + return $(result); + } + + $.mobile.behaviors.addFirstLastClasses = { + _getVisibles: function ($els, create) { + var visibles; + + if (create) { + visibles = noHiddenClass($els); + } else { + visibles = $els.filter(":visible"); + if (visibles.length === 0) { + visibles = noHiddenClass($els); + } + } + + return visibles; + }, + + _addFirstLastClasses: function ($els, $visibles, create) { + $els.removeClass("ui-first-child ui-last-child"); + $visibles.eq(0).addClass("ui-first-child").end().last().addClass("ui-last-child"); + if (!create) { + this.element.trigger("updatelayout"); + } + }, + + _removeFirstLastClasses: function ($els) { + $els.removeClass("ui-first-child ui-last-child"); + } + }; + +})(jQuery); + +(function ($, undefined) { + var getAttr = $.mobile.getAttribute; $.widget("mobile.listview", $.extend({ diff --git a/dashboard-ui/thirdparty/jquerymobile-1.4.5/jquery.mobile.custom.js b/dashboard-ui/thirdparty/jquerymobile-1.4.5/jquery.mobile.custom.js index aeec989906..fe787cf04f 100644 --- a/dashboard-ui/thirdparty/jquerymobile-1.4.5/jquery.mobile.custom.js +++ b/dashboard-ui/thirdparty/jquerymobile-1.4.5/jquery.mobile.custom.js @@ -374,9 +374,6 @@ // where it is provided on the window object phonegapNavigationEnabled: false, - //automatically initialize the DOM when it's ready - autoInitializePage: true, - pushStateEnabled: true, // allows users to opt in to ignoring content by marking a parent element as @@ -614,19 +611,8 @@ $.ui.ie = !!/msie [\w.]+/.exec( navigator.userAgent.toLowerCase() ); } }); - $.addDependents = function( elem, newDependents ) { - var $elem = $( elem ), - dependents = $elem.jqmData( "dependents" ) || $(); - - $elem.jqmData( "dependents", $( dependents ).add( newDependents ) ); - }; - // plugins $.fn.extend({ - removeWithDependents: function() { - $.removeWithDependents( this ); - }, - // Enhance child elements enhanceWithin: function() { var index, @@ -656,10 +642,6 @@ $.ui.ie = !!/msie [\w.]+/.exec( navigator.userAgent.toLowerCase() ); return this; }, - addDependents: function( newDependents ) { - $.addDependents( this, newDependents ); - }, - // note that this helper doesn't attempt to handle the callback // or setting of an html element's text, its only purpose is // to return the html encoded version of the text in all cases. (thus the name) @@ -668,19 +650,6 @@ $.ui.ie = !!/msie [\w.]+/.exec( navigator.userAgent.toLowerCase() ); } }); - $.removeWithDependents = function( nativeElement ) { - var element = $( nativeElement ); - - ( element.jqmData( "dependents" ) || $() ).remove(); - element.remove(); - }; - $.addDependents = function( nativeElement, newDependents ) { - var element = $( nativeElement ), - dependents = element.jqmData( "dependents" ) || $(); - - element.jqmData( "dependents", $( dependents ).add( newDependents ) ); - }; - $.find.matches = function( expr, set ) { return $.find( expr, null, null, set ); }; @@ -934,28 +903,15 @@ $.mobile.ajaxBlacklist = dummyFnToInitNavigate = function() { }; - $.event.special.beforenavigate = { - setup: function() { - $win.on( "navigate", dummyFnToInitNavigate ); - }, - - teardown: function() { - $win.off( "navigate", dummyFnToInitNavigate ); - } - }; - $.event.special.navigate = self = { bound: false, - pushStateEnabled: true, - originalEventName: undefined, // If pushstate support is present and push state support is defined to // be true on the mobile namespace. isPushStateEnabled: function() { return $.support.pushState && - $.mobile.pushStateEnabled === true && this.isHashChangeEnabled(); }, @@ -967,16 +923,8 @@ $.mobile.ajaxBlacklist = // TODO a lot of duplication between popstate and hashchange popstate: function( event ) { var newEvent = new $.Event( "navigate" ), - beforeNavigate = new $.Event( "beforenavigate" ), state = event.originalEvent.state || {}; - beforeNavigate.originalEvent = event; - $win.trigger( beforeNavigate ); - - if ( beforeNavigate.isDefaultPrevented() ) { - return; - } - if ( event.historyState ) { $.extend(state, event.historyState); } @@ -997,15 +945,7 @@ $.mobile.ajaxBlacklist = }, hashchange: function( event /*, data */ ) { - var newEvent = new $.Event( "navigate" ), - beforeNavigate = new $.Event( "beforenavigate" ); - - beforeNavigate.originalEvent = event; - $win.trigger( beforeNavigate ); - - if ( beforeNavigate.isDefaultPrevented() ) { - return; - } + var newEvent = new $.Event( "navigate" ); // Make sure the original event is tracked for the end // user to inspect incase they want to do something special @@ -1750,12 +1690,8 @@ $.widget( "mobile.page", { }, _create: function () { - // If false is returned by the callbacks do not create the page - if ( this._trigger( "beforecreate" ) === false ) { - return false; - } - if ( !this.options.enhanced ) { + if (!this.options.enhanced) { this._enhance(); } @@ -2779,33 +2715,11 @@ $.widget( "mobile.page", { initSelector: false, _create: function() { - this._trigger( "beforecreate" ); - this.setLastScrollEnabled = true; - - this._on( this.window, { - // disable an scroll setting when a hashchange has been fired, - // this only works because the recording of the scroll position - // is delayed for 100ms after the browser might have changed the - // position because of the hashchange - navigate: "_disableRecordScroll", - - // bind to scrollstop for the first page, "pagechange" won't be - // fired in that case - scrollstop: "_delayedRecordScroll" - }); // TODO consider moving the navigation handler OUT of widget into // some other object as glue between the navigate event and the // content widget load and change methods this._on( this.window, { navigate: "_filterNavigateEvents" }); - - // TODO move from page* events to content* events - this._on({ pagechange: "_afterContentChange" }); - - // handle initial hashchange from chrome :( - this.window.one( "navigate", $.proxy(function() { - this.setLastScrollEnabled = true; - }, this)); }, _setOptions: function( options ) { @@ -2819,66 +2733,6 @@ $.widget( "mobile.page", { this._super( options ); }, - _disableRecordScroll: function() { - this.setLastScrollEnabled = false; - }, - - _enableRecordScroll: function() { - this.setLastScrollEnabled = true; - }, - - // TODO consider the name here, since it's purpose specific - _afterContentChange: function() { - // once the page has changed, re-enable the scroll recording - this.setLastScrollEnabled = true; - - // remove any binding that previously existed on the get scroll - // which may or may not be different than the scroll element - // determined for this page previously - this._off( this.window, "scrollstop" ); - - // determine and bind to the current scoll element which may be the - // window or in the case of touch overflow the element touch overflow - this._on( this.window, { scrollstop: "_delayedRecordScroll" }); - }, - - _recordScroll: function() { - // this barrier prevents setting the scroll value based on - // the browser scrolling the window based on a hashchange - if ( !this.setLastScrollEnabled ) { - return; - } - - var active = this._getActiveHistory(), - currentScroll, minScroll, defaultScroll; - - if ( active ) { - currentScroll = this._getScroll(); - minScroll = this._getMinScroll(); - defaultScroll = this._getDefaultScroll(); - - // Set active page's lastScroll prop. If the location we're - // scrolling to is less than minScrollBack, let it go. - active.lastScroll = currentScroll < minScroll ? defaultScroll : currentScroll; - } - }, - - _delayedRecordScroll: function() { - setTimeout( $.proxy(this, "_recordScroll"), 100 ); - }, - - _getScroll: function() { - return this.window.scrollTop(); - }, - - _getMinScroll: function() { - return $.mobile.minScrollBack; - }, - - _getDefaultScroll: function() { - return $.mobile.defaultHomeScroll; - }, - _filterNavigateEvents: function( e, data ) { var url; @@ -3373,15 +3227,6 @@ $.widget( "mobile.page", { options: settings }; - // Let listeners know we're about to load content. - pblEvent = this._triggerWithDeprecated( "beforeload", triggerData ); - - // If the default behavior is prevented, stop here! - if ( pblEvent.deprecatedEvent.isDefaultPrevented() || - pblEvent.event.isDefaultPrevented() ) { - return deferred.promise(); - } - // Reset base to the default document base. // only reset if we are not prefetching if ( settings.prefetch === undefined ) { @@ -4079,11 +3924,6 @@ $.widget( "mobile.page", { // so if it's 1, use 0 from now on $.mobile.defaultHomeScroll = ( !$.support.scrollTop || $.mobile.window.scrollTop() === 1 ) ? 0 : 1; - //dom-ready inits - if ( $.mobile.autoInitializePage ) { - $.mobile.initializePage(); - } - // window load event // hide iOS browser chrome on load if hideUrlBar is true this is as fall back incase we were too early before if ( $.mobile.hideUrlBar ) { @@ -4107,54 +3947,6 @@ $.widget( "mobile.page", { }); }( jQuery, this )); -(function( $, undefined ) { - -var uiScreenHiddenRegex = /\bui-screen-hidden\b/; -function noHiddenClass( elements ) { - var index, - length = elements.length, - result = []; - - for ( index = 0; index < length; index++ ) { - if ( !elements[ index ].className.match( uiScreenHiddenRegex ) ) { - result.push( elements[ index ] ); - } - } - - return $( result ); -} - -$.mobile.behaviors.addFirstLastClasses = { - _getVisibles: function( $els, create ) { - var visibles; - - if ( create ) { - visibles = noHiddenClass( $els ); - } else { - visibles = $els.filter( ":visible" ); - if ( visibles.length === 0 ) { - visibles = noHiddenClass( $els ); - } - } - - return visibles; - }, - - _addFirstLastClasses: function( $els, $visibles, create ) { - $els.removeClass( "ui-first-child ui-last-child" ); - $visibles.eq( 0 ).addClass( "ui-first-child" ).end().last().addClass( "ui-last-child" ); - if ( !create ) { - this.element.trigger( "updatelayout" ); - } - }, - - _removeFirstLastClasses: function( $els ) { - $els.removeClass( "ui-first-child ui-last-child" ); - } -}; - -})( jQuery ); - (function( $, undefined ) { $.fn.selectmenu = function() {