cleanup
This commit is contained in:
parent
00e86e3854
commit
f262509adb
11 changed files with 13242 additions and 984 deletions
3
css/jquery.mobile-1.3.1.min.css
vendored
3
css/jquery.mobile-1.3.1.min.css
vendored
File diff suppressed because one or more lines are too long
3370
css/jquery.mobile.css
Normal file
3370
css/jquery.mobile.css
Normal file
File diff suppressed because it is too large
Load diff
BIN
img/icon-58.png
BIN
img/icon-58.png
Binary file not shown.
Before Width: | Height: | Size: 8.1 KiB After Width: | Height: | Size: 6.3 KiB |
15
index.html
15
index.html
|
@ -5,18 +5,13 @@
|
||||||
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
|
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
|
||||||
<meta name="apple-mobile-web-app-capable" content="yes" />
|
<meta name="apple-mobile-web-app-capable" content="yes" />
|
||||||
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
|
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
|
||||||
<title>Feedthemonkey</title>
|
<title>FeedMonkey</title>
|
||||||
<link rel="stylesheet" href="css/jquery.mobile-1.3.1.min.css" />
|
|
||||||
|
|
||||||
<!-- Extra Codiqa features -->
|
<link rel="stylesheet" href="css/jquery.mobile.css" />
|
||||||
<link rel="stylesheet" href="css/screen.css" />
|
<link rel="stylesheet" href="css/screen.css" />
|
||||||
|
|
||||||
<!-- jQuery and jQuery Mobile -->
|
<script src="js/jquery.js"></script>
|
||||||
<script src="js/jquery-1.9.1.min.js"></script>
|
<script src="js/jquery.mobile.js"></script>
|
||||||
<script src="js/jquery.mobile-1.3.1.js"></script>
|
|
||||||
|
|
||||||
<!-- Extra Codiqa features -->
|
|
||||||
<script src="js/codiqa.ext.js"></script>
|
|
||||||
|
|
||||||
<script src="js/App.js"></script>
|
<script src="js/App.js"></script>
|
||||||
<script src="js/TinyTinyRSS.js"></script>
|
<script src="js/TinyTinyRSS.js"></script>
|
||||||
|
@ -32,7 +27,7 @@
|
||||||
Reload
|
Reload
|
||||||
</a>
|
</a>
|
||||||
<h3>
|
<h3>
|
||||||
Feedthemonkey
|
FeedMonkey
|
||||||
</h3>
|
</h3>
|
||||||
<span class="ui-btn-right count" data-theme="a">0 / 0</span>
|
<span class="ui-btn-right count" data-theme="a">0 / 0</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -14,7 +14,6 @@ function App() {
|
||||||
$("#full").bind("taphold", this.setCurrentUnread.bind(this));
|
$("#full").bind("taphold", this.setCurrentUnread.bind(this));
|
||||||
|
|
||||||
$(".back").on("vclick", this.setCurrentRead.bind(this));
|
$(".back").on("vclick", this.setCurrentRead.bind(this));
|
||||||
//$(".count").button();
|
|
||||||
|
|
||||||
var _this = this;
|
var _this = this;
|
||||||
var aop = function(event, ui) { setTimeout(function() { $("#popup").popup("close") }, 2000) };
|
var aop = function(event, ui) { setTimeout(function() { $("#popup").popup("close") }, 2000) };
|
||||||
|
|
127
js/codiqa.ext.js
127
js/codiqa.ext.js
|
@ -1,127 +0,0 @@
|
||||||
window.CodiqaControls = {
|
|
||||||
types: {},
|
|
||||||
instances: {},
|
|
||||||
|
|
||||||
define: function(type, control) {
|
|
||||||
control._type = type;
|
|
||||||
this.types[type] = control;
|
|
||||||
},
|
|
||||||
|
|
||||||
register: function(type, id, opts) {
|
|
||||||
var instance = new this.types[type]();
|
|
||||||
instance._type = type;
|
|
||||||
instance._id = id;
|
|
||||||
instance._opts = opts;
|
|
||||||
this.instances[id] = instance;
|
|
||||||
|
|
||||||
if(!this.types[type].prototype._isInited) {
|
|
||||||
this.types[type].prototype.initType();
|
|
||||||
}
|
|
||||||
return instance;
|
|
||||||
},
|
|
||||||
|
|
||||||
init: function() {
|
|
||||||
for(var type in this.types) {
|
|
||||||
this.types[type].prototype.initType();
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
refresh: function() {
|
|
||||||
for(var x in this.instances) {
|
|
||||||
this.instances[x].refresh && this.instances[x].refresh();
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
callbackInit: function() {
|
|
||||||
|
|
||||||
},
|
|
||||||
|
|
||||||
getInstances: function(type) {
|
|
||||||
var x, instance, instances = [];
|
|
||||||
for(x in this.instances) {
|
|
||||||
instance = this.instances[x];
|
|
||||||
if(instance._type === type) {
|
|
||||||
instances.push(instance);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return instances;
|
|
||||||
}
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
CodiqaControls.GoogleMap = function () {};
|
|
||||||
CodiqaControls.GoogleMap.prototype.initType = function() {
|
|
||||||
if( window.CodiqaControls.getInstances('googlemaps').length ) {
|
|
||||||
if(this._isInited) {
|
|
||||||
if(window.google && window.google.maps) {
|
|
||||||
CodiqaControls.GoogleMap.prototype.callbackInit();
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
var script = document.createElement('script');
|
|
||||||
script.type = "text/javascript";
|
|
||||||
script.src = "https://maps.googleapis.com/maps/api/js?sensor=true&callback=CodiqaControls.types.googlemaps.prototype.callbackInit";
|
|
||||||
document.getElementsByTagName("head")[0].appendChild(script);
|
|
||||||
this._isInited = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
CodiqaControls.GoogleMap.prototype.callbackInit = function() {
|
|
||||||
var x, instances = window.CodiqaControls.getInstances('googlemaps');
|
|
||||||
for(x = 0; x < instances.length; x++) {
|
|
||||||
instances[x]._opts.ready(instances[x]);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
CodiqaControls.GoogleMap.prototype.refresh = function() {
|
|
||||||
if( this.map && this.el && $(this.el).closest('.ui-page-active').length ) {
|
|
||||||
google.maps.event.trigger(this.map, 'resize');
|
|
||||||
this.center && this.map.setCenter(this.center);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
window.CodiqaControls.define('googlemaps', CodiqaControls.GoogleMap);
|
|
||||||
|
|
||||||
|
|
||||||
(function($) {
|
|
||||||
$.widget('mobile.tabbar', $.mobile.navbar, {
|
|
||||||
_create: function() {
|
|
||||||
// Set the theme before we call the prototype, which will
|
|
||||||
// ensure buttonMarkup() correctly grabs the inheritied theme.
|
|
||||||
// We default to the "a" swatch if none is found
|
|
||||||
var theme = this.element.jqmData('theme') || "a";
|
|
||||||
this.element.addClass('ui-footer ui-footer-fixed ui-bar-' + theme);
|
|
||||||
|
|
||||||
// Make sure the page has padding added to it to account for the fixed bar
|
|
||||||
this.element.closest('[data-role="page"]').addClass('ui-page-footer-fixed');
|
|
||||||
|
|
||||||
|
|
||||||
// Call the NavBar _create prototype
|
|
||||||
$.mobile.navbar.prototype._create.call(this);
|
|
||||||
},
|
|
||||||
|
|
||||||
// Set the active URL for the Tab Bar, and highlight that button on the bar
|
|
||||||
setActive: function(url) {
|
|
||||||
// Sometimes the active state isn't properly cleared, so we reset it ourselves
|
|
||||||
this.element.find('a').removeClass('ui-btn-active ui-state-persist');
|
|
||||||
this.element.find('a[href="' + url + '"]').addClass('ui-btn-active ui-state-persist');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
$(document).on('pagecreate create', function(e) {
|
|
||||||
return $(e.target).find(":jqmData(role='tabbar')").tabbar();
|
|
||||||
});
|
|
||||||
|
|
||||||
$(document).on('pageshow', ":jqmData(role='page')", function(e) {
|
|
||||||
// Grab the id of the page that's showing, and select it on the Tab Bar on the page
|
|
||||||
var tabBar, id = $(e.target).attr('id');
|
|
||||||
|
|
||||||
tabBar = $.mobile.activePage.find(':jqmData(role="tabbar")');
|
|
||||||
if(tabBar.length) {
|
|
||||||
tabBar.tabbar('setActive', '#' + id);
|
|
||||||
}
|
|
||||||
|
|
||||||
window.CodiqaControls.refresh();
|
|
||||||
});
|
|
||||||
|
|
||||||
window.CodiqaControls.init();
|
|
||||||
|
|
||||||
})(jQuery);
|
|
5
js/jquery-1.9.1.min.js
vendored
5
js/jquery-1.9.1.min.js
vendored
File diff suppressed because one or more lines are too long
9003
js/jquery.js
vendored
Normal file
9003
js/jquery.js
vendored
Normal file
File diff suppressed because it is too large
Load diff
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*!
|
||||||
* jQuery Mobile 1.3.1
|
* jQuery Mobile 1.3.2
|
||||||
* Git HEAD hash: 74b4bec049fd93e4fe40205e6157de16eb64eb46 <> Date: Wed Apr 10 2013 21:57:23 UTC
|
* Git HEAD hash: 528cf0e96940644ea644096bfeb913ed920ffaef <> Date: Fri Jul 19 2013 22:17:57 UTC
|
||||||
* http://jquerymobile.com
|
* http://jquerymobile.com
|
||||||
*
|
*
|
||||||
* Copyright 2010, 2013 jQuery Foundation, Inc. and other contributors
|
* Copyright 2010, 2013 jQuery Foundation, Inc. and other contributors
|
||||||
|
@ -32,7 +32,7 @@
|
||||||
$.mobile = $.extend($.mobile, {
|
$.mobile = $.extend($.mobile, {
|
||||||
|
|
||||||
// Version of the jQuery Mobile Framework
|
// Version of the jQuery Mobile Framework
|
||||||
version: "1.3.1",
|
version: "1.3.2",
|
||||||
|
|
||||||
// Namespace used framework-wide for data-attrs. Default is no namespace
|
// Namespace used framework-wide for data-attrs. Default is no namespace
|
||||||
ns: "",
|
ns: "",
|
||||||
|
@ -4281,7 +4281,7 @@ $.mobile.getMaxScrollForTransition = $.mobile.getMaxScrollForTransition || defau
|
||||||
}
|
}
|
||||||
// Reset base to the default document base.
|
// Reset base to the default document base.
|
||||||
// only reset if we are not prefetching
|
// only reset if we are not prefetching
|
||||||
if ( base && typeof options.prefetch === "undefined" ) {
|
if ( base && ( typeof options === "undefined" || typeof options.prefetch === "undefined" ) ) {
|
||||||
base.reset();
|
base.reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4317,7 +4317,7 @@ $.mobile.getMaxScrollForTransition = $.mobile.getMaxScrollForTransition || defau
|
||||||
url = fileUrl = path.getFilePath( $( "<div>" + RegExp.$1 + "</div>" ).text() );
|
url = fileUrl = path.getFilePath( $( "<div>" + RegExp.$1 + "</div>" ).text() );
|
||||||
}
|
}
|
||||||
//dont update the base tag if we are prefetching
|
//dont update the base tag if we are prefetching
|
||||||
if ( base && typeof options.prefetch === "undefined") {
|
if ( base && ( typeof options === "undefined" || typeof options.prefetch === "undefined" )) {
|
||||||
base.set( fileUrl );
|
base.set( fileUrl );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5307,6 +5307,10 @@ $.widget( "mobile.dialog", $.mobile.widget, {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
_handlePageBeforeHide: function() {
|
||||||
|
this._isCloseable = false;
|
||||||
|
},
|
||||||
|
|
||||||
_create: function() {
|
_create: function() {
|
||||||
var self = this,
|
var self = this,
|
||||||
$el = this.element,
|
$el = this.element,
|
||||||
|
@ -5341,7 +5345,8 @@ $.widget( "mobile.dialog", $.mobile.widget, {
|
||||||
});
|
});
|
||||||
|
|
||||||
this._on( $el, {
|
this._on( $el, {
|
||||||
pagebeforeshow: "_handlePageBeforeShow"
|
pagebeforeshow: "_handlePageBeforeShow",
|
||||||
|
pagebeforehide: "_handlePageBeforeHide"
|
||||||
});
|
});
|
||||||
|
|
||||||
$.extend( this, {
|
$.extend( this, {
|
||||||
|
@ -5565,11 +5570,6 @@ $.fn.buttonMarkup = function( options ) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( getAttrFixed( e, nsKey + "rel" ) === "popup" && el.attr( "href" ) ) {
|
|
||||||
e.setAttribute( "aria-haspopup", true );
|
|
||||||
e.setAttribute( "aria-owns", el.attr( "href" ) );
|
|
||||||
}
|
|
||||||
|
|
||||||
// Check if this element is already enhanced
|
// Check if this element is already enhanced
|
||||||
buttonElements = $.data( ( ( e.tagName === "INPUT" || e.tagName === "BUTTON" ) ? e.parentNode : e ), "buttonElements" );
|
buttonElements = $.data( ( ( e.tagName === "INPUT" || e.tagName === "BUTTON" ) ? e.parentNode : e ), "buttonElements" );
|
||||||
|
|
||||||
|
@ -7588,7 +7588,7 @@ $.widget( "mobile.slider", $.mobile.widget, $.extend( {
|
||||||
_sliderVMouseDown: function( event ) {
|
_sliderVMouseDown: function( event ) {
|
||||||
// NOTE: we don't do this in refresh because we still want to
|
// NOTE: we don't do this in refresh because we still want to
|
||||||
// support programmatic alteration of disabled inputs
|
// support programmatic alteration of disabled inputs
|
||||||
if ( this.options.disabled || !( event.which === 1 || event.which === 0 ) ) {
|
if ( this.options.disabled || !( event.which === 1 || event.which === 0 || event.which === undefined ) ) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if ( this._trigger( "beforestart", event ) === false ) {
|
if ( this._trigger( "beforestart", event ) === false ) {
|
||||||
|
@ -8346,7 +8346,7 @@ $.mobile.document.bind( "pagecreate create", function( e ) {
|
||||||
|
|
||||||
(function( $, undefined ) {
|
(function( $, undefined ) {
|
||||||
|
|
||||||
function fitSegmentInsideSegment( winSize, segSize, offset, desired ) {
|
function fitSegmentInsideSegment( winSize, segSize, offset, desired ) {
|
||||||
var ret = desired;
|
var ret = desired;
|
||||||
|
|
||||||
if ( winSize < segSize ) {
|
if ( winSize < segSize ) {
|
||||||
|
@ -8358,9 +8358,9 @@ $.mobile.document.bind( "pagecreate create", function( e ) {
|
||||||
}
|
}
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
function windowCoords() {
|
function windowCoords() {
|
||||||
var $win = $.mobile.window;
|
var $win = $.mobile.window;
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
@ -8369,9 +8369,9 @@ $.mobile.document.bind( "pagecreate create", function( e ) {
|
||||||
cx: ( window.innerWidth || $win.width() ),
|
cx: ( window.innerWidth || $win.width() ),
|
||||||
cy: ( window.innerHeight || $win.height() )
|
cy: ( window.innerHeight || $win.height() )
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
$.widget( "mobile.popup", $.mobile.widget, {
|
$.widget( "mobile.popup", $.mobile.widget, {
|
||||||
options: {
|
options: {
|
||||||
theme: null,
|
theme: null,
|
||||||
overlayTheme: null,
|
overlayTheme: null,
|
||||||
|
@ -8527,12 +8527,13 @@ $.mobile.document.bind( "pagecreate create", function( e ) {
|
||||||
},
|
},
|
||||||
thisPage = this.element.closest( ".ui-page" ),
|
thisPage = this.element.closest( ".ui-page" ),
|
||||||
myId = this.element.attr( "id" ),
|
myId = this.element.attr( "id" ),
|
||||||
self = this;
|
o = this.options,
|
||||||
|
key, value;
|
||||||
|
|
||||||
// We need to adjust the history option to be false if there's no AJAX nav.
|
// We need to adjust the history option to be false if there's no AJAX nav.
|
||||||
// We can't do it in the option declarations because those are run before
|
// We can't do it in the option declarations because those are run before
|
||||||
// it is determined whether there shall be AJAX nav.
|
// it is determined whether there shall be AJAX nav.
|
||||||
this.options.history = this.options.history && $.mobile.ajaxEnabled && $.mobile.hashListeningEnabled;
|
o.history = o.history && $.mobile.ajaxEnabled && $.mobile.hashListeningEnabled;
|
||||||
|
|
||||||
if ( thisPage.length === 0 ) {
|
if ( thisPage.length === 0 ) {
|
||||||
thisPage = $( "body" );
|
thisPage = $( "body" );
|
||||||
|
@ -8540,7 +8541,7 @@ $.mobile.document.bind( "pagecreate create", function( e ) {
|
||||||
|
|
||||||
// define the container for navigation event bindings
|
// define the container for navigation event bindings
|
||||||
// TODO this would be nice at the the mobile widget level
|
// TODO this would be nice at the the mobile widget level
|
||||||
this.options.container = this.options.container || $.mobile.pageContainer;
|
o.container = o.container || $.mobile.pageContainer || thisPage;
|
||||||
|
|
||||||
// Apply the proto
|
// Apply the proto
|
||||||
thisPage.append( ui.screen );
|
thisPage.append( ui.screen );
|
||||||
|
@ -8573,12 +8574,15 @@ $.mobile.document.bind( "pagecreate create", function( e ) {
|
||||||
_orientationchangeInProgress: false
|
_orientationchangeInProgress: false
|
||||||
});
|
});
|
||||||
|
|
||||||
$.each( this.options, function( key, value ) {
|
// This duplicates the code from the various option setters below for
|
||||||
// Cause initial options to be applied by their handler by temporarily setting the option to undefined
|
// better performance. It must be kept in sync with those setters.
|
||||||
// - the handler then sets it to the initial value
|
this._applyTheme( this.element, o.theme, "body" );
|
||||||
self.options[ key ] = undefined;
|
this._applyTheme( this._ui.screen, o.overlayTheme, "overlay" );
|
||||||
self._setOption( key, value, true );
|
this._applyTransition( o.transition );
|
||||||
});
|
this.element
|
||||||
|
.toggleClass( "ui-overlay-shadow", o.shadow )
|
||||||
|
.toggleClass( "ui-corner-all", o.corners );
|
||||||
|
this._setTolerance( o.tolerance );
|
||||||
|
|
||||||
ui.screen.bind( "vclick", $.proxy( this, "_eatEventAndClose" ) );
|
ui.screen.bind( "vclick", $.proxy( this, "_eatEventAndClose" ) );
|
||||||
|
|
||||||
|
@ -8706,28 +8710,13 @@ $.mobile.document.bind( "pagecreate create", function( e ) {
|
||||||
},
|
},
|
||||||
|
|
||||||
_setOption: function( key, value ) {
|
_setOption: function( key, value ) {
|
||||||
var exclusions, setter = "_set" + key.charAt( 0 ).toUpperCase() + key.slice( 1 );
|
var setter = "_set" + key.charAt( 0 ).toUpperCase() + key.slice( 1 );
|
||||||
|
|
||||||
if ( this[ setter ] !== undefined ) {
|
if ( this[ setter ] !== undefined ) {
|
||||||
this[ setter ]( value );
|
this[ setter ]( value );
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO REMOVE FOR 1.2.1 by moving them out to a default options object
|
this._super( key, value );
|
||||||
exclusions = [
|
|
||||||
"initSelector",
|
|
||||||
"closeLinkSelector",
|
|
||||||
"closeLinkEvents",
|
|
||||||
"navigateEvents",
|
|
||||||
"closeEvents",
|
|
||||||
"history",
|
|
||||||
"container"
|
|
||||||
];
|
|
||||||
|
|
||||||
$.mobile.widget.prototype._setOption.apply( this, arguments );
|
|
||||||
if ( $.inArray( key, exclusions ) === -1 ) {
|
|
||||||
// Record the option change in the options and in the DOM data-* attributes
|
|
||||||
this.element.attr( "data-" + ( $.mobile.ns || "" ) + ( key.replace( /([A-Z])/, "-$1" ).toLowerCase() ), value );
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
|
|
||||||
// Try and center the overlay over the given coordinates
|
// Try and center the overlay over the given coordinates
|
||||||
|
@ -8886,7 +8875,7 @@ $.mobile.document.bind( "pagecreate create", function( e ) {
|
||||||
_reposition: function( o ) {
|
_reposition: function( o ) {
|
||||||
// We only care about position-related parameters for repositioning
|
// We only care about position-related parameters for repositioning
|
||||||
o = { x: o.x, y: o.y, positionTo: o.positionTo };
|
o = { x: o.x, y: o.y, positionTo: o.positionTo };
|
||||||
this._trigger( "beforeposition", o );
|
this._trigger( "beforeposition", undefined, o );
|
||||||
this._ui.container.offset( this._placementCoords( this._desiredCoords( o ) ) );
|
this._ui.container.offset( this._placementCoords( this._desiredCoords( o ) ) );
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -8988,13 +8977,16 @@ $.mobile.document.bind( "pagecreate create", function( e ) {
|
||||||
},
|
},
|
||||||
|
|
||||||
_closePrereqsDone: function() {
|
_closePrereqsDone: function() {
|
||||||
var opts = this.options;
|
var container = this._ui.container;
|
||||||
|
|
||||||
this._ui.container.removeAttr( "tabindex" );
|
container.removeAttr( "tabindex" );
|
||||||
|
|
||||||
// remove the global mutex for popups
|
// remove the global mutex for popups
|
||||||
$.mobile.popup.active = undefined;
|
$.mobile.popup.active = undefined;
|
||||||
|
|
||||||
|
// Blur elements inside the container, including the container
|
||||||
|
$( ":focus", container[ 0 ] ).add( container[ 0 ] ).blur();
|
||||||
|
|
||||||
// alert users that the popup is closed
|
// alert users that the popup is closed
|
||||||
this._trigger( "afterclose" );
|
this._trigger( "afterclose" );
|
||||||
},
|
},
|
||||||
|
@ -9178,11 +9170,11 @@ $.mobile.document.bind( "pagecreate create", function( e ) {
|
||||||
this._closePopup();
|
this._closePopup();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
// TODO this can be moved inside the widget
|
// TODO this can be moved inside the widget
|
||||||
$.mobile.popup.handleLink = function( $link ) {
|
$.mobile.popup.handleLink = function( $link ) {
|
||||||
var closestPage = $link.closest( ":jqmData(role='page')" ),
|
var closestPage = $link.closest( ":jqmData(role='page')" ),
|
||||||
scope = ( ( closestPage.length === 0 ) ? $( "body" ) : closestPage ),
|
scope = ( ( closestPage.length === 0 ) ? $( "body" ) : closestPage ),
|
||||||
// NOTE make sure to get only the hash, ie7 (wp7) return the absolute href
|
// NOTE make sure to get only the hash, ie7 (wp7) return the absolute href
|
||||||
|
@ -9209,19 +9201,19 @@ $.mobile.document.bind( "pagecreate create", function( e ) {
|
||||||
}
|
}
|
||||||
$link.removeClass( $.mobile.activeBtnClass );
|
$link.removeClass( $.mobile.activeBtnClass );
|
||||||
}, 300 );
|
}, 300 );
|
||||||
};
|
};
|
||||||
|
|
||||||
// TODO move inside _create
|
// TODO move inside _create
|
||||||
$.mobile.document.bind( "pagebeforechange", function( e, data ) {
|
$.mobile.document.bind( "pagebeforechange", function( e, data ) {
|
||||||
if ( data.options.role === "popup" ) {
|
if ( data.options.role === "popup" ) {
|
||||||
$.mobile.popup.handleLink( data.options.link );
|
$.mobile.popup.handleLink( data.options.link );
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
$.mobile.document.bind( "pagecreate create", function( e ) {
|
$.mobile.document.bind( "pagecreate create", function( e ) {
|
||||||
$.mobile.popup.prototype.enhanceWithin( e.target, true );
|
$.mobile.popup.prototype.enhanceWithin( e.target, true );
|
||||||
});
|
});
|
||||||
|
|
||||||
})( jQuery );
|
})( jQuery );
|
||||||
|
|
||||||
|
@ -9306,7 +9298,10 @@ $.mobile.document.bind( "pagecreate create", function( e ) {
|
||||||
placeholder: "",
|
placeholder: "",
|
||||||
|
|
||||||
build: function() {
|
build: function() {
|
||||||
var self = this;
|
var self = this,
|
||||||
|
escapeId = function( id ) {
|
||||||
|
return id.replace( /([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g, "\\$1" );
|
||||||
|
};
|
||||||
|
|
||||||
// Create list from select, update state
|
// Create list from select, update state
|
||||||
self.refresh();
|
self.refresh();
|
||||||
|
@ -9336,9 +9331,9 @@ $.mobile.document.bind( "pagecreate create", function( e ) {
|
||||||
|
|
||||||
self._decideFormat();
|
self._decideFormat();
|
||||||
if ( self.menuType === "overlay" ) {
|
if ( self.menuType === "overlay" ) {
|
||||||
self.button.attr( "href", "#" + self.popupID ).attr( "data-" + ( $.mobile.ns || "" ) + "rel", "popup" );
|
self.button.attr( "href", "#" + escapeId( self.popupID ) ).attr( "data-" + ( $.mobile.ns || "" ) + "rel", "popup" );
|
||||||
} else {
|
} else {
|
||||||
self.button.attr( "href", "#" + self.dialogID ).attr( "data-" + ( $.mobile.ns || "" ) + "rel", "dialog" );
|
self.button.attr( "href", "#" + escapeId( self.dialogID ) ).attr( "data-" + ( $.mobile.ns || "" ) + "rel", "dialog" );
|
||||||
}
|
}
|
||||||
self.isOpen = true;
|
self.isOpen = true;
|
||||||
// Do not prevent default, so the navigation may have a chance to actually open the chosen format
|
// Do not prevent default, so the navigation may have a chance to actually open the chosen format
|
||||||
|
@ -9745,6 +9740,9 @@ $.mobile.document.bind( "pagecreate create", function( e ) {
|
||||||
// Remove the popup
|
// Remove the popup
|
||||||
this.listbox.remove();
|
this.listbox.remove();
|
||||||
|
|
||||||
|
// Remove the dialog
|
||||||
|
this.menuPage.remove();
|
||||||
|
|
||||||
// Chain up
|
// Chain up
|
||||||
origDestroy.apply( this, arguments );
|
origDestroy.apply( this, arguments );
|
||||||
}
|
}
|
||||||
|
@ -9874,6 +9872,25 @@ $( document ).bind( "pagecreate create", function( e ) {
|
||||||
$( e.target )
|
$( e.target )
|
||||||
.find( "a" )
|
.find( "a" )
|
||||||
.jqmEnhanceable()
|
.jqmEnhanceable()
|
||||||
|
.filter( ":jqmData(rel='popup')[href][href!='']" )
|
||||||
|
.each( function() {
|
||||||
|
// Accessibility info for popups
|
||||||
|
var e = this,
|
||||||
|
href = $( this ).attr( "href" ),
|
||||||
|
idref = href.substring( 1 );
|
||||||
|
|
||||||
|
e.setAttribute( "aria-haspopup", true );
|
||||||
|
e.setAttribute( "aria-owns", idref );
|
||||||
|
e.setAttribute( "aria-expanded", false );
|
||||||
|
$( document )
|
||||||
|
.on( "popupafteropen", href, function() {
|
||||||
|
e.setAttribute( "aria-expanded", true );
|
||||||
|
})
|
||||||
|
.on( "popupafterclose", href, function() {
|
||||||
|
e.setAttribute( "aria-expanded", false );
|
||||||
|
});
|
||||||
|
})
|
||||||
|
.end()
|
||||||
.not( ".ui-btn, .ui-link-inherit, :jqmData(role='none'), :jqmData(role='nojs')" )
|
.not( ".ui-btn, .ui-link-inherit, :jqmData(role='none'), :jqmData(role='nojs')" )
|
||||||
.addClass( "ui-link" );
|
.addClass( "ui-link" );
|
||||||
|
|
||||||
|
@ -10479,8 +10496,14 @@ $.widget( "mobile.panel", $.mobile.widget, {
|
||||||
self._page.on( "click.panel" , "a", function( e ) {
|
self._page.on( "click.panel" , "a", function( e ) {
|
||||||
if ( this.href.split( "#" )[ 1 ] === self._panelID && self._panelID !== undefined ) {
|
if ( this.href.split( "#" )[ 1 ] === self._panelID && self._panelID !== undefined ) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
var $link = $( this );
|
var $link = $( this ),
|
||||||
|
$parent;
|
||||||
if ( ! $link.hasClass( "ui-link" ) ) {
|
if ( ! $link.hasClass( "ui-link" ) ) {
|
||||||
|
// Check if we are in a listview
|
||||||
|
$parent = $link.parent().parent();
|
||||||
|
if ( $parent.hasClass( "ui-li" ) ) {
|
||||||
|
$link = $parent.parent();
|
||||||
|
}
|
||||||
$link.addClass( $.mobile.activeBtnClass );
|
$link.addClass( $.mobile.activeBtnClass );
|
||||||
self.element.one( "panelopen panelclose", function() {
|
self.element.one( "panelopen panelclose", function() {
|
||||||
$link.removeClass( $.mobile.activeBtnClass );
|
$link.removeClass( $.mobile.activeBtnClass );
|
||||||
|
@ -11097,6 +11120,10 @@ $.mobile.document.delegate( ":jqmData(role='table')", "tablecreate refresh", fun
|
||||||
// define page container
|
// define page container
|
||||||
$.mobile.pageContainer = $.mobile.firstPage.parent().addClass( "ui-mobile-viewport" );
|
$.mobile.pageContainer = $.mobile.firstPage.parent().addClass( "ui-mobile-viewport" );
|
||||||
|
|
||||||
|
// initialize navigation events now, after mobileinit has occurred and the page container
|
||||||
|
// has been created but before the rest of the library is alerted to that fact
|
||||||
|
$.mobile.navreadyDeferred.resolve();
|
||||||
|
|
||||||
// alert listeners that the pagecontainer has been determined for binding
|
// alert listeners that the pagecontainer has been determined for binding
|
||||||
// to events triggered on it
|
// to events triggered on it
|
||||||
$window.trigger( "pagecontainercreate" );
|
$window.trigger( "pagecontainercreate" );
|
||||||
|
@ -11149,9 +11176,6 @@ $.mobile.document.delegate( ":jqmData(role='table')", "tablecreate refresh", fun
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// initialize events now, after mobileinit has occurred
|
|
||||||
$.mobile.navreadyDeferred.resolve();
|
|
||||||
|
|
||||||
// check which scrollTop value should be used by scrolling to 1 immediately at domready
|
// check which scrollTop value should be used by scrolling to 1 immediately at domready
|
||||||
// then check what the scroll top is. Android will report 0... others 1
|
// then check what the scroll top is. Android will report 0... others 1
|
||||||
// note that this initial scroll won't hide the address bar. It's just for the check.
|
// note that this initial scroll won't hide the address bar. It's just for the check.
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "Feedthemonkey",
|
"name": "FeedMonkey",
|
||||||
"description": "A TinyTinyRSS mobile client.",
|
"description": "A TinyTinyRSS mobile client with which you can read your RSS feeds and mark them as read on your server. Works also offline.",
|
||||||
"launch_path": "index.html",
|
"launch_path": "/index.html",
|
||||||
"icons": {
|
"icons": {
|
||||||
"58": "/img/icon-58.png",
|
"58": "/img/icon-58.png",
|
||||||
"60": "/img/icon-60.png",
|
"60": "/img/icon-60.png",
|
||||||
|
@ -14,7 +14,9 @@
|
||||||
"default_locale": "en",
|
"default_locale": "en",
|
||||||
"type": "privileged",
|
"type": "privileged",
|
||||||
"permissions": {
|
"permissions": {
|
||||||
"systemXHR": {}
|
"systemXHR": {
|
||||||
|
"description": "Connection with your own TinyTinyRSS server."
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"installs_allowed_from": ["*"],
|
"installs_allowed_from": ["*"],
|
||||||
"version": "0.1"
|
"version": "0.1"
|
||||||
|
|
Reference in a new issue