aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--js/ajaxupload.js53
-rw-r--r--mod/oexchange.php15
2 files changed, 54 insertions, 14 deletions
diff --git a/js/ajaxupload.js b/js/ajaxupload.js
index 67c4a56fb..5719f30e0 100644
--- a/js/ajaxupload.js
+++ b/js/ajaxupload.js
@@ -58,6 +58,25 @@
});
}
+ // Get offset adding all offsets, slow fall-back method
+ var getOffsetSlow = function(el){
+ var top = 0, left = 0;
+ do {
+ top += el.offsetTop || 0;
+ left += el.offsetLeft || 0;
+ el = el.offsetParent;
+ } while (el);
+
+ return {
+ left: left,
+ top: top
+ };
+ };
+
+
+
+
+
// Needs more testing, will be rewriten for next version
// getOffset function copied from jQuery lib (http://jquery.com/)
if (document.documentElement.getBoundingClientRect){
@@ -78,7 +97,12 @@
var bound = body.getBoundingClientRect();
zoom = (bound.right - bound.left) / body.clientWidth;
}
-
+
+ // some CSS layouts gives 0 width and/or bounding boxes
+ // in this case we fall back to the slow method
+ if (zoom == 0 || body.clientWidth == 0)
+ return getOffsetSlow(el);
+
if (zoom > 1) {
clientTop = 0;
clientLeft = 0;
@@ -92,20 +116,21 @@
};
};
} else {
- // Get offset adding all offsets
- var getOffset = function(el){
- var top = 0, left = 0;
- do {
- top += el.offsetTop || 0;
- left += el.offsetLeft || 0;
- el = el.offsetParent;
- } while (el);
+// // Get offset adding all offsets
+ // var getOffset = function(el){
+ // var top = 0, left = 0;
+ // do {
+ // top += el.offsetTop || 0;
+ // left += el.offsetLeft || 0;
+ // el = el.offsetParent;
+ // } while (el);
- return {
- left: left,
- top: top
- };
- };
+ // return {
+ // left: left,
+ // top: top
+ // };
+ // };
+ var getOffset = getOffsetSlowl
}
/**
diff --git a/mod/oexchange.php b/mod/oexchange.php
index 63b48751c..27c8b388d 100644
--- a/mod/oexchange.php
+++ b/mod/oexchange.php
@@ -15,6 +15,21 @@ function oexchange_init(&$a) {
function oexchange_content(&$a) {
if(! local_user()) {
+ if(remote_user()) {
+ $observer = $a->get_observer();
+ if($observer && $observer['xchan_url']) {
+ $parsed = @parse_url($observer['xchan_url']);
+ if(! $parsed) {
+ notice( t('Unable to find your hub.') . EOL);
+ return;
+ }
+ $url = $parsed['scheme'] . '://' . $parsed['host'] . (($parsed['port']) ? ':' . $parsed['port'] : '');
+ $url .= '/oexchange';
+ $result = z_post_url($url,$_REQUEST);
+ json_return_and_die($result);
+ }
+ }
+
return login(false);
}