From dbad342cbcd92c0d651f7d7f05db36f50b99580c Mon Sep 17 00:00:00 2001 From: jeena Date: Fri, 4 Oct 2013 00:17:51 +0200 Subject: [PATCH] now showing referenced images --- WebKit/scripts/controller/Conversation.js | 19 ++++---- WebKit/scripts/controller/Timeline.js | 7 ++- WebKit/scripts/helper/Core.js | 53 +++++++++++------------ 3 files changed, 40 insertions(+), 39 deletions(-) diff --git a/WebKit/scripts/controller/Conversation.js b/WebKit/scripts/controller/Conversation.js index 02287df..4ff204d 100644 --- a/WebKit/scripts/controller/Conversation.js +++ b/WebKit/scripts/controller/Conversation.js @@ -86,7 +86,7 @@ function(HostApp, Core, APICalls, URI, ConversationNode) { var status = _statuses.post; - var dom_element = _this.getStatusDOMElement(status); + var dom_element = _this.getStatusDOMElement(status, _statuses.refs); var cNode = new ConversationNode(dom_element); dom_element.cNode = cNode; @@ -130,7 +130,7 @@ function(HostApp, Core, APICalls, URI, ConversationNode) { var url = HostApp.serverUrl("post") .replace(/\{entity\}/, encodeURIComponent(entity)) .replace(/\{post\}/, id) - + "?profiles=entity"; + + "?profiles=entity&max_refs=20"; APICalls.get(url, { callback: callback }); } @@ -141,15 +141,16 @@ function(HostApp, Core, APICalls, URI, ConversationNode) { var callback = function(resp) { var statuses = JSON.parse(resp.responseText).mentions; + if (statuses) { + for (var i = 0; i < statuses.length; i++) { - for (var i = 0; i < statuses.length; i++) { + var status = statuses[i]; - var status = statuses[i]; - - // don't load if it is already there - var not_already_there = !document.getElementById("post-" + status.post + "-" + _this.action); - if(not_already_there && status.type.startsWith("https://tent.io/types/status/v0")) { - _this.append(status.post, status.entity, node, true); + // don't load if it is already there + var not_already_there = !document.getElementById("post-" + status.post + "-" + _this.action); + if(not_already_there && status.type.startsWith("https://tent.io/types/status/v0")) { + _this.append(status.post, status.entity, node, true); + } } } } diff --git a/WebKit/scripts/controller/Timeline.js b/WebKit/scripts/controller/Timeline.js index 67efa7f..c2264a7 100644 --- a/WebKit/scripts/controller/Timeline.js +++ b/WebKit/scripts/controller/Timeline.js @@ -77,10 +77,13 @@ function(Core, APICalls, HostApp, URI) { this.since_id_entity = status.entity; this.since_time = status.received_at; } + + // if(status.id == "vBf0UALAJ97LnvJN4f6sBw") debug(status); + if (status.type.startsWith("https://tent.io/types/status/v0#")) { - var new_node = this.getStatusDOMElement(status); + var new_node = this.getStatusDOMElement(status, _statuses.refs); if (!document.getElementById(new_node.id)) { if(!append && this.body.childNodes.length > 0) { @@ -133,7 +136,7 @@ function(Core, APICalls, HostApp, URI) { uri.addSearch("types", post_types.join(",")); //uri.addSearch("sort_by", "published_at"); uri.addSearch("limit", this.posts_limit); - //uri.addSearch("max_refs", 20); + uri.addSearch("max_refs", 20); uri.addSearch("profiles", "entity"); if(this.since_time) { diff --git a/WebKit/scripts/helper/Core.js b/WebKit/scripts/helper/Core.js index a0ddd02..1a4f25b 100644 --- a/WebKit/scripts/helper/Core.js +++ b/WebKit/scripts/helper/Core.js @@ -166,7 +166,7 @@ function(jQuery, APICalls, URI, HostApp, Markdown) { return jQuery.extend(true, {}, this.template);; } - Core.prototype.getStatusDOMElement = function(status) { + Core.prototype.getStatusDOMElement = function(status, refs) { var _this = this; @@ -260,35 +260,32 @@ function(jQuery, APICalls, URI, HostApp, Markdown) { template.message.innerHTML = this.replaceURLWithHTMLLinks(text, entities, template.message); this.afterChangingTextinMessageHTML(template.message) - /* - if (status.type == "https://tent.io/types/post/photo/v0.1.0") { - - for (var i = 0; i < status.attachments.length; i++) { - // closure needed for the callback - (function() { - - var attachment = status.attachments[i]; - - var img = new Image(); - - img.className = "photo"; - template.images.appendChild(img); - - var callback = function(resp) { - img.src = "data:" + attachment.type + ";base64," + resp.responseText; + if(status.refs) { + for (var i = 0; i < status.refs.length; i++) { + var ref = status.refs[i]; + if(ref.type == "https://tent.io/types/photo/v0#") { + if(refs) { + for (var j = 0; j < refs.length; j++) { + var r = refs[j]; + if(ref.post == r.id) { + for (var k = 0; k < r.attachments.length; k++) { + var attachment = r.attachments[k]; + var a = document.createElement("a"); + var img = document.createElement("img"); + img.src = HostApp.serverUrl("attachment") + .replace(/\{entity\}/, encodeURIComponent(r.entity)) + .replace(/\{digest\}/, attachment.digest); + a.appendChild(img); + a.href = img.src; + template.images.appendChild(a); + } + } + } } - - if (status.entity == HostApp.stringForKey("entity")) { - var url = APICalls.mkApiRootPath("/posts/" + status.id + "/attachments/" + attachment.name); - APICalls.http_call(url, "GET", callback, null, null, attachment.type); - } else { - var url = APICalls.mkApiRootPath("/posts/" + encodeURIComponent(status.entity) + "/" + status.id + "/attachments/" + attachment.name); - APICalls.http_call(url, "GET", callback, null, null, attachment.type); - } - })(); - } + } + } } - */ + this.findMentions(template.message, status.mentions); /*