diff options
Diffstat (limited to 'mod/messageboard/views/default/messageboard/js.php')
-rw-r--r-- | mod/messageboard/views/default/messageboard/js.php | 31 |
1 files changed, 29 insertions, 2 deletions
diff --git a/mod/messageboard/views/default/messageboard/js.php b/mod/messageboard/views/default/messageboard/js.php index c76040945..b51c59209 100644 --- a/mod/messageboard/views/default/messageboard/js.php +++ b/mod/messageboard/views/default/messageboard/js.php @@ -1,7 +1,13 @@ elgg.provide('elgg.messageboard'); elgg.messageboard.init = function() { - $('form.elgg-messageboard input[type=submit]').live('click', elgg.messageboard.submit); + var form = $('form[name=elgg-messageboard]'); + form.find('input[type=submit]').live('click', elgg.messageboard.submit); + + // can't undelete because of init load order + form.parent().find('a.elgg-requires-confirmation').removeClass('elgg-requires-confirmation'); + // delegate() instead of live() because live() has to be at the top level of chains...can't use parent(). + form.parent().delegate('.delete-button a', 'click', elgg.messageboard.delete); } elgg.messageboard.submit = function(e) { @@ -11,7 +17,14 @@ elgg.messageboard.submit = function(e) { elgg.action('messageboard/add', { data: data, success: function(json) { - form.parent().find('#messageboard_wrapper').prepend(json.output.post); + // the action always returns the full ul and li wrapped annotation. + var ul = form.next('ul.elgg-annotation-list'); + + if (ul.length < 1) { + form.parent().append(json.output.post); + } else { + ul.prepend($(json.output.post).find('li:first')); + }; form.find('textarea').val(''); } }); @@ -19,6 +32,20 @@ elgg.messageboard.submit = function(e) { e.preventDefault(); } +elgg.messageboard.delete = function(e) { + var link = $(this); + var confirmText = link.attr('title') || elgg.echo('question:areyousure'); + + if (confirm(confirmText)) { + elgg.action($(this).attr('href'), { + success: function() { + $(link).closest('li').remove(); + } + }); + } + + e.preventDefault(); +} elgg.register_event_handler('init', 'system', elgg.messageboard.init);
\ No newline at end of file |