]> gitweb.fluxo.info Git - lorea/elgg.git/commitdiff
Refs #2916: Moved messageboard js into elgg.messageboard object. Moved forms into...
authorbrettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>
Sat, 19 Feb 2011 05:19:31 +0000 (05:19 +0000)
committerbrettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>
Sat, 19 Feb 2011 05:19:31 +0000 (05:19 +0000)
git-svn-id: http://code.elgg.org/elgg/trunk@8320 36083f99-b078-4883-b0ff-0f9b5a30f544

mod/messageboard/actions/add.php
mod/messageboard/start.php
mod/messageboard/views/default/forms/messageboard/add.php [new file with mode: 0644]
mod/messageboard/views/default/messageboard/forms/add.php [deleted file]
mod/messageboard/views/default/messageboard/js.php [new file with mode: 0644]
mod/messageboard/views/default/widgets/messageboard/content.php

index 1058482d99356e305d0deb8ff8f3d9ccf2c9d058..5a34904d7c8682776581500f2a155b7350156268 100644 (file)
@@ -1,30 +1,32 @@
 <?php
-
 /**
  * Elgg Message board: add message action
  *
  * @package ElggMessageBoard
  */
 
-// Get input
-$message_content = get_input('message_content'); // the actual message
-$page_owner = get_input("pageOwner"); // the message board owner
-$user = get_entity($page_owner); // the message board owner's details
-
-// Let's see if we can get a user entity from the specified page_owner
-if ($user && !empty($message_content)) {
+$message_content = get_input('message_content');
+$owner_guid = get_input("owner_guid");
+$owner = get_entity($owner_guid);
 
-       if (messageboard_add(elgg_get_logged_in_user_entity(), $user, $message_content, $user->access_id)) {
+if ($owner && !empty($message_content)) {
+       if (messageboard_add(elgg_get_logged_in_user_entity(), $owner, $message_content, $owner->access_id)) {
                system_message(elgg_echo("messageboard:posted"));
+
+               // push the newest content out if using ajax
+               $is_ajax = array_key_exists('HTTP_X_REQUESTED_WITH', $_SERVER) && $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest';
+               if ($is_ajax) {
+                       $contents = $owner->getAnnotations('messageboard', 1, 0, 'desc');
+                       $post = elgg_view("messageboard/messageboard_content", array('annotation' => $contents[0]));
+                       echo json_encode(array('post' => $post));
+               }
+
        } else {
                register_error(elgg_echo("messageboard:failure"));
        }
-       
-} else {
 
+} else {
        register_error(elgg_echo("messageboard:blank"));
-       
 }
 
-// Forward back to the messageboard
 forward(REFERER);
index 4ce631569a70efbb5460fd31432ade9aef218b09..a4792d32245a138532d20e2baa2d39f31a2def7f 100644 (file)
@@ -13,8 +13,9 @@
  */
 function messageboard_init() {
 
-       // Extend system CSS with our own styles, which are defined in the messageboard/css view
+       // add css and js
        elgg_extend_view('css/screen', 'messageboard/css');
+       elgg_extend_view('js/elgg', 'messageboard/js');
 
        // Register a page handler, so we can have nice URLs
        elgg_register_page_handler('messageboard', 'messageboard_page_handler');
diff --git a/mod/messageboard/views/default/forms/messageboard/add.php b/mod/messageboard/views/default/forms/messageboard/add.php
new file mode 100644 (file)
index 0000000..4698abf
--- /dev/null
@@ -0,0 +1,21 @@
+<?php
+/**
+ * Elgg Message board add form
+ *
+ * @package ElggMessageBoard
+ */
+
+$textarea = elgg_view('input/plaintext', array(
+       'name' => 'message_content'
+));
+
+$owner_input = elgg_view('input/hidden', array(
+       'name' => 'owner_guid',
+       'value' => elgg_get_page_owner_guid()
+));
+
+$submit = elgg_view('input/submit', array(
+       'value' => elgg_echo('post')
+));
+
+echo $textarea . $owner_input . $submit;
\ No newline at end of file
diff --git a/mod/messageboard/views/default/messageboard/forms/add.php b/mod/messageboard/views/default/messageboard/forms/add.php
deleted file mode 100644 (file)
index cacb571..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-
-/**
- * Elgg Message board add form
- *
- * @package ElggMessageBoard
- */
-
-?>
-<div id="mb_input_wrapper">
-       <form action="<?php echo elgg_get_site_url(); ?>action/messageboard/add" method="post" name="messageboardForm">
-
-               <!-- textarea for the contents -->
-               <textarea name="message_content" value="" class="elgg-input-textarea"></textarea><br />
-
-               <!-- the page owner, this will be the profile owner -->
-               <input type="hidden" name="pageOwner" value="<?php echo elgg_get_page_owner_guid(); ?>"  />
-
-               <?php echo elgg_view('input/securitytoken'); ?>
-
-               <!-- submit messages input -->
-               <input type="submit" id="postit" value="<?php echo elgg_echo('messageboard:postit'); ?>">
-
-       </form>
-</div>
diff --git a/mod/messageboard/views/default/messageboard/js.php b/mod/messageboard/views/default/messageboard/js.php
new file mode 100644 (file)
index 0000000..c760409
--- /dev/null
@@ -0,0 +1,24 @@
+elgg.provide('elgg.messageboard');
+
+elgg.messageboard.init = function() {
+       $('form.elgg-messageboard input[type=submit]').live('click', elgg.messageboard.submit);
+}
+
+elgg.messageboard.submit = function(e) {
+       var form = $(this).parents('form');
+       var data = form.serialize();
+
+       elgg.action('messageboard/add', {
+               data: data,
+               success: function(json) {
+                       form.parent().find('#messageboard_wrapper').prepend(json.output.post);
+                       form.find('textarea').val('');
+               }
+       });
+
+       e.preventDefault();
+}
+
+
+
+elgg.register_event_handler('init', 'system', elgg.messageboard.init);
\ No newline at end of file
index 45d4426a2b50287ca3daafa29877834aa8acb656..5f0cc867612328d839eab480a3ea9934634d6c2a 100644 (file)
@@ -1,81 +1,25 @@
 <?php
-
 /**
- * Elgg messageboard widget view 
+ * Elgg messageboard widget view
  *
  *
  * @package ElggMessageBoard
  */
 
-//get the full page owner entity
 $user = elgg_get_page_owner_entity();
-
-//the number of message to display
 $num_display = 5;
+
 if (isset($vars['entity']->num_display)) {
        $num_display = $vars['entity']->num_display;
 }
 
-//Just the loggedin user can post messages
 if (elgg_is_logged_in()) {
-?>
-<?php //@todo JS 1.8: no ?>
-<script type="text/javascript">
-       $(document).ready(function(){
-
-               $("#postit").click(function(){
-
-                       //display the ajax loading gif at the start of the function call
-                       //$('#loader').html('<img src="<?php echo elgg_get_site_url(); ?>_graphics/ajax-loader.gif" />');
-                       $('#loader').html('<?php echo elgg_view('graphics/ajax_loader', array('slashes' => TRUE)); ?>');
-
-                       //load the results back into the message board contents and remove the loading gif
-                       //remember that the actual div being populated is determined on views/default/messageboard/messageboard.php
-                       $("#messageboard_wrapper").load("<?php echo elgg_get_site_url(); ?>mod/messageboard/ajax_endpoint/load.php", {messageboard_content:$("[name=message_content]").val(), pageOwner:$("[name=pageOwner]").val(), numToDisplay:<?php echo $num_display; ?>}, function(){
-                               $('#loader').empty(); // remove the loading gif
-                               $('[name=message_content]').val(''); // clear the input textarea
-                       }); //end
-
-               }); // end of the main click function
-
-       }); //end of the document .ready function
-</script>
-
-<div id="mb_input_wrapper"><!-- start of mb_input_wrapper div -->
-
-       <!-- message textarea -->
-       <textarea name="message_content" class="elgg-input-textarea"></textarea>
-
-       <!-- the page owner, this will be the profile owner -->
-       <input type="hidden" name="pageOwner" value="<?php echo elgg_get_page_owner_guid(); ?>" class="pageOwner"  />
-
-       <!-- submit button -->
-       <input type="submit" id="postit" value="<?php echo elgg_echo('messageboard:postit'); ?>">
-
-       <!-- menu options -->
-       <div id="messageboard_widget_menu">
-               <a href="<?php echo elgg_get_site_url(); ?>pg/messageboard/<?php echo $user->username; ?>"><?php echo elgg_echo("messageboard:viewall"); ?></a>
-       </div>
-
-       <!-- loading graphic -->
-       <div id="loader" class="loading">  </div>
-
-</div><!-- end of mb_input_wrapper div -->
-
-       <?php
-} //   if(elgg_is_logged_in())
+       echo elgg_view_form('messageboard/add', array('class' => 'elgg-messageboard'));
+}
 
 //this for the first time the page loads, grab the latest messages.
 $contents = $user->getAnnotations('messageboard', $num_display, 0, 'desc');
 
-//as long as there is some content to display, display it
-if (!empty($contents)) {
-
-       echo elgg_view('messageboard/messageboard',array('annotation' => $contents));
-
-} else {
-
-       //put the required div on the page for the first message
-       echo "<div id=\"messageboard_wrapper\"></div>";
-
-}
+if ($contents) {
+       echo elgg_view('messageboard/messageboard', array('annotation' => $contents));
+}
\ No newline at end of file