Update to XHR post notice
This commit is contained in:
parent
eacb8df691
commit
877327a18e
|
@ -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');
|
||||||
|
|
57
js/util.js
57
js/util.js
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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,
|
||||||
|
|
Loading…
Reference in New Issue
Block a user