forked from GNUsocial/gnu-social
Reply notice forms are functional again, but not AJAX
This commit is contained in:
parent
8abc2d3b8d
commit
45861c6d9c
62
js/util.js
62
js/util.js
@ -661,41 +661,32 @@ var SN = { // StatusNet
|
||||
}
|
||||
};
|
||||
|
||||
// See if the form's already open...
|
||||
replyForm = $('.notice-reply-form', list);
|
||||
if (replyForm.length > 0) {
|
||||
// Update the existing form...
|
||||
nextStep();
|
||||
// Create the reply form entry at the end
|
||||
var replyItem = $('li.notice-reply', list);
|
||||
if (replyItem.length == 0) {
|
||||
replyItem = $('<li class="notice-reply"></li>');
|
||||
|
||||
var intermediateStep = function (formMaster) {
|
||||
var formEl = document._importNode(formMaster, true);
|
||||
replyItem.append(formEl);
|
||||
list.append(replyItem); // *after* the placeholder
|
||||
|
||||
var form = $(formEl);
|
||||
replyForm = form;
|
||||
SN.Init.NoticeFormSetup(form);
|
||||
|
||||
nextStep();
|
||||
};
|
||||
if (SN.C.I.NoticeFormMaster) {
|
||||
// We've already saved a master copy of the form.
|
||||
// Clone it in!
|
||||
intermediateStep(SN.C.I.NoticeFormMaster);
|
||||
}
|
||||
} else {
|
||||
// Create the reply form entry at the end
|
||||
var replyItem = $('li.notice-reply > form', list);
|
||||
if (replyItem.length == 0) {
|
||||
replyItem = $('<li class="notice-reply"></li>');
|
||||
|
||||
var intermediateStep = function (formMaster) {
|
||||
var formEl = document._importNode(formMaster, true);
|
||||
replyItem.append(formEl);
|
||||
list.append(replyItem); // *after* the placeholder
|
||||
|
||||
var form = $(formEl);
|
||||
replyForm = form;
|
||||
SN.Init.NoticeFormSetup(form);
|
||||
|
||||
nextStep();
|
||||
};
|
||||
if (SN.C.I.NoticeFormMaster) {
|
||||
// We've already saved a master copy of the form.
|
||||
// Clone it in!
|
||||
intermediateStep(SN.C.I.NoticeFormMaster);
|
||||
} else {
|
||||
// Fetch a fresh copy of the notice form over AJAX.
|
||||
// Warning: this can have a delay, which looks bad.
|
||||
// @fixme this fallback may or may not work
|
||||
var url = $('#form_notice').attr('action');
|
||||
$.get(url, {ajax: 1}, function (data, textStatus, xhr) {
|
||||
intermediateStep($('form', data)[0]);
|
||||
});
|
||||
}
|
||||
replyItem.show();
|
||||
replyTextarea = replyItem.find('textarea');
|
||||
if (replyTextarea) {
|
||||
replyTextarea.focus();
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -706,6 +697,7 @@ var SN = { // StatusNet
|
||||
* Uses 'on' rather than 'live' or 'bind', so applies to future as well as present items.
|
||||
*/
|
||||
NoticeInlineReplySetup: function () {
|
||||
$('#content .notice-reply').hide();
|
||||
// Expand conversation links
|
||||
$(document).on('click', 'li.notice-reply-comments a', function () {
|
||||
var url = $(this).attr('href');
|
||||
@ -1418,7 +1410,7 @@ var SN = { // StatusNet
|
||||
// Only close if there's been no edit.
|
||||
if (cur == '' || cur == textarea.data('initialText')) {
|
||||
var parentNotice = replyItem.closest('li.notice');
|
||||
replyItem.remove();
|
||||
replyItem.hide();
|
||||
parentNotice.find('li.notice-reply-placeholder').show();
|
||||
}
|
||||
}
|
||||
|
@ -79,6 +79,10 @@ option {
|
||||
padding-bottom: 0px;
|
||||
}
|
||||
|
||||
.hidden {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#wrap {
|
||||
position: relative;
|
||||
width: 960px;
|
||||
|
Loading…
Reference in New Issue
Block a user