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>