parent
fff75df0df
commit
eb540fae1d
6 changed files with 121 additions and 33 deletions
|
@ -183,6 +183,7 @@ function(jQuery, Paths, URI, HostApp, Cache) {
|
|||
|
||||
template.username.innerText = status.entity;
|
||||
template.username.href = status.entity;
|
||||
template.username.title = status.entity;
|
||||
template.username.onclick = function() {
|
||||
HostApp.showProfileForEntity(status.entity);
|
||||
return false;
|
||||
|
@ -208,6 +209,7 @@ function(jQuery, Paths, URI, HostApp, Cache) {
|
|||
var p = this.cache.profiles.getItem(status.entity);
|
||||
|
||||
if (p && p != "null") {
|
||||
|
||||
profile_callback(p);
|
||||
|
||||
} else {
|
||||
|
@ -215,9 +217,7 @@ function(jQuery, Paths, URI, HostApp, Cache) {
|
|||
Paths.findProfileURL(status.entity, function(profile_url) {
|
||||
|
||||
if (profile_url) {
|
||||
|
||||
Paths.getURL(profile_url, "GET", function(resp) {
|
||||
|
||||
var p = JSON.parse(resp.responseText);
|
||||
if (p && p != "null") {
|
||||
_this.cache.profiles.setItem(status.entity, p);
|
||||
|
@ -371,7 +371,7 @@ function(jQuery, Paths, URI, HostApp, Cache) {
|
|||
|
||||
var _this = this;
|
||||
var callback = function(resp) {
|
||||
if (resp.status >= 200 && resp.status < 300) {
|
||||
if (resp.status >= 200 && resp.status < 300 && before_node) {
|
||||
var status = JSON.parse(resp.responseText);
|
||||
status.__repost = repost;
|
||||
var li = _this.getStatusDOMElement(status);
|
||||
|
@ -522,6 +522,7 @@ function(jQuery, Paths, URI, HostApp, Cache) {
|
|||
|
||||
if (confirm("Really delete this post?")) {
|
||||
var url = URI(Paths.mkApiRootPath("/posts/" + id));
|
||||
|
||||
Paths.getURL(url.toString(), "DELETE", callback);
|
||||
}
|
||||
}
|
||||
|
@ -595,20 +596,24 @@ function(jQuery, Paths, URI, HostApp, Cache) {
|
|||
var basic = profile["https://tent.io/types/info/basic/v0.1.0"];
|
||||
|
||||
if (profile && basic) {
|
||||
if(basic.name) {
|
||||
var new_text = node.innerHTML.replace(
|
||||
mention.text,
|
||||
"<a href='" + mention.entity + "' class='name' title='" + mention.entity + "'>"
|
||||
+ basic.name
|
||||
+ "</a>"
|
||||
);
|
||||
|
||||
node.innerHTML = new_text;
|
||||
$(node).find("a.name").click(function(e) {
|
||||
HostApp.showProfileForEntity(e.target.title);
|
||||
return false;
|
||||
});
|
||||
var name = mention.text;
|
||||
if (basic.name) {
|
||||
name = basic.name;
|
||||
}
|
||||
|
||||
var new_text = node.innerHTML.replace(
|
||||
mention.text,
|
||||
"<a href='" + mention.entity + "' class='name' title='" + mention.entity + "'>"
|
||||
+ name
|
||||
+ "</a>"
|
||||
);
|
||||
|
||||
node.innerHTML = new_text;
|
||||
$(node).find("a.name").click(function(e) {
|
||||
HostApp.showProfileForEntity(e.target.title);
|
||||
return false;
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -25,13 +25,13 @@ function(jQuery, HostApp, Hmac, Cache) {
|
|||
|
||||
Paths.getURL = function(url, http_method, callback, data, auth_header, accepts) {
|
||||
|
||||
accepts = accepts || "application/vnd.tent.v0+json";
|
||||
if(accepts !== false) accepts = accepts || "application/vnd.tent.v0+json; charset=utf-8";
|
||||
|
||||
jQuery.ajax({
|
||||
var options = {
|
||||
|
||||
beforeSend: function(xhr) {
|
||||
|
||||
xhr.setRequestHeader("Accept", accepts);
|
||||
if(accepts !== false) xhr.setRequestHeader("Accept", accepts);
|
||||
|
||||
if (data) xhr.setRequestHeader("Content-Length", data.length);
|
||||
|
||||
|
@ -64,7 +64,9 @@ function(jQuery, HostApp, Hmac, Cache) {
|
|||
error: function(xhr, ajaxOptions, thrownError) {
|
||||
console.error("getURL (" + xhr.status + ")" + xhr.statusText + " " + http_method + " (" + url + "): '" + xhr.responseText + "'");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
jQuery.ajax(options);
|
||||
}
|
||||
|
||||
Paths.postMultipart = function(url, callback, data, boundary, accepts) {
|
||||
|
@ -105,7 +107,6 @@ function(jQuery, HostApp, Hmac, Cache) {
|
|||
}
|
||||
|
||||
Paths.findProfileURL = function(entity, callback, errorCallback) {
|
||||
|
||||
var profile_url = Paths.cache.profile_urls.getItem(entity);
|
||||
|
||||
if (profile_url && profile_url != "null") {
|
||||
|
@ -134,7 +135,31 @@ function(jQuery, HostApp, Hmac, Cache) {
|
|||
Paths.cache.profile_urls.setItem(entity, profile_url);
|
||||
callback(profile_url);
|
||||
} else {
|
||||
if(errorCallback) errorCallback(entity + " has no profile URL");
|
||||
Paths.getURL(entity, "GET", function(resp) {
|
||||
|
||||
if (resp.status >= 200 && resp.status < 300) {
|
||||
var div = document.createElement("div");
|
||||
div.innerHTML = resp.responseText;
|
||||
var links = $(div).find("link[rel='https://tent.io/rels/profile']");
|
||||
|
||||
if (links.length > 0) {
|
||||
var href = links.get(0).href;
|
||||
Paths.cache.profile_urls.setItem(entity, href);
|
||||
if (!href.startsWith("http")) {
|
||||
href = entity + "/profile";
|
||||
}
|
||||
callback(href);
|
||||
|
||||
} else {
|
||||
if(errorCallback) errorCallback(entity + " has no profile URL");
|
||||
}
|
||||
} else {
|
||||
if(errorCallback) errorCallback(entity + " has no profile URL");
|
||||
}
|
||||
|
||||
}, null, false, false);
|
||||
|
||||
//if(errorCallback) errorCallback(entity + " has no profile URL");
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
Reference in a new issue