Merge pull request #2859 from cmbirk/develop

Check for SOffice before removing export links
This commit is contained in:
John McLear 2015-12-21 16:12:25 +00:00
commit 41ced5e239
4 changed files with 51 additions and 14 deletions

View File

@ -1234,6 +1234,8 @@ function handleClientReady(client, message)
"serverTimestamp": new Date().getTime(),
"userId": author,
"abiwordAvailable": settings.abiwordAvailable(),
"sofficeAvailable": settings.sofficeAvailable(),
"exportAvailable": settings.exportAvailable(),
"plugins": {
"plugins": plugins.plugins,
"parts": plugins.parts,

View File

@ -13,9 +13,9 @@ exports.expressCreateServer = function (hook_name, args, cb) {
}
//if abiword is disabled, and this is a format we only support with abiword, output a message
if (settings.abiword == null &&
if (settings.exportAvailable() == "no" &&
["odt", "pdf", "doc"].indexOf(req.params.type) !== -1) {
res.send("Abiword is not enabled at this Etherpad instance. Set the path to Abiword in settings.json to enable this feature");
res.send("This export is not enabled at this Etherpad instance. Set the path to Abiword or SOffice in settings.json to enable this feature");
return;
}

View File

@ -222,6 +222,27 @@ exports.abiwordAvailable = function()
}
};
exports.sofficeAvailable = function () {
if(exports.soffice != null) {
return os.type().indexOf("Windows") != -1 ? "withoutPDF": "yes";
} else {
return "no";
}
};
exports.exportAvailable = function () {
var abiword = exports.abiwordAvailable();
var soffice = exports.sofficeAvailable();
if(abiword == "no" && soffice == "no") {
return "no";
} else if ((abiword == "withoutPDF" && soffice == "no") || (abiword == "no" && soffice == "withoutPDF")) {
return "withoutPDF";
} else {
return "yes";
}
};
// Provide git version if available
exports.getGitCommit = function() {
var version = "";
@ -375,6 +396,20 @@ exports.reloadSettings = function reloadSettings() {
}
}
if(exports.soffice) {
fs.exists(exports.soffice, function (exists) {
if(!exists) {
var sofficeError = "SOffice does not exist at this path, check your settings file";
if(!exports.suppressErrorsInPadText) {
exports.defaultPadText = exports.defaultPadText + "\nError: " + sofficeError + suppressDisableMsg;
}
console.error(sofficeError);
exports.soffice = null;
}
});
}
if (!exports.sessionKey) {
try {
exports.sessionKey = fs.readFileSync("./SESSIONKEY.txt","utf8");

View File

@ -207,8 +207,8 @@ var padimpexp = (function()
// activate action to import in the form
$("#importform").attr('action', pad_root_url + "/import");
//hide stuff thats not avaible if abiword is disabled
if(clientVars.abiwordAvailable == "no")
//hide stuff thats not avaible if abiword/soffice is disabled
if(clientVars.exportAvailable == "no")
{
$("#exportworda").remove();
$("#exportpdfa").remove();
@ -216,7 +216,7 @@ var padimpexp = (function()
$("#importmessageabiword").show();
}
else if(clientVars.abiwordAvailable == "withoutPDF")
else if(clientVars.exportAvailable == "withoutPDF")
{
$("#exportpdfa").remove();