diff options
Diffstat (limited to 'mod/messageboard/views/default/messageboard')
-rw-r--r-- | mod/messageboard/views/default/messageboard/css.php | 10 | ||||
-rw-r--r-- | mod/messageboard/views/default/messageboard/js.php | 56 |
2 files changed, 66 insertions, 0 deletions
diff --git a/mod/messageboard/views/default/messageboard/css.php b/mod/messageboard/views/default/messageboard/css.php new file mode 100644 index 000000000..b3cfab957 --- /dev/null +++ b/mod/messageboard/views/default/messageboard/css.php @@ -0,0 +1,10 @@ +<?php +/** + * Elgg Messageboard CSS view + * + */ +?> + +.messageboard-input { + height: 100px; +} diff --git a/mod/messageboard/views/default/messageboard/js.php b/mod/messageboard/views/default/messageboard/js.php new file mode 100644 index 000000000..79472069d --- /dev/null +++ b/mod/messageboard/views/default/messageboard/js.php @@ -0,0 +1,56 @@ +//<script> +elgg.provide('elgg.messageboard'); + +elgg.messageboard.init = function() { + var form = $('form[name=elgg-messageboard]'); + form.find('input[type=submit]').live('click', elgg.messageboard.submit); + + // remove the default binding for confirmation since we're doing extra stuff. + // @todo remove if we add a hook to the requires confirmation callback + form.parent().find('a.elgg-requires-confirmation') + .click(elgg.messageboard.deletePost) + + // double whammy for in case the load order changes. + .unbind('click', elgg.ui.requiresConfirmation) + .removeClass('elgg-requires-confirmation'); +}; + +elgg.messageboard.submit = function(e) { + var form = $(this).parents('form'); + var data = form.serialize(); + + elgg.action('messageboard/add', { + data: data, + success: function(json) { + // the action always returns the full ul and li wrapped annotation. + var ul = form.next('ul.elgg-list-annotation'); + + if (ul.length < 1) { + form.parent().append(json.output); + } else { + ul.prepend($(json.output).find('li:first')); + }; + form.find('textarea').val(''); + } + }); + + e.preventDefault(); +}; + +elgg.messageboard.deletePost = function(e) { + var link = $(this); + var confirmText = link.attr('title') || elgg.echo('question:areyousure'); + + if (confirm(confirmText)) { + elgg.action($(this).attr('href'), { + success: function() { + var item = $(link).closest('.elgg-item'); + item.remove(); + } + }); + } + + e.preventDefault(); +}; + +elgg.register_hook_handler('init', 'system', elgg.messageboard.init); |