1 28 29 30 package com.opencms.workplace; 31 32 import org.opencms.file.CmsObject; 33 import org.opencms.file.CmsResource; 34 import org.opencms.file.CmsResourceFilter; 35 import org.opencms.main.CmsException; 36 37 import com.opencms.core.I_CmsSession; 38 import com.opencms.legacy.CmsLegacyException; 39 import com.opencms.legacy.CmsXmlTemplateLoader; 40 41 import java.util.Hashtable ; 42 43 52 53 public class CmsUndelete extends CmsWorkplaceDefault { 54 55 66 67 public byte[] getContent(CmsObject cms, String templateFile, String elementName, 68 Hashtable parameters, String templateSelector) throws CmsException { 69 I_CmsSession session = CmsXmlTemplateLoader.getSession(cms.getRequestContext(), true); 70 CmsXmlWpTemplateFile xmlTemplateDocument = new CmsXmlWpTemplateFile(cms, templateFile); 71 72 String initial = (String )parameters.get(CmsWorkplaceDefault.C_PARA_INITIAL); 74 if(initial != null) { 75 session.removeValue(CmsWorkplaceDefault.C_PARA_RESOURCE); 77 session.removeValue("lasturl"); 78 } 79 80 String lasturl = getLastUrl(cms, parameters); 81 String filename = (String )parameters.get(CmsWorkplaceDefault.C_PARA_RESOURCE); 82 if(filename != null) { 83 session.putValue(CmsWorkplaceDefault.C_PARA_RESOURCE, filename); 84 } 85 filename = (String )session.getValue(CmsWorkplaceDefault.C_PARA_RESOURCE); 86 CmsResource file = null; 87 if (filename.endsWith("/")){ 88 file = cms.readFolder(filename, CmsResourceFilter.ALL); 89 } else { 90 file = cms.readResource(filename, CmsResourceFilter.ALL); 91 } 92 try{ 93 cms.undeleteResource(cms.getSitePath(file)); 94 session.removeValue(CmsWorkplaceDefault.C_PARA_RESOURCE); 95 try { 98 if(lasturl == null || "".equals(lasturl)) { 99 CmsXmlTemplateLoader.getResponse(cms.getRequestContext()).sendCmsRedirect(getConfigFile(cms).getWorkplaceActionPath() 100 + CmsWorkplaceAction.getExplorerFileUri(CmsXmlTemplateLoader.getRequest(cms.getRequestContext()).getOriginalRequest())); 101 }else { 102 CmsXmlTemplateLoader.getResponse(cms.getRequestContext()).sendRedirect(lasturl); 103 } 104 }catch(Exception e) { 105 throw new CmsLegacyException("Redirect fails :" 106 + getConfigFile(cms).getWorkplaceActionPath() 107 + CmsWorkplaceAction.getExplorerFileUri(CmsXmlTemplateLoader.getRequest(cms.getRequestContext()).getOriginalRequest()), e); 108 } 109 return null; 110 } catch(CmsException e){ 111 session.removeValue(CmsWorkplaceDefault.C_PARA_RESOURCE); 112 xmlTemplateDocument.setData("details", CmsException.getStackTraceAsString(e)); 113 xmlTemplateDocument.setData("lasturl", lasturl); 114 return startProcessing(cms, xmlTemplateDocument, "", parameters, "error"); 115 } 116 } 119 120 130 131 public boolean isCacheable(CmsObject cms, String templateFile, String elementName, 132 Hashtable parameters, String templateSelector) { 133 return false; 134 } 135 } 136 | Popular Tags |