Author: sdumitriu
Date: 2008-02-20 02:45:28 +0100 (Wed, 20 Feb 2008)
New Revision: 7861
Modified:
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/web/ObjectRemoveAction.java
xwiki-platform/core/trunk/xwiki-core/src/main/resources/ApplicationResources.properties
Log:
XWIKI-1751: Display a warning message instead of stack trace when no classid
parameter was sent in a ObjectRemove action
Fixed.
Modified:
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/web/ObjectRemoveAction.java
===================================================================
---
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/web/ObjectRemoveAction.java
2008-02-19 23:48:39 UTC (rev 7860)
+++
xwiki-platform/core/trunk/xwiki-core/src/main/java/com/xpn/xwiki/web/ObjectRemoveAction.java
2008-02-20 01:45:28 UTC (rev 7861)
@@ -20,28 +20,90 @@
*/
package com.xpn.xwiki.web;
+import java.io.IOException;
+
+import org.apache.commons.lang.BooleanUtils;
+import org.apache.commons.lang.StringUtils;
+import org.apache.velocity.VelocityContext;
+
import com.xpn.xwiki.XWiki;
import com.xpn.xwiki.XWikiContext;
import com.xpn.xwiki.XWikiException;
import com.xpn.xwiki.doc.XWikiDocument;
import com.xpn.xwiki.objects.BaseObject;
-public class ObjectRemoveAction extends XWikiAction {
- public boolean action(XWikiContext context) throws XWikiException {
+public class ObjectRemoveAction extends XWikiAction
+{
+ protected BaseObject getObject(XWikiDocument doc, XWikiContext context)
+ {
+ ObjectRemoveForm form = (ObjectRemoveForm) context.getForm();
+ BaseObject obj = null;
+
+ String className = form.getClassName();
+ int classId = form.getClassId();
+ if (StringUtils.isBlank(className)) {
+ ((VelocityContext) context.get("vcontext")).put("message",
context.getMessageTool()
+
.get("platform.core.action.objectRemove.noClassnameSpecified"));
+ } else if (classId < 0) {
+ ((VelocityContext) context.get("vcontext")).put("message",
context.getMessageTool()
+ .get("platform.core.action.objectRemove.noObjectSpecified"));
+ } else {
+ obj = doc.getObject(className, classId);
+ if (obj == null) {
+ ((VelocityContext) context.get("vcontext")).put("message",
context.getMessageTool()
+ .get("platform.core.action.objectRemove.invalidObject"));
+ }
+ }
+ return obj;
+ }
+ /**
+ * [EMAIL PROTECTED]
+ *
+ * @see XWikiAction#action(XWikiContext)
+ */
+ public boolean action(XWikiContext context) throws XWikiException
+ {
XWiki xwiki = context.getWiki();
XWikiResponse response = context.getResponse();
XWikiDocument doc = context.getDoc();
- XWikiForm form = context.getForm();
-
- String className = ((ObjectRemoveForm) form).getClassName();
- int classId = ((ObjectRemoveForm) form).getClassId();
- BaseObject obj = doc.getObject(className, classId);
+ BaseObject obj = getObject(doc, context);
+ if (obj == null) {
+ return true;
+ }
doc.removeObject(obj);
- xwiki.saveDocument(doc,
context.getMessageTool().get("core.comment.deleteObject"), true, context);
+ xwiki.saveDocument(doc,
context.getMessageTool().get("core.comment.deleteObject"), true,
+ context);
- // forward to edit
- String redirect = Utils.getRedirect("edit", context);
- sendRedirect(response, redirect);
+ if (BooleanUtils.isTrue((Boolean) context.get("ajax"))) {
+ response.setStatus(204);
+ response.setContentLength(0);
+ } else {
+ // forward to edit
+ String redirect = Utils.getRedirect("edit", context);
+ sendRedirect(response, redirect);
+ }
return false;
- }
+ }
+
+ /**
+ * [EMAIL PROTECTED]
+ *
+ * @see XWikiAction#render(XWikiContext)
+ */
+ public String render(XWikiContext context) throws XWikiException
+ {
+ if (BooleanUtils.isTrue((Boolean) context.get("ajax"))) {
+ XWikiResponse response = context.getResponse();
+ response.setStatus(409);
+ response.setContentType("text/plain");
+ try {
+ response.getWriter().write("failed");
+ response.setContentLength(6);
+ } catch (IOException e) {
+ }
+ return null;
+ } else {
+ return "error";
+ }
+ }
}
Modified:
xwiki-platform/core/trunk/xwiki-core/src/main/resources/ApplicationResources.properties
===================================================================
---
xwiki-platform/core/trunk/xwiki-core/src/main/resources/ApplicationResources.properties
2008-02-19 23:48:39 UTC (rev 7860)
+++
xwiki-platform/core/trunk/xwiki-core/src/main/resources/ApplicationResources.properties
2008-02-20 01:45:28 UTC (rev 7861)
@@ -934,4 +934,7 @@
platform.core.errorMessageType=Error
platform.core.noticeMessageType=Notice
platform.core.warningMessageType=Warning
-platform.core.invalidUrl=This is not a valid URL
\ No newline at end of file
+platform.core.invalidUrl=This is not a valid URL
+platform.core.action.objectRemove.noClassnameSpecified=No object type
specified.
+platform.core.action.objectRemove.noObjectSpecified=No object specified.
+platform.core.action.objectRemove.invalidObject=Invalid object specified.
\ No newline at end of file
_______________________________________________
notifications mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/notifications