AAIT#40332 Embedden plattegrond in e-mail

svn path=/Website/branches/v2017.1/; revision=34244
This commit is contained in:
Jos Groot Lipman
2017-06-13 11:12:21 +00:00
parent 522a49a906
commit 6796e7b6f5
4 changed files with 73 additions and 34 deletions

View File

@@ -25,7 +25,16 @@ var API = new API_func();
// TODO checkAuthorization("WEB_PUOxxx") ?
var flexcode = getQParam("flexcode");
if (flexcode.match(/^M=CAD/))
{
// <xsl:element name="img">
// <xsl:attribute name="frc">M=CAD&amp;labelPos=2&amp;vKey=<xsl:value-of select="//afspraak/plaats/regio/district/locatie/gebouw/verdieping/key"/>&amp;highlight=<xsl:value-of select="//afspraak/plaats/regio/district/locatie/gebouw/verdieping/ruimte/key"/>&amp;mode=0&amp;discs=981&amp;sizeX=700&amp;sizeY=400&amp;offsetX=10&amp;offsetY=10&amp;scale=950&amp;paperColor=16777215
// </xsl:attribute>
// </xsl:element>
Server.Transfer(rooturl + "/APPL/CAD/mySlnk2IMG.asp"); // Die kan het ook wel oplossen
}
// Else gewone flexfiles
var props = flexProps2(flexcode);
__Log(props);

View File

@@ -536,7 +536,7 @@ if (dwfPath)
labelLayers : lLabel,
minArea : S("fg_contour_minArea"),
maximize : S("fg_maximize"),
tempFolder : Server.MapPath("../../Temp"),
tempFolder : Server.MapPath(rooturl + "/Temp"),
keepTemp : (__Logging & 8) == 8
});
mySLNKDWF.Process();

View File

@@ -102,43 +102,56 @@ function STR2Stream(xmlstr, xslfile, Stream, params)
while (startPos > 4 && eindPos > startPos)
{
var flexcode = p_bodyhtml.substring(startPos + 1, eindPos);
var props = flexProps2(flexcode);
if (!props.files.length)
{ // Geen bestanden gevonden? Dan hele img-tag gewoon er uit halen
var eindPos = p_bodyhtml.indexOf(">", startPos + 2);
// Let op: door de -9 werkt het alleen als de frc het eerste attribuut is van de img
var newbody = p_bodyhtml.substr(0, startPos - 9) + p_bodyhtml.substr(eindPos + 1);
if (flexcode.match(/^M=CAD/)) // Die roepen we gewoon on-the-fly op
{
// <xsl:element name="img">
// <xsl:attribute name="frc">M=CAD&amp;labelPos=2&amp;vKey=<xsl:value-of select="//afspraak/plaats/regio/district/locatie/gebouw/verdieping/key"/>&amp;highlight=<xsl:value-of select="//afspraak/plaats/regio/district/locatie/gebouw/verdieping/ruimte/key"/>&amp;mode=0&amp;discs=981&amp;sizeX=700&amp;sizeY=400&amp;offsetX=10&amp;offsetY=10&amp;scale=950&amp;paperColor=16777215
// </xsl:attribute>
// </xsl:element>
var newbody = p_bodyhtml.substr(0, startPos - 4) + "src=\"../cad/mySlnk2IMG.asp?" + flexcode.substr(10) + "\"" + p_bodyhtml.substr(eindPos + 1);
p_bodyhtml = newbody;
}
else
{
var filedata = props.files[0];
if (filedata.resized)
var file = filedata.resized;
else
var file = props.AttachPath + props.files[0].name;
var fileStream = new ActiveXObject("ADODB.Stream")
fileStream.Open();
fileStream.Type = 1; //adTypeBinary
fileStream.LoadFromFile(file);
fileStream.Position = 0; // We gaan nu over in uitvoermode
var oXML = new ActiveXObject("Msxml2.DOMDocument.6.0");
oNode = oXML.createElement("encodeddata");
oNode.dataType = "bin.base64"; // Zeer snelle oplossing
oNode.nodeTypedValue = fileStream.Read(fileStream.Size);
fileStream.Close();
if (filedata.tempdelete)
{
var fso = Server.CreateObject("Scripting.FileSystemObject");
fso.DeleteFile(filedata.tempdelete);
var props = flexProps2(flexcode);
if (!props.files.length)
{ // Geen bestanden gevonden? Dan hele img-tag gewoon er uit halen
var eindPos = p_bodyhtml.indexOf(">", startPos + 2);
// Let op: door de -9 werkt het alleen als de frc het eerste attribuut is van de img
var newbody = p_bodyhtml.substr(0, startPos - 9) + p_bodyhtml.substr(eindPos + 1);
p_bodyhtml = newbody;
}
else
{
var filedata = props.files[0];
if (filedata.resized)
var file = filedata.resized;
else
var file = props.AttachPath + props.files[0].name;
var b64 = oNode.text;
// TODO: Niet altijd als png, soms ook JPG, hoewel het goed lijkt te gaan in de meeste browsers
var newbody = p_bodyhtml.substr(0, startPos - 4) + "src=\"data:image/png;base64," + b64 + "\"" + p_bodyhtml.substr(eindPos + 1);
p_bodyhtml = newbody;
var fileStream = new ActiveXObject("ADODB.Stream")
fileStream.Open();
fileStream.Type = 1; //adTypeBinary
fileStream.LoadFromFile(file);
fileStream.Position = 0; // We gaan nu over in uitvoermode
var oXML = new ActiveXObject("Msxml2.DOMDocument.6.0");
oNode = oXML.createElement("encodeddata");
oNode.dataType = "bin.base64"; // Zeer snelle oplossing
oNode.nodeTypedValue = fileStream.Read(fileStream.Size);
fileStream.Close();
if (filedata.tempdelete)
{
var fso = Server.CreateObject("Scripting.FileSystemObject");
fso.DeleteFile(filedata.tempdelete);
}
var b64 = oNode.text;
// TODO: Niet altijd als png, soms ook JPG, hoewel het goed lijkt te gaan in de meeste browsers
var newbody = p_bodyhtml.substr(0, startPos - 4) + "src=\"data:image/png;base64," + b64 + "\"" + p_bodyhtml.substr(eindPos + 1);
p_bodyhtml = newbody;
}
}
var startPos = p_bodyhtml.indexOf("frc=", eindPos) + 4;
var quote = p_bodyhtml.substr(startPos, 1);

View File

@@ -178,9 +178,26 @@ function sendMail( p_mailfrom
var url = "{0}&API=GETFLEX&APIKEY={1}&flexcode={2}".format(fac_web_url, S("puo_fclt_web_apikey"), flexcode);
Log2File(2, url);
var http_request = doHTTP(url, { method: "GET", headers: { "accept": "application/json" }});
var props = eval('(' + http_request.responseText + ')');
if (flexcode.match(/^M=CAD/)) // Die roepen we gewoon on-the-fly op
{
// <xsl:element name="img">
// <xsl:attribute name="frc">M=CAD&amp;labelPos=2&amp;vKey=<xsl:value-of select="//afspraak/plaats/regio/district/locatie/gebouw/verdieping/key"/>&amp;highlight=<xsl:value-of select="//afspraak/plaats/regio/district/locatie/gebouw/verdieping/ruimte/key"/>&amp;mode=0&amp;discs=981&amp;sizeX=700&amp;sizeY=400&amp;offsetX=10&amp;offsetY=10&amp;scale=950&amp;paperColor=16777215
// </xsl:attribute>
// </xsl:element>
props = {
files: [{
resized: url.replace(/\&amp\;/g, "&")
}
]
}
}
else
{
var http_request = doHTTP(url, { method: "GET", headers: { "accept": "application/json" }});
var props = eval('(' + http_request.responseText + ')');
}
if (props.flexlog)
Log2File(1, props.flexlog);
if (!props.files)