Author: simoneg
Date: Fri Oct 16 16:29:12 2009
New Revision: 825988

URL: http://svn.apache.org/viewvc?rev=825988&view=rev
Log:
LABS-481: contributed Banner fragment

Added:
    labs/magma/trunk/fragment-banner-web/pom.xml
    labs/magma/trunk/fragment-banner-web/src/
    labs/magma/trunk/fragment-banner-web/src/main/
    labs/magma/trunk/fragment-banner-web/src/main/java/
    labs/magma/trunk/fragment-banner-web/src/main/java/org/
    labs/magma/trunk/fragment-banner-web/src/main/java/org/apache/
    labs/magma/trunk/fragment-banner-web/src/main/java/org/apache/magma/
    labs/magma/trunk/fragment-banner-web/src/main/java/org/apache/magma/web/
    
labs/magma/trunk/fragment-banner-web/src/main/java/org/apache/magma/web/banner/
    
labs/magma/trunk/fragment-banner-web/src/main/java/org/apache/magma/web/banner/BannerWebHandler.java
    
labs/magma/trunk/fragment-banner-web/src/main/java/org/apache/magma/web/banner/CrudBanner.java
    
labs/magma/trunk/fragment-banner-web/src/main/java/org/apache/magma/web/banner/CrudBannerCategory.java
    
labs/magma/trunk/fragment-banner-web/src/main/java/org/apache/magma/web/banner/InstallAdminCruds.aj
    
labs/magma/trunk/fragment-banner-web/src/main/java/org/apache/magma/web/banner/InstallBannerWebHandlerIntoRoot.aj
    
labs/magma/trunk/fragment-banner-web/src/main/java/org/apache/magma/web/banner/SetupBanner.aj
    labs/magma/trunk/fragment-banner-web/src/main/resources/
    labs/magma/trunk/fragment-banner-web/src/main/resources/META-INF/
    
labs/magma/trunk/fragment-banner-web/src/main/resources/META-INF/messages.it.properties
    
labs/magma/trunk/fragment-banner-web/src/main/resources/META-INF/messages.properties
    labs/magma/trunk/fragment-banner-web/src/main/resources/org/
    labs/magma/trunk/fragment-banner-web/src/main/resources/org/apache/
    labs/magma/trunk/fragment-banner-web/src/main/resources/org/apache/magma/
    
labs/magma/trunk/fragment-banner-web/src/main/resources/org/apache/magma/web/
    
labs/magma/trunk/fragment-banner-web/src/main/resources/org/apache/magma/web/banner/
    
labs/magma/trunk/fragment-banner-web/src/main/resources/org/apache/magma/web/banner/banner.vm
    
labs/magma/trunk/fragment-banner-web/src/main/resources/org/apache/magma/web/banner/displaybanner.vm
    
labs/magma/trunk/fragment-banner-web/src/main/resources/org/apache/magma/web/banner/image.vm
    
labs/magma/trunk/fragment-banner-web/src/main/resources/org/apache/magma/web/banner/magma_banner.png
   (with props)

Added: labs/magma/trunk/fragment-banner-web/pom.xml
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/fragment-banner-web/pom.xml?rev=825988&view=auto
==============================================================================
--- labs/magma/trunk/fragment-banner-web/pom.xml (added)
+++ labs/magma/trunk/fragment-banner-web/pom.xml Fri Oct 16 16:29:12 2009
@@ -0,0 +1,39 @@
+<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-banner-web</artifactId>
+  <version>0.0.2-SNAPSHOT</version>
+  <packaging>magma</packaging>
+       <dependencies>
+               <dependency>
+                       <groupId>org.apache.magma</groupId>
+                       <artifactId>fragment-banner-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>foundation-database</artifactId>
+                       <version>0.0.2-SNAPSHOT</version>
+               </dependency>
+               <dependency>
+                       <groupId>org.apache.magma</groupId>
+                       <artifactId>fragment-init</artifactId>
+                       <version>0.0.2-SNAPSHOT</version>
+               </dependency>   
+       </dependencies>
+</project>

Added: 
labs/magma/trunk/fragment-banner-web/src/main/java/org/apache/magma/web/banner/BannerWebHandler.java
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/fragment-banner-web/src/main/java/org/apache/magma/web/banner/BannerWebHandler.java?rev=825988&view=auto
==============================================================================
--- 
labs/magma/trunk/fragment-banner-web/src/main/java/org/apache/magma/web/banner/BannerWebHandler.java
 (added)
+++ 
labs/magma/trunk/fragment-banner-web/src/main/java/org/apache/magma/web/banner/BannerWebHandler.java
 Fri Oct 16 16:29:12 2009
@@ -0,0 +1,57 @@
+package org.apache.magma.web.banner;
+
+import java.util.Date;
+import java.util.List;
+
+import org.apache.magma.basics.LocalizableString;
+import org.apache.magma.database.Database;
+import org.apache.magma.domain.banner.Banner;
+import org.apache.magma.domain.banner.BannerCategory;
+import org.apache.magma.website.HtmlProducer;
+import org.apache.magma.website.Producer;
+import org.apache.magma.website.StreamProducer;
+import org.apache.magma.website.WebHandler;
+import org.apache.magma.website.producers.TemplatingProducer;
+
+public class BannerWebHandler extends WebHandler{
+       
+       public HtmlProducer doBannerRotation(BannerCategory category){          
+               Database db = new Database();
+               List<Banner> query = db.query(Banner.class, 0, 1, 
+                               "where x.archived=?1 and x.uploadedImage=?2 and 
x.category=?3 order by x.actualViews", false, true, category );
+               Banner b = null;
+               if (query.size() > 0) {
+                       b = query.get(0);
+                       b.setActualViews(b.getActualViews()+1);
+                       db.save(b);                     
+               } else {
+                       b = new Banner();
+                       b.setName(new LocalizableString("Nessun 
banner").toString());
+               }
+               HtmlProducer bannerdiv = new 
TemplatingProducer("banner").addParameter(b);
+               return bannerdiv;               
+       }
+       
+       public HtmlProducer doBannerRotationDateViews(BannerCategory category){
+               Date today = new Date();
+               Database db = new Database();
+               List<Banner> query = db.query(Banner.class, 0, 1, 
+                               "where x.endDate>=?1 and x.startDate<=?1 and 
x.actualViews<x.maxViews and x.archived=?2 and x.uploadedImage=?3 and 
x.category=?4 order by x.actualViews", today, false, true, category );
+               Banner b = null;
+               if (query.size() > 0) {
+                       b = query.get(0);
+                       b.setActualViews(b.getActualViews()+1);
+                       db.save(b);                     
+               } else {
+                       b = new Banner();
+                       b.setName(new LocalizableString("Nessun 
banner").toString());
+               }
+               HtmlProducer bannerdiv = new 
TemplatingProducer("banner").addParameter(b);
+               return bannerdiv;               
+       }
+       public Producer doDownload(Banner b) {
+               StreamProducer ret = new StreamProducer(b.getName(), 
b.getImage());
+               ret.setExpires(StreamProducer.EXPIRES_TOMORROW);
+               return ret;
+       }
+}

Added: 
labs/magma/trunk/fragment-banner-web/src/main/java/org/apache/magma/web/banner/CrudBanner.java
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/fragment-banner-web/src/main/java/org/apache/magma/web/banner/CrudBanner.java?rev=825988&view=auto
==============================================================================
--- 
labs/magma/trunk/fragment-banner-web/src/main/java/org/apache/magma/web/banner/CrudBanner.java
 (added)
+++ 
labs/magma/trunk/fragment-banner-web/src/main/java/org/apache/magma/web/banner/CrudBanner.java
 Fri Oct 16 16:29:12 2009
@@ -0,0 +1,53 @@
+package org.apache.magma.web.banner;
+
+import java.io.IOException;
+
+import org.apache.commons.fileupload.FileItem;
+import org.apache.magma.basics.LocalizableString;
+import org.apache.magma.database.Database;
+import org.apache.magma.domain.banner.Banner;
+import org.apache.magma.website.CompoundType;
+import org.apache.magma.website.HtmlProducer;
+import org.apache.magma.website.admin.CompleteCrudHandler;
+import org.apache.magma.website.beansview.ShowBean;
+import org.apache.magma.website.producers.CompoundHtmlProducer;
+import org.apache.magma.website.producers.TemplatingProducer;
+
+public class CrudBanner extends CompleteCrudHandler<Banner>{
+       public CrudBanner(){
+               super(Banner.class);
+       }
+       
+private FileItem paramFile;
+       
+
+       public void setParamFile(FileItem paramFile) {
+               this.paramFile = paramFile;
+       }
+       @Override
+       public HtmlProducer doShow(Banner b){
+               HtmlProducer footer = new 
TemplatingProducer("displaybanner").addParameter("bean", b);
+               ShowBean showBean = new ShowBean(b);
+               showBean.compoundWith(footer, CompoundType.FOOT);
+               return showBean;
+               
+               
+       }
+       
+       public HtmlProducer doSelectImage(Banner b) throws IOException {
+               String message = "";
+               if (paramFile != null) {
+                       if (paramFile != null && paramFile.getSize() > 0) {
+                               b.setImage(paramFile.getInputStream());
+                               b.setUploadedImage(true);
+                       }
+                       new Database().save(b);
+                       if (paramFile != null) {
+                               message = new LocalizableString("File {0} saved 
correctly", b.getName()).toString();
+                       }
+               } else {
+                       message = new LocalizableString("Select a 
file").toString();
+               }
+               return new TemplatingProducer("image").addParameter("message", 
message).addParameter("bean", b);
+       }
+}
\ No newline at end of file

Added: 
labs/magma/trunk/fragment-banner-web/src/main/java/org/apache/magma/web/banner/CrudBannerCategory.java
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/fragment-banner-web/src/main/java/org/apache/magma/web/banner/CrudBannerCategory.java?rev=825988&view=auto
==============================================================================
--- 
labs/magma/trunk/fragment-banner-web/src/main/java/org/apache/magma/web/banner/CrudBannerCategory.java
 (added)
+++ 
labs/magma/trunk/fragment-banner-web/src/main/java/org/apache/magma/web/banner/CrudBannerCategory.java
 Fri Oct 16 16:29:12 2009
@@ -0,0 +1,10 @@
+package org.apache.magma.web.banner;
+
+import org.apache.magma.domain.banner.BannerCategory;
+import org.apache.magma.website.admin.CompleteCrudHandler;
+
+public class CrudBannerCategory extends CompleteCrudHandler<BannerCategory>{
+       public CrudBannerCategory(){
+               super(BannerCategory.class);
+       }
+}

Added: 
labs/magma/trunk/fragment-banner-web/src/main/java/org/apache/magma/web/banner/InstallAdminCruds.aj
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/fragment-banner-web/src/main/java/org/apache/magma/web/banner/InstallAdminCruds.aj?rev=825988&view=auto
==============================================================================
--- 
labs/magma/trunk/fragment-banner-web/src/main/java/org/apache/magma/web/banner/InstallAdminCruds.aj
 (added)
+++ 
labs/magma/trunk/fragment-banner-web/src/main/java/org/apache/magma/web/banner/InstallAdminCruds.aj
 Fri Oct 16 16:29:12 2009
@@ -0,0 +1,17 @@
+package org.apache.magma.web.banner;
+
+import org.apache.magma.website.admin.Manages;
+import org.apache.magma.website.admin.AdminWebHandler;
+import org.apache.magma.domain.banner.Banner;
+import org.apache.magma.domain.banner.BannerCategory;
+
+public aspect InstallAdminCruds {
+       @Manages(Banner.class)
+       public CrudBanner AdminWebHandler.handleBanner(){
+               return new CrudBanner();
+       }
+       @Manages(BannerCategory.class)
+       public CrudBannerCategory AdminWebHandler.handleBannerCategory(){
+               return new CrudBannerCategory();
+       }
+}

Added: 
labs/magma/trunk/fragment-banner-web/src/main/java/org/apache/magma/web/banner/InstallBannerWebHandlerIntoRoot.aj
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/fragment-banner-web/src/main/java/org/apache/magma/web/banner/InstallBannerWebHandlerIntoRoot.aj?rev=825988&view=auto
==============================================================================
--- 
labs/magma/trunk/fragment-banner-web/src/main/java/org/apache/magma/web/banner/InstallBannerWebHandlerIntoRoot.aj
 (added)
+++ 
labs/magma/trunk/fragment-banner-web/src/main/java/org/apache/magma/web/banner/InstallBannerWebHandlerIntoRoot.aj
 Fri Oct 16 16:29:12 2009
@@ -0,0 +1,9 @@
+package org.apache.magma.web.banner;
+
+import org.apache.magma.website.RootWebHandler;
+
+public aspect InstallBannerWebHandlerIntoRoot {
+       public BannerWebHandler RootWebHandler.handleBanner() {
+               return new BannerWebHandler();
+       }
+}

Added: 
labs/magma/trunk/fragment-banner-web/src/main/java/org/apache/magma/web/banner/SetupBanner.aj
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/fragment-banner-web/src/main/java/org/apache/magma/web/banner/SetupBanner.aj?rev=825988&view=auto
==============================================================================
--- 
labs/magma/trunk/fragment-banner-web/src/main/java/org/apache/magma/web/banner/SetupBanner.aj
 (added)
+++ 
labs/magma/trunk/fragment-banner-web/src/main/java/org/apache/magma/web/banner/SetupBanner.aj
 Fri Oct 16 16:29:12 2009
@@ -0,0 +1,27 @@
+package org.apache.magma.web.banner;
+
+import org.apache.magma.basics.startup.Startup;
+import org.apache.magma.database.Database;
+import org.apache.magma.domain.PackageInit;
+import org.apache.magma.domain.banner.Banner;
+import org.apache.magma.domain.banner.BannerCategory;
+
+public aspect SetupBanner {
+       public void Startup.setupBanner(){
+               int ver = PackageInit.lastVersion("fragment-banner");
+               Database db = new Database();
+               if(ver < 1){
+                       BannerCategory header = new BannerCategory();
+                       header.setName("header");
+                       header.setLogicalName("header");
+                       db.save(header);
+                       
+                       Banner banner = new Banner();
+                       banner.setName("Magma");
+                       
banner.setLink("http://cwiki.apache.org/confluence/display/labs/Magma";);
+                       
banner.setImage(getClass().getResourceAsStream("magma_banner.png"));
+                       db.save(banner);
+               }
+               PackageInit.inited("fragment-banner", 1);
+       }
+}

Added: 
labs/magma/trunk/fragment-banner-web/src/main/resources/META-INF/messages.it.properties
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/fragment-banner-web/src/main/resources/META-INF/messages.it.properties?rev=825988&view=auto
==============================================================================
--- 
labs/magma/trunk/fragment-banner-web/src/main/resources/META-INF/messages.it.properties
 (added)
+++ 
labs/magma/trunk/fragment-banner-web/src/main/resources/META-INF/messages.it.properties
 Fri Oct 16 16:29:12 2009
@@ -0,0 +1,10 @@
+modify=modifica
+list=Elenco
+new=Aggiungi
+delete=Elimina
+
+selectafile=Seleziona il file
+bannercategory=Categorie per i Banner
+listofbannercategory=Elenco delle Categorie
+newbannercategory=Nuova Categoria
+modifybannercategory=Modifica Categoria
\ No newline at end of file

Added: 
labs/magma/trunk/fragment-banner-web/src/main/resources/META-INF/messages.properties
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/fragment-banner-web/src/main/resources/META-INF/messages.properties?rev=825988&view=auto
==============================================================================
--- 
labs/magma/trunk/fragment-banner-web/src/main/resources/META-INF/messages.properties
 (added)
+++ 
labs/magma/trunk/fragment-banner-web/src/main/resources/META-INF/messages.properties
 Fri Oct 16 16:29:12 2009
@@ -0,0 +1,10 @@
+modify=Edit
+list=List
+new=Add
+delete=Delete
+
+selectafile=Select a file
+bannercategory=Banner's category
+listofbannercategory=Categories List
+newbannercategory=New Category
+modifybannercategory=Edit Category
\ No newline at end of file

Added: 
labs/magma/trunk/fragment-banner-web/src/main/resources/org/apache/magma/web/banner/banner.vm
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/fragment-banner-web/src/main/resources/org/apache/magma/web/banner/banner.vm?rev=825988&view=auto
==============================================================================
--- 
labs/magma/trunk/fragment-banner-web/src/main/resources/org/apache/magma/web/banner/banner.vm
 (added)
+++ 
labs/magma/trunk/fragment-banner-web/src/main/resources/org/apache/magma/web/banner/banner.vm
 Fri Oct 16 16:29:12 2009
@@ -0,0 +1,4 @@
+<div>
+<a href="$banner.link" onclick="window.open('$banner.link','','');return 
false;"
+       onkeypress="if 
(!(event.keyCode==9)){window.open('$banner.link','','');return false;}" 
title="$i18n.tr('Link esterno al sito pubblicizzato')"><img 
src="magma:/banner/download!$banner.id" alt="$banner.textual"/></a>
+</div>
\ No newline at end of file

Added: 
labs/magma/trunk/fragment-banner-web/src/main/resources/org/apache/magma/web/banner/displaybanner.vm
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/fragment-banner-web/src/main/resources/org/apache/magma/web/banner/displaybanner.vm?rev=825988&view=auto
==============================================================================
--- 
labs/magma/trunk/fragment-banner-web/src/main/resources/org/apache/magma/web/banner/displaybanner.vm
 (added)
+++ 
labs/magma/trunk/fragment-banner-web/src/main/resources/org/apache/magma/web/banner/displaybanner.vm
 Fri Oct 16 16:29:12 2009
@@ -0,0 +1,13 @@
+#if($banner.uploadedImage)
+       <div >
+       Preview : <img src="magma:/banner/download!$banner.id"/>
+       </div>
+#elseif(!$banner.uploadedImage)
+       <div >
+               Preview : 
+               <p >
+                       $i18n.tr("nessuna immagine caricata")
+               </p>
+       </div>
+#end
+               
\ No newline at end of file

Added: 
labs/magma/trunk/fragment-banner-web/src/main/resources/org/apache/magma/web/banner/image.vm
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/fragment-banner-web/src/main/resources/org/apache/magma/web/banner/image.vm?rev=825988&view=auto
==============================================================================
--- 
labs/magma/trunk/fragment-banner-web/src/main/resources/org/apache/magma/web/banner/image.vm
 (added)
+++ 
labs/magma/trunk/fragment-banner-web/src/main/resources/org/apache/magma/web/banner/image.vm
 Fri Oct 16 16:29:12 2009
@@ -0,0 +1,6 @@
+<h1>$i18n.tr("Aggiungi immagine")</h1>
+<p>$message</p>
+<form action="selectImage!${bean.id}" enctype="multipart/form-data" 
method="post">
+  File : <input type="file" name="file"/><br/>
+  <input type="submit" value="$i18n.tr('Salva')"/>
+</form> 

Added: 
labs/magma/trunk/fragment-banner-web/src/main/resources/org/apache/magma/web/banner/magma_banner.png
URL: 
http://svn.apache.org/viewvc/labs/magma/trunk/fragment-banner-web/src/main/resources/org/apache/magma/web/banner/magma_banner.png?rev=825988&view=auto
==============================================================================
Binary file - no diff available.

Propchange: 
labs/magma/trunk/fragment-banner-web/src/main/resources/org/apache/magma/web/banner/magma_banner.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to