diff --git a/isso/js/app/isso.js b/isso/js/app/isso.js index a46f43a..39706f8 100644 --- a/isso/js/app/isso.js +++ b/isso/js/app/isso.js @@ -57,7 +57,8 @@ define(["app/dom", "app/utils", "app/config", "app/api", "app/jade", "app/i18n", api.create($("#isso-thread").getAttribute("data-isso-id"), { author: author, email: email, website: website, text: utils.text($(".textarea", el).innerHTML), - parent: parent || null + parent: parent || null, + title: $("#isso-thread").getAttribute("data-title") || null }).then(function(comment) { $(".textarea", el).innerHTML = ""; $(".textarea", el).blur(); diff --git a/isso/views/comments.py b/isso/views/comments.py index 0272fa3..1142829 100644 --- a/isso/views/comments.py +++ b/isso/views/comments.py @@ -75,7 +75,7 @@ class API(object): 'mode', 'created', 'modified', 'likes', 'dislikes', 'hash']) # comment fields, that can be submitted - ACCEPT = set(['text', 'author', 'website', 'email', 'parent']) + ACCEPT = set(['text', 'author', 'website', 'email', 'parent', 'title']) VIEWS = [ ('fetch', ('GET', '/')), @@ -168,11 +168,14 @@ class API(object): with self.isso.lock: if uri not in self.threads: - with http.curl('GET', local("origin"), uri) as resp: - if resp and resp.status == 200: - uri, title = parse.thread(resp.read(), id=uri) - else: - return NotFound('URI does not exist') + if 'title' not in data: + with http.curl('GET', local("origin"), uri) as resp: + if resp and resp.status == 200: + uri, title = parse.thread(resp.read(), id=uri) + else: + return NotFound('URI does not exist %s') + else: + title = data['title'] thread = self.threads.new(uri, title) self.signal("comments.new:new-thread", thread)