[pLog-svn] r5646 - in plog/trunk: class/action/admin class/controller class/dao templates/admin

mark at devel.lifetype.net mark at devel.lifetype.net
Thu Jul 12 00:35:19 EDT 2007


Author: mark
Date: 2007-07-12 00:35:18 -0400 (Thu, 12 Jul 2007)
New Revision: 5646

Added:
   plog/trunk/class/action/admin/admindeleteinboxprivatemessageaction.class.php
   plog/trunk/class/action/admin/admindeleteoutboxprivatemessageaction.class.php
Modified:
   plog/trunk/class/controller/admincontrollermap.properties.php
   plog/trunk/class/dao/privatemessages.class.php
   plog/trunk/templates/admin/editinboxprivatemessages.template
   plog/trunk/templates/admin/editoutboxprivatemessages.template
Log:
Private Message Admin UI 100% complete.

Added: plog/trunk/class/action/admin/admindeleteinboxprivatemessageaction.class.php
===================================================================
--- plog/trunk/class/action/admin/admindeleteinboxprivatemessageaction.class.php	                        (rev 0)
+++ plog/trunk/class/action/admin/admindeleteinboxprivatemessageaction.class.php	2007-07-12 04:35:18 UTC (rev 5646)
@@ -0,0 +1,107 @@
+<?php
+	lt_include( PLOG_CLASS_PATH."class/action/admin/adminaction.class.php" );
+	lt_include( PLOG_CLASS_PATH."class/data/validator/integervalidator.class.php" );
+	lt_include( PLOG_CLASS_PATH."class/data/validator/arrayvalidator.class.php" );
+	lt_include( PLOG_CLASS_PATH."class/view/admin/admininboxprivatemessageslistview.class.php" );
+
+    /**
+     * \ingroup Action
+     * @private
+     *
+     * Deletes an private messages from the database
+     */
+    class AdminDeleteInboxPrivateMessageAction extends AdminAction
+	{
+
+    	var $_messageId;
+        var $_messageIds;
+
+    	/**
+         * Constructor. If nothing else, it also has to call the constructor of the parent
+         * class, BlogAction with the same parameters
+         */
+        function AdminDeleteInboxPrivateMessageAction( $actionInfo, $request )
+        {
+        	$this->AdminAction( $actionInfo, $request );
+			$this->_mode = $actionInfo->getActionParamValue();
+
+        	// get the array that contains the private messages we'd like to delete
+			if( $this->_mode == "deleteInboxPrivateMessage" )
+					$this->registerFieldValidator( "messageId", new IntegerValidator());
+			else
+					$this->registerFieldValidator( "messageIds", new ArrayValidator());
+
+			$view = new AdminInboxPrivateMessagesListView( $this->_blogInfo );
+			$view->setErrorMessage( $this->_locale->tr("error_incorrect_private_message_id"));
+			$this->setValidationErrorView( $view );
+        }
+
+		/**
+		 * @private
+		 * removes private messages from the database
+		 */
+		function _deleteInboxPrivateMessages()
+		{
+			lt_include( PLOG_CLASS_PATH."class/dao/privatemessages.class.php" );
+			$privateMessages = new PrivateMessages();
+
+			$errorMessage = "";
+			$successMessage = "";
+			$totalOk = 0;
+
+            foreach( $this->_messageIds as $messageId ) {
+            	// get the privatemessage
+            	$privateMessage = $privateMessages->getPrivateMessageByReceiverId( $messageId, $this->_userInfo->getId() );
+
+				if( $privateMessage ) {
+					// fire the pre-event
+					$this->notifyEvent( EVENT_PRE_DELETE_PRIVATE_MESSAGE, Array( "privatemessage" => &$privateMessage ));
+					if( !$privateMessages->deletePrivateMessage( $messageId, $this->_userInfo->getId() ) )
+						$errorMessage .= $this->_locale->pr("error_deleting_private_message")."<br/>";
+					else {
+						if( $totalOk < 2 )
+							$successMessage .= $this->_locale->pr("private_message_deleted_ok", $privateMessage->getSubject())."<br/>";
+						else
+							$successMessage = $this->_locale->pr( "private_messages_deleted_ok", $totalOk );
+						// fire the pre-event
+						$this->notifyEvent( EVENT_POST_DELETE_PRIVATE_MESSAGE, Array( "privatemessage" => &$privateMessage ));
+					}
+				}
+				else {
+					$errorMessage .= $this->_locale->pr("error_deleting_private_message2", $messageId)."<br/>";
+				}
+        	}
+
+			// prepare the view and all the information it needs to know
+			$this->_view = new AdminInboxPrivateMessagesListView( $this->_blogInfo );
+			if( $errorMessage != "" )
+				$this->_view->setErrorMessage( $errorMessage );
+			if( $successMessage != "" ) {
+				// and clear the cache to avoid outdated information
+				CacheControl::resetBlogCache( $this->_blogInfo->getId(), false );
+				$this->_view->setSuccessMessage( $successMessage );
+			}
+
+			$this->setCommonData();
+
+			return true;
+		}
+
+        /**
+         * Carries out the specified action
+         */
+        function perform()
+        {
+			// prepare the parameters.. If there's only one private message id, then add it to
+			// an array.
+			if( $this->_mode == "deleteInboxPrivateMessage" ) {
+				$this->_messageIds = Array();
+				$this->_messageIds[] = $this->_request->getValue( "messageId" );
+			}
+			else
+				$this->_messageIds = $this->_request->getValue( "messageIds" );
+
+            return $this->_deleteInboxPrivateMessages();
+        }
+    }
+?>

Added: plog/trunk/class/action/admin/admindeleteoutboxprivatemessageaction.class.php
===================================================================
--- plog/trunk/class/action/admin/admindeleteoutboxprivatemessageaction.class.php	                        (rev 0)
+++ plog/trunk/class/action/admin/admindeleteoutboxprivatemessageaction.class.php	2007-07-12 04:35:18 UTC (rev 5646)
@@ -0,0 +1,107 @@
+<?php
+	lt_include( PLOG_CLASS_PATH."class/action/admin/adminaction.class.php" );
+	lt_include( PLOG_CLASS_PATH."class/data/validator/integervalidator.class.php" );
+	lt_include( PLOG_CLASS_PATH."class/data/validator/arrayvalidator.class.php" );
+	lt_include( PLOG_CLASS_PATH."class/view/admin/adminoutboxprivatemessageslistview.class.php" );
+
+    /**
+     * \ingroup Action
+     * @private
+     *
+     * Deletes an private messages from the database
+     */
+    class AdminDeleteOutboxPrivateMessageAction extends AdminAction
+	{
+
+    	var $_messageId;
+        var $_messageIds;
+
+    	/**
+         * Constructor. If nothing else, it also has to call the constructor of the parent
+         * class, BlogAction with the same parameters
+         */
+        function AdminDeleteOutboxPrivateMessageAction( $actionInfo, $request )
+        {
+        	$this->AdminAction( $actionInfo, $request );
+			$this->_mode = $actionInfo->getActionParamValue();
+
+        	// get the array that contains the private messages we'd like to delete
+			if( $this->_mode == "deleteOutboxPrivateMessage" )
+					$this->registerFieldValidator( "messageId", new IntegerValidator());
+			else
+					$this->registerFieldValidator( "messageIds", new ArrayValidator());
+
+			$view = new AdminOutboxPrivateMessagesListView( $this->_blogInfo );
+			$view->setErrorMessage( $this->_locale->tr("error_incorrect_private_message_id"));
+			$this->setValidationErrorView( $view );
+        }
+
+		/**
+		 * @private
+		 * removes private messages from the database
+		 */
+		function _deleteOutboxPrivateMessages()
+		{
+			lt_include( PLOG_CLASS_PATH."class/dao/privatemessages.class.php" );
+			$privateMessages = new PrivateMessages();
+
+			$errorMessage = "";
+			$successMessage = "";
+			$totalOk = 0;
+
+            foreach( $this->_messageIds as $messageId ) {
+            	// get the privatemessage
+            	$privateMessage = $privateMessages->getPrivateMessageBySenderId( $messageId, $this->_userInfo->getId() );
+
+				if( $privateMessage ) {
+					// fire the pre-event
+					$this->notifyEvent( EVENT_PRE_DELETE_PRIVATE_MESSAGE, Array( "privatemessage" => &$privateMessage ));
+					if( !$privateMessages->deletePrivateMessage( $messageId, $this->_userInfo->getId() ) )
+						$errorMessage .= $this->_locale->pr("error_deleting_private_message")."<br/>";
+					else {
+						if( $totalOk < 2 )
+							$successMessage .= $this->_locale->pr("private_message_deleted_ok", $privateMessage->getSubject())."<br/>";
+						else
+							$successMessage = $this->_locale->pr( "private_messages_deleted_ok", $totalOk );
+						// fire the pre-event
+						$this->notifyEvent( EVENT_POST_DELETE_PRIVATE_MESSAGE, Array( "privatemessage" => &$privateMessage ));
+					}
+				}
+				else {
+					$errorMessage .= $this->_locale->pr("error_deleting_private_message2", $messageId)."<br/>";
+				}
+        	}
+
+			// prepare the view and all the information it needs to know
+			$this->_view = new AdminOutboxPrivateMessagesListView( $this->_blogInfo );
+			if( $errorMessage != "" )
+				$this->_view->setErrorMessage( $errorMessage );
+			if( $successMessage != "" ) {
+				// and clear the cache to avoid outdated information
+				CacheControl::resetBlogCache( $this->_blogInfo->getId(), false );
+				$this->_view->setSuccessMessage( $successMessage );
+			}
+
+			$this->setCommonData();
+
+			return true;
+		}
+
+        /**
+         * Carries out the specified action
+         */
+        function perform()
+        {
+			// prepare the parameters.. If there's only one private message id, then add it to
+			// an array.
+			if( $this->_mode == "deleteOutboxPrivateMessage" ) {
+				$this->_messageIds = Array();
+				$this->_messageIds[] = $this->_request->getValue( "messageId" );
+			}
+			else
+				$this->_messageIds = $this->_request->getValue( "messageIds" );
+
+            return $this->_deleteOutboxPrivateMessages();
+        }
+    }
+?>

Modified: plog/trunk/class/controller/admincontrollermap.properties.php
===================================================================
--- plog/trunk/class/controller/admincontrollermap.properties.php	2007-07-11 16:51:55 UTC (rev 5645)
+++ plog/trunk/class/controller/admincontrollermap.properties.php	2007-07-12 04:35:18 UTC (rev 5646)
@@ -357,6 +357,8 @@
   	$actions["readOutboxPrivateMessage"] = "AdminReadOutboxPrivateMessageAction";
   	$actions["replyPrivateMessage"] = "AdminReplyPrivateMessageAction";
   	$actions["sendReplyPrivateMessage"] = "AdminSendReplyPrivateMessageAction";
-  	$actions["deletePrivateMessages"] = "AdminDeletePrivateMessageAction";
-  	$actions["deletePrivateMessage"] = "AdminDeletePrivateMessageAction";
+  	$actions["deleteInboxPrivateMessages"] = "AdminDeleteInboxPrivateMessageAction";
+  	$actions["deleteInboxPrivateMessage"] = "AdminDeleteInboxPrivateMessageAction";
+  	$actions["deleteOutboxPrivateMessages"] = "AdminDeleteOutboxPrivateMessageAction";
+  	$actions["deleteOutboxPrivateMessage"] = "AdminDeleteOutboxPrivateMessageAction";
 ?>
\ No newline at end of file

Modified: plog/trunk/class/dao/privatemessages.class.php
===================================================================
--- plog/trunk/class/dao/privatemessages.class.php	2007-07-11 16:51:55 UTC (rev 5645)
+++ plog/trunk/class/dao/privatemessages.class.php	2007-07-12 04:35:18 UTC (rev 5646)
@@ -203,16 +203,16 @@
          */
         function deletePrivateMessage( $messageId, $receiverId )
         {
-        	$privateMessage = $this->getPrivateMessage( $$messageId, $receiverId );
+        	$privateMessage = $this->getPrivateMessage( $messageId, $receiverId );
         	if( $privateMessage ) {
-        		$this->delete( "id", $$messageId );
+        		$this->delete( "id", $messageId );
                 $this->_cache->removeData( $privateMessage->getId(), CACHE_PRIVATE_MESSAGES );
                 $this->_cache->removeData( $privateMessage->getBoxId(), CACHE_PRIVATE_MESSAGES_BY_BOX_ID );
 
 			    // update corresponding counters
-				$box = $privateMessage->getReceiverInfo();
-				$box->setNumPrivateMessages( $box->geNumPrivateMessages() - 1 );
-				if( $privateMessage->getStatus() == PRIVATE_MESSAGE_UNREAD )
+				$box = $privateMessage->getBox();
+				$box->setNumPrivateMessages( $box->getNumPrivateMessages() - 1 );
+				if( $privateMessage->getReceiverReadStatus() == PRIVATE_MESSAGE_RECEIVER_UNREAD )
 				{
 					$box->setNumUnreadPrivateMessages( $box->getNumUnreadPrivateMessages() - 1 );
 				}

Modified: plog/trunk/templates/admin/editinboxprivatemessages.template
===================================================================
--- plog/trunk/templates/admin/editinboxprivatemessages.template	2007-07-11 16:51:55 UTC (rev 5645)
+++ plog/trunk/templates/admin/editinboxprivatemessages.template	2007-07-12 04:35:18 UTC (rev 5646)
@@ -79,7 +79,7 @@
        <a href="?op=readInboxPrivateMessage&amp;messageId={$privatemessage->getId()}" title="{$locale->tr("read")}">
          <img src="imgs/admin/icon_edit-16.png" alt="{$locale->tr("read")}" />
        </a>
-       <a href="?op=deletePrivateMessage&amp;messageId={$privatemessage->getId()}" title="{$locale->tr("delete")}">
+       <a href="?op=deleteInboxPrivateMessage&amp;messageId={$privatemessage->getId()}" title="{$locale->tr("delete")}">
           <img src="imgs/admin/icon_delete-16.png" alt="{$locale->tr("delete")}" />
        </a>
        <a href="?op=replyPrivateMessage&amp;messageId={$privatemessage->getId()}" title="{$locale->tr("reply")}">
@@ -93,7 +93,7 @@
  </div>
  <div id="list_action_bar">
   {adminpager style=list}
-  <input type="hidden" name="op" value="deletePrivateMessages"/>
+  <input type="hidden" name="op" value="deleteInboxPrivateMessages"/>
   <input type="submit" name="Delete selected" value="{$locale->tr("delete")}"/>
  </div>
  </form>

Modified: plog/trunk/templates/admin/editoutboxprivatemessages.template
===================================================================
--- plog/trunk/templates/admin/editoutboxprivatemessages.template	2007-07-11 16:51:55 UTC (rev 5645)
+++ plog/trunk/templates/admin/editoutboxprivatemessages.template	2007-07-12 04:35:18 UTC (rev 5646)
@@ -66,7 +66,7 @@
        <a href="?op=readOutboxPrivateMessage;messageId={$privatemessage->getId()}" title="{$locale->tr("read")}">
          <img src="imgs/admin/icon_edit-16.png" alt="{$locale->tr("read")}" />
        </a>
-       <a href="?op=deletePrivateMessage&amp;messageId={$privatemessage->getId()}" title="{$locale->tr("delete")}">
+       <a href="?op=deleteOutboxPrivateMessage&amp;messageId={$privatemessage->getId()}" title="{$locale->tr("delete")}">
           <img src="imgs/admin/icon_delete-16.png" alt="{$locale->tr("delete")}" />
        </a>
    </td>
@@ -77,7 +77,7 @@
  </div>
  <div id="list_action_bar">
   {adminpager style=list}
-  <input type="hidden" name="op" value="deletePrivateMessages"/>
+  <input type="hidden" name="op" value="deleteOutboxPrivateMessages"/>
   <input type="submit" name="Delete selected" value="{$locale->tr("delete")}"/>
  </div>
  </form>



More information about the pLog-svn mailing list