ExportFromDateGroovy
ExportFromDateGroovy
Last modified by Hal Eden on 2010/08/19 07:32
import com.xpn.xwiki.*;
import com.xpn.xwiki.plugin.packaging.*;
import org.apache.commons.lang.StringUtils;
public class Test3 {
def result = ""
public addToResult(str) {
result = "${result}${str}n";
}
public String export(context, xwiki, request, response) {
result = "";
addToResult("Starting export")
addToResult("Creating package")
def pack = new Package()
if (request.versions=="1")
pack.setWithVersions(true)
else
pack.setWithVersions(false)
if (request.backup=="1")
pack.setBackupPack(true)
else
pack.setBackupPack(false)
addToResult("Adding documents")
def sql = ""
if (request.date!="") {
def sqldate = "doc.date>'$request.date'"
if (sql=="")
sql += "where ${sqldate}"
else
sql += " and ${sqldate}"
}
if (request.space!="") {
def spacelist1 = StringUtils.split(request.space," ,")
def spacelist = StringUtils.join(spacelist1,"','")
def sqlspace = "doc.space in ('${spacelist}')"
if (sql=="")
sql += "where ${sqlspace}"
else
sql += " and ${sqlspace}"
}
addToResult(sql);
def start = 0
def nb = 0
if (request.start) {
start = xwiki.parseInt(request.start)
if (request.end) {
nb = xwiki.parseInt(request.end) - start + 1
}
}
for(docName in xwiki.searchDocuments(sql, nb, start)){
addToResult("* ${docName}")
if (request.confirm)
pack.add(xwiki.getDocument(docName).document, 0, context.context)
}
if (request.confirm) {
try {
response.setContentType("application/xwiki")
pack.export(response.getOutputStream(), context.context)
context.setFinished(true)
} catch (Exception e) {
addToResult("Error exporting")
addToResult(e.getMessage())
}
addToResult("Finished.")
}
return result;
}
}