Browse Source

pulltorefresh submodule updated

pull/154/head
Simon Waldherr 12 years ago
parent
commit
b9b66ee741
  1. 144
      dist/ratchet.js
  2. 143
      lib/js/pulltorefresh.js
  3. 2
      submodules/pulltorefresh

144
dist/ratchet.js vendored

@ -774,16 +774,19 @@
var ptr_scrollable_parent = false;
function ptr_init() {
document.getElementsByTagName('body')[0].className = !!('ontouchstart' in window) ?
document.getElementsByTagName('body')[0].className+=' touch' :
document.getElementsByTagName('body')[0].className+=' desktop';
var scrollables = document.getElementsByClassName('scrollable');
for(var i = 0; i<scrollables.length; i++) {
if(scrollables[i].hasAttribute('data-url') != false) {
var ptr_box = document.createElement('div'),
ptr_container = document.createElement('div'),
ptr_image = document.createElement('div'),
"use strict";
var ptr_box, ptr_container, ptr_image, ptr_text, i = 0, scrollables = document.getElementsByClassName('scrollable');
if ((window.hasOwnProperty('ontouchstart')) || (window.navigator.msPointerEnabled)) {
document.getElementsByTagName('body')[0].className += ' touch';
} else {
document.getElementsByTagName('body')[0].className += ' notouch';
}
for (i = 0; i < scrollables.length; i += 1) {
if (scrollables[i].hasAttribute('data-url') !== false) {
ptr_box = document.createElement('div');
ptr_container = document.createElement('div');
ptr_image = document.createElement('div');
ptr_text = document.createElement('div');
ptr_box.appendChild(ptr_container);
@ -801,27 +804,25 @@ function ptr_init() {
}
document.addEventListener('touchstart', function (e) {
var parent = e.target;
var ptr_box, ptr_container, ptr_image, ptr_text, parent = e.target, i = 0;
if(typeof parent.className === null) {
if (parent.className === undefined) {
return false;
}
for(var i = 0; i < 10; i++) {
if(typeof parent.className !== 'undefined') {
for (i = 0; i < 10; i += 1) {
if (parent.className !== undefined) {
if (parent.className.match('scrollable')) {
ptr_scrollable_parent = i;
i = 10;
if(parent.hasAttribute('data-url') != false) {
if(typeof parent.getElementsByClassName('ptr_box')[0] != 'undefined') {
} else {
var ptr_box = document.createElement('div'),
ptr_container = document.createElement('div'),
ptr_image = document.createElement('div'),
if (parent.hasAttribute('data-url') !== false) {
if (parent.getElementsByClassName('ptr_box')[0] === undefined) {
ptr_box = document.createElement('div');
ptr_container = document.createElement('div');
ptr_image = document.createElement('div');
ptr_text = document.createElement('div');
ptr_box.appendChild(ptr_container);
@ -836,7 +837,7 @@ function ptr_init() {
parent.firstElementChild.insertBefore(ptr_box, parent.firstElementChild.firstChild);
}
} else if(typeof parent.getElementsByClassName('ptr_box')[0] != 'undefined') {
} else if (parent.getElementsByClassName('ptr_box')[0] !== undefined) {
parent.removeChild(parent.getElementsByClassName('ptr_box')[0]);
}
@ -845,50 +846,44 @@ function ptr_init() {
} else if ((parent.scrollTop + parent.offsetHeight) === parent.scrollHeight) {
parent.scrollTop = parent.scrollTop - 1;
}
} else {
}
}
if((typeof parent.parentNode.tagName === 'undefined')) {
if ((parent.parentNode.tagName === undefined)) {
i = 10;
return false;
} else if((parent.parentNode.tagName == 'BODY')||(parent.parentNode.tagName == 'HTML')) {
}
if ((parent.parentNode.tagName === 'BODY') || (parent.parentNode.tagName === 'HTML')) {
i = 10;
return false;
} else {
parent = parent.parentNode;
}
parent = parent.parentNode;
}
});
document.addEventListener('touchmove', function (e) {
var parent = e.target;
var scroll = false;
var rotate = 90;
if(ptr_scrollable_parent == false) {
var parent = e.target, scroll = false, rotate = 90, i = 0, ptr_element, ptr_wrapelement, top, ptr, scrolldistance, ptr_eleId, time, ptrbox, insert, inserted;
if (ptr_scrollable_parent === false) {
e.preventDefault();
return false;
}
for(var i = 0; i < ptr_scrollable_parent; i++) {
for (i = 0; i < ptr_scrollable_parent; i += 1) {
parent = parent.parentNode;
}
if((ptr_scrollable_parent != false)&&(parent.hasAttribute('data-url') != false)) {
if ((ptr_scrollable_parent !== false) && (parent.hasAttribute('data-url') !== false)) {
scroll = true;
var ptr_element = parent;
var ptr_wrapelement = ptr_element.getElementsByClassName('wrap')[0];
var top = ptr_element.scrollTop;
var ptr = ptr_element.getElementsByClassName('ptr_box')[0];
var scrolldistance = Math.abs(parseInt(ptr_element.scrollTop));
ptr_element = parent;
ptr_wrapelement = ptr_element.getElementsByClassName('wrap')[0];
top = ptr_element.scrollTop;
ptr = ptr_element.getElementsByClassName('ptr_box')[0];
scrolldistance = Math.abs(parseInt(ptr_element.scrollTop, 10));
if((ptr_wrapelement.className.indexOf(' active') === -1)&&(!ptr_wrapelement.getElementsByClassName('ptr_image')[0].className.match('loading'))) {
if ((ptr_wrapelement.className.indexOf(' active') === -1) && (!ptr_wrapelement.getElementsByClassName('ptr_image')[0].className.match('loading')) && (ptr_element.scrollTop < 1)) {
if (ptr_element.scrollTop < -25) {
rotate = (top < -40) ? -90 : 130 + (top * 12 + 270);
}
@ -906,31 +901,32 @@ function ptr_init() {
ptr_wrapelement.getElementsByClassName('ptr_text')[0].innerHTML = 'Loading ...';
ptr_wrapelement.getElementsByClassName('ptr_image')[0].className += ' loading';
if(parent.getAttribute('data-url') == 'reload') {
if (parent.getAttribute('data-url') === 'reload') {
window.location.reload(true);
return false;
}
var ptr_element = parent;
var ptr_wrapelement = ptr_element.getElementsByClassName('wrap')[0];
var ptr_eleId = parent.id;
var time = new Date();
ptr_element = parent;
ptr_wrapelement = ptr_element.getElementsByClassName('wrap')[0];
ptr_eleId = parent.id;
time = new Date();
reqwest({
url: parent.getAttribute('data-url')+'?rt='+time.getTime()
, type: 'html'
, method: 'post'
, data: { usertime: time.getTime() }
, error: function () {
url: parent.getAttribute('data-url') + '?rt=' + time.getTime(),
type: 'html',
method: 'post',
data: {
usertime: time.getTime()
},
error: function () {
alert('Could not connect');
ptr_wrapelement.style.top = '0px';
ptr.getElementsByClassName('ptr_image')[0].className = ptr.getElementsByClassName('ptr_image')[0].className.replace(' loading', '');
ptr_wrapelement.className = ptr_wrapelement.className.replace(' active', '');
hideLoading(ptr_eleId);
}
, success: function (resp) {
var ptrbox = document.getElementById(ptr_eleId).getElementsByClassName('ptr_box')[0];
var insert = document.createElement('div');
},
success: function (resp) {
ptrbox = document.getElementById(ptr_eleId).getElementsByClassName('ptr_box')[0];
insert = document.createElement('div');
insert.innerHTML = resp;
insert.className = 'inserted';
@ -938,7 +934,7 @@ function ptr_init() {
ptr_wrapelement.style.top = '0px';
ptr.getElementsByClassName('ptr_image')[0].className = ptr.getElementsByClassName('ptr_image')[0].className.replace(' loading', '');
ptr_wrapelement.className = ptr_wrapelement.className.replace(' active', '');
var inserted = document.getElementsByClassName('inserted')[0];
inserted = document.getElementsByClassName('inserted')[0];
ptr_element.scrollTop = inserted.clientHeight - 51;
ptr_wrapelement.getElementsByClassName('ptr_text')[0].innerHTML = '';
ptr.style.opacity = 0.0;
@ -948,39 +944,36 @@ function ptr_init() {
ptr_scrollable_parent = false;
}
})
});
}
} else if(ptr_element.scrollTop != 0) {
} else if (ptr_element.scrollTop !== 0) {
ptr_wrapelement.className = ptr_wrapelement.className.replace(' active', '');
ptr_wrapelement.getElementsByClassName('ptr_text')[0].innerHTML = 'Pull to refresh';
}
}
} else if((ptr_scrollable_parent != false)) {
} else if ((ptr_scrollable_parent !== false)) {
scroll = true;
}
if(scroll == false) {
if (scroll === false) {
e.preventDefault();
}
});
document.addEventListener('touchend', function (e) {
var parent = e.target;
var scroll = false;
var parent = e.target, i = 0, ptr_element, ptr_wrapelement, ptr_eleId, top, ptr;
for(var i = 0; i < ptr_scrollable_parent; i++) {
for (i = 0; i < ptr_scrollable_parent; i += 1) {
parent = parent.parentNode;
}
if((parent.hasAttribute('data-url') != false)&&(ptr_scrollable_parent != false)) {
if((parent.hasAttribute('data-url') != false)) {
var ptr_element = parent;
var ptr_wrapelement = ptr_element.getElementsByClassName('wrap')[0];
var ptr_eleId = parent.id;
var top = ptr_element.scrollTop;
var ptr = ptr_element.getElementsByClassName('ptr_box')[0];
if ((parent.hasAttribute('data-url') !== false) && (ptr_scrollable_parent !== false)) {
if ((parent.hasAttribute('data-url') !== false)) {
ptr_element = parent;
ptr_wrapelement = ptr_element.getElementsByClassName('wrap')[0];
ptr_eleId = parent.id;
top = ptr_element.scrollTop;
ptr = ptr_element.getElementsByClassName('ptr_box')[0];
if (ptr_wrapelement.getElementsByClassName('ptr_image')[0].className.match('loading')) {
ptr_wrapelement.className = ptr_wrapelement.className.replace(' active', '');
@ -991,7 +984,6 @@ function ptr_init() {
}
}
}
ptr_scrollable_parent = false;
});
}

143
lib/js/pulltorefresh.js

@ -9,16 +9,19 @@
var ptr_scrollable_parent = false;
function ptr_init() {
document.getElementsByTagName('body')[0].className = !!('ontouchstart' in window) ?
document.getElementsByTagName('body')[0].className+=' touch' :
document.getElementsByTagName('body')[0].className+=' desktop';
var scrollables = document.getElementsByClassName('scrollable');
for(var i = 0; i<scrollables.length; i++) {
if(scrollables[i].hasAttribute('data-url') != false) {
var ptr_box = document.createElement('div'),
ptr_container = document.createElement('div'),
ptr_image = document.createElement('div'),
"use strict";
var ptr_box, ptr_container, ptr_image, ptr_text, i = 0, scrollables = document.getElementsByClassName('scrollable');
if ((window.hasOwnProperty('ontouchstart')) || (window.navigator.msPointerEnabled)) {
document.getElementsByTagName('body')[0].className += ' touch';
} else {
document.getElementsByTagName('body')[0].className += ' notouch';
}
for (i = 0; i < scrollables.length; i += 1) {
if (scrollables[i].hasAttribute('data-url') !== false) {
ptr_box = document.createElement('div');
ptr_container = document.createElement('div');
ptr_image = document.createElement('div');
ptr_text = document.createElement('div');
ptr_box.appendChild(ptr_container);
@ -36,27 +39,25 @@ function ptr_init() {
}
document.addEventListener('touchstart', function (e) {
var parent = e.target;
var ptr_box, ptr_container, ptr_image, ptr_text, parent = e.target, i = 0;
if(typeof parent.className === null) {
if (parent.className === undefined) {
return false;
}
for(var i = 0; i < 10; i++) {
if(typeof parent.className !== 'undefined') {
for (i = 0; i < 10; i += 1) {
if (parent.className !== undefined) {
if (parent.className.match('scrollable')) {
ptr_scrollable_parent = i;
i = 10;
if(parent.hasAttribute('data-url') != false) {
if(typeof parent.getElementsByClassName('ptr_box')[0] != 'undefined') {
} else {
var ptr_box = document.createElement('div'),
ptr_container = document.createElement('div'),
ptr_image = document.createElement('div'),
if (parent.hasAttribute('data-url') !== false) {
if (parent.getElementsByClassName('ptr_box')[0] === undefined) {
ptr_box = document.createElement('div');
ptr_container = document.createElement('div');
ptr_image = document.createElement('div');
ptr_text = document.createElement('div');
ptr_box.appendChild(ptr_container);
@ -71,7 +72,7 @@ function ptr_init() {
parent.firstElementChild.insertBefore(ptr_box, parent.firstElementChild.firstChild);
}
} else if(typeof parent.getElementsByClassName('ptr_box')[0] != 'undefined') {
} else if (parent.getElementsByClassName('ptr_box')[0] !== undefined) {
parent.removeChild(parent.getElementsByClassName('ptr_box')[0]);
}
@ -80,50 +81,44 @@ function ptr_init() {
} else if ((parent.scrollTop + parent.offsetHeight) === parent.scrollHeight) {
parent.scrollTop = parent.scrollTop - 1;
}
} else {
}
}
if((typeof parent.parentNode.tagName === 'undefined')) {
if ((parent.parentNode.tagName === undefined)) {
i = 10;
return false;
} else if((parent.parentNode.tagName == 'BODY')||(parent.parentNode.tagName == 'HTML')) {
}
if ((parent.parentNode.tagName === 'BODY') || (parent.parentNode.tagName === 'HTML')) {
i = 10;
return false;
} else {
parent = parent.parentNode;
}
parent = parent.parentNode;
}
});
document.addEventListener('touchmove', function (e) {
var parent = e.target;
var scroll = false;
var rotate = 90;
if(ptr_scrollable_parent == false) {
var parent = e.target, scroll = false, rotate = 90, i = 0, ptr_element, ptr_wrapelement, top, ptr, scrolldistance, ptr_eleId, time, ptrbox, insert, inserted;
if (ptr_scrollable_parent === false) {
e.preventDefault();
return false;
}
for(var i = 0; i < ptr_scrollable_parent; i++) {
for (i = 0; i < ptr_scrollable_parent; i += 1) {
parent = parent.parentNode;
}
if((ptr_scrollable_parent != false)&&(parent.hasAttribute('data-url') != false)) {
if ((ptr_scrollable_parent !== false) && (parent.hasAttribute('data-url') !== false)) {
scroll = true;
var ptr_element = parent;
var ptr_wrapelement = ptr_element.getElementsByClassName('wrap')[0];
var top = ptr_element.scrollTop;
var ptr = ptr_element.getElementsByClassName('ptr_box')[0];
var scrolldistance = Math.abs(parseInt(ptr_element.scrollTop));
ptr_element = parent;
ptr_wrapelement = ptr_element.getElementsByClassName('wrap')[0];
top = ptr_element.scrollTop;
ptr = ptr_element.getElementsByClassName('ptr_box')[0];
scrolldistance = Math.abs(parseInt(ptr_element.scrollTop, 10));
if((ptr_wrapelement.className.indexOf(' active') === -1)&&(!ptr_wrapelement.getElementsByClassName('ptr_image')[0].className.match('loading'))) {
if ((ptr_wrapelement.className.indexOf(' active') === -1) && (!ptr_wrapelement.getElementsByClassName('ptr_image')[0].className.match('loading')) && (ptr_element.scrollTop < 1)) {
if (ptr_element.scrollTop < -25) {
rotate = (top < -40) ? -90 : 130 + (top * 12 + 270);
}
@ -141,31 +136,32 @@ function ptr_init() {
ptr_wrapelement.getElementsByClassName('ptr_text')[0].innerHTML = 'Loading ...';
ptr_wrapelement.getElementsByClassName('ptr_image')[0].className += ' loading';
if(parent.getAttribute('data-url') == 'reload') {
if (parent.getAttribute('data-url') === 'reload') {
window.location.reload(true);
return false;
}
var ptr_element = parent;
var ptr_wrapelement = ptr_element.getElementsByClassName('wrap')[0];
var ptr_eleId = parent.id;
var time = new Date();
ptr_element = parent;
ptr_wrapelement = ptr_element.getElementsByClassName('wrap')[0];
ptr_eleId = parent.id;
time = new Date();
reqwest({
url: parent.getAttribute('data-url')+'?rt='+time.getTime()
, type: 'html'
, method: 'post'
, data: { usertime: time.getTime() }
, error: function () {
url: parent.getAttribute('data-url') + '?rt=' + time.getTime(),
type: 'html',
method: 'post',
data: {
usertime: time.getTime()
},
error: function () {
alert('Could not connect');
ptr_wrapelement.style.top = '0px';
ptr.getElementsByClassName('ptr_image')[0].className = ptr.getElementsByClassName('ptr_image')[0].className.replace(' loading', '');
ptr_wrapelement.className = ptr_wrapelement.className.replace(' active', '');
hideLoading(ptr_eleId);
}
, success: function (resp) {
var ptrbox = document.getElementById(ptr_eleId).getElementsByClassName('ptr_box')[0];
var insert = document.createElement('div');
},
success: function (resp) {
ptrbox = document.getElementById(ptr_eleId).getElementsByClassName('ptr_box')[0];
insert = document.createElement('div');
insert.innerHTML = resp;
insert.className = 'inserted';
@ -173,7 +169,7 @@ function ptr_init() {
ptr_wrapelement.style.top = '0px';
ptr.getElementsByClassName('ptr_image')[0].className = ptr.getElementsByClassName('ptr_image')[0].className.replace(' loading', '');
ptr_wrapelement.className = ptr_wrapelement.className.replace(' active', '');
var inserted = document.getElementsByClassName('inserted')[0];
inserted = document.getElementsByClassName('inserted')[0];
ptr_element.scrollTop = inserted.clientHeight - 51;
ptr_wrapelement.getElementsByClassName('ptr_text')[0].innerHTML = '';
ptr.style.opacity = 0.0;
@ -183,39 +179,36 @@ function ptr_init() {
ptr_scrollable_parent = false;
}
})
});
}
} else if(ptr_element.scrollTop != 0) {
} else if (ptr_element.scrollTop !== 0) {
ptr_wrapelement.className = ptr_wrapelement.className.replace(' active', '');
ptr_wrapelement.getElementsByClassName('ptr_text')[0].innerHTML = 'Pull to refresh';
}
}
} else if((ptr_scrollable_parent != false)) {
} else if ((ptr_scrollable_parent !== false)) {
scroll = true;
}
if(scroll == false) {
if (scroll === false) {
e.preventDefault();
}
});
document.addEventListener('touchend', function (e) {
var parent = e.target;
var scroll = false;
var parent = e.target, i = 0, ptr_element, ptr_wrapelement, ptr_eleId, top, ptr;
for(var i = 0; i < ptr_scrollable_parent; i++) {
for (i = 0; i < ptr_scrollable_parent; i += 1) {
parent = parent.parentNode;
}
if((parent.hasAttribute('data-url') != false)&&(ptr_scrollable_parent != false)) {
if((parent.hasAttribute('data-url') != false)) {
var ptr_element = parent;
var ptr_wrapelement = ptr_element.getElementsByClassName('wrap')[0];
var ptr_eleId = parent.id;
var top = ptr_element.scrollTop;
var ptr = ptr_element.getElementsByClassName('ptr_box')[0];
if ((parent.hasAttribute('data-url') !== false) && (ptr_scrollable_parent !== false)) {
if ((parent.hasAttribute('data-url') !== false)) {
ptr_element = parent;
ptr_wrapelement = ptr_element.getElementsByClassName('wrap')[0];
ptr_eleId = parent.id;
top = ptr_element.scrollTop;
ptr = ptr_element.getElementsByClassName('ptr_box')[0];
if (ptr_wrapelement.getElementsByClassName('ptr_image')[0].className.match('loading')) {
ptr_wrapelement.className = ptr_wrapelement.className.replace(' active', '');

2
submodules/pulltorefresh

@ -1 +1 @@
Subproject commit 8b643ab71af3bd19363a4fd48ec3ea1179823ec3
Subproject commit 7c55d91031af238eedfb55ba9cc1e6558eb65ce3
Loading…
Cancel
Save