Copy a file attachment or entire page to another location
Get parameters
- pageName = Source page name
- newPageName = Destination page name (optional, defaults to pageName)
- fileName = File to copy (optional - if not specified, copies entire page)
- newFileName = Destination filename (optional, defaults to fileName)
- returnType = Response type: "json" for JSON response, otherwise redirects to Editor
Get examples:
// Simple URL
/OpenForum/Actions/Copy?pageName=/Source&newPageName=/Destination&fileName=file.txt
// Using JSON.get
JSON.get('/OpenForum/Actions/Copy', null,
'pageName=/Source&newPageName=/Destination&fileName=file.txt&returnType=json')
.onSuccess(function(result) {
console.log('Copied:', result);
}).go();
Post parameters (deprecated)
- sourcePageName
- newPageName
- listPageName
Post example:
// Using JSON.post
JSON.post('/OpenForum/Actions/Copy', null,
'sourcePageName=/OldPage&newPageName=/NewPage')
.onSuccess(function(result) {
console.log('Copied!');
}).go();
get.sjs
if(typeof(pageName)=="undefined") {
transaction.setResult(transaction.SHOW_PAGE);
return;
}
try{
var json = false;
var returnType = transaction.getParameter("returnType");
if(returnType!==null && (""+returnType)=="json") {
json = true;
}
var newPageName = transaction.getParameter("newPageName");
var fileName = transaction.getParameter("fileName");
var newFileName = transaction.getParameter("newFileName");
if(newPageName===null) {
newPageName = pageName;
} else {
newPageName = ""+newPageName;
}
transaction.userCanPerformAction(newPageName,"update",true);
if(fileName!==null) {
fileName = ""+fileName;
if(newFileName===null) {
newFileName = fileName;
} else {
newFileName = ""+newFileName;
}
if(fileName===newFileName && pageName===newPageName) {
return;
}
file.copyAttachment(pageName,fileName,newPageName,newFileName);
if(json===false) {
transaction.goToPage("/OpenForum/Editor?pageName="+newPageName);
} else {
transaction.sendJSON(JSON.stringify({result: "ok", message: "Copied "+pageName+"/"+fileName+" to "+newPageName+"/"+newFileName,copied: true}));
}
} else {
//wiki.copyPage(pageName,newPageName,null);
var FileManager = js.getObject("/OpenForum/Actions/Copy","FileManager.sjs");
var log = FileManager.copyPage( pageName,newPageName );
if(json===false) {
transaction.goToPage("/OpenForum/Editor?pageName="+newPageName);
} else {
transaction.sendJSON(JSON.stringify({result: "ok", message: "Copied "+pageName+" to "+newPageName,copied: true,log: log}));
}
}
} catch(e) {
transaction.sendJSON(JSON.stringify({result: "error", message: "Error: "+e+" @ "+e.lineNumber}));
}
Server Side Javascript for POST method
transaction.getPostData();
sourcePageName = transaction.getPostParameter("sourcePageName");
newPageName = transaction.getPostParameter("newPageName");
listPageName = transaction.getPostParameter("listPageName");
transaction.userCanPerformAction(newPageName,"update",true);
if(listPageName!=null)
{
transaction.userCanPerformAction(listPageName,"update",true);
}
wiki.copyPage(sourcePageName,newPageName,listPageName);
transaction.goToPage("/OpenForum/Actions/Edit?pageName=" newPageName);