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...
|
// Create the reply form entry at the end
|
||||||
replyForm = $('.notice-reply-form', list);
|
var replyItem = $('li.notice-reply', list);
|
||||||
if (replyForm.length > 0) {
|
if (replyItem.length == 0) {
|
||||||
// Update the existing form...
|
replyItem = $('<li class="notice-reply"></li>');
|
||||||
nextStep();
|
|
||||||
|
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 {
|
} else {
|
||||||
// Create the reply form entry at the end
|
replyItem.show();
|
||||||
var replyItem = $('li.notice-reply > form', list);
|
replyTextarea = replyItem.find('textarea');
|
||||||
if (replyItem.length == 0) {
|
if (replyTextarea) {
|
||||||
replyItem = $('<li class="notice-reply"></li>');
|
replyTextarea.focus();
|
||||||
|
|
||||||
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]);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -706,6 +697,7 @@ var SN = { // StatusNet
|
|||||||
* Uses 'on' rather than 'live' or 'bind', so applies to future as well as present items.
|
* Uses 'on' rather than 'live' or 'bind', so applies to future as well as present items.
|
||||||
*/
|
*/
|
||||||
NoticeInlineReplySetup: function () {
|
NoticeInlineReplySetup: function () {
|
||||||
|
$('#content .notice-reply').hide();
|
||||||
// Expand conversation links
|
// Expand conversation links
|
||||||
$(document).on('click', 'li.notice-reply-comments a', function () {
|
$(document).on('click', 'li.notice-reply-comments a', function () {
|
||||||
var url = $(this).attr('href');
|
var url = $(this).attr('href');
|
||||||
@ -1418,7 +1410,7 @@ var SN = { // StatusNet
|
|||||||
// Only close if there's been no edit.
|
// Only close if there's been no edit.
|
||||||
if (cur == '' || cur == textarea.data('initialText')) {
|
if (cur == '' || cur == textarea.data('initialText')) {
|
||||||
var parentNotice = replyItem.closest('li.notice');
|
var parentNotice = replyItem.closest('li.notice');
|
||||||
replyItem.remove();
|
replyItem.hide();
|
||||||
parentNotice.find('li.notice-reply-placeholder').show();
|
parentNotice.find('li.notice-reply-placeholder').show();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -79,6 +79,10 @@ option {
|
|||||||
padding-bottom: 0px;
|
padding-bottom: 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.hidden {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
#wrap {
|
#wrap {
|
||||||
position: relative;
|
position: relative;
|
||||||
width: 960px;
|
width: 960px;
|
||||||
|
Loading…
Reference in New Issue
Block a user