aboutsummaryrefslogtreecommitdiff
path: root/mod/messageboard/views/default/messageboard/js.php
diff options
context:
space:
mode:
Diffstat (limited to 'mod/messageboard/views/default/messageboard/js.php')
-rw-r--r--mod/messageboard/views/default/messageboard/js.php31
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