diff --git a/actions/newnotice.php b/actions/newnotice.php index e80c03031d..ac630eed0c 100644 --- a/actions/newnotice.php +++ b/actions/newnotice.php @@ -58,8 +58,10 @@ class NewnoticeAction extends Action { $cmd->execute(new WebChannel()); return; } + + $replyto = $this->trimmed('inreplyto'); - $notice = Notice::saveNew($user->id, $content, 'web'); + $notice = Notice::saveNew($user->id, $content, 'web', $replyto); if (is_string($notice)) { $this->show_form($notice); diff --git a/js/util.js b/js/util.js index fe3ed74dc2..0055c35dfa 100644 --- a/js/util.js +++ b/js/util.js @@ -88,7 +88,7 @@ $(document).ready(function(){ $("form.disfavor").each(addAjaxHidden); }); -function doreply(nick) { +function doreply(nick,id) { rgx_username = /^[0-9a-zA-Z\-_.]*$/; if (nick.match(rgx_username)) { replyto = "@" + nick + " "; @@ -97,6 +97,9 @@ function doreply(nick) { $("#status_textarea").focus(); return false; } + if (id) { + $("#inreplyto").val(id); + } } return true; } diff --git a/lib/stream.php b/lib/stream.php index 8a2c1e9b08..ea452096cc 100644 --- a/lib/stream.php +++ b/lib/stream.php @@ -87,7 +87,7 @@ class StreamAction extends PersonalAction { common_element_start('a', array('href' => common_local_url('newnotice', array('replyto' => $profile->nickname)), - 'onclick' => 'return doreply("'.$profile->nickname.'");', + 'onclick' => 'return doreply("'.$profile->nickname.'", '.$notice->id.');', 'title' => _('reply'), 'class' => 'replybutton')); common_raw('→'); diff --git a/lib/util.php b/lib/util.php index bb5da13965..6e9e4533cf 100644 --- a/lib/util.php +++ b/lib/util.php @@ -1298,6 +1298,8 @@ function common_notice_form($action=NULL, $content=NULL) { if ($action) { common_hidden('returnto', $action); } + # set by JavaScript + common_hidden('inreplyto', 'false'); common_element('input', array('id' => 'status_submit', 'name' => 'status_submit', 'type' => 'submit',