mirror of
https://github.com/friendica/friendica
synced 2025-04-26 02:30:11 +00:00
move some js to have more structure
This commit is contained in:
parent
485b1e5521
commit
047722dc37
4 changed files with 269 additions and 266 deletions
142
js/hovercard.js
142
js/hovercard.js
|
@ -163,148 +163,6 @@ function getContactData(purl, url, actionOnSuccess) {
|
|||
}
|
||||
getContactData.cache = {};
|
||||
|
||||
// current time in milliseconds, to send each request to make sure
|
||||
// we 're not getting 304 response
|
||||
function timeNow() {
|
||||
return new Date().getTime();
|
||||
}
|
||||
|
||||
String.prototype.normalizeLink = function () {
|
||||
var ret = this.replace('https:', 'http:');
|
||||
var ret = ret.replace('//www', '//');
|
||||
return ret.rtrim();
|
||||
};
|
||||
|
||||
|
||||
|
||||
function cleanContactUrl(url) {
|
||||
var parts = parseUrl(url);
|
||||
|
||||
if(! ("scheme" in parts) || ! ("host" in parts)) {
|
||||
return url;
|
||||
}
|
||||
|
||||
var newUrl =parts["scheme"] + "://" + parts["host"];
|
||||
|
||||
if("port" in parts) {
|
||||
newUrl += ":" + parts["port"];
|
||||
}
|
||||
|
||||
if("path" in parts) {
|
||||
newUrl += parts["path"];
|
||||
}
|
||||
|
||||
// if(url != newUrl) {
|
||||
// console.log("Cleaned contact url " + url + " to " + newUrl);
|
||||
// }
|
||||
|
||||
return newUrl;
|
||||
}
|
||||
|
||||
function parseUrl (str, component) { // eslint-disable-line camelcase
|
||||
// discuss at: http://locutusjs.io/php/parse_url/
|
||||
// original by: Steven Levithan (http://blog.stevenlevithan.com)
|
||||
// reimplemented by: Brett Zamir (http://brett-zamir.me)
|
||||
// input by: Lorenzo Pisani
|
||||
// input by: Tony
|
||||
// improved by: Brett Zamir (http://brett-zamir.me)
|
||||
// note 1: original by http://stevenlevithan.com/demo/parseuri/js/assets/parseuri.js
|
||||
// note 1: blog post at http://blog.stevenlevithan.com/archives/parseuri
|
||||
// note 1: demo at http://stevenlevithan.com/demo/parseuri/js/assets/parseuri.js
|
||||
// note 1: Does not replace invalid characters with '_' as in PHP,
|
||||
// note 1: nor does it return false with
|
||||
// note 1: a seriously malformed URL.
|
||||
// note 1: Besides function name, is essentially the same as parseUri as
|
||||
// note 1: well as our allowing
|
||||
// note 1: an extra slash after the scheme/protocol (to allow file:/// as in PHP)
|
||||
// example 1: parse_url('http://user:pass@host/path?a=v#a')
|
||||
// returns 1: {scheme: 'http', host: 'host', user: 'user', pass: 'pass', path: '/path', query: 'a=v', fragment: 'a'}
|
||||
// example 2: parse_url('http://en.wikipedia.org/wiki/%22@%22_%28album%29')
|
||||
// returns 2: {scheme: 'http', host: 'en.wikipedia.org', path: '/wiki/%22@%22_%28album%29'}
|
||||
// example 3: parse_url('https://host.domain.tld/a@b.c/folder')
|
||||
// returns 3: {scheme: 'https', host: 'host.domain.tld', path: '/a@b.c/folder'}
|
||||
// example 4: parse_url('https://gooduser:secretpassword@www.example.com/a@b.c/folder?foo=bar')
|
||||
// returns 4: { scheme: 'https', host: 'www.example.com', path: '/a@b.c/folder', query: 'foo=bar', user: 'gooduser', pass: 'secretpassword' }
|
||||
|
||||
var query
|
||||
|
||||
var mode = (typeof require !== 'undefined' ? require('../info/ini_get')('locutus.parse_url.mode') : undefined) || 'php'
|
||||
|
||||
var key = [
|
||||
'source',
|
||||
'scheme',
|
||||
'authority',
|
||||
'userInfo',
|
||||
'user',
|
||||
'pass',
|
||||
'host',
|
||||
'port',
|
||||
'relative',
|
||||
'path',
|
||||
'directory',
|
||||
'file',
|
||||
'query',
|
||||
'fragment'
|
||||
]
|
||||
|
||||
// For loose we added one optional slash to post-scheme to catch file:/// (should restrict this)
|
||||
var parser = {
|
||||
php: new RegExp([
|
||||
'(?:([^:\\/?#]+):)?',
|
||||
'(?:\\/\\/()(?:(?:()(?:([^:@\\/]*):?([^:@\\/]*))?@)?([^:\\/?#]*)(?::(\\d*))?))?',
|
||||
'()',
|
||||
'(?:(()(?:(?:[^?#\\/]*\\/)*)()(?:[^?#]*))(?:\\?([^#]*))?(?:#(.*))?)'
|
||||
].join('')),
|
||||
strict: new RegExp([
|
||||
'(?:([^:\\/?#]+):)?',
|
||||
'(?:\\/\\/((?:(([^:@\\/]*):?([^:@\\/]*))?@)?([^:\\/?#]*)(?::(\\d*))?))?',
|
||||
'((((?:[^?#\\/]*\\/)*)([^?#]*))(?:\\?([^#]*))?(?:#(.*))?)'
|
||||
].join('')),
|
||||
loose: new RegExp([
|
||||
'(?:(?![^:@]+:[^:@\\/]*@)([^:\\/?#.]+):)?',
|
||||
'(?:\\/\\/\\/?)?',
|
||||
'((?:(([^:@\\/]*):?([^:@\\/]*))?@)?([^:\\/?#]*)(?::(\\d*))?)',
|
||||
'(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))',
|
||||
'(?:\\?([^#]*))?(?:#(.*))?)'
|
||||
].join(''))
|
||||
}
|
||||
|
||||
var m = parser[mode].exec(str)
|
||||
var uri = {}
|
||||
var i = 14
|
||||
|
||||
while (i--) {
|
||||
if (m[i]) {
|
||||
uri[key[i]] = m[i]
|
||||
}
|
||||
}
|
||||
|
||||
if (component) {
|
||||
return uri[component.replace('PHP_URL_', '').toLowerCase()]
|
||||
}
|
||||
|
||||
if (mode !== 'php') {
|
||||
var name = (typeof require !== 'undefined' ? require('../info/ini_get')('locutus.parse_url.queryKey') : undefined) || 'queryKey'
|
||||
parser = /(?:^|&)([^&=]*)=?([^&]*)/g
|
||||
uri[name] = {}
|
||||
query = uri[key[12]] || ''
|
||||
query.replace(parser, function ($0, $1, $2) {
|
||||
if ($1) {
|
||||
uri[name][$1] = $2
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
delete uri.source
|
||||
return uri
|
||||
}
|
||||
|
||||
// trim function to replace whithespace after the string
|
||||
String.prototype.rtrim = function() {
|
||||
var trimmed = this.replace(/\s+$/g, '');
|
||||
return trimmed;
|
||||
};
|
||||
|
||||
// Get hover-card template data and the contact-data and transform it with
|
||||
// the help of jSmart. At the end we have full html content of the hovercard
|
||||
function getHoverCardContent(purl, url, callback) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue