Author: simoneg
Date: Tue Oct 20 00:26:47 2009
New Revision: 826914
URL: http://svn.apache.org/viewvc?rev=826914&view=rev
Log:
LABS-486 contributed fragment messaging
Added:
labs/magma/trunk/fragment-messaging-web/pom.xml
labs/magma/trunk/fragment-messaging-web/src/
labs/magma/trunk/fragment-messaging-web/src/main/
labs/magma/trunk/fragment-messaging-web/src/main/java/
labs/magma/trunk/fragment-messaging-web/src/main/java/org/
labs/magma/trunk/fragment-messaging-web/src/main/java/org/apache/
labs/magma/trunk/fragment-messaging-web/src/main/java/org/apache/magma/
labs/magma/trunk/fragment-messaging-web/src/main/java/org/apache/magma/web/
labs/magma/trunk/fragment-messaging-web/src/main/java/org/apache/magma/web/messaging/
labs/magma/trunk/fragment-messaging-web/src/main/java/org/apache/magma/web/messaging/AddUndreadMessages.aj
labs/magma/trunk/fragment-messaging-web/src/main/java/org/apache/magma/web/messaging/InstallMessagingWebHandlerIntoRoot.aj
labs/magma/trunk/fragment-messaging-web/src/main/java/org/apache/magma/web/messaging/MessagingWebHandler.java
labs/magma/trunk/fragment-messaging-web/src/main/resources/
labs/magma/trunk/fragment-messaging-web/src/main/resources/org/
labs/magma/trunk/fragment-messaging-web/src/main/resources/org/apache/
labs/magma/trunk/fragment-messaging-web/src/main/resources/org/apache/magma/
labs/magma/trunk/fragment-messaging-web/src/main/resources/org/apache/magma/web/
labs/magma/trunk/fragment-messaging-web/src/main/resources/org/apache/magma/web/messaging/
labs/magma/trunk/fragment-messaging-web/src/main/resources/org/apache/magma/web/messaging/inboxHeader.vm
labs/magma/trunk/fragment-messaging-web/src/main/resources/org/apache/magma/web/messaging/newPMHeader.vm
labs/magma/trunk/fragment-messaging-web/src/main/resources/org/apache/magma/web/messaging/outboxHeader.vm
labs/magma/trunk/fragment-messaging-web/src/main/resources/org/apache/magma/web/messaging/replyHeader.vm
labs/magma/trunk/fragment-messaging-web/src/main/resources/org/apache/magma/web/messaging/showHeader.vm
labs/magma/trunk/fragment-messaging-web/src/main/resources/org/apache/magma/web/messaging/unreadBox.vm
Added: labs/magma/trunk/fragment-messaging-web/pom.xml
URL:
http://svn.apache.org/viewvc/labs/magma/trunk/fragment-messaging-web/pom.xml?rev=826914&view=auto
==============================================================================
--- labs/magma/trunk/fragment-messaging-web/pom.xml (added)
+++ labs/magma/trunk/fragment-messaging-web/pom.xml Tue Oct 20 00:26:47 2009
@@ -0,0 +1,44 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <artifactId>magma-parent</artifactId>
+ <groupId>org.apache.magma</groupId>
+ <version>2</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.magma</groupId>
+ <artifactId>fragment-messaging-web</artifactId>
+ <packaging>magma</packaging>
+ <version>0.0.2-SNAPSHOT</version>
+<dependencies>
+ <dependency>
+ <groupId>org.apache.magma</groupId>
+ <artifactId>fragment-messaging-domain</artifactId>
+ <version>0.0.2-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.magma</groupId>
+ <artifactId>foundation-website</artifactId>
+ <version>0.0.2-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.magma</groupId>
+ <artifactId>website-beansview</artifactId>
+ <version>0.0.2-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.magma</groupId>
+ <artifactId>fragment-user-web</artifactId>
+ <version>0.0.2-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.magma</groupId>
+ <artifactId>foundation-database</artifactId>
+ <version>0.0.2-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.magma</groupId>
+ <artifactId>website-velocity</artifactId>
+ <version>0.0.2-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
+</project>
Added:
labs/magma/trunk/fragment-messaging-web/src/main/java/org/apache/magma/web/messaging/AddUndreadMessages.aj
URL:
http://svn.apache.org/viewvc/labs/magma/trunk/fragment-messaging-web/src/main/java/org/apache/magma/web/messaging/AddUndreadMessages.aj?rev=826914&view=auto
==============================================================================
---
labs/magma/trunk/fragment-messaging-web/src/main/java/org/apache/magma/web/messaging/AddUndreadMessages.aj
(added)
+++
labs/magma/trunk/fragment-messaging-web/src/main/java/org/apache/magma/web/messaging/AddUndreadMessages.aj
Tue Oct 20 00:26:47 2009
@@ -0,0 +1,19 @@
+package org.apache.magma.web.messaging;
+
+import org.apache.magma.website.producers.TemplatingProducer;
+import org.apache.magma.website.CompoundType;
+import org.apache.magma.website.RootWebHandler;
+import org.apache.magma.web.user.LoginWebHandler;
+
+public aspect AddUndreadMessages {
+
+ after(String s) returning (TemplatingProducer p) :
+ call(TemplatingProducer.new(String)) &&
+ within(LoginWebHandler) && args(s)
+ {
+ if (s != null && s.equals("loginMenu")) {
+
p.compoundWith(RootWebHandler.getInstance().handleMessaging().doUnreadMessageBox(),
CompoundType.AFTER);
+ }
+ }
+
+}
Added:
labs/magma/trunk/fragment-messaging-web/src/main/java/org/apache/magma/web/messaging/InstallMessagingWebHandlerIntoRoot.aj
URL:
http://svn.apache.org/viewvc/labs/magma/trunk/fragment-messaging-web/src/main/java/org/apache/magma/web/messaging/InstallMessagingWebHandlerIntoRoot.aj?rev=826914&view=auto
==============================================================================
---
labs/magma/trunk/fragment-messaging-web/src/main/java/org/apache/magma/web/messaging/InstallMessagingWebHandlerIntoRoot.aj
(added)
+++
labs/magma/trunk/fragment-messaging-web/src/main/java/org/apache/magma/web/messaging/InstallMessagingWebHandlerIntoRoot.aj
Tue Oct 20 00:26:47 2009
@@ -0,0 +1,9 @@
+package org.apache.magma.web.messaging;
+
+import org.apache.magma.website.RootWebHandler;
+
+public aspect InstallMessagingWebHandlerIntoRoot {
+ public MessagingWebHandler RootWebHandler.handleMessaging(){
+ return new MessagingWebHandler();
+ }
+}
Added:
labs/magma/trunk/fragment-messaging-web/src/main/java/org/apache/magma/web/messaging/MessagingWebHandler.java
URL:
http://svn.apache.org/viewvc/labs/magma/trunk/fragment-messaging-web/src/main/java/org/apache/magma/web/messaging/MessagingWebHandler.java?rev=826914&view=auto
==============================================================================
---
labs/magma/trunk/fragment-messaging-web/src/main/java/org/apache/magma/web/messaging/MessagingWebHandler.java
(added)
+++
labs/magma/trunk/fragment-messaging-web/src/main/java/org/apache/magma/web/messaging/MessagingWebHandler.java
Tue Oct 20 00:26:47 2009
@@ -0,0 +1,105 @@
+package org.apache.magma.web.messaging;
+
+import java.util.List;
+
+import org.apache.magma.database.Database;
+import org.apache.magma.domain.messaging.PrivateMessage;
+import org.apache.magma.domain.user.User;
+import org.apache.magma.view.tree.SimpleViewFilter;
+import org.apache.magma.view.tree.ViewCustomizer;
+import org.apache.magma.website.CompoundType;
+import org.apache.magma.website.HtmlProducer;
+import org.apache.magma.website.WebHandler;
+import org.apache.magma.website.beansview.ShowBean;
+import org.apache.magma.website.beansview.ShowList;
+import org.apache.magma.website.beansview.SmartForm;
+import org.apache.magma.website.beansview.SmartList;
+import org.apache.magma.website.producers.TemplatingProducer;
+
+public class MessagingWebHandler extends WebHandler{
+ private User sessionUser;
+ protected ViewCustomizer newMessage = new SimpleViewFilter("-sender",
"-date", "-read");
+ protected ViewCustomizer inbox = new SimpleViewFilter ("-receiver");
+ protected ViewCustomizer outbox = new SimpleViewFilter ("-sender");
+ protected ViewCustomizer reply = new SimpleViewFilter
("-receiver","-sender", "-date", "-read");
+
+ public SmartForm handleNewMessage(){
+ if (this.sessionUser == null) {
+ return root().handleLogin().handleRequest();
+ }else{
+ PrivateMessage pm = new PrivateMessage();
+ pm.setSender(sessionUser);
+ HtmlProducer header = new
TemplatingProducer("newPMHeader");
+ return new SmartForm(pm, "hiddenNewMessage",
header).setFilter(newMessage);
+ }
+ }
+ public HtmlProducer hiddenNewMessage(PrivateMessage pm){
+ sessionUser.getOutbox().add(pm);
+ Database db = new Database();
+ db.save(sessionUser);
+ return doShowMessage(pm);
+ }
+ public HtmlProducer doShowMessage(PrivateMessage pm){
+ ShowBean showBean = new ShowBean(pm);
+ HtmlProducer header = new TemplatingProducer("showHeader")
+ .addParameter("pm", pm)
+ .addParameter("sessionUser", sessionUser);
+ Database db = new Database();
+ if(sessionUser == pm.getReceiver()){
+ pm.setAlreadyRead(true);
+ db.save(pm);
+ }
+ showBean.compoundWith(header, CompoundType.HEAD);
+ return showBean;
+ }
+
+ public SmartForm handleReply(PrivateMessage message){
+ PrivateMessage pm = new PrivateMessage();
+ pm.setSender(sessionUser);
+ pm.setReceiver(message.getSender());
+ pm.setTitle("RE : " + message.getTitle());
+ HtmlProducer header = new
TemplatingProducer("replyHeader").addParameter("user", message.getSender());
+ return new SmartForm(pm, "hiddenReply",
header).setFilter(reply);
+ }
+ public HtmlProducer hiddenReply(PrivateMessage pm){
+ sessionUser.getOutbox().add(pm);
+ Database db = new Database();
+ db.save(sessionUser);
+ return doShowMessage(pm);
+ }
+
+ public SmartList handleOutbox(){
+ HtmlProducer header = new
TemplatingProducer("outboxHeader").addParameter("user", sessionUser);
+ SmartList sl = new SmartList(PrivateMessage.class, "where
x.sender=?1", sessionUser);
+ sl.setLink("doShowMessage");
+ sl.addSortable("date");
+ sl.setHeader(header);
+ sl.setFilter(outbox);
+ return sl;
+ }
+ public SmartList handleInbox(){
+ HtmlProducer header = new
TemplatingProducer("inboxHeader").addParameter("user", sessionUser);
+ SmartList sl = new SmartList(PrivateMessage.class, "where
x.receiver=?1", sessionUser);
+ sl.setLink("doShowMessage");
+ sl.addSortable("date");
+ sl.setHeader(header);
+ sl.setFilter(inbox);
+ return sl;
+ }
+ public SmartList handleNotRead(){
+ HtmlProducer header = new
TemplatingProducer("inboxHeader").addParameter("user", sessionUser);
+ SmartList sl = new SmartList(PrivateMessage.class, "where
x.receiver=?1 and x.alreadyRead=?2", sessionUser, false);
+ sl.setLink("doShowMessage");
+ sl.addSortable("date");
+ sl.setHeader(header);
+ sl.setFilter(inbox);
+ return sl;
+ }
+ public HtmlProducer doUnreadMessageBox(){
+ List<PrivateMessage> list = new
Database().query(PrivateMessage.class, "where x.receiver=?1 and
x.alreadyRead=?2", sessionUser, false);
+ Number unread = list.size();
+ return new
TemplatingProducer("unreadBox").addParameter("unread", unread);
+ }
+
+
+}
Added:
labs/magma/trunk/fragment-messaging-web/src/main/resources/org/apache/magma/web/messaging/inboxHeader.vm
URL:
http://svn.apache.org/viewvc/labs/magma/trunk/fragment-messaging-web/src/main/resources/org/apache/magma/web/messaging/inboxHeader.vm?rev=826914&view=auto
==============================================================================
---
labs/magma/trunk/fragment-messaging-web/src/main/resources/org/apache/magma/web/messaging/inboxHeader.vm
(added)
+++
labs/magma/trunk/fragment-messaging-web/src/main/resources/org/apache/magma/web/messaging/inboxHeader.vm
Tue Oct 20 00:26:47 2009
@@ -0,0 +1,2 @@
+<h1>$i18n.tr("Inbox")</h1>
+<div class="magmaMessages">$i18n.tr("you have ")$user.getInbox().size()
$i18n.tr(" message(s) in your inbox.")</div>
\ No newline at end of file
Added:
labs/magma/trunk/fragment-messaging-web/src/main/resources/org/apache/magma/web/messaging/newPMHeader.vm
URL:
http://svn.apache.org/viewvc/labs/magma/trunk/fragment-messaging-web/src/main/resources/org/apache/magma/web/messaging/newPMHeader.vm?rev=826914&view=auto
==============================================================================
---
labs/magma/trunk/fragment-messaging-web/src/main/resources/org/apache/magma/web/messaging/newPMHeader.vm
(added)
+++
labs/magma/trunk/fragment-messaging-web/src/main/resources/org/apache/magma/web/messaging/newPMHeader.vm
Tue Oct 20 00:26:47 2009
@@ -0,0 +1 @@
+<h1>$i18n.tr("New Message")</h1>
Added:
labs/magma/trunk/fragment-messaging-web/src/main/resources/org/apache/magma/web/messaging/outboxHeader.vm
URL:
http://svn.apache.org/viewvc/labs/magma/trunk/fragment-messaging-web/src/main/resources/org/apache/magma/web/messaging/outboxHeader.vm?rev=826914&view=auto
==============================================================================
---
labs/magma/trunk/fragment-messaging-web/src/main/resources/org/apache/magma/web/messaging/outboxHeader.vm
(added)
+++
labs/magma/trunk/fragment-messaging-web/src/main/resources/org/apache/magma/web/messaging/outboxHeader.vm
Tue Oct 20 00:26:47 2009
@@ -0,0 +1,2 @@
+<h1>$i18n.tr("Outbox")</h1>
+<div class="magmaMessages">$i18n.tr("you have {0} message(s) in your
outbox.",$user.getInbox().size())</div>
\ No newline at end of file
Added:
labs/magma/trunk/fragment-messaging-web/src/main/resources/org/apache/magma/web/messaging/replyHeader.vm
URL:
http://svn.apache.org/viewvc/labs/magma/trunk/fragment-messaging-web/src/main/resources/org/apache/magma/web/messaging/replyHeader.vm?rev=826914&view=auto
==============================================================================
---
labs/magma/trunk/fragment-messaging-web/src/main/resources/org/apache/magma/web/messaging/replyHeader.vm
(added)
+++
labs/magma/trunk/fragment-messaging-web/src/main/resources/org/apache/magma/web/messaging/replyHeader.vm
Tue Oct 20 00:26:47 2009
@@ -0,0 +1 @@
+<h1>$i18n.tr("Reply to {0}", $user.toUser())</h1>
\ No newline at end of file
Added:
labs/magma/trunk/fragment-messaging-web/src/main/resources/org/apache/magma/web/messaging/showHeader.vm
URL:
http://svn.apache.org/viewvc/labs/magma/trunk/fragment-messaging-web/src/main/resources/org/apache/magma/web/messaging/showHeader.vm?rev=826914&view=auto
==============================================================================
---
labs/magma/trunk/fragment-messaging-web/src/main/resources/org/apache/magma/web/messaging/showHeader.vm
(added)
+++
labs/magma/trunk/fragment-messaging-web/src/main/resources/org/apache/magma/web/messaging/showHeader.vm
Tue Oct 20 00:26:47 2009
@@ -0,0 +1,6 @@
+#if($pm.getSender() != $sessionUser)
+<h1>$i18n.tr("{0} has wrote :", $pm.getSender().toUser())</h1>
+<div class="magmaButtons"><a href="reply!$pm.id">$i18n.tr("Reply to {0}",
$pm.sender.toUser())</a></div>
+#else
+<h1>$i18n.tr("Message sent to {0}", $pm.getReceiver().toUser())</h1>
+#end
\ No newline at end of file
Added:
labs/magma/trunk/fragment-messaging-web/src/main/resources/org/apache/magma/web/messaging/unreadBox.vm
URL:
http://svn.apache.org/viewvc/labs/magma/trunk/fragment-messaging-web/src/main/resources/org/apache/magma/web/messaging/unreadBox.vm?rev=826914&view=auto
==============================================================================
---
labs/magma/trunk/fragment-messaging-web/src/main/resources/org/apache/magma/web/messaging/unreadBox.vm
(added)
+++
labs/magma/trunk/fragment-messaging-web/src/main/resources/org/apache/magma/web/messaging/unreadBox.vm
Tue Oct 20 00:26:47 2009
@@ -0,0 +1,11 @@
+<h2>$i18n.tr("Private Messaging")</h2>
+
+<ul class="magmaMessagesMenu">
+<li><a href="newMessage">$i18n.tr("New Message")</a></li>
+#if($unread > 0)
+<li><a href="inbox">$i18n.tr("Inbox({0})", $unread)</a></li>
+#else
+<li><a href="inbox">$i18n.tr("Inbox")</a></li>
+#end
+<li><a href="outbox">$i18n.tr("Outbox")</a></li>
+</ul>
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]