Author: agilliland
Date: Wed May 16 09:05:35 2007
New Revision: 538637

URL: http://svn.apache.org/viewvc?view=rev&rev=538637
Log:
struts2 version of referrers action.


Added:
    roller/trunk/src/org/apache/roller/ui/authoring/struts2/Referrers.java
    roller/trunk/web/WEB-INF/jsps/authoring/struts2/Referrers.jsp
Modified:
    roller/trunk/web/WEB-INF/classes/struts.xml
    roller/trunk/web/WEB-INF/tiles.xml

Added: roller/trunk/src/org/apache/roller/ui/authoring/struts2/Referrers.java
URL: 
http://svn.apache.org/viewvc/roller/trunk/src/org/apache/roller/ui/authoring/struts2/Referrers.java?view=auto&rev=538637
==============================================================================
--- roller/trunk/src/org/apache/roller/ui/authoring/struts2/Referrers.java 
(added)
+++ roller/trunk/src/org/apache/roller/ui/authoring/struts2/Referrers.java Wed 
May 16 09:05:35 2007
@@ -0,0 +1,168 @@
+/*
+ * 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.ui.authoring.struts2;
+
+import java.util.Collections;
+import java.util.List;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.roller.business.referrers.RefererManager;
+import org.apache.roller.business.RollerFactory;
+import org.apache.roller.pojos.PermissionsData;
+import org.apache.roller.pojos.RefererData;
+import org.apache.roller.ui.core.util.struts2.UIAction;
+import org.apache.roller.util.cache.CacheManager;
+
+
+/**
+ * Manage weblog referrer data.
+ */
+public class Referrers extends UIAction {
+    
+    private static Log log = LogFactory.getLog(Referrers.class);
+    
+    // list of referrers to display
+    private List<RefererData> referrers = Collections.EMPTY_LIST;
+    
+    // referrers hits today
+    private int dayHits = 0;
+    
+    // ids of referrers to remove
+    private String[] removeIds = null;
+    
+    
+    public Referrers() {
+        this.actionName = "referrers";
+        this.desiredMenu = "editor";
+        this.pageTitle = "referers.todaysReferers";
+    }
+    
+    
+    @Override
+    public short requiredWeblogPermissions() {
+        return PermissionsData.ADMIN;
+    }
+    
+    
+    /**
+     * Show list of weblog referrers.
+     */
+    public String execute() {
+        
+        RefererManager refmgr = RollerFactory.getRoller().getRefererManager();
+        try {
+            setDayHits(refmgr.getDayHits(getActionWeblog()));
+            setReferrers(refmgr.getTodaysReferers(getActionWeblog()));
+        } catch (Exception ex) {
+            log.error("Error getting referrer data for weblog - 
"+getActionWeblog().getHandle(), ex);
+            // TODO: i18n
+            addError("Error loading referrer data");
+        }
+        
+        return LIST;
+    }
+    
+    
+    /**
+     * Reset all referrer counts.
+     */
+    public String reset() {
+        
+        try {
+            RefererManager refmgr = 
RollerFactory.getRoller().getRefererManager();
+            refmgr.clearReferrers(getActionWeblog());
+            RollerFactory.getRoller().flush();
+            
+            CacheManager.invalidate(getActionWeblog());
+        } catch (Exception ex) {
+            log.error("Error resetting referrers", ex);
+            // TODO: i18n
+            addError("Error resetting referrers");
+        }
+        
+        return execute();
+    }
+    
+    
+    /**
+     * Remove selected referrers.
+     */
+    public String remove() {
+        
+        String[] removeIds = getRemoveIds();
+        if(removeIds != null) {
+            RefererManager refmgr = 
RollerFactory.getRoller().getRefererManager();
+            
+            try {
+                RefererData referer = null;
+                for (int i=0; i < removeIds.length; i++) {
+                    referer = refmgr.getReferer(removeIds[i]);
+                    
+                    // make sure referrer belongs to action weblog
+                    if(getActionWeblog().equals(referer.getWebsite())) {
+                        refmgr.removeReferer(referer);
+                    }
+                }
+                
+                // flush
+                RollerFactory.getRoller().flush();
+                
+                // notify caches
+                CacheManager.invalidate(getActionWeblog());
+                
+                addMessage("referers.deletedReferers");
+
+            } catch (Exception ex) {
+                log.error("Error removing referrers", ex);
+                // TODO: i18n
+                addError("Error removing referrers");
+            }
+        } else {
+            addError("referers.noReferersSpecified");
+        }
+        
+        return execute();
+    }
+
+    
+    public List<RefererData> getReferrers() {
+        return referrers;
+    }
+
+    public void setReferrers(List<RefererData> referrers) {
+        this.referrers = referrers;
+    }
+
+    public int getDayHits() {
+        return dayHits;
+    }
+
+    public void setDayHits(int dayHits) {
+        this.dayHits = dayHits;
+    }
+
+    public String[] getRemoveIds() {
+        return removeIds;
+    }
+
+    public void setRemoveIds(String[] removeIds) {
+        this.removeIds = removeIds;
+    }
+    
+}

Modified: roller/trunk/web/WEB-INF/classes/struts.xml
URL: 
http://svn.apache.org/viewvc/roller/trunk/web/WEB-INF/classes/struts.xml?view=diff&rev=538637&r1=538636&r2=538637
==============================================================================
--- roller/trunk/web/WEB-INF/classes/struts.xml (original)
+++ roller/trunk/web/WEB-INF/classes/struts.xml Wed May 16 09:05:35 2007
@@ -288,8 +288,9 @@
             <result name="list" type="tiles">.Resources</result>
         </action>
         
-        <action name="referrers">
-            <result>/roller-ui/authoring/referers.do</result>
+        <action name="referrers!*" method="{1}"
+                class="org.apache.roller.ui.authoring.struts2.Referrers">
+            <result name="list" type="tiles">.Referrers</result>
         </action>
         
         

Added: roller/trunk/web/WEB-INF/jsps/authoring/struts2/Referrers.jsp
URL: 
http://svn.apache.org/viewvc/roller/trunk/web/WEB-INF/jsps/authoring/struts2/Referrers.jsp?view=auto&rev=538637
==============================================================================
--- roller/trunk/web/WEB-INF/jsps/authoring/struts2/Referrers.jsp (added)
+++ roller/trunk/web/WEB-INF/jsps/authoring/struts2/Referrers.jsp Wed May 16 
09:05:35 2007
@@ -0,0 +1,68 @@
+<%--
+  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.
+--%>
+<%@ include file="/WEB-INF/jsps/taglibs-struts2.jsp" %>
+
+<%-- Form allows deleting of referers --%>
+<p class="subtitle">
+    <s:text name="referers.subtitle" >
+        <s:param value="actionWeblog.handle" />
+    </s:text>
+</p>  
+<p class="pagetip">
+    <s:text name="referers.tip" />
+</p>
+
+<s:form action="referrers!remove">
+    <s:hidden name="weblog" />
+    
+    <%-- Table of referers, with check box for each --%>
+    <table width="75%" class="rollertable" >
+        <tr class="rollertable">
+            <th class="rollertable"></th>
+            <th class="rollertable"><s:text name="referers.url" /></th>
+            <th class="rollertable"><s:text name="referers.hits" /></th>
+        </tr>
+        
+        <s:iterator id="ref" value="referrers">
+            <tr>
+                <td class="rollertable">
+                    <input type="checkbox" name="removeIds" value="<s:property 
value="#ref.id" />" />
+                </td>
+                <td class="rollertable">               
+                    <s:property value="#ref.displayUrl" escape="false" />
+                </td>
+                <td class="rollertable"><s:property value="#ref.dayHits" 
/></td>
+            </tr>
+        </s:iterator> 
+        
+    </table>
+    
+    <br />
+    <s:submit key="referers.deleteSelected" />
+    
+</s:form>
+
+<br />
+
+<%-- Form allows reset of day hits --%>
+<h1><s:text name="referers.hitCounters" /></h1>
+<p><s:text name="referers.hits" />: <s:property value="dayHits"/></p>
+<s:form action="referrers!reset">
+    <s:hidden name="weblog" />
+    <s:submit key="referers.reset" />
+</s:form>

Modified: roller/trunk/web/WEB-INF/tiles.xml
URL: 
http://svn.apache.org/viewvc/roller/trunk/web/WEB-INF/tiles.xml?view=diff&rev=538637&r1=538636&r2=538637
==============================================================================
--- roller/trunk/web/WEB-INF/tiles.xml (original)
+++ roller/trunk/web/WEB-INF/tiles.xml Wed May 16 09:05:35 2007
@@ -228,8 +228,8 @@
         <put name="content" 
value="/WEB-INF/jsps/authoring/struts2/Resources.jsp" />
     </definition>
     
-    <definition name=".referers" extends=".tiles-tabbedpage" >
-        <put name="content" value="/WEB-INF/jsps/authoring/referers.jsp" />
+    <definition name=".Referrers" extends=".tiles-tabbedpage" >
+        <put name="content" 
value="/WEB-INF/jsps/authoring/struts2/Referrers.jsp" />
     </definition>
     
     


Reply via email to