KFNS#39913 preview bijlagen plaatjes, nieuwe modal toegevoegd
svn path=/Website/trunk/; revision=37448
This commit is contained in:
125
APPL/Shared/BijlagenPreview.asp
Normal file
125
APPL/Shared/BijlagenPreview.asp
Normal file
@@ -0,0 +1,125 @@
|
|||||||
|
<%@language="javascript"%>
|
||||||
|
<% /*
|
||||||
|
$Revision$
|
||||||
|
$Id$
|
||||||
|
|
||||||
|
|
||||||
|
File: BijlagenPreview.asp
|
||||||
|
Description: ASP to browse a directory of pictures
|
||||||
|
Parameters:
|
||||||
|
root_path absolute path on the webserver to the directory where the pictures are
|
||||||
|
stored. Including starting slash and ending slash. (only forward slashes are
|
||||||
|
allowed)
|
||||||
|
loc_key key of the location to select the pictures from.
|
||||||
|
nrOfPict optional, number of pictures to be displayed per line
|
||||||
|
Note: !
|
||||||
|
|
||||||
|
*/ %>
|
||||||
|
|
||||||
|
<!-- #include file="../Shared/common.inc" -->
|
||||||
|
<!-- #include file="../Shared/iface.inc" -->
|
||||||
|
<!-- #include file="../shared/FlexFiles.inc" -->
|
||||||
|
|
||||||
|
<%
|
||||||
|
protectQS.verify(); // tamper check
|
||||||
|
FCLTHeader.Requires({ plugins: ["jQuery"] });
|
||||||
|
|
||||||
|
var pModule = getQParam("module", "");
|
||||||
|
var pKey = getQParamInt("key", -1);
|
||||||
|
var pKenmerk_key = getQParamInt("kenmerk_key", -1);
|
||||||
|
var pNiveau = getQParam("niveau", "");
|
||||||
|
|
||||||
|
var picsPerLine = getQParamInt("nrOfPict", -1);
|
||||||
|
|
||||||
|
function OpenFlexFile(module, niveau, key, kenmerk_key, fname, params)
|
||||||
|
{
|
||||||
|
params = params || {}
|
||||||
|
// Lever code op voor tonen van een bepaalde flexfile streaming
|
||||||
|
var s = rooturl + "/appl/shared/BijlagenStream.asp"
|
||||||
|
s += "?module=" + module
|
||||||
|
+ "&key=" + key
|
||||||
|
+ (niveau ? "&niveau=" + niveau : "")
|
||||||
|
+ "&kenmerk_key=" + kenmerk_key
|
||||||
|
+ "&filename=" + Server.URLencode(fname);
|
||||||
|
if (params.mime_type)
|
||||||
|
s += "&mime=" + params.mime_type;
|
||||||
|
if (params.contentdp)
|
||||||
|
s += "&contentdp=" + params.contentdp;
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
|
||||||
|
%>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<% FCLTHeader.Generate(); %>
|
||||||
|
<script type="text/javascript">
|
||||||
|
function ShowPicture(imageName)
|
||||||
|
{
|
||||||
|
newWindow = FcltMgr.windowopen(imageName, "newWindow", "resizable=yes, scrollbars=yes");
|
||||||
|
newWindow.document.close();
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body class="modal" id="mod_preview">
|
||||||
|
<br>
|
||||||
|
<table class="preview" cellspacing="0" cellpadding="10">
|
||||||
|
<%
|
||||||
|
var lijst = [];
|
||||||
|
var vAttachPath = flexProps(pModule, pKey, String(pKenmerk_key), pNiveau).AttachPath + "/";
|
||||||
|
|
||||||
|
var fso = Server.CreateObject("Scripting.FileSystemObject")
|
||||||
|
if (vAttachPath && fso.FolderExists(vAttachPath))
|
||||||
|
{
|
||||||
|
var f, fc;
|
||||||
|
var regex = new RegExp(S("flexPreviewExt"));
|
||||||
|
fso = new ActiveXObject("Scripting.FileSystemObject");
|
||||||
|
f = fso.GetFolder(vAttachPath);
|
||||||
|
fc = new Enumerator(f.files);
|
||||||
|
for (; !fc.atEnd(); fc.moveNext())
|
||||||
|
{
|
||||||
|
// Only preview the extensions as specified in S("flexPreviewExt")
|
||||||
|
if (regex.test("."+fso.GetExtensionName(fc.item())))
|
||||||
|
lijst.push(fc.item().Name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Kiest optimaal aantal plaatjes per regel, zo vierkant mogelijk met
|
||||||
|
var MAXPERLINE = 5;
|
||||||
|
|
||||||
|
if (picsPerLine > 0)
|
||||||
|
picsPerLine = Math.min(picsPerLine, lijst.length);
|
||||||
|
else if (lijst.length > 0)
|
||||||
|
picsPerLine = lijst.length < 4 ? lijst.length : Math.min(Math.round(Math.sqrt(lijst.length)), MAXPERLINE);
|
||||||
|
|
||||||
|
var href;
|
||||||
|
var tdWidth = parseInt(100/picsPerLine);
|
||||||
|
|
||||||
|
for (var i = 0; i < lijst.length; i++)
|
||||||
|
{
|
||||||
|
href = protectQS.create(OpenFlexFile(pModule, pNiveau, pKey, pKenmerk_key, lijst[i]));
|
||||||
|
if (i % picsPerLine == 0)
|
||||||
|
{
|
||||||
|
%> <tr valign="top">
|
||||||
|
<% } %>
|
||||||
|
|
||||||
|
<td onclick="FcltMgr.windowopen('<%=safe.jsstring(href)%>', 'File')" style="width:<%=tdWidth%>%">
|
||||||
|
<div>
|
||||||
|
<img src="<%=safe.htmlattr(href)%>" class="preview" alt="<%=lijst[i]%>">
|
||||||
|
<br>
|
||||||
|
<%=lijst[i]%>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<% if ((i+1) % picsPerLine == 0)
|
||||||
|
{ %>
|
||||||
|
</tr>
|
||||||
|
<% }
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!lijst.length)
|
||||||
|
{
|
||||||
|
shared.simpel_page(L("lcl_shared_no_photos_present"));
|
||||||
|
} %>
|
||||||
|
</table>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -870,6 +870,29 @@ i.autoreport {
|
|||||||
margin-top: 1px;
|
margin-top: 1px;
|
||||||
color: ==buttonbackgroundcolor==;
|
color: ==buttonbackgroundcolor==;
|
||||||
}
|
}
|
||||||
|
table.preview {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
table.preview tr td {
|
||||||
|
max-height: 170px;
|
||||||
|
height: 100%;
|
||||||
|
position: relative;
|
||||||
|
text-align: center;
|
||||||
|
vertical-align: bottom;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.preview tr td > div > img {
|
||||||
|
opacity: 1;
|
||||||
|
-webkit-transition: all 0.35s ease;
|
||||||
|
transition: all 0.35s ease;
|
||||||
|
}
|
||||||
|
table.preview tr td:hover > div > img {
|
||||||
|
opacity: 0.5;
|
||||||
|
-webkit-transition: all 0.35s ease;
|
||||||
|
transition: all 0.35s ease;
|
||||||
|
}
|
||||||
|
img.preview { max-width: 100%; }
|
||||||
|
|
||||||
/* uren registratie iconen. Moeten misschien een keer een autokleur krijgen */
|
/* uren registratie iconen. Moeten misschien een keer een autokleur krijgen */
|
||||||
.notperfect .fa-comment-o, .notperfect .fa-comment {
|
.notperfect .fa-comment-o, .notperfect .fa-comment {
|
||||||
@@ -880,7 +903,17 @@ i.autoreport {
|
|||||||
color: #2b5797;
|
color: #2b5797;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.preview.fa-eye {
|
||||||
|
float: right;
|
||||||
|
padding-right: 2px;
|
||||||
|
line-height: inherit;
|
||||||
|
font-size: 1.3em;
|
||||||
|
vertical-align: baseline;
|
||||||
|
color: ==buttonbackgroundcolor==;
|
||||||
|
}
|
||||||
|
.preview.fa-eye:hover {
|
||||||
|
color: ==buttonhoverbackgroundcolor==;
|
||||||
|
}
|
||||||
|
|
||||||
.besflex {
|
.besflex {
|
||||||
padding: 1px 0 2px 0;
|
padding: 1px 0 2px 0;
|
||||||
@@ -3234,6 +3267,7 @@ body.likemodal {
|
|||||||
body.mod_edit_mandate {min-width:500px;}
|
body.mod_edit_mandate {min-width:500px;}
|
||||||
#mod_pass2mail {min-width:500px;}
|
#mod_pass2mail {min-width:500px;}
|
||||||
#mod_pnotes {min-width:500px;}
|
#mod_pnotes {min-width:500px;}
|
||||||
|
#mod_preview {min-width:600px;}
|
||||||
#mod_stdmeldingfaq {min-width:500px;}
|
#mod_stdmeldingfaq {min-width:500px;}
|
||||||
#mod_stdmeldingfaq .label {min-width: 0px;}
|
#mod_stdmeldingfaq .label {min-width: 0px;}
|
||||||
#mod_selfreg {min-width:410px; height:500px;}
|
#mod_selfreg {min-width:410px; height:500px;}
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ if (!this.JSON_Result)
|
|||||||
FCLTHeader.Requires({plugins:["jQuery", "kenmerk"], js: ["jquery-ui.js", "date.js"]})
|
FCLTHeader.Requires({plugins:["jQuery", "kenmerk"], js: ["jquery-ui.js", "date.js"]})
|
||||||
|
|
||||||
var requiredGroupUsed = new Array(); // Array zorgt voor eenmalige initiele aanroep van checkRequiredGroup(groep) per groep
|
var requiredGroupUsed = new Array(); // Array zorgt voor eenmalige initiele aanroep van checkRequiredGroup(groep) per groep
|
||||||
|
var addPreview = false;
|
||||||
|
|
||||||
function parseDocumentPath(kenmerk_val)
|
function parseDocumentPath(kenmerk_val)
|
||||||
{
|
{
|
||||||
@@ -100,10 +101,10 @@ function BijlagenButton(pModule, pNiveau, pKey, tmpfolder, pKenmerk_key,
|
|||||||
// vooralsnog read-only
|
// vooralsnog read-only
|
||||||
/* Bestanden zijn nu te vinden in ...cust/X/flexfiles/[module]/[key]/[kenmerk_key] */
|
/* Bestanden zijn nu te vinden in ...cust/X/flexfiles/[module]/[key]/[kenmerk_key] */
|
||||||
var lijst = BijlagenList(pModule, pNiveau, pKey, pKenmerk_key, otherKenmerk_path);
|
var lijst = BijlagenList(pModule, pNiveau, pKey, pKenmerk_key, otherKenmerk_path);
|
||||||
|
|
||||||
if (pReadonly)
|
if (pReadonly)
|
||||||
{ // Indien readonly en lijst.length = 0 dan hoeft het kenmerk (net als bij andere kenmerken) helemaal niet getoond te worden.
|
{ // Indien readonly en lijst.length = 0 dan hoeft het kenmerk (net als bij andere kenmerken) helemaal niet getoond te worden.
|
||||||
var filehtmlarr = [];
|
var filehtmlarr = [];
|
||||||
|
var regex = new RegExp(S("flexPreviewExt"));
|
||||||
for (var file in lijst)
|
for (var file in lijst)
|
||||||
{
|
{
|
||||||
//var html = "<a href='" + safe.htmlattr(href) + "' target='_new'>" + safe.html(lijst[file]) + "</a>";
|
//var html = "<a href='" + safe.htmlattr(href) + "' target='_new'>" + safe.html(lijst[file]) + "</a>";
|
||||||
@@ -119,9 +120,12 @@ function BijlagenButton(pModule, pNiveau, pKey, tmpfolder, pKenmerk_key,
|
|||||||
var html = '<span class="details fldflexM" readonly=1'
|
var html = '<span class="details fldflexM" readonly=1'
|
||||||
+ ' onclick=\'FcltMgr.windowopen("' + safe.jsstring(href) + '", "File")\'>' + safe.html(lijst[file]) + '</span>';
|
+ ' onclick=\'FcltMgr.windowopen("' + safe.jsstring(href) + '", "File")\'>' + safe.html(lijst[file]) + '</span>';
|
||||||
}
|
}
|
||||||
|
if (regex.test(lijst[file]))
|
||||||
|
addPreview = true;
|
||||||
|
|
||||||
filehtmlarr.push(html);
|
filehtmlarr.push(html);
|
||||||
}
|
}
|
||||||
var res = filehtmlarr.join("</br>");;
|
var res = filehtmlarr.join("</br>");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -313,11 +317,13 @@ function listKenmerk(sql, module, key, props)
|
|||||||
var forceNewLine = false; // Bij labels en grote text velden
|
var forceNewLine = false; // Bij labels en grote text velden
|
||||||
var val_seperator = '';
|
var val_seperator = '';
|
||||||
var flexkenmerklabel = '';
|
var flexkenmerklabel = '';
|
||||||
|
var previewParams = [];
|
||||||
var idCounter = 1; // We maken alleen name/id-s voor de velden die ook echt bewerkt kunnen worden
|
var idCounter = 1; // We maken alleen name/id-s voor de velden die ook echt bewerkt kunnen worden
|
||||||
var clabelCounter = 0; // Het aantal collapsable labels
|
var clabelCounter = 0; // Het aantal collapsable labels
|
||||||
var anyDate = false;
|
var anyDate = false;
|
||||||
var anyTime = false;
|
var anyTime = false;
|
||||||
var anyTextarea = false;
|
var anyTextarea = false;
|
||||||
|
var anyPreview = false;
|
||||||
var kenmerkidref = new Array(); // Bijhouden welk kenmerk welke id referentie mee heeft gekregen
|
var kenmerkidref = new Array(); // Bijhouden welk kenmerk welke id referentie mee heeft gekregen
|
||||||
var dpYearRanges = []; // te gebruiker jaren voor datepicker vastleggen.
|
var dpYearRanges = []; // te gebruiker jaren voor datepicker vastleggen.
|
||||||
var minMax = []; // te gebruiker uren voor timepicker vastleggen.
|
var minMax = []; // te gebruiker uren voor timepicker vastleggen.
|
||||||
@@ -363,6 +369,7 @@ function listKenmerk(sql, module, key, props)
|
|||||||
val_seperator = ':';
|
val_seperator = ':';
|
||||||
var def_val = oRs("kenmerk_default").Value;
|
var def_val = oRs("kenmerk_default").Value;
|
||||||
var isExpression = false;
|
var isExpression = false;
|
||||||
|
addPreview = false;
|
||||||
|
|
||||||
if (!kenmerk_search && !multiMode)
|
if (!kenmerk_search && !multiMode)
|
||||||
{
|
{
|
||||||
@@ -1176,6 +1183,9 @@ function listKenmerk(sql, module, key, props)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
addPreview &= !nolabel && !maskeren && readonlyfield;
|
||||||
|
if (addPreview)
|
||||||
|
previewParams.push(protectQS.create("../Shared/BijlagenPreview.asp?key="+key+"&kenmerk_key="+kkey+"&module="+module+"&niveau="+niveau));
|
||||||
}
|
}
|
||||||
|
|
||||||
var makeCheckbox = false;
|
var makeCheckbox = false;
|
||||||
@@ -1622,7 +1632,8 @@ function listKenmerk(sql, module, key, props)
|
|||||||
kvhtml += ((formobile && ktype == 'l'? '<div data-role="collapsible" data-theme="c" data-content-theme="c"><h3 id="collLabel'+clabelCounter+'">' : '')
|
kvhtml += ((formobile && ktype == 'l'? '<div data-role="collapsible" data-theme="c" data-content-theme="c"><h3 id="collLabel'+clabelCounter+'">' : '')
|
||||||
+ '\n <label for="' + nameprefix + idCounter + 'val" class="' + (ktype == 'L' || ktype == 'l'? ' flexlabellabel' : '')
|
+ '\n <label for="' + nameprefix + idCounter + 'val" class="' + (ktype == 'L' || ktype == 'l'? ' flexlabellabel' : '')
|
||||||
+ (isExpression ? ' expression' : '') + '">' + '<span title="' + safe.htmlattr(hint) + '">'
|
+ (isExpression ? ' expression' : '') + '">' + '<span title="' + safe.htmlattr(hint) + '">'
|
||||||
+ flexkenmerklabel + ((kdim != null && kdim != "xxx")? ' [' + kdim + ']' : '') + val_seperator + '</span>'
|
+ flexkenmerklabel + ((kdim != null && kdim != "xxx")? ' [' + kdim + ']' : '') + val_seperator
|
||||||
|
+ (addPreview ? '<i class="fa fa-lg fa-eye preview" id="'+(previewParams.length-1)+'"></i>' : '') + '</span>'
|
||||||
+ (hint == null ? '' : '<span title="' + safe.htmlattr(hint) + '" class="fa fa-fw fa-question-circle hint"></span>')
|
+ (hint == null ? '' : '<span title="' + safe.htmlattr(hint) + '" class="fa fa-fw fa-question-circle hint"></span>')
|
||||||
+ '</label>'+(formobile && ktype == 'l' ? '</h3>' : ''));
|
+ '</label>'+(formobile && ktype == 'l' ? '</h3>' : ''));
|
||||||
|
|
||||||
@@ -1757,7 +1768,7 @@ function listKenmerk(sql, module, key, props)
|
|||||||
// Eventuele scripts moeten buiten de </table>
|
// Eventuele scripts moeten buiten de </table>
|
||||||
if (anyTextarea && !kenmerk_search)
|
if (anyTextarea && !kenmerk_search)
|
||||||
{
|
{
|
||||||
%><script type="text/javascript">
|
%><script>
|
||||||
$(function()
|
$(function()
|
||||||
{
|
{
|
||||||
$('textarea').resize(function () { FcltMgr.resized(window) } );
|
$('textarea').resize(function () { FcltMgr.resized(window) } );
|
||||||
@@ -1767,6 +1778,21 @@ function listKenmerk(sql, module, key, props)
|
|||||||
</script><%
|
</script><%
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Add preview links for bijlagen
|
||||||
|
if (previewParams.length && !kenmerk_search)
|
||||||
|
{
|
||||||
|
%><script>
|
||||||
|
$(function()
|
||||||
|
{
|
||||||
|
<% for (var i = 0; i < previewParams.length; i++)
|
||||||
|
{ %>
|
||||||
|
$("i.preview#<%=i%>").on("click", function() { FcltMgr.openModalDetail("<%=previewParams[i]%>", "<%=L("lcl_flex_preview")%>") });
|
||||||
|
<% } %>
|
||||||
|
});
|
||||||
|
</script><%
|
||||||
|
}
|
||||||
|
|
||||||
// Bij kenmerk_search doen de load_kenmerk's geen FCLTHeader.Generate en dus hebben
|
// Bij kenmerk_search doen de load_kenmerk's geen FCLTHeader.Generate en dus hebben
|
||||||
// we date.js niet gegarandeerd. .fldSflexD werd echter hieronder toch al niet
|
// we date.js niet gegarandeerd. .fldSflexD werd echter hieronder toch al niet
|
||||||
// meegenomen dus komen we er mee weg gewoon hier geen kalenders te doen
|
// meegenomen dus komen we er mee weg gewoon hier geen kalenders te doen
|
||||||
|
|||||||
Reference in New Issue
Block a user