roller-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From eli...@apache.org
Subject svn commit: r454446 - in /incubator/roller/trunk: metadata/database/ src/org/apache/roller/business/hibernate/ src/org/apache/roller/pojos/ src/org/apache/roller/ui/rendering/util/ web/WEB-INF/velocity/ web/roller-ui/styles/ web/themes/frontpage/
Date Mon, 09 Oct 2006 18:11:04 GMT
Author: eliast
Date: Mon Oct  9 11:11:03 2006
New Revision: 454446

URL: http://svn.apache.org/viewvc?view=rev&rev=454446
Log:
Tag Fixes:

- Renamed count column in weblogentrytagagg to total because of confusion with count function
in SQL
- Added TagStatComparator
- Modified Weblog*Request to disable other criteria when requesting tags
- Added tags in feeds
- Refactored HibernatWeblogManagerImpl to deal with case where two weblogentrytagagg rows
are added.

Added:
    incubator/roller/trunk/src/org/apache/roller/pojos/TagStatComparator.java   (with props)
Modified:
    incubator/roller/trunk/metadata/database/300-to-310-migration.vm
    incubator/roller/trunk/metadata/database/createdb.vm
    incubator/roller/trunk/src/org/apache/roller/business/hibernate/HibernateWeblogManagerImpl.java
    incubator/roller/trunk/src/org/apache/roller/pojos/TagStat.java
    incubator/roller/trunk/src/org/apache/roller/pojos/WeblogEntryData.java
    incubator/roller/trunk/src/org/apache/roller/pojos/WeblogEntryTagAggregateData.java
    incubator/roller/trunk/src/org/apache/roller/ui/rendering/util/WeblogFeedRequest.java
    incubator/roller/trunk/src/org/apache/roller/ui/rendering/util/WeblogPageRequest.java
    incubator/roller/trunk/web/WEB-INF/velocity/feeds.vm
    incubator/roller/trunk/web/roller-ui/styles/roller.css
    incubator/roller/trunk/web/themes/frontpage/_css.vm

Modified: incubator/roller/trunk/metadata/database/300-to-310-migration.vm
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/metadata/database/300-to-310-migration.vm?view=diff&rev=454446&r1=454445&r2=454446
==============================================================================
--- incubator/roller/trunk/metadata/database/300-to-310-migration.vm (original)
+++ incubator/roller/trunk/metadata/database/300-to-310-migration.vm Mon Oct  9 11:11:03 2006
@@ -24,7 +24,7 @@
     id              varchar(48)   not null primary key,
     websiteid       varchar(48) ,    
     name            varchar(255)  not null,
-    count           integer		  not null,
+    total           integer		  not null,
     lastused        $TIMESTAMP_SQL_TYPE 	not null
 );
 

Modified: incubator/roller/trunk/metadata/database/createdb.vm
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/metadata/database/createdb.vm?view=diff&rev=454446&r1=454445&r2=454446
==============================================================================
--- incubator/roller/trunk/metadata/database/createdb.vm (original)
+++ incubator/roller/trunk/metadata/database/createdb.vm Mon Oct  9 11:11:03 2006
@@ -226,7 +226,7 @@
     id              varchar(48)   not null primary key,
     websiteid       varchar(48) ,    
     name            varchar(255)  not null,
-    count           integer		  not null,
+    total           integer		  not null,
     lastused        $TIMESTAMP_SQL_TYPE 	not null
 );
 

Modified: incubator/roller/trunk/src/org/apache/roller/business/hibernate/HibernateWeblogManagerImpl.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/src/org/apache/roller/business/hibernate/HibernateWeblogManagerImpl.java?view=diff&rev=454446&r1=454445&r2=454446
==============================================================================
--- incubator/roller/trunk/src/org/apache/roller/business/hibernate/HibernateWeblogManagerImpl.java
(original)
+++ incubator/roller/trunk/src/org/apache/roller/business/hibernate/HibernateWeblogManagerImpl.java
Mon Oct  9 11:11:03 2006
@@ -30,6 +30,7 @@
 import java.util.List;
 import java.util.Map;
 import java.util.TreeMap;
+import java.util.TreeSet;
 
 import org.apache.commons.collections.comparators.ReverseComparator;
 import org.apache.commons.lang.StringUtils;
@@ -43,6 +44,7 @@
 import org.apache.roller.pojos.RefererData;
 import org.apache.roller.pojos.StatCount;
 import org.apache.roller.pojos.TagStat;
+import org.apache.roller.pojos.TagStatComparator;
 import org.apache.roller.pojos.UserData;
 import org.apache.roller.pojos.WeblogCategoryAssoc;
 import org.apache.roller.pojos.WeblogCategoryData;
@@ -80,6 +82,7 @@
     /* inline creation of reverse comparator, anonymous inner class */
     private Comparator reverseComparator = new ReverseComparator();
     
+    private Comparator tagStatComparator = new TagStatComparator();
     
     public HibernateWeblogManagerImpl(HibernatePersistenceStrategy strat) {
         log.debug("Instantiating Hibernate Weblog Manager");
@@ -439,7 +442,7 @@
             }
             
             if (locale != null) {
-                queryString.append("locale like ? ");
+                queryString.append("and locale like ? ");
                 params.add(locale + '%');
             }
             
@@ -1184,27 +1187,25 @@
     public List getPopularTags(WebsiteData website, Date startDate, int limit)
             throws RollerException {
         try {
-            List results = new ArrayList();
-
             Session session = ((HibernatePersistenceStrategy) strategy)
                     .getSession();
 
             ArrayList params = new ArrayList();
             StringBuffer queryString = new StringBuffer();
-            queryString.append("select a.name, a.count ");
-            queryString.append("from WeblogEntryTagAggregateData a where ");
+            queryString.append("select name, total ");
+            queryString.append("from WeblogEntryTagAggregateData where ");
             if (website != null) {
-                queryString.append("a.website.id = ? ");
+                queryString.append("website.id = ? ");
                 params.add(website.getId());
             } else {
-                queryString.append("a.website = NULL ");
+                queryString.append("website = NULL ");
             }
             if (startDate != null) {
-                queryString.append("and a.lastUsed >= ? ");
+                queryString.append("and lastUsed >= ? ");
                 params.add(startDate);
             }
 
-            queryString.append("order by a.count desc");
+            queryString.append("order by total desc");
 
             Query query = session.createQuery(queryString.toString());
             if (limit > 0)
@@ -1218,29 +1219,31 @@
             double min = Integer.MAX_VALUE;
             double max = Integer.MIN_VALUE;
 
+            TreeSet set = new TreeSet(tagStatComparator);
+            
             for (Iterator iter = query.list().iterator(); iter.hasNext();) {
                 Object[] row = (Object[]) iter.next();
                 TagStat t = new TagStat();
                 t.setName((String) row[0]);
-                t.setCount(((Integer) row[1]).intValue());
+                t.setCount(((Integer) row[1]).intValue());                
                 
                 min = Math.min(min, t.getCount());
                 max = Math.max(max, t.getCount());                
-                results.add(t);
+                set.add(t);
             }
             
             min = Math.log(1+min);
             max = Math.log(1+max);
 
             double range = Math.max(.01, max - min) * 1.0001;
-
-            for (Iterator iter = results.iterator(); iter.hasNext(); )
+            
+            for (Iterator iter = set.iterator(); iter.hasNext(); )
             {
                 TagStat t = (TagStat) iter.next();
                 t.setIntensity((int) (1 + Math.floor(5 * (Math.log(1+t.getCount()) - min)
/ range)));
             }            
 
-            return results;
+            return new ArrayList(set);
 
         } catch (HibernateException e) {
             throw new RollerException(e);
@@ -1261,20 +1264,20 @@
                     .getSession();
 
             if (sortBy != null && sortBy.equals("count")) {
-                sortBy = "a.count desc";
+                sortBy = "total desc";
             } else {
-                sortBy = "a.name";
+                sortBy = "name";
             }
 
             StringBuffer queryString = new StringBuffer();
-            queryString.append("select a.name, a.count ");
-            queryString.append("from WeblogEntryTagAggregateData a where ");
+            queryString.append("select name, total ");
+            queryString.append("from WeblogEntryTagAggregateData where ");
             if (website != null)
-                queryString.append("a.website.id = '" + website.getId() + "' ");
+                queryString.append("website.id = '" + website.getId() + "' ");
             else
-                queryString.append("a.website = NULL ");
+                queryString.append("website = NULL ");
             if (startsWith != null && startsWith.length() > 0)
-                queryString.append("and a.name like '" + startsWith + "%' ");
+                queryString.append("and name like '" + startsWith + "%' ");
 
             queryString.append("order by " + sortBy);
 
@@ -1298,8 +1301,6 @@
 
     }
     
-    
-
     public void updateTagCount(String name, WebsiteData website, int amount) throws RollerException
{
         
         Session session = ((HibernatePersistenceStrategy) strategy)
@@ -1317,8 +1318,13 @@
         conjunction.add(Expression.eq("name", name));
         conjunction.add(Expression.eq("website", website));
 
+        // The reason why add order lastUsed desc is to make sure we keep picking the most
recent
+        // one in the case where we have multiple rows (clustered environment)
+        // eventually that second entry will have a very low total (most likely 1) and
+        // won't matter
+        
         Criteria criteria = session.createCriteria(WeblogEntryTagAggregateData.class)
-            .add(conjunction);
+            .add(conjunction).addOrder(Order.desc("lastUsed"));
         
         WeblogEntryTagAggregateData weblogTagData = (WeblogEntryTagAggregateData) criteria.uniqueResult();
 
@@ -1327,7 +1333,7 @@
         conjunction.add(Restrictions.isNull("website"));
         
         criteria = session.createCriteria(WeblogEntryTagAggregateData.class)
-            .add(conjunction);
+            .add(conjunction).addOrder(Order.desc("lastUsed"));
     
         WeblogEntryTagAggregateData siteTagData = (WeblogEntryTagAggregateData) criteria.uniqueResult();
         
@@ -1338,8 +1344,8 @@
             weblogTagData = new WeblogEntryTagAggregateData(null, website, name, amount);
             weblogTagData.setLastUsed(lastUsed);
             session.save(weblogTagData);
-        } else {
-            session.createQuery("update WeblogEntryTagAggregateData a set a.count = a.count
+ ?, a.lastUsed = current_time() where a.name = ? and a.website = ?")
+        } else if(weblogTagData != null) {
+            session.createQuery("update WeblogEntryTagAggregateData set total = total + ?,
lastUsed = current_timestamp() where name = ? and website = ?")
             .setInteger(0, amount)
             .setString(1, weblogTagData.getName())
             .setParameter(2, website)
@@ -1351,14 +1357,14 @@
             siteTagData = new WeblogEntryTagAggregateData(null, null, name, amount);
             siteTagData.setLastUsed(lastUsed);
             session.save(siteTagData);
-        } else {
-            session.createQuery("update WeblogEntryTagAggregateData a set a.count = a.count
+ ?, a.lastUsed = current_time() where a.name = ? and a.website is null")
+        } else if(siteTagData != null) {
+            session.createQuery("update WeblogEntryTagAggregateData set total = total + ?,
lastUsed = current_timestamp() where name = ? and website is null")
             .setInteger(0, amount)
-            .setString(1, weblogTagData.getName())
+            .setString(1, siteTagData.getName())
             .executeUpdate();            
         }       
         
         // delete all bad counts
-        session.createQuery("delete from WeblogEntryTagAggregateData a where a.count <=
0").executeUpdate();
+        session.createQuery("delete from WeblogEntryTagAggregateData where total <= 0").executeUpdate();
     }
 }

Modified: incubator/roller/trunk/src/org/apache/roller/pojos/TagStat.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/src/org/apache/roller/pojos/TagStat.java?view=diff&rev=454446&r1=454445&r2=454446
==============================================================================
--- incubator/roller/trunk/src/org/apache/roller/pojos/TagStat.java (original)
+++ incubator/roller/trunk/src/org/apache/roller/pojos/TagStat.java Mon Oct  9 11:11:03 2006
@@ -15,9 +15,6 @@
  * copyright in this work, please see the NOTICE file in the top level
  * directory of this distribution.
  */
-/*
- * Generated file - Do not edit!
- */
 package org.apache.roller.pojos;
 
 

Added: incubator/roller/trunk/src/org/apache/roller/pojos/TagStatComparator.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/src/org/apache/roller/pojos/TagStatComparator.java?view=auto&rev=454446
==============================================================================
--- incubator/roller/trunk/src/org/apache/roller/pojos/TagStatComparator.java (added)
+++ incubator/roller/trunk/src/org/apache/roller/pojos/TagStatComparator.java Mon Oct  9 11:11:03
2006
@@ -0,0 +1,47 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  The ASF licenses this file to You
+ * under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.  For additional information regarding
+ * copyright in this work, please see the NOTICE file in the top level
+ * directory of this distribution.
+ */
+package org.apache.roller.pojos;
+
+import java.io.Serializable;
+import java.util.Comparator;
+
+/**
+ * @author Elias Torres (<a href="mailto:eliast@us.ibm.com">eliast@us.ibm.com</a>)
+ *
+ */
+public class TagStatComparator implements Comparator, Serializable {
+
+    private static final long serialVersionUID = -3272396777374523757L;
+
+    /**
+     * 
+     */
+    public TagStatComparator() {
+
+    }
+
+    /* (non-Javadoc)
+     * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
+     */
+    public int compare(Object obj1, Object obj2) throws ClassCastException {
+        TagStat st1 = (TagStat) obj1;
+        TagStat st2 = (TagStat) obj2;
+        return st1.getName().compareToIgnoreCase(st2.getName());
+    }
+
+}

Propchange: incubator/roller/trunk/src/org/apache/roller/pojos/TagStatComparator.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/roller/trunk/src/org/apache/roller/pojos/TagStatComparator.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: incubator/roller/trunk/src/org/apache/roller/pojos/TagStatComparator.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: incubator/roller/trunk/src/org/apache/roller/pojos/WeblogEntryData.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/src/org/apache/roller/pojos/WeblogEntryData.java?view=diff&rev=454446&r1=454445&r2=454446
==============================================================================
--- incubator/roller/trunk/src/org/apache/roller/pojos/WeblogEntryData.java (original)
+++ incubator/roller/trunk/src/org/apache/roller/pojos/WeblogEntryData.java Mon Oct  9 11:11:03
2006
@@ -626,7 +626,7 @@
      
      public void addTag(String name) throws RollerException {
         name = stripInvalidTagChars(name);
-        name = name.toLowerCase().trim();
+        name = name.trim();
         if(name.length() == 0)
             return;
         

Modified: incubator/roller/trunk/src/org/apache/roller/pojos/WeblogEntryTagAggregateData.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/src/org/apache/roller/pojos/WeblogEntryTagAggregateData.java?view=diff&rev=454446&r1=454445&r2=454446
==============================================================================
--- incubator/roller/trunk/src/org/apache/roller/pojos/WeblogEntryTagAggregateData.java (original)
+++ incubator/roller/trunk/src/org/apache/roller/pojos/WeblogEntryTagAggregateData.java Mon
Oct  9 11:11:03 2006
@@ -41,7 +41,7 @@
     private java.lang.String name = null;    
     private WebsiteData website = null;
     private Timestamp lastUsed = null;
-    private int count = 0;
+    private int total = 0;
 
     public WeblogEntryTagAggregateData()
     {
@@ -49,12 +49,12 @@
 
     public WeblogEntryTagAggregateData(java.lang.String id,
                        WebsiteData website,
-                       java.lang.String name, int count)
+                       java.lang.String name, int total)
     {
         this.id = id;
         this.website = website;
         this.name = name;
-        this.count = count;
+        this.total = total;
     }
 
     public WeblogEntryTagAggregateData(WeblogEntryTagAggregateData otherData)
@@ -112,11 +112,11 @@
     *
     * @roller.wrapPojoMethod type="simple"
     * @ejb:persistent-field
-    * @hibernate.property column="count" non-null="true" unique="false"
+    * @hibernate.property column="total" non-null="true" unique="false"
     */
-   public int getCount()
+   public int getTotal()
    {
-       return this.count;
+       return this.total;
    }
    
    /**
@@ -135,9 +135,9 @@
    }   
 
    /** @ejb:persistent-field */
-   public void setCount(int count)
+   public void setTotal(int total)
    {
-       this.count = count;
+       this.total = total;
    }    
 
    public String toString() {
@@ -146,7 +146,7 @@
      str.append("id=" + id + " " +
              "website=" + website +
              "name=" + name + " " +
-             "count=" + count + " " +
+             "total=" + total + " " +
              "lastUsed=" + lastUsed);
      str.append('}');
      
@@ -161,7 +161,7 @@
            lEquals = PojoUtil.equals(lEquals, this.id, lTest.getId());
            lEquals = PojoUtil.equals(lEquals, this.website, lTest.getWebsite());
            lEquals = PojoUtil.equals(lEquals, this.name, lTest.getName());
-           lEquals = this.count == lTest.getCount();
+           lEquals = this.total == lTest.getTotal();
            return lEquals;
        } else {
            return false;
@@ -173,7 +173,7 @@
        result = PojoUtil.addHashCode(result, this.id);
        result = PojoUtil.addHashCode(result, this.website);
        result = PojoUtil.addHashCode(result, this.name);
-       result = PojoUtil.addHashCode(result, new Integer(this.count));
+       result = PojoUtil.addHashCode(result, new Integer(this.total));
        
        return result;
    }
@@ -187,7 +187,7 @@
         this.id = data.getId();
         this.website = data.getWebsite();
         this.name = data.getName();
-        this.count = data.getCount();
+        this.total = data.getTotal();
         this.lastUsed = data.getLastUsed();
     }
 

Modified: incubator/roller/trunk/src/org/apache/roller/ui/rendering/util/WeblogFeedRequest.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/src/org/apache/roller/ui/rendering/util/WeblogFeedRequest.java?view=diff&rev=454446&r1=454445&r2=454446
==============================================================================
--- incubator/roller/trunk/src/org/apache/roller/ui/rendering/util/WeblogFeedRequest.java
(original)
+++ incubator/roller/trunk/src/org/apache/roller/ui/rendering/util/WeblogFeedRequest.java
Mon Oct  9 11:11:03 2006
@@ -18,6 +18,7 @@
 
 package org.apache.roller.ui.rendering.util;
 
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 
@@ -52,7 +53,7 @@
     private String type = null;
     private String format = null;
     private String weblogCategoryName = null;
-    private List   tags = null;
+    private List   tags = new ArrayList();
     private boolean excerpts = false;
     
     // heavyweight attributes
@@ -139,7 +140,7 @@
             this.excerpts = Boolean.valueOf(request.getParameter("excerpts")).booleanValue();
         }
         
-        if(this.tags.size() > 0 && this.weblogCategoryName != null) {
+        if((this.tags != null && this.tags.size() > 0) && this.weblogCategoryName
!= null) {
             throw new InvalidRequestException("please specify either category or tags but
not both, " + request.getRequestURL());            
         }
         

Modified: incubator/roller/trunk/src/org/apache/roller/ui/rendering/util/WeblogPageRequest.java
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/src/org/apache/roller/ui/rendering/util/WeblogPageRequest.java?view=diff&rev=454446&r1=454445&r2=454446
==============================================================================
--- incubator/roller/trunk/src/org/apache/roller/ui/rendering/util/WeblogPageRequest.java
(original)
+++ incubator/roller/trunk/src/org/apache/roller/ui/rendering/util/WeblogPageRequest.java
Mon Oct  9 11:11:03 2006
@@ -191,8 +191,8 @@
                 }
             }
             
-            // only check for other params if we didn't find an anchor above
-            if(this.weblogAnchor == null) {
+            // only check for other params if we didn't find an anchor above or tags
+            if(this.weblogAnchor == null && tags.size() == 0) {
                 if(request.getParameter("date") != null) {
                     String date = request.getParameter("date");
                     if(this.isValidDateString(date)) {
@@ -234,10 +234,7 @@
         customParams.remove("cat");
         customParams.remove("page");
         customParams.remove("tags");
-        
-        if(this.tags.size() > 0 && this.weblogCategoryName != null) {
-            throw new InvalidRequestException("please specify either category or tags but
not both, " + request.getRequestURL());            
-        }        
+            
             
         if(log.isDebugEnabled()) {
             log.debug("context = "+this.context);

Modified: incubator/roller/trunk/web/WEB-INF/velocity/feeds.vm
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/WEB-INF/velocity/feeds.vm?view=diff&rev=454446&r1=454445&r2=454446
==============================================================================
--- incubator/roller/trunk/web/WEB-INF/velocity/feeds.vm (original)
+++ incubator/roller/trunk/web/WEB-INF/velocity/feeds.vm Mon Oct  9 11:11:03 2006
@@ -26,7 +26,7 @@
 *#
 
 #macro(showEntriesAtom10 $entries)
-    #foreach($entry in $entries)
+#foreach($entry in $entries)
     <entry>
         <id>$entry.permalink</id>
         <title type="html">$utils.escapeXML($entry.title)</title>
@@ -35,17 +35,23 @@
         <published>$utils.formatIso8601Date($entry.pubTime)</published>
         <updated>$utils.formatIso8601Date($entry.updateTime)</updated> 
         <category term="$utils.escapeXML($entry.category.path)" label="$utils.escapeXML($entry.category.name)"
/>
-        #if( $utils.isNotEmpty($entry.summary))<summary type="html">$utils.escapeXML($entry.transformedSummary)</summary>#end
-        #if( $utils.isNotEmpty($entry.text) )<content type="html">$utils.escapeXML($entry.transformedText)</content>#end
-        #set( $mc_url = $entry.findEntryAttribute("att_mediacast_url") )
-        #set( $mc_type = $entry.findEntryAttribute("att_mediacast_type") )
-        #set( $mc_length = $entry.findEntryAttribute("att_mediacast_length") )
-        #if( $mc_url && $mc_length && $mc_type )
+#foreach($tag in $entry.tags)
+        <category term="$utils.escapeXML($tag.name)" scheme="http://rollerweblogger.org/ns/tags/"
/>
+#end        
+#if( $utils.isNotEmpty($entry.summary))
+        <summary type="html">$utils.escapeXML($entry.transformedSummary)</summary>
+#end
+#if( $utils.isNotEmpty($entry.text) )
+        <content type="html">$utils.escapeXML($entry.transformedText)</content>
+#end
+#set( $mc_url = $entry.findEntryAttribute("att_mediacast_url") )
+#set( $mc_type = $entry.findEntryAttribute("att_mediacast_type") )
+#set( $mc_length = $entry.findEntryAttribute("att_mediacast_length") )
+#if( $mc_url && $mc_length && $mc_type )
         <link rel="enclosure" type="$mc_type" length="$mc_length" href="$mc_url"/>
-        #set($mc_url = false) #set($mc_type = false) #set($mc_length = false)
-        #end
+#set($mc_url = false) #set($mc_type = false) #set($mc_length = false)#end
     </entry>
-    #end
+#end
 #end
 
 #macro(showEntriesRSS20 $entries)
@@ -60,6 +66,9 @@
     #end
     <pubDate>$utils.formatRfc822Date($entry.pubTime)</pubDate>
     <category>$utils.escapeXML($entry.category.name)</category>
+#foreach($tag in $entry.tags)
+    <category>$utils.escapeXML($tag.name)</category>
+#end            
     #if( $utils.isNotEmpty($entry.summary) && $utils.isNotEmpty($entry.text))<atom:summary
type="html">$utils.escapeXML($entry.transformedSummary)</atom:summary>#end
     #if( $utils.isNotEmpty($entry.summary) && $utils.isEmpty($entry.text))<description>$utils.escapeXML($entry.transformedText)</description>#end
     #if( $utils.isNotEmpty($entry.text) )<description>$utils.escapeXML($entry.transformedText)</description>#end

Modified: incubator/roller/trunk/web/roller-ui/styles/roller.css
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/roller-ui/styles/roller.css?view=diff&rev=454446&r1=454445&r2=454446
==============================================================================
--- incubator/roller/trunk/web/roller-ui/styles/roller.css (original)
+++ incubator/roller/trunk/web/roller-ui/styles/roller.css Mon Oct  9 11:11:03 2006
@@ -675,28 +675,28 @@
     margin-bottom: 5px;
 }
 
-/* tag autocomplete */
-
-div.autocomplete {
-  position:absolute;
-  width:250px;
-  background-color:white;
-  border:1px solid #888;
-  margin:0px;
-  padding:0px;
-}
-div.autocomplete ul {
-  list-style-type:none;
-  margin:0px;
-  padding:0px;
-}
-div.autocomplete ul li.selected { background-color: #ffb;}
-div.autocomplete ul li {
-  list-style-type:none;
-  display:block;
-  margin:0;
-  padding:4px;
-  height:32px;
-  cursor:pointer;
-}
+/* tag autocomplete */
+
+div.autocomplete {
+  position:absolute;
+  width:250px;
+  background-color:white;
+  border:1px solid #888;
+  margin:0px;
+  padding:0px;
+}
+div.autocomplete ul {
+  list-style-type:none;
+  margin:0px;
+  padding:0px;
+}
+div.autocomplete ul li.selected { background-color: #ffb;}
+
+div.autocomplete ul li {
+  list-style-type:none;
+  display:block;
+  margin:0;
+  padding:2px;
+  cursor:pointer;
+}
 

Modified: incubator/roller/trunk/web/themes/frontpage/_css.vm
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/themes/frontpage/_css.vm?view=diff&rev=454446&r1=454445&r2=454446
==============================================================================
--- incubator/roller/trunk/web/themes/frontpage/_css.vm (original)
+++ incubator/roller/trunk/web/themes/frontpage/_css.vm Mon Oct  9 11:11:03 2006
@@ -452,6 +452,10 @@
     padding: 0px 1px 0px 1px; /* TRBL */
 }
 
+#tagbin {
+    padding: 4px;
+}
+
 #tagbin a {
     	line-height: 100% ! important; 
 }
@@ -461,9 +465,9 @@
 }
 
 a.s5, a.s5:visited { font-size: 135%; color: #ad3537 ! important; }
-a.s4, a.s4:visited { font-size: 125%; color: #777777 ! important; }
-a.s3, a.s3:visited { font-size: 120%; color: #777777 ! important; }
-a.s2, a.s2:visited { font-size: 115%; color: #777777 ! important; }
-a.s1, a.s1:visited { font-size: 110%; color: #777777 ! important; }
+a.s4, a.s4:visited { font-size: 125%; color: #b95250 ! important; }
+a.s3, a.s3:visited { font-size: 120%; color: #cb7e7c ! important; }
+a.s2, a.s2:visited { font-size: 115%; color: #deafad ! important; }
+a.s1, a.s1:visited { font-size: 110%; color: #f1dbdb ! important; }
 
 /* end css */



Mime
View raw message