Author: gmazza
Date: Sat Aug 9 17:14:11 2014
New Revision: 1616995
URL: http://svn.apache.org/r1616995
Log:
CommonPingTargetEdit and PingTargetEditBase merged into PingTargetEdit
Added:
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/PingTargetEdit.java
- copied, changed from r1616975,
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/CommonPingTargetEdit.java
Removed:
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/CommonPingTargetEdit.java
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/common/PingTargetEditBase.java
Modified:
roller/trunk/app/src/main/resources/struts.xml
Copied:
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/PingTargetEdit.java
(from r1616975,
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/CommonPingTargetEdit.java)
URL:
http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/PingTargetEdit.java?p2=roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/PingTargetEdit.java&p1=roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/CommonPingTargetEdit.java&r1=1616975&r2=1616995&rev=1616995&view=diff
==============================================================================
---
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/CommonPingTargetEdit.java
(original)
+++
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/admin/PingTargetEdit.java
Sat Aug 9 17:14:11 2014
@@ -18,36 +18,132 @@
package org.apache.roller.weblogger.ui.struts2.admin;
-import java.util.Collections;
-import java.util.List;
+import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.apache.roller.weblogger.pojos.GlobalPermission;
-import org.apache.roller.weblogger.ui.struts2.common.PingTargetEditBase;
+import org.apache.roller.weblogger.WebloggerException;
+import org.apache.roller.weblogger.business.WebloggerFactory;
+import org.apache.roller.weblogger.business.pings.PingTargetManager;
+import org.apache.roller.weblogger.pojos.PingTarget;
+import org.apache.roller.weblogger.ui.struts2.common.PingTargetFormBean;
+import org.apache.roller.weblogger.ui.struts2.util.UIAction;
/**
* Add or modify a common ping target.
*/
-public class CommonPingTargetEdit extends PingTargetEditBase {
+public class PingTargetEdit extends UIAction {
- private static Log log = LogFactory.getLog(CommonPingTargetEdit.class);
+ private static Log log = LogFactory.getLog(PingTargetEdit.class);
- public CommonPingTargetEdit() {
+ // ping target we are working on, if any
+ private PingTarget pingTarget = null;
+
+ // a bean for managing submitted data
+ private PingTargetFormBean bean = new PingTargetFormBean();
+
+ public PingTargetEdit() {
this.desiredMenu = "admin";
this.pageTitle = "pingTarget.pingTarget";
}
- public List<String> requiredGlobalPermissionActions() {
- return Collections.singletonList(GlobalPermission.ADMIN);
- }
-
// no weblog required
public boolean isWeblogRequired() {
return false;
}
- protected Log getLogger() {
- return log;
+ public void myPrepare() {
+ PingTargetManager pingTargetMgr =
WebloggerFactory.getWeblogger().getPingTargetManager();
+ if(!StringUtils.isEmpty(getBean().getId())) {
+ try {
+ pingTarget = pingTargetMgr.getPingTarget(getBean().getId());
+ } catch (WebloggerException ex) {
+ log.error("Error looking up ping target - "+getBean().getId());
+ }
+ if(pingTarget == null) {
+ addError("pingTarget.notFound", getBean().getId());
+ }
+ } else {
+ addError("pingTarget.unspecified");
+ }
+ }
+
+ public String execute() {
+ if(!hasActionErrors()) {
+ // load bean with data from ping target
+ getBean().copyFrom(pingTarget);
+ } else {
+ // if we already have an error then that means we couldn't load
+ // an existing ping target to work on, so return ERROR result
+ return ERROR;
+ }
+ return INPUT;
+ }
+
+ /**
+ * Save ping target.
+ */
+ public String save() {
+
+ if(hasActionErrors()) {
+ // if we already have an error then that means we couldn't load
+ // an existing ping target to work on, so return ERROR result
+ return INPUT;
+ }
+
+ // copy data from form into ping target
+ getBean().copyTo(pingTarget);
+
+ // Call private helper to validate ping target
+ // If there are errors, go back to the target edit page.
+ myValidate(pingTarget);
+
+ if (!hasActionErrors()) {
+ try {
+ // Appears to be ok. Save it and flush.
+ PingTargetManager pingTargetMgr =
WebloggerFactory.getWeblogger().getPingTargetManager();
+ pingTargetMgr.savePingTarget(pingTarget);
+ WebloggerFactory.getWeblogger().flush();
+
+ addMessage("pingTarget.saved");
+ } catch (WebloggerException ex) {
+ log.error("Error saving ping target", ex);
+ addError("pingTarget.saved.error");
+ }
+ }
+
+ return INPUT;
}
+
+ /**
+ * Private helper to validate a ping target.
+ */
+ protected void myValidate(PingTarget pingTarget) {
+
+ try {
+ PingTargetManager pingTargetMgr =
WebloggerFactory.getWeblogger().getPingTargetManager();
+ if (!pingTargetMgr.isNameUnique(pingTarget)) {
+ addError("pingTarget.nameNotUnique");
+ }
+
+ if (!pingTargetMgr.isUrlWellFormed(pingTarget)) {
+ addError("pingTarget.malformedUrl");
+ } else if (!pingTargetMgr.isHostnameKnown(pingTarget)) {
+ addError("pingTarget.unknownHost");
+ }
+ } catch (WebloggerException ex) {
+ log.error("Error validating ping target", ex);
+ addError("pingTarget.saved.error");
+ }
+ }
+
+ public PingTargetFormBean getBean() {
+ return bean;
+ }
+
+ public void setBean(PingTargetFormBean bean) {
+ this.bean = bean;
+ }
+
+
}
Modified: roller/trunk/app/src/main/resources/struts.xml
URL:
http://svn.apache.org/viewvc/roller/trunk/app/src/main/resources/struts.xml?rev=1616995&r1=1616994&r2=1616995&view=diff
==============================================================================
--- roller/trunk/app/src/main/resources/struts.xml (original)
+++ roller/trunk/app/src/main/resources/struts.xml Sat Aug 9 17:14:11 2014
@@ -201,7 +201,7 @@
</action>
<action name="commonPingTargetEdit!*" method="{1}"
-
class="org.apache.roller.weblogger.ui.struts2.admin.CommonPingTargetEdit">
+
class="org.apache.roller.weblogger.ui.struts2.admin.PingTargetEdit">
<param name="actionName">commonPingTargetEdit</param>
<result name="input" type="tiles">.PingTargetEdit</result>
<result name="error" type="chain">commonPingTargets</result>