Update to XHR post notice

This commit is contained in:
sarven 2009-01-16 17:02:46 +00:00
parent eacb8df691
commit 877327a18e
3 changed files with 38 additions and 25 deletions

View File

@ -91,7 +91,7 @@ class NewnoticeAction extends Action
common_broadcast_notice($notice); common_broadcast_notice($notice);
if ($this->boolean('ajax')) { if ($this->boolean('ajax')) {
common_start_html('text/xml;charset=utf-8', true); $this->startHTML('text/xml;charset=utf-8', true);
$this->elementStart('head'); $this->elementStart('head');
$this->element('title', null, _('Notice posted')); $this->element('title', null, _('Notice posted'));
$this->elementEnd('head'); $this->elementEnd('head');

View File

@ -20,21 +20,21 @@ $(document).ready(function(){
// count character on keyup // count character on keyup
function counter(event){ function counter(event){
var maxLength = 140; var maxLength = 140;
var currentLength = $("#status_textarea").val().length; var currentLength = $("#notice_data-text").val().length;
var remaining = maxLength - currentLength; var remaining = maxLength - currentLength;
var counter = $("#counter"); var counter = $("#counter");
counter.text(remaining); counter.text(remaining);
if (remaining <= 0) { if (remaining <= 0) {
$("#status_form").addClass("response_error"); $("#form_notice").addClass("response_error");
} else { } else {
$("#status_form").removeClass("response_error"); $("#form_notice").removeClass("response_error");
} }
} }
function submitonreturn(event) { function submitonreturn(event) {
if (event.keyCode == 13) { if (event.keyCode == 13) {
$("#status_form").submit(); $("#form_notice").submit();
event.preventDefault(); event.preventDefault();
event.stopPropagation(); event.stopPropagation();
return false; return false;
@ -42,15 +42,15 @@ $(document).ready(function(){
return true; return true;
} }
if ($("#status_textarea").length) { if ($("#notice_data-text").length) {
$("#status_textarea").bind("keyup", counter); $("#notice_data-text").bind("keyup", counter);
$("#status_textarea").bind("keydown", submitonreturn); $("#notice_data-text").bind("keydown", submitonreturn);
// run once in case there's something in there // run once in case there's something in there
counter(); counter();
// set the focus // set the focus
$("#status_textarea").focus(); $("#notice_data-text").focus();
} }
// XXX: refactor this code // XXX: refactor this code
@ -136,12 +136,12 @@ $(document).ready(function(){
var PostNotice = { dataType: 'xml', var PostNotice = { dataType: 'xml',
beforeSubmit: function(formData, jqForm, options) { if ($("#status_textarea").get(0).value.length == 0) { beforeSubmit: function(formData, jqForm, options) { if ($("#notice_data-text").get(0).value.length == 0) {
$("#status_form").addClass("response_error"); $("#form_notice").addClass("warning");
return false; return false;
} }
$("#status_form input[type=submit]").attr("disabled", "disabled"); $("#notice_action-submit").attr("disabled", "disabled");
$("#status_form input[type=submit]").addClass("disabled"); $("#notice_action-submit").addClass("disabled");
return true; return true;
}, },
success: function(xml) { if ($("#error", xml).length > 0 || $("#command_result", xml).length > 0) { success: function(xml) { if ($("#error", xml).length > 0 || $("#command_result", xml).length > 0) {
@ -150,28 +150,37 @@ $(document).ready(function(){
alert(result); alert(result);
} }
else { else {
$("#notices").prepend(document._importNode($("li", xml).get(0), true)); $("#notices_primary .notices").prepend(document._importNode($("li", xml).get(0), true));
$("#status_textarea").val(""); $("#notice_data-text").val("");
counter(); counter();
$(".notice_single:first").css({display:"none"}); $("#notices_primary .notice:first").css({display:"none"});
$(".notice_single:first").fadeIn(2500); $("#notices_primary .notice:first").fadeIn(2500);
} }
$("#status_form input[type=submit]").removeAttr("disabled"); $("#notice_action-submit").removeAttr("disabled");
$("#status_form input[type=submit]").removeClass("disabled"); $("#notice_action-submit").removeClass("disabled");
} }
}; };
$("#status_form").ajaxForm(PostNotice); $("#form_notice").ajaxForm(PostNotice);
$("#status_form").each(addAjaxHidden); $("#form_notice").each(addAjaxHidden);
$(".notice").hover(
function () {
$(this).addClass('hover');
},
function () {
$(this).removeClass('hover');
}
);
}); });
function doreply(nick,id) { function doreply(nick,id) {
rgx_username = /^[0-9a-zA-Z\-_.]*$/; rgx_username = /^[0-9a-zA-Z\-_.]*$/;
if (nick.match(rgx_username)) { if (nick.match(rgx_username)) {
replyto = "@" + nick + " "; replyto = "@" + nick + " ";
if ($("#status_textarea").length) { if ($("#notice_data-text").length) {
$("#status_textarea").val(replyto); $("#notice_data-text").val(replyto);
$("form#status_form input#inreplyto").val(id); $("form#form_notice input#inreplyto").val(id);
$("#status_textarea").focus(); $("#notice_data-text").focus();
return false; return false;
} }
} }

View File

@ -126,6 +126,10 @@ class Action extends HTMLOutputter // lawsuit
'type' => 'text/css', 'type' => 'text/css',
'href' => theme_path('css/display.css', 'base') . '?version=' . LACONICA_VERSION, 'href' => theme_path('css/display.css', 'base') . '?version=' . LACONICA_VERSION,
'media' => 'screen, projection, tv')); 'media' => 'screen, projection, tv'));
$this->element('link', array('rel' => 'stylesheet',
'type' => 'text/css',
'href' => theme_path('css/thickbox.css', 'base') . '?version=' . LACONICA_VERSION,
'media' => 'screen, projection, tv'));
$this->element('link', array('rel' => 'stylesheet', $this->element('link', array('rel' => 'stylesheet',
'type' => 'text/css', 'type' => 'text/css',
'href' => theme_path('css/display.css', null) . '?version=' . LACONICA_VERSION, 'href' => theme_path('css/display.css', null) . '?version=' . LACONICA_VERSION,