MarkLogicPowerPointAddin.js
Summary
API documentation for MarkLogicPowerPointAddin.js
http://www.marklogic.com
Version: 2.0-1
Author: Pete Aven pete.aven@marklogic.com
if (typeof(ml_scripts) == 'undefined') var ml_scripts = new Object();
ml_js_import('js/json2.js');
function ml_js_import(jsFile) {
if (ml_scripts[jsFile] != null) return;
var scriptElt = document.createElement('script');
scriptElt.type = 'text/javascript';
scriptElt.src = jsFile;
document.getElementsByTagName('head')[0].appendChild(scriptElt);
ml_scripts[jsFile] = jsFile;
}
function MLA(){
this.getClassName = function(){
return "MLA";
}
}
MLA.version = { "release" : "2.0" };
MLA.SimpleRange = function(begin,finish){
this.start = begin;
this.end = finish;
};
String.prototype.trim = function() {
return this.replace(/^\s+|\s+$/g,"");
}
MLA.getVersion = function()
{
return MLA.version.release;
}
MLA.errorCheck = function(message)
{
var returnVal = null;
var errStr = message.substring(0,6);
var len = message.length;
var errMsg = message.substring(7,len);
if(errStr=="error:")
returnVal=errMsg;
return returnVal;
}
MLA.createXMLDOM = function(xmlstring)
{
try{
var xmlDom = new ActiveXObject("Microsoft.XMLDOM");
xmlDom.async=false;
xmlDom.loadXML(xmlstring);
}
catch(err)
{
throw("Error: Not able to create XMLDOM from string. Make sure XML is well formed. ");
}
if(xmlDom.text=="" && xmlDom.xml == "")
throw("Error: Not able to create XMLDOM from string. Make sure XML is well formed. ");
return xmlDom;
}
MLA.unescapeXMLCharEntities = function(stringtoconvert)
{
var unescaped = "";
unescaped = stringtoconvert.replace(/&/g,"&");
unescaped = unescaped.replace(/</g, "<");
unescaped = unescaped.replace(/>/g, ">");
unescaped = unescaped.replace(/"/g,"\"");
unescaped = unescaped.replace(/'/g,"\'");
return unescaped;
}
/** @ignore */
MLA.escapeXMLCharEntities = function(stringtoconvert)
{
var escaped = "";
escaped = stringtoconvert.replace(/&/g,"&");
escaped = escaped.replace(/</g, "<");
escaped = escaped.replace(/>/g, ">");
escaped = escaped.replace(/\"/g,""");
escaped = escaped.replace(/\'/g, "'");
return escaped;
}
MLA.getCustomXMLPartIds = function()
{
var partIds = window.external.getCustomXMLPartIds();
var errMsg = MLA.errorCheck(partIds);
if(errMsg!=null)
throw("Error: Not able to get CustomXMLPartIds; "+errMsg);
var customPartIds = partIds.split(" ");
if(customPartIds.length ==1)
{
if (customPartIds[0] == null || customPartIds[0] == "")
{
customPartIds.length = 0;
}
}
return customPartIds;
}
MLA.getCustomXMLPart = function(customXMLPartId)
{
var customXMLPart = window.external.getCustomXMLPart(customXMLPartId);
var errMsg = MLA.errorCheck(customXMLPart);
if(errMsg!=null){
throw("Error: Not able to getCustomXMLPart; "+errMsg);
}
var v_cp;
if(customXMLPart=="")
{
v_cp=null;
}
else
{
v_cp = MLA.createXMLDOM(customXMLPart);
}
return v_cp;
}
MLA.addCustomXMLPart = function(customPartXml)
{
var v_customPart ="";
if(customPartXml.xml)
{
v_customPart=customPartXml.xml;
}
else
{
v_customPart=customPartXml
}
var newId = window.external.addCustomXMLPart(v_customPart);
var errMsg = MLA.errorCheck(newId);
if(errMsg!=null)
throw("Error: Not able to addCustomXMLPart; "+errMsg);
if(newId =="")
newId=null;
return newId;
}
MLA.deleteCustomXMLPart = function(customXMLPartId)
{
var deletedPart = window.external.deleteCustomXMLPart(customXMLPartId);
var errMsg = MLA.errorCheck(deletedPart);
if(errMsg!=null)
throw("Error: Not able to deleteCustomXMLPart; "+errMsg);
if(deletedPart=="")
deletedPart = null;
}
MLA.isArray = function(obj)
{
return obj.constructor == Array;
}
MLA.getConfiguration = function()
{
var version = window.external.getAddinVersion();
var color = window.external.getOfficeColor();
var webUrl = window.external.getBrowserURL();
if(version == "" || color == "" || webUrl == "")
throw("Error: Not able to access configuration info.");
MLA.config = {
"version":version,
"url":webUrl,
"theme":color
};
return MLA.config;
}
MLA.insertImage = function(url,user,pwd)
{
var inserted = window.external.InsertImage(url,user,pwd);
var errMsg = MLA.errorCheck(inserted);
if(errMsg!=null)
throw("Error: Not able to insertImage; "+errMsg);
return inserted;
}
MLA.insertSlide = function(tmpPath, filename, slideidx, url, user, pwd,retain)
{
var msg = window.external.insertSlide(tmpPath,filename,slideidx,url,user,pwd,retain);
var errMsg = MLA.errorCheck(msg);
if(errMsg!=null)
throw("Error: Not able to insertSlide; "+errMsg);
return msg;
}
MLA.getTempPath = function()
{
var msg=window.external.getTempPath();
var errMsg = MLA.errorCheck(msg);
if(errMsg!=null)
throw("Error: Not able to getTempPath; "+errMsg);
return msg;
}
MLA.openPPTX = function(tmpPath, docuri, url, user, pwd)
{
var msg = window.external.openPPTX(tmpPath, docuri, url, user, pwd);
var errMsg = MLA.errorCheck(msg);
if(errMsg!=null)
throw("Error: Not able to openPPTX; "+errMsg);
return msg;
}
MLA.insertText = function(text)
{
var msg = window.external.insertText(text);
var errMsg = MLA.errorCheck(msg);
if(errMsg!=null)
throw("Error: Not able to insertText; "+errMsg);
return msg;
}
MLA.embedOLE = function(tmpPath, title, url, usr, pwd)
{
var msg = window.external.embedOLE(tmpPath, title, url, usr, pwd);
var errMsg = MLA.errorCheck(msg);
if(errMsg!=null)
throw("Error: Not able to embedOLE; "+errMsg);
return msg;
}
MLA.useSaveFileDialog =function()
{
var msg=window.external.useSaveFileDialog();
var errMsg = MLA.errorCheck(msg);
if(errMsg!=null)
throw("Error: Not able to embedOLE; "+errMsg);
return msg;
}
MLA.convertFilenameToImageDir = function(filename)
{
var msg=window.external.convertFilenameToImageDir(filename);
var errMsg = MLA.errorCheck(msg);
if(errMsg!=null)
throw("Error: Not able to convert filename to image directory name; "+errMsg);
return msg;
}
MLA.getPresentationPath = function()
{
var msg=window.external.getPresentationPath();
var errMsg = MLA.errorCheck(msg);
if(errMsg!=null)
throw("Error: Not able to getPresentationPath; "+errMsg);
return msg;
}
MLA.getPresentationName = function()
{
var msg=window.external.getPresentationName();
var errMsg = MLA.errorCheck(msg);
if(errMsg!=null)
throw("Error: Not able to getPresentationName; "+errMsg);
return msg;
}
MLA.saveLocalCopy = function(filename)
{
var msg = window.external.saveLocalCopy(filename);
var errMsg = MLA.errorCheck(msg);
if(errMsg!=null)
throw("Error: Not able to saveLocalCopy; "+errMsg);
return msg;
}
MLA.saveActivePresentation = function(filename, url, user, pwd)
{
var msg=window.external.saveActivePresentation(filename, url, user, pwd);
var errMsg = MLA.errorCheck(msg);
if(errMsg!=null)
throw("Error: Not able to saveActivePresentation; "+errMsg);
return msg;
}
MLA.saveImages = function(imgdir, url, user, pwd)
{
var msg = window.external.saveImages(imgdir,url,user,pwd);
var errMsg = MLA.errorCheck(msg);
if(errMsg!=null)
throw("Error: Not able to saveImages; "+errMsg);
return msg;
}
MLA.saveActivePresentationAndImages = function(saveasdir, saveasname, url, user, pwd)
{
var msg=window.external.saveActivePresentationAndImages(saveasdir, saveasname, url, user, pwd);
var errMsg = MLA.errorCheck(msg);
if(errMsg!=null)
throw("Error: Not able to saveActivePresentationAndImages; "+errMsg);
return msg;
}
MLA.insertJSONTable = function(table)
{
var msg=window.external.insertJSONTable(table);
var errMsg = MLA.errorCheck(msg);
if(errMsg!=null)
throw("Error: Not able to insertJSONTable(); "+errMsg);
return msg;
}
MLA.getSlideName = function()
{
var msg = window.external.getSlideName();
var errMsg = MLA.errorCheck(msg);
if(errMsg!=null)
throw("Error: Not able to getSlideName(); "+errMsg);
return msg;
}
MLA.getSlideIndex = function()
{
var msg = window.external.getSlideIndex();
var errMsg = MLA.errorCheck(msg);
if(errMsg!=null)
throw("Error: Not able to getSlideIndex(); "+errMsg);
return msg;
}
MLA.getPresentationSlideCount = function()
{
var msg = window.external.getPresentationSlideCount();
var errMsg = MLA.errorCheck(msg);
if(errMsg!=null)
throw("Error: Not able to getPresentationSlideCount(); "+errMsg);
return msg;
}
MLA.addPresentationTag = function(tagName, tagValue)
{
var msg = window.external.addPresentationTag(tagName,tagValue);
var errMsg = MLA.errorCheck(msg);
if(errMsg!=null)
throw("Error: Not able to addPresentationTag(); "+errMsg);
return msg;
}
MLA.deletePresentationTag = function(tagName)
{
var msg = window.external.deletePresentationTag(tagName);
var errMsg = MLA.errorCheck(msg);
if(errMsg!=null)
throw("Error: Not able to deletePresentationTag(); "+errMsg);
return msg;
}
MLA.addSlideTag = function(slideIndex, tagName, tagValue)
{
var msg = window.external.addSlideTag(slideIndex, tagName, tagValue);
var errMsg = MLA.errorCheck(msg);
if(errMsg!=null)
throw("Error: Not able to addSlideTag(); "+errMsg);
return msg;
}
MLA.deleteSlideTag = function(slideIndex, tagName)
{
var msg = window.external.deleteSlideTag(slideIndex, tagName);
var errMsg = MLA.errorCheck(msg);
if(errMsg!=null)
throw("Error: Not able to deleteSlideTag(); "+errMsg);
return msg;
}
MLA.addShapeTag = function(slideIndex, shapeName, tagName, tagValue)
{
var msg = window.external.addShapeTag(slideIndex, shapeName, tagName, tagValue);
var errMsg = MLA.errorCheck(msg);
if(errMsg!=null)
throw("Error: Not able to addShapeTag(); "+errMsg);
return msg;
}
MLA.deleteShapeTag = function(slideIndex, shapeName, tagName)
{
var msg = window.external.deleteShapeTag(slideIndex, shapeName, tagName);
var errMsg = MLA.errorCheck(msg);
if(errMsg!=null)
throw("Error: Not able to deleteShapeTag(); "+errMsg);
return msg;
}
MLA.addShapeTags = function(slideIndex, shapeName, jsonTags)
{
var msg = window.external.addShapeTags(slideIndex, shapeName, jsonTags);
var errMsg = MLA.errorCheck(msg);
if(errMsg!=null)
throw("Error: Not able to addShapeTags(); "+errMsg);
return msg;
}
MLA.addSlideTags = function(slideIndex, jsonTags)
{
var msg = window.external.addSlideTags(slideIndex, jsonTags);
var errMsg = MLA.errorCheck(msg);
if(errMsg!=null)
throw("Error: Not able to addSlideTags(); "+errMsg);
return msg;
}
MLA.addPresentationTags = function(jsonTags)
{
var msg = window.external.addPresentationTags(jsonTags);
var errMsg = MLA.errorCheck(msg);
if(errMsg!=null)
throw("Error: Not able to addPresentationTags(); "+errMsg);
return msg;
}
MLA.addShapeRangeTag = function(tagName, tagValue)
{
var msg = window.external.addShapeRangeTag(tagName, tagValue);
var errMsg = MLA.errorCheck(msg);
if(errMsg!=null)
throw("Error: Not able to addShapeRangeTag(); "+errMsg);
return msg;
}
MLA.getShapeRangeCount = function()
{
var msg = window.external.getShapeRangeCount();
var errMsg = MLA.errorCheck(msg);
if(errMsg!=null)
throw("Error: Not able to getShapeRangeCount(); "+errMsg);
return msg;
}
MLA.getShapeRangeName = function()
{
var msg = window.external.getShapeRangeName();
var errMsg = MLA.errorCheck(msg);
if(errMsg!=null)
throw("Error: Not able to getShapeRangeName(); "+errMsg);
return msg;
}
MLA.setShapeRangeName = function(slideIndex, origName,newName)
{
var msg = window.external.setShapeRangeName(slideIndex, origName, newName);
var errMsg = MLA.errorCheck(msg);
if(errMsg!=null)
throw("Error: Not able to setShapeRangeName(); "+errMsg);
return msg;
}
MLA.getShapeRangeShapeNames = function()
{
var msg = window.external.getShapeRangeShapeNames();
var errMsg = MLA.errorCheck(msg);
var tokens = msg.split("|");
if(errMsg!=null)
throw("Error: Not able to getShapeRangeShapeNames(); "+errMsg);
return tokens;
}
MLA.getSlideShapeNames = function(slideIndex)
{
var msg = window.external.getSlideShapeNames(slideIndex);
var errMsg = MLA.errorCheck(msg);
var tokens = msg.split("|");
if(errMsg!=null)
throw("Error: Not able to getShapeRangeShapeNames(); "+errMsg);
return tokens;
}
MLA.getShapeRangeInfoORIG = function(shapeName)
{
var msg = window.external.getShapeRangeInfo(shapeName);
var errMsg = MLA.errorCheck(msg);
if(errMsg!=null)
throw("Error: Not able to getShapeRangeInfo(); "+errMsg);
var shape = eval('('+msg+')');
return shape;
}
MLA.getShapeRangeView = function(slideIndex, shapeName)
{
var msg = window.external.getShapeRangeView(slideIndex, shapeName);
var errMsg = MLA.errorCheck(msg);
if(errMsg!=null)
throw("Error: Not able to getShapeRangeView(); "+errMsg);
try{
var tmpshape = eval('('+msg+')');
}catch(err)
{
alert("ERROR: " +err.description);
}
var shapeTags = tmpshape.tags;
var shapeParas = tmpshape.paragraphs;
var picFormat = tmpshape.pictureFormat;
delete tmpshape.tags;
delete tmpshape.paragraphs;
delete tmpshape.pictureFormat;
var shapeRangeView = new MLA.ShapeRangeView();
shapeRangeView.shape = tmpshape;
shapeRangeView.tags = shapeTags;
shapeRangeView.paragraphs = shapeParas;
shapeRangeView.pictureFormat = picFormat;
return shapeRangeView;
}
MLA.getPresentationTags = function()
{
var msg = window.external.getPresentationTags();
var errMsg = MLA.errorCheck(msg);
if(errMsg!=null)
throw("Error: Not able to getPresentationTags(); "+errMsg);
var tags = eval('('+msg+')');
return tags;
}
MLA.getSlideTags = function(slideIndex)
{
var msg = window.external.getSlideTags(slideIndex);
var errMsg = MLA.errorCheck(msg);
if(errMsg!=null)
throw("Error: Not able to getSlideTags(); "+errMsg);
var tags = eval('('+msg+')');
return tags;
}
MLA.addShape = function(slideIndex, shapeRangeView)
{
var msg="";
try
{
var shape = MLA.jsonStringify(shapeRangeView.shape);
var tags = MLA.jsonStringify(shapeRangeView.tags);
var paragraphs = MLA.jsonGetParagraphs(shapeRangeView.paragraphs);
msg=window.external.addShape(slideIndex,shape, tags, paragraphs);
var errMsg = MLA.errorCheck(msg);
if(errMsg!=null)
throw("Error: Not able to addShape(); "+errMsg);
}catch(err)
{
throw("Error: Not able to addShape() JS; "+ err.description);
}
return msg;
}
MLA.addSlide = function(slideIndex, customLayout)
{
var msg = window.external.addSlide(slideIndex, customLayout);
var errMsg = MLA.errorCheck(msg);
if(errMsg!=null)
throw("Error: Not able to addSlide(); "+errMsg);
return msg;
}
MLA.deleteSlide = function(slideIndex)
{
var msg = window.external.deleteSlide(slideIndex);
var errMsg = MLA.errorCheck(msg);
if(errMsg!=null)
throw("Error: Not able to deleteSlide(); "+errMsg);
return msg;
}
MLA.deleteShape = function(slideIndex, shapeName)
{
var msg = window.external.deleteShape(slideIndex, shapeName);
var errMsg = MLA.errorCheck(msg);
if(errMsg!=null)
throw("Error: Not able to deleteShape(); "+errMsg);
return msg;
}
MLA.jsonGetParagraphs = function(paragraphs)
{
var jsonPara = "{";
jsonPara += "\"paragraphAlignment\": [";
for(var j =0;j<paragraphs.length;j++)
{
var para = paragraphs[j];
jsonPara += "\""+para.paragraphAlignment+"\",";
}
if(paragraphs.length>=1)
jsonPara = jsonPara.substring(0,jsonPara.length-1);
jsonPara += "],";
jsonPara += "\"paragraphBulletType\": [";
for(var j =0;j<paragraphs.length;j++)
{
var para = paragraphs[j];
jsonPara += "\""+para.paragraphBulletType+"\",";
}
if(paragraphs.length>=1)
jsonPara = jsonPara.substring(0,jsonPara.length-1);
jsonPara += "],";
jsonPara += "\"runs\": [";
var runLength;
for(var k=0; k<paragraphs.length;k++)
{
var para = paragraphs[k];
runLength=para.runs.length;
for(var l =0;l<para.runs.length;l++)
{
var run = para.runs[l];
jsonPara+="["+"\""+k+"\",\""+run.fontName+"\",\""+
run.fontSize+"\",\""+
run.fontRGB+"\",\""+
run.fontItalic +"\",\""+
run.fontUnderline +"\",\""+
run.fontBold +"\",\""+
run.text+"\"],";
}
}
if(runLength>=1)
jsonPara = jsonPara.substring(0,jsonPara.length-1);
jsonPara +="]}";
return jsonPara;
}
MLA.jsonStringify = function(jsObject, replacer)
{
var jsonString;
try
{
jsonString = JSON.stringify(jsObject)
}
catch(err)
{
throw("Error: Not able to stringify(); "+err.description);
}
return jsonString;
}
MLA.jsonParse = function(jsonString, reviver)
{
var jsonObj;
try
{
jsonObj = JSON.parse(jsonString)
}
catch(err)
{
throw("Error: Not able to parse(); "+err.description);
}
return jsonObj;
}
MLA.setPictureFormat = function(slideIndex, shapeName, jsonPicFormat)
{
msg=window.external.setPictureFormat(slideIndex, shapeName, jsonPicFormat);
var errMsg = MLA.errorCheck(msg);
if(errMsg!=null)
throw("Error: Not able to addShape(); "+errMsg);
return msg;
}
MLA.ShapeRangeView = function()
{
var shape;
var paragraphs;
var tags;
var pictureFormat;
}
Documentation generated by
JSDoc on Thu Sep 23 16:38:15 2010