Return-Path: Delivered-To: apmail-incubator-esme-commits-archive@minotaur.apache.org Received: (qmail 37553 invoked from network); 14 Jul 2009 21:42:01 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 14 Jul 2009 21:42:01 -0000 Received: (qmail 49612 invoked by uid 500); 14 Jul 2009 21:35:31 -0000 Delivered-To: apmail-incubator-esme-commits-archive@incubator.apache.org Received: (qmail 47979 invoked by uid 500); 14 Jul 2009 21:35:26 -0000 Mailing-List: contact esme-commits-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: esme-dev@incubator.apache.org Delivered-To: mailing list esme-commits@incubator.apache.org Received: (qmail 47116 invoked by uid 99); 14 Jul 2009 21:35:11 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 14 Jul 2009 21:35:11 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 14 Jul 2009 21:35:00 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id A8FCE2388965; Tue, 14 Jul 2009 21:34:39 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r794077 - in /incubator/esme/trunk/server/src/main: scala/org/apache/esme/actor/Distributor.scala scala/org/apache/esme/actor/UserActor.scala scala/org/apache/esme/snippet/UserSnip.scala webapp/templates-hidden/message.html Date: Tue, 14 Jul 2009 21:34:39 -0000 To: esme-commits@incubator.apache.org From: vdichev@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20090714213439.A8FCE2388965@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: vdichev Date: Tue Jul 14 21:34:39 2009 New Revision: 794077 URL: http://svn.apache.org/viewvc?rev=794077&view=rev Log: ESME-76 Resending messages explicitly Modified: incubator/esme/trunk/server/src/main/scala/org/apache/esme/actor/Distributor.scala incubator/esme/trunk/server/src/main/scala/org/apache/esme/actor/UserActor.scala incubator/esme/trunk/server/src/main/scala/org/apache/esme/snippet/UserSnip.scala incubator/esme/trunk/server/src/main/webapp/templates-hidden/message.html Modified: incubator/esme/trunk/server/src/main/scala/org/apache/esme/actor/Distributor.scala URL: http://svn.apache.org/viewvc/incubator/esme/trunk/server/src/main/scala/org/apache/esme/actor/Distributor.scala?rev=794077&r1=794076&r2=794077&view=diff ============================================================================== --- incubator/esme/trunk/server/src/main/scala/org/apache/esme/actor/Distributor.scala (original) +++ incubator/esme/trunk/server/src/main/scala/org/apache/esme/actor/Distributor.scala Tue Jul 14 21:34:39 2009 @@ -93,6 +93,9 @@ case AllowUserInPool(userId, poolId) => findOrCreateUser(userId) ! UserActor.AllowPool(poolId) + + case ResendMessage(userId, msgId) => + findOrCreateUser(userId) ! UserActor.Resend(msgId) case _ => } @@ -116,6 +119,7 @@ case class PublicTimelineListeners(who: Actor) case class PublicTimelineUnlisteners(who: Actor) case class AllowUserInPool(userId: Long, poolId: Long) + case class ResendMessage(userId: Long, msgId: Long) sealed trait TrackingType case object PerformTrackingType extends TrackingType case object TrackTrackingType extends TrackingType Modified: incubator/esme/trunk/server/src/main/scala/org/apache/esme/actor/UserActor.scala URL: http://svn.apache.org/viewvc/incubator/esme/trunk/server/src/main/scala/org/apache/esme/actor/UserActor.scala?rev=794077&r1=794076&r2=794077&view=diff ============================================================================== --- incubator/esme/trunk/server/src/main/scala/org/apache/esme/actor/UserActor.scala (original) +++ incubator/esme/trunk/server/src/main/scala/org/apache/esme/actor/UserActor.scala Tue Jul 14 21:34:39 2009 @@ -51,6 +51,7 @@ private[actor] case class TestForTracking(msg: Message) private[actor] case class UpdateTracking(ttype: Distributor.TrackingType) private[actor] case class AllowPool(poolId: Long) + private[actor] case class Resend(msgId: Long) case class MessageReceived(msg: Message, reason: MailboxReason) @@ -189,6 +190,13 @@ reply(_mailbox.take(cnt).toList) case AllowPool(poolId) => pools += poolId + + case Resend(msgId) => + for (msg <- Message.find(msgId); + id <- followers) + Distributor ! + Distributor.AddMessageToMailbox(id, msg, ResendReason(userId)) + } } Modified: incubator/esme/trunk/server/src/main/scala/org/apache/esme/snippet/UserSnip.scala URL: http://svn.apache.org/viewvc/incubator/esme/trunk/server/src/main/scala/org/apache/esme/snippet/UserSnip.scala?rev=794077&r1=794076&r2=794077&view=diff ============================================================================== --- incubator/esme/trunk/server/src/main/scala/org/apache/esme/snippet/UserSnip.scala (original) +++ incubator/esme/trunk/server/src/main/scala/org/apache/esme/snippet/UserSnip.scala Tue Jul 14 21:34:39 2009 @@ -66,6 +66,18 @@ } ) +object JsonResender extends SessionVar(S.buildJsonFunc{ + case JsonCmd("resend", _, map: Map[String, Any], _) => + for (msgId <- map.get("msg_id").map(toLong); + user <- User.currentUser) + Distributor ! Distributor.ResendMessage(user.id, msgId) + + Noop + + case _ => Noop + } +) + class UserSnip extends DispatchSnippet { def dispatch: DispatchIt = Map("name" -> userName _, @@ -74,7 +86,8 @@ "following" -> following _, "loginForm" -> loginForm _, "loggedIn" -> loggedInFilter _, - "accessPools" -> accessPools _) + "accessPools" -> accessPools _, + "resendScript" -> resendScript _) def loggedInFilter(in: NodeSeq): NodeSeq = { val lookFor = if (User.loggedIn_?) "in" else "out" @@ -141,4 +154,15 @@ )) } + + def resendScript(in: NodeSeq): NodeSeq = + + {Script(JsonResender.is._2)} + {Script(Function("resend_msg", List("msg_id"), + JsonResender.is._1("resend", + JsObj("msg_id" -> JsVar("msg_id"))) + )) + } + + } Modified: incubator/esme/trunk/server/src/main/webapp/templates-hidden/message.html URL: http://svn.apache.org/viewvc/incubator/esme/trunk/server/src/main/webapp/templates-hidden/message.html?rev=794077&r1=794076&r2=794077&view=diff ============================================================================== --- incubator/esme/trunk/server/src/main/webapp/templates-hidden/message.html (original) +++ incubator/esme/trunk/server/src/main/webapp/templates-hidden/message.html Tue Jul 14 21:34:39 2009 @@ -82,6 +82,7 @@ newMsg.find('#source').text(msgSource); newMsg.find('#reason').text(msgReason); newMsg.find('#when').text(msgDateStr); + newMsg.find('#resend').attr('onclick', 'javascript:resend_msg(' + cometMsg.id + ');'); for (var tagIndex=0; tagIndex < msgTags.length; tagIndex++) { var newTag = tagTemplate.clone(true).attr('id',msgTags[tagIndex]); newTag.find('a') @@ -159,6 +160,7 @@ web resend Jan 1, 2009 12:00 + Anonymous
anon
@@ -175,12 +177,14 @@ web Jan 1, 2009 11:58 + +
Public timeline