FSN#35474 Tweede aanzet BBCodes ondersteuning in textarea

svn path=/Website/trunk/; revision=28280
This commit is contained in:
Jos Groot Lipman
2016-02-24 15:35:23 +00:00
parent e5a2ee9466
commit a193893bbc
5 changed files with 29 additions and 10 deletions

View File

@@ -434,7 +434,7 @@ var urlMail = "../shared/queuemail.asp?pcode=ORDMAI&defemail_key=" + defemail_ke
Title: L("lcl_contract") Title: L("lcl_contract")
}; };
ROFIELDTR("fld", L("lcl_contract"), mld_opdr.contract_naam, params); // Contract naam ROFIELDTR("fld", L("lcl_contract"), mld_opdr.contract_naam, params); // Contract naam
ROTEXTAREATR("fldtxt", L("lcl_mld_opdr_description"), mld_opdr.opdr_omschr, {suppressEmpty: true}); ROTEXTAREATR("fldtxt", L("lcl_mld_opdr_description"), mld_opdr.opdr_omschr, {suppressEmpty: true, mldlink: true});
var showtime = (1==1); //mld_uitvoertijd_eenheid == "U"; var showtime = (1==1); //mld_uitvoertijd_eenheid == "U";
ROFIELDTR(showtime? "flddatetime" : "flddate", ROFIELDTR(showtime? "flddatetime" : "flddate",
@@ -457,7 +457,7 @@ var urlMail = "../shared/queuemail.asp?pcode=ORDMAI&defemail_key=" + defemail_ke
suppressEmpty: true suppressEmpty: true
}); });
ROFIELDTR("flddatetime", L("lcl_opdr_plandate"), mld_opdr.mld_opdr_plandatum != null ? toDateTimeString(mld_opdr.mld_opdr_plandatum):null, {suppressEmpty: true}); // Geplande datum ROFIELDTR("flddatetime", L("lcl_opdr_plandate"), mld_opdr.mld_opdr_plandatum != null ? toDateTimeString(mld_opdr.mld_opdr_plandatum):null, {suppressEmpty: true}); // Geplande datum
ROTEXTAREATR('fldtxt', L("lcl_mld_inf_Opmerking"), mld_opdr.opdr_opmerking, {suppressEmpty: true}); // Afhandeling ROTEXTAREATR('fldtxt', L("lcl_mld_inf_Opmerking"), mld_opdr.opdr_opmerking, {suppressEmpty: true, mldlink: true}); // Afhandeling
BLOCK_END(); BLOCK_END();
BLOCK_START("opdrMelding", L("lcl_opdr_info") + " " +(prefix||"") + mld_opdr.mld_key + "/" + mld_opdr.volgnr, true); BLOCK_START("opdrMelding", L("lcl_opdr_info") + " " +(prefix||"") + mld_opdr.mld_key + "/" + mld_opdr.volgnr, true);
@@ -469,7 +469,7 @@ var urlMail = "../shared/queuemail.asp?pcode=ORDMAI&defemail_key=" + defemail_ke
if (mld_opdr.opdr_status == 2) if (mld_opdr.opdr_status == 2)
{ // Opdracht Niet akkoord { // Opdracht Niet akkoord
ROTEXTAREATR('fldtxt', L("lcl_mld_inf_opmerking_fiat"), mld_opdr.mld_opdr_opmerking_fiat, {suppressEmpty: true}); // Afhandeling, reden niet akkoord ROTEXTAREATR('fldtxt', L("lcl_mld_inf_opmerking_fiat"), mld_opdr.mld_opdr_opmerking_fiat, {suppressEmpty: true, mldlink: true}); // Afhandeling, reden niet akkoord
} }
var fiat_key = mld_opdr.mld_opdr_fiat_user; // Laatste fiatteur die gefiatteerd heeft var fiat_key = mld_opdr.mld_opdr_fiat_user; // Laatste fiatteur die gefiatteerd heeft

View File

@@ -726,24 +726,41 @@ safe = {
{ {
return Server.HTMLEncode(safe.nvl(waarde)); return Server.HTMLEncode(safe.nvl(waarde));
}, },
// Bijvoorbeeld <div>< % =safe.fclthtml(omschr)% ></div> // Bijvoorbeeld <div class='fclthtml'>< % =safe.fclthtml(omschr)% ></div>
// We ondersteunen bb-codes die 1-op-1 naar html zijn om te zetten // We ondersteunen bb-codes die 1-op-1 naar html zijn om te zetten
fclthtml: function (waarde, mldlink) fclthtml: function (waarde, mldlink)
{ {
var safepairs = "b,i,th,td,tr,table,xmp".split(","); var safepairs = "h1,h2,h3,h4,h5,h6,b,i,u,em,strong,small,big,th,td,tr,table,xmp".split(",");
var safehtml = safe.html(waarde); var safehtml = safe.html(waarde); // Let op: vervangt *alle* \n door <br>. Dat gaan we deels later nog terugdraaien
// We hebben het wel *nodig* omdat .* niet over meerdere regels werkt (hoewel dat
// weer oplosbaar schijnt te zijn met [\s\S])
for (var i = 0; i < safepairs.length; i++) for (var i = 0; i < safepairs.length; i++)
{ {
var code = safepairs[i]; var code = safepairs[i];
var strre = "\\[" + code + "\\](.*?)\\[\\/" + code + "\\]"; // De ? maakt de .* lazy (ipv greedy) var strre = "\\[{0}\\](.*?)\\[\\/{0}\\]".format(code); // De ? maakt de .* lazy (ipv greedy)
var strnew = "<" + code + ">$1</" + code + ">"; // de [\s\S] ipv. een punt matcht ook over newlines var strnew = "<" + code + ">$1</" + code + ">";
var re = new RegExp(strre, "g"); var re = new RegExp(strre, "g");
var safehtml = safehtml.replace(re, strnew); var safehtml = safehtml.replace(re, strnew);
} }
if (mldlink) if (mldlink)
var safehtml = safe.mldlinkhtml(safehtml); var safehtml = safe.mldlinkhtml(safehtml);
// Nu de <br>'s binnen <pre> terugzetten // Nu de <br>'s binnen de tabel terugzetten. Let op dat ze *binnen* <td>'s weer wel moeten blijven
// TODO: Kan dit beter?
if (safehtml.indexOf("<table>") > -1)
{
var tablepairs = "th,td,tr,table".split(",");
for (var i = 0; i < tablepairs.length; i++)
{
var code = tablepairs[i];
var re = new RegExp("<{0}>(\r<br>)+".format(code), "g");
var safehtml = safehtml.replace(re, "<" + code + ">");
var re = new RegExp("</{0}>(\r<br>)+".format(code), "g");
var safehtml = safehtml.replace(re, "</" + code + ">");
}
}
// Nu alle <br>'s binnen <pre> terugzetten
var matches = safehtml.match(/<xmp(?:.*?)>(?:.*?)<\/xmp>/g); var matches = safehtml.match(/<xmp(?:.*?)>(?:.*?)<\/xmp>/g);
if (matches) if (matches)
{ {

View File

@@ -283,7 +283,7 @@ function ROTEXTAREATR(pclass, plabel, pvalue, params)
%><tr <%=params.trclass?"class='"+params.trclass+"'":""%>> %><tr <%=params.trclass?"class='"+params.trclass+"'":""%>>
<%if (plabel) {%><td class="label"><label><%=plabel? plabel + ":" : ""%></label></td><% } %> <%if (plabel) {%><td class="label"><label><%=plabel? plabel + ":" : ""%></label></td><% } %>
<td <%=(params.tdhtml_ta? " " + params.tdhtml_ta : "")%>><div class="readonly <%=pclass%>"<%=(params.html? " " + params.html + " " : "")%><%=params && params.id? ' id=\"' + params.id + '\"' : ''%>><%=safe.fclthtml(pvalue, params.mldlink)%></div></td></tr><% <td <%=(params.tdhtml_ta? " " + params.tdhtml_ta : "")%>><div class="readonly fclthtml <%=pclass%>"<%=(params.html? " " + params.html + " " : "")%><%=params && params.id? ' id=\"' + params.id + '\"' : ''%>><%=safe.fclthtml(pvalue, params.mldlink)%></div></td></tr><%
} }
// params.html wordt er ook tussen geplakt (onclick bijvoorbeeld) // params.html wordt er ook tussen geplakt (onclick bijvoorbeeld)

View File

@@ -16,6 +16,7 @@ function STR2Stream(xmlstr, xslfile, Stream, params)
var xsldoc = new ActiveXObject("Msxml2.FreeThreadedDOMDocument.6.0"); var xsldoc = new ActiveXObject("Msxml2.FreeThreadedDOMDocument.6.0");
var xslproc; var xslproc;
xsldoc.async = false; xsldoc.async = false;
xsldoc.setProperty("AllowXsltScript", true);
xsldoc.load(xslfile); xsldoc.load(xslfile);
if (xsldoc.parseError.errorCode != 0) if (xsldoc.parseError.errorCode != 0)

View File

@@ -53,6 +53,7 @@ function SafeLoadFileXSL(xslPath)
{ {
var iXsl = new ActiveXObject("Msxml2.FreeThreadedDOMDocument.6.0"); // Moet FreeThreaded voor XSLTemplate var iXsl = new ActiveXObject("Msxml2.FreeThreadedDOMDocument.6.0"); // Moet FreeThreaded voor XSLTemplate
iXsl.async = false; iXsl.async = false;
xsldoc.setProperty("AllowXsltScript", true);
iXsl.load(custabspath + "/" + xslPath); iXsl.load(custabspath + "/" + xslPath);
TestAndRaiseAnXMLError("Error loading file " + xslPath, iXsl); TestAndRaiseAnXMLError("Error loading file " + xslPath, iXsl);