5i verder
svn path=/Website/trunk/; revision=38
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
<%@language = "javascript" %>
|
||||
<%
|
||||
/* $Revision: 4 $
|
||||
$Modtime: 23-10-09 17:38 $
|
||||
/* $Revision: 5 $
|
||||
$Modtime: 25-10-09 11:19 $
|
||||
|
||||
File:
|
||||
Status:
|
||||
@@ -133,7 +133,7 @@ BLOCK_START("algLoc1", "");
|
||||
readonly: false
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
%>
|
||||
|
||||
</tr>
|
||||
@@ -199,7 +199,7 @@ BLOCK_START("algLoc2", ""); %>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="label"><label><%=lcl_estate_gebouw_bez%>:</label></td>
|
||||
<td><input class="fldalgbez" type="checkbox" id="bld_bez" name="bld_bez" value="<%=bld_bez%>" <%= bld_bez==1 ? " checked " : "" %>></td>
|
||||
<td><% CHECKBOX("fldalgbez", "bld_bez", bld_bez==1) %></td>
|
||||
</tr>
|
||||
<% BLOCK_END();
|
||||
BLOCK_START("algFlex", lcl_alg_flexblok);
|
||||
@@ -213,6 +213,6 @@ BLOCK_START("algFlex", lcl_alg_flexblok);
|
||||
%>
|
||||
</form>
|
||||
<iframe src="../Shared/empty.html" name="hidFrameSubmit" style="display:none"></iframe>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<%@language = "javascript" %>
|
||||
<% /*
|
||||
$Revision: 3 $
|
||||
$Modtime: 10/14/09 5:07p $
|
||||
$Revision: 4 $
|
||||
$Modtime: 30-10-09 10:36 $
|
||||
|
||||
SUBMIT-form
|
||||
*/ %>
|
||||
@@ -10,6 +10,7 @@
|
||||
<!-- #include file="../Shared/escape.inc" -->
|
||||
<!-- #include file="../shared/save2db.inc" -->
|
||||
<!-- #include file="../Shared/kenmerk_common.inc"-->
|
||||
<!-- #include file="../shared/date_sql.inc" -->
|
||||
|
||||
<% FCLTHeader.Requires({ plugins:["jQuery"],
|
||||
js: []
|
||||
@@ -17,25 +18,25 @@
|
||||
<%
|
||||
var bld_key = getQParamInt( "bld_key" );;
|
||||
|
||||
var fields = [ { dbs: "alg_locatie_key", typ: "key", frm: "locatiekey" },
|
||||
{ dbs: "ALG_SRTGEBOUW_KEY", typ: "key", frm: "bld_srtkey" },
|
||||
{ dbs: "ALG_GEBOUW_ACADKEY ", typ: "varchar", frm: "bld_acadkey" },
|
||||
{ dbs: "ALG_GEBOUW_NAAM", typ: "varchar", frm: "bld_naam" },
|
||||
{ dbs: "ALG_GEBOUW_CODE", typ: "varchar", frm: "bld_code" },
|
||||
{ dbs: "ALG_GEBOUW_OMSCHRIJVING", typ: "varchar", frm: "bld_descr" },
|
||||
{ dbs: "ALG_GEBOUW_GETEKEND", typ: "date", frm: "bld_teken" },
|
||||
var fields = [ { dbs: "alg_locatie_key", typ: "key", frm: "locatiekey" },
|
||||
{ dbs: "ALG_SRTGEBOUW_KEY", typ: "key", frm: "bld_srtkey" },
|
||||
{ dbs: "ALG_GEBOUW_ACADKEY ", typ: "varchar", frm: "bld_acadkey" },
|
||||
{ dbs: "ALG_GEBOUW_NAAM", typ: "varchar", frm: "bld_naam" },
|
||||
{ dbs: "ALG_GEBOUW_CODE", typ: "varchar", frm: "bld_code" },
|
||||
{ dbs: "ALG_GEBOUW_OMSCHRIJVING", typ: "varchar", frm: "bld_descr" },
|
||||
{ dbs: "ALG_GEBOUW_GETEKEND", typ: "date", frm: "bld_teken" },
|
||||
{ dbs: "ALG_GEBOUW_BRUTO_VLOEROPP", typ: "number", frm: "bld_opp" },
|
||||
{ dbs: "ALG_GEBOUW_OMTREK", typ: "number", frm: "bld_omtrek" },
|
||||
{ dbs: "ALG_GEBOUW_INHOUD", typ: "number", frm: "bld_inhoud" },
|
||||
{ dbs: "ALG_GEBOUW_OPMERKING", typ: "varchar", frm: "bld_opmerk" },
|
||||
{ dbs: "MLD_ADRES_KEY", typ: "key", frm: "mld_adres" },
|
||||
{ dbs: "PRS_KOSTENPLAATS_KEY", typ: "key", frm: "prs_kstpl" },
|
||||
{ dbs: "ALG_GEBOUW_ORDERNR", typ: "varchar", frm: "bld_ordrnr" },
|
||||
{ dbs: "ALG_GEBOUW_DWGX", typ: "number", frm: "bld_dwgx" },
|
||||
{ dbs: "ALG_GEBOUW_DWGY", typ: "number", frm: "bld_dwgy" },
|
||||
{ dbs: "ALG_GEBOUW_X", typ: "number", frm: "bld_x" },
|
||||
{ dbs: "ALG_GEBOUW_Y", typ: "number", frm: "bld_y" },
|
||||
{ dbs: "ALG_GEBOUW_BEZ", typ: "number", frm: "bld_bez" }];
|
||||
{ dbs: "ALG_GEBOUW_OMTREK", typ: "number", frm: "bld_omtrek" },
|
||||
{ dbs: "ALG_GEBOUW_INHOUD", typ: "number", frm: "bld_inhoud" },
|
||||
{ dbs: "ALG_GEBOUW_OPMERKING", typ: "varchar", frm: "bld_opmerk" },
|
||||
{ dbs: "MLD_ADRES_KEY", typ: "key", frm: "mld_adres" },
|
||||
{ dbs: "PRS_KOSTENPLAATS_KEY", typ: "key", frm: "prs_kstpl" },
|
||||
{ dbs: "ALG_GEBOUW_ORDERNR", typ: "varchar", frm: "bld_ordrnr" },
|
||||
{ dbs: "ALG_GEBOUW_DWGX", typ: "number", frm: "bld_dwgx" },
|
||||
{ dbs: "ALG_GEBOUW_DWGY", typ: "number", frm: "bld_dwgy" },
|
||||
{ dbs: "ALG_GEBOUW_X", typ: "number", frm: "bld_x" },
|
||||
{ dbs: "ALG_GEBOUW_Y", typ: "number", frm: "bld_y" },
|
||||
{ dbs: "ALG_GEBOUW_BEZ", typ: "check", frm: "bld_bez" }];
|
||||
|
||||
var warning = "";
|
||||
if (bld_key > 0)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<%@ LANGUAGE="JavaScript" %>
|
||||
<% /*
|
||||
$Revision: 1 $
|
||||
$Modtime: 29-09-09 16:31 $
|
||||
$Revision: 2 $
|
||||
$Modtime: 28-10-09 23:51 $
|
||||
|
||||
File: bes_search.asp
|
||||
Status: 90%
|
||||
@@ -140,7 +140,7 @@ var authparams = user.checkAutorisation(autfunction);
|
||||
alert("<%=lcl_BES_nocat_selected%>");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
var key = $('#disc').val()
|
||||
var url = "load_kenmerk.asp?disc_key=" + $('#disc').val()
|
||||
+ "&urole=<%=urole%>"
|
||||
@@ -473,7 +473,7 @@ var authparams = user.checkAutorisation(autfunction);
|
||||
<% BUTTONS_START();
|
||||
CreateButton(lcl_search, "doSubmit();", 100);
|
||||
if (!frontend)
|
||||
CreateButton(lcl_more, "iface_toggleSecondarySearchblock();", 100, "btnMoreLess");
|
||||
CreateButton(LCL.shared.more, "iface_toggleSecondarySearchblock();", 100, "btnMoreLess");
|
||||
if (backo)
|
||||
{
|
||||
CreateButton(lcl_obj_advanced +'>', "javascript:myModal();", 100, 'bAdvanced'); // met actuele waarden van catalogus en vorig filter
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<%@language = "javascript" %>
|
||||
<% /*
|
||||
$Revision: 1 $
|
||||
$Modtime: 29-09-09 17:13 $
|
||||
$Revision: 2 $
|
||||
$Modtime: 28-10-09 23:57 $
|
||||
*/ %>
|
||||
|
||||
<!-- #include file="../../cust/install.inc" -->
|
||||
@@ -210,7 +210,7 @@ var authparams = user.checkAutorisation(autfunction);
|
||||
BUTTONS_START();
|
||||
CreateButton(lcl_search, "document.forms.u2.submit();", 100);
|
||||
if (!frontend)
|
||||
CreateButton(lcl_more, "iface_toggleSecondarySearchblock();", 100, "btnMoreLess");
|
||||
CreateButton(LCL.shared.more, "iface_toggleSecondarySearchblock();", 100, "btnMoreLess");
|
||||
BUTTONS_END();
|
||||
%>
|
||||
</div>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<%@language = "javascript" %>
|
||||
<% /*
|
||||
$Revision: 1 $
|
||||
$Modtime: 28-09-09 12:07 $
|
||||
$Revision: 2 $
|
||||
$Modtime: 28-10-09 23:52 $
|
||||
|
||||
File: cnt_search.asp
|
||||
Status: 95%
|
||||
@@ -108,7 +108,7 @@ var authparams = user.checkAutorisation(autfunction);
|
||||
alert("<%=lcl_cnt_nosrttype_selected%>");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
var key = $('#disc').val();
|
||||
var url = "load_kenmerk.asp?disc=" + $('#disc').val()
|
||||
+ "&urole=<%=urole%>"
|
||||
@@ -254,7 +254,7 @@ var authparams = user.checkAutorisation(autfunction);
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<div id="statusboxes">
|
||||
<% // Was if (backo || (cnt && cnt_key != -1) || (oRs(0)==5))
|
||||
<% // Was if (backo || (cnt && cnt_key != -1) || (oRs(0)==5))
|
||||
// dus Uitgegeven mocht altijd, en de overige statussen alleen als backo OF cnt zonder key
|
||||
%>
|
||||
<label><%=lcl_cnt_status%>:</label>
|
||||
@@ -273,7 +273,7 @@ var authparams = user.checkAutorisation(autfunction);
|
||||
<div id="buttons">
|
||||
<% BUTTONS_START();
|
||||
CreateButton(lcl_search, "doSubmit();", 100, 'bSearch' );
|
||||
CreateButton(lcl_more, "iface_toggleSecondarySearchblock();", 100, "btnMoreLess");
|
||||
CreateButton(LCL.shared.more, "iface_toggleSecondarySearchblock();", 100, "btnMoreLess");
|
||||
CreateButton(lcl_obj_advanced, "javascript:myModal();", 100, 'bAdvanced'); // met actuele waarden van contractsoort en vorig filter
|
||||
BUTTONS_END(); %>
|
||||
</div>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<%@language = "javascript" %>
|
||||
<% /*
|
||||
$Revision: 1 $
|
||||
$Modtime: 26-09-09 0:04 $
|
||||
$Revision: 2 $
|
||||
$Modtime: 3-11-09 9:17 $
|
||||
|
||||
File: Facilitor.asp
|
||||
Status: op te ruimen, styles naar css isoleren
|
||||
@@ -10,24 +10,42 @@
|
||||
|
||||
VEREIST (uitsluitend) de customercode ("CUST") in Session("customerId")
|
||||
|
||||
(c) 2010 SG|facilitor bv, the Netherlands. All rights reserved
|
||||
*/
|
||||
%>
|
||||
<!--#include file="../../cust/install.inc"-->
|
||||
<!--#include file="../shared/iface.inc"-->
|
||||
<!--#include file="useragent.inc" -->
|
||||
<!--#include file="fac_menu.inc" -->
|
||||
<!--#include file="header.inc" -->
|
||||
<%
|
||||
FCLTHeader.Requires({ plugins: ["jQuery"],
|
||||
js: ["FcltMgr.js", "jquery-ui.js", "jquery.layout.js"],
|
||||
css: ["../shared/suggest/suggest.css"]}); // css voor header.asp
|
||||
FCLTHeader.Requires({ plugins: ["jQuery"],
|
||||
js: ["FcltMgr.js", "jquery-ui.js", "jquery.layout.js"],
|
||||
css: ["../shared/suggest/suggest.css"]}); // css voor header.asp
|
||||
|
||||
CheckForLogging(Request.QueryString("LOGGING"))
|
||||
dis = Request.QueryString("dis").Count > 0;
|
||||
var noMenu = false; // option: do not show a menu
|
||||
var noHeader = false;// option: do not show a header
|
||||
var isPDA = false; // option: to force even if we cannot detect it
|
||||
// Logging option: for internal debugging purposes, bitcoded
|
||||
// IHateTabs option: do not use our internal tabmanager
|
||||
// Jumpto option: for deeplinking, uses an alternate body
|
||||
// Login option: to impersonate a system user
|
||||
|
||||
// What browser/platform is used:
|
||||
checkUserAgent();
|
||||
if (Request.QueryString("pda").Count>0) isPDA = true; // force even if we did not detect it
|
||||
CheckForLogging(Request.QueryString("LOGGING"));
|
||||
|
||||
Session("pda") = isPDA;
|
||||
var dis = Request.QueryString("dis").Count > 0; // is doorgeven voor het disablen van IkBenBekend in het inlogscherm
|
||||
|
||||
// What browser/platform is used:
|
||||
checkUserAgent();
|
||||
if (Request.QueryString("pda").Count>0) isPDA = true;
|
||||
if (Request.QueryString("noMenu").Count>0) noMenu = true;
|
||||
if (Request.QueryString("noHeader").Count>0) noHeader = true;
|
||||
|
||||
if (isPDA) {
|
||||
noMenu = true;
|
||||
noHeader = true;
|
||||
}
|
||||
Session("pda") = isPDA;
|
||||
|
||||
if (Request.Form("UID").Count>0)
|
||||
Session("UID_DEC") = "" + Request.Form("UID");
|
||||
@@ -85,43 +103,37 @@
|
||||
</STYLE>
|
||||
|
||||
<script type="text/javascript">
|
||||
FcltMgr.HostTabs("maintabs");
|
||||
|
||||
function RefreshFacilitor()
|
||||
{
|
||||
alert("Your session expired. Please, close this window and re-login on portal.");
|
||||
window.location.href="default.asp?fac_id=<%=Session("customerId")%>";
|
||||
}
|
||||
|
||||
var timerID=null;
|
||||
function timedResizeActiveTab()
|
||||
{
|
||||
if (timerID) clearTimeout(timerID);
|
||||
timerID = setTimeout(resizeActiveTab, 100);// use a delay for IE because the resize event fires repeatly
|
||||
}
|
||||
|
||||
function resizeActiveTab()
|
||||
{
|
||||
var ifrm = FcltMgr.activeTab();
|
||||
if (ifrm) {
|
||||
// PF: constateerde dat via een tragere lijn (vpn) ifrm er niet op tijd kan zijn
|
||||
ifrm.style.width = parseInt($("#maintabs").css("width"))- 2 + "px";
|
||||
ifrm.style.height = parseInt($("#maintabs").css("height"))- 35 + "px";
|
||||
//ifrm.style.width = parseInt($(ifrm).parent().width()) + "px";
|
||||
//ifrm.style.height = parseInt($(ifrm).parent().height()) + "px";
|
||||
}
|
||||
//debugger;
|
||||
}
|
||||
|
||||
jQuery(document).ready(function() {
|
||||
<% if (Request.QueryString("IHateTabs").Count==0) { %>
|
||||
FcltMgr.HostTabs("maintabs");
|
||||
<% } %>
|
||||
|
||||
<%
|
||||
extra="";
|
||||
if (Session("logging")>0 && this.Oracle)
|
||||
{
|
||||
var extra = " {"+custpath.substr(custpath.length-4)+':'+Oracle.RealConnection.Properties("User Name")+'@'+Oracle.RealConnection.Properties("Data source") + "}"
|
||||
extra = extra.toUpperCase();
|
||||
}
|
||||
%>
|
||||
window.parent.document.title = "Facilitor<6F> 5i <%=extra%>";
|
||||
|
||||
// TODO: deze naar de configuratie halen
|
||||
var layoutSettings = {
|
||||
name: "outerLayout" // NO FUNCTIONAL USE, but could be used by custom code to 'identify' a layout
|
||||
, applyDefaultStyles: true // options.defaults apply to ALL PANES - but overridden by pane-specific settings
|
||||
, north: {
|
||||
size: 90
|
||||
size: 75
|
||||
}
|
||||
, west: {
|
||||
size: 275
|
||||
size: 250
|
||||
, paneSelector: "#menutabs" // sample: use an ID to select pane instead of a class
|
||||
, spacing_closed: 20 // wider space when closed
|
||||
, togglerLength_closed: 20 // make toggler 'square' - 21x21
|
||||
, togglerTip_open: "Close Menu"
|
||||
@@ -137,43 +149,18 @@
|
||||
};
|
||||
outerLayout = $("body").layout( layoutSettings );
|
||||
|
||||
$("#menutabs").tabs();
|
||||
|
||||
// $("#ProfFAC UL").sortable();
|
||||
// $("#ProfFAC UL").disableSelection();
|
||||
|
||||
$("#menutabs").tabs();
|
||||
|
||||
var $tabs = $("#maintabs").tabs({ cache: true, // anders op tabwissel al herlading
|
||||
add: function(event, ui) {
|
||||
$tabs.tabs('select', '#' + ui.panel.id);
|
||||
},
|
||||
load: function(event, ui) {
|
||||
var ifrm = $(ui.panel).find('iframe.frametab')[0];
|
||||
ifrm.parentNode.style.padding="0px"; // lukt niet goed via css?
|
||||
resizeActiveTab(); // iframe content kan nog even duren maar dat geeft niet.
|
||||
},
|
||||
remove: function(event, ui) {
|
||||
$(ui.panel).remove(); // Onderliggende html opruimen
|
||||
}
|
||||
<% if ( user_key == -1 ) { %>
|
||||
FcltMgr.openModalDetail("login.asp", "<%=lcl_facilitor_appl%>",
|
||||
{ resizable: false,
|
||||
noClose: true,
|
||||
callback: function () {window.location.reload();} } );
|
||||
|
||||
}
|
||||
);
|
||||
|
||||
$('#maintabs').bind('tabsshow', function(event, ui) {
|
||||
// Direct na selecteren resizen omdat alleen de active geresized was
|
||||
var ifrm = $(ui.panel).find('iframe.frametab')[0];
|
||||
if (ifrm)
|
||||
{
|
||||
timedResizeActiveTab();
|
||||
}
|
||||
});
|
||||
|
||||
$("#maintabs").resize(function (){
|
||||
timedResizeActiveTab();
|
||||
});
|
||||
|
||||
<% if ( user_key == -1 ) { // match with css for logintable! %>
|
||||
$("#secur_frame").dialog({ width: 300, height: 180, resizable: false, title: "<%=lcl_facilitor_appl%>" });
|
||||
<% } %>
|
||||
|
||||
$(".menukop").click(function(){ $(this).nextAll("ul").toggle()});
|
||||
@@ -207,58 +194,38 @@
|
||||
background: #AAA;
|
||||
}
|
||||
|
||||
.ui-tabs-panel { padding: 0px; }
|
||||
.ui-tabs .ui-tabs-panel { padding-left: .5em; padding-right: .5em; }
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="frheader" class="ui-layout-north"><iframe width="100%" height="100%" src="header.asp"
|
||||
name="frmheader" id="frmheader"
|
||||
frameborder="0" marginwidth="0" noresize scrolling="no"></iframe></div>
|
||||
<div id="menu" class="ui-layout-west">
|
||||
<%
|
||||
Server.Execute("menu.asp");
|
||||
<% if (!noHeader) { %>
|
||||
<div id="frheader" style='height:75px' class="ui-layout-north">
|
||||
<% generateHeader(); %>
|
||||
</div>
|
||||
<% }
|
||||
if (!noMenu) {
|
||||
%><div id="menutabs" class="ui-tabs ui-layout-west"><%
|
||||
generateMenu();
|
||||
%></div><%
|
||||
}
|
||||
%>
|
||||
</div>
|
||||
<% if (!isPDA) { // moet ws hoger: helemaal geen frames en zo -TODO %>
|
||||
|
||||
<% if (!isPDA) { %>
|
||||
<iframe src="Backgrounder.asp" style="display:none" ><!--het frame voor alle backgrounderjobs--></iframe>
|
||||
<%
|
||||
}
|
||||
%>
|
||||
<div id="maintabs">
|
||||
<span class="tabclose"
|
||||
style="font-size:2em;float:right; padding:0px 5px 5px 3px;"
|
||||
title="lcl_Sluit alle inactieve tabs"
|
||||
onClick="FcltMgr.closeAll()">X</span>
|
||||
<div id="maintabs" class="ui-layout-center">
|
||||
<span class="tabcloseall"
|
||||
title="<%=lcl_close_all_tabs%>"
|
||||
onClick="FcltMgr.closeAll()">x</span>
|
||||
<ul>
|
||||
<li><a href="#portal"><span><%=lcl_body_portal%></span></a></li>
|
||||
</ul>
|
||||
<xdiv class="ui-layout-content">
|
||||
<div id="portal">
|
||||
</div>
|
||||
</xdiv>
|
||||
<div id="portal">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<%
|
||||
if ( user_key == -1 ) {
|
||||
// Helper div om close *vanuit* de dialoog te kunnen doen
|
||||
%>
|
||||
<iframe src="ifl.asp<%=(dis?"?dis=1":"")%>"
|
||||
name="secur_frame"
|
||||
id="secur_frame"
|
||||
marginwidth="0"
|
||||
marginheight="0"
|
||||
frameborder="0"
|
||||
style="display:none"
|
||||
scrolling = "no">
|
||||
</iframe>
|
||||
<div id="closedialog" name="closedialog"
|
||||
onclick="$('.ui-dialog-titlebar-close').trigger('click');window.location.reload()" style="display:none">
|
||||
</div>
|
||||
<%
|
||||
}
|
||||
%>
|
||||
</body>
|
||||
|
||||
|
||||
</html>
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
<%@ language = "JavaScript" %>
|
||||
<% /*
|
||||
$Revision: 1 $
|
||||
$Modtime: 28-09-09 10:17 $
|
||||
$Revision: 2 $
|
||||
$Modtime: 1-11-09 22:15 $
|
||||
|
||||
File: fac/menu.asp
|
||||
File: fac/fac_menu.inc.asp
|
||||
Status: 99%
|
||||
Context: Server.Execute vanuit ../../appl/Facilitor.asp
|
||||
Context:
|
||||
|
||||
Levert de div "menutabs" op met alle voor deze user beschikbare opties
|
||||
(en niets meer dan dat)
|
||||
@@ -17,21 +16,96 @@
|
||||
<div id="MgtFAC"></div>
|
||||
</div>
|
||||
*/
|
||||
Response.Expires=0;
|
||||
DOCTYPE_Disable = true;
|
||||
%>
|
||||
<!-- #include file="../../cust/install.inc" -->
|
||||
<!-- #include file="fac.inc" -->
|
||||
<!-- #include file="MenuFunctions.inc" -->
|
||||
<!--#include file="fac.inc" -->
|
||||
<%
|
||||
function MenuKop(ptekst, pinfo)
|
||||
{
|
||||
this.tekst = ptekst;
|
||||
this.info = pinfo;
|
||||
this.menuItems = new Array();
|
||||
this.addItem = function(tekst, actie, beschrijving, diepte)
|
||||
{
|
||||
this.menuItems.push(new MenuItem(tekst, actie, beschrijving, diepte));
|
||||
}
|
||||
}
|
||||
|
||||
function MenuItem(pname, phref, pinfo, plevel)
|
||||
{
|
||||
this.name = pname;
|
||||
this.href = phref;
|
||||
this.info = pinfo;
|
||||
this.level = plevel; // biedt uitklapmogelijkheid
|
||||
}
|
||||
|
||||
// nog verfijnen? diepere levels?
|
||||
function CreateItemsRow(menuKop)
|
||||
{
|
||||
for (var i=0; i<menuKop.length; i++)
|
||||
{
|
||||
if (menuKop[i].menuItems.length > 0) {
|
||||
if (i == 0) {%><ul><% }
|
||||
%><li class="menu"><span class="menukop"><% = menuKop[i].tekst %></span><ul><%
|
||||
for (var j=0; j < menuKop[i].menuItems.length; j++)
|
||||
{
|
||||
var itm = menuKop[i].menuItems[j];
|
||||
var q_href = itm.href.replace(/'/g,"\\'");
|
||||
var q_name = itm.name.replace(/'/g,"\\'");
|
||||
var q_info = String(itm.info).replace(/'/g,"\\'");
|
||||
%>
|
||||
<li title="<%=itm.info%>"><%
|
||||
if (itm.href)
|
||||
{ if (itm.href.slice(0,7) == "http://" || itm.href.slice(0,8) == "https://"){
|
||||
%><a href="<%=itm.href%>" target=_new><% = Server.HTMLEncode(itm.name) %></a><%
|
||||
} else {
|
||||
%><a onclick="FcltMgr.openDetail('<%=q_href%>', this.innerHTML)"><% = Server.HTMLEncode(itm.name) %></a><%
|
||||
}
|
||||
} else {
|
||||
%><a onMouseOver="ShowInfo2('<%=q_name%>','<%=q_info%>')"><% = itm.name %></a>
|
||||
<%}%></li><%
|
||||
}
|
||||
%></ul></li><%
|
||||
if (i == menuKop.length-1) { %></ul><% }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Now client side functions
|
||||
%>
|
||||
<script type="text/javascript">
|
||||
// Vul verklarende tekst op de portal
|
||||
function ShowInfo2(name, text)
|
||||
{
|
||||
if (document.getElementById("item_desc_fixed0"))
|
||||
document.getElementById("item_desc_fixed0").innerHTML = "<p class=info>" + name + "</p><p class=infoText>"+ text + "</p>";
|
||||
}
|
||||
|
||||
function CreateBookmarkLink(title, url)
|
||||
{
|
||||
//title = "Webpage Title";
|
||||
//url = "Webpage URL";
|
||||
if (window.sidebar) {
|
||||
// Mozilla Firefox Bookmark
|
||||
window.sidebar.addPanel(title, url,"");
|
||||
} else if( window.external ) {
|
||||
// IE Favorite
|
||||
window.external.AddFavorite( url, title);
|
||||
} else if(window.opera && window.print) {
|
||||
// Opera Hotlist
|
||||
return true;
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<%
|
||||
|
||||
function fillMenuArray() {
|
||||
// Levert een tweedimensionaal menu-array op met alle opties, in de juiste volgorde,
|
||||
// waarbij 0=personal, 1=professional, 2=management
|
||||
// als er nog niet is ingelogd, wordt null opgeleverd.
|
||||
|
||||
if (user_key == -1)
|
||||
|
||||
if (user_key == -1)
|
||||
return null;
|
||||
|
||||
|
||||
var lresArr = new Array();
|
||||
lresArr[0] = new Array();
|
||||
lresArr[1] = new Array();
|
||||
@@ -153,15 +227,15 @@ DOCTYPE_Disable = true;
|
||||
+ " )";
|
||||
lsql += " WHERE groep IS NOT NULL"; // veiligheidje
|
||||
lsql += " ORDER BY groep,fac_menu_volgnr, label, exploded ";
|
||||
|
||||
|
||||
var loRs = Oracle.Execute( lsql );
|
||||
}
|
||||
|
||||
|
||||
// Verwerk de opties tot menu-array. Het is van belang dat er geen nodeloze
|
||||
// items (zoals kop zonder items) in voorkomen, omdat zichtbaarheid
|
||||
// items (zoals kop zonder items) in voorkomen, omdat zichtbaarheid
|
||||
// van de groep op lengte>0 wordt bepaald
|
||||
var queueKop = null;
|
||||
while( !loRs.eof )
|
||||
while( !loRs.eof )
|
||||
{
|
||||
// __Log("menu-"+loRs("label").value);
|
||||
mlabel = fac.localstring(loRs("label").value);
|
||||
@@ -173,17 +247,17 @@ DOCTYPE_Disable = true;
|
||||
if (lindex[grp] == -1)
|
||||
{
|
||||
// De allereerste van iedere groep MOET een kop worden
|
||||
if (loRs("url").value == null)
|
||||
{
|
||||
if (loRs("url").value == null)
|
||||
{
|
||||
/* Dit is een kop; onthouden en op naar de volgende MITS er een item achteraan komt
|
||||
* uitgesteld uitvoren: lresArr[grp][++lindex[grp]] = new MenuKop(mlabel, loRs("fac_menu_info").value);
|
||||
*/
|
||||
// __Log('kop1');
|
||||
queueKop = { groep: grp, label: mlabel, info: loRs("fac_menu_info").value };
|
||||
// Pas op: de index blijft voorlopig nog op -1 staan
|
||||
} else {
|
||||
} else {
|
||||
// Deze eerste is geen kop; gebruik de gequeuede kop of verzin zelf er desnoods zelf eentje bij.
|
||||
if (queueKop)
|
||||
if (queueKop)
|
||||
{
|
||||
lresArr[grp][++lindex[grp]] = new MenuKop(queueKop.label, queueKop.info);
|
||||
queueKop = null;
|
||||
@@ -192,9 +266,9 @@ DOCTYPE_Disable = true;
|
||||
}
|
||||
lresArr[grp][lindex[grp]].addItem(mlabel, loRs("url").value , loRs("fac_menu_info").value, loRs("depth").value);
|
||||
// __Log('regel1');
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
// Niet de eerste regel van deze groep
|
||||
if (loRs("url").value == null) // het is een kop; registreren en op naar de volgende
|
||||
@@ -203,7 +277,7 @@ DOCTYPE_Disable = true;
|
||||
queueKop = { groep: grp, label: mlabel, info: loRs("fac_menu_info").value };
|
||||
// __Log('kop2');
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
// geen kop, gewoon een entry. Dan nu eerst de eventueel nog gequeue-de kop invoegen
|
||||
if (queueKop) {
|
||||
@@ -222,33 +296,37 @@ DOCTYPE_Disable = true;
|
||||
return lresArr;
|
||||
}
|
||||
|
||||
var menuitems = fillMenuArray();
|
||||
|
||||
if (menuitems) {
|
||||
%><div id="menutabs" class="ui-tabs ui-layout-west">
|
||||
<ul class="ui-tabs-nav"><%
|
||||
if (menuitems[1].length > 0) {
|
||||
%><li><a href="#ProfFAC"><span class="menutab"><%=lcl_menu_prof%></span></a></li><%
|
||||
}
|
||||
if (menuitems[0].length > 0) {
|
||||
%><li><a href="#PersFAC"><span class="menutab"><%=lcl_menu_pers%></span></a></li><%
|
||||
}
|
||||
if (menuitems[2].length > 0) {
|
||||
%><li><a href="#MgtFAC"><span class="menutab"><%=lcl_menu_config%></span></a></li><%
|
||||
}
|
||||
%></ul>
|
||||
<!-- add wrapper that Layout will auto-size to 'fill space' -->
|
||||
<div class="ui-layout-content">
|
||||
<div id="ProfFAC" class="ui-tabs"><%
|
||||
CreateItemsRow(menuitems[1]);
|
||||
%></div>
|
||||
<div id="PersFAC" class="ui-tabs-hide"><%
|
||||
CreateItemsRow(menuitems[0]);
|
||||
%></div>
|
||||
<div id="MgtFAC" class="ui-tabs-hide"><%
|
||||
CreateItemsRow(menuitems[2]);
|
||||
%></div>
|
||||
</div>
|
||||
</div><%
|
||||
function generateMenu()
|
||||
{
|
||||
var menuitems = fillMenuArray();
|
||||
|
||||
if (menuitems) {
|
||||
%>
|
||||
<ul class="ui-tabs-nav"><%
|
||||
if (menuitems[1].length > 0) {
|
||||
%><li><a href="#ProfFAC"><span class="menutab"><%=lcl_menu_prof%></span></a></li><%
|
||||
}
|
||||
if (menuitems[0].length > 0) {
|
||||
%><li><a href="#PersFAC"><span class="menutab"><%=lcl_menu_pers%></span></a></li><%
|
||||
}
|
||||
if (menuitems[2].length > 0) {
|
||||
%><li><a href="#MgtFAC"><span class="menutab"><%=lcl_menu_config%></span></a></li><%
|
||||
}
|
||||
%></ul>
|
||||
<!-- add wrapper that Layout will auto-size to 'fill space' -->
|
||||
<div class="ui-layout-content">
|
||||
<div id="ProfFAC" class="ui-tabs-panel"><%
|
||||
CreateItemsRow(menuitems[1]);
|
||||
%></div>
|
||||
<div id="PersFAC" class="ui-tabs-panel ui-tabs-hide"><%
|
||||
CreateItemsRow(menuitems[0]);
|
||||
%></div>
|
||||
<div id="MgtFAC" class="ui-tabs-panel ui-tabs-hide"><%
|
||||
CreateItemsRow(menuitems[2]);
|
||||
%></div>
|
||||
</div>
|
||||
<%
|
||||
}
|
||||
}
|
||||
%>
|
||||
@@ -1,28 +1,33 @@
|
||||
<%@language="javascript"%>
|
||||
<% /*
|
||||
$Revision: 1 $
|
||||
$Modtime: 26-09-09 0:06 $
|
||||
|
||||
$Revision: 2 $
|
||||
$Modtime: 1-11-09 23:12 $
|
||||
|
||||
File: fac_user_messages.asp (formerly news/news.asp)
|
||||
Status: 99% (goed genoeg)
|
||||
Description: Toont de gebruikersberichten (statusinfo) in een grid
|
||||
|
||||
Note: Niet erg gewijzigd, wel wat harde aannames toegevoegd,
|
||||
er worden bv maar 25 regels getoond, max
|
||||
Functioneel is de noodzaak voor deze info veel minder
|
||||
Functioneel is de noodzaak voor deze info veel minder
|
||||
geworden vanwege fac_list die veel meer info toont.
|
||||
|
||||
|
||||
Geen resulttable hier, bij uitzondering
|
||||
Hoeft niet, maag wel. Ook styling zou naar css mogen.
|
||||
|
||||
|
||||
*/ %>
|
||||
<%Response.Expires=0;%>
|
||||
<!-- #include file="../../cust/install.inc" -->
|
||||
<!-- #include file="../Shared/iface.inc" -->
|
||||
<!-- #include file="../Shared/escape.inc" -->
|
||||
<%
|
||||
FCLTHeader.Requires({ plugins: ["jQuery"],
|
||||
js: ["./fac_user_messages.js"],
|
||||
css: []});
|
||||
%>
|
||||
<html>
|
||||
<head>
|
||||
<% FCLTHeader.Generate() %>
|
||||
<script type="text/javascript" src="fac_user_messages.js"></script>
|
||||
<!-- #include file="../Shared/datetime.inc" -->
|
||||
<meta http-equiv="refresh" content="<%=refreshrate%>">
|
||||
<style>
|
||||
@@ -39,7 +44,9 @@
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body class="statusinfo" onLoad="setTimeout('if (parent.SetMessInfo) parent.SetMessInfo(newMess, totalMess)', 100);">
|
||||
<body class="statusinfo">
|
||||
<% IFRAMER_HEADER(lcl_recent_news, {}); %>
|
||||
|
||||
<table cellspacing="0" cellpadding="0" border="0" width='100%'>
|
||||
<%
|
||||
if( user_key != -1 ) {
|
||||
@@ -89,7 +96,7 @@ if (portalnewsmax == -1 || total <= portalnewsmax) {
|
||||
%>
|
||||
<tr messKey=<%=oRs("web_user_message_key")%> class="<% = (isNew ? (oRs(6).value==1?'newstextFreshRed':'newstextFresh') : 'newstext')%>">
|
||||
<td class="markread" title="<%=lcl_mark_as_read%>"
|
||||
onClick="javascript:MarkAsRead(this, <%=isNew?1:0%>)"
|
||||
onClick="javascript:MarkAsRead(this, <%=isNew?1:0%>)">
|
||||
</td>
|
||||
<td valign="top"> <% // as small as possible %>
|
||||
<nobr><%=toDateTimeString(new Date(oRs("tijd").value))%></nobr></td>
|
||||
@@ -124,8 +131,10 @@ if (portalnewsmax == -1 || total <= portalnewsmax) {
|
||||
</table>
|
||||
|
||||
<script type="text/javascript">
|
||||
var newMess = <% = newMess %>;
|
||||
var totalMess = '<% = total %><% = maxPassed?lcl_news_moreexist_mark:"" %>';
|
||||
$(document).ready(function ()
|
||||
{
|
||||
FcltMgr.setHeaderExtraTitle("<%=' ('+lcl_new%>: <strong><% = newMess %></strong>, <%=lcl_total%>: <strong><% = total %><% = maxPassed?lcl_news_moreexist_mark:"" %></strong>)")
|
||||
});
|
||||
</script>
|
||||
<% // hidFrame is voor setReadFlag() %>
|
||||
<iframe src="../Shared/empty.asp" id="hidFrame" style="display:none"></iframe>
|
||||
|
||||
@@ -1,66 +1,38 @@
|
||||
<%@ language = "JavaScript" %>
|
||||
<% /*
|
||||
$Revision: 1 $
|
||||
$Modtime: 29-09-09 17:13 $
|
||||
$Revision: 2 $
|
||||
$Modtime: 3-11-09 11:05 $
|
||||
|
||||
File: fac/header.asp
|
||||
Status: 70%
|
||||
Status: 90%
|
||||
Context: iframe vanuit appl/fac/Facilitor.asp
|
||||
|
||||
*/
|
||||
Response.Expires=0;
|
||||
%>
|
||||
<!-- #include file="../../cust/install.inc" -->
|
||||
<!-- #include file="../Shared/persoonselector.inc" -->
|
||||
<!-- #include file="../Shared/productsearch.inc" -->
|
||||
<!-- #include file="../Shared/escape.inc" -->
|
||||
<%
|
||||
FCLTHeader.Requires({ plugins: [], js: ["FcltMgr.js"] });
|
||||
FCLTHeader.Requires({ plugins: [], js: [] });
|
||||
|
||||
function todayString() {
|
||||
var d=new Date()
|
||||
var weekday=new Array(7)
|
||||
|
||||
weekday[0]=lcl_zondag;
|
||||
weekday[1]=lcl_maandag;
|
||||
weekday[2]=lcl_dinsdag;
|
||||
weekday[3]=lcl_woensdag;
|
||||
weekday[4]=lcl_donderdag;
|
||||
weekday[5]=lcl_vrijdag;
|
||||
weekday[6]=lcl_zaterdag;
|
||||
|
||||
var month=new Array(12)
|
||||
month[0]=lcl_januari;
|
||||
month[1]=lcl_februari;
|
||||
month[2]=lcl_maart;
|
||||
month[3]=lcl_april;
|
||||
month[4]=lcl_mei;
|
||||
month[5]=lcl_juni;
|
||||
month[6]=lcl_juli;
|
||||
month[7]=lcl_augustus;
|
||||
month[8]=lcl_september;
|
||||
month[9]=lcl_oktober;
|
||||
month[10]=lcl_november;
|
||||
month[11]=lcl_december;
|
||||
|
||||
return weekday[d.getDay()] + " " + d.getDate() + " " + month[d.getMonth()] + " " + d.getFullYear();
|
||||
return LCL.shared.calendar_names.days[d.getDay()] + " " + d.getDate() + " "
|
||||
+ LCL.shared.calendar_names.months[d.getMonth()] + " " + d.getFullYear();
|
||||
}
|
||||
|
||||
%>
|
||||
<html>
|
||||
<head>
|
||||
<%
|
||||
FCLTHeader.Generate()
|
||||
function generateHeader()
|
||||
{
|
||||
%>
|
||||
<script type="text/javascript">
|
||||
function setGlobalUser (prs_key, prs_naam) {
|
||||
FcltMgr.setCaller({prs_key: prs_key, prs_naam: prs_naam});
|
||||
FcltMgr.setCaller({prs_key: prs_key, prs_naam: prs_naam});
|
||||
}
|
||||
|
||||
function openHelp()
|
||||
{
|
||||
var ifrm = parent.FcltMgr.activeTab();
|
||||
FcltMgr.openDetail('appl/fac/help.asp?url='+escape(ifrm.src),'<%=lcl_help%>');
|
||||
var ifrm = parent.FcltMgr._pageManager._activeTab();
|
||||
parent.FcltMgr.openDetail('appl/fac/help.asp?url='+escape(ifrm.src),'<%=lcl_help%>');
|
||||
}
|
||||
function logOff()
|
||||
{
|
||||
@@ -68,22 +40,24 @@ function todayString() {
|
||||
}
|
||||
</script>
|
||||
|
||||
</head>
|
||||
<body id="header">
|
||||
<div id="headerblok">
|
||||
<div id="headerblok" style='height:100%'>
|
||||
<div id="headerprefix"><%=lcl_facilitor_header_prefix%></div>
|
||||
<div id="headerdate"><%=todayString()%></div>
|
||||
<%
|
||||
if (user_key != -1) {
|
||||
%>
|
||||
<div id="headersuggest">
|
||||
<%
|
||||
// Suggest om een persoon te vinden. @@TODO: welke autorisatie gebruiken we hiervoor!!??!
|
||||
FCLTpersoonselector("sName_key", "sgPerson", { perslidKey: -1,
|
||||
//filtercode: "M",
|
||||
moreinfo: true,
|
||||
whenEmpty: lcl_select_persoon_generic,
|
||||
onChange: "setGlobalUser"
|
||||
});
|
||||
// Suggest om een persoon te vinden. Gebruikt de scope van de telefoongids
|
||||
var authparams = user.checkAutorisation("WEB_PHONEB", true);
|
||||
if (authparams && authparams.PRSreadlevel < 9) {
|
||||
FCLTpersoonselector("sName_key", "sgPerson", { perslidKey: -1,
|
||||
moreinfo: true,
|
||||
whenEmpty: lcl_select_persoon_generic,
|
||||
onChange: "setGlobalUser",
|
||||
autlevel: authparams.PRSreadlevel
|
||||
});
|
||||
}
|
||||
%>
|
||||
</div>
|
||||
<div id="headersearch">
|
||||
@@ -91,11 +65,8 @@ function todayString() {
|
||||
FCLTproductsearch ();
|
||||
%>
|
||||
</div>
|
||||
<div id="headerfunctions"><div id="headerhelp" onclick="openHelp()"><%=lcl_help%></div> | <div id="headerlogout" onclick="logOff()"><% = lcl_logoff %></a></div></div>
|
||||
<div id="headerfunctions"><%if (user_key != -1) {%><div id="loggedinuser"><%=lcl_loggedin_as + user.naam()%></div><%}%><div id="headerhelp" onclick="openHelp()"><%=lcl_help%></div> | <div id="headerlogout" onclick="logOff()"><% = lcl_logoff %></a></div></div>
|
||||
<% } %>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
if (typeof initCaller != "undefined") initCaller();
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
<% } %>
|
||||
@@ -1,7 +1,8 @@
|
||||
<%@language = "javascript" %>
|
||||
<% /*
|
||||
$Revision: 2 $
|
||||
$Modtime: 1-11-09 23:40 $
|
||||
$Revision: 3 $
|
||||
$Modtime: 3-11-09 10:12 $
|
||||
|
||||
*/ %>
|
||||
<!-- #include file="../../cust/install.inc" -->
|
||||
<!-- #include file="../Shared/iface.inc" -->
|
||||
@@ -34,7 +35,7 @@
|
||||
|
||||
<body id="loginbody">
|
||||
|
||||
<form id="ifl_f" action="ifcp.asp" method="post">
|
||||
<form id="ifl_f" action="login_save.asp" method="post">
|
||||
<input type="hidden" id="mobile" name="mobile" value="0">
|
||||
<TABLE id="logintable">
|
||||
<TR>
|
||||
@@ -59,10 +60,8 @@
|
||||
<div id="buttons">
|
||||
<%
|
||||
buttons = [ { title: lcl_logon, action: "submit()" } ];
|
||||
|
||||
if (true || (!dis)&&(os_logon)) {
|
||||
buttons.push({ title: lcl_know_me, action: "youknowme()" });
|
||||
// CreateButton("<nobr>" + lcl_know_me + "</nobr>", "document.forms.ifl_f.action = 'testauth.asp';document.forms.ifl_f.submit();", "B");
|
||||
if (!dis && os_logon) {
|
||||
buttons.push({ title: lcl_know_me, action: "youknowme()" });
|
||||
}
|
||||
CreateButtons(buttons);
|
||||
%></div>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<%@ language = "JavaScript" %>
|
||||
<% /*
|
||||
$Revision: 1 $
|
||||
$Modtime: 25-09-09 23:10 $
|
||||
$Revision: 2 $
|
||||
$Modtime: 2-11-09 9:45 $
|
||||
|
||||
File: fac/body.asp
|
||||
The content panel of the Facilitor portal page, "My Facilitor"
|
||||
@@ -22,13 +22,6 @@ dtc = dtc.valueOf();
|
||||
<%
|
||||
FCLTHeader.Generate()
|
||||
%>
|
||||
<script type="text/javascript">
|
||||
// called by content of mynewsframe.. (violating our own rules)
|
||||
function SetMessInfo(newMess, total) {
|
||||
document.getElementById("mymessagesinfo").innerHTML = "<%=lcl_recent_news+' ('+lcl_new%>: <strong>" + newMess +
|
||||
"</strong>, <%=lcl_total%>: <strong>" + total + "</strong>)";
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body id="mainbody">
|
||||
@@ -37,12 +30,11 @@ dtc = dtc.valueOf();
|
||||
<div id="mywelcometitle"><%=lcl_facilitor_welcome%></div>
|
||||
<div id="mywelcomeinfo"><%=lcl_mynews%></div>
|
||||
<iframe src="fac_nieuws.asp?<%=dtc%>" id="mywelcomeframe"
|
||||
width="100%" marginwidth="0" marginheight="0" frameborder="0" scrolling="auto" onload="ExpandFrame(this.id, 20)">
|
||||
width="100%" marginwidth="0" marginheight="0" frameborder="0" scrolling="auto" onload="ExpandFrame(this.id)">
|
||||
</iframe>
|
||||
</div>
|
||||
|
||||
<div id="myactions">
|
||||
<span id="myactionsinfo"><%=lcl_myfacilities%></span>
|
||||
<div id="myactionscontainer">
|
||||
<iframe src="fac_fe_list.asp?<%=dtc%>" id="myactionsframe"
|
||||
width="100%" marginwidth="0" marginheight="0" frameborder="0" scrolling="auto" onload="ExpandFrame(this.id)">
|
||||
@@ -52,14 +44,10 @@ dtc = dtc.valueOf();
|
||||
|
||||
<% if (1) { %>
|
||||
<div id="mymessages">
|
||||
<div>
|
||||
<div id="mymessagesinfo">Loading..</div>
|
||||
</div>
|
||||
<div id="mynewscontainer">
|
||||
<iframe src="fac_user_messages.asp?<%=dtc%>" id="mynewsframe"
|
||||
width="100%" marginwidth="0" marginheight="0" frameborder="0" scrolling="auto" >
|
||||
width="100%" style="padding:0px" marginwidth="0" marginheight="0" frameborder="0" scrolling="auto" onload="ExpandFrame(this.id)">
|
||||
</iframe>
|
||||
</div>
|
||||
</div>
|
||||
<% } %>
|
||||
<% } %>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<%@language = "javascript" %>
|
||||
<% /*
|
||||
$Revision: 2 $
|
||||
$Modtime: 23-10-09 12:41 $
|
||||
$Revision: 3 $
|
||||
$Modtime: 28-10-09 23:53 $
|
||||
|
||||
File: fin_search.asp
|
||||
Status: 80%
|
||||
@@ -214,7 +214,7 @@ if (!access)
|
||||
<%
|
||||
BUTTONS_START();
|
||||
CreateButton(lcl_search, "doSubmit();", 100);
|
||||
// Er is geen secundaryblok hier CreateButton(lcl_more, "iface_toggleSecondarySearchblock();", 100, "btnMoreLess");
|
||||
// Er is geen secundaryblok hier CreateButton(LCL.shared.more, "iface_toggleSecondarySearchblock();", 100, "btnMoreLess");
|
||||
// Altijd kenmerken. Niet afhankelijk van backoffice rol
|
||||
CreateButton(lcl_obj_advanced, "myModal();", 100, 'bAdvanced'); // met actuele waarden van opdrtype en vorig filter
|
||||
BUTTONS_END();
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<%@language = "javascript" %>
|
||||
<% /*
|
||||
$Revision: 1 $
|
||||
$Modtime: 28-09-09 11:16 $
|
||||
$Revision: 2 $
|
||||
$Modtime: 28-10-09 23:54 $
|
||||
Status: 90%
|
||||
*/ %>
|
||||
<!-- #include file="../../cust/install.inc" -->
|
||||
@@ -101,7 +101,7 @@ var authparams = user.checkAutorisation(autfunction);
|
||||
alert("<%=lcl_ins_nosrtdeel_selected%>");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
var lsrtdeel_key_str = getSrtdeelString()
|
||||
var url = "load_kenmerk.asp?srtdeel_str=" + lsrtdeel_key_str
|
||||
+ "&urole=<%=urole%>"
|
||||
@@ -382,7 +382,7 @@ var authparams = user.checkAutorisation(autfunction);
|
||||
BUTTONS_START();
|
||||
CreateButton(lcl_search, "doSubmit();", 100);
|
||||
if (!frontend)
|
||||
CreateButton(lcl_more, "iface_toggleSecondarySearchblock();", 100, "btnMoreLess");
|
||||
CreateButton(LCL.shared.more, "iface_toggleSecondarySearchblock();", 100, "btnMoreLess");
|
||||
if (backo)
|
||||
{
|
||||
//if (fac_fun_sort)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
$Revision: 1 $
|
||||
$Modtime: 29-09-09 10:37 $
|
||||
$Revision: 2 $
|
||||
$Modtime: 29-10-09 13:49 $
|
||||
|
||||
File: FcltJquery.js
|
||||
Status: 95%
|
||||
@@ -21,22 +21,65 @@ function FcltCallback(json, textStatus)
|
||||
alert("FcltCallback: " + textStatus);
|
||||
};
|
||||
|
||||
function FcltCallbackRefresh(json, textStatus)
|
||||
{
|
||||
if (textStatus == "success")
|
||||
{
|
||||
if (json.message) alert(json.message);
|
||||
if (json.success)
|
||||
{
|
||||
window.location.reload();
|
||||
}
|
||||
}
|
||||
else
|
||||
alert("FcltCallbackRefresh: " + textStatus);
|
||||
};
|
||||
|
||||
function FcltCallbackDirtyLine(json, textStatus)
|
||||
{
|
||||
if (textStatus == "success")
|
||||
{
|
||||
if (json.message) alert(json.message);
|
||||
if (json.success)
|
||||
{
|
||||
$("#row" + json.key).addClass('dirty');
|
||||
}
|
||||
}
|
||||
else
|
||||
alert("FcltCallbackDirtyLine: " + textStatus);
|
||||
};
|
||||
|
||||
// Als FcltCallback maar dan met autoclose als json.success
|
||||
function FcltCallbackClose(json, textStatus)
|
||||
{
|
||||
if (textStatus == "success")
|
||||
{
|
||||
if (json.message) alert(json.message);
|
||||
if (json.success)
|
||||
{
|
||||
json.close = true;
|
||||
FcltMgr.closeDetail(window, json);
|
||||
}
|
||||
}
|
||||
else
|
||||
alert("FcltCallback: " + textStatus);
|
||||
};
|
||||
|
||||
// Roep met Ajax syncroon(!) een asp bestand aan en lever de JSON data op.
|
||||
function FcltSyncgetJSON(url, data)
|
||||
{
|
||||
var globalData;
|
||||
jQuery.ajax({
|
||||
type: "GET",
|
||||
url: url,
|
||||
async: false,
|
||||
data: data,
|
||||
dataType: "json",
|
||||
success: function (data, textStatus) { globalData = data; }
|
||||
});
|
||||
if (globalData.warning)
|
||||
alert(globalData.warning);
|
||||
if (globalData.error)
|
||||
alert(globalData.error);
|
||||
jQuery.ajax({ type: "GET",
|
||||
url: url,
|
||||
async: false,
|
||||
data: data,
|
||||
dataType: "json",
|
||||
success: function (data, textStatus) { globalData = data; }
|
||||
});
|
||||
if (globalData && globalData.warning)
|
||||
alert(globalData.warning);
|
||||
if (globalData && globalData.error)
|
||||
alert(globalData.error);
|
||||
return globalData;
|
||||
}
|
||||
|
||||
|
||||
@@ -4,106 +4,235 @@
|
||||
|
||||
FcltMgr =
|
||||
{
|
||||
_tabshost: null,
|
||||
_caller: null,
|
||||
HostTabs: function(tabs_id) // tabs_id moet id van jQuery tabs object zijn
|
||||
_pageManager: null, // defaultManager of tabbedManager
|
||||
defaultManager :
|
||||
{
|
||||
this._tabshost = tabs_id;
|
||||
this._jtabshost = "#"+tabs_id;
|
||||
},
|
||||
|
||||
// Open een nieuwe tab 'url' in een iframe en 'Titel' als label
|
||||
openTab: function (url, titel)
|
||||
{
|
||||
//var prev_selected = $(this._jtabshost).tabs('option', 'selected');
|
||||
url= "../shared/iframify.asp?src=../../" + escape(url);
|
||||
|
||||
var tpl = "<li><a href='#{href}'><span>#{label}</span>"
|
||||
+ "<div style='display:inline' class='tabclose' onclick='FcltMgr.closeTab(this)'> X</div>"
|
||||
+ "</a></li>"
|
||||
$(this._jtabshost).tabs('option', 'tabTemplate', tpl);
|
||||
//$(this._jtabshost).tabs("add", url, titel + "<span class='tabclose' onclick='FcltMgr.closeTab(this)'> X</span>");
|
||||
//debugger;
|
||||
$(this._jtabshost).tabs("add", url, titel);
|
||||
},
|
||||
|
||||
_panelHot: function(i)
|
||||
{
|
||||
// TODO: Dit volgens mij niet geheel legaal
|
||||
var ifrm = $($.data($(this._jtabshost)[0], 'tabs').panels[i]).find('iframe.frametab')[0];
|
||||
return (window.frames[ifrm.name].window.FcltMgr &&
|
||||
window.frames[ifrm.name].window.FcltMgr._editactive)
|
||||
},
|
||||
|
||||
// Sluit een tabblad. Zelf moet verwijzen naar het tabje (of een child daarvan?)
|
||||
closeTab: function (zelf)
|
||||
{
|
||||
var active = $(this._jtabshost).tabs('option', 'selected');
|
||||
if (this._panelHot(active))
|
||||
name: "defaultManager",
|
||||
openDetail: function(url, titel)
|
||||
{
|
||||
if (!confirm("TODO: Sluiten zonder opslaan?"))
|
||||
return false;
|
||||
window.open("../../" + url);
|
||||
},
|
||||
|
||||
closeDetail: function(thiswindow, params)
|
||||
{
|
||||
window.close();
|
||||
},
|
||||
|
||||
setTitle: function (title, params)
|
||||
{
|
||||
if (title)
|
||||
window.title = title;
|
||||
}
|
||||
|
||||
// Don't ask me how this works...
|
||||
var li = $(zelf).parents('li:eq(0)')[0];
|
||||
$(this._jtabshost).tabs('remove', $('li', $(this._jtabshost)).index(li));
|
||||
// TODO: Notificatie naar child misschien
|
||||
// Bijvoorbeeld catering reservering waar uiteindelijk niets is gereserveerd opruimen
|
||||
},
|
||||
|
||||
// Sluit alle tabbladen behalve de huidige en behalve _editactive
|
||||
closeAll: function (zelf)
|
||||
tabbedManager :
|
||||
{
|
||||
var $tabs = $(this._jtabshost);
|
||||
var active = $tabs.tabs('option', 'selected');
|
||||
if (confirm("lcl_Sluiten alle inactieve tabs?"))
|
||||
name: "tabbedManager",
|
||||
openDetail: function(url, titel)
|
||||
{
|
||||
for (var i=$tabs.tabs('length')-1; i>0; i--)
|
||||
FcltMgr._pageManager._openTab(url, titel);
|
||||
},
|
||||
closeDetail: function(thiswindow, params)
|
||||
{
|
||||
var active = $(this._jtabshost).tabs('option', 'selected');
|
||||
$(this._jtabshost).tabs('remove', active);
|
||||
return;
|
||||
},
|
||||
setTitle: function (title, params)
|
||||
{
|
||||
params = params || {};
|
||||
var active = $(this._jtabshost).tabs('option', 'selected');
|
||||
var tab = $($.data($(this._jtabshost)[0], 'tabs').anchors[active])
|
||||
if (title)
|
||||
tab.find("span").text(title);
|
||||
if (params.hot)
|
||||
{
|
||||
if (i != active && !this._panelHot(i))
|
||||
this.hot = params.hot;
|
||||
tab.find(".tabclose").addClass('hot');
|
||||
}
|
||||
else
|
||||
{
|
||||
this.hot = false;
|
||||
tab.find(".tabclose").removeClass('hot');
|
||||
}
|
||||
},
|
||||
|
||||
// Sluit alle tabbladen behalve de huidige en behalve _editactive
|
||||
closeAll: function (zelf)
|
||||
{
|
||||
var $tabs = $(this._jtabshost);
|
||||
var active = $tabs.tabs('option', 'selected');
|
||||
if (confirm(LCL.shared.closealltabs))
|
||||
{
|
||||
for (var i=$tabs.tabs('length')-1; i>0; i--)
|
||||
{
|
||||
$(this._jtabshost).tabs('remove', i);
|
||||
if (i != active && !this._panelHot(i))
|
||||
{
|
||||
$(this._jtabshost).tabs('remove', i);
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
init: function (tabs_id)
|
||||
{
|
||||
this._tabshost = tabs_id;
|
||||
this._jtabshost = "#"+tabs_id;
|
||||
|
||||
var $tabs = $(this._jtabshost).tabs(
|
||||
{ cache: true, // anders op tabwissel al herlading
|
||||
add: function(event, ui) {
|
||||
$tabs.tabs('select', '#' + ui.panel.id);
|
||||
},
|
||||
load: function(event, ui) {
|
||||
var ifrm = $(ui.panel).find('iframe.frametab')[0];
|
||||
ifrm.tabpanelid = ui.panel.id;
|
||||
ifrm.parentNode.style.padding="0px"; // lukt niet goed via css?
|
||||
FcltMgr._pageManager._resizeActiveTab(); // iframe content kan nog even duren maar dat geeft niet.
|
||||
},
|
||||
remove: function(event, ui) {
|
||||
$(ui.panel).remove(); // Onderliggende html opruimen
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
$(this._jtabshost).bind('tabsshow', function(event, ui) {
|
||||
// Direct na selecteren resizen omdat alleen de active geresized was
|
||||
var ifrm = $(ui.panel).find('iframe.frametab')[0];
|
||||
if (ifrm)
|
||||
{
|
||||
FcltMgr._pageManager._timedResizeActiveTab();
|
||||
}
|
||||
});
|
||||
|
||||
$(this._jtabshost).resize(function (){
|
||||
FcltMgr._pageManager._timedResizeActiveTab();
|
||||
});
|
||||
|
||||
},
|
||||
|
||||
// Internal to tabbedManager
|
||||
_tabshost: null,
|
||||
_jtabshost: null,
|
||||
|
||||
// Open een nieuwe tab 'url' in een iframe en 'Titel' als label
|
||||
_openTab: function (url, titel)
|
||||
{
|
||||
//var prev_selected = $(this._jtabshost).tabs('option', 'selected');
|
||||
url= "../shared/iframify.asp?src=../../" + escape(url);
|
||||
|
||||
var tpl = "<li><a href='#{href}'><span>#{label}</span>"
|
||||
+ "<div style='display:inline' class='tabclose' onclick='FcltMgr._pageManager._closeTab(this)'> X</div>"
|
||||
+ "</a></li>"
|
||||
$(this._jtabshost).tabs('option', 'tabTemplate', tpl);
|
||||
//$(this._jtabshost).tabs("add", url, titel + "<span class='tabclose' onclick='FcltMgr.closeTab(this)'> X</span>");
|
||||
//debugger;
|
||||
$(this._jtabshost).tabs("add", url, titel||"Loading..."); // Titel moet maar gezet worden door child
|
||||
},
|
||||
|
||||
_panelHot: function(i)
|
||||
{
|
||||
// TODO: Dit volgens mij niet geheel legaal
|
||||
var ifrm = $($.data($(this._jtabshost)[0], 'tabs').panels[i]).find('iframe.frametab')[0];
|
||||
return (window.frames[ifrm.name].window.FcltMgr &&
|
||||
window.frames[ifrm.name].window.FcltMgr._editactive)
|
||||
},
|
||||
|
||||
// Sluit een tabblad. Zelf moet verwijzen naar het tabje (of een child daarvan?)
|
||||
_closeTab: function (zelf)
|
||||
{
|
||||
if (FcltMgr._DetailHot())
|
||||
{
|
||||
if (!confirm(LCL.shared.closeandignore))
|
||||
return false;
|
||||
}
|
||||
|
||||
var li = $(zelf).parents('li:eq(0)')[0];
|
||||
if (!li)
|
||||
{
|
||||
alert("Internal Fcltmgr error: no parents found");
|
||||
}
|
||||
$(this._jtabshost).tabs('remove', $('li', $(this._jtabshost)).index(li));
|
||||
// TODO: Notificatie naar child misschien
|
||||
// Bijvoorbeeld catering reservering waar uiteindelijk niets is gereserveerd opruimen
|
||||
},
|
||||
|
||||
_timerID : null,
|
||||
|
||||
_timedResizeActiveTab: function ()
|
||||
{
|
||||
if (this._timerID) clearTimeout(this._timerID);
|
||||
this._timerID = setTimeout(this._resizeActiveTab, 100);// use a delay for IE because the resize event fires repeatly
|
||||
},
|
||||
|
||||
_resizeActiveTab: function ()
|
||||
{
|
||||
var ifrm = FcltMgr._pageManager._activeTab();
|
||||
if (ifrm) {
|
||||
// PF: constateerde dat via een tragere lijn (vpn) ifrm er niet op tijd kan zijn
|
||||
$(ifrm).width($(FcltMgr._pageManager._jtabshost).width()- 1);
|
||||
$(ifrm).height($(FcltMgr._pageManager._jtabshost).height()- 35);
|
||||
}
|
||||
},
|
||||
// levert het IFRAME object van de actieve tab op.
|
||||
_activeTab: function ()
|
||||
{
|
||||
var active = $(FcltMgr._pageManager._jtabshost).tabs('option', 'selected');
|
||||
// TODO: Dit volgens mij niet geheel legaal
|
||||
var ifrm = $($.data($(FcltMgr._pageManager._jtabshost)[0], 'tabs').panels[active]).find('iframe.frametab')[0];
|
||||
return ifrm
|
||||
|
||||
}
|
||||
},
|
||||
|
||||
_caller: null,
|
||||
|
||||
// De allerhoogste te vinden manager
|
||||
topmanager: function ()
|
||||
{
|
||||
if (parent && parent.FcltMgr && parent.FcltMgr!=this)
|
||||
return parent.FcltMgr.topmanager();
|
||||
else
|
||||
return this;
|
||||
},
|
||||
|
||||
// De hoogste FcltMgr nog net binnen het detail scherm
|
||||
detailManager: function ()
|
||||
{
|
||||
if (FcltMgr.IsTheManager || parent.FcltMgr.IsTheManager)
|
||||
return FcltMgr;
|
||||
else
|
||||
return parent.FcltMgr.detailManager();
|
||||
},
|
||||
|
||||
HostTabs: function(tabs_id) // tabs_id moet id van jQuery tabs object zijn
|
||||
{
|
||||
this._pageManager = this.tabbedManager;
|
||||
this._pageManager.init(tabs_id);
|
||||
},
|
||||
|
||||
|
||||
_DetailHot: function(i)
|
||||
{
|
||||
return FcltMgr.detailManager()._editactive;
|
||||
},
|
||||
|
||||
// Open een detailscherm (bijvoorbeeld vanuit een overzicht scherm)
|
||||
// Als dit vanuit een tab gebeurt dan wordt een nieuwe tab geopend,
|
||||
// anders een nieuw window
|
||||
openDetail: function(url, titel)
|
||||
{
|
||||
//TODO: netter nesting achterhalen
|
||||
if (this._tabshost)
|
||||
this.openTab(url, titel);
|
||||
else
|
||||
{
|
||||
if (parent.FcltMgr)
|
||||
parent.FcltMgr.openDetail(url, titel);
|
||||
else
|
||||
window.open("../../" + url);
|
||||
}
|
||||
FcltMgr._pageManager.openDetail(url, titel)
|
||||
},
|
||||
|
||||
// Als via kruisje gesloten. Geen callback's en dergelijke
|
||||
dialogClose: function (result)
|
||||
{
|
||||
$('div#fcltmodal'+FcltMgr._modalCount).remove();
|
||||
$('div#fcltmodal' + FcltMgr._modalCount).remove();
|
||||
// TODO: Destroy div#fcltmodal and children
|
||||
FcltMgr._modalCount--;
|
||||
},
|
||||
|
||||
// Aan te roepen vanuit modal dialoog met resultaat-data
|
||||
myModalClose: function (params)
|
||||
{
|
||||
params = params || {};
|
||||
$('.ui-dialog-titlebar-close').trigger('click'); // doet indirect dialogClose
|
||||
if (params.cancel)
|
||||
return;
|
||||
// TODO??if (params.refresh)
|
||||
// window.location.href="res_reservering.asp?urole=<%=urole%>&rsv_ruimte_key="+rsv_ruimte_key;
|
||||
},
|
||||
|
||||
// Open een Modaal popup detailscherm (bijvoorbeeld vanuit een overzicht scherm)
|
||||
// Voor schermen waarvan openDetail te veel eer is.
|
||||
// params ondersteunt:
|
||||
@@ -117,40 +246,60 @@ FcltMgr =
|
||||
|
||||
_resizeModal: function(frm)
|
||||
{
|
||||
ExpandFrame(frm.id);
|
||||
var innerDoc = (frm.contentDocument) ? frm.contentDocument : frm.contentWindow.document;
|
||||
|
||||
var newHeight = Math.min(innerDoc.body.scrollHeight, $(window).height()-100);
|
||||
$('div#fcltmodal'+FcltMgr._modalCount).dialog('option', 'height', newHeight+24); // 24 voor kopregel
|
||||
$(frm).height(newHeight);
|
||||
|
||||
var extraWidth = 0;
|
||||
if (newHeight < innerDoc.body.scrollHeight)
|
||||
extraWidth = 24; // scrollbar
|
||||
|
||||
//frm.style.width = "100px"; // trucje om te zorgen dat *versmallen* ook gedetecteerd wordt
|
||||
var newWidth = Math.min(innerDoc.body.scrollWidth+extraWidth+12, $(window).width()-100);
|
||||
|
||||
$('div#fcltmodal'+FcltMgr._modalCount).dialog('option', 'width', newWidth);
|
||||
$(frm).width(newWidth);
|
||||
|
||||
$('div#fcltmodal'+FcltMgr._modalCount).dialog('option', 'position', 'center');
|
||||
},
|
||||
|
||||
// Opent een modal dialoog in de huidige 'detailManager'
|
||||
openModalDetail: function(url, titel, params)
|
||||
{
|
||||
if (!parent || !parent.FcltMgr || parent.FcltMgr._tabshost )
|
||||
{ // niet nog hoger zoeken
|
||||
// if (this._modalCount)
|
||||
// alert("Internal Fcltmgr error: second modal?");
|
||||
this._modalCount++;
|
||||
params = params || {};
|
||||
this._modalCallback[FcltMgr._modalCount] = params.callback;
|
||||
this._modalParams[FcltMgr._modalCount] = params.params;
|
||||
params.width = params.width || 500;
|
||||
//params.height = params.height || 500;
|
||||
params.modal = true;
|
||||
params.title = null;//titel;
|
||||
params.resizable = false;
|
||||
params.close = this.dialogClose; // Voor 'kruisje'
|
||||
//params.stack = true; // Voor nesting
|
||||
$(document.body).append('<div id="fcltmodal'+FcltMgr._modalCount+'" style="padding: 0px;width: ' + params.width + ';height: ' + params.height + '">'
|
||||
+'<IFRAME id="fmodal'+FcltMgr._modalCount+'" name="fmodal'+FcltMgr._modalCount +'"'
|
||||
+'frameborder="0" width="100%" height="100%" onload="FcltMgr._resizeModal(this)">'
|
||||
+' src="../shared/empty.html"'
|
||||
+'</IFRAME>'
|
||||
+'</div>');
|
||||
$('iframe#fmodal'+FcltMgr._modalCount).attr('src', url);
|
||||
$('div#fcltmodal'+FcltMgr._modalCount).dialog(params).dialog('open');
|
||||
// TODO: Destroy div#fcltmodal and children
|
||||
}
|
||||
else
|
||||
parent.FcltMgr.openModalDetail(url, titel, params);
|
||||
FcltMgr.detailManager()._openModalDetail(url, titel, params);
|
||||
},
|
||||
|
||||
_openModalDetail: function(url, titel, params)
|
||||
{
|
||||
|
||||
// niet nog hoger zoeken
|
||||
this._modalCount++;
|
||||
params = params || {};
|
||||
this._modalCallback[FcltMgr._modalCount] = params.callback;
|
||||
this._modalParams[FcltMgr._modalCount] = params.params;
|
||||
params.modal = true;
|
||||
params.title = titel;
|
||||
params.resizable = params.resizable||false;
|
||||
if (params.noClose)
|
||||
{
|
||||
params.closeOnEscape = false,
|
||||
params.open = function(event, ui) { $(".ui-dialog-titlebar-close").hide(); }
|
||||
}
|
||||
|
||||
params.close = this.dialogClose; // Omdat we het vanuit een Iframe willen doen.
|
||||
|
||||
$(document.body).append('<div id="fcltmodal'+FcltMgr._modalCount+'" style="padding: 0px;">'
|
||||
+'<IFRAME id="fmodal'+FcltMgr._modalCount+'" name="fmodal'+FcltMgr._modalCount +'"'
|
||||
+'frameborder="0" width="100%" height="100%" onload="FcltMgr._resizeModal(this)">'
|
||||
+' src="../shared/empty.html"'
|
||||
+'</IFRAME>'
|
||||
+'</div>');
|
||||
$('iframe#fmodal'+FcltMgr._modalCount).attr('src', url);
|
||||
$('div#fcltmodal'+FcltMgr._modalCount).dialog(params).dialog('open');
|
||||
},
|
||||
|
||||
dialogArguments: function()
|
||||
{
|
||||
return parent.FcltMgr._modalParams[parent.FcltMgr._modalCount];
|
||||
@@ -161,6 +310,7 @@ FcltMgr =
|
||||
// Als het een window is wordt geprobeerd het window te sluiten.
|
||||
closeDetail: function(thiswindow, params)
|
||||
{
|
||||
thiswindow = thiswindow || window;
|
||||
params = params || {};
|
||||
if (params.warning)
|
||||
{
|
||||
@@ -170,26 +320,27 @@ FcltMgr =
|
||||
|
||||
if (this._modalCount)
|
||||
{
|
||||
this.myModalClose(params);
|
||||
$('.ui-dialog-titlebar-close').trigger('click'); // doet indirect dialogClose
|
||||
if (params.cancel)
|
||||
return;
|
||||
if (this._modalCallback[FcltMgr._modalCount+1])
|
||||
this._modalCallback[FcltMgr._modalCount+1](params);
|
||||
//this._modalCount--;
|
||||
return;
|
||||
}
|
||||
if (this._tabshost)
|
||||
{
|
||||
var active = $(this._jtabshost).tabs('option', 'selected');
|
||||
$(this._jtabshost).tabs('remove', active);
|
||||
return;
|
||||
}
|
||||
this._editactive = false;
|
||||
// Minstens parent, we kunnen het nooit zelf zijn.
|
||||
if (parent.FcltMgr.detailManager()._modalCount)
|
||||
return parent.FcltMgr.detailManager().closeDetail(thiswindow, params);
|
||||
|
||||
FcltMgr.detailManager()._editactive = false;
|
||||
FcltMgr.setTitle(null, {hot:false});
|
||||
|
||||
if (thiswindow.name)
|
||||
{
|
||||
var ifrm = document.getElementById(thiswindow.name);
|
||||
var ifrm = parent.document.getElementById(thiswindow.name);
|
||||
if (ifrm && ifrm.FcltClose)
|
||||
{
|
||||
return eval(ifrm.FcltClose + "(params)");
|
||||
return eval("(parent." + ifrm.FcltClose + "(params))");
|
||||
}
|
||||
if (ifrm && ifrm.orgsrc)
|
||||
{
|
||||
@@ -197,48 +348,19 @@ FcltMgr =
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (parent.FcltMgr)
|
||||
{
|
||||
parent.FcltMgr.closeDetail(thiswindow, params);
|
||||
}
|
||||
else
|
||||
window.close();
|
||||
FcltMgr._pageManager.closeDetail(window, params);
|
||||
|
||||
},
|
||||
|
||||
// levert het IFRAME object van de actieve tab op.
|
||||
activeTab: function ()
|
||||
closeAll: function (zelf)
|
||||
{
|
||||
var active = $(this._jtabshost).tabs('option', 'selected');
|
||||
// TODO: Dit volgens mij niet geheel legaal
|
||||
var ifrm = $($.data($(this._jtabshost)[0], 'tabs').panels[active]).find('iframe.frametab')[0];
|
||||
return ifrm
|
||||
|
||||
FcltMgr._pageManager.closeAll(zelf);
|
||||
},
|
||||
|
||||
setTitle: function (title, params)
|
||||
{
|
||||
params = params || {};
|
||||
if (this._tabshost)
|
||||
{
|
||||
var active = $(this._jtabshost).tabs('option', 'selected');
|
||||
var tab = $($.data($(this._jtabshost)[0], 'tabs').anchors[active])
|
||||
if (title)
|
||||
tab.find("span").text(title);
|
||||
if (params.hot)
|
||||
{
|
||||
tab.find(".tabclose").addClass('hot');
|
||||
}
|
||||
else
|
||||
tab.find(".tabclose").removeClass('hot');
|
||||
}
|
||||
else
|
||||
{
|
||||
if (parent.FcltMgr)
|
||||
parent.FcltMgr.setTitle(title, params);
|
||||
else
|
||||
if (title)
|
||||
window.title = title;
|
||||
}
|
||||
FcltMgr._pageManager.setTitle(title, params);
|
||||
},
|
||||
|
||||
// Zet het extra-titelblok in een IFRAMERHEADER
|
||||
@@ -250,24 +372,39 @@ FcltMgr =
|
||||
// Aan te roepen door een childwindow als hijzelf resized is (bijvoorbeeld ++bezoekerregels)
|
||||
resized: function(thiswindow, params)
|
||||
{
|
||||
if ( typeof parent.ExpandFrame != "undefined" )
|
||||
thiswindow = thiswindow || window;
|
||||
if ( parent && parent!=window )
|
||||
{
|
||||
//try {parent.curvyCorners.redraw();}catch(e){};
|
||||
parent.ExpandFrame(thiswindow.name);
|
||||
var helpFrame = parent.document.getElementById(thiswindow.name);
|
||||
if (helpFrame)
|
||||
{
|
||||
//if (parent.FcltMgr._modalCount)
|
||||
// parent.FcltMgr._resizeModal(helpFrame)
|
||||
//else
|
||||
{
|
||||
var innerDoc = (helpFrame.contentDocument) ? helpFrame.contentDocument : helpFrame.contentWindow.document;
|
||||
helpFrame.style.height = parseInt(innerDoc.body.scrollHeight) + "px";
|
||||
}
|
||||
}
|
||||
if (parent.FcltMgr)
|
||||
parent.FcltMgr.resized(window, params)
|
||||
}
|
||||
},
|
||||
|
||||
childLoaded: function (childWindow)
|
||||
// <iframe onload='FcltMgr.iframeLoaded(this)'>
|
||||
iframeLoaded: function (elm_iframe, widthToo)
|
||||
{
|
||||
var sch = childWindow.document.all.tags("body")[0].scrollHeight;
|
||||
if (childWindow.frameElement)
|
||||
var innerDoc = (elm_iframe.contentDocument) ? elm_iframe.contentDocument : elm_iframe.contentWindow.document;
|
||||
elm_iframe.style.height = parseInt(innerDoc.body.scrollHeight) + "px";
|
||||
if (widthToo)
|
||||
{
|
||||
childWindow.frameElement.style.height = sch;
|
||||
if (parent && parent.FcltMgr)
|
||||
parent.FcltMgr.childLoaded(window);
|
||||
elm_iframe.style.width = "100px"; // trucje om te zorgen dat *versmallen* ook gedetecteerd wordt
|
||||
elm_iframe.style.width = $(innerDoc.body)[0].scrollWidth + "px";
|
||||
}
|
||||
else
|
||||
elm_iframe.style.width = "100%";
|
||||
//FcltMgr.resized(window);
|
||||
},
|
||||
|
||||
eventLoaded: function ()
|
||||
@@ -279,61 +416,81 @@ FcltMgr =
|
||||
// Door een child-window aan te roepen vlak voordat hij van show naar edit mode gaat
|
||||
startEdit: function (thiswindow, params)
|
||||
{
|
||||
if (parent && parent.FcltMgr)
|
||||
if (FcltMgr.mayEdit(window, params))
|
||||
{
|
||||
if (parent.FcltMgr.mayEdit(thiswindow, params))
|
||||
{
|
||||
parent.FcltMgr._editactive = true;
|
||||
FcltMgr.setTitle(null, {hot:true});
|
||||
return true;
|
||||
}
|
||||
else
|
||||
return false;
|
||||
FcltMgr.detailManager()._editactive = true;
|
||||
FcltMgr.setTitle(null, { hot : window });
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
},
|
||||
|
||||
// Door een manager-window aan te roepen als hij wil gaan editen
|
||||
mayEdit: function (thiswindow, params)
|
||||
{
|
||||
if (this._editactive)
|
||||
if (FcltMgr.detailManager()._editactive)
|
||||
{
|
||||
alert("TODO Sla eerst de andere wijzigingen op of annuleer ze")
|
||||
alert(LCL.shared.othertabactive)
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
},
|
||||
|
||||
trySave: function ()
|
||||
{debugger;
|
||||
if (this._tabshost)
|
||||
{
|
||||
if (FcltMgr._DetailHot())
|
||||
{
|
||||
var ifrm = this.activeTab();
|
||||
var innerDoc = (ifrm.contentDocument) ? ifrm.contentDocument : ifrm.contentWindow.document;
|
||||
//debugger;
|
||||
//$(innerDoc).find("img[title='Verwijderen']").length
|
||||
//if (confirm("Opslaan?"))
|
||||
{
|
||||
eval($(FcltMgr.hot.document).find("img[title=Opslaan]")[0].onclick)(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (parent.FcltMgr && parent.window!=window)
|
||||
parent.FcltMgr.trySave();
|
||||
}
|
||||
if (window.event)
|
||||
window.event.cancelBubble = true;
|
||||
return false;
|
||||
},
|
||||
|
||||
setCaller: function(callerinfo)
|
||||
{
|
||||
//alert('@FcltMgr caller gezet op: ' + callerinfo.prs_key + " " + callerinfo.prs_naam);
|
||||
if (parent && parent.FcltMgr && parent.FcltMgr!=this)
|
||||
parent.FcltMgr.setCaller(callerinfo);
|
||||
this._caller = callerinfo;
|
||||
this.topmanager()._caller = callerinfo;
|
||||
},
|
||||
|
||||
getCaller: function()
|
||||
{
|
||||
if (this._caller)
|
||||
return this._caller;
|
||||
return this.topmanager()._caller;
|
||||
},
|
||||
|
||||
if (parent && parent.FcltMgr && parent.FcltMgr!=this)
|
||||
return parent.FcltMgr.getCaller();
|
||||
lcl: function(module)
|
||||
{
|
||||
return this.topmanager()._lcl(module)
|
||||
},
|
||||
|
||||
LCL: {}, // wordt door header.inc gevuld mbv. _lcl()
|
||||
|
||||
_lcl: function (module)
|
||||
{
|
||||
if (!this.LCL[module])
|
||||
this.LCL[module] = FcltSyncgetJSON("../shared/load_lcl.asp?module=" + module)
|
||||
return this.LCL[module];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
FcltButtonMgr =
|
||||
{
|
||||
showButtons: function(buttons)
|
||||
{ return;
|
||||
debugger;this.window.name;
|
||||
$(".fcltframe").find("#buttons").length
|
||||
$(this).parent(".fcltframe").child("buttons");
|
||||
alert("Knoppen tonen");
|
||||
},
|
||||
|
||||
hideButtons: function()
|
||||
{
|
||||
alert("Knoppen weghalen");
|
||||
}
|
||||
}
|
||||
FcltMgr._pageManager = FcltMgr.defaultManager;
|
||||
if (parent && parent.FcltMgr && parent.FcltMgr != FcltMgr)
|
||||
FcltMgr._pageManager = parent.FcltMgr._pageManager;
|
||||
else
|
||||
FcltMgr.IsTheManager = true;
|
||||
@@ -112,3 +112,132 @@ function toDateTimeString(jsDate, bWithSeconds)
|
||||
{
|
||||
return toDateString(jsDate)+" "+toTimeString(jsDate, bWithSeconds)
|
||||
}
|
||||
|
||||
Date.prototype.getFloatHours = function getFloatHours()
|
||||
{
|
||||
return this.getHours() + (this.getMinutes()/60);
|
||||
}
|
||||
// Noot: rondt af op res_h!
|
||||
// levert een nieuw date-object op
|
||||
Date.prototype.setFloatHours = function setFloatHours(hrs, res_h)
|
||||
{
|
||||
var dd = new Date(this);
|
||||
hrs = Math.floor((hrs/res_h)+0.5) * res_h;
|
||||
var hh = Math.floor(hrs);
|
||||
var mm = (hrs*60) % 60;
|
||||
dd.setHours(hh,mm,0,0);
|
||||
return dd;
|
||||
}
|
||||
// Noot: rondt af op res_h!
|
||||
// levert een nieuw date-object op
|
||||
Date.prototype.addFloatHours = function addFloatHours(hrs, res_h)
|
||||
{
|
||||
return this.setFloatHours(this.getFloatHours() + hrs, res_h);
|
||||
}
|
||||
|
||||
function cal_checkVolgnr(fieldId, volgnr, timeField)
|
||||
{
|
||||
// Aangeroepen door de onChange van elke kalender om de volgorde in tijd van de kalenders te controleren
|
||||
// Alleen kalenders die een volgnummer hebben gekregen moeten worden gecontroleerd
|
||||
|
||||
// Controleer of kalender Kx niet na kalender Kx+1, Kx+2... komt. Toch het geval dan Kx+1, Kx+2... = Kx.
|
||||
// Controleer of kalender Kx niet voor kalender Kx-1, Kx-2... komt. Toch het geval dan Kx-1, Kx-2... = Kx.
|
||||
for (var i = 0; i < calArray.length; i++)
|
||||
{
|
||||
// Kalender Kx vooruit gezet
|
||||
if (calArray[i].id != fieldId && calArray[i].volgnr > volgnr && parseInt($("#" + calArray[i].id).val()) < parseInt($("#" + fieldId).val()))
|
||||
{ // Veld aanpassen
|
||||
// Maak Kx+1, Kx+2... gelijk aan Kx
|
||||
$("#show_" + calArray[i].id).DatePickerSetDate(new Date(parseInt($("#" + fieldId).val())));
|
||||
$("#show_" + calArray[i].id).val($("#show_" + fieldId).val());
|
||||
|
||||
if (timeField)
|
||||
{
|
||||
// Als de tijd van tx > tijd van tx+1, tx+2..., maak dan de tijden gelijk: tijd van tx+1, tx+2... = tijd van tx.
|
||||
if ($("#time_from_" + fieldId).timePickerGetTime().getTime() > $("#time_from_" + calArray[i].id).timePickerGetTime().getTime())
|
||||
{ // Datum + tijd overnemen
|
||||
// Dezelfde datum overnemen
|
||||
$("#" + calArray[i].id).val(new Date(parseInt($("#" + fieldId).val())).midnight().getTime() + $("#time_from_" + fieldId).timePickerGetTime().getTime());
|
||||
// Dezelfde tijd overnemen
|
||||
//$("#time_from_" + calArray[i].id).timePickerSetTime($("#time_from_" + fieldId).timePickerGetTime().getTime());
|
||||
$("#time_from_" + calArray[i].id).val($("#time_from_" + fieldId).val());
|
||||
}
|
||||
else
|
||||
{ // Dezelfde datum en de oude eigen tijd behouden
|
||||
$("#" + calArray[i].id).val(new Date(parseInt($("#" + fieldId).val())).midnight().getTime() + $("#time_from_" + calArray[i].id).timePickerGetTime().getTime());
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#" + calArray[i].id).val(new Date(parseInt($("#" + fieldId).val())).midnight().getTime());
|
||||
}
|
||||
}
|
||||
|
||||
// Kalender Kx achteruit gezet
|
||||
if (calArray[i].id != fieldId && calArray[i].volgnr < volgnr && $("#" + calArray[i].id).val() > $("#" + fieldId).val())
|
||||
{ // Veld aanpassen
|
||||
// Maak Kx-1, Kx-2... gelijk aan Kx
|
||||
$("#show_" + calArray[i].id).DatePickerSetDate(new Date(parseInt($("#" + fieldId).val())));
|
||||
$("#show_" + calArray[i].id).val($("#show_" + fieldId).val());
|
||||
|
||||
if (timeField)
|
||||
{
|
||||
// Als de tijd van tx < tijd van tx-1, tx-2..., maak dan de tijden gelijk: tijd van tx-1, tx-2... = tijd van tx.
|
||||
if ($("#time_from_" + fieldId).timePickerGetTime().getTime() < $("#time_from_" + calArray[i].id).timePickerGetTime().getTime())
|
||||
{ // Datum + tijd overnemen
|
||||
// Dezelfde datum overnemen
|
||||
$("#" + calArray[i].id).val(new Date(parseInt($("#" + fieldId).val())).midnight().getTime() + $("#time_from_" + fieldId).timePickerGetTime().getTime());
|
||||
// Dezelfde tijd overnemen
|
||||
//$("#time_from_" + calArray[i].id).timePickerSetTime($("#time_from_" + fieldId).timePickerGetTime().getTime());
|
||||
$("#time_from_" + calArray[i].id).val($("#time_from_" + fieldId).val());
|
||||
}
|
||||
else
|
||||
{ // Dezelfde datum en de oude eigen tijd behouden
|
||||
$("#" + calArray[i].id).val(new Date(parseInt($("#" + fieldId).val())).midnight().getTime() + $("#time_from_" + calArray[i].id).timePickerGetTime().getTime());
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#" + calArray[i].id).val(new Date(parseInt($("#" + fieldId).val())).midnight().getTime());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: Tijden kunnen bij meer dan twee afhankelijk kalenders nog niet goed staan. Datums staan nu zeker goed.
|
||||
// TODO: Array van meer dan 2 kalenders met tijden op volgorde zetten. Onderste code is een opzet maar dan moet calArray op volgorde staan.
|
||||
return;
|
||||
for (var i = 0; i < calArray.length; i++)
|
||||
{
|
||||
i_id = calArray[i].id;
|
||||
i_volgnr = calArray[i].volgnr;
|
||||
i_datumtijd = $("#" + i_id).val();
|
||||
for (var j = 0; j < calArray.length; j++)
|
||||
{
|
||||
if (j == i) break;
|
||||
j_id = calArray[j].id;
|
||||
j_volgnr = calArray[j].volgnr;
|
||||
j_datumtijd = $("#" + j_id).val();
|
||||
if (i_volgnr < j_volgnr && i_datumtijd > j_datumtijd)
|
||||
{
|
||||
// Dezelfde tijd (datum + tijd)overnemen
|
||||
$("#" + calArray[j].id).val(dates.getTime() + $("#time_from_" + calArray[i].id).timePickerGetTime().getTime());
|
||||
//$("#time_from_" + calArray[j].id).timePickerSetTime($("#time_from_" + calArray[i].id).timePickerGetTime().getTime());
|
||||
$("#time_from_" + calArray[j].id).val($("#time_from_" + calArray[i].id).val());
|
||||
}
|
||||
if (i_volgnr > j_volgnr && i_datumtijd < j_datumtijd)
|
||||
{
|
||||
// Dezelfde tijd (datum + tijd)overnemen
|
||||
$("#" + calArray[j].id).val(dates.getTime() + $("#time_from_" + calArray[i].id).timePickerGetTime().getTime());
|
||||
//$("#time_from_" + calArray[j].id).timePickerSetTime($("#time_from_" + calArray[i].id).timePickerGetTime().getTime());
|
||||
$("#time_from_" + calArray[j].id).val($("#time_from_" + calArray[i].id).val());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// te gebruiken in combinante met FCLTCalender
|
||||
function cal_isVrijeDag(datum)
|
||||
{
|
||||
var nacht = datum.midnight();
|
||||
return ($.inArray(nacht.getTime(), mld_vrije_dagen)> -1);
|
||||
}
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
/*
|
||||
$Revision: 1 $
|
||||
$Modtime: 1-07-09 9:14 $
|
||||
$Revision: 2 $
|
||||
$Modtime: 1-11-09 17:08 $
|
||||
|
||||
File: iface.js
|
||||
Description: clientside functions for shared/iface.inc
|
||||
*/
|
||||
function enableButton(id,enable,fn) {
|
||||
function enableButton(id,enable,fn)
|
||||
{
|
||||
bb = document.all[id+'_bg'];
|
||||
if( bb )
|
||||
{
|
||||
@@ -21,7 +22,8 @@ function enableButton(id,enable,fn) {
|
||||
}
|
||||
}
|
||||
|
||||
function enableButton_V2(id, enable) {
|
||||
function enableButton_V2(id, enable)
|
||||
{
|
||||
bb = document.all[id+'_bg'];
|
||||
if( bb )
|
||||
{
|
||||
@@ -43,15 +45,18 @@ function enableButton_V2(id, enable) {
|
||||
}
|
||||
|
||||
|
||||
function HideButton(id) {
|
||||
$("#"+id).parent().hide();
|
||||
function HideButton(id)
|
||||
{
|
||||
$("#"+id).parent().hide();
|
||||
}
|
||||
|
||||
function ShowButton(id) {
|
||||
$("#"+id).parent().show();
|
||||
function ShowButton(id)
|
||||
{
|
||||
$("#"+id).parent().show();
|
||||
}
|
||||
|
||||
function changeButtonLabel(id,label) {
|
||||
function changeButtonLabel(id,label)
|
||||
{
|
||||
bb = document.all[id+'_bg'];
|
||||
if( bb )
|
||||
{
|
||||
@@ -59,7 +64,8 @@ function changeButtonLabel(id,label) {
|
||||
}
|
||||
}
|
||||
|
||||
function none() {
|
||||
function none()
|
||||
{
|
||||
}
|
||||
|
||||
var secfilters;
|
||||
@@ -68,13 +74,117 @@ var secfilters;
|
||||
// iface.inc definieert de strings
|
||||
function iface_toggleSecondarySearchblock(m)
|
||||
{
|
||||
if (!secfilters) {
|
||||
$(".secsearch").show();
|
||||
secfilters = true; // en vervang label door <% =lcl_less %>
|
||||
$("#btnMoreLess").text(lcl_less);
|
||||
} else {
|
||||
$(".secsearch").hide();
|
||||
secfilters = false; // en vervang label door <% =lcl_more %>
|
||||
$("#btnMoreLess").text(lcl_more);
|
||||
if (!secfilters) {
|
||||
$(".secsearch").show();
|
||||
secfilters = true; // en vervang label door <% =lcl_less %>
|
||||
$("#btnMoreLess").text(LCL.shared.less);
|
||||
} else {
|
||||
$(".secsearch").hide();
|
||||
secfilters = false; // en vervang label door <% =lcl_more %>
|
||||
$("#btnMoreLess").text(LCL.shared.more);
|
||||
}
|
||||
}
|
||||
|
||||
// Als attentionOnly gezet dan worden foute velden alleen gehighligh met class 'attention'
|
||||
// Als geen attentionOnly dan wordt 'missing' gebruikt en wordt een alert gegeven.
|
||||
function validateForm(fName, attentionOnly)
|
||||
{ // TODO: Alleen binnen fName kijken?
|
||||
function _isGoodCurrency(str, checkInteger)
|
||||
{
|
||||
var anum=/[-\+?]|(^\d+$)|(^\d+\.\d*$)|(^\d*\.\d+$)/
|
||||
return anum.test(str);
|
||||
}
|
||||
|
||||
var clsName = (attentionOnly? "attention" : "attention missing");
|
||||
var anyMissing = anyBad = false;
|
||||
|
||||
$(".required").each(function (i)
|
||||
{
|
||||
switch (this.tagName)
|
||||
{
|
||||
case "SELECT":
|
||||
{
|
||||
$(this).removeClass("missing");
|
||||
$("#req_"+this.name).removeClass("missing");
|
||||
var opt = $(this).find("option:selected");
|
||||
if (this.options.length==0 || opt.val() == "-1")
|
||||
{
|
||||
$("#req_"+this.name).addClass(clsName); // Dit zal/moet een divje zijn?
|
||||
opt.addClass(clsName);
|
||||
anyMissing = true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "INPUT":
|
||||
case "TEXTAREA": // TODO: Strip spaces/ Sanitize?
|
||||
$(this).removeClass("missing");
|
||||
if ($(this).val() == "" ||
|
||||
($(this).hasClass("suggest")&& this.sgKey<0))
|
||||
{
|
||||
$(this).addClass(clsName);
|
||||
anyMissing = true;
|
||||
}
|
||||
else if ($(this).hasClass("suggestBad"))
|
||||
{
|
||||
$(this).addClass("bad");
|
||||
anyBad = true;
|
||||
break
|
||||
}
|
||||
|
||||
// else geen break maar doorvallen
|
||||
break;
|
||||
}
|
||||
}
|
||||
)
|
||||
$(".number").each(function (i)
|
||||
{
|
||||
if ($(this).val() != "" && isNaN(parseInt($(this).val()), 10))
|
||||
{
|
||||
$(this).addClass("bad");
|
||||
anyBad = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$(this).removeClass("bad"); // Een eventuele attention blijft er op staan!
|
||||
}
|
||||
}
|
||||
)
|
||||
$(".float").each(function (i)
|
||||
{
|
||||
if ($(this).val() != "" && !isFinite(parseFloat($(this).val())))
|
||||
{
|
||||
$(this).addClass("bad");
|
||||
anyBad = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$(this).removeClass("bad"); // Een eventuele attention blijft er op staan!
|
||||
}
|
||||
}
|
||||
)
|
||||
$(".currency").each(function (i)
|
||||
{
|
||||
if ($(this).val() != "" && !_isGoodCurrency($(this).val().replace(',', '.')))
|
||||
{
|
||||
$(this).addClass("bad");
|
||||
anyBad = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$(this).removeClass("bad"); // Een eventuele attention blijft er op staan!
|
||||
}
|
||||
}
|
||||
)
|
||||
if (anyMissing)
|
||||
{
|
||||
alert(LCL.shared.validator.missing);
|
||||
return false;
|
||||
}
|
||||
else if (anyBad)
|
||||
{
|
||||
alert(LCL.shared.validator.bad);
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
/*
|
||||
$Revision: 1 $
|
||||
$Modtime: 24-09-09 17:54 $
|
||||
$Revision: 2 $
|
||||
$Modtime: 29-10-09 15:45 $
|
||||
|
||||
File: resultset_table_v2.js
|
||||
Status: 90%
|
||||
Description: Javascript code voor de resultsettable. Voegt post formulier aan body toe.
|
||||
Parameters:
|
||||
Parameters:
|
||||
Globals:
|
||||
Context: Wordt gebruikt door de resultset_table_v2.inc
|
||||
Note:
|
||||
Note:
|
||||
*/
|
||||
|
||||
// post formulier voor printen aan de body toevoegen
|
||||
@@ -18,3 +18,164 @@
|
||||
$(document).ready(function() {
|
||||
if (typeof(postformHTML)!="undefined") $("body").append(postformHTML);
|
||||
});
|
||||
|
||||
function resizeWhenInIFrame()
|
||||
{
|
||||
if (parent.ExpandFrame) parent.ExpandFrame(window.name);
|
||||
}
|
||||
|
||||
function hideInlineDetails(thisTR)
|
||||
{
|
||||
$(thisTR).find(".inlinedetails").toggleClass("closed");
|
||||
var thisTABLE = thisTR.parentNode;
|
||||
thisTABLE.deleteRow(thisTR.rowIndex);
|
||||
thisTR.inlineVisible = false;
|
||||
return false;
|
||||
}
|
||||
|
||||
function hideAllInlineDetails(ID)
|
||||
{
|
||||
$("#"+ID).find("tr[inlineVisible=true]").each(function (i) { hideInlineDetails(this) });
|
||||
resizeWhenInIFrame();
|
||||
}
|
||||
|
||||
function showInlineDetails(thisTD, strfnURL)
|
||||
{
|
||||
window.event.cancelBubble = true; // Voorkom highlight regel
|
||||
|
||||
var thisTR = thisTD.parentNode;
|
||||
if (thisTR.inlineVisible)
|
||||
return hideInlineDetails(thisTR);
|
||||
$(thisTR).find(".inlinedetails").toggleClass("closed");
|
||||
|
||||
thisTR.inlineVisible = true;
|
||||
var thisTABLE = thisTR.parentNode;
|
||||
var newRow = thisTABLE.insertRow(thisTR.rowIndex);
|
||||
newRow.insertCell(0);
|
||||
|
||||
var theCell = newRow.insertCell(1);
|
||||
theCell.innerHTML = LCL.shared.loading;
|
||||
theCell.colSpan=thisTR.children.length-2;
|
||||
newRow.insertCell();
|
||||
|
||||
var url = eval(strfnURL).call(null, thisTR);
|
||||
$.ajaxSetup({ cache: true });
|
||||
$(theCell).load(url, resizeWhenInIFrame);
|
||||
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
function doDefault(theAction, multiOnce)
|
||||
{
|
||||
// Bij header en footer doDefault actie niet uitvoeren (tr header en footer heeft geen id)
|
||||
if ($(event.srcElement).closest('tr')[0].id == "")
|
||||
return;
|
||||
|
||||
if (multiOnce)
|
||||
{
|
||||
var rowArray = new Array();
|
||||
rowArray[0] = $(event.srcElement).closest('tr')[0];
|
||||
eval(theAction).call(null, rowArray);
|
||||
}
|
||||
else {
|
||||
var row = $(event.srcElement).closest('tr')[0];
|
||||
if (row && row.ROWKEY)
|
||||
eval(theAction).call(null, row);
|
||||
}
|
||||
}
|
||||
|
||||
function doA(thisSPAN, theAction)
|
||||
{
|
||||
//$(thisSPAN).css('visibility', 'hidden'); // Verwijder de actie direct zodat dubbelklikken geen tweede aanroep kan veroorzaken.
|
||||
window.event.cancelBubble = true; // This prevents the event from bubbling up to the onclick event handler for the line.
|
||||
|
||||
var actionSelect = document.getElementById("multiaction");
|
||||
var multiOnce = false;
|
||||
if (actionSelect)
|
||||
{
|
||||
for (var i = 0; i < actionSelect.length; i++)
|
||||
{
|
||||
if (actionSelect[i].value == theAction && actionSelect[i].multiOnce)
|
||||
multiOnce = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (multiOnce)
|
||||
{
|
||||
var rowArray = new Array();
|
||||
rowArray[0] = $(thisSPAN).parents('tr')[0];
|
||||
eval(theAction).call(null, rowArray);
|
||||
}
|
||||
else {
|
||||
var row = $(thisSPAN).parents('tr')[0];
|
||||
eval(theAction).call(null, row);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function getKeyString(rowArray)
|
||||
{
|
||||
var key;
|
||||
var keyString = "";
|
||||
for (var i = 0; i < rowArray.length; i++)
|
||||
{
|
||||
$(rowArray[i]).addClass('dirty');
|
||||
key = rowArray[i].ROWKEY;
|
||||
keyString += ((keyString == "") ? "" : ",") + key;
|
||||
}
|
||||
return keyString;
|
||||
}
|
||||
|
||||
function doMulti(thisID)
|
||||
{
|
||||
var actionSelect = document.getElementById("multiaction");
|
||||
if (actionSelect[actionSelect.selectedIndex].value == '') return;
|
||||
var regels = $("#" + thisID + " .multiselect:checked");
|
||||
if (regels.length > 0 &&
|
||||
confirm(actionSelect[actionSelect.selectedIndex].text + " " + regels.length + " "+ LCL.shared.lines + "?"))
|
||||
{
|
||||
// Als multiOnce is gedefinieerd dan wordt de actie <20><>n keer aangeroepen waarbij een string met keys wordt meegegeven aan de actiefunctie
|
||||
// anders wordt voor elke aangevinkte regel de actie aangeroepen waarbij elke keer <20><>n key wordt meegegeven aan de actiefunctie
|
||||
var multiOnce = false;
|
||||
var multiOnceArray = new Array();
|
||||
var teller = 0;
|
||||
$("#"+thisID+" .multiselect:checked").each(function()
|
||||
{
|
||||
teller++;
|
||||
var rowData = eval('(' + this.parentElement.parentElement.ROWDATA + ')');
|
||||
multiOnce = actionSelect[actionSelect.selectedIndex].multiOnce
|
||||
if (multiOnce)
|
||||
multiOnceArray.push(this.parentElement.parentElement);
|
||||
else
|
||||
eval(actionSelect[actionSelect.selectedIndex].value).call(null, this.parentElement.parentElement, true); // true voor noconfirm i.g.v. multi actie
|
||||
});
|
||||
if (multiOnce)
|
||||
eval(actionSelect[actionSelect.selectedIndex].value).call(null, multiOnceArray, true); // true voor noconfirm i.g.v. multi actie
|
||||
}
|
||||
}
|
||||
|
||||
function ha(row) //HideActions, korte naam omdat deze bij elke tr wordt opgenomen
|
||||
{
|
||||
$(row).find(".ias").css('visibility', 'hidden');
|
||||
}
|
||||
|
||||
function sa(row) //ShowActions, korte naam omdat deze bij elke tr wordt opgenomen
|
||||
{
|
||||
//if ($(row)[0].className.indexOf("dirty") == -1) // Als de regel dirty is dan de acties niet meer tonen
|
||||
$(row).find(".ias").css('visibility', 'visible');
|
||||
}
|
||||
|
||||
function checkAll(thisID, zelf)
|
||||
{
|
||||
$("#"+thisID+" .multiselect").each(function()
|
||||
{
|
||||
this.checked = zelf.checked;
|
||||
});
|
||||
}
|
||||
function RSdefaultAction(thisID, defaultAction)
|
||||
{
|
||||
var row = $("#"+thisID)[0].getFirstSelectedRow();
|
||||
$("#"+thisID)[0].clearSelection();
|
||||
eval(defaultAction).call(null, row);
|
||||
}
|
||||
|
||||
356
APPL/MLD/mld.inc
356
APPL/MLD/mld.inc
@@ -1,15 +1,17 @@
|
||||
<% /*
|
||||
$Revision: 1 $
|
||||
$Modtime: 28-09-09 15:26 $
|
||||
$Revision: 2 $
|
||||
$Modtime: 3-11-09 16:09 $
|
||||
*/
|
||||
|
||||
FCLTHeader.Requires({ lcl: ["MLD"] });
|
||||
|
||||
mld = {setmeldingstatus:
|
||||
function (mld_key, mld_status_key, prs_perslid_key)
|
||||
{
|
||||
if (typeof prs_perslid_key == 'undefined')
|
||||
prs_perslid_key = user_key;
|
||||
var sql = "BEGIN mld.setmeldingstatus(" + mld_key + ", " + mld_status_key + ", "+prs_perslid_key+"); END;"
|
||||
Oracle.Execute( sql );
|
||||
var sql = "BEGIN mld.setmeldingstatus(" + mld_key + ", " + mld_status_key + ", " + prs_perslid_key + "); END;"
|
||||
Oracle.Execute(sql);
|
||||
|
||||
// zou leuk zijn om true of false op te leveren naar gelang de status echt anders is geworden
|
||||
},
|
||||
@@ -20,15 +22,15 @@ mld = {setmeldingstatus:
|
||||
if (typeof prs_perslid_key == 'undefined')
|
||||
prs_perslid_key = user_key;
|
||||
var sql = "SELECT pf.prs_perslid_naam_full FROM prs_v_perslid_fullnames_all pf "
|
||||
+ "WHERE prs_perslid_key = "+ behandelaar_key;
|
||||
var loRs = Oracle.Execute( sql );
|
||||
+ "WHERE prs_perslid_key = " + behandelaar_key;
|
||||
var loRs = Oracle.Execute(sql);
|
||||
if ( !loRs.eof )
|
||||
var behandelaar_str = lcl_mld_is_mldbeh_to+loRs(0).value;
|
||||
else
|
||||
var behandelaar_str = lcl_mld_is_mldbeh_none;
|
||||
loRs.close();
|
||||
var sql = "BEGIN fac.trackaction('MLDBEH', " + mld_key + ", "+prs_perslid_key+", NULL, '"+behandelaar_str+"'); END;"
|
||||
Oracle.Execute( sql );
|
||||
var sql = "BEGIN fac.trackaction('MLDBEH', " + mld_key + ", " + prs_perslid_key + ", NULL, '" + behandelaar_str + "'); END;"
|
||||
Oracle.Execute(sql);
|
||||
},
|
||||
|
||||
trackpriochange :
|
||||
@@ -36,9 +38,9 @@ mld = {setmeldingstatus:
|
||||
{
|
||||
if (typeof prs_perslid_key == 'undefined')
|
||||
prs_perslid_key = user_key;
|
||||
var prio_str = "TODO "+lcl_mld_is_priochanged + prio;
|
||||
var sql = "BEGIN fac.trackaction('MLDUPD', " + mld_key + ", "+prs_perslid_key+", NULL, '"+prio_str+"'); END;"
|
||||
Oracle.Execute( sql );
|
||||
var prio_str = "TODO " + lcl_mld_is_priochanged + prio;
|
||||
var sql = "BEGIN fac.trackaction('MLDUPD', " + mld_key + ", " + prs_perslid_key + ", NULL, '" + prio_str + "'); END;"
|
||||
Oracle.Execute(sql);
|
||||
},
|
||||
|
||||
noteupdate:
|
||||
@@ -47,11 +49,20 @@ mld = {setmeldingstatus:
|
||||
{
|
||||
if ((mld_bo_logboek_mode == 1 || mld_bo_logboek_mode == 3))
|
||||
{
|
||||
var sql = "BEGIN fac.trackaction('MLDUPD', " + mld_key + ", "+user_key+", NULL, '"+ptxt+"'); END;"
|
||||
var sql = "BEGIN fac.trackaction('MLDUPD', " + mld_key + ", " + user_key + ", NULL, '" + ptxt + "'); END;"
|
||||
oRs = Oracle.Execute(sql);
|
||||
}
|
||||
},
|
||||
|
||||
trackopdrachtaction :
|
||||
function (opdr_key, paction, pstr, prs_perslid_key)
|
||||
{
|
||||
if (typeof prs_perslid_key == 'undefined')
|
||||
prs_perslid_key = user_key;
|
||||
var sql = "BEGIN fac.trackaction('" + paction + "', " + opdr_key + ", " + prs_perslid_key + ", NULL, '" + pstr + "'); END;"
|
||||
Oracle.Execute(sql);
|
||||
},
|
||||
|
||||
nextworkflowstep:
|
||||
// Proceed with the next step of the workflow
|
||||
// p_mld_key: key of the call to be continued
|
||||
@@ -85,90 +96,259 @@ mld = {setmeldingstatus:
|
||||
+ " AND st.fac_srttracking_code = '" + tcode + "')";
|
||||
},
|
||||
|
||||
geteinddatum:
|
||||
function (mld_key, uitvoertijd) {
|
||||
if (mld_key > -1)
|
||||
{
|
||||
sql = "SELECT " + "FAC.DatumTijdPlusUitvoerTijd(m.mld_melding_datum, " + uitvoertijd + ", 'DAGEN')" + " datum"
|
||||
+ " FROM mld_melding m"
|
||||
+ " WHERE mld_melding_key = " + mld_key;
|
||||
}
|
||||
else
|
||||
{
|
||||
sql = "SELECT " + "FAC.DatumTijdPlusUitvoerTijd(SYSDATE, " + uitvoertijd + ", 'DAGEN')" + " datum"
|
||||
+ " FROM DUAL";
|
||||
}
|
||||
oRs2 = Oracle.Execute(sql);
|
||||
var einddatum = new Date(oRs2("datum").value);
|
||||
oRs2.close();
|
||||
return einddatum;
|
||||
},
|
||||
|
||||
mld_stdmeldinginfo:
|
||||
function _mld_stdmelding(mld_stdmelding_key) {
|
||||
var sql = "SELECT ins_discipline_key, "
|
||||
+ " DECODE(COALESCE(sd.ins_srtdiscipline_prefix, ''),'','', sd.ins_srtdiscipline_prefix || '-' )"
|
||||
+ " || ins_discipline_omschrijving ins_discipline_omschrijving,"
|
||||
+ " mld_stdmelding_uitvoertijd,"
|
||||
+ " mld_stdmelding_uitvoertijd_pr1,"
|
||||
+ " mld_stdmelding_uitvoertijd_pr2,"
|
||||
+ " mld_stdmelding_uitvoertijd_pr4,"
|
||||
+ " ins_discipline_kpnverplicht,"
|
||||
+ " ins_srtdiscipline_alg,"
|
||||
+ " ins_srtdiscipline_ins,"
|
||||
+ " ins_srtdiscipline_bes,"
|
||||
+ " COALESCE(dp.mld_disc_params_directklaar, 0) mld_disc_params_directklaar," // is wel/geen FO-vakgroep
|
||||
+ " dp.mld_disc_params_frontendprio"
|
||||
+ " FROM mld_stdmelding ms, mld_discipline md, "
|
||||
+ " mld_disc_params dp, ins_srtdiscipline sd "
|
||||
+ " WHERE ms.mld_stdmelding_key = " + mld_stdmelding_key
|
||||
+ " AND ms.mld_ins_discipline_key = md.ins_discipline_key"
|
||||
+ " AND md.ins_discipline_key = dp.mld_ins_discipline_key"
|
||||
+ " AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key(+) " // TODO JGL: Waarom outer join?
|
||||
function _mld_stdmelding(mld_stdmelding_key, mld_key) {
|
||||
// TODO PF: ik denk dat je ook de meldingdatum mee moet geven en dat per geldige
|
||||
// uitvoertijd de fac.DatumTijdPlusUitvoerTijd(m.mld_melding_datum,m.mld_melding_uitvoertijd,'DAGEN')
|
||||
// ook moet opleveren, zodat je dat bij wisselen van de prioriteit direct weet.
|
||||
var sql = "SELECT ins_discipline_key"
|
||||
+ " , DECODE(COALESCE(sd.ins_srtdiscipline_prefix, ''),'','', sd.ins_srtdiscipline_prefix) prefix"
|
||||
+ " , ins_discipline_omschrijving ins_discipline_omschrijving"
|
||||
+ " , mld_stdmelding_uitvoertijd"
|
||||
+ " , mld_stdmelding_uitvoertijd_pr1"
|
||||
+ " , mld_stdmelding_uitvoertijd_pr2"
|
||||
+ " , mld_stdmelding_uitvoertijd_pr4"
|
||||
+ " , mld_stdmelding_planbaar"
|
||||
+ " , ins_discipline_kpnverplicht"
|
||||
+ " , ins_srtdiscipline_alg"
|
||||
+ " , ins_srtdiscipline_ins"
|
||||
+ " , ins_srtdiscipline_bes"
|
||||
+ " , COALESCE(dp.mld_disc_params_directklaar, 0) mld_disc_params_directklaar" // is wel/geen FO-vakgroep
|
||||
+ " , dp.mld_disc_params_frontendprio"
|
||||
+ " FROM mld_stdmelding ms, mld_discipline md"
|
||||
+ " , mld_disc_params dp, ins_srtdiscipline sd"
|
||||
+ " WHERE ms.mld_stdmelding_key = " + mld_stdmelding_key
|
||||
+ " AND ms.mld_ins_discipline_key = md.ins_discipline_key"
|
||||
+ " AND md.ins_discipline_key = dp.mld_ins_discipline_key"
|
||||
+ " AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key(+) " // TODO JGL: Waarom outer join?
|
||||
var oRs = Oracle.Execute(sql);
|
||||
|
||||
var oRs = Oracle.Execute( sql );
|
||||
var prios = [];
|
||||
if (oRs("mld_stdmelding_uitvoertijd_pr1").value)
|
||||
prios.push({ text: lcl_mld_urg_kritiek,
|
||||
key: 1,
|
||||
val: oRs("mld_stdmelding_uitvoertijd_pr1").value,
|
||||
einddatum: mld.geteinddatum(mld_key, oRs("mld_stdmelding_uitvoertijd_pr1").value).getTime()
|
||||
});
|
||||
if (oRs("mld_stdmelding_uitvoertijd_pr2").value)
|
||||
prios.push({ text: lcl_mld_urg_hoog,
|
||||
key: 2,
|
||||
val: oRs("mld_stdmelding_uitvoertijd_pr2").value,
|
||||
einddatum: mld.geteinddatum(mld_key, oRs("mld_stdmelding_uitvoertijd_pr2").value).getTime()
|
||||
});
|
||||
// Normaal is er altijd
|
||||
prios.push({ text: lcl_mld_urg_normaal,
|
||||
key: 3,
|
||||
val: oRs("mld_stdmelding_uitvoertijd").value,
|
||||
einddatum: mld.geteinddatum(mld_key, oRs("mld_stdmelding_uitvoertijd").value).getTime()
|
||||
});
|
||||
if (oRs("mld_stdmelding_uitvoertijd_pr4").value)
|
||||
prios.push({ text: lcl_mld_urg_laag,
|
||||
key: 4,
|
||||
val: oRs("mld_stdmelding_uitvoertijd_pr4").value,
|
||||
einddatum: mld.geteinddatum(mld_key, oRs("mld_stdmelding_uitvoertijd_pr4").value).getTime()
|
||||
});
|
||||
|
||||
var prios = [];
|
||||
if (oRs("mld_stdmelding_uitvoertijd_pr1").Value)
|
||||
prios.push({ text: lcl_mld_urg_kritiek, key:1, val: oRs("mld_stdmelding_uitvoertijd_pr1").Value});
|
||||
if (oRs("mld_stdmelding_uitvoertijd_pr2").Value)
|
||||
prios.push({ text: lcl_mld_urg_hoog, key:2, val: oRs("mld_stdmelding_uitvoertijd_pr2").Value});
|
||||
// Normaal is er altijd
|
||||
prios.push({ text: lcl_mld_urg_normaal, key:3, val: oRs("mld_stdmelding_uitvoertijd").Value });
|
||||
if (oRs("mld_stdmelding_uitvoertijd_pr4").Value)
|
||||
prios.push({ text: lcl_mld_urg_laag, key:4, val: oRs("mld_stdmelding_uitvoertijd_pr4").Value});
|
||||
var result = { mld_stdmelding_key: mld_stdmelding_key,
|
||||
ins_discipline_key: oRs("ins_discipline_key").value,
|
||||
XXins_srtdiscipline_alg: oRs("ins_srtdiscipline_alg").value == "1",
|
||||
XXins_srtdiscipline_ins: oRs("ins_srtdiscipline_ins").value == "1",
|
||||
XXins_srtdiscipline_bes: oRs("ins_srtdiscipline_bes").value == "1",
|
||||
ins_srtdiscipline_prefix: oRs("prefix").value,
|
||||
discipline_omschrijving: oRs("ins_discipline_omschrijving").value,
|
||||
prioriteiten: prios,
|
||||
XXdirectklaar: oRs("mld_disc_params_directklaar").value,
|
||||
frontendprio: oRs("mld_disc_params_frontendprio").value,
|
||||
planbaar: oRs("mld_stdmelding_planbaar").value == "1",
|
||||
kpnverplicht: oRs("ins_discipline_kpnverplicht").value
|
||||
};
|
||||
oRs.Close();
|
||||
|
||||
var result = { mld_stdmelding_key: mld_stdmelding_key,
|
||||
ins_discipline_key: oRs("ins_discipline_key").Value,
|
||||
XXins_srtdiscipline_alg: oRs("ins_srtdiscipline_alg").Value == "1",
|
||||
XXins_srtdiscipline_ins: oRs("ins_srtdiscipline_ins").Value == "1",
|
||||
XXins_srtdiscipline_bes: oRs("ins_srtdiscipline_bes").Value == "1",
|
||||
discipline_omschrijving: oRs("ins_discipline_omschrijving").Value,
|
||||
prioriteiten: prios,
|
||||
XXdirectklaar: oRs("mld_disc_params_directklaar").Value,
|
||||
frontendprio: oRs("mld_disc_params_frontendprio").Value,
|
||||
kpnverplicht: oRs("ins_discipline_kpnverplicht").Value
|
||||
};
|
||||
oRs.Close();
|
||||
|
||||
return result;
|
||||
return result;
|
||||
},
|
||||
|
||||
func_enabled: // Wat mag ik zoal op deze specifieke melding?
|
||||
function _func_enabled(pmld_melding_key, pautfunction) {
|
||||
func_enabled_melding: // Wat mag ik zoal op deze specifieke melding?
|
||||
function _func_enabled_melding(pmld_melding_key) {
|
||||
var msql = "SELECT m.mld_ins_discipline_key,"
|
||||
+ " mld_alg_onroerendgoed_keys,"
|
||||
+ " mld_melding_status,"
|
||||
+ " prs_perslid_key,"
|
||||
+ " mld_disc_params_directklaar"
|
||||
+ " FROM mld_melding m, mld_disc_params mdp"
|
||||
+ " WHERE mld_melding_key = " + pmld_melding_key
|
||||
+ " AND mdp.mld_ins_discipline_key = m.mld_ins_discipline_key";
|
||||
var moRs = Oracle.Execute(msql);
|
||||
var mld_status = moRs("mld_melding_status").value;
|
||||
var is_fo_vakgroep = moRs("mld_disc_params_directklaar").value == 1;
|
||||
var mresult = user.func_enabled("MLD",
|
||||
moRs("mld_ins_discipline_key").value,
|
||||
moRs("mld_alg_onroerendgoed_keys").value, // TODO: Wat als geen INS_SRTDISCIRPLINE_ALG?
|
||||
moRs("prs_perslid_key").value);
|
||||
moRs.Close();
|
||||
|
||||
var msql = "SELECT mld_ins_discipline_key,"
|
||||
+ " mld_alg_onroerendgoed_keys,"
|
||||
+ " prs_perslid_key"
|
||||
+ " FROM mld_melding m"
|
||||
+ " WHERE mld_melding_key = " + pmld_melding_key;
|
||||
var moRs = Oracle.Execute(msql);
|
||||
var mdisc = moRs("mld_ins_discipline_key").Value;
|
||||
var mresult = user.func_enabled("MLD",
|
||||
moRs("mld_ins_discipline_key").Value,
|
||||
moRs("mld_alg_onroerendgoed_keys").Value,
|
||||
moRs("prs_perslid_key").Value,
|
||||
pautfunction);
|
||||
moRs.Close();
|
||||
// Speciaal voor Continue button FO: die is onafhankelijk van de rechten op de *huidige* melding
|
||||
var locauthparams = user.checkAutorisation("WEB_MLDFOF", true);
|
||||
var mldfof_write = locauthparams && (locauthparams.PRSwritelevel < 9 && locauthparams.ALGwritelevel < 9);
|
||||
|
||||
return mresult;
|
||||
}
|
||||
mresult.canChange = false; // Wijzig knop tonen
|
||||
mresult.canAccept = false; // Accepteren
|
||||
mresult.canReject = false; // Afwijzen
|
||||
mresult.canForward = false; // Doorsturen
|
||||
mresult.canClose = false; // Afmelden
|
||||
mresult.canContinue = false; // Vervolg ('kopie')
|
||||
mresult.canDoorzet = false; // Doorzetten naar backoffice
|
||||
mresult.canTerugzet = false; // Terugzetten naar frontoffice
|
||||
|
||||
// TODO: Voor sommige acties hoef je niet noodzakelijk fronto rechten te hebben op de *huidige* melding?
|
||||
switch (mld_status)
|
||||
{
|
||||
case 0: // Pending, welbeschouwd zag de backo deze al nooit
|
||||
mresult.canChange = (fronto && mresult.canWrite("WEB_MLDFOF"));
|
||||
mresult.canReject = (fronto && mresult.canWrite("WEB_MLDFOF"));
|
||||
mresult.canDoorzet = (fronto && mresult.canWrite("WEB_MLDFOF"));
|
||||
mresult.canClose = (fronto && mresult.canWrite("WEB_MLDFOF"));
|
||||
break;
|
||||
case 1: // Afgewezen
|
||||
mresult.canChange = (mresult.canWrite("WEB_MLDFOF") && mld_rejected_is_open == 1 )
|
||||
mresult.canContinue = mldfof_write;
|
||||
break;
|
||||
case 2: // Ingevoerd
|
||||
mresult.canChange = (fronto && mresult.canWrite("WEB_MLDFOF"));
|
||||
mresult.canAccept = (mresult.canWrite("WEB_MLDBOF") || mresult.canWrite("WEB_MLDBO3"));
|
||||
mresult.canReject = (fronto && mresult.canWrite("WEB_MLDBOF"));
|
||||
mresult.canForward = (mresult.canWrite("WEB_MLDBOF"));
|
||||
break;
|
||||
case 3: // Ingezien komt eigenlijk nooit meer voor
|
||||
mresult.canChange = (mresult.canWrite("WEB_MLDBOF"));
|
||||
mresult.canAccept = (mresult.canWrite("WEB_MLDBOF") || mresult.canWrite("WEB_MLDBO3"));
|
||||
mresult.canReject = (mresult.canWrite("WEB_MLDBOF"));
|
||||
mresult.canForward = (mresult.canWrite("WEB_MLDBOF"));
|
||||
break;
|
||||
case 4: // Geaccepteerd
|
||||
case 7: // Uitgegeven
|
||||
mresult.canChange = (mresult.canWrite("WEB_MLDBOF"));
|
||||
mresult.canTerugzet = (is_fo_vakgroep && mresult.canWrite("WEB_MLDBOF"));
|
||||
mresult.canClose = (mresult.canWrite("WEB_MLDBOF") || mresult.canWrite("WEB_MLDBO2"));
|
||||
mresult.canContinue = mldfof_write;
|
||||
break;
|
||||
case 5: // Afgemeld
|
||||
mresult.canChange = (mresult.canWrite("WEB_ORDFIN")); // TODO of zoiets! (of was dat bij opdrachten?)
|
||||
mresult.canContinue = mldfof_write;
|
||||
break;
|
||||
case 6: // Admin voltooid
|
||||
mresult.canContinue = mldfof_write;
|
||||
break;
|
||||
}
|
||||
|
||||
return mresult;
|
||||
},
|
||||
|
||||
func_enabled_opdracht: // Wat mag ik zoal op deze specifieke opdracht?
|
||||
function _func_enabled_opdracht(pmld_opdr_key) {
|
||||
var msql = "SELECT m.mld_ins_discipline_key"
|
||||
+ " , mld_alg_onroerendgoed_keys"
|
||||
+ " , mld_statusopdr_key"
|
||||
+ " , o.prs_perslid_key"
|
||||
+ " , k.prs_perslid_key budgethouder"
|
||||
+ " , mu.type"
|
||||
+ " FROM mld_opdr o"
|
||||
+ " , mld_melding m"
|
||||
+ " , prs_kostenplaats k"
|
||||
+ " , mld_v_uitvoerende mu"
|
||||
+ " WHERE o.mld_melding_key = m.mld_melding_key"
|
||||
+ " AND o.prs_kostenplaats_key = k.prs_kostenplaats_key"
|
||||
+ " AND o.mld_uitvoerende_keys = mu.mld_uitvoerende_key"
|
||||
+ " AND o.mld_opdr_key = " + pmld_opdr_key
|
||||
var moRs = Oracle.Execute(msql);
|
||||
var opdr_status = moRs("mld_statusopdr_key").value;
|
||||
var budgethouder = moRs("budgethouder").value;
|
||||
var uitv_type = moRs("type");
|
||||
var mresult = user.func_enabled("MLD",
|
||||
moRs("mld_ins_discipline_key").value,
|
||||
moRs("mld_alg_onroerendgoed_keys").value, // TODO: Wat als geen INS_SRTDISCIRPLINE_ALG?
|
||||
moRs("prs_perslid_key").value);
|
||||
moRs.Close();
|
||||
|
||||
mresult.canChange = false; // Wijzig knop tonen
|
||||
mresult.canApprove = false; // Fiateren/Goedkeuren
|
||||
mresult.canReject = false; // Afwijzen
|
||||
mresult.canClose = false; // Afmelden
|
||||
mresult.couldClose = false; // Kon de opdracht afmelden of heb hem afgemeld (Kan in show mode close kenmerken zien)
|
||||
mresult.canCopy = false; // Kopi<70>ren
|
||||
|
||||
switch (opdr_status)
|
||||
{
|
||||
case 1: // Afgewezen
|
||||
mresult.canChange = (mresult.canWrite("WEB_ORDBOF") ||
|
||||
// Onderstaande code regel gelijk aan:
|
||||
// (mresult.canWrite("WEB_ORDBO2") && mld_afmelden_extern == 2 && uitv_type == "B") ||
|
||||
// (mresult.canWrite("WEB_ORDBO2") && uitv_type == "P")
|
||||
(mresult.canWrite("WEB_ORDBO2") && !(mld_afmelden_extern != 2 && uitv_type == "B")));
|
||||
mresult.canCopy = (mresult.canWrite("WEB_ORDBOF") ||
|
||||
(mresult.canWrite("WEB_ORDBO2") && !(mld_afmelden_extern != 2 && uitv_type == "B")));
|
||||
break;
|
||||
case 2: // Niet akkoord
|
||||
mresult.canChange = (mresult.canWrite("WEB_ORDBOF") ||
|
||||
(mresult.canWrite("WEB_ORDBO2") && !(mld_afmelden_extern != 2 && uitv_type == "B")));
|
||||
mresult.canCopy = (mresult.canWrite("WEB_ORDBOF") ||
|
||||
(mresult.canWrite("WEB_ORDBO2") && !(mld_afmelden_extern != 2 && uitv_type == "B")));
|
||||
break;
|
||||
case 3: // Ter fiattering
|
||||
mresult.canChange = (mresult.canWrite("WEB_ORDBOF") ||
|
||||
(mresult.canWrite("WEB_ORDBO2") && !(mld_afmelden_extern != 2 && uitv_type == "B")));
|
||||
mresult.canApprove = (budgethouder == user_key && mresult.canWrite("WEB_ORDBOF"));
|
||||
mresult.canReject = (budgethouder == user_key && mresult.canWrite("WEB_ORDBOF"));
|
||||
mresult.canCopy = (mresult.canWrite("WEB_ORDBOF") ||
|
||||
(mresult.canWrite("WEB_ORDBO2") && !(mld_afmelden_extern != 2 && uitv_type == "B")));
|
||||
break;
|
||||
case 4: // Gefiatteerd
|
||||
mresult.canChange = (mresult.canWrite("WEB_ORDBOF") ||
|
||||
(mresult.canWrite("WEB_ORDBO2") && !(mld_afmelden_extern != 2 && uitv_type == "B")));
|
||||
mresult.canCopy = (mresult.canWrite("WEB_ORDBOF") ||
|
||||
(mresult.canWrite("WEB_ORDBO2") && !(mld_afmelden_extern != 2 && uitv_type == "B")));
|
||||
break;
|
||||
case 5: // Uitgegeven
|
||||
mresult.canChange = (mresult.canWrite("WEB_ORDBOF") ||
|
||||
(mresult.canWrite("WEB_ORDBO2") && !(mld_afmelden_extern != 2 && uitv_type == "B")));
|
||||
mresult.canClose = (mresult.canWrite("WEB_ORDBOF") ||
|
||||
(mresult.canWrite("WEB_ORDBO2") && !(mld_afmelden_extern != 2 && uitv_type == "B")));
|
||||
mresult.canCopy = (mresult.canWrite("WEB_ORDBOF") ||
|
||||
(mresult.canWrite("WEB_ORDBO2") && !(mld_afmelden_extern != 2 && uitv_type == "B")));
|
||||
break;
|
||||
case 6: // Afgemeld
|
||||
mresult.canChange = (mresult.canWrite("WEB_ORDFIN"));
|
||||
mresult.couldClose = (mresult.canWrite("WEB_ORDBOF") ||
|
||||
(mresult.canWrite("WEB_ORDBO2") && !(mld_afmelden_extern != 2 && uitv_type == "B")));
|
||||
mresult.canCopy = (mresult.canWrite("WEB_ORDBOF") ||
|
||||
(mresult.canWrite("WEB_ORDBO2") && !(mld_afmelden_extern != 2 && uitv_type == "B")));
|
||||
break;
|
||||
case 7: // Verwerkt
|
||||
mresult.couldClose = (mresult.canWrite("WEB_ORDBOF") ||
|
||||
(mresult.canWrite("WEB_ORDBO2") && !(mld_afmelden_extern != 2 && uitv_type == "B")));
|
||||
break;
|
||||
}
|
||||
|
||||
return mresult;
|
||||
}
|
||||
}
|
||||
|
||||
%>
|
||||
|
||||
<%
|
||||
/*
|
||||
Description: Ophalen van mld om client-side allerlei interactie te bieden
|
||||
Context: get_mld_info_ajax.asp
|
||||
diverse andere bestanden die ook dynamisch info ophalen via get_mld_info_ajax.asp
|
||||
Note:
|
||||
|
||||
*/
|
||||
mld_info =
|
||||
{
|
||||
// in mld opgenomen -PF
|
||||
}
|
||||
|
||||
%>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,7 +1,7 @@
|
||||
<%@ LANGUAGE = JavaScript %>
|
||||
<% /*
|
||||
$Revision: 1 $
|
||||
$Modtime: 29-09-09 17:24 $
|
||||
$Revision: 2 $
|
||||
$Modtime: 29-10-09 12:59 $
|
||||
|
||||
File: mld_edit_melding_save.asp
|
||||
Status: 85%
|
||||
@@ -11,6 +11,7 @@
|
||||
Sinds 5i zetten we de mld_status expliciet en belangrijk ipv de diverse _datums
|
||||
Als backo opslaat dan wordt impliciet de status op 4 (geaccepteerd) gezet
|
||||
*/ %>
|
||||
|
||||
<!--#include file="../../cust/install.inc"-->
|
||||
<!--#include file="../Shared/escape.inc"-->
|
||||
<!--#include file="../Shared/funcodes.inc"-->
|
||||
@@ -19,439 +20,401 @@
|
||||
<!--#include file="../shared/save2db.inc" -->
|
||||
<!--#include file="../Shared/kenmerk_common.inc"-->
|
||||
<!--#include file="mld.inc" -->
|
||||
|
||||
<%
|
||||
FCLTHeader.Requires({plugins: [], js:["FcltMgr.js"] })
|
||||
FCLTHeader.Requires({ plugins: [], js:["FcltMgr.js"] })
|
||||
|
||||
var urole = getQParam("urole");
|
||||
var mld_key = getQParamInt("mld_key");
|
||||
var isNew = (mld_key==-1); // dan gaan we readyAtOnce, mld_melding_autoprint, mld_ask_for_orders beschouwen
|
||||
var urole = getQParam("urole");
|
||||
var mld_key = getQParamInt("mld_key");
|
||||
var isNew = (mld_key == -1); // dan gaan we readyAtOnce, mld_melding_autoprint, mld_ask_for_orders beschouwen
|
||||
|
||||
// TODO: Autorisatie check if (func_enabled["WEB_MLDBOF"] || func_enabled["WEB_MLDBO3"]) {
|
||||
// TODO: zinloze parameters opruimen hier
|
||||
var backo = Request.Form("backo").Count>0;
|
||||
var full_backo = Request.Form("full_backo").Count>0; // func_enabled[ "WEB_MLDBOF" ];
|
||||
var backo3 = Request.Form("backo3").Count>0; // func_enabled[ "WEB_MLDBO3" ];
|
||||
var fronto = Request.Form("fronto").Count>0;
|
||||
var reado = Request.Form("reado").Count>0;
|
||||
var e_print = Request.Form("print");
|
||||
var minfo = Request.Form("minfo").Count>0;
|
||||
var pmode = Request.Form("pmode");
|
||||
var readyAtOnce = getFParamInt("readyAtOnce",0)==1;
|
||||
// TODO: Autorisatie check if (func_enabled["WEB_MLDBOF"] || func_enabled["WEB_MLDBO3"]) {
|
||||
// TODO: zinloze parameters opruimen hier
|
||||
var backo = Request.Form("backo").Count>0;
|
||||
var full_backo = Request.Form("full_backo").Count>0; // func_enabled[ "WEB_MLDBOF" ];
|
||||
var backo3 = Request.Form("backo3").Count>0; // func_enabled[ "WEB_MLDBO3" ];
|
||||
var fronto = Request.Form("fronto").Count>0;
|
||||
var reado = Request.Form("reado").Count>0;
|
||||
var e_print = Request.Form("print");
|
||||
var pmode = Request.Form("pmode");
|
||||
var readyAtOnce = getFParamInt("readyAtOnce",0)==1;
|
||||
|
||||
var fronto = urole == "fo";
|
||||
var backo = urole == "bo";
|
||||
var minfo = urole == "mi";
|
||||
var frontend = (!fronto & !backo & !minfo);
|
||||
var fronto = urole == "fo";
|
||||
var backo = urole == "bo";
|
||||
|
||||
var fo_orders = Request.Form("orders").Count>0;
|
||||
var mode = Request.Form("mode");
|
||||
|
||||
if (fo_orders)
|
||||
{
|
||||
fo_orders = Request.Form("orders");
|
||||
}
|
||||
|
||||
var p_id = Request.Form("person").Count>0 ? Request.Form("person") : user_key;
|
||||
|
||||
if (func_enabled[full_backo?"WEB_MLDBOF"
|
||||
:backo3?"WEB_MLDBO3"
|
||||
:fronto?"WEB_MLDFOF"
|
||||
:"WEB_MLDUSE"])
|
||||
{
|
||||
// Parse parameters...
|
||||
// Originally, the values were the given value or null. But, there is a big difference for the
|
||||
// the parameter not being present, or being empty.
|
||||
// if it is not present, it is undefined, and a previous value should be kept
|
||||
// if it is present but empty, it is defined and should be made empty.
|
||||
// Several support calls consider errors in this part, for kost_k and ordernr mainly.
|
||||
|
||||
var loc = parseInt(Request.Form("locatiekey"),10);
|
||||
var sBehandel = getFParam("sBehandel", -2);
|
||||
var prio = getFParam("prio", -1);
|
||||
var del_address = getFParam("del_address", null);
|
||||
if (del_address)
|
||||
{
|
||||
oRs = Oracle.Execute('select nvl(alg_locatie_key,-1) from mld_adres where mld_adres_key = '+del_address);
|
||||
if( !oRs.eof && !(oRs(0).Value == -1)) {
|
||||
var loc = oRs(0).Value;
|
||||
}
|
||||
}
|
||||
// kost_k will be null,1 in the database. -1 means: field not present
|
||||
// TODO: kost_k uit kost_k form field halen, p_kost_k is er niet meer
|
||||
var kost_k = Request.Form("p_kost_k").Count>0 ? Request.Form("p_kost_k") : -1;
|
||||
kost_k = (kost_k == '' ? null : kost_k); // could be null anyway
|
||||
var kostplnr_key = Request.Form("account").Count>0 ? Request.Form("account") : -1;
|
||||
var act_key = Request.Form("act_key").Count>0 ? Request.Form("act_key") : -1;
|
||||
|
||||
var mld_status = parseInt( Request.Form("mld_status"), 10 ); // TODO: Deze niet uit het formulier halen
|
||||
|
||||
// melding_read_only: AKZA#438 No database update if printing while all is readonly
|
||||
// condition essentially matches 'disabled' of complains.asp
|
||||
var melding_read_only = ((e_print == "t" || e_print == "tr")
|
||||
&& ((backo && mld_status >= 5) || (!backo && mld_status >= 3))
|
||||
&& ( !isNaN(mld_key) ));
|
||||
// no need for database update if nothing was changed
|
||||
var changed = Request.Form("changed").Count>0 ? (Request.Form("changed") == 1) : true;
|
||||
|
||||
// let op (moet in het invulscherm en niet hier? Dan is dit het vangnet)
|
||||
if (isNaN (mld_status)) mld_status = 2; // of 0 als fronto en is_fo_vakgroep
|
||||
if (readyAtOnce) mld_status = 5;
|
||||
|
||||
var exec_time = parseInt( Request.Form("exec_time"), 10 );
|
||||
|
||||
// Parse Place
|
||||
|
||||
var bld = parseInt( Request.Form( "gebouwkey" ), 10 );
|
||||
var floor = parseInt( Request.Form("verdiepingkey"), 10 );
|
||||
var rooms = parseInt( Request.Form("ruimtekey"), 10 );
|
||||
|
||||
var room = 0;
|
||||
|
||||
if( ! isNaN( rooms ) && rooms > 0 ) room = rooms; else
|
||||
if( ! isNaN( floor ) && floor > 0 ) room = floor; else
|
||||
if( ! isNaN( bld ) && bld > 0 ) room = bld;
|
||||
|
||||
__Log('room : ' + room);
|
||||
__Log('mld_status : ' + mld_status);
|
||||
|
||||
// TODO: Wat deed dit?
|
||||
//if (isNaN(loc) )
|
||||
// loc = location;
|
||||
|
||||
__Log('loc : ' + loc);
|
||||
|
||||
stdmelding = getFParam("stdm");
|
||||
sql = "SELECT mld_ins_discipline_key FROM mld_stdmelding WHERE mld_stdmelding_key = "+stdmelding;
|
||||
discipline_key = Oracle.Execute(sql)("mld_ins_discipline_key").Value;
|
||||
|
||||
// Deze velden altijd opslaan
|
||||
var fields = [ { dbs: "mld_melding_omschrijving", typ: "varchar", frm: "melding_omschrijving" },
|
||||
{ dbs: "mld_kosten_klant", typ: "bool", frm: "p_kost_k" },
|
||||
{ dbs: "mld_melding_ordernr", typ: "varchar", frm: "ordernr" }, // TODO: RTRIM()
|
||||
{ dbs: "prs_perslid_key", typ: "key", frm: "person" },
|
||||
{ dbs: "prs_kostenplaats_key", typ: "key", frm: "account" }, // TODO: NULL zetten als niet meegegeven?
|
||||
{ dbs: "mld_melding_opmerking", typ: "varchar", frm: "rem" },
|
||||
{ dbs: "mld_stdmelding_key", typ: "key", frm: "stdm" },
|
||||
{ dbs: "mld_ins_discipline_key", typ: "sql", val: discipline_key }, // TODO door een trigger
|
||||
{ dbs: "mld_alg_onroerendgoed_keys", typ: "key", val: room },
|
||||
//{ dbs: "mld_alg_locatie_key", typ: "key", val: loc>0?loc:mld_locatie_if_not_alg },
|
||||
{ dbs: "mld_adres_key", typ: "number", frm: "del_address" },
|
||||
{ dbs: "mld_melding_behandelaar_key", typ: "key", frm: "sBehandel" }
|
||||
];
|
||||
|
||||
if( mld_key > 0 ) { // Update an existing mld_melding record
|
||||
|
||||
// Dit is het (laatste) moment waarop we de oude data nog hebben als die gewijzigd is
|
||||
// mld_stdmelding_key is voor ons belangrijk om eventueel documentfolders te hernoemen.
|
||||
sql = "SELECT mld_stdmelding_key, "
|
||||
+ " mld_melding_status,"
|
||||
+ " COALESCE(mld_melding_behandelaar_key, -1) mld_melding_behandelaar_key," // dan kan ik makkelijk vergelijken met de meegegeven waarde
|
||||
+ " mld_melding_spoed"
|
||||
+ " FROM mld_melding WHERE mld_melding_key = " + mld_key;
|
||||
|
||||
oRs = Oracle.Execute(sql);
|
||||
old_stdm = oRs("MLD_STDMELDING_KEY").Value;
|
||||
old_status = oRs("mld_melding_status").Value;
|
||||
old_behandelaar = oRs("mld_melding_behandelaar_key").value;
|
||||
old_prioriteit = oRs("mld_melding_spoed").value;
|
||||
|
||||
if (urole=="bo" && old_status < 4)
|
||||
mld.setmeldingstatus(mld_key, 4); // Impliciete acceptatie TODO: sterker (functioneel definieren); urole==bo lijkt me te zwak
|
||||
|
||||
if (prio != -1)
|
||||
fields.push({ dbs: "mld_melding_spoed", typ: "key", val: prio });
|
||||
|
||||
fields.push({ dbs: "mld_melding_uitvoertijd", typ: "number", frm: "exec_time", val: mld_melding_uitvoertijd }) // TODO: Als < 0 dan ook default nemen
|
||||
|
||||
sql = buildUpdate("mld_melding", fields) + " mld_melding_key = " + mld_key;
|
||||
|
||||
/* SUBMIT THE CHANGED DATA */
|
||||
oRs = Oracle.Execute( sql );
|
||||
|
||||
/* SUBMIT ADDITIONAL TRACKING */
|
||||
if (sBehandel != -2 && old_behandelaar != sBehandel) // Anders is-ie niet meegegeven of niet veranderd
|
||||
mld.trackbehandelaar(mld_key, sBehandel);
|
||||
if (prio != -1 && old_prioriteit != prio)
|
||||
mld.trackpriochange(mld_key, prio);
|
||||
|
||||
/* Match de srtkenmerk_key-s van de oude en nieuwe mld_stdmelding */
|
||||
if (old_stdm != stdmelding)
|
||||
{
|
||||
__Log("Old MLD_STDMELDING_KEY: " + old_stdm + " New: " + stdmelding);
|
||||
// pas op dat zelfs de vakgroep (mld_ins_discipline_key) gewijzigd kan zijn
|
||||
var flexsql = "SELECT k_old.mld_kenmerk_key k_old, k_new.mld_kenmerk_key k_new "
|
||||
+ " FROM mld_srtkenmerk t, "
|
||||
+ " mld_kenmerk k_old, "
|
||||
+ " mld_kenmerk k_new, "
|
||||
+ " mld_stdmelding s_old, "
|
||||
+ " mld_stdmelding s_new "
|
||||
+ " WHERE s_old.mld_stdmelding_key = " + old_stdm
|
||||
+ " AND s_new.mld_stdmelding_key = " + stdmelding
|
||||
+ " AND t.mld_srtkenmerk_kenmerktype IN ('F', 'E', 'M') "
|
||||
+ " AND ( ( k_old.mld_stdmelding_key = s_old.mld_stdmelding_key "
|
||||
+ " AND k_old.mld_kenmerk_niveau = 'S' "
|
||||
+ " ) "
|
||||
+ " OR ( k_old.mld_stdmelding_key = s_old.mld_ins_discipline_key "
|
||||
+ " AND k_old.mld_kenmerk_niveau = 'D' "
|
||||
+ " ) "
|
||||
+ " ) "
|
||||
+ " AND ( ( k_new.mld_stdmelding_key = s_new.mld_stdmelding_key "
|
||||
+ " AND k_new.mld_kenmerk_niveau = 'S' "
|
||||
+ " ) "
|
||||
+ " OR ( k_new.mld_stdmelding_key = s_new.mld_ins_discipline_key "
|
||||
+ " AND k_new.mld_kenmerk_niveau = 'D' "
|
||||
+ " ) "
|
||||
+ " ) "
|
||||
+ " AND k_old.mld_kenmerk_verwijder IS NULL "
|
||||
+ " AND k_new.mld_kenmerk_verwijder IS NULL "
|
||||
+ " AND k_old.mld_srtkenmerk_key = t.mld_srtkenmerk_key "
|
||||
+ " AND k_new.mld_srtkenmerk_key = t.mld_srtkenmerk_key "
|
||||
+ " AND t.mld_srtkenmerk_verwijder IS NULL "
|
||||
|
||||
RenameFlexFolders("MLD/M"+mld_key, flexsql);
|
||||
}
|
||||
} else { // A new mld_melding record
|
||||
|
||||
if( isNaN(exec_time) || exec_time < 0 ) {
|
||||
// Exec_time onbekend. Inputbox is niet aanwezig.
|
||||
|
||||
// Get exec_time from mld_stdmelding
|
||||
// exec_time = mld_melding_uitvoertijd;
|
||||
// __Log('inc. uitvoertijd:'+mld_melding_uitvoertijd); from _default.inc
|
||||
sql = "SELECT COALESCE(mld_stdmelding_uitvoertijd," + mld_melding_uitvoertijd +") "
|
||||
+ " FROM mld_stdmelding "
|
||||
+ " WHERE mld_stdmelding_key= "+stdmelding;
|
||||
oRs = Oracle.Execute( sql );
|
||||
if( !oRs.eof ) exec_time = oRs(0).Value;
|
||||
oRs.close();
|
||||
}
|
||||
|
||||
fields = fields.concat(
|
||||
[ { dbs: "mld_melding_key", typ: "key", seq: "mld_s_mld_melding_key" },
|
||||
{ dbs: "mld_meldbron_key", typ: "key", val: mld_meldbron_key },
|
||||
{ dbs: "mld_melding_datum", typ: "datetime", val: new Date() },
|
||||
{ dbs: "mld_melding_module", typ: "varchar", val: "MLD" },
|
||||
{ dbs: "mld_melding_user_key", typ: "key", val: user_key },
|
||||
{ dbs: "fac_activiteit_key", typ: "key", frm: "fac_activiteit_key" },
|
||||
{ dbs: "mld_melding_uitvoertijd", typ: "number", val: exec_time }
|
||||
]);
|
||||
|
||||
var mldIns = buildInsert("mld_melding", fields);
|
||||
var mld_key = mldIns.sequences["mld_melding_key"];
|
||||
|
||||
sql = mldIns.sql;
|
||||
oRs = Oracle.Execute( sql );
|
||||
}
|
||||
|
||||
mld.noteupdate (mld_key, lcl_mld_note_onchangetext);
|
||||
mld.setmeldingstatus(mld_key, mld_status);
|
||||
|
||||
|
||||
var endu = false;
|
||||
if(!fronto && !backo && !reado)
|
||||
endu = true;
|
||||
if (melding_read_only || !changed ) {
|
||||
// do nothing...
|
||||
} else {
|
||||
|
||||
var fo_orders = Request.Form("orders").Count>0;
|
||||
var mode = Request.Form("mode");
|
||||
// Objects...
|
||||
|
||||
if ( fo_orders ) {
|
||||
fo_orders = Request.Form("orders");
|
||||
var obj_n = Request.Form("r_objs").Count;
|
||||
var obj_l = '';
|
||||
for(i=1;i<=obj_n;i++){
|
||||
obj = parseInt(Request.Form("r_objs")(i));
|
||||
if( !isNaN(obj) && obj>0 ) obj_l=(obj_l==''?'':obj_l+',')+obj;
|
||||
}
|
||||
if(obj_l!='') {
|
||||
sql = " delete mld_melding_object where MLD_MELDING_KEY="+mld_key
|
||||
+ " and INS_DEEL_KEY not in("+obj_l+")"
|
||||
oRs = Oracle.Execute( sql );
|
||||
sql = "insert into mld_melding_object (MLD_MELDING_KEY,INS_DEEL_KEY)"
|
||||
+ " select " + mld_key + ",ins_deel_key from INS_v_aanwezigDEEL"
|
||||
+ " where INS_DEEL_KEY in("+obj_l+")"
|
||||
+ " and INS_DEEL_KEY not in(select INS_DEEL_KEY from mld_v_aanwezigmelding_object"
|
||||
+ " where MLD_MELDING_KEY="+mld_key+")";
|
||||
oRs = Oracle.Execute( sql );
|
||||
}
|
||||
}
|
||||
|
||||
// Delete all mld_melding flexprops, at least as long as it is allowed to change flexprops
|
||||
// (ie. status not yet 'Ingezien' or - for BO - not yet 'Uitgegeven')
|
||||
if( ! isNew && (mld_status <= 2 || (backo && mld_status <= 4))) {
|
||||
sql = "delete from MLD_KENMERKMELDING where MLD_MELDING_KEY="+mld_key;
|
||||
Oracle.Execute( sql );
|
||||
}
|
||||
|
||||
var p_id = Request.Form("person").Count>0 ? Request.Form("person") : user_key;
|
||||
saveFlexKenmerken(mld_key, "MLD_KENMERKMELDING", "MLD_MELDING_KEY",
|
||||
"MLD_KENMERKMELDING_WAARDE", "mld_kenmerk_key",
|
||||
null, // ??? Geen keys nodig, we hebben alles al opgeruimd
|
||||
false, // geen QueryString maar Form
|
||||
null,null,
|
||||
isNew,"MLD/M");
|
||||
|
||||
if (func_enabled[full_backo?"WEB_MLDBOF"
|
||||
:backo3?"WEB_MLDBO3"
|
||||
:fronto?"WEB_MLDFOF"
|
||||
:minfo?"WEB_MLDBAC"
|
||||
:"WEB_MLDUSE"]) {
|
||||
// Handle workflow actions for initial call:
|
||||
if (isNew) // Doe wat speciale dingen voor nieuwe opdrachten
|
||||
{
|
||||
mld.nextworkflowstep(mld_key, -1); // -1 = initial (the originating call)
|
||||
|
||||
// als er een activiteit is gevonden met een sjabloon opdracht (sjabl_opdr_key > 0)
|
||||
// dan moet er een nieuwe opdracht onder water aangemaakt worden met het sjabloon als voorbeeld
|
||||
sql = "SELECT mo.mld_opdr_key"
|
||||
+ " FROM mld_disc_params dp, fac_activiteit fa, mld_opdr mo"
|
||||
+ " WHERE dp.fac_activiteit_key = fa.fac_activiteit_key"
|
||||
+ " AND fa.fac_activiteit_xmlnode = 'opdracht'"
|
||||
+ " AND mo.fac_activiteit_key = fa.fac_activiteit_key"
|
||||
+ " AND dp.mld_ins_discipline_key = " + discipline_key;
|
||||
oRs = Oracle.Execute(sql);
|
||||
sjabl_opdr_key=-1;
|
||||
if (!oRs.Eof)
|
||||
sjabl_opdr_key = oRs("mld_opdr_key").Value;
|
||||
oRs.Close();
|
||||
if (sjabl_opdr_key > 0)
|
||||
{
|
||||
// Eerst de melding op gaccepteerd zetten dan opdracht aanmaken
|
||||
/* FSN#15158/PF 13-2-2009 15:00:24*/
|
||||
mld.setmeldingstatus(mld_key, 4);
|
||||
|
||||
// Parse parameters...
|
||||
// Originally, the values were the given value or null. But, there is a big difference for the
|
||||
// the parameter not being present, or being empty.
|
||||
// if it is not present, it is undefined, and a previous value should be kept
|
||||
// if it is present but empty, it is defined and should be made empty.
|
||||
// Several support calls consider errors in this part, for kost_k and ordernr mainly.
|
||||
var sql = "SELECT mld_s_mld_opdr_key.nextval FROM dual";
|
||||
|
||||
var loc = parseInt(Request.Form("locatiekey"),10);
|
||||
var sBehandel = getFParam("sBehandel", -2);
|
||||
var prio = getFParam("prio", -1);
|
||||
var del_address = getFParam("del_address", null);
|
||||
if (del_address)
|
||||
{
|
||||
oRs = Oracle.Execute('select nvl(alg_locatie_key,-1) from mld_adres where mld_adres_key = '+del_address);
|
||||
if( !oRs.eof && !(oRs(0).Value == -1)) {
|
||||
var loc = oRs(0).Value;
|
||||
}
|
||||
}
|
||||
// kost_k will be null,1 in the database. -1 means: field not present
|
||||
// TODO: kost_k uit kost_k form field halen, p_kost_k is er niet meer
|
||||
var kost_k = Request.Form("p_kost_k").Count>0 ? Request.Form("p_kost_k") : -1;
|
||||
kost_k = (kost_k == '' ? null : kost_k); // could be null anyway
|
||||
var kostplnr_key = Request.Form("account").Count>0 ? Request.Form("account") : -1;
|
||||
var act_key = Request.Form("act_key").Count>0 ? Request.Form("act_key") : -1;
|
||||
|
||||
var mld_status = parseInt( Request.Form("mld_status"), 10 ); // TODO: Deze niet uit het formulier halen
|
||||
|
||||
// melding_read_only: AKZA#438 No database update if printing while all is readonly
|
||||
// condition essentially matches 'disabled' of complains.asp
|
||||
var melding_read_only = ((e_print=="t" || e_print=="tr")
|
||||
&& ((backo && mld_status >= 5) || (!backo && mld_status >= 3))
|
||||
&& ( !isNaN(mld_key) ));
|
||||
// no need for database update if nothing was changed
|
||||
var changed = Request.Form("changed").Count>0 ? (Request.Form("changed") == 1) : true;
|
||||
|
||||
// let op (moet in het invulscherm en niet hier? Dan is dit het vangnet)
|
||||
if (isNaN (mld_status)) mld_status = 2; // of 0 als fronto en is_fo_vakgroep
|
||||
if (readyAtOnce) mld_status = 5;
|
||||
|
||||
var exec_time = parseInt( Request.Form("exec_time"), 10 );
|
||||
|
||||
// Parse Place
|
||||
|
||||
var bld = parseInt( Request.Form( "gebouwkey" ), 10 );
|
||||
var floor = parseInt( Request.Form("verdiepingkey"), 10 );
|
||||
var rooms = parseInt( Request.Form("ruimtekey"), 10 );
|
||||
|
||||
var room = 0;
|
||||
|
||||
if( ! isNaN( rooms ) && rooms > 0 ) room = rooms; else
|
||||
if( ! isNaN( floor ) && floor > 0 ) room = floor; else
|
||||
if( ! isNaN( bld ) && bld > 0 ) room = bld;
|
||||
|
||||
__Log('room : ' + room);
|
||||
__Log('mld_status : ' + mld_status);
|
||||
|
||||
// TODO: Wat deed dit?
|
||||
//if (isNaN(loc) )
|
||||
// loc = location;
|
||||
|
||||
__Log('loc : ' + loc);
|
||||
|
||||
stdmelding = getFParam("stdm");
|
||||
sql = "SELECT mld_ins_discipline_key FROM mld_stdmelding WHERE mld_stdmelding_key = "+stdmelding;
|
||||
discipline_key = Oracle.Execute(sql)("mld_ins_discipline_key").Value;
|
||||
|
||||
// Deze velden altijd opslaan
|
||||
var fields = [ { dbs: "mld_melding_omschrijving", typ: "varchar", frm: "melding_omschrijving" },
|
||||
{ dbs: "mld_kosten_klant", typ: "bool", frm: "p_kost_k" },
|
||||
{ dbs: "mld_melding_ordernr", typ: "varchar", frm: "ordernr" }, // TODO: RTRIM()
|
||||
{ dbs: "prs_kostenplaats_key", typ: "key", frm: "account" }, // TODO: NULL zetten als niet meegegeven?
|
||||
{ dbs: "mld_melding_opmerking", typ: "varchar", frm: "rem" },
|
||||
{ dbs: "mld_stdmelding_key", typ: "key", frm: "stdm" },
|
||||
{ dbs: "mld_ins_discipline_key", typ: "sql", val: discipline_key }, // TODO door een trigger
|
||||
{ dbs: "mld_alg_onroerendgoed_keys", typ: "key", val: room },
|
||||
// { dbs: "mld_alg_locatie_key", typ: "key", val: loc>0?loc:mld_locatie_if_not_alg },
|
||||
{ dbs: "mld_adres_key", typ: "number", frm: "del_address" },
|
||||
{ dbs: "mld_melding_behandelaar_key", typ: "key", frm: "sBehandel" }
|
||||
];
|
||||
|
||||
if( mld_key > 0 ) { // Update an existing mld_melding record
|
||||
|
||||
// Dit is het (laatste) moment waarop we de oude data nog hebben als die gewijzigd is
|
||||
// mld_stdmelding_key is voor ons belangrijk om eventueel documentfolders te hernoemen.
|
||||
sql = "SELECT mld_stdmelding_key, "
|
||||
+ " mld_melding_status,"
|
||||
+ " COALESCE(mld_melding_behandelaar_key, -1) mld_melding_behandelaar_key," // dan kan ik makkelijk vergelijken met de meegegeven waarde
|
||||
+ " mld_melding_spoed"
|
||||
+ " FROM mld_melding WHERE mld_melding_key = " + mld_key;
|
||||
|
||||
oRs = Oracle.Execute(sql);
|
||||
old_stdm = oRs("MLD_STDMELDING_KEY").Value;
|
||||
old_status = oRs("mld_melding_status").Value;
|
||||
old_behandelaar = oRs("mld_melding_behandelaar_key").value;
|
||||
old_prioriteit = oRs("mld_melding_spoed").value;
|
||||
|
||||
if (urole=="bo" && old_status < 4)
|
||||
mld.setmeldingstatus(mld_key, 4); // Impliciete acceptatie TODO: sterker (functioneel definieren); urole==bo lijkt me te zwak
|
||||
|
||||
if (endu)
|
||||
fields.push({ dbs: "prs_perslid_key", typ: "key", frm: "person" });
|
||||
else
|
||||
fields.push({ dbs: "mld_melding_user_key", typ: "key", frm: "person" });
|
||||
|
||||
if (prio != -1)
|
||||
fields.push({ dbs: "mld_melding_spoed", typ: "key", val: prio });
|
||||
|
||||
fields.push({ dbs: "mld_melding_uitvoertijd", typ: "number", frm: "exec_time", val: mld_melding_uitvoertijd }) // TODO: Als < 0 dan ook default nemen
|
||||
|
||||
sql = buildUpdate("mld_melding", fields) + " mld_melding_key = " + mld_key;
|
||||
|
||||
/* SUBMIT THE CHANGED DATA */
|
||||
oRs = Oracle.Execute( sql );
|
||||
|
||||
/* SUBMIT ADDITIONAL TRACKING */
|
||||
if (sBehandel != -2 && old_behandelaar != sBehandel) // Anders is-ie niet meegegeven of niet veranderd
|
||||
mld.trackbehandelaar(mld_key, sBehandel);
|
||||
if (prio != -1 && old_prioriteit != prio)
|
||||
mld.trackpriochange(mld_key, prio);
|
||||
|
||||
/* Match de srtkenmerk_key-s van de oude en nieuwe mld_stdmelding */
|
||||
if (old_stdm != stdmelding)
|
||||
{
|
||||
__Log("Old MLD_STDMELDING_KEY: " + old_stdm + " New: " + stdmelding);
|
||||
// pas op dat zelfs de vakgroep (mld_ins_discipline_key) gewijzigd kan zijn
|
||||
var flexsql = "SELECT k_old.mld_kenmerk_key k_old, k_new.mld_kenmerk_key k_new "
|
||||
+ " FROM mld_srtkenmerk t, "
|
||||
+ " mld_kenmerk k_old, "
|
||||
+ " mld_kenmerk k_new, "
|
||||
+ " mld_stdmelding s_old, "
|
||||
+ " mld_stdmelding s_new "
|
||||
+ " WHERE s_old.mld_stdmelding_key = " + old_stdm
|
||||
+ " AND s_new.mld_stdmelding_key = " + stdmelding
|
||||
+ " AND t.mld_srtkenmerk_kenmerktype IN ('F', 'E', 'M') "
|
||||
+ " AND ( ( k_old.mld_stdmelding_key = s_old.mld_stdmelding_key "
|
||||
+ " AND k_old.mld_kenmerk_niveau = 'S' "
|
||||
+ " ) "
|
||||
+ " OR ( k_old.mld_stdmelding_key = s_old.mld_ins_discipline_key "
|
||||
+ " AND k_old.mld_kenmerk_niveau = 'D' "
|
||||
+ " ) "
|
||||
+ " ) "
|
||||
+ " AND ( ( k_new.mld_stdmelding_key = s_new.mld_stdmelding_key "
|
||||
+ " AND k_new.mld_kenmerk_niveau = 'S' "
|
||||
+ " ) "
|
||||
+ " OR ( k_new.mld_stdmelding_key = s_new.mld_ins_discipline_key "
|
||||
+ " AND k_new.mld_kenmerk_niveau = 'D' "
|
||||
+ " ) "
|
||||
+ " ) "
|
||||
+ " AND k_old.mld_kenmerk_verwijder IS NULL "
|
||||
+ " AND k_new.mld_kenmerk_verwijder IS NULL "
|
||||
+ " AND k_old.mld_srtkenmerk_key = t.mld_srtkenmerk_key "
|
||||
+ " AND k_new.mld_srtkenmerk_key = t.mld_srtkenmerk_key "
|
||||
+ " AND t.mld_srtkenmerk_verwijder IS NULL "
|
||||
|
||||
RenameFlexFolders("MLD/M"+mld_key, flexsql);
|
||||
}
|
||||
} else { // A new mld_melding record
|
||||
|
||||
if( isNaN(exec_time) || exec_time < 0 ) {
|
||||
// Exec_time onbekend. Inputbox is niet aanwezig.
|
||||
|
||||
// Get exec_time from mld_stdmelding
|
||||
// exec_time = mld_melding_uitvoertijd;
|
||||
// __Log('inc. uitvoertijd:'+mld_melding_uitvoertijd); from _default.inc
|
||||
sql = "SELECT COALESCE(mld_stdmelding_uitvoertijd," + mld_melding_uitvoertijd +") "
|
||||
+ " FROM mld_stdmelding "
|
||||
+ " WHERE mld_stdmelding_key= "+stdmelding;
|
||||
oRs = Oracle.Execute( sql );
|
||||
if( !oRs.eof ) exec_time = oRs(0).Value;
|
||||
oRs.close();
|
||||
}
|
||||
|
||||
fields = fields.concat(
|
||||
[ { dbs: "mld_melding_key", typ: "key", seq: "mld_s_mld_melding_key" },
|
||||
{ dbs: "mld_meldbron_key", typ: "key", val: mld_meldbron_key },
|
||||
{ dbs: "mld_melding_datum", typ: "datetime", val: new Date() },
|
||||
{ dbs: "mld_melding_module", typ: "varchar", val: "MLD" },
|
||||
{ dbs: "prs_perslid_key", typ: "key", frm: "person" },
|
||||
{ dbs: "mld_melding_user_key", typ: "key", val: user_key },
|
||||
{ dbs: "fac_activiteit_key", typ: "key", frm: "fac_activiteit_key" },
|
||||
{ dbs: "mld_melding_uitvoertijd", typ: "number", val: exec_time }
|
||||
]);
|
||||
|
||||
var mldIns = buildInsert("mld_melding", fields);
|
||||
var mld_key = mldIns.sequences["mld_melding_key"];
|
||||
|
||||
sql = mldIns.sql;
|
||||
oRs = Oracle.Execute( sql );
|
||||
}
|
||||
|
||||
mld.noteupdate (mld_key, lcl_mld_note_onchangetext);
|
||||
mld.setmeldingstatus(mld_key, mld_status);
|
||||
|
||||
|
||||
if (melding_read_only || !changed ) {
|
||||
// do nothing...
|
||||
} else {
|
||||
|
||||
// Objects...
|
||||
|
||||
var obj_n = Request.Form("r_objs").Count;
|
||||
var obj_l = '';
|
||||
for(i=1;i<=obj_n;i++){
|
||||
obj = parseInt(Request.Form("r_objs")(i));
|
||||
if( !isNaN(obj) && obj>0 ) obj_l=(obj_l==''?'':obj_l+',')+obj;
|
||||
}
|
||||
if(obj_l!='') {
|
||||
sql = " delete mld_melding_object where MLD_MELDING_KEY="+mld_key
|
||||
+ " and INS_DEEL_KEY not in("+obj_l+")"
|
||||
oRs = Oracle.Execute( sql );
|
||||
sql = "insert into mld_melding_object (MLD_MELDING_KEY,INS_DEEL_KEY)"
|
||||
+ " select " + mld_key + ",ins_deel_key from INS_v_aanwezigDEEL"
|
||||
+ " where INS_DEEL_KEY in("+obj_l+")"
|
||||
+ " and INS_DEEL_KEY not in(select INS_DEEL_KEY from mld_v_aanwezigmelding_object"
|
||||
+ " where MLD_MELDING_KEY="+mld_key+")";
|
||||
oRs = Oracle.Execute( sql );
|
||||
}
|
||||
}
|
||||
|
||||
if (melding_read_only || minfo) { // nu: ongeacht changed, moet nog beter (..)
|
||||
// do nothing...
|
||||
} else {
|
||||
|
||||
// Delete all mld_melding flexprops, at least as long as it is allowed to change flexprops
|
||||
// (ie. status not yet 'Ingezien' or - for BO - not yet 'Uitgegeven')
|
||||
if( ! isNew && (mld_status <= 2 || (backo && mld_status <= 4))) {
|
||||
sql = "delete from MLD_KENMERKMELDING where MLD_MELDING_KEY="+mld_key;
|
||||
Oracle.Execute( sql );
|
||||
}
|
||||
|
||||
saveFlexKenmerken(mld_key, "MLD_KENMERKMELDING", "MLD_MELDING_KEY",
|
||||
"MLD_KENMERKMELDING_WAARDE", "mld_kenmerk_key",
|
||||
null, // ??? Geen keys nodig, we hebben alles al opgeruimd
|
||||
false, // geen QueryString maar Form
|
||||
null,null,
|
||||
isNew,"MLD/M");
|
||||
}
|
||||
|
||||
// Handle workflow actions for initial call:
|
||||
if (isNew) // Doe wat speciale dingen voor nieuwe opdrachten
|
||||
{
|
||||
mld.nextworkflowstep(mld_key, -1); // -1 = initial (the originating call)
|
||||
|
||||
// als er een activiteit is gevonden met een sjabloon opdracht (sjabl_opdr_key > 0)
|
||||
// dan moet er een nieuwe opdracht onder water aangemaakt worden met het sjabloon als voorbeeld
|
||||
sql = "SELECT mo.mld_opdr_key"
|
||||
+ " FROM mld_disc_params dp, fac_activiteit fa, mld_opdr mo"
|
||||
+ " WHERE dp.fac_activiteit_key = fa.fac_activiteit_key"
|
||||
+ " AND fa.fac_activiteit_xmlnode = 'opdracht'"
|
||||
+ " AND mo.fac_activiteit_key = fa.fac_activiteit_key"
|
||||
+ " AND dp.mld_ins_discipline_key = " + discipline_key;
|
||||
oRs = Oracle.Execute(sql);
|
||||
sjabl_opdr_key=-1;
|
||||
if (!oRs.Eof)
|
||||
sjabl_opdr_key = oRs("mld_opdr_key").Value;
|
||||
new_opdr = oRs(0).Value;
|
||||
oRs.Close();
|
||||
if (sjabl_opdr_key > 0)
|
||||
{
|
||||
// Eerst de melding op gaccepteerd zetten dan opdracht aanmaken
|
||||
/* FSN#15158/PF 13-2-2009 15:00:24*/
|
||||
mld.setmeldingstatus(mld_key, 4);
|
||||
|
||||
var sql = "SELECT mld_s_mld_opdr_key.nextval FROM dual";
|
||||
sql = "INSERT INTO mld_opdr ("
|
||||
+ "mld_opdr_key, "
|
||||
+ " mld_opdr_module"
|
||||
+ ", mld_melding_key"
|
||||
+ ", mld_uitvoerende_keys"
|
||||
+ ", mld_typeopdr_key"
|
||||
+ ", mld_statusopdr_key"
|
||||
+ ", mld_standaardopdr_key"
|
||||
+ ", mld_opdr_omschrijving"
|
||||
+ ", mld_opdr_datumbegin"
|
||||
+ ", mld_opdr_dagen"
|
||||
+ ", mld_opdr_werkzaamheden"
|
||||
+ ", mld_opdr_uren"
|
||||
+ ", mld_opdr_materiaal"
|
||||
+ ", mld_opdr_kosten"
|
||||
+ ", mld_opdr_contactpersoon"
|
||||
+ ", mld_opdr_geprint"
|
||||
+ ", mld_opdr_bedrijfopdr_volgnr"
|
||||
+ ", mld_opdr_uurloon"
|
||||
+ ", prs_perslid_key"
|
||||
+ ", prs_contactpersoon_key"
|
||||
+ ", cnt_contract_key"
|
||||
+ ", cnt_contract_dienst_key"
|
||||
+ ", prs_kostenplaats_key"
|
||||
+ ", mld_opdr_opmerking_fiat"
|
||||
+ ", mld_opdr_ordernr"
|
||||
+ ", mld_opdr_teverzenden"
|
||||
+ ", mld_opdr_opmerking)"
|
||||
+ " SELECT"
|
||||
+ " " + new_opdr + ", "
|
||||
+ " mld_opdr_module"
|
||||
+ ", " + mld_key
|
||||
+ ", mld_uitvoerende_keys"
|
||||
+ ", mld_typeopdr_key"
|
||||
+ ", mld_statusopdr_key"
|
||||
+ ", mld_standaardopdr_key"
|
||||
+ ", mld_opdr_omschrijving"
|
||||
+ ", mld_opdr_datumbegin"
|
||||
+ ", mld_opdr_dagen"
|
||||
+ ", mld_opdr_werkzaamheden"
|
||||
+ ", mld_opdr_uren"
|
||||
+ ", mld_opdr_materiaal"
|
||||
+ ", mld_opdr_kosten"
|
||||
+ ", mld_opdr_contactpersoon"
|
||||
+ ", mld_opdr_geprint"
|
||||
+ ", mld_opdr_bedrijfopdr_volgnr"
|
||||
+ ", mld_opdr_uurloon"
|
||||
+ ", prs_perslid_key"
|
||||
+ ", prs_contactpersoon_key"
|
||||
+ ", cnt_contract_key"
|
||||
+ ", cnt_contract_dienst_key"
|
||||
+ ", prs_kostenplaats_key"
|
||||
+ ", mld_opdr_opmerking_fiat"
|
||||
+ ", mld_opdr_ordernr"
|
||||
+ ", mld_opdr_teverzenden"
|
||||
+ ", mld_opdr_opmerking"
|
||||
+ " FROM mld_opdr o"
|
||||
+ " WHERE o.mld_opdr_key = " + sjabl_opdr_key;
|
||||
|
||||
oRs = Oracle.Execute(sql);
|
||||
new_opdr = oRs(0).Value;
|
||||
oRs.Close();
|
||||
Oracle.Execute(sql);
|
||||
|
||||
sql = "INSERT INTO mld_opdr ("
|
||||
+ "mld_opdr_key, "
|
||||
+ " mld_opdr_module"
|
||||
+ ", mld_melding_key"
|
||||
+ ", mld_uitvoerende_keys"
|
||||
+ ", mld_typeopdr_key"
|
||||
+ ", mld_statusopdr_key"
|
||||
+ ", mld_standaardopdr_key"
|
||||
+ ", mld_opdr_omschrijving"
|
||||
+ ", mld_opdr_datumbegin"
|
||||
+ ", mld_opdr_dagen"
|
||||
+ ", mld_opdr_werkzaamheden"
|
||||
+ ", mld_opdr_datumuitgevoerd"
|
||||
+ ", mld_opdr_uren"
|
||||
+ ", mld_opdr_materiaal"
|
||||
+ ", mld_opdr_kosten"
|
||||
+ ", mld_opdr_contactpersoon"
|
||||
+ ", mld_opdr_geprint"
|
||||
+ ", mld_opdr_bedrijfopdr_volgnr"
|
||||
+ ", mld_opdr_uurloon"
|
||||
+ ", prs_perslid_key"
|
||||
+ ", prs_contactpersoon_key"
|
||||
+ ", cnt_contract_key"
|
||||
+ ", cnt_contract_dienst_key"
|
||||
+ ", mld_opdr_afgemeld_user"
|
||||
+ ", mld_opdr_aanmaak"
|
||||
+ ", mld_opdr_verzonden"
|
||||
+ ", prs_kostenplaats_key"
|
||||
+ ", prs_perslid_key_fiat"
|
||||
+ ", mld_opdr_datumfiatvraag"
|
||||
+ ", mld_opdr_datumfiat_ok"
|
||||
+ ", mld_opdr_datumfiat_nok"
|
||||
+ ", mld_opdr_opmerking_fiat"
|
||||
+ ", mld_opdr_verwerkt"
|
||||
//+ ", fac_activiteit_key"
|
||||
+ ", mld_opdr_ordernr"
|
||||
+ ", mld_opdr_teverzenden"
|
||||
+ ", mld_opdr_opmerking)"
|
||||
+ " SELECT"
|
||||
+ " " + new_opdr + ", "
|
||||
+ " mld_opdr_module"
|
||||
+ ", " + mld_key
|
||||
+ ", mld_uitvoerende_keys"
|
||||
+ ", mld_typeopdr_key"
|
||||
+ ", mld_statusopdr_key"
|
||||
+ ", mld_standaardopdr_key"
|
||||
+ ", mld_opdr_omschrijving"
|
||||
+ ", mld_opdr_datumbegin"
|
||||
+ ", mld_opdr_dagen"
|
||||
+ ", mld_opdr_werkzaamheden"
|
||||
+ ", mld_opdr_datumuitgevoerd"
|
||||
+ ", mld_opdr_uren"
|
||||
+ ", mld_opdr_materiaal"
|
||||
+ ", mld_opdr_kosten"
|
||||
+ ", mld_opdr_contactpersoon"
|
||||
+ ", mld_opdr_geprint"
|
||||
+ ", mld_opdr_bedrijfopdr_volgnr"
|
||||
+ ", mld_opdr_uurloon"
|
||||
+ ", prs_perslid_key"
|
||||
+ ", prs_contactpersoon_key"
|
||||
+ ", cnt_contract_key"
|
||||
+ ", cnt_contract_dienst_key"
|
||||
+ ", mld_opdr_afgemeld_user"
|
||||
+ ", mld_opdr_aanmaak"
|
||||
+ ", mld_opdr_verzonden"
|
||||
+ ", prs_kostenplaats_key"
|
||||
+ ", prs_perslid_key_fiat"
|
||||
+ ", mld_opdr_datumfiatvraag"
|
||||
+ ", mld_opdr_datumfiat_ok"
|
||||
+ ", mld_opdr_datumfiat_nok"
|
||||
+ ", mld_opdr_opmerking_fiat"
|
||||
+ ", mld_opdr_verwerkt"
|
||||
//+ ", fac_activiteit_key"
|
||||
+ ", mld_opdr_ordernr"
|
||||
+ ", mld_opdr_teverzenden"
|
||||
+ ", mld_opdr_opmerking"
|
||||
+ " FROM mld_opdr o"
|
||||
+ " WHERE o.mld_opdr_key = " + sjabl_opdr_key;
|
||||
// Kopi<70>ren flexkenmerken
|
||||
// De regels in de tabel mld_kenmerkopdr kopi<70>ren
|
||||
sql = "INSERT INTO mld_kenmerkopdr ("
|
||||
+ " mld_opdr_key"
|
||||
+ ", mld_kenmerk_key"
|
||||
+ ", mld_kenmerkopdr_waarde)"
|
||||
+ " SELECT " + new_opdr
|
||||
+ ", mld_kenmerk_key"
|
||||
+ ", mld_kenmerkopdr_waarde"
|
||||
+ " FROM mld_kenmerkopdr"
|
||||
+ " WHERE mld_opdr_key = " + sjabl_opdr_key;
|
||||
Oracle.Execute(sql);
|
||||
|
||||
Oracle.Execute(sql);
|
||||
// Copy de flex folders: CopyFlexFolders(oldbasepath, newbasepath, flexsql)
|
||||
// typeopdr and mld_kenmerk_key is for both orders, old (sjabloon) and new, the same
|
||||
|
||||
// Kopi<70>ren flexkenmerken
|
||||
// De regels in de tabel mld_kenmerkopdr kopi<70>ren
|
||||
sql = "INSERT INTO mld_kenmerkopdr ("
|
||||
+ " mld_opdr_key"
|
||||
+ ", mld_kenmerk_key"
|
||||
+ ", mld_kenmerkopdr_waarde)"
|
||||
+ " SELECT " + new_opdr
|
||||
+ ", mld_kenmerk_key"
|
||||
+ ", mld_kenmerkopdr_waarde"
|
||||
+ " FROM mld_kenmerkopdr"
|
||||
+ " WHERE mld_opdr_key = " + sjabl_opdr_key;
|
||||
Oracle.Execute(sql);
|
||||
|
||||
// Copy de flex folders: CopyFlexFolders(oldbasepath, newbasepath, flexsql)
|
||||
// typeopdr and mld_kenmerk_key is for both orders, old (sjabloon) and new, the same
|
||||
|
||||
var flexsql = "SELECT k_old.mld_kenmerk_key k_old"
|
||||
+ ", k_old.mld_kenmerk_key k_new"
|
||||
+ " FROM mld_srtkenmerk t"
|
||||
+ ", mld_kenmerk k_old"
|
||||
+ ", mld_opdr o_old"
|
||||
+ " WHERE o_old.mld_opdr_key = " + sjabl_opdr_key
|
||||
+ " AND t.mld_srtkenmerk_kenmerktype IN ('F', 'E', 'M') "
|
||||
+ " AND k_old.mld_typeopdr_key = o_old.mld_typeopdr_key "
|
||||
+ " AND k_old.mld_kenmerk_niveau = 'O' "
|
||||
+ " AND k_old.mld_kenmerk_verwijder IS NULL "
|
||||
+ " AND k_old.mld_srtkenmerk_key = t.mld_srtkenmerk_key "
|
||||
+ " AND t.mld_srtkenmerk_verwijder IS NULL";
|
||||
CopyFlexFolders("MLD/O" + sjabl_opdr_key, "MLD/O" + new_opdr, flexsql);
|
||||
}
|
||||
// else // Nieuw maar geen sjabloon
|
||||
}
|
||||
var flexsql = "SELECT k_old.mld_kenmerk_key k_old"
|
||||
+ ", k_old.mld_kenmerk_key k_new"
|
||||
+ " FROM mld_srtkenmerk t"
|
||||
+ ", mld_kenmerk k_old"
|
||||
+ ", mld_opdr o_old"
|
||||
+ " WHERE o_old.mld_opdr_key = " + sjabl_opdr_key
|
||||
+ " AND t.mld_srtkenmerk_kenmerktype IN ('F', 'E', 'M') "
|
||||
+ " AND k_old.mld_typeopdr_key = o_old.mld_typeopdr_key "
|
||||
+ " AND k_old.mld_kenmerk_niveau = 'O' "
|
||||
+ " AND k_old.mld_kenmerk_verwijder IS NULL "
|
||||
+ " AND k_old.mld_srtkenmerk_key = t.mld_srtkenmerk_key "
|
||||
+ " AND t.mld_srtkenmerk_verwijder IS NULL";
|
||||
CopyFlexFolders("MLD/O" + sjabl_opdr_key, "MLD/O" + new_opdr, flexsql);
|
||||
}
|
||||
// else // Nieuw maar geen sjabloon
|
||||
}
|
||||
|
||||
%>
|
||||
<html>
|
||||
<head>
|
||||
<% FCLTHeader.Generate() %>
|
||||
<script>
|
||||
var doneParams = { mld_key: <%=mld_key%>, autoprint: false };
|
||||
var doneParams = { mld_key: <%=mld_key%>, autoprint: false };
|
||||
|
||||
<% if ( mld_melding_autoprint==2) { // altijd %>
|
||||
doneParams.autoprint=true;
|
||||
@@ -470,7 +433,7 @@
|
||||
</head>
|
||||
|
||||
<%
|
||||
}
|
||||
}
|
||||
%>
|
||||
<body>
|
||||
</body>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<%@language = "javascript" %>
|
||||
<% /*
|
||||
$Revision: 1 $
|
||||
$Modtime: 28-09-09 11:56 $
|
||||
$Revision: 2 $
|
||||
$Modtime: 28-10-09 23:56 $
|
||||
|
||||
File: opdr_search.asp (formerly orders_search.asp;35, ComplainsReprotAll.asp;72)
|
||||
Status: 20%
|
||||
@@ -45,9 +45,9 @@ var urole = getQParam("urole");
|
||||
var fronto = urole == "fo";
|
||||
var backo = urole == "bo";
|
||||
var minfo = urole == "mi"; // NOT APPLICABLE?
|
||||
var frontend = (urole == "fe" || (!fronto & !backo & !minfo));
|
||||
var frontend = (urole == "fe" || (!fronto & !backo & !minfo));
|
||||
|
||||
// LET OP: voorheen keken we of MLDBO2 of MLDBO3 wellicht gold als MLDBOF
|
||||
// LET OP: voorheen keken we of MLDBO2 of MLDBO3 wellicht gold als MLDBOF
|
||||
// niet geldig was. Nu doen we dat door parameters
|
||||
var justClose = getQParam("close", null);
|
||||
|
||||
@@ -112,7 +112,7 @@ var authparams = user.checkAutorisation(autfunction);
|
||||
alert("<%=lcl_select_notypeopdr_selected%>");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
var key = $('#opdrtype').val();
|
||||
var url = "load_kenmerk.asp?t_opdr=" + $('#opdrtype').val()
|
||||
+ "&urole=<%=urole%>"
|
||||
@@ -162,7 +162,7 @@ var authparams = user.checkAutorisation(autfunction);
|
||||
+ ", prs_v_aanwezigbedrijf b"
|
||||
+ " WHERE c.cnt_prs_bedrijf_key = b.prs_bedrijf_key"
|
||||
+ " ORDER BY 2";
|
||||
|
||||
|
||||
FCLTselector("contract",
|
||||
sql,
|
||||
{ initKey: cnt_key,
|
||||
@@ -293,7 +293,7 @@ var authparams = user.checkAutorisation(autfunction);
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<div id="statusboxes">
|
||||
<% // Was if (backo || (cnt && cnt_key != -1) || (oRs(0)==5))
|
||||
<% // Was if (backo || (cnt && cnt_key != -1) || (oRs(0)==5))
|
||||
// dus Uitgegeven mocht altijd, en de overige statussen alleen als backo OF cnt zonder key
|
||||
%>
|
||||
<label><%=lcl_opdr_statusfilters%></label>
|
||||
@@ -320,7 +320,7 @@ var authparams = user.checkAutorisation(autfunction);
|
||||
CreateButton(lcl_search, "doSubmit();", 100);
|
||||
if (!frontend && !justClose)
|
||||
{
|
||||
CreateButton(lcl_more, "iface_toggleSecondarySearchblock();", 100, "btnMoreLess");
|
||||
CreateButton(LCL.shared.more, "iface_toggleSecondarySearchblock();", 100, "btnMoreLess");
|
||||
if (backo)
|
||||
{
|
||||
CreateButton(lcl_obj_advanced +'>', "myModal();", 100, 'bAdvanced'); // met actuele waarden van opdrtype en vorig filter
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<%@language = "javascript" %>
|
||||
<% /*
|
||||
$Revision: 1 $
|
||||
$Modtime: 26-09-09 16:19 $
|
||||
$Revision: 2 $
|
||||
$Modtime: 29-10-09 11:19 $
|
||||
*/ %>
|
||||
|
||||
<% Response.Expires = 0; %>
|
||||
@@ -101,7 +101,7 @@ FCLTHeader.Requires();
|
||||
else
|
||||
{ %>
|
||||
delete_i = 1;
|
||||
document.all.item("res").rows(tab_i).cells(0).innerHTML = "<img style='display:block' src='../Pictures/res_ok.gif' alt='<%=lcl_RES_completed_unknowed%>'>"
|
||||
document.all.item("res").rows(tab_i).cells(0).innerHTML = "<img style='display:block' src='../Pictures/res_ok.gif' alt='<%=LCL.res.completed_unknown%>'>"
|
||||
<% } %>
|
||||
}
|
||||
res_table = document.all.item("res");
|
||||
@@ -126,7 +126,7 @@ FCLTHeader.Requires();
|
||||
{
|
||||
action = "checkComplete(this.parentNode.rowIndex)"
|
||||
}
|
||||
}
|
||||
}
|
||||
return action;
|
||||
}
|
||||
|
||||
|
||||
461
APPL/RES/res.inc
461
APPL/RES/res.inc
@@ -12,14 +12,16 @@
|
||||
Note: Also takes holidays into account
|
||||
*/
|
||||
|
||||
FCLTHeader.Requires({css: ["./res.css"], lcl: ["RES"]});
|
||||
|
||||
res = {
|
||||
trackaction:
|
||||
function (paction, res_key, poms) /* paction is 'RESNEW', 'RESUPD', 'RESAFM' of 'RESDEL' */
|
||||
{
|
||||
if (typeof poms == 'undefined')
|
||||
//pcode VARCHAR2 , prefkey NUMBER, puserkey NUMBER, pdatum DATE, poms VARCHAR2
|
||||
//pcode VARCHAR2 , prefkey NUMBER, puserkey NUMBER, pdatum DATE, poms VARCHAR2
|
||||
var sql = "BEGIN fac.trackaction('"+paction+"', "+res_key+", "+user_key+", NULL, NULL); END;"
|
||||
else
|
||||
else
|
||||
var sql = "BEGIN fac.trackaction('"+paction+"', "+res_key+", "+user_key+", NULL, '"+poms+"'); END;"
|
||||
Oracle.Execute( sql );
|
||||
},
|
||||
@@ -53,8 +55,8 @@ res = {
|
||||
timechanged : 0x000000010000, // Parent gewijzigd en wij mee gewijzigd
|
||||
timenotchanged: 0x000000100000, // Parent gewijzigd maar wij niet mee gewijzigd
|
||||
//zwaar
|
||||
notallowed : 0x000100000000, // Niet toegestaan in deze ruimte
|
||||
notavailable : 0x001000000000 // Niet beschikbaar op tijdstip
|
||||
notallowed : 0x100, // Niet toegestaan in deze ruimte
|
||||
notavailable : 0x200 // Niet beschikbaar op tijdstip
|
||||
}
|
||||
},
|
||||
|
||||
@@ -133,6 +135,18 @@ res = {
|
||||
}
|
||||
oRs.close();
|
||||
|
||||
var sql = "SELECT ALG_ONRGOEDKENMERK_WAARDE"
|
||||
+ " FROM ALG_ONRGOEDKENMERK"
|
||||
+ " WHERE ALG_KENMERK_KEY = " + photo_kenmerk_key
|
||||
+ " AND ALG_ONRGOEDKENMERK_VERWIJDER IS NULL"
|
||||
+ " AND ALG_ONRGOED_KEY IN"
|
||||
+ " (SELECT ALG_RUIMTE_KEY FROM RES_V_AANWEZIGALG_RUIMTE WHERE RES_RUIMTE_KEY IN"
|
||||
+ " (SELECT RES_RUIMTE_KEY FROM RES_V_AANWEZIGRUIMTE WHERE RES_RUIMTE_KEY="+res_ruimte_key+"))";
|
||||
|
||||
var oRs = Oracle.Execute( sql );
|
||||
if( !oRs.eof )
|
||||
result.imagePath = image_path_virtual + oRs("ALG_ONRGOEDKENMERK_WAARDE").value;
|
||||
|
||||
return result;
|
||||
},
|
||||
|
||||
@@ -162,10 +176,10 @@ res = {
|
||||
in_time_cat = (time_string < t_catExpire_limit); // Ben ik voor of na de t_catExpire_limit tijd, waarna het niet meer mogelijk is door de FrontEnd aanpassingen te maken
|
||||
}
|
||||
|
||||
sql = "SELECT mld_p_mld_datumtijd.DatumTijdPlusUitvoerTijd(SYSDATE, " + res_confirm + ", 'DAGEN'),"
|
||||
sql += " mld_p_mld_datumtijd.DatumTijdPlusUitvoerTijd(SYSDATE, " + res_cancel + ", 'DAGEN'),"
|
||||
sql += " mld_p_mld_datumtijd.DatumTijdPlusUitvoerTijd(" + ((t_expire_limit == -1)?"sysdate":sysdate_start) + ", " + (res_expire + (in_time?0:1)) + ", 'DAGEN'),"
|
||||
sql += " mld_p_mld_datumtijd.DatumTijdPlusUitvoerTijd(" + ((t_catExpire_limit == -1)?"sysdate":sysdate_start) + ", " + (res_catExpire + (in_time_cat?0:1)) + ", 'DAGEN')"
|
||||
sql = "SELECT fac.DatumTijdPlusUitvoerTijd(SYSDATE, " + res_confirm + ", 'DAGEN'),"
|
||||
sql += " fac.DatumTijdPlusUitvoerTijd(SYSDATE, " + res_cancel + ", 'DAGEN'),"
|
||||
sql += " fac.DatumTijdPlusUitvoerTijd(" + ((t_expire_limit == -1)?"sysdate":sysdate_start) + ", " + (res_expire + (in_time?0:1)) + ", 'DAGEN'),"
|
||||
sql += " fac.DatumTijdPlusUitvoerTijd(" + ((t_catExpire_limit == -1)?"sysdate":sysdate_start) + ", " + (res_catExpire + (in_time_cat?0:1)) + ", 'DAGEN')"
|
||||
sql += " FROM DUAL"
|
||||
|
||||
oRs = Oracle.Execute( sql );
|
||||
@@ -214,6 +228,218 @@ res = {
|
||||
var tNow = new Date(<%=this.tNow().valueOf()%>) // Server side date to use clientside!
|
||||
</script>
|
||||
<%
|
||||
},
|
||||
|
||||
// Controleert/bepaalt de rechten op het 'Algemeen' blok bij een (deel)reservering
|
||||
// TODO: loopt het niet gewoon synchroon: als je het algemeen blok mag
|
||||
// bewerken dan mag je ook altijd de catering/voorzieningen?
|
||||
// Altijd worden de disciplines van de catering/voorziening bekeken
|
||||
// Voor restype=="R" wordt ook de discipline van de RES_RUIMTE bekeken
|
||||
// We kijken pessimistisch: je moet rechten hebben voor alle disciplines
|
||||
// TODO??: Deze rechten hebben betrekking op het 'Algemeen' blok van reserveringen
|
||||
func_enabled: function _func_enabled(rsv_ruimte_key)
|
||||
{
|
||||
// Wat informatie om rechten te kunnen bepalen
|
||||
var sql = "SELECT r.res_ruimte_opstel_key,"
|
||||
+ " r.alg_ruimte_key,"
|
||||
+ " r.res_rsv_ruimte_van,"
|
||||
+ " r.res_rsv_ruimte_contact_key,"
|
||||
+ " r.res_status_fo_key"
|
||||
+ " FROM res_rsv_ruimte r "
|
||||
+ " WHERE res_rsv_ruimte_key = " + rsv_ruimte_key;
|
||||
|
||||
var roRs = Oracle.Execute(sql);
|
||||
|
||||
var alg_ruimte_key = roRs("alg_ruimte_key").Value;
|
||||
var status_fo_key = roRs("res_status_fo_key").Value;
|
||||
var rsv_ruimte_van = new Date(roRs("res_rsv_ruimte_van").Value);
|
||||
var rsv_ruimte_contact_key = roRs("res_rsv_ruimte_contact_key").Value;
|
||||
|
||||
// Bepaal alle CV disciplines waar we iets van hebben
|
||||
var discs = "SELECT res_discipline_key"
|
||||
+ " FROM res_artikel ra, res_rsv_artikel rra"
|
||||
+ " WHERE ra.res_artikel_key = rra.res_artikel_key"
|
||||
+ " AND rra.res_rsv_ruimte_key = " + rsv_ruimte_key
|
||||
+ " UNION " // geen dubbelen nodig
|
||||
+ "SELECT res_discipline_key"
|
||||
+ " FROM res_deel rd, res_rsv_deel rrd"
|
||||
+ " WHERE rd.res_deel_key = rrd.res_deel_key"
|
||||
+ " AND rrd.res_rsv_ruimte_key = " + rsv_ruimte_key;
|
||||
var oRs = Oracle.Execute(discs);
|
||||
disc_key_str = "";
|
||||
while (!oRs.eof)
|
||||
{
|
||||
disc_key_str = disc_key_str+(disc_key_str==""?"":",")+oRs("res_discipline_key").Value;
|
||||
oRs.MoveNext();
|
||||
}
|
||||
|
||||
if (alg_ruimte_key==null)
|
||||
{ // "R" reservering, bepaal *ook* discipline van de ruimte en alg_ruimte_key
|
||||
var sql = "SELECT MIN (alg_ruimte_key) alg_ruimte_key,"
|
||||
+ " rr.res_discipline_key"
|
||||
+ " FROM res_ruimte_opstelling rro, res_ruimte rr, res_alg_ruimte rar"
|
||||
+ " WHERE rar.res_ruimte_key = rr.res_ruimte_key "
|
||||
+ " AND rr.res_ruimte_key = rro.res_ruimte_key "
|
||||
+ " AND rro.res_ruimte_opstel_key = " + roRs("res_ruimte_opstel_key").Value
|
||||
+ " GROUP BY res_discipline_key";
|
||||
var oRs = Oracle.Execute( sql );
|
||||
disc_key_str = disc_key_str+(disc_key_str==""?"":",")+oRs("res_discipline_key").Value;
|
||||
alg_ruimte_key = oRs("alg_ruimte_key").Value;
|
||||
}
|
||||
|
||||
var rresult = user.func_enabled("RES",
|
||||
disc_key_str,
|
||||
alg_ruimte_key,
|
||||
roRs("res_rsv_ruimte_contact_key").Value);
|
||||
|
||||
rresult.canReadAny = rresult.canRead("WEB_RESFOF") ||
|
||||
rresult.canRead("WEB_RESBOF") ||
|
||||
rresult.canRead("WEB_RESUSE");
|
||||
|
||||
// (als alleen) Frontend-rechten-->we controleren nog strenger
|
||||
if ( rresult.canReadAny
|
||||
&& !rresult.canRead("WEB_RESFOF")
|
||||
&& !rresult.canRead("WEB_RESBOF")
|
||||
)
|
||||
{ // frontend controles
|
||||
if ( rsv_ruimte_contact_key != user_key
|
||||
&& !user.isCollega(rsv_ruimte_contact_key))
|
||||
{
|
||||
// Dit kan legaal bijvoorbeeld nog gebeuren als je wel host maar geen contact bent.
|
||||
rresult.canReadAny = false;
|
||||
rresult.readoReason = lcl_res_notself;
|
||||
}
|
||||
}
|
||||
|
||||
// Je moet tenminste schrijfrechten hebben
|
||||
rresult.canChange = rresult.canReadAny &&
|
||||
(rresult.canWrite("WEB_RESFOF") ||
|
||||
rresult.canWrite("WEB_RESBOF") ||
|
||||
rresult.canWrite("WEB_RESUSE"));
|
||||
|
||||
if (!rresult.canChange)
|
||||
rresult.readoReason = "TODO Geen schrijfrechten op alle onderdelen"; // voorheen lcl_res_notroom
|
||||
|
||||
// (als alleen) Frontend-rechten-->we controleren nog strenger
|
||||
if ( rresult.canChange
|
||||
&& !rresult.canWrite("WEB_RESFOF")
|
||||
&& !rresult.canWrite("WEB_RESBOF")
|
||||
)
|
||||
{ // frontend controles
|
||||
if (res_fe_edit_option_only==1 // Setting: Alleen opties mogen bewerkt
|
||||
&& status_fo_key!=1)
|
||||
{
|
||||
rresult.canChange = false;
|
||||
rresult.readoReason = lcl_res_fe_edit_option_only;
|
||||
}
|
||||
|
||||
if ( rresult.canChange
|
||||
&& rsv_ruimte_contact_key != user_key
|
||||
&& !user.isCollega(res_rsv_ruimte_contact_key))
|
||||
{
|
||||
// Dit kan legaal bijvoorbeeld nog gebeuren als je wel host maar geen contact bent.
|
||||
rresult.canChange = false;
|
||||
rresult.readoReason = lcl_res_notself;
|
||||
}
|
||||
}
|
||||
|
||||
// Als *alle* R/C/V onderdelen 'verwerkt' zijn dan worden we ook readonly
|
||||
// Let op: CV -reservering heeft geen bo-status in
|
||||
sql = "SELECT rd.res_status_bo_key"
|
||||
+ " FROM res_v_aanwezigrsv_deel rd"
|
||||
+ " WHERE rd.res_rsv_ruimte_key = " + rsv_ruimte_key
|
||||
+ " UNION "
|
||||
+ "SELECT ra.res_status_bo_key"
|
||||
+ " FROM res_v_aanwezigrsv_artikel ra"
|
||||
+ " WHERE ra.res_rsv_ruimte_key = " + rsv_ruimte_key;
|
||||
|
||||
if (alg_ruimte_key==null)
|
||||
{
|
||||
sql +=" UNION "
|
||||
+ "SELECT res_status_bo_key"
|
||||
+ " FROM res_v_aanwezigrsv_ruimte rs"
|
||||
+ " WHERE rs.res_rsv_ruimte_key = " + rsv_ruimte_key;
|
||||
}
|
||||
sql = "SELECT MAX(res_status_bo_key) max_bo, "
|
||||
+ " MIN (res_status_bo_key) min_bo"
|
||||
+ " FROM ("+sql+")";
|
||||
|
||||
oRs = Oracle.Execute( sql );
|
||||
rresult.min_bo = oRs("min_bo").Value;
|
||||
rresult.max_bo = oRs("max_bo").Value;
|
||||
if (rresult.min_bo && rresult.min_bo == 6)
|
||||
{
|
||||
rresult.canChange = false;
|
||||
}
|
||||
|
||||
// Stap 2: bepalen canDelete (voor deze ene deelreservering)
|
||||
rresult.canDelete = rresult.canChange && rsv_ruimte_van.getTime()>(new Date()).getTime(); // dat is toch wel het minste
|
||||
if (rresult.canDelete)
|
||||
{ // Hij mag geen onderdelen hebben met status 6 (verwerkt)
|
||||
if (rresult.max_bo && rresult.max_bo == 6) {
|
||||
rresult.canDelete = false;
|
||||
}
|
||||
|
||||
}
|
||||
return rresult;
|
||||
},
|
||||
|
||||
emit_planbord_tijdbalk : function (res_van, nr_days, hour_px)
|
||||
{
|
||||
for (dagen=1; dagen<=nr_days; dagen++) { %>
|
||||
<td class='plantd tijdbalk'>
|
||||
<div class="sizer"> </div>
|
||||
<%
|
||||
if (hour_px < 16) // alleen nog datum
|
||||
{
|
||||
var px_start = (res_t2-res_t1)/2*hour_px;
|
||||
var dt2 = new Date(res_van);
|
||||
dt2.setDate(dt2.getDate()+dagen-1)
|
||||
var txt = toDateString(dt2);
|
||||
width=80;
|
||||
if (hour_px<8)
|
||||
{
|
||||
txt = txt.substring(0, 5); // haal zelfs jaar er af
|
||||
width=80;
|
||||
}
|
||||
var div = "<div class='plantime'"
|
||||
+" style='left:"+(px_start-width/2)+"px;width:"+width+"px'>"
|
||||
+txt + "</div>";
|
||||
Response.Write("\n"+div);
|
||||
}
|
||||
else
|
||||
{
|
||||
skiphours = 1;
|
||||
if (hour_px < 48)
|
||||
skiphours = 2;
|
||||
if (hour_px < 24)
|
||||
skiphours = 3;
|
||||
|
||||
var s = res_t1;
|
||||
var i0 = -2;
|
||||
for (s = res_t1; s<=res_t2; s+=skiphours)
|
||||
{
|
||||
var h = Math.floor(s);
|
||||
if (h < 10) h = "0" + h;
|
||||
var m = Math.floor((s - h)*60);
|
||||
if (m < 10) m = "0" + m;
|
||||
m = ":" + m
|
||||
|
||||
var px_start = (s-res_t1)*hour_px;
|
||||
var div = "<div class='plantime'"
|
||||
+" style='left:"+(px_start-19)+"px;'>"
|
||||
+h + m + "</div>";
|
||||
Response.Write("\n"+div);
|
||||
}
|
||||
}
|
||||
%>
|
||||
</td>
|
||||
<% if (dagen<nr_days) { %>
|
||||
<td class="between"><div> </div></td>
|
||||
<% } else { %>
|
||||
<td class="post"><div> </div></td>
|
||||
<% } %>
|
||||
<% } // dagen
|
||||
}
|
||||
}
|
||||
|
||||
@@ -227,121 +453,6 @@ function shared_rooms( room_key ) {
|
||||
+ " where ra.RES_RUIMTE_KEY = " + room_key
|
||||
+ " and ra.alg_ruimte_key = rb.alg_ruimte_key";
|
||||
}
|
||||
function same_period_sql( t1, t2, t3, t4 ) {
|
||||
/* [t1,t2] & [t3,t4]
|
||||
|
||||
return "(("+t1+" >= "+t3 +" and "+t1+" < "+t4+")" +" or ("+t3+" >= "+t1 +" and "+t3+" < "+t2+"))";
|
||||
*/
|
||||
|
||||
return "( ("+t3+" < "+t2+")" +" and ("+t4+" > "+t1+"))";
|
||||
}
|
||||
|
||||
function same_period_res( r1, r2 ) {
|
||||
return same_period_sql( r1+".RES_RSV_RUIMTE_VAN", r1+".RES_RSV_RUIMTE_TOT",
|
||||
r2+".RES_RSV_RUIMTE_VAN", r2+".RES_RSV_RUIMTE_TOT" )
|
||||
}
|
||||
|
||||
function reserved_deel_sql( res_k, wh ) {
|
||||
if(SamePeriodCheck)
|
||||
return "(select rd.RES_DEEL_KEY from RES_v_aanwezigRSV_DEEL rd"
|
||||
+" where "+wh+" exists ("
|
||||
+ select_reservations( "a.RES_RESERVERING_KEY",
|
||||
", (select RES_RSV_RUIMTE_VAN, RES_RSV_RUIMTE_TOT"
|
||||
+ " from RES_V_AANWEZIGRESERVERING where RES_RESERVERING_KEY=" + res_k + ") b",
|
||||
" where a.RES_RESERVERING_KEY = rd.RES_RESERVERING_KEY"
|
||||
+" and (" + same_period_res('a','b') + ")" )
|
||||
+"))";
|
||||
else return '(select 14 FROM DUAL where 1=2)';
|
||||
}
|
||||
|
||||
function res_deel_sql( wh, cl ) {
|
||||
return "(select "+cl
|
||||
+ " from RES_v_aanwezigDEEL d"
|
||||
+ " where "+wh+" not exists "
|
||||
+ reserved_deel_sql(res_key,'rd.RES_DEEL_KEY = d.RES_DEEL_KEY and') + ")";
|
||||
}
|
||||
|
||||
function srt_deel_sql(wh) {
|
||||
return "(select i.INS_SRTDEEL_KEY from INS_v_aanwezigDEEL i"
|
||||
+ " where "+wh+" exists " + res_deel_sql('i.INS_DEEL_KEY=d.RES_INS_DEEL_KEY and',
|
||||
'd.RES_INS_DEEL_KEY') + ")";;
|
||||
}
|
||||
|
||||
function srt_groep_sql(wh) {
|
||||
return "(select g.INS_SRTGROEP_KEY from INS_v_aanwezigSRTDEEL g"
|
||||
+ " where "+wh+" exists " + srt_deel_sql('g.INS_SRTDEEL_KEY=i.INS_SRTDEEL_KEY and') + ")";
|
||||
}
|
||||
|
||||
function ins_disc_sql(wh) {
|
||||
return "(select sg.INS_DISCIPLINE_KEY from INS_v_aanwezigSRTGROEP sg"
|
||||
+ " where " + wh
|
||||
+ " exists" + srt_groep_sql('sg.INS_SRTGROEP_KEY=g.INS_SRTGROEP_KEY and') + ")";
|
||||
}
|
||||
|
||||
function ins_discipline(cl) {
|
||||
return "select "+cl+" from INS_v_aanwezigDISCIPLINE d"
|
||||
+ " WHERE d.INS_DISCIPLINE_KEY IN("
|
||||
+ "SELECT ins_discipline_key FROM FAC_V_WEBGEBRUIKER"
|
||||
+ " WHERE PRS_PERSLID_KEY ="+user_key+")"
|
||||
+ " and exists "+ins_disc_sql('d.INS_DISCIPLINE_KEY=sg.INS_DISCIPLINE_KEY and');
|
||||
}
|
||||
|
||||
|
||||
function res_ins_discipline_deel(cl, autfunction) {
|
||||
__Log('autfunction :'+autfunction);
|
||||
|
||||
return "select "+cl+" from RES_v_aanwezigDISCIPLINE dis"
|
||||
+ " WHERE ins_discipline_min_level=1"
|
||||
+ " AND dis.INS_DISCIPLINE_KEY IN("
|
||||
+ "SELECT g.ins_discipline_key FROM FAC_V_WEBGEBRUIKER g, FAC_FUNCTIE f "
|
||||
+ "WHERE g.fac_functie_key = f.fac_functie_key "
|
||||
+ "AND f.fac_functie_code = '" + autfunction + "'"
|
||||
+ " AND g.fac_gebruiker_alg_level_read < 9"
|
||||
+ " AND g.PRS_PERSLID_KEY ="+user_key
|
||||
+ ") and dis.INS_DISCIPLINE_KEY IN"
|
||||
+ "(SELECT res_discipline_key" /* DISTINCT */
|
||||
+ " from res_deel R, ins_deel D"
|
||||
+ " where r.res_deel_verwijder IS NULL"
|
||||
+ " and R.res_ins_deel_key=D.ins_deel_key)";
|
||||
}
|
||||
|
||||
function res_ins_discipline_artikel(cl, autfunction, alg_ruimte_key, rsv_ruimte_key, fixed_room) {
|
||||
|
||||
if( isNaN(alg_ruimte_key) ) {
|
||||
alg_ruimte_key = 'NULL';
|
||||
}
|
||||
|
||||
if( isNaN(rsv_ruimte_key) ) {
|
||||
rsv_ruimte_key = 'NULL';
|
||||
}
|
||||
|
||||
if( rsv_ruimte_key == 'NULL' && alg_ruimte_key == 'NULL' ) {
|
||||
%>
|
||||
<p><%=lcl_internal_error %>: res.inc</p>
|
||||
<%
|
||||
Response.End;
|
||||
}
|
||||
|
||||
return "select "+cl+" from RES_v_aanwezigDISCIPLINE d"
|
||||
+ " WHERE ins_discipline_min_level=2"
|
||||
+ " AND d.INS_DISCIPLINE_KEY IN ("
|
||||
+ " SELECT ins_discipline_key FROM FAC_V_WEBGEBRUIKER g, FAC_FUNCTIE f "
|
||||
+ " WHERE g.fac_functie_key = f.fac_functie_key "
|
||||
+ " AND f.fac_functie_code = '" + autfunction + "' "
|
||||
+ " AND g.PRS_PERSLID_KEY ="+user_key
|
||||
+ " AND d.INS_DISCIPLINE_KEY IN"
|
||||
// RES_V_SRTARTIKEL_ONRGOED i.p.v. res_v_srtartikel_ruimte:
|
||||
// niet alleen kijken naar max(prio) 'R' (ruimte) maar ook naar onderliggende prio's 'L' (locatie) en 'G' (gebouw)
|
||||
// In de view res_v_srtartikel_ruimte wordt alleen naar de maximale prio gekeken van een bepaalde alg_ruimte_key
|
||||
+ " (SELECT res_discipline_key FROM res_v_srtartikel_onrgoed "
|
||||
+ " WHERE 1 = 1 "
|
||||
+ (fixed_room? " AND alg_onrgoed_niveau = 'R'":"")
|
||||
+ (!isNaN(alg_ruimte_key)? " AND alg_ruimte_key = "+alg_ruimte_key+ ")) "
|
||||
: (!isNaN(rsv_ruimte_key)? " AND alg_ruimte_key IN"
|
||||
+ " (SELECT alg_ruimte_key FROM res_v_rsv_ruimte_2_alg_ruimte "
|
||||
+ " WHERE res_alg_ruimte_verwijder IS NULL AND res_rsv_ruimte_key="+rsv_ruimte_key+")))":""))
|
||||
+ " ORDER BY 2";
|
||||
}
|
||||
|
||||
// TODO: p_alg_ruimte_key zelf bepalen uit p_rsv_ruimte_key
|
||||
function getReservedObjectTypes (p_alg_ruimte_key, p_rsv_ruimte_key, p_select_fields, p_loc_key, p_sdisc, p_group_by) {
|
||||
@@ -351,7 +462,7 @@ __Log("p_alg_ruimte_key: " + p_alg_ruimte_key + ", p_rsv_ruimte_key: " + p_rsv_r
|
||||
+ " FROM ins_srtdeel sd, ins_deel d, res_v_aanwezigdeel r "
|
||||
+ ", (SELECT d.alg_regio_key, l.alg_district_key, l.alg_locatie_key, g.alg_gebouw_key, v.alg_verdieping_key, r.alg_ruimte_key "
|
||||
+ " FROM "
|
||||
+ (!isNaN(p_rsv_ruimte_key)&&(p_alg_ruimte_key==-1)
|
||||
+ ((p_rsv_ruimte_key>0)&&(p_alg_ruimte_key==-1)
|
||||
? " res_v_rsv_ruimte_2_alg_ruimte rrr, "
|
||||
: "")
|
||||
+ " alg_district d,"
|
||||
@@ -360,7 +471,7 @@ __Log("p_alg_ruimte_key: " + p_alg_ruimte_key + ", p_rsv_ruimte_key: " + p_rsv_r
|
||||
+ " alg_verdieping v,"
|
||||
+ " alg_ruimte r"
|
||||
+ " WHERE 1=1 "
|
||||
+ (!isNaN(p_rsv_ruimte_key)&&(p_alg_ruimte_key==-1)
|
||||
+ ((p_rsv_ruimte_key>0)&&(p_alg_ruimte_key==-1)
|
||||
? " AND res_rsv_ruimte_key = " + p_rsv_ruimte_key
|
||||
+ " AND rrr.alg_ruimte_key = r.alg_ruimte_key"
|
||||
: "")
|
||||
@@ -371,7 +482,7 @@ __Log("p_alg_ruimte_key: " + p_alg_ruimte_key + ", p_rsv_ruimte_key: " + p_rsv_r
|
||||
+ " AND v.alg_gebouw_key = g.alg_gebouw_key"
|
||||
+ " AND g.alg_locatie_key = l.alg_locatie_key"
|
||||
+ " AND l.alg_district_key = d.alg_district_key ) scope"
|
||||
+ ((!isNaN(p_rsv_ruimte_key) || ((p_alg_ruimte_key>0)))
|
||||
+ ((p_rsv_ruimte_key>0 || p_alg_ruimte_key>0 || p_loc_key > 0)
|
||||
? ", res_v_deelscope ds"
|
||||
: "")
|
||||
+ " WHERE r.res_discipline_key="+p_sdisc
|
||||
@@ -382,32 +493,86 @@ __Log("p_alg_ruimte_key: " + p_alg_ruimte_key + ", p_rsv_ruimte_key: " + p_rsv_r
|
||||
: "")
|
||||
+ " AND d.ins_alg_ruimte_type IN ('R','T')";
|
||||
|
||||
if (!isNaN(p_rsv_ruimte_key) || (p_alg_ruimte_key>0)) {
|
||||
sql1 += " AND "
|
||||
+ " ( ds.alg_regio_key = scope.alg_regio_key"
|
||||
+ " OR ds.alg_district_key = scope.alg_district_key"
|
||||
+ " OR ds.alg_locatie_key = scope.alg_locatie_key"
|
||||
+ " OR ds.alg_gebouw_key = scope.alg_gebouw_key"
|
||||
+ " OR ds.alg_verdieping_key = scope.alg_verdieping_key"
|
||||
+ " OR ds.alg_ruimte_key = scope.alg_ruimte_key"
|
||||
+ " OR ds.res_deel_alg_level = -1)"
|
||||
+ " AND r.res_deel_key = ds.res_deel_key"
|
||||
} else { // kunnen we hier wel komen? Zelfde check komt buiten deze if ook al voor.
|
||||
sql1 = discxalg3d (sql1,
|
||||
"r.RES_DISCIPLINE_KEY",
|
||||
"scope.alg_regio_key",
|
||||
"scope.alg_district_key",
|
||||
"scope.alg_locatie_key",
|
||||
"scope.alg_gebouw_key",
|
||||
"scope.alg_verdieping_key",
|
||||
"scope.alg_ruimte_key",
|
||||
autfunction,
|
||||
p_sdisc);
|
||||
sql1 +=" AND r.res_deel_key = ds.res_deel_key"
|
||||
if (p_rsv_ruimte_key>0) // Objectenblok van een specifieke voorziening
|
||||
{
|
||||
var sql1 = "SELECT " + p_select_fields
|
||||
+ " FROM ins_srtdeel sd, ins_deel d, res_v_aanwezigdeel r "
|
||||
+ ", (SELECT d.alg_regio_key, l.alg_district_key, l.alg_locatie_key, g.alg_gebouw_key, v.alg_verdieping_key, r.alg_ruimte_key "
|
||||
+ " FROM "
|
||||
+ (p_alg_ruimte_key==-1 ? " res_v_rsv_ruimte_2_alg_ruimte rrr, ": "")
|
||||
+ " alg_district d,"
|
||||
+ " alg_locatie l,"
|
||||
+ " alg_gebouw g,"
|
||||
+ " alg_verdieping v,"
|
||||
+ " alg_ruimte r"
|
||||
+ " WHERE "
|
||||
+ (p_alg_ruimte_key==-1
|
||||
? " res_rsv_ruimte_key = " + p_rsv_ruimte_key+ " AND rrr.alg_ruimte_key = r.alg_ruimte_key"
|
||||
: " r.alg_ruimte_key = "+p_alg_ruimte_key)
|
||||
+ " AND r.alg_verdieping_key = v.alg_verdieping_key"
|
||||
+ " AND v.alg_gebouw_key = g.alg_gebouw_key"
|
||||
+ " AND g.alg_locatie_key = l.alg_locatie_key"
|
||||
+ " AND l.alg_district_key = d.alg_district_key ) scope"
|
||||
+ ", res_v_deelscope ds"
|
||||
+ " WHERE r.res_discipline_key="+p_sdisc
|
||||
+ " AND r.res_ins_deel_key=d.ins_deel_key"
|
||||
+ " AND d.ins_srtdeel_key = sd.ins_srtdeel_key"
|
||||
+ " AND d.ins_alg_ruimte_type IN ('R','T')"
|
||||
+ " AND "
|
||||
+ " ( ds.alg_regio_key = scope.alg_regio_key"
|
||||
+ " OR ds.alg_district_key = scope.alg_district_key"
|
||||
+ " OR ds.alg_locatie_key = scope.alg_locatie_key"
|
||||
+ " OR ds.alg_gebouw_key = scope.alg_gebouw_key"
|
||||
+ " OR ds.alg_verdieping_key = scope.alg_verdieping_key"
|
||||
+ " OR ds.alg_ruimte_key = scope.alg_ruimte_key"
|
||||
+ " OR ds.res_deel_alg_level = -1)"
|
||||
+ " AND r.res_deel_key = ds.res_deel_key"
|
||||
} else { // Bijvoorbeeld alleen een locatie_key? TODO Klopt dit?
|
||||
var sql1 = "SELECT " + p_select_fields
|
||||
+ " FROM ins_srtdeel sd, ins_deel d, res_v_aanwezigdeel r "
|
||||
+ (p_loc_key > 0 ? ", res_v_deelscope ds": "")
|
||||
+ " WHERE r.res_discipline_key="+p_sdisc
|
||||
+ " AND r.res_ins_deel_key=d.ins_deel_key"
|
||||
+ " AND d.ins_srtdeel_key = sd.ins_srtdeel_key"
|
||||
+ ((p_loc_key > -1)? " AND d.ins_alg_locatie_key="+p_loc_key: "")
|
||||
+ " AND d.ins_alg_ruimte_type IN ('R','T')";
|
||||
sql1 = discxalg3d (sql1,
|
||||
"r.RES_DISCIPLINE_KEY",
|
||||
"scope.alg_regio_key",
|
||||
"scope.alg_district_key",
|
||||
"scope.alg_locatie_key",
|
||||
"scope.alg_gebouw_key",
|
||||
"scope.alg_verdieping_key",
|
||||
"scope.alg_ruimte_key",
|
||||
autfunction,
|
||||
"");
|
||||
if (p_loc_key > 0)
|
||||
sql1 +=" AND r.res_deel_key = ds.res_deel_key"
|
||||
}
|
||||
sql1 += p_group_by;
|
||||
return sql1;
|
||||
}
|
||||
|
||||
Date.prototype.getFloatHours = function getFloatHours()
|
||||
{
|
||||
return this.getHours() + (this.getMinutes()/60);
|
||||
}
|
||||
// Noot: rondt af op res_h!
|
||||
// levert een nieuw date-object op
|
||||
Date.prototype.setFloatHours = function setFloatHours(hrs, res_h)
|
||||
{
|
||||
var dd = new Date(this);
|
||||
hrs = Math.floor((hrs/res_h)+0.5) * res_h;
|
||||
var hh = Math.floor(hrs);
|
||||
var mm = (hrs*60) % 60;
|
||||
dd.setHours(hh,mm,0,0);
|
||||
return dd;
|
||||
}
|
||||
// Noot: rondt af op res_h!
|
||||
// levert een nieuw date-object op
|
||||
Date.prototype.addFloatHours = function addFloatHours(hrs, res_h)
|
||||
{
|
||||
return this.setFloatHours(this.getFloatHours() + hrs, res_h);
|
||||
}
|
||||
|
||||
%>
|
||||
|
||||
@@ -1,22 +1,18 @@
|
||||
<%@ language = "JavaScript" %>
|
||||
<% /*
|
||||
$Revision: 1 $
|
||||
$Modtime: 24-09-09 16:49 $
|
||||
$Revision: 2 $
|
||||
$Modtime: 2-11-09 20:44 $
|
||||
|
||||
File: res_edit_objcat.asp
|
||||
Status: 75%
|
||||
Remark: allow adding of res_deel and res_artikel
|
||||
Periodiek en dergelijke hebben we niets meer mee te maken in 5i
|
||||
|
||||
Parameters:
|
||||
rsv_ruimte_key required, existing rsv_ruimte_key. Al het andere zoeken we er zelf bij
|
||||
urole required
|
||||
embedded optional, als 1 toon dan geen knoppen
|
||||
Context: - Onderaan planbord
|
||||
- called by button 'Voorzieningen' in confirmation of object-reservation
|
||||
- called by button 'Voorzieningen' in confirmation of room-reservation
|
||||
Context: iframe van res_reservering.asp
|
||||
|
||||
*/
|
||||
|
||||
%>
|
||||
|
||||
<!--#include file="../../cust/install.inc"-->
|
||||
@@ -24,19 +20,32 @@
|
||||
|
||||
<!--#include file="../Shared/funcodes.inc"-->
|
||||
<!--#include file="../shared/date_sql.inc"-->
|
||||
<!--#include file="../shared/datetime.inc"-->
|
||||
<!--#include file="../shared/escape.inc"-->
|
||||
<!--#include file="../shared/iface.inc"-->
|
||||
<!--#include file="../Shared/discxalg3d.inc"-->
|
||||
<!--#include file="../Shared/InfoSupport.inc" -->
|
||||
<!--#include file="res_plan_obj.inc"-->
|
||||
|
||||
<!--#include file="res.inc"-->
|
||||
|
||||
<%
|
||||
FCLTHeader.Requires({plugins: ["jQuery", "datepicker"],
|
||||
js: ["expand_frame.js", "date.js", "FcltMgr.js"]})
|
||||
js: ["date.js", "jquery-ui.js", "num2curr.js", "./res_plan.js"]})
|
||||
|
||||
var urole = getQParam("urole");
|
||||
var rsv_ruimte_key = getQParam("rsv_ruimte_key");
|
||||
var embedded = getQParam("embedded","0")=="1";
|
||||
var dis_key = getQParam("dis_key", -1); // (Alleen) default openklappen
|
||||
var rsv_ruimte_key = getQParamInt("rsv_ruimte_key");
|
||||
var dis_key = getQParamInt("dis_key", -1); // (Alleen) default openklappen
|
||||
var res_deel_key = getQParam("res_deel_key", -1); // Default
|
||||
var disc_key = getQParamInt("disc", -1); // Auto openklappen
|
||||
|
||||
if (res_deel_key > 0)
|
||||
{
|
||||
sql = "select res_discipline_key"
|
||||
+ " from res_deel"
|
||||
+ " where res_deel_key = " + res_deel_key;
|
||||
oRs = Oracle.Execute(sql);
|
||||
disc_key = oRs("res_discipline_key").Value;
|
||||
}
|
||||
|
||||
// Zo snel mogelijk relevante basisinformatie opzoeken
|
||||
sql = "select res_reservering_key, "
|
||||
@@ -47,23 +56,20 @@ var dis_key = getQParam("dis_key", -1); // (Alleen) default openklappen
|
||||
+ " from res_rsv_ruimte"
|
||||
+ " where res_rsv_ruimte_key = " + rsv_ruimte_key;
|
||||
oRs = Oracle.Execute(sql);
|
||||
var res_key = oRs("res_reservering_key").value;
|
||||
var resdeleted = (oRs("res_rsv_ruimte_verwijder").value != null);
|
||||
var res_van = new Date(oRs("res_rsv_ruimte_van").value);
|
||||
var res_tot = new Date(oRs("res_rsv_ruimte_tot").value);
|
||||
|
||||
// TODO: In de code/functionaliteit zo weinig mogelijk verschil maken tussen "R" en "CV"
|
||||
if (oRs("alg_ruimte_key").value != null)
|
||||
restype = "CV"
|
||||
else if (oRs("res_ruimte_opstel_key").value != null)
|
||||
restype = "R"
|
||||
|
||||
alg_ruimte_key = oRs("alg_ruimte_key").value||'NaN';
|
||||
var ordernr_key = oRs("prs_kostenplaats_key").value||-1;
|
||||
alg_ruimte_key = oRs("alg_ruimte_key").value||-1;
|
||||
var has_kostenplaats_key = oRs("prs_kostenplaats_key").value!=null;
|
||||
oRs.Close()
|
||||
|
||||
var fronto = (urole == "fo");
|
||||
var freado = Request.QueryString("reado").Count>0;
|
||||
var backo = (urole == "bo");
|
||||
var frontend = (urole == "fe");
|
||||
|
||||
@@ -71,9 +77,6 @@ var dis_key = getQParam("dis_key", -1); // (Alleen) default openklappen
|
||||
var portal_alg_ruimte_key = Request.QueryString("portal_alg_ruimte_key");
|
||||
var newres = Request.QueryString("reservNew")=="1";
|
||||
|
||||
var res_date_start = res_van.toSQL(true);
|
||||
var res_date_end = res_tot.toSQL(true);
|
||||
|
||||
if (urole=="fo")
|
||||
var autfunction = "WEB_RESFOF";
|
||||
else if (urole=="bo")
|
||||
@@ -83,9 +86,6 @@ var dis_key = getQParam("dis_key", -1); // (Alleen) default openklappen
|
||||
|
||||
var jumped = Request.QueryString("jumped").Count>0;
|
||||
|
||||
var t_w = Math.ceil((room_schedule_width - res_intervals - 1) / res_intervals);
|
||||
var t_w = (100 / res_intervals)+"%";
|
||||
var ht_w = 5+(400 / res_intervals)+"%";
|
||||
%>
|
||||
<!--#include file="../Shared/autlevel.inc"-->
|
||||
|
||||
@@ -93,41 +93,24 @@ var dis_key = getQParam("dis_key", -1); // (Alleen) default openklappen
|
||||
<head>
|
||||
<% FCLTHeader.Generate() %>
|
||||
|
||||
<style>
|
||||
tr.planbord td.other { width:<%=t_w%>; }
|
||||
tr.planbord td.free { width:<%=t_w%>; }
|
||||
tr.planbord td.freeH { width:<%=t_w%>; }
|
||||
tr.planbord td.header { width:<%=ht_w%>; }
|
||||
tr.planbord td.freeNC { width:<%=t_w%>; }
|
||||
</style>
|
||||
<%
|
||||
var nr_days = 1+(res_tot.midnight() - res_van.midnight())/24/60/60/1000;
|
||||
var nr_hours = nr_days*(res_t2-res_t1)
|
||||
hour_px = 48;
|
||||
if (nr_hours> 16) hour_px = 24;
|
||||
if (nr_hours> 30) hour_px = 16;
|
||||
if (nr_hours> 50) hour_px = 8;
|
||||
if (nr_hours>100) hour_px = 4;
|
||||
%>
|
||||
|
||||
<script type="text/javascript" src='../LocalScripts/sel_tables.js'></script>
|
||||
<script type="text/javascript" src='room_schedule.js'></script>
|
||||
<script type="text/javascript" src='../LocalScripts/num2curr.js'></script>
|
||||
<script type="text/javascript" src='../LocalScripts/date.js'></script>
|
||||
<script type="text/javascript" src='reserv_Objects_js.asp'></script>
|
||||
<script type="text/javascript" src='../LocalScripts/num2curr.js'></script>
|
||||
<style>
|
||||
table.planbord div.sizer { width:<%=hour_px*(res_t2-res_t1)-1%>px;};
|
||||
</style>
|
||||
|
||||
<% res.clientTimeVars(); %>
|
||||
<script type="text/javascript">
|
||||
|
||||
var WINDOW_ID = "RESERVE_OBJECTS";
|
||||
// Deals with info window
|
||||
var descAr = new Array();
|
||||
var lcl_obj_available='<%=lcl_obj_available%>';
|
||||
var lcl_obj_not_available='<%=lcl_obj_not_available%>';
|
||||
var lcl_obj_inf_name='<%=lcl_obj_inf_name%>';
|
||||
var lcl_obj_inf_gebouw='<%=lcl_obj_inf_gebouw%>';
|
||||
var lcl_obj_inf_floor='<%=lcl_obj_inf_floor%>';
|
||||
var lcl_obj_inf_room='<%=lcl_obj_inf_room%>';
|
||||
var lcl_object='<%=lcl_object%>';
|
||||
var lcl_count='<%=lcl_count%>';
|
||||
var lcl_time ='<%=lcl_time%>';
|
||||
var lcl_r_price5='<%=lcl_r_price5%>';
|
||||
var lcl_r_price7='<%=lcl_r_price7%>';
|
||||
|
||||
var lcl_obj_no_selected='<%=lcl_obj_no_selected%>';
|
||||
var qstring="<%=Request.ServerVariables('QUERY_STRING')%>";
|
||||
var hour_px = <%=hour_px%>;
|
||||
|
||||
var res_t1 = <% = " " + res_t1 %>;
|
||||
var res_t2 = <% = " " + res_t2 %>;
|
||||
@@ -137,19 +120,8 @@ var res_cat_t1 = <%=res_cat_t1%>
|
||||
var res_cat_t2 = <%=res_cat_t2%>
|
||||
|
||||
var ch_obj_mode = '<%=Request.QueryString("ch_obj_mode")%>';
|
||||
var res_date_start= "<%=res_date_start%>";
|
||||
var res_date_end = "<%=res_date_end%>";
|
||||
var restype = "<%=restype%>";
|
||||
|
||||
var reduced_obj_info=<%=reduced_obj_info?'true':'false'%>;
|
||||
var objectsSelected = new Array();
|
||||
var lcl_date_separator = "<%=lcl_date_separator%>";
|
||||
|
||||
var curID = "";
|
||||
var pref = 0;
|
||||
var curLevel = "";
|
||||
var busy = false;
|
||||
|
||||
// Worden in res_plan.js gebruikt:
|
||||
var res_van = new Date(<%=res_van.getTime()%>);
|
||||
var res_tot = new Date(<%=res_tot.getTime()%>);
|
||||
|
||||
@@ -160,20 +132,8 @@ var res_tot = new Date(<%=res_tot.getTime()%>);
|
||||
%>
|
||||
res_vis = <%=vis == ""?0:vis%>
|
||||
<%
|
||||
var mode = Request.QueryString("mode").Count;
|
||||
if( mode ) {
|
||||
mode = parseInt( Request.QueryString("mode"), 10 );
|
||||
}
|
||||
|
||||
var disc = Request.QueryString("disc").Count;
|
||||
if( disc ) {
|
||||
disc = parseInt( Request.QueryString("disc"), 10 );
|
||||
}
|
||||
|
||||
|
||||
%>
|
||||
var res_key=<%=res_key%>
|
||||
ConsObjects = new Array();
|
||||
|
||||
</script>
|
||||
|
||||
@@ -181,17 +141,16 @@ ConsObjects = new Array();
|
||||
|
||||
var starttime_room = res_t1;
|
||||
var endtime_room = res_t2;
|
||||
if (!isNaN(rsv_ruimte_key) && rsv_ruimte_key > 0) {
|
||||
sql = "SELECT COALESCE(ru.res_ruimte_begintijd, " + res_t1 + ")"
|
||||
+ ", COALESCE(ru.res_ruimte_eindtijd, " + res_t2 + ")"
|
||||
+ ", COALESCE(ru.res_ruimte_eindtijd, " + res_t2 + ")"
|
||||
+ " FROM res_v_aanwezigruimte ru"
|
||||
+ ", res_rsv_ruimte rr"
|
||||
+ ", res_ruimte_opstelling ro"
|
||||
+ ", res_rsv_ruimte rr"
|
||||
+ ", res_ruimte_opstelling ro"
|
||||
+ " WHERE ru.res_ruimte_key = ro.res_ruimte_key"
|
||||
+ " AND ro.res_ruimte_opstel_key = rr.res_ruimte_opstel_key"
|
||||
+ " AND rr.res_rsv_ruimte_key = " + rsv_ruimte_key;
|
||||
oRs = Oracle.Execute(sql);
|
||||
if (!oRs.eof) { // Found
|
||||
if (!oRs.eof) { // Found, blijkbaar type=='R'
|
||||
var starttime_room = oRs(0).value;
|
||||
var endtime_room = oRs(1).value;
|
||||
if (starttime_room < res_t1) starttime_room = res_t1;
|
||||
@@ -199,7 +158,6 @@ ConsObjects = new Array();
|
||||
if (starttime_room > endtime_room) starttime_room = endtime_room;
|
||||
starttime_room = toJsNumber(starttime_room);
|
||||
endtime_room = toJsNumber(endtime_room);
|
||||
}
|
||||
}
|
||||
%>
|
||||
|
||||
@@ -208,7 +166,6 @@ ConsObjects = new Array();
|
||||
var urole = "<%=urole%>";
|
||||
var backo = <%=backo?1:0%>;
|
||||
var fronto = <%=fronto?1:0%>;
|
||||
var ordernr_key = <%=ordernr_key%>
|
||||
var frontend = (1==<%=frontend?1:0%>);
|
||||
var jumped = (1==<%=jumped?1:0%>);
|
||||
var starttime_room = <%="" + starttime_room%>;
|
||||
@@ -241,121 +198,110 @@ ConsObjects = new Array();
|
||||
|
||||
|
||||
%>
|
||||
<body id="editbody"
|
||||
OnLoad="
|
||||
window.document.body.style.cursor='auto';
|
||||
if(parent.window)parent.window.document.body.style.cursor='auto';
|
||||
<body id="editbody">
|
||||
<%
|
||||
if(backo)
|
||||
{
|
||||
} else if (!jumped) {
|
||||
%>
|
||||
RowSelected=OnRowSelected;Loaded();
|
||||
<%
|
||||
}
|
||||
%>"
|
||||
id="roBody" leftmargin="0" topmargin="0">
|
||||
<%
|
||||
var buttons = [ {title: lcl_submit, icon: "opslaan.png", action:"res_submit()", id:"bsubmit_res_rsv_objcat" },
|
||||
{title: lcl_cancel, icon: "undo.png", action:"res_cancel()", id:"bcancel_res_rsv_objcat" } ];
|
||||
var buttons = [ {title: lcl_submit, icon: "opslaan.png", action:"res_submit()" },
|
||||
{title: lcl_cancel, icon: "undo.png", action:"res_cancel()" } ];
|
||||
IFRAMER_HEADER(lcl_res_frame_voorziening, buttons);
|
||||
%>
|
||||
<div id="alertText" class="alertText"></div>
|
||||
<div id="edit">
|
||||
|
||||
<!--#include file="res.inc"-->
|
||||
|
||||
<form name=u2 method=post action="res_edit_objcat_save.asp?urole=<%=urole%>&rsv_ruimte_key=<%=rsv_ruimte_key%>"> <!--onSubmit="return formOnSubmit()"-->
|
||||
<% if(fronto) { %> <input type=hidden name="fronto" value=''> <% } %>
|
||||
<% if(backo) { %> <input type=hidden name="backo" value=''> <% } %>
|
||||
<input type="hidden" name="res_key" id="res_key" value='<%=res_key%>'>
|
||||
<form name=u2 method=post action="res_edit_objcat_save.asp?urole=<%=urole%>&rsv_ruimte_key=<%=rsv_ruimte_key%>">
|
||||
<%
|
||||
if (restype=='CV') {
|
||||
%>
|
||||
<br/><p/><p/>
|
||||
<%
|
||||
}
|
||||
|
||||
// ==========================================================================
|
||||
// Description: Bouwen van het voorzieningen edit blok voor een reservering
|
||||
|
||||
sql1 = ", 1 aantal ";
|
||||
if (!isNaN(alg_ruimte_key) || !isNaN(rsv_ruimte_key)) {
|
||||
var sql1 = ", ( " + getReservedObjectTypes(alg_ruimte_key, rsv_ruimte_key, " count(*) ", -1, "dis.ins_discipline_key", "") + ") aantal ";
|
||||
// Tel in elke catalogus hoeveel objecten in de gekozen ruimte echt gereservererd kunnen worden.
|
||||
// Als dat er nul zijn dan tonen we de discipline namelijk niet.
|
||||
sql_aantal = " 1 aantal ";
|
||||
if (rsv_ruimte_key>0) {
|
||||
var sql_aantal = " ( " + getReservedObjectTypes(alg_ruimte_key, rsv_ruimte_key, " count(*) ", -1, "dis.ins_discipline_key", "") + ") aantal ";
|
||||
}
|
||||
sql = res_ins_discipline_deel('dis.INS_DISCIPLINE_KEY,dis.INS_DISCIPLINE_OMSCHRIJVING,DIS.INS_DISCIPLINE_KPNVERPLICHT' + sql1 , autfunction);
|
||||
sql= "select dis.INS_DISCIPLINE_KEY,"
|
||||
+ " dis.INS_DISCIPLINE_OMSCHRIJVING,"
|
||||
+ " DIS.INS_DISCIPLINE_KPNVERPLICHT,"
|
||||
+ sql_aantal
|
||||
+ " from RES_v_aanwezigDISCIPLINE dis"
|
||||
+ " WHERE ins_discipline_min_level=1"
|
||||
+ " AND dis.INS_DISCIPLINE_KEY IN("
|
||||
+ " SELECT g.ins_discipline_key FROM FAC_V_WEBGEBRUIKER g, FAC_FUNCTIE f "
|
||||
+ " WHERE g.fac_functie_key = f.fac_functie_key "
|
||||
+ " AND f.fac_functie_code = '" + autfunction + "'"
|
||||
+ " AND g.fac_gebruiker_alg_level_read < 9"
|
||||
+ " AND g.PRS_PERSLID_KEY ="+user_key
|
||||
+ " )"
|
||||
+ " AND dis.INS_DISCIPLINE_KEY IN"
|
||||
+ " (SELECT res_discipline_key" /* DISTINCT */
|
||||
+ " from res_deel R, ins_deel D"
|
||||
+ " where r.res_deel_verwijder IS NULL"
|
||||
+ " and R.res_ins_deel_key=D.ins_deel_key)";
|
||||
|
||||
if (disc) sql=sql + " and dis.ins_discipline_key ="+disc;
|
||||
|
||||
if (disc_key>0 && res_deel_key<0) sql=sql + " and dis.ins_discipline_key ="+disc_key;
|
||||
|
||||
if (res_fe_discs_only_in_res != -1 && !fronto && !backo && restype=='CV')
|
||||
sql=sql + " and dis.ins_discipline_key NOT IN ("+res_fe_discs_only_in_res+") ";
|
||||
|
||||
sql=sql + " ORDER BY 2";
|
||||
%>
|
||||
<table cellspacing="0" border="0" cellpadding="1" id="ObjTable" width=90%>
|
||||
<%
|
||||
oRs1 = Oracle.Execute( sql );
|
||||
%>
|
||||
<script type="text/javascript">
|
||||
oRs1 = Oracle.Execute( sql );
|
||||
|
||||
function kpnOk(kp_key, kpnverplicht) {
|
||||
hasOrdernr = (kp_key != -1 && kp_key > 0);
|
||||
if (<%=rsv_ruimte_key%> > 0 && hasOrdernr == false && kpnverplicht == 1) {
|
||||
alert ("<%=lcl_select_account_disc%>");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
function onClickLine(disc_key, kpnverplicht)
|
||||
{
|
||||
if (kpnOk(<%=ordernr_key%>,kpnverplicht))
|
||||
{
|
||||
var url = "../Shared/kpl_ksrt_validate.asp?kp_key=<%=ordernr_key%>&disc_key="+disc_key;
|
||||
var res = FcltSyncgetJSON(url);
|
||||
if (res.error)
|
||||
return false;
|
||||
else
|
||||
ItemChoosed('dis'+disc_key,disc_key,null,null);
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<%
|
||||
first = true;
|
||||
while( !oRs1.eof ) {
|
||||
var curr_disc_key = oRs1("INS_DISCIPLINE_KEY").Value;
|
||||
var existing = false; // zodadelijk highlighten
|
||||
if (res_key > 0)
|
||||
{
|
||||
sql = "SELECT COUNT(res_rsv_deel_key) "
|
||||
+ " FROM res_rsv_deel rrd,"
|
||||
+ " res_deel rd"
|
||||
+ " where res_rsv_ruimte_key = " + rsv_ruimte_key
|
||||
+ " AND res_rsv_deel_verwijder is null"
|
||||
+ " AND rrd.res_deel_key = rd.res_deel_key"
|
||||
+ " AND res_discipline_key = " + oRs1(0)
|
||||
sql = "SELECT COUNT(res_rsv_deel_key) aantal"
|
||||
+ " FROM res_rsv_deel rrd,"
|
||||
+ " res_deel rd"
|
||||
+ " where res_rsv_ruimte_key = " + rsv_ruimte_key
|
||||
+ " AND res_rsv_deel_verwijder is null"
|
||||
+ " AND rrd.res_deel_key = rd.res_deel_key"
|
||||
+ " AND res_discipline_key = " + curr_disc_key
|
||||
|
||||
var oRs2 = Oracle.Execute(sql);
|
||||
existing = (oRs2(0).value > 0);
|
||||
}
|
||||
if (oRs1(3).Value != 0) {
|
||||
var oRs2 = Oracle.Execute(sql);
|
||||
existing = (oRs2("aantal").value > 0);
|
||||
if (oRs1("aantal").Value != 0) {
|
||||
if( first ) {
|
||||
BLOCK_START("resObj",lcl_res_objects + " <a href='javascript:openLegenda()'>TODO Legenda</a>");
|
||||
%>
|
||||
<tr>
|
||||
<td><b><%=lcl_res_objects%></b></td>
|
||||
<%
|
||||
if (res_van.midnight().getTime() != res_tot.midnight().getTime())
|
||||
{
|
||||
Response.Write(toDateString(res_van.midnight()));
|
||||
Response.Write(" " + lcl_res_totenmet + " " + toDateString(res_tot.midnight()));
|
||||
}
|
||||
%>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<% first = false;
|
||||
}
|
||||
|
||||
%>
|
||||
<tr id="tr_<%=oRs1(0)%>">
|
||||
<tr>
|
||||
<td>
|
||||
<p onMouseOut="MouseOverEnd()" onMouseOver="MouseOverItem()"
|
||||
onClick="onClickLine(<%=oRs1(0)%>,<%=oRs1(2)%>)"
|
||||
<%=(existing?" class=ref_em ":" class=ref ")%>>
|
||||
<img src="../Pictures/tree_plus.gif" border="0" id="plus" align="middle" hspace="2">
|
||||
<%=oRs1(1)%>
|
||||
<%=(existing?" ("+oRs2(0)+")":"")%>
|
||||
</p>
|
||||
<div id="div_dis<%=oRs1(0)%>" style='display:none'>
|
||||
<% // Hier wordt Ajax achtig door obj_schedule.asp code tussen geplakt bij openklappen %>
|
||||
<%if (!has_kostenplaats_key && oRs1("INS_DISCIPLINE_KPNVERPLICHT").value==1) { %>
|
||||
<div title="<%=lcl_select_account_disc%>" class="objcatline notavailable">
|
||||
<%=Server.HTMLEncode(oRs1("INS_DISCIPLINE_OMSCHRIJVING").value)%>
|
||||
<%=(existing?" ("+oRs2("aantal").value+")":"")%>
|
||||
<%} else {%>
|
||||
<div class="objcatline <%=(existing?" existing":"")%><%=disc_key != curr_disc_key?" closed":""%>">
|
||||
<span onClick="ItemChoosed_obj(this.parentElement, 'div_dis<%=curr_disc_key%>',<%=curr_disc_key%>)">
|
||||
<%=Server.HTMLEncode(oRs1("INS_DISCIPLINE_OMSCHRIJVING").value)%>
|
||||
<%=(existing?" ("+oRs2("aantal").value+")":"")%>
|
||||
</span>
|
||||
<%} %>
|
||||
<div class="objcatdiv" id="div_dis<%=curr_disc_key%>">
|
||||
<% // Hier wordt met Ajax obj_schedule.asp code tussen geplakt bij openklappen
|
||||
if (disc_key == curr_disc_key)
|
||||
make_plan_obj(curr_disc_key, res_van, res_tot, { hour_px: hour_px,
|
||||
rsv_ruimte_key: rsv_ruimte_key,
|
||||
ch_obj_mode: 1,
|
||||
res_deel_key: res_deel_key });
|
||||
else
|
||||
Response.Write(LCL.shared.loading);
|
||||
%>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -364,41 +310,98 @@ IFRAMER_HEADER(lcl_res_frame_voorziening, buttons);
|
||||
oRs1.MoveNext();
|
||||
}
|
||||
oRs1.close();
|
||||
if( !first )
|
||||
BLOCK_END();
|
||||
%>
|
||||
</table>
|
||||
<iframe src="../shared/empty.html" frameborder="0" id="hidFramecheckRelation" style="display:none"></iframe>
|
||||
|
||||
<script>
|
||||
function openLegenda()
|
||||
{
|
||||
params = { width: 125,
|
||||
minWidth: 125,
|
||||
height: 130,
|
||||
minHeight: 130,
|
||||
resizable: false,
|
||||
title: 'lcl_legenda'
|
||||
}
|
||||
$('div#legenda').dialog(params).dialog('open');
|
||||
}
|
||||
</script>
|
||||
<div id="legenda" style="display:none";>
|
||||
<table width="100%" border="0">
|
||||
<tr>
|
||||
<td align="right"><img src="../Pictures/room_free.gif"></td>
|
||||
<td><% = lcl_free %></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right"><img src="../Pictures/room_opt.gif"></td>
|
||||
<td><% = lcl_optie %></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right"><img src="../Pictures/room_def.gif"></td>
|
||||
<td><% = lcl_def %></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right"><img src="../Pictures/room_blk.gif"></td>
|
||||
<td><% = lcl_blokkade %></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right"><img src="../Pictures/room_vvl.gif"></td>
|
||||
<td><% = lcl_vervallen %></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<%
|
||||
// ==========================================================================
|
||||
// Description: Bouwen van het catering edit blok voor een reservering
|
||||
%>
|
||||
<table cellspacing="0" border="0" cellpadding="1" id="ObjTableCons">
|
||||
<script type="text/javascript">
|
||||
ConsObjects = new Array();
|
||||
function onClickCatLine(disc_key, kpnverplicht)
|
||||
function onClickCatLine(elm, disc_key)
|
||||
{
|
||||
if (kpnOk(<%=ordernr_key%>,kpnverplicht))
|
||||
{
|
||||
var url = "../Shared/kpl_ksrt_validate.asp?kp_key=<%=ordernr_key%>&disc_key="+disc_key;
|
||||
var res = FcltSyncgetJSON(url);
|
||||
if (res.error)
|
||||
return false;
|
||||
else
|
||||
ItemChoosed('ConsumObjs'+disc_key,null,null,+disc_key);
|
||||
}
|
||||
ItemChoosed_cat(elm, 'dis'+disc_key,disc_key);
|
||||
}
|
||||
</script>
|
||||
<tr >
|
||||
<td><b><%=lcl_consumable_objects%></b></td>
|
||||
</tr>
|
||||
<% BLOCK_START("resCat",lcl_consumable_objects); %>
|
||||
<%
|
||||
// Bepaal de catalogie waar wij rechten op hebben en die mogelijk zijn in 'onze' ruimte
|
||||
fixed_room = (portal_alg_ruimte_key != -1 && !isNaN(portal_alg_ruimte_key));
|
||||
|
||||
sql = res_ins_discipline_artikel('d.ins_discipline_key, d.ins_discipline_omschrijving, d.ins_discipline_kpnverplicht', autfunction, alg_ruimte_key, rsv_ruimte_key, fixed_room);
|
||||
sql = "select d.ins_discipline_key, "
|
||||
+ " d.ins_discipline_omschrijving, "
|
||||
+ " d.ins_discipline_kpnverplicht"
|
||||
+ " from RES_v_aanwezigDISCIPLINE d"
|
||||
+ " WHERE ins_discipline_min_level=2"
|
||||
+ " AND d.INS_DISCIPLINE_KEY IN ("
|
||||
+ " SELECT ins_discipline_key"
|
||||
+ " FROM FAC_V_WEBGEBRUIKER g,"
|
||||
+ " FAC_FUNCTIE f "
|
||||
+ " WHERE g.fac_functie_key = f.fac_functie_key "
|
||||
+ " AND f.fac_functie_code = '" + autfunction + "' "
|
||||
+ " AND g.PRS_PERSLID_KEY ="+user_key
|
||||
+ " AND d.INS_DISCIPLINE_KEY IN"
|
||||
// RES_V_SRTARTIKEL_ONRGOED i.p.v. res_v_srtartikel_ruimte:
|
||||
// niet alleen kijken naar max(prio) 'R' (ruimte) maar ook naar onderliggende prio's 'L' (locatie) en 'G' (gebouw)
|
||||
// In de view res_v_srtartikel_ruimte wordt alleen naar de maximale prio gekeken van een bepaalde alg_ruimte_key
|
||||
+ " (SELECT res_discipline_key"
|
||||
+ " FROM res_v_srtartikel_onrgoed "
|
||||
+ " WHERE 1 = 1 "
|
||||
if (fixed_room) sql += " AND alg_onrgoed_niveau = 'R'";
|
||||
if (alg_ruimte_key>0)
|
||||
sql += " AND alg_ruimte_key = "+alg_ruimte_key+ ")) ";
|
||||
else
|
||||
if (rsv_ruimte_key>0)
|
||||
sql += " AND alg_ruimte_key IN"
|
||||
+ " (SELECT alg_ruimte_key"
|
||||
+ " FROM res_v_rsv_ruimte_2_alg_ruimte "
|
||||
+ " WHERE res_alg_ruimte_verwijder IS NULL "
|
||||
+ " AND res_rsv_ruimte_key="+rsv_ruimte_key+")))"
|
||||
sql += " ORDER BY 2";
|
||||
|
||||
oRs = Oracle.Execute( sql );
|
||||
|
||||
while( !oRs.eof ) {
|
||||
var curr_disc_key = oRs("ins_discipline_key").Value;
|
||||
var existing = false; // zodadelijk highlighten
|
||||
if (rsv_ruimte_key > 0)
|
||||
{
|
||||
@@ -408,114 +411,37 @@ IFRAMER_HEADER(lcl_res_frame_voorziening, buttons);
|
||||
+ " WHERE rra.res_rsv_ruimte_key = " + rsv_ruimte_key
|
||||
+ " AND res_rsv_artikel_verwijder IS NULL"
|
||||
+ " AND rra.res_artikel_key = ra.res_artikel_key"
|
||||
+ " AND res_discipline_key = " + oRs("ins_discipline_key")
|
||||
+ " AND res_discipline_key = " + curr_disc_key
|
||||
var oRs2 = Oracle.Execute(sql);
|
||||
existing = (oRs2(0).value > 0);
|
||||
}
|
||||
%>
|
||||
<tr id="tr_ConsumObjs<%=oRs(0)%>">
|
||||
<td id="td_ConsumObjs<%=oRs(0)%>">
|
||||
<% // hidden input fields to know which disciplines are showen %>
|
||||
<input type='hidden' id='ConsumObjs<%=oRs("ins_discipline_key")%>' name='ConsumObjs<%=oRs("ins_discipline_key")%>' value='<%=oRs("ins_discipline_key")%>'>
|
||||
<p onClick="onClickCatLine(<%=oRs("ins_discipline_key")%>,<%=oRs("ins_discipline_kpnverplicht")%>)"
|
||||
<%=(existing?" class=ref_em ":" class=ref ")%>
|
||||
onMouseOver="MouseOverItem()" onMouseOut="MouseOverEnd()">
|
||||
<img style="ref" src="../Pictures/tree_plus.gif" border="0" id="plus" align="middle" hspace="2"><%=oRs("ins_discipline_omschrijving")%>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="tra_ConsumObjs<%=oRs("ins_discipline_key")%>">
|
||||
<td id="div_dis<%=oRs("ins_discipline_key")%>">
|
||||
</td>
|
||||
<tr>
|
||||
<td>
|
||||
<%if (!has_kostenplaats_key && oRs("INS_DISCIPLINE_KPNVERPLICHT").value==1) { %>
|
||||
<div title="<%=lcl_select_account_disc%>"
|
||||
class="objcatline notavailable">
|
||||
<%=Server.HTMLEncode(oRs("ins_discipline_omschrijving"))%>
|
||||
<%} else {%>
|
||||
<div class="objcatline closed <%=(existing?" existing ":"")%>">
|
||||
<span onClick="ItemChoosed_cat(this.parentElement, 'dis'+<%=curr_disc_key%>,<%=curr_disc_key%>)">
|
||||
<%=Server.HTMLEncode(oRs("ins_discipline_omschrijving"))%>
|
||||
</span>
|
||||
<%}%>
|
||||
<div class="objcatdiv" id="div_dis<%=curr_disc_key%>" >
|
||||
<% // Hier wordt met Ajax obj_schedule.asp code tussen geplakt bij openklappen %>
|
||||
<%=LCL.shared.loading%>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<%
|
||||
oRs.MoveNext();
|
||||
}
|
||||
oRs.Close();
|
||||
BLOCK_END();
|
||||
%>
|
||||
</table>
|
||||
<iframe src="../shared/empty.html" frameborder="0" id="hidFramecheckRelation" style="display:none"></iframe>
|
||||
|
||||
<iframe src="../shared/empty.html" frameborder="0" id="hidFrame" style="display:none"></iframe>
|
||||
<iframe src="../shared/empty.html" frameborder="0" id="hidFramecheckRelation" style="display:none"></iframe>
|
||||
|
||||
<script type="text/javascript">
|
||||
function formOnSubmit() {
|
||||
OnMouseOverEnd();
|
||||
return true;
|
||||
}
|
||||
</script>
|
||||
|
||||
<input type="hidden" name="alg_ruimte_key" value="<% = alg_ruimte_key %>">
|
||||
|
||||
<input type="hidden" name="ordernr_key" value="<% = ordernr_key %>">
|
||||
<input type="hidden" name="restype" value="<% = restype %>">
|
||||
</form>
|
||||
<script type="text/javascript">
|
||||
|
||||
var r_c_objs = new Array();
|
||||
ind=0;
|
||||
|
||||
<%
|
||||
|
||||
|
||||
%>
|
||||
ind=0;
|
||||
ind_ex=0;
|
||||
<% // Haal bestaande gereserveerde artikelen op
|
||||
|
||||
sql= " SELECT "
|
||||
+ " r_Disc.INS_DISCIPLINE_KEY, "
|
||||
+ " r_Art.RES_ARTIKEL_KEY, "
|
||||
+ " r_r_Art.RES_RSV_ARTIKEL_KEY, "
|
||||
+ " r_r_Art.RES_RSV_ARTIKEL_AANTAL, "
|
||||
+ DatePart("r_r_Art.RES_RSV_ARTIKEL_LEVERING",'HH24') + ","
|
||||
+ DatePart("r_r_Art.RES_RSV_ARTIKEL_LEVERING",'MI') + ","
|
||||
+ DatePart("r_r_Art.RES_RSV_ARTIKEL_LEVERING",'YYYY') + ","
|
||||
+ DatePart("r_r_Art.RES_RSV_ARTIKEL_LEVERING",'MM') + ","
|
||||
+ DatePart("r_r_Art.RES_RSV_ARTIKEL_LEVERING",'DD') + ", "
|
||||
+ "COALESCE(r_art.res_artikel_prijs_vast,0), "
|
||||
+ "COALESCE(r_r_art.res_rsv_artikel_prijs/r_r_Art.RES_RSV_ARTIKEL_AANTAL, r_art.res_artikel_prijs, 0) prijs, "
|
||||
+ "r_r_Art.res_status_BO_key"
|
||||
+ " FROM "
|
||||
+ " RES_v_aanwezigDISCIPLINE r_Disc,"
|
||||
+ " RES_v_aanwezigARTIKEL r_Art,"
|
||||
+ " RES_v_aanwezigRSV_ARTIKEL r_r_Art,"
|
||||
+ " RES_v_aanwezigRSV_RUIMTE r_r_Rmt"
|
||||
+ " WHERE r_r_art.res_rsv_ruimte_key = r_r_Rmt.res_rsv_ruimte_key"
|
||||
+ " and r_r_Art.RES_RSV_RUIMTE_KEY=" + rsv_ruimte_key
|
||||
+ " AND r_r_Art.RES_ARTIKEL_KEY = r_Art.RES_ARTIKEL_KEY "
|
||||
+ " AND r_Art.RES_DISCIPLINE_KEY = r_Disc.INS_DISCIPLINE_KEY";
|
||||
sql += " order by INS_DISCIPLINE_OMSCHRIJVING, RES_ARTIKEL_NR";
|
||||
|
||||
oRs = Oracle.Execute(sql);
|
||||
while( !oRs.eof ) {
|
||||
%>
|
||||
r_c_objs[ind++] = new rConsObj(<%=oRs(2)%>, <%=oRs(1)%>, <%=oRs(0)%>, <%=oRs(3)%>,
|
||||
<%=oRs(4)%>, <%=oRs(5)%>,<%=oRs(6)%>, <%=oRs(7)%>, <%=oRs(8)%>, <%=oRs(9)%>, <%=toJsNumber(oRs(10))%>, <%=oRs(11)%>);
|
||||
<%
|
||||
oRs.MoveNext();
|
||||
}
|
||||
oRs.close();
|
||||
|
||||
%>
|
||||
ind=0;
|
||||
level=0;
|
||||
c_ind=0;
|
||||
c_level=1;
|
||||
|
||||
|
||||
function rObj(rD, iD, iDsc, rh1, rmin1, rh2, rmin2)
|
||||
{
|
||||
this.rDeel = rD ;
|
||||
this.insDeel = iD ;
|
||||
this.insDisc = iDsc;
|
||||
this.rh1 = rh1;
|
||||
this.rmin1 = rmin1;
|
||||
this.rh2 = rh2;
|
||||
this.rmin2 = rmin2;
|
||||
}
|
||||
|
||||
</script>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
<%@ language = "JavaScript" %>
|
||||
<% /*
|
||||
$Revision: 1 $
|
||||
$Modtime: 4-09-09 16:46 $
|
||||
$Revision: 2 $
|
||||
$Modtime: 29-10-09 13:19 $
|
||||
|
||||
File: res_edit_objcat_save.asp (oude reserv_ObjectsComplete.asp)
|
||||
File: res_edit_objcat_save.asp
|
||||
Status: 75%
|
||||
Description: Opslaan van de gegevens uit res_edit_objcat.asp
|
||||
Note that because of many checks and constraints in the input-form
|
||||
@@ -12,32 +12,24 @@
|
||||
rsv_ruimte_key required
|
||||
.... alle andere gePOSTte res_edit_objcat form u2 fields
|
||||
|
||||
Context: Form u2 action from Reserv_Objects.asp form
|
||||
Note:
|
||||
TODO: op de juiste momenten de juiste tracking toevoegen
|
||||
Context: Opsla script voor res_edit_objcat.asp
|
||||
Note: TODO: op de juiste momenten de juiste tracking toevoegen
|
||||
*/ %>
|
||||
<% Response.Expires = 0; %>
|
||||
|
||||
<!--#include file="../../cust/install.inc"-->
|
||||
|
||||
|
||||
<!--#include file="../Shared/funcodes.inc"-->
|
||||
|
||||
<!--#include file="../Shared/date_sql.inc" -->
|
||||
<!--#include file="../Shared/escape.inc" -->
|
||||
<!--#include file="../Shared/datetime.inc"-->
|
||||
<!--#include file="res.inc"-->
|
||||
|
||||
<%
|
||||
FCLTHeader.Requires({plugins: [], js:["FcltMgr.js"] })
|
||||
FCLTHeader.Requires({plugins: [], js:[] })
|
||||
|
||||
var urole = getQParam("urole");
|
||||
var rsv_ruimte_key = getQParam("rsv_ruimte_key");
|
||||
|
||||
// Zo snel mogelijk relevante basisinformatie opzoeken
|
||||
//TODO: Als dit bestand een include wordt van res_edit_objcat.asp is dat niet meer nodig?
|
||||
sql = "select res_reservering_key, "
|
||||
+ " res_rsv_ruimte_verwijder, "
|
||||
+ " alg_ruimte_key, res_ruimte_opstel_key, "
|
||||
+ " res_rsv_ruimte_van, res_rsv_ruimte_tot,"
|
||||
+ " prs_kostenplaats_key"
|
||||
@@ -45,7 +37,6 @@
|
||||
+ " where res_rsv_ruimte_key = " + rsv_ruimte_key;
|
||||
oRs = Oracle.Execute(sql);
|
||||
var res_key = oRs("res_reservering_key").value;
|
||||
var resdeleted = (oRs("res_rsv_ruimte_verwijder").value != null);
|
||||
var res_van = new Date(oRs("res_rsv_ruimte_van").value);
|
||||
var res_tot = new Date(oRs("res_rsv_ruimte_tot").value);
|
||||
|
||||
@@ -68,12 +59,6 @@ var warning = null;
|
||||
this.price = i_price;
|
||||
}
|
||||
|
||||
function objinf(key, disc)
|
||||
{
|
||||
this.key = key;
|
||||
this.disc = disc
|
||||
}
|
||||
|
||||
// consumable objects
|
||||
|
||||
function artinf(key, pricefixed, disc, quantity, lev_h, lev_m, price, bo_status)
|
||||
@@ -120,41 +105,14 @@ var warning = null;
|
||||
var year = res_van.getFullYear();
|
||||
var month = res_van.getMonth()+1;
|
||||
var day = res_van.getDate();
|
||||
var alginfkey = 0;
|
||||
|
||||
var resdeleted = false;
|
||||
// day, month and year already parsed
|
||||
hour1 = parseInt( Request.Form("hour1"), 10 );
|
||||
min1 = parseInt( Request.Form("min1"), 10 );
|
||||
hour2 = parseInt( Request.Form("hour2"), 10 );
|
||||
min2 = parseInt( Request.Form("min2"), 10 );
|
||||
|
||||
ruimte_ora_date1 = make_sql_date(year,month,day,hour1,min1);
|
||||
ruimte_ora_date2 = make_sql_date(year,month,day,hour2,min2);
|
||||
|
||||
// Voormalige rsv_objects_save.inc
|
||||
/*
|
||||
$Revision: 1 $
|
||||
$Modtime: 4-09-09 16:46 $
|
||||
|
||||
File: rsv_objects_save.inc
|
||||
Description: Actual saving of the information of an object tree
|
||||
Used for both objects and consumables
|
||||
Parameters:
|
||||
Globals expected:
|
||||
res_key required, existing RES_RESERVERING_KEY
|
||||
rsv_ruimte_key required, existing RES_RSV_RUIMTE_KEY AND NOT NULL
|
||||
alg_ruimte_key required, existing ALG_RUIMTE_KEY or NULL to use rsv_ruimte_key
|
||||
year,month,day required date, note that the time is taken from the form
|
||||
|
||||
...and all other reserv_objects.asp form u2 fields
|
||||
Context: Included in reserv_ObjectsComplete.asp, form action from reserv_Objects.asp
|
||||
Output globals:
|
||||
succes Boolean: Is set to true or false (false als voorziening al bezet)
|
||||
Note:
|
||||
|
||||
*/ %>
|
||||
<%
|
||||
var request_buffer = String(Request.Form);
|
||||
var rParams = request_buffer.split("&");
|
||||
|
||||
@@ -170,13 +128,6 @@ ruimte_ora_date2 = make_sql_date(year,month,day,hour2,min2);
|
||||
|
||||
var a_arIns = new Array();
|
||||
|
||||
var cur_res_deel = null;
|
||||
var cur_res_rsv_deel = null;
|
||||
var cur_van_h = "";
|
||||
var cur_van_m = "";
|
||||
var cur_tot_h = "";
|
||||
var cur_tot_m = "";
|
||||
|
||||
var cur_res_art = null;
|
||||
var cur_lev_h = "";
|
||||
var cur_lev_m = "";
|
||||
@@ -190,57 +141,19 @@ ruimte_ora_date2 = make_sql_date(year,month,day,hour2,min2);
|
||||
|
||||
if ( DateIsInRange ) {
|
||||
|
||||
//=================================================
|
||||
// DEEL EEN: PARSEN VAN HET FORMULIER
|
||||
//
|
||||
//
|
||||
// rParams is iets als inpb_c_216=0,inpbh1_c_216=14,inpbm1_c_216=30,inpb_c_217=0,inpbh1_c_217=14,inpbm1_c_217=30,......
|
||||
// in het geval van catering
|
||||
for( i = 0; i < rParams.length; i++ ) {
|
||||
rParam = rParams[i].split("=");
|
||||
pos = lpos = npos = upos = 0;
|
||||
if( rParam[1].length ) {
|
||||
if( rParam[1]&&rParam[1].length ) {
|
||||
sstring = rParam[0].substring(0,7)
|
||||
switch( sstring ) {
|
||||
//=================================================
|
||||
case "inhedt_": { // Bewerken reserveerbare objecten. Bepaal ook RES_DEEL_KEY
|
||||
if( cur_res_deel ) {
|
||||
cur_res_rsv_deel = null;
|
||||
cur_van_h = "";
|
||||
cur_van_m = "";
|
||||
cur_tot_h = "";
|
||||
cur_tot_m = "";
|
||||
|
||||
cur_res_art = null;
|
||||
cur_lev_h = "";
|
||||
cur_lev_m = "";
|
||||
cur_price = 0;
|
||||
}
|
||||
cur_res_deel = rParam[0].substring(7); // Bepaal RES_DEEL_KEY
|
||||
pstring = rParam[1];
|
||||
while ( pstring != "" && (pos = pstring.indexOf("-3")) > 0 ) { // delete previously reserved objects
|
||||
lpos = pstring.indexOf("_") + 1;
|
||||
lpos = lpos > pos ? 0 : lpos;
|
||||
aDel[aDel.length] = new resObj(cur_res_deel, pstring.substring(lpos, pos), null, null, null, null);
|
||||
pstring = pstring.substring(pos+3);
|
||||
}
|
||||
|
||||
// check updates, we support updates as only the last action on a grid row
|
||||
var upos = rParam[1].lastIndexOf("-1_");
|
||||
var npos = rParam[1].lastIndexOf("-2");
|
||||
|
||||
if( npos < upos ) { // last action was update
|
||||
cur_res_rsv_deel = rParam[1].substring(upos+3);
|
||||
// lpos = pstring.indexOf("_") + 1;
|
||||
// lpos = lpos > upos ? 0 : lpos;
|
||||
// cur_res_rsv_deel = pstring.substring(lpos, upos);
|
||||
} else {
|
||||
npos = rParam[1].indexOf("-2"); // new object to reserv
|
||||
if( npos < pos ) { // "new object to reserv" was cancelled
|
||||
cur_res_deel = null;
|
||||
}
|
||||
}
|
||||
if (!cur_res_deel) { // skip hours and minutes
|
||||
i+=4;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
//=================================================
|
||||
case "inpbp_c": { // JGL: Parsing catering RES_ARTIKEL_KEY price
|
||||
@@ -261,15 +174,7 @@ if ( DateIsInRange ) {
|
||||
}
|
||||
|
||||
//=================================================
|
||||
case "inpbh1_": { // JGL: Parsing catering hour or res_deel start hour
|
||||
if( cur_res_deel ) {
|
||||
if( rParam[1] == "" || isNaN(parseInt(rParam[1],10)) ) {
|
||||
cur_res_deel = null;
|
||||
cur_res_rsv_deel = null;
|
||||
break;
|
||||
}
|
||||
cur_van_h = rParam[1];
|
||||
}
|
||||
case "inpbh1_": { // JGL: Parsing catering hour
|
||||
if( cur_res_art ) {
|
||||
if( rParam[0].indexOf("inpbh1_c_") >= 0 ) { // Het is een catering veld
|
||||
if( rParam[1] == "" || isNaN(parseInt(rParam[1],10)) ) {
|
||||
@@ -286,15 +191,7 @@ if ( DateIsInRange ) {
|
||||
}
|
||||
|
||||
//=================================================
|
||||
case "inpbm1_": { // JGL: Parsing catering minutes or res_deel start minutes
|
||||
if( cur_res_deel ) {
|
||||
if( rParam[1] == "" || isNaN(parseInt(rParam[1],10)) ) {
|
||||
cur_res_deel = null;
|
||||
cur_res_rsv_deel = null;
|
||||
break;
|
||||
}
|
||||
cur_van_m = rParam[1];
|
||||
}
|
||||
case "inpbm1_": { // JGL: Parsing catering minutes
|
||||
if( cur_res_art ) { // Zal alleen gezet zijn als het aantal ongelijk 0 was
|
||||
if( rParam[0].indexOf("inpbm1_c_") >= 0 ) { // Het is een catering veld
|
||||
if( rParam[1] == "" || isNaN(parseInt(rParam[1],10)) ) {
|
||||
@@ -317,39 +214,6 @@ if ( DateIsInRange ) {
|
||||
break;
|
||||
}
|
||||
|
||||
//=================================================
|
||||
case "inpbh2_": { // JGL: Parsing res_deel end hour
|
||||
if( cur_res_deel ) {
|
||||
if( rParam[1] == "" || isNaN(parseInt(rParam[1],10)) ) {
|
||||
cur_res_deel = null;
|
||||
cur_res_rsv_deel = null;
|
||||
break;
|
||||
}
|
||||
cur_tot_h = rParam[1];
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
//=================================================
|
||||
case "inpbm2_": { // JGL: Parsing res_deel end minutes
|
||||
if( cur_res_deel ) {
|
||||
if( rParam[1] == "" || isNaN(parseInt(rParam[1],10)) ) {
|
||||
cur_res_deel = null;
|
||||
cur_res_rsv_deel = null;
|
||||
break;
|
||||
}
|
||||
cur_tot_m = rParam[1];
|
||||
if( cur_res_rsv_deel ) { // update
|
||||
|
||||
aUpd[aUpd.length] = new resObj(cur_res_deel, cur_res_rsv_deel, cur_van_h, cur_van_m, cur_tot_h, cur_tot_m);
|
||||
|
||||
} else { // insert
|
||||
|
||||
aIns[aIns.length] = new resObj(cur_res_deel, null, cur_van_h, cur_van_m, cur_tot_h, cur_tot_m);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
//=================================================
|
||||
case "inpb_c_": { // JGL: Parsing catering aantal en bepaal catering RES_ARTIKEL_KEY key
|
||||
@@ -358,12 +222,6 @@ if ( DateIsInRange ) {
|
||||
cur_lev_h = "";
|
||||
cur_lev_m = "";
|
||||
cur_price = 0;
|
||||
|
||||
cur_res_rsv_deel = null;
|
||||
cur_van_h = "";
|
||||
cur_van_m = "";
|
||||
cur_tot_h = "";
|
||||
cur_tot_m = "";
|
||||
}
|
||||
|
||||
cur_cnt = parseInt(rParam[1],10); // Onthouden totdat we het uur en de minuten ook hebben
|
||||
@@ -380,6 +238,8 @@ if ( DateIsInRange ) {
|
||||
}
|
||||
}
|
||||
|
||||
//=================================================
|
||||
// DEEL TWEE: DE OBJECTEN
|
||||
//
|
||||
// Haal eerst de (volgens de database) reeds eerder gereserveerde objecten op
|
||||
// en bewaar die in array r_b_key
|
||||
@@ -397,140 +257,71 @@ oRs = Oracle.Execute(sql);
|
||||
var r_b_key = new Array();
|
||||
while ( !oRs.eof )
|
||||
{
|
||||
r_b_key[r_b_key.length] = new objinf(oRs("res_deel_key").Value, oRs("res_discipline_key").Value);
|
||||
r_b_key.push({ key: oRs("res_deel_key").Value, disc: oRs("res_discipline_key").Value });
|
||||
oRs.MoveNext();
|
||||
}
|
||||
oRs.Close();
|
||||
|
||||
for (i=1; i <= Request.Form.Count; i++)
|
||||
{
|
||||
var name = Request.Form.key(i);
|
||||
if (name.match(/has_[0-9].*/)) // bestaand object
|
||||
{
|
||||
var deel_key = parseInt(name.substring(4));
|
||||
var present = Request.Form("chk"+deel_key).Count > 0;
|
||||
if (!present)
|
||||
{ // TODO: Of verwijderveld zetten???
|
||||
sql = "DELETE from res_rsv_deel"
|
||||
+ " WHERE res_rsv_ruimte_key=" + rsv_ruimte_key
|
||||
+ " AND res_deel_key = " + deel_key;
|
||||
Oracle.Execute(sql);
|
||||
__Log("removed " + name + " : " +deel_key);
|
||||
//+ " res.set_delen_clean(" + aDel[i].res_deel + "," + res_van.toSQL() + "); " // Anderen 'clean' geworden vandaag?
|
||||
}
|
||||
else
|
||||
{
|
||||
// Als we update van de tijdstipjes gaan ondersteunen komt dat hier.
|
||||
//+ " res.set_deel_dirty (" + aUpd[i].res_rsv_deel + "); " // Zelf dirty geworden?
|
||||
//+ " res.set_delen_clean(" + aUpd[i].res_deel + "," + res_van.toSQL() + "); " // Anderen 'clean' geworden vandaag?
|
||||
}
|
||||
}
|
||||
else // misschien nieuw object
|
||||
if (name.match(/chk_[0-9].*/))
|
||||
{
|
||||
var deel_key = parseInt(name.substring(4));
|
||||
|
||||
sql = "INSERT into res_rsv_deel"
|
||||
+ " (res_rsv_ruimte_key"
|
||||
+ ", res_deel_key"
|
||||
+ ", res_rsv_deel_van"
|
||||
+ ", res_rsv_deel_tot"
|
||||
+ ", res_rsv_deel_aantal)"
|
||||
+ " VALUES(" + rsv_ruimte_key
|
||||
+ "," + deel_key
|
||||
+ "," + res_van.toSQL(true) // Vooralsnog geen eigen tijdstippen
|
||||
+ "," + res_tot.toSQL(true)
|
||||
+ ", 1)";
|
||||
|
||||
// Nu de echte update. Eventueel zelf dirty worden (anderen kunnen natuurlijk niet clean worden)
|
||||
sql = "BEGIN "
|
||||
+ sql + ";"
|
||||
+ "END;";
|
||||
Oracle.Execute( sql );
|
||||
|
||||
__Log("added " + name + " : " +deel_key);
|
||||
}
|
||||
}
|
||||
|
||||
ora_date1 = make_sql_date(year,month,day,00,00);
|
||||
ora_date2 = make_sql_date(year,month,day,23,59);
|
||||
// Zijn deze objecten zichtbaar (te selecteren), zo nee dan verwijderen
|
||||
for ( i = 0; i < r_b_key.length; i++ ) {
|
||||
__Log("alg_ruimte_key = " + alg_ruimte_key + ", rsv_ruimte_key = " + rsv_ruimte_key);
|
||||
sql = "SELECT DISTINCT rd.res_deel_key"
|
||||
+ " FROM res_rsv_deel rrD"
|
||||
+ ", res_rsv_ruimte rrr"
|
||||
+ ", res_deel rd"
|
||||
+ ", (SELECT d.alg_regio_key, l.alg_district_key, l.alg_locatie_key, g.alg_gebouw_key, v.alg_verdieping_key, r.alg_ruimte_key "
|
||||
+ " FROM "
|
||||
+ (isNaN(alg_ruimte_key)
|
||||
? " res_v_rsv_ruimte_2_alg_ruimte rrr, "
|
||||
: "")
|
||||
+ " alg_district d,"
|
||||
+ " alg_locatie l,"
|
||||
+ " alg_gebouw g,"
|
||||
+ " alg_verdieping v,"
|
||||
+ " alg_ruimte r"
|
||||
+ " WHERE 1=1 "
|
||||
+ (isNaN(alg_ruimte_key)
|
||||
? " AND res_rsv_ruimte_key = " + rsv_ruimte_key
|
||||
+ " AND rrr.alg_ruimte_key = r.alg_ruimte_key"
|
||||
: "")
|
||||
+ (!isNaN(alg_ruimte_key)
|
||||
?" AND r.alg_ruimte_key = " + alg_ruimte_key
|
||||
: "")
|
||||
+ " AND r.alg_verdieping_key = v.alg_verdieping_key"
|
||||
+ " AND v.alg_gebouw_key = g.alg_gebouw_key"
|
||||
+ " AND g.alg_locatie_key = l.alg_locatie_key"
|
||||
+ " AND l.alg_district_key = d.alg_district_key ) scope"
|
||||
+ ", res_v_deelscope ds"
|
||||
+ " WHERE rrr.res_rsv_ruimte_key = rrd.res_rsv_ruimte_key"
|
||||
+ " AND rrr.res_reservering_key = " + res_key
|
||||
+ " AND res_rsv_deel_verwijder is null"
|
||||
+ " AND rrd.res_deel_key = rd.res_deel_key"
|
||||
+ " AND res_discipline_key = " + r_b_key[i].disc
|
||||
+ " AND rrd.res_rsv_deel_tot BETWEEN " + ora_date1 + " AND " + ora_date2
|
||||
+ " AND ( ds.alg_regio_key = scope.alg_regio_key"
|
||||
+ " OR ds.alg_district_key = scope.alg_district_key"
|
||||
+ " OR ds.alg_locatie_key = scope.alg_locatie_key"
|
||||
+ " OR ds.alg_gebouw_key = scope.alg_gebouw_key"
|
||||
+ " OR ds.alg_verdieping_key = scope.alg_verdieping_key"
|
||||
+ " OR ds.alg_ruimte_key = scope.alg_ruimte_key"
|
||||
+ " OR ds.res_deel_alg_level = -1)"
|
||||
+ " AND rd.res_deel_key = ds.res_deel_key"
|
||||
+ " AND rd.res_deel_key = " + r_b_key[i].key;
|
||||
var oRs = Oracle.Execute(sql);
|
||||
if (oRs.eof) {
|
||||
// Object is niet zichtbaar. Object moet verwijderd worden.
|
||||
sql = "DELETE from res_rsv_deel"
|
||||
+ " WHERE res_rsv_ruimte_key=" + rsv_ruimte_key
|
||||
+ " AND res_deel_key = " + r_b_key[i].key;
|
||||
Oracle.Execute(sql);
|
||||
}
|
||||
oRs.Close();
|
||||
}
|
||||
|
||||
for( i = 0 ; i < aDel.length; i++ ) {
|
||||
if (aDel[i].res_rsv_deel!='') {
|
||||
sql = "UPDATE res_rsv_deel"
|
||||
+ " SET res_rsv_deel_verwijder = SYSDATE"
|
||||
+ " WHERE res_rsv_deel_key = " + aDel[i].res_rsv_deel
|
||||
+ " AND res_rsv_ruimte_key=" + rsv_ruimte_key
|
||||
+ " AND res_status_bo_key < "+res_bo_status_key
|
||||
|
||||
// Nu de echte update. Eventueel anderen clean maken
|
||||
sql = "BEGIN "
|
||||
+ sql + ";"
|
||||
+ " res.set_delen_clean(" + aDel[i].res_deel + "," + res_van.toSQL() + "); " // Anderen 'clean' geworden vandaag?
|
||||
+ "END;";
|
||||
Oracle.Execute( sql );
|
||||
}
|
||||
}
|
||||
|
||||
if (aDel.length>0)
|
||||
res.trackaction("RESDEL", rsv_ruimte_key, "TODO lcl_resdeel verwijderd"); /* TODO zie boven */
|
||||
|
||||
|
||||
for( i = 0 ; i < aUpd.length; i++ ) {
|
||||
// van and tot should be concatenated with date and seconds
|
||||
var jsDate = new Date(year, month-1, day, aUpd[i].van_h, aUpd[i].van_m)
|
||||
must_warn = must_warn || (jsDate < res.tCatExpire())
|
||||
|
||||
ora_date1 = make_sql_date(year,month,day,aUpd[i].van_h, aUpd[i].van_m); // Never cyclic updates
|
||||
ora_date2 = make_sql_date(year,month,day,aUpd[i].tot_h, aUpd[i].tot_m);
|
||||
|
||||
sql = "UPDATE res_rsv_deel"
|
||||
+ " SET res_rsv_deel_van = " + ora_date1
|
||||
+ ", res_rsv_deel_tot = " + ora_date2
|
||||
+ " WHERE res_rsv_deel_key =" + aUpd[i].res_rsv_deel
|
||||
|
||||
// Nu de echte update. Eventueel dirty/ anderen clean maken
|
||||
sql = "BEGIN "
|
||||
+ sql + ";"
|
||||
+ " res.set_deel_dirty (" + aUpd[i].res_rsv_deel + "); " // Zelf dirty geworden?
|
||||
+ " res.set_delen_clean(" + aUpd[i].res_deel + "," + res_van.toSQL() + "); " // Anderen 'clean' geworden vandaag?
|
||||
+ "END;";
|
||||
Oracle.Execute( sql );
|
||||
}
|
||||
if (aUpd.length>0)
|
||||
res.trackaction("RESUPD", rsv_ruimte_key, "TODO lcl_resdeel aangepast"); /* TODO zie boven */
|
||||
|
||||
// Nu de inserts
|
||||
for( i = 0 ; i < aIns.length; i++ ) {
|
||||
// van and tot should be concatenated with date and seconds
|
||||
ora_date1 = make_sql_date(year,month,day,aIns[i].van_h, aIns[i].van_m);
|
||||
ora_date2 = make_sql_date(year,month,day,aIns[i].tot_h, aIns[i].tot_m);
|
||||
|
||||
sql = "INSERT into res_rsv_deel"
|
||||
+ " (res_rsv_ruimte_key"
|
||||
+ ", res_deel_key"
|
||||
+ ", res_rsv_deel_van"
|
||||
+ ", res_rsv_deel_tot"
|
||||
+ ", res_rsv_deel_aantal)"
|
||||
+ " VALUES(" + rsv_ruimte_key
|
||||
+ "," + aIns[i].res_deel
|
||||
+ "," + ora_date1
|
||||
+ "," + ora_date2
|
||||
+ ", 1)";
|
||||
|
||||
// Nu de echte update. Eventueel zelf dirty worden (anderen kunnen natuurlijk niet clean worden)
|
||||
sql = "BEGIN "
|
||||
+ sql + ";"
|
||||
+ "END;";
|
||||
Oracle.Execute( sql );
|
||||
|
||||
}
|
||||
if (aIns.length>0)
|
||||
res.trackaction("RESUPD", rsv_ruimte_key, "TODO lcl_resdeel toegevoegd"); /* TODO zie boven */
|
||||
|
||||
// Check of er delen dirty zijn (geworden)
|
||||
@@ -776,7 +567,5 @@ if (false && /*TODO, vroeger kwamen de vars uit rsv_voorziening_view.inc */rest
|
||||
</script>
|
||||
</head>
|
||||
<body onLoad="onBodyLoad();">
|
||||
|
||||
<iframe src="../shared/empty.html" frameborder="10" name="hidFrame2" id="hidFrame2" style="display:none"></iframe>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,7 +1,7 @@
|
||||
<%@ language = "JavaScript" %>
|
||||
<% /*
|
||||
$Revision: 1 $
|
||||
$Modtime: 29-09-09 17:37 $
|
||||
$Revision: 2 $
|
||||
$Modtime: 3-11-09 16:06 $
|
||||
|
||||
File: res_edit_deel_save.asp
|
||||
Status: 75%
|
||||
@@ -19,15 +19,14 @@
|
||||
Note:
|
||||
*/
|
||||
%>
|
||||
<% Response.Expires = -1; %>
|
||||
<!--#include file="../../cust/install.inc"-->
|
||||
<!-- #include file="../Shared/datetime.inc" -->
|
||||
<!--#include file="../Shared/datetime.inc" -->
|
||||
<!--#include file="../shared/save2db.inc" -->
|
||||
<!--#include file="../Shared/date_sql.inc"-->
|
||||
<!--#include file="../Shared/escape.inc"-->
|
||||
<!--#include file="res.inc"-->
|
||||
<%
|
||||
FCLTHeader.Requires({plugins: [], js:["FcltMgr.js"] })
|
||||
FCLTHeader.Requires({plugins: []})
|
||||
|
||||
var urole = getQParam("urole");
|
||||
var rsv_ruimte_key = getQParam("rsv_ruimte_key"); // de *huidige* ruimte
|
||||
@@ -36,9 +35,6 @@ var fronto = (urole=="fo");
|
||||
var backo = (urole=="bo");
|
||||
var res_key = parseInt(Request.Form("res_key"), 10);
|
||||
var cancelObjects = Request.Form("cancelObjects")=="1";
|
||||
var obj_outofscope = Request.Form("obj_outofscope")=="1";
|
||||
var art_outofscope = Request.Form("art_outofscope")=="1";
|
||||
var timecatvoorz = Request.Form("timecatvoorz")=="1";
|
||||
var newres = Request.Form("newres")=="1";
|
||||
var date_readonly = Request.Form("date_readonly")=="1";
|
||||
var restype = Request.Form("restype").Count>0?Request.Form("restype"):"R";
|
||||
@@ -53,12 +49,7 @@ if( Request.Form("vis").Count>0 ) {
|
||||
// ==========
|
||||
|
||||
var kosten_klant = Request.Form("costclient").Count?Request.Form("costclient"):'';
|
||||
var alginfkey = parseInt(Request.Form("alginfkey"), 10);
|
||||
|
||||
alginfkey=0; // TODO: Alleen even huidige
|
||||
|
||||
function saveOneReservering(rsv_ruimte_key)
|
||||
{
|
||||
// Deze velden altijd opslaan
|
||||
var fields = [ { dbs: "res_rsv_ruimte_omschrijving", typ: "varchar", frm: "descript" },
|
||||
{ dbs: "res_rsv_ruimte_opmerking", typ: "varchar", frm: "opmerk" },
|
||||
@@ -70,19 +61,13 @@ function saveOneReservering(rsv_ruimte_key)
|
||||
{ dbs: "res_rsv_ruimte_host_key", typ: "key", frm: "personH" },
|
||||
{ dbs: "res_activiteit_key", typ: "key", frm: "sel_activity" },
|
||||
{ dbs: "res_status_fo_key", typ: "key", frm: "status_fo" },
|
||||
{ dbs: "res_rsv_ruimte_kosten_klant", typ: "bool", frm: "costclient" },
|
||||
{ dbs: "res_rsv_ruimte_kosten_klant", typ: "check", frm: "costclient" },
|
||||
{ dbs: "res_rsv_ruimte_contact_key", typ: "key", frm: "person" },
|
||||
{ dbs: "res_rsv_ruimte_bezoekers", typ: "number", frm: "bezoekers" },
|
||||
{ dbs: "res_rsv_ruimte_noshow", typ: "number", frm: "res_noshow" },
|
||||
{ dbs: "res_rsv_ruimte_noshow", typ: "check", frm: "res_noshow" },
|
||||
{ dbs: "res_rsv_ruimte_telefoon", typ: "varchar", frm: "phone" }
|
||||
];
|
||||
|
||||
/* TODO: kostenklant nog overnemen in buildSave
|
||||
xxxxsql = "UPDATE res_rsv_ruimte SET"
|
||||
+ (fronto||backo?((kosten_klant=='on')?", res_rsv_ruimte_kosten_klant = 1":", res_rsv_ruimte_kosten_klant = null"):"")
|
||||
+ ", res_rsv_ruimte_noshow = " + (res_noshow?"1":"NULL")
|
||||
*/
|
||||
|
||||
if (rsv_ruimte_key==-1) // Nieuw, dan moeten we ook nog een res_reservering record aanmaken
|
||||
{
|
||||
var resfields = [ { dbs: "res_reservering_key", typ: "key", seq: "res_s_res_reservering_key" },
|
||||
@@ -96,10 +81,17 @@ function saveOneReservering(rsv_ruimte_key)
|
||||
fields = fields.concat(
|
||||
[ { dbs: "res_rsv_ruimte_key", typ: "key", seq: "res_s_res_rsv_ruimte_key" },
|
||||
{ dbs: "res_reservering_key", typ: "key", val: reservering_key },
|
||||
{ dbs: "res_status_bo_key", typ: "key", val: 2 }, // ingevoerd
|
||||
{ dbs: "res_rsv_ruimte_volgnr", typ: "number", val: 1 }
|
||||
]);
|
||||
|
||||
if (restype == "R")
|
||||
{
|
||||
// PF: volgens mij is het verhaal dat het voor CV reserveringen wordt bepaald door de
|
||||
// statussen van de onderliggende items.
|
||||
fields = fields.concat(
|
||||
[ { dbs: "res_status_bo_key", typ: "key", val: 2 } // ingevoerd
|
||||
]);
|
||||
}
|
||||
var resIns = buildInsert("res_rsv_ruimte", fields);
|
||||
var rsv_ruimte_key = resIns.sequences["res_rsv_ruimte_key"];
|
||||
|
||||
@@ -115,6 +107,10 @@ function saveOneReservering(rsv_ruimte_key)
|
||||
}
|
||||
else // update
|
||||
{
|
||||
// Hardness controle schrijfrechten
|
||||
var this_res = res.func_enabled(rsv_ruimte_key); // Wat heb ik zoal aan rechten op deze specifieke reservering
|
||||
user.auth_required_or_abort(this_res.canChange);
|
||||
|
||||
// ons eigen tijdstip/zaal is mogelijk gewijzigd waardoor andere *dirty* reserveringen
|
||||
// clean wordt. Even onze oude datum onthouden zodat we niet *alles* hoeven te controleren
|
||||
oRs = Oracle.Execute("select res_rsv_ruimte_van,"
|
||||
@@ -145,13 +141,6 @@ function saveOneReservering(rsv_ruimte_key)
|
||||
Oracle.Execute( sql );
|
||||
res.trackaction("RESUPD", rsv_ruimte_key, "TODO lcl_deelreservering gewijzigd"); /* TODO zie boven */
|
||||
}
|
||||
return rsv_ruimte_key
|
||||
}
|
||||
|
||||
|
||||
rsv_ruimte_key = saveOneReservering(rsv_ruimte_key);
|
||||
// TODO: Controle of ik rsv_ruimte_key wel mag schrijven (hardness)
|
||||
|
||||
|
||||
%>
|
||||
<!-- #include file="kenmerk_save.inc"-->
|
||||
@@ -181,7 +170,10 @@ if (!oRs.eof) {
|
||||
|
||||
// zijn er nog wel voorzieningen bij een "CV" reservering
|
||||
var emptyRes= false;
|
||||
if (restype == "CV" && timecatvoorz) { // We komen hier als tijdstip is aangepast
|
||||
// TODO: Moet dit niet naar objcat_save?
|
||||
// JGL Vooralsnog even false omdat we helemaal geen res_key hebben
|
||||
// Bovendien zijn we hier misschien akelig nieuw en is verwijderen wel erg prematuur
|
||||
if (false && restype == "CV") { // We komen hier als tijdstip is aangepast
|
||||
sql = "SELECT SUM (aantal)"
|
||||
+ " FROM (SELECT COUNT (*) aantal"
|
||||
+ " FROM res_v_aanwezigrsv_deel rd"
|
||||
@@ -213,13 +205,15 @@ if (restype == "CV" && timecatvoorz) { // We komen hier als tijdstip is aangepas
|
||||
}
|
||||
|
||||
|
||||
|
||||
var warning = "";
|
||||
// TODO
|
||||
// if(pasttexpire&&!backo) warning = lcl_res_warnBO;
|
||||
%>
|
||||
<html>
|
||||
<head>
|
||||
<% FCLTHeader.Generate() %>
|
||||
<script>
|
||||
FcltMgr.closeDetail(window, { rsv_ruimte_key: <%=rsv_ruimte_key%> });
|
||||
FcltMgr.closeDetail(window, { rsv_ruimte_key: <%=rsv_ruimte_key%>, warning: "<%=warning%>" });
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<% /*
|
||||
$Revision: 2 $
|
||||
$Modtime: 2-11-09 17:20 $
|
||||
$Revision: 3 $
|
||||
$Modtime: 3-11-09 15:35 $
|
||||
|
||||
File: res_list.inc
|
||||
Description: Show an overview of reservations in list-form,
|
||||
@@ -1406,6 +1406,10 @@ function res_list (pautfunction, params)
|
||||
{
|
||||
sql = sql + sql_order;
|
||||
}
|
||||
// Extra wrapper omdat ADO anders komt met 'Operation not allowed when object is closed'
|
||||
// Blijkbaar snapt die de WITH constructie vooraan niet zo
|
||||
sql = "SELECT * FROM ("+sql + ")";
|
||||
|
||||
/***** End build sql *****/
|
||||
|
||||
var count = 0;
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<%@ language = "JavaScript" %>
|
||||
<% /*
|
||||
$Revision: 2 $
|
||||
$Modtime: 28-10-09 16:33 $
|
||||
$Revision: 3 $
|
||||
$Modtime: 2-11-09 20:44 $
|
||||
|
||||
File: obj_schedule.asp
|
||||
Description: Create small planboard for reservable objects
|
||||
File: res_load_plan_obj.asp
|
||||
Description: Maakt een klein planbordje voor een enkele objecten discipline
|
||||
Wordt via Ajax geladen/geplakt in de body res_edit_objcat.asp
|
||||
als een categorie wordt opengeklapt.
|
||||
Parameters: urole
|
||||
@@ -14,9 +14,7 @@
|
||||
alleen een planbordje
|
||||
rsv_van datum, optioneel, zie rsv_ruimte_key
|
||||
Context: Geladen via ajax als user 'opent' object categorie
|
||||
Notes: Zie ook cons_objects.asp voor catering
|
||||
het RES_RSV_RUIMTE record bestaat altijd al!
|
||||
res_rsv_ruimte_key is dan ook zo'n beetje de enige parameter?
|
||||
Notes: Zie ook res_load_cat.asp voor catering
|
||||
Er wordt combinatie-validate gedaan
|
||||
*/
|
||||
DOCTYPE_Disable = 1;
|
||||
@@ -29,13 +27,13 @@ DOCTYPE_Disable = 1;
|
||||
<!--#include file="../Shared/escape.inc" -->
|
||||
<!--#include file="../Shared/discxalg3d.inc"-->
|
||||
<!--#include file="res.inc"-->
|
||||
<!--#include file="obj_schedule.inc"-->
|
||||
<!--#include file="res_plan_obj.inc"-->
|
||||
<!-- #include file="../shared/kpl_ksrt_validate.inc" -->
|
||||
|
||||
<%
|
||||
var urole = getQParam("urole");
|
||||
var rsv_ruimte_key = getQParamInt("rsv_ruimte_key", -1);
|
||||
var sdisc = getQParamInt("sdisc");
|
||||
var disc_key = getQParamInt("disc_key");
|
||||
if (rsv_ruimte_key>0)
|
||||
{
|
||||
// Zo snel mogelijk relevante basisinformatie opzoeken
|
||||
@@ -50,7 +48,7 @@ DOCTYPE_Disable = 1;
|
||||
var res_van = new Date(oRs("res_rsv_ruimte_van").value);
|
||||
var res_tot = new Date(oRs("res_rsv_ruimte_tot").value);
|
||||
|
||||
if (!kpl_ksrt_validate(oRs("prs_kostenplaats_key"), null, sdisc))
|
||||
if (!kpl_ksrt_validate(oRs("prs_kostenplaats_key"), null, disc_key))
|
||||
{
|
||||
%><script type="text/javascript">
|
||||
alert("<%=lcl_res_kpks_validatie%>");
|
||||
@@ -58,7 +56,6 @@ DOCTYPE_Disable = 1;
|
||||
<%
|
||||
Response.End()
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -69,8 +66,6 @@ DOCTYPE_Disable = 1;
|
||||
|
||||
var fronto = (urole=='fo');;
|
||||
var backo = (urole=='bo');
|
||||
var jumped = Request.QueryString("jumped").Count>0;
|
||||
|
||||
|
||||
var ch_obj_mode = parseInt(Request.QueryString("ch_obj_mode"));
|
||||
|
||||
@@ -81,9 +76,8 @@ DOCTYPE_Disable = 1;
|
||||
|
||||
var authparams = user.checkAutorisation(autfunction, true);
|
||||
|
||||
objSchedule(sdisc, res_van, res_tot,
|
||||
{ jumped: jumped,
|
||||
hour_px: hour_px,
|
||||
make_plan_obj(disc_key, res_van, res_tot,
|
||||
{ hour_px: hour_px,
|
||||
rsv_ruimte_key: rsv_ruimte_key,
|
||||
ch_obj_mode: ch_obj_mode
|
||||
});
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<%@ language = "JavaScript" %>
|
||||
<% /*
|
||||
$Revision: 1 $
|
||||
$Modtime: 29-09-09 18:05 $
|
||||
$Revision: 2 $
|
||||
$Modtime: 2-11-09 10:21 $
|
||||
|
||||
File: makeMultiDialog.asp
|
||||
Description: Maak een dialoog om gegevens van een deelreservering
|
||||
@@ -23,7 +23,7 @@
|
||||
<!--#include file="./res.inc"-->
|
||||
<%
|
||||
FCLTHeader.Requires({plugins: ["jQuery", "datepicker"],
|
||||
js: ["date.js", "FcltMgr.js"]})
|
||||
js: ["date.js"]})
|
||||
|
||||
var urole = getQParam("urole");
|
||||
var rsv_ruimte_key = getQParamInt("rsv_ruimte_key");
|
||||
@@ -124,6 +124,7 @@
|
||||
date: [],
|
||||
format: 'd-m-Y',
|
||||
calendars: nrCals,
|
||||
locale: LCL.shared.calendar_names,
|
||||
current: nextmonth,
|
||||
mode: 'multiple',
|
||||
onChange: function(formatted, dates)
|
||||
@@ -146,7 +147,7 @@
|
||||
res.className = 'res_exist';
|
||||
res.disabled = true;
|
||||
}
|
||||
else if ($.inArray(datum.getTime(), mld_vrije_dagen)> -1)
|
||||
else if (cal_isVrijeDag(datum))
|
||||
{
|
||||
res.className = 'TODOVrij';
|
||||
// res.disabled = true; // TODO als vrije dagen verboden
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<%@ language = "JavaScript" %>
|
||||
<% /*
|
||||
$Revision: 1 $
|
||||
$Modtime: 29-09-09 16:18 $
|
||||
$Revision: 2 $
|
||||
$Modtime: 2-11-09 13:38 $
|
||||
|
||||
File: multisaveDialog.asp
|
||||
Description: Maak een dialoog om gegevens van een deelreservering naar
|
||||
@@ -12,11 +12,10 @@
|
||||
Note:
|
||||
*/
|
||||
%>
|
||||
<% Response.Expires = -1; %>
|
||||
<!--#include file="../../cust/install.inc"-->
|
||||
<!--#include file="../Shared/iface.inc"-->
|
||||
<%
|
||||
FCLTHeader.Requires({js: ["FcltMgr.js"]})
|
||||
FCLTHeader.Requires({plugins: ["jQuery"]});
|
||||
|
||||
var urole = getQParam("urole");
|
||||
var rsv_ruimte_key = getQParam("rsv_ruimte_key");
|
||||
@@ -48,12 +47,10 @@
|
||||
if (submitting)
|
||||
{
|
||||
var rq = Request.Form("deelreserveringen");
|
||||
var what = getFParamInt("call", 0, true);
|
||||
if (what == 0) {
|
||||
var what = getFParamInt("c1", 0, true)+getFParamInt("c2", 0, true)+getFParamInt("c4", 0, true)+getFParamInt("c8", 0, true)
|
||||
+getFParamInt("c16", 0, true)+getFParamInt("c32", 0, true)+getFParamInt("c64", 0, true)+getFParamInt("c128", 0, true)
|
||||
+getFParamInt("c256", 0, true)+getFParamInt("c512", 0, true)+getFParamInt("c1024", 0, true);
|
||||
}
|
||||
var what = getFParamInt("c1", 0, true)+getFParamInt("c2", 0, true)+getFParamInt("c4", 0, true)+getFParamInt("c8", 0, true)
|
||||
+getFParamInt("c16", 0, true)+getFParamInt("c32", 0, true)+getFParamInt("c64", 0, true)+getFParamInt("c128", 0, true)
|
||||
+getFParamInt("c256", 0, true)+getFParamInt("c512", 0, true)+getFParamInt("c1024", 0, true);
|
||||
|
||||
if (what != "") {
|
||||
for (var i=1; i<=rq.count; i++)
|
||||
{
|
||||
@@ -89,7 +86,7 @@ if (submitting)
|
||||
<tr>
|
||||
<td valign=top>
|
||||
<label><%=lcl_res_copypart%></label>
|
||||
<br><label><input name='call' value="2047" type='checkbox'><%=lcl_all%></label>
|
||||
<br><label><a href="#" onclick="javascript:$('input[type=checkbox]').attr('checked', true); return false;"><%=lcl_all%></a></label>
|
||||
<br><label><input name='c1' value="1" type='checkbox'><%=lcl_descr%></label>
|
||||
<br><label><input name='c2' value="2" type='checkbox'><%=lcl_remark%></label>
|
||||
<br><label><input name='c4' value="4" type='checkbox'><%=lcl_date_time%></label>
|
||||
@@ -165,7 +162,7 @@ if (submitting)
|
||||
// if (oRs("res_ruimte_nr").value)
|
||||
// tekst += ": " + oRs("res_ruimte_nr")
|
||||
volgnrTxt = oRs("res_rsv_ruimte_volgnr").value;
|
||||
// TODO: Hoe hier net als vroeger omgaan met 'deleted' en 'serie' en 'reminder' etc.
|
||||
// TODO: Hoe hier net als vroeger omgaan met 'deleted' en 'serie' etc.
|
||||
sel = "";
|
||||
if (d1Key > new Date())
|
||||
var sel = " SELECTED "
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
$Revision: 2 $
|
||||
$Modtime: 2-11-09 19:50 $
|
||||
$Revision: 3 $
|
||||
$Modtime: 3-11-09 10:39 $
|
||||
*/
|
||||
// As in RES_STATUS_FO
|
||||
var fo_stat_opt=1
|
||||
@@ -24,7 +24,9 @@ function delayed(delay, fn)
|
||||
function setResRsvDeelTitle(elm, rsv_deel_key)
|
||||
{
|
||||
if (!elm.title)
|
||||
loadtitle(elm, "../res/ResRsvDeelTitle.asp?rsv_deel_key="+rsv_deel_key);
|
||||
delayed(200, function () {
|
||||
loadtitle(elm, "../res/res_load_title_obj.asp?rsv_deel_key="+rsv_deel_key);
|
||||
});
|
||||
}
|
||||
|
||||
function rsv_title(elm, rsv_ruimte_key)
|
||||
@@ -32,7 +34,7 @@ function rsv_title(elm, rsv_ruimte_key)
|
||||
if (!elm.title)
|
||||
{
|
||||
delayed(200, function () {
|
||||
loadtitle(elm, "../res/ResRsvTitle.asp?rsv_ruimte_key="+elm.rsv_key);
|
||||
loadtitle(elm, "../res/res_load_title_rsv.asp?rsv_ruimte_key="+elm.rsv_key);
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -40,20 +42,22 @@ function rsv_title(elm, rsv_ruimte_key)
|
||||
function setBezBezoekersTitle(elm, bez_bezoekers_key)
|
||||
{
|
||||
if (!elm.title)
|
||||
loadtitle(elm, "../res/BezBezoekersTitle.asp?bez_bezoekers_key="+bez_bezoekers_key);
|
||||
delayed(200, function () {
|
||||
loadtitle(elm, "../res/res_load_title_bez.asp?bez_bezoekers_key="+bez_bezoekers_key);
|
||||
});
|
||||
}
|
||||
|
||||
function rsv_click(elm,urole)
|
||||
{
|
||||
if (elm.beingdragged)
|
||||
{
|
||||
elm.beingdragged = false;
|
||||
return;
|
||||
}
|
||||
var cmd = "appl/res/res_reservering.asp?rsv_ruimte_key=" + elm.rsv_key + "&urole="+urole;
|
||||
FcltMgr.openDetail(cmd);
|
||||
}
|
||||
|
||||
function noCClick(i)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
function room_table_click(hours, urole)
|
||||
{
|
||||
var ob = window.event.srcElement;
|
||||
@@ -90,82 +94,6 @@ function obj_table_click(hours, urole)
|
||||
}
|
||||
}
|
||||
|
||||
function doTClick(obj_edit)
|
||||
{
|
||||
if( window.event.srcElement.onclick != null ) return;
|
||||
|
||||
var tName ="";
|
||||
var ob = window.event.srcElement;
|
||||
i = 0;
|
||||
while(1){
|
||||
if(i++ > 20) break;
|
||||
if(ob){
|
||||
if(ob.tagName == "TABLE")
|
||||
{
|
||||
tName = ob.id;
|
||||
break;
|
||||
}
|
||||
if(ob.tagName == "TR")
|
||||
{
|
||||
t2_Name = ob.id;
|
||||
if(t2_Name.indexOf("tr_rdeel") >=0) t2_Name = t2_Name.substring(8);
|
||||
else t2_Name ="";
|
||||
ob = ob.parentElement;
|
||||
}
|
||||
else
|
||||
{
|
||||
ob = ob.parentElement;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
t1 = parseInt(window.event.srcElement.id,10);
|
||||
if( isNaN(t1))
|
||||
return;
|
||||
|
||||
th = Math.floor(res_t1 + res_h * t1);
|
||||
tm = Math.floor((res_t1 + res_h * t1 - th) * 60);
|
||||
t2 = parseInt(window.event.srcElement.parentElement.id,10);
|
||||
|
||||
if(tName.indexOf("able_dis") > 0)
|
||||
{
|
||||
if( obj_edit ) {
|
||||
el = window.event.srcElement;
|
||||
enableNewResObj(el,th,tm);
|
||||
} else {
|
||||
t2 = parseInt(t2_Name,10);
|
||||
if( parent.year ) {
|
||||
cmd=(!frontend?'fronto=&':'') + 'yy=' + parent.year[1] + '&mm=' + parent.month[1] + '&dd='
|
||||
+ parent.date[1] + '&hh=' + th + '&mi=' + tm + '&rdeel=' + t2 + '&restype=CV';
|
||||
if(parent.validAdd())
|
||||
parent.frames.workFrame.navigate('../res/reserv_New.asp?'+cmd);
|
||||
} else {
|
||||
cmd=(!frontend?'fronto=':'') + '&yy=' + parent.parent.year[1] + '&mm=' + parent.parent.month[1] + '&dd='
|
||||
+ parent.parent.date[1] + '&hh=' + th + '&mi=' + tm + '&rdeel=' + t2 + '&restype=CV';
|
||||
if(parent.parent.validAdd())
|
||||
parent.parent.frames.workFrame.navigate('../res/reserv_New.asp?'+cmd);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if( parent.year ) {
|
||||
cmd=(!frontend?'fronto=&':'') + 'yy=' + parent.year[1] + '&mm=' + parent.month[1] + '&dd='
|
||||
+ parent.date[1] + '&hh=' + th + '&mi=' + tm + '&room=' + t2;
|
||||
if(parent.validAdd())
|
||||
parent.frames.workFrame.navigate('../res/reserv_New.asp?'+cmd);
|
||||
} else {
|
||||
cmd=(!frontend?'fronto=&':'') + 'yy=' + parent.parent.year[1] + '&mm=' + parent.parent.month[1] + '&dd='
|
||||
+ parent.parent.date[1] + '&hh=' + th + '&mi=' + tm + '&room=' + t2;
|
||||
if(parent.parent.validAdd())
|
||||
parent.parent.frames.workFrame.navigate('../res/reserv_New.asp?'+cmd);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Gebruiker heeft een ruimte geselecteerd.
|
||||
// TODO: Ook (eventueel) geklikt tijdstip teruggeven?
|
||||
@@ -257,7 +185,7 @@ function ItemChoosed_obj(elm, fromID, disc_key)
|
||||
}
|
||||
|
||||
params = "?rsv_ruimte_key="+rsv_ruimte_key+"&urole="+urole;
|
||||
params += "&sdisc="+disc_key;
|
||||
params += "&disc_key="+disc_key;
|
||||
params += "&ch_obj_mode="+"1";// TODO ch_obj_mode;
|
||||
params += "&hour_px=" + hour_px;
|
||||
params += "&res_van=" + res_van.getTime();
|
||||
@@ -287,7 +215,7 @@ function ItemChoosed_cat(elm, fromID, disc_key)
|
||||
|
||||
// onclick van een reserveerbaar deel regel (dan is de categorie al opengeklapt)
|
||||
//
|
||||
function res_deel_click(fromID, rdeel)
|
||||
function res_deel_click(rdeel)
|
||||
{
|
||||
$("#" + rdeel).toggleClass("selected").toggleClass("unselected");
|
||||
}
|
||||
|
||||
@@ -1,87 +1,86 @@
|
||||
<% /*
|
||||
$Revision: 2 $
|
||||
$Modtime: 2-11-09 12:31 $
|
||||
$Revision: 3 $
|
||||
$Modtime: 3-11-09 14:27 $
|
||||
|
||||
File: obj_schedule.inc
|
||||
Status: 75% (PF: hooguit)
|
||||
Description: Create small planboard for reservable objects
|
||||
At the body.onload it copies its entire innerHTML to the parent
|
||||
File: res_plan_obj.inc
|
||||
Status: 80%
|
||||
Description: Het echte genereren van het planbordje voor objecten
|
||||
via functie make_plan_obj() die een kale HTML-table oplevert
|
||||
Parameters: ???
|
||||
|
||||
Context: Geladen via ajaxals gebruiker een object categorie opent
|
||||
as well serverside when object categorie should be open initially
|
||||
??Let wel: 'onder het grote planbord' en 'na drukken knop voorzieningen bij een
|
||||
bestaande of nieuwe reservering' geeft iets ander gedrag??
|
||||
Notes: See also cons_objects.asp for consumable objects. Solved differently
|
||||
though.
|
||||
Context: Indirect ajax in read_load_plan_obj.asp
|
||||
of rechtstreeks in res_search_plan_obj.asp
|
||||
Notes: Zie res_load_cat.asp voor de catering en res_plan_room.inc voor ruimtes
|
||||
|
||||
*/
|
||||
|
||||
FCLTHeader.Requires({ js: ["./room_schedule.js"] });
|
||||
FCLTHeader.Requires({ js: ["./res_plan.js"] });
|
||||
|
||||
first=true;
|
||||
|
||||
function objSchedule(sdisc, res_van, res_tot, params)
|
||||
|
||||
function make_plan_obj(disc_key, res_van, res_tot, params)
|
||||
{
|
||||
mkDiv = function (theClass, h_start, h_end, theClick, theMouse, theOther)
|
||||
{
|
||||
var div;
|
||||
var overleft="";
|
||||
var overright="";
|
||||
if (h_start<res_t1)
|
||||
{
|
||||
h_start = res_t1-res_h;
|
||||
if (dagen > 0)
|
||||
overleft = " continueleft";
|
||||
else
|
||||
overleft = " overflowleft";
|
||||
}
|
||||
|
||||
if (h_end>res_t2)
|
||||
{
|
||||
h_end = res_t2+res_h;
|
||||
if (dagen < nr_days-1)
|
||||
overright = " continueright";
|
||||
else
|
||||
overright = " overflowright";
|
||||
}
|
||||
var px_start = (h_start-res_t1)*params.hour_px + 1; // 1 px speling
|
||||
var px_end = (h_end-res_t1)*params.hour_px;
|
||||
|
||||
var px_width = px_end - px_start;
|
||||
if (overleft!=""&&overright!="")
|
||||
{ // Maak twee divjes, eentje links en eentje rechts.
|
||||
// HTML kan maar <20><>n background image tegelijk aan
|
||||
div = "<div class='"+theClass+overleft+"'"
|
||||
+(theMouse||"")
|
||||
+(theClick||"")
|
||||
+(theOther||"")
|
||||
+" style='left:"+px_start+"px;width:"+(px_width/2)+"px'>"
|
||||
+" </div>";
|
||||
div += "<div class='"+theClass+overright+"'"
|
||||
+(theMouse||"")
|
||||
+(theClick||"")
|
||||
+(theOther||"")
|
||||
+" style='left:"+(px_start+px_width/2)+"px;width:"+(px_width/2)+"px'>"
|
||||
+" </div>";
|
||||
}
|
||||
else
|
||||
{
|
||||
div = "<div class='"+theClass+overleft+overright+"'"
|
||||
+(theMouse||"")
|
||||
+(theClick||"")
|
||||
+(theOther||"")
|
||||
+" style='left:"+px_start+"px;width:"+px_width+"px'>"
|
||||
+" </div>";
|
||||
}
|
||||
return { div: div, overleft: overleft, overright: overright };
|
||||
}
|
||||
|
||||
params = params || {};
|
||||
params.hour_px = params.hour_px || 48;
|
||||
params.rsv_ruimte_key = params.rsv_ruimte_key || -1;
|
||||
params.ch_obj_mode = params.ch_obj_mode || 0;
|
||||
var res_h_px = params.hour_px * res_h;
|
||||
|
||||
mkDiv = function (theClass, h_start, h_end, theClick, theMouse, theOther)
|
||||
{
|
||||
var div;
|
||||
var overleft="";
|
||||
var overright="";
|
||||
if (h_start<res_t1)
|
||||
{
|
||||
h_start = res_t1-res_h;
|
||||
if (dagen > 0)
|
||||
overleft = " continueleft";
|
||||
else
|
||||
overleft = " overflowleft";
|
||||
}
|
||||
|
||||
if (h_end>res_t2)
|
||||
{
|
||||
h_end = res_t2+res_h;
|
||||
if (dagen < nr_days-1)
|
||||
overright = " continueright";
|
||||
else
|
||||
overright = " overflowright";
|
||||
}
|
||||
var px_start = (h_start-res_t1)*params.hour_px + 1; // 1 px speling
|
||||
var px_end = (h_end-res_t1)*params.hour_px;
|
||||
|
||||
var px_width = px_end - px_start;
|
||||
if (overleft!=""&&overright!="")
|
||||
{ // Maak twee divjes, eentje links en eentje rechts.
|
||||
// HTML kan maar <20><>n background image tegelijk aan
|
||||
div = "<div class='"+theClass+overleft+"'"
|
||||
+(theMouse||"")
|
||||
+(theClick||"")
|
||||
+(theOther||"")
|
||||
+" style='left:"+px_start+"px;width:"+(px_width/2)+"px'>"
|
||||
+" </div>";
|
||||
div += "<div class='"+theClass+overright+"'"
|
||||
+(theMouse||"")
|
||||
+(theClick||"")
|
||||
+(theOther||"")
|
||||
+" style='left:"+(px_start+px_width/2)+"px;width:"+(px_width/2)+"px'>"
|
||||
+" </div>";
|
||||
}
|
||||
else
|
||||
{
|
||||
div = "<div class='"+theClass+overleft+overright+"'"
|
||||
+(theMouse||"")
|
||||
+(theClick||"")
|
||||
+(theOther||"")
|
||||
+" style='left:"+px_start+"px;width:"+px_width+"px'>"
|
||||
+" </div>";
|
||||
}
|
||||
return { div: div, overleft: overleft, overright: overright };
|
||||
}
|
||||
|
||||
var readwrite = func_enabled[ "WEB_RESFOF"] || func_enabled[ "WEB_RESUSE"];
|
||||
if( readwrite || func_enabled[ "WEB_RESFO2"] )
|
||||
@@ -128,13 +127,6 @@ mkDiv = function (theClass, h_start, h_end, theClick, theMouse, theOther)
|
||||
params.ch_obj_mode = 0;
|
||||
}
|
||||
|
||||
if (isNaN(sdisc)) {
|
||||
%>
|
||||
<p><%=lcl_internal_error%>: obj_schedule.inc</p>
|
||||
<%
|
||||
}
|
||||
else
|
||||
{
|
||||
ora_date1 = res_van.beginToSQL();
|
||||
ora_date2 = res_tot.endToSQL();
|
||||
|
||||
@@ -162,9 +154,9 @@ mkDiv = function (theClass, h_start, h_end, theClick, theMouse, theOther)
|
||||
+ " AND rrd.res_rsv_deel_van <= " + ora_date2
|
||||
+ " AND rrd.res_deel_key = rd.res_deel_key"
|
||||
+ " AND rrd.res_rsv_ruimte_key = rr.res_rsv_ruimte_key"
|
||||
+ " AND rd.res_discipline_key = " + sdisc
|
||||
+ " AND rd.res_discipline_key = " + disc_key
|
||||
|
||||
if (sdisc==vis_parking_key)
|
||||
if (disc_key==vis_parking_key)
|
||||
sql = sql + " UNION ALL " //Die via afspraak/bezoekers (parkeerplaatsen)
|
||||
+ "SELECT rrd.RES_RSV_DEEL_VAN"
|
||||
+ ", rrd.RES_RSV_DEEL_TOT"
|
||||
@@ -186,7 +178,7 @@ mkDiv = function (theClass, h_start, h_end, theClick, theMouse, theOther)
|
||||
+ " AND rrd.bez_bezoekers_key = b.bez_bezoekers_key"
|
||||
+ " AND b.bez_afspraak_key = a.bez_afspraak_key"
|
||||
+ " AND rrd.res_rsv_ruimte_key is null"
|
||||
+ " AND rd.RES_DISCIPLINE_KEY="+sdisc
|
||||
+ " AND rd.RES_DISCIPLINE_KEY="+disc_key
|
||||
|
||||
oRs = Oracle.Execute(sql);
|
||||
while( !oRs.eof ) {
|
||||
@@ -212,10 +204,10 @@ mkDiv = function (theClass, h_start, h_end, theClick, theMouse, theOther)
|
||||
|
||||
var onclick = "";
|
||||
if (readwrite&&!params.jumped)
|
||||
onclick = "onclick=obj_table_click(parseInt(window.event.offsetX)/"+params.hour_px+"+"+res_t1+",'"+urole+"')";
|
||||
onclick = "onclick=\"obj_table_click(parseInt(window.event.offsetX)/"+params.hour_px+"+"+res_t1+",'"+urole+"')\"";
|
||||
|
||||
%>
|
||||
<table id="table_dis<%=sdisc%>" class="tab_obj_sched planbord planbord<%=params.hour_px%>" cellspacing="0"
|
||||
<table id="table_dis<%=disc_key%>" class="tab_obj_sched planbord planbord<%=params.hour_px%>" cellspacing="0"
|
||||
<%=onclick%>
|
||||
>
|
||||
<%//// Extra regel met losse cellen om afmetingen te forceren%>
|
||||
@@ -240,7 +232,7 @@ mkDiv = function (theClass, h_start, h_end, theClick, theMouse, theOther)
|
||||
// Iterate through all reservable objects (vertically) and show schedule for them (horizontally)
|
||||
var n=0,res_deel_key,free,rsv_ruimte_key;
|
||||
|
||||
var sql1 = getReservedObjectTypes(alg_ruimte_key, params.rsv_ruimte_key, select_fields, loc_key, sdisc, group_by);
|
||||
var sql1 = getReservedObjectTypes(alg_ruimte_key, params.rsv_ruimte_key, select_fields, loc_key, disc_key, group_by);
|
||||
|
||||
} else {
|
||||
// We hebben dus g<><67>n alg_ruimte_key <20>n g<><67>n res_rsv_ruimte_key
|
||||
@@ -253,7 +245,7 @@ mkDiv = function (theClass, h_start, h_end, theClick, theMouse, theOther)
|
||||
var sql1 = "SELECT " + select_fields
|
||||
+ " FROM ins_deel d,"
|
||||
+ " res_v_aanwezigdeel r "
|
||||
+ " WHERE r.res_discipline_key="+sdisc
|
||||
+ " WHERE r.res_discipline_key="+disc_key
|
||||
+ " AND r.res_ins_deel_key=d.ins_deel_key"
|
||||
+ ((loc_key > -1)
|
||||
? " AND d.ins_alg_locatie_key=" + loc_key
|
||||
@@ -266,7 +258,7 @@ mkDiv = function (theClass, h_start, h_end, theClick, theMouse, theOther)
|
||||
+ " WHERE l.prs_perslid_key="+user_key
|
||||
+ " AND l.prs_perslid_key = gg.prs_perslid_key "
|
||||
+ " AND niveau = gg.fac_gebruiker_alg_level_write "
|
||||
+ " AND gg.ins_discipline_key=" + sdisc
|
||||
+ " AND gg.ins_discipline_key=" + disc_key
|
||||
+ " AND gg.fac_functie_key = " + authparams.autfunctionkey+")"
|
||||
: "")
|
||||
+ " UNION "
|
||||
@@ -276,7 +268,7 @@ mkDiv = function (theClass, h_start, h_end, theClick, theMouse, theOther)
|
||||
+ ", r.res_deel_prijs"
|
||||
+ ", r.res_deel_eenheid"
|
||||
+ " FROM ins_deel d, res_v_aanwezigdeel r "
|
||||
+ " WHERE r.res_discipline_key="+sdisc
|
||||
+ " WHERE r.res_discipline_key="+disc_key
|
||||
+ " AND r.res_ins_deel_key = d.ins_deel_key "
|
||||
+ " AND d.ins_alg_ruimte_type = 'T' "
|
||||
+ ((authparams.ALGreadlevel>-1)
|
||||
@@ -286,7 +278,7 @@ mkDiv = function (theClass, h_start, h_end, theClick, theMouse, theOther)
|
||||
+ " WHERE l.prs_perslid_key = " + user_key
|
||||
+ " AND l.prs_perslid_key = gg.prs_perslid_key "
|
||||
+ " AND niveau = gg.fac_gebruiker_alg_level_write "
|
||||
+ " AND gg.ins_discipline_key = " + sdisc
|
||||
+ " AND gg.ins_discipline_key = " + disc_key
|
||||
+ " ADN gg.fac_functie_key = " + authparams.autfunctionkey+")"
|
||||
: "")
|
||||
+ group_by;
|
||||
@@ -301,7 +293,6 @@ mkDiv = function (theClass, h_start, h_end, theClick, theMouse, theOther)
|
||||
ins_deel_omschrijving = replace( ins_deel_omschrijving , "\n" , "<br>" );
|
||||
res_deel_prijs = oRs("RES_DEEL_PRIJS").Value;
|
||||
res_deel_eenheid = oRs("RES_DEEL_EENHEID").Value;
|
||||
var res_deel_opm = escape_js(oRs("RES_DEEL_OPMERKING").value);
|
||||
|
||||
var res_deel_opm2 = oRs("RES_DEEL_OPMERKING").value; //escape2(oRs("RES_DEEL_OPMERKING").value);
|
||||
res_deel_opm2 = replace( res_deel_opm2 , "\n" , "<br>" );
|
||||
@@ -356,26 +347,27 @@ mkDiv = function (theClass, h_start, h_end, theClick, theMouse, theOther)
|
||||
}
|
||||
%>
|
||||
<tr class="<%=is_selected?' selected':''%><%=is_nofit?' res_nofit':''%>" id='<%=res_deel_key%>'>
|
||||
<td class='label'>
|
||||
<td class='label'
|
||||
OnMouseOver="$('#remark<%=res_deel_key%>').show();"
|
||||
OnMouseOut="$('#remark<%=res_deel_key%>').hide();"
|
||||
>
|
||||
<% if (is_selected) { %>
|
||||
<input name='has_<%=res_deel_key%>' type='hidden'>
|
||||
<% } %>
|
||||
<label OnMouseOver="$('#remark<%=res_deel_key%>').show();"
|
||||
OnMouseOut="$('#remark<%=res_deel_key%>').hide();">
|
||||
<% if (params.rsv_ruimte_key>0) { %>
|
||||
<input id='chk_<%=res_deel_key%>' name='chk_<%=res_deel_key%>'
|
||||
type='checkbox' <%=is_selected?'checked':''%>
|
||||
<% if (!st&&!params.jumped) { %>
|
||||
onClick="javascript:res_deel_click('rdeel<%=res_deel_key%>','<%=res_deel_key%>')"
|
||||
<% if (!st&&!params.jumped) { %>
|
||||
onClick="javascript:res_deel_click('<%=res_deel_key%>')"
|
||||
<% } %>>
|
||||
<div class="ref" id='a_<%=res_deel_key%>' style='display:inline'>
|
||||
<% } %>
|
||||
<label >
|
||||
<nobr><%=ins_deel_omschrijving + (isEdit ? '':(prijs_text?' ('+prijs_text+')':'')) %></nobr>
|
||||
</div>
|
||||
</label>
|
||||
<div class="res_remark" id="remark<%=res_deel_key%>">
|
||||
<%="<b>" + ins_deel_omschrijving + ":</b><br>" + res_deel_opm2%>
|
||||
</div>
|
||||
</label>
|
||||
</td>
|
||||
|
||||
<%
|
||||
divver = { overleft: "", overright: "" };
|
||||
|
||||
@@ -433,11 +425,8 @@ mkDiv = function (theClass, h_start, h_end, theClick, theMouse, theOther)
|
||||
theClick = ' onClick="rsv_click(this,\''+urole+'\');"'
|
||||
theClass += " click";
|
||||
}
|
||||
else
|
||||
if (readwrite&&!params.jumped)
|
||||
theClick =" onClick=noCClick()"
|
||||
|
||||
divver = mkDiv(theClass, h_start, h_end, theClick, theMouse, " rsv_key='" + rsv_ruimte_key + "'");
|
||||
divver = mkDiv(theClass, h_start, h_end, theClick, theMouse, " rsv_key='" + rsv_ruimte_key +"' rsv_deel_key='" + rsv_deel_key + "'");
|
||||
Response.Write("\n"+divver.div);
|
||||
}
|
||||
|
||||
@@ -468,7 +457,6 @@ mkDiv = function (theClass, h_start, h_end, theClick, theMouse, theOther)
|
||||
<span onclick="$('.res_nofit').css('display','none');$(this).toggle();;$(this).prev().toggle()" style='display:none'>
|
||||
TODO: Alle objecten getoond. Toon alleen beschikbare.
|
||||
</span><%
|
||||
}
|
||||
}//readwrite
|
||||
} // function objSchedule()
|
||||
} // function make_plan_obj()
|
||||
%>
|
||||
@@ -1,10 +1,20 @@
|
||||
<% /*
|
||||
$Revision: 2 $
|
||||
$Modtime: 2-11-09 11:39 $
|
||||
*/ %>
|
||||
$Revision: 3 $
|
||||
$Modtime: 2-11-09 20:18 $
|
||||
|
||||
<%
|
||||
FCLTHeader.Requires({js: ["./room_schedule.js"]});
|
||||
File: res_plan_room.inc
|
||||
Status: 80%
|
||||
Description: Het echte genereren van het planbordje voor ruimtes
|
||||
via functie make_plan_room() die een kale HTML-table oplevert
|
||||
Parameters: ???
|
||||
|
||||
Context: Indirect ajax in read_load_plan_room.asp
|
||||
of rechtstreeks in res_search_plan_room.asp
|
||||
Notes: Zie res_load_cat.asp voor de catering en res_plan_obj.inc voor ruimtes
|
||||
|
||||
*/
|
||||
|
||||
FCLTHeader.Requires({js: ["./res_plan.js"]});
|
||||
|
||||
frontend = Request.QueryString("frontend").Count>0;
|
||||
|
||||
@@ -20,7 +30,7 @@
|
||||
|
||||
var existing_res = new Array();
|
||||
|
||||
function CreateRoomScheduleMulti(params)
|
||||
function make_plan_room(params)
|
||||
{
|
||||
__Log("Entering CreateRoomScheduleMulti with id=" + params.id + " and readwrite=" + params.readwrite);
|
||||
var sql, Autfunction;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<%@language = "javascript" %>
|
||||
<%
|
||||
/* $Revision: 1 $
|
||||
$Modtime: 30-09-09 14:06 $
|
||||
/* $Revision: 2 $
|
||||
$Modtime: 1-11-09 20:44 $
|
||||
|
||||
File: res_reservering.asp
|
||||
Status: 60%
|
||||
@@ -16,9 +16,7 @@
|
||||
Note:
|
||||
*/ %>
|
||||
|
||||
<% Response.Expires = -1; %>
|
||||
<!--#include file="../../cust/install.inc" -->
|
||||
<!--#include file="../Shared/funcodes.inc" -->
|
||||
|
||||
<!--#include file="../Shared/iface.inc" -->
|
||||
<!--#include file="../Shared/datetime.inc" -->
|
||||
@@ -32,17 +30,21 @@
|
||||
standaard voor *alle* deelreserveringen
|
||||
*/
|
||||
FCLTHeader.Requires({plugins: ["jQuery"],
|
||||
js: ["expand_frame.js", "FcltMgr.js", "jQuery-ui.js"],
|
||||
js: ["jQuery-ui.js"],
|
||||
css: ["../shared/suggest/suggest.css"]}); // css voor header.asp
|
||||
|
||||
// AUTORISATIEPARAMETERS
|
||||
var urole = getQParam("urole");
|
||||
|
||||
var rsv_ruimte_key = getQParam("rsv_ruimte_key", -1);
|
||||
var res_deel_key = getQParamInt("res_deel_key", -1);
|
||||
var verynew = getQParam("verynew","0")=="1";
|
||||
|
||||
// Overige parameters
|
||||
if (rsv_ruimte_key==-1) // defaults zetten. TODO Eventueel uit query parameters?
|
||||
{
|
||||
var res_ruimte_key = getQParam("res_ruimte_key", -1);
|
||||
var res_van = getQParamDate("res_van", null);
|
||||
var restype = getQParam("restype", "R"); // Default gaan we een ruimte reserveren
|
||||
var rrr = { rsv_ruimte_key : -1,
|
||||
reservering_key : -1
|
||||
@@ -52,16 +54,18 @@ if (rsv_ruimte_key==-1) // defaults zetten. TODO Eventueel uit query parameters?
|
||||
else // Bestaande reservering
|
||||
{
|
||||
// Zoek zo snel mogelijk info van res_rsv_ruimte op
|
||||
sql = "select res_reservering_key, alg_ruimte_key "
|
||||
sql = "select res_reservering_key, alg_ruimte_key, res_rsv_ruimte_volgnr "
|
||||
+ " from res_rsv_ruimte"
|
||||
+ " where res_rsv_ruimte_key = " + rsv_ruimte_key
|
||||
oRs = Oracle.Execute(sql);
|
||||
|
||||
var rrr = { rsv_ruimte_key : rsv_ruimte_key,
|
||||
reservering_key : oRs("res_reservering_key").value
|
||||
var rrr = { rsv_ruimte_key : rsv_ruimte_key,
|
||||
reservering_key : oRs("res_reservering_key").value,
|
||||
rsv_ruimte_volgnr: oRs("res_rsv_ruimte_volgnr").value
|
||||
};
|
||||
restype = oRs("alg_ruimte_key").Value?"CV":"R";
|
||||
oRs.Close()
|
||||
FCLTHeader.Title(lcl_reservation);
|
||||
}
|
||||
|
||||
%>
|
||||
@@ -72,6 +76,13 @@ else // Bestaande reservering
|
||||
</head>
|
||||
<script>
|
||||
var rsv_ruimte_key=<%=rsv_ruimte_key%>; // kan na wisselen deelres veranderen
|
||||
$(document).ready(function () {
|
||||
<% if (rsv_ruimte_key>0) { %>
|
||||
FcltMgr.setTitle("<%=lcl_reservation + " " + rrr.reservering_key + "/" + rrr.rsv_ruimte_volgnr%>", {hot:false});
|
||||
<% } else { %>
|
||||
FcltMgr.setTitle(LCL.res.new_reservation, {hot:true});
|
||||
<% } %>
|
||||
});
|
||||
|
||||
function refreshall(data)
|
||||
{
|
||||
@@ -88,7 +99,7 @@ else // Bestaande reservering
|
||||
return true;
|
||||
}
|
||||
// nieuwe reservering, ga verder in 'verynew' modus
|
||||
window.location.href = "res_reservering.asp?verynew=1&urole=<%=urole%>&rsv_ruimte_key=" + params.rsv_ruimte_key;
|
||||
window.location.href = "res_reservering.asp?verynew=1&urole=<%=urole%>&res_deel_key=<%=res_deel_key%>&rsv_ruimte_key=" + params.rsv_ruimte_key;
|
||||
<% } else { // Bestaande res bewerkt, switch naar show-mode
|
||||
// Complete refresh: allerlei dirty<-->clean toggles mogelijk
|
||||
%>
|
||||
@@ -153,15 +164,6 @@ else // Bestaande reservering
|
||||
<div id="edit">
|
||||
|
||||
<%
|
||||
add_str ='';
|
||||
menuArray = new Array();
|
||||
menuArray[0] = lcl_res_entire;
|
||||
menuArray[1] = lcl_res_respart;
|
||||
menuArray[2] = lcl_noti_res_email;
|
||||
onClickArray = new Array();
|
||||
onClickArray[0] = 'DoPrint(0)';
|
||||
onClickArray[1] = 'DoPrint(1)';
|
||||
onClickArray[2] = 'DoPrint(2)';
|
||||
|
||||
|
||||
// TODOTODO: deelreserveringnummertjes vergader en roomservice samennemen
|
||||
@@ -236,7 +238,6 @@ else
|
||||
var optclass="";
|
||||
if (oRs("res_rsv_ruimte_dirtlevel") & res.dirtlevel.ruimte.notavailable)
|
||||
{
|
||||
|
||||
// TODO: warning dirtlevel leidt tot class 'warning'
|
||||
tekst = lcl_res_BAD_reservation_pre + tekst + lcl_res_BAD_reservation_post;
|
||||
optclass = "class='fatal'";
|
||||
@@ -245,7 +246,7 @@ else
|
||||
|
||||
|
||||
volgnrTxt = oRs("res_rsv_ruimte_volgnr").value + ". " ;
|
||||
// TODO: Hoe hier net als vroeger omgaan met 'deleted' en 'serie' en 'reminder' etc.
|
||||
// TODO: Hoe hier net als vroeger omgaan met 'deleted' en 'serie' etc.
|
||||
if (oRs("res_rsv_ruimte_verwijder").value == null || oRs("res_rsv_ruimte_key").value == rsv_ruimte_key) {
|
||||
if (rsv_ruimte_key==rKey)
|
||||
{
|
||||
@@ -275,27 +276,32 @@ else
|
||||
<%
|
||||
var buttons = [ ];
|
||||
|
||||
buttons.push( {title: "TODO: Meerdere", icon: "multi.png", action:"res_multi()"});
|
||||
if (rsv_ruimte_key>0)
|
||||
buttons.push( {title: lcl_res_add_deelres, action:"makeMulti()" } );
|
||||
buttons.push( {title: lcl_res_add_deelres, icon: "../Pictures/doc_convert.png", action:"makeMulti()" } );
|
||||
if (multiDeel)
|
||||
{
|
||||
// PF: ik neig toch deze bij de lcl_submit in de onderliggende frames toe te voegen.
|
||||
// DAAR sla je op en besef je dat je het ook voor de volgenden wilt doen!
|
||||
// De beslissing Hier dit opslaan en Bovenin voor alles opslaan is niet vriendelijk
|
||||
// 18-6-2009 23:29:17. Hier moet die dan weg.
|
||||
buttons.push({ title: lcl_res_multiple_save, action: "MultiSave()" });
|
||||
buttons.push({ title: lcl_res_multiple_save, icon: "../Pictures/doc_page.png", action: "MultiSave()" });
|
||||
}
|
||||
if (rsv_ruimte_key>0)
|
||||
{ // PF: twijfel nog over deze
|
||||
buttons.push({ title: lcl_res_del_deelres, action: "alert('Dialoog om meerdere deelreserveringen te verwijderen')" });
|
||||
buttons.push({ title: lcl_res_del_deelres, icon: "delete.png", action: "alert('Dialoog om meerdere deelreserveringen te verwijderen')" });
|
||||
}
|
||||
CreateButtons(buttons);
|
||||
//======================================
|
||||
if (rsv_ruimte_key == -1)
|
||||
var page="res_edit_rsv_ruimte.asp";
|
||||
{
|
||||
var page="res_edit_rsv_ruimte.asp?res_ruimte_key="+res_ruimte_key;
|
||||
if (res_van)
|
||||
page += "&res_van=" + res_van.getTime();
|
||||
}
|
||||
else
|
||||
var page="res_show_rsv_ruimte.asp";
|
||||
page += "?urole="+urole+"&rsv_ruimte_key="+rsv_ruimte_key+"&restype="+restype;
|
||||
var page="res_show_rsv_ruimte.asp?rsv_ruimte_key="+rsv_ruimte_key;
|
||||
page += "&urole="+urole+"&restype="+restype;
|
||||
IFRAMER("roomFrame", page, { title: null,
|
||||
initHeight: "400px",
|
||||
FcltClose: "roomClose" });
|
||||
@@ -304,10 +310,10 @@ IFRAMER("roomFrame", page, { title: null,
|
||||
if (rsv_ruimte_key > 0)
|
||||
{
|
||||
if (verynew && restype=="CV")
|
||||
var page="res_edit_objcat.asp";
|
||||
var page="res_edit_objcat.asp?res_deel_key="+res_deel_key;
|
||||
else
|
||||
var page="res_show_objcat.asp";
|
||||
page += "?urole="+urole+"&rsv_ruimte_key="+rsv_ruimte_key;
|
||||
var page="res_show_objcat.asp?x=1";
|
||||
page += "&urole="+urole+"&rsv_ruimte_key="+rsv_ruimte_key;
|
||||
// TODO $("#objcatFrame")[0] --> FcltMgr.startEdit(window);
|
||||
|
||||
IFRAMER("objcatFrame", page, { title: lcl_res_frame_voorziening, refreshOnClose: true });
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<%@ language = "JavaScript" %>
|
||||
<% /*
|
||||
$Revision: 2 $
|
||||
$Modtime: 1-11-09 18:31 $
|
||||
$Revision: 3 $
|
||||
$Modtime: 2-11-09 20:25 $
|
||||
|
||||
File: res_search.asp
|
||||
Status: 80%
|
||||
@@ -62,29 +62,29 @@ else
|
||||
var date_from = (datefrom == ""? today : new Date(parseInt(datefrom, 10)));
|
||||
var date_to = (dateto == ""? nextday : new Date(parseInt(dateto, 10)));
|
||||
|
||||
var prs_key = parseInt(getQParam("prs_key", -1), 10); // Requestor_key
|
||||
var host_key = parseInt(getQParam("host_key", -1), 10); // Host_key
|
||||
var dep_key = parseInt(getQParam("dep_key", -1), 10);
|
||||
var prs_key = getQParamInt("prs_key", -1); // Requestor_key
|
||||
var host_key = getQParamInt("host_key", -1); // Host_key
|
||||
var dep_key = getQParamInt("dep_key", -1);
|
||||
var kp = getQParam("kp", "");
|
||||
var loc_key = parseInt(getQParam("locatie_key", -1), 10); // locatie
|
||||
var bld_key = parseInt(getQParam("gebouw_key", -1), 10); // gebouw
|
||||
var floor_key = parseInt(getQParam("verdieping_key", -1), 10); // verdieping
|
||||
var room_key = parseInt(getQParam("ruimte_key", -1), 10); // ruimte
|
||||
var loc_key = getQParamInt("locatie_key", -1); // locatie
|
||||
var bld_key = getQParamInt("gebouw_key", -1); // gebouw
|
||||
var floor_key = getQParamInt("verdieping_key", -1); // verdieping
|
||||
var room_key = getQParamInt("ruimte_key", -1); // ruimte
|
||||
var roomcat = (getQParam("roomcat", 1) == 1); // Standaard aangevinkt
|
||||
var objcat = (getQParam("objcat", 1) == 1); // Standaard aangevinkt
|
||||
var artcat = (getQParam("artcat", 1) == 1); // Standaard aangevinkt
|
||||
var act = parseInt(getQParam("act_key", -1), 10); // Activiteit
|
||||
var sortout = parseInt(getQParam("sortout", 1), 10); // Sortering, standaard 1
|
||||
var group = parseInt(getQParam("groupby", -1), 10); // Groepering, standaard -1 (backo), 4 (maninfo)
|
||||
var act = getQParamInt("act_key", -1); // Activiteit
|
||||
var sortout = getQParamInt("sortout", 1); // Sortering, standaard 1
|
||||
var group = getQParamInt("groupby", -1); // Groepering, standaard -1 (backo), 4 (maninfo)
|
||||
|
||||
var room_key_str = getQMultiParam("roomcatmulti", "-1"); // Ruimte soort catalogus
|
||||
var obj_key_str = getQMultiParam("objcatmulti", "-1"); // Voorzieningen catalogus
|
||||
var art_key_str = getQMultiParam("artcatmulti", "-1"); // Verbruiksartikelen catalogus
|
||||
var article_str = getQMultiParam("art", "-1"); // Verbruiksartikelen
|
||||
var artgroup = getQParam("artgroup", "-1"); // Artikelgroep
|
||||
var sortout = parseInt(getQParam("sortout", -1), 10); // Sortering
|
||||
var group = parseInt(getQParam("groupby", null), 10); // Groepering
|
||||
var resstatus = parseInt(getQParam("resstatus", -1), 10); // fo_status
|
||||
var sortout = getQParamInt("sortout", -1); // Sortering
|
||||
var group = getQParamInt("groupby", -1); // Groepering
|
||||
var resstatus = getQParamInt("resstatus", -1); // fo_status
|
||||
|
||||
var res_actual = getQParam("res_actual", 1) == 1; // Standaard aangevinkt indien niet meegegeven
|
||||
var res_deleted = getQParam("res_deleted", 0) == 1; // Standaard niet aangevinkt indien niet meegegeven
|
||||
@@ -147,8 +147,8 @@ var authparams = user.checkAutorisation(autfunction);
|
||||
{
|
||||
__mode = mode;
|
||||
document.u2.action= {0:"res_search_list.asp?urole=<%=urole%>",
|
||||
1:"res_table.asp?urole=<%=urole%>&width_px=" + $(window).width(),
|
||||
2:"res_plan_obj.asp?urole=<%=urole%>&width_px=" + $(window).width()}[mode]
|
||||
1:"res_search_plan_room.asp?urole=<%=urole%>&width_px=" + $(window).width(),
|
||||
2:"res_search_plan_obj.asp?urole=<%=urole%>&width_px=" + $(window).width()}[mode]
|
||||
|
||||
<% if (!frontend)
|
||||
{ %>
|
||||
@@ -306,7 +306,7 @@ var authparams = user.checkAutorisation(autfunction);
|
||||
}
|
||||
FCLTselector("groupby",
|
||||
sql,
|
||||
{ initKey: group? group : initGroup,
|
||||
{ initKey: group>0? group : initGroup,
|
||||
label: lcl_res_group
|
||||
}); %>
|
||||
</tr>
|
||||
|
||||
@@ -1,10 +1,15 @@
|
||||
<%@ language = "JavaScript" %>
|
||||
<% /*
|
||||
$Revision: 2 $
|
||||
$Modtime: 1-11-09 19:39 $
|
||||
$Revision: 3 $
|
||||
$Modtime: 3-11-09 17:00 $
|
||||
|
||||
Status: 20%
|
||||
File: res_search_plan_room.asp
|
||||
Status: 75%
|
||||
Remark: Toon ruimte planbord
|
||||
Parameters:
|
||||
Context: vanuit res_search.asp
|
||||
*/ %>
|
||||
|
||||
<!--#include file="../../cust/install.inc"-->
|
||||
|
||||
<!--#include file="../Shared/funcodes.inc"-->
|
||||
@@ -12,12 +17,11 @@
|
||||
<!--#include file="../Shared/date_sql.inc"-->
|
||||
<!--#include file="../shared/datetime.inc"-->
|
||||
<!--#include file="../shared/iface.inc"-->
|
||||
<!-- #include file="room_schedule.inc" -->
|
||||
<!-- #include file="obj_schedule.inc" -->
|
||||
<!-- #include file="res_plan_room.inc" -->
|
||||
<!-- #include file="res.inc" -->
|
||||
<%
|
||||
FCLTHeader.Requires({plugins: ["jQuery"],
|
||||
js : ["jquery-ui.js"]});
|
||||
js : ["jquery-ui.js"]}); // Voor slepen
|
||||
|
||||
|
||||
var l_exel = parseInt(Request.QueryString("exel"));
|
||||
@@ -62,7 +66,6 @@ var authparams = user.checkAutorisation(autfunction);
|
||||
|
||||
var readwrite = 0;
|
||||
|
||||
if( func_enabled[ "WEB_RESFOF"] || func_enabled[ "WEB_RESFO2"] || (func_enabled[ "WEB_RESUSE"] && frontend)) {
|
||||
//
|
||||
// Determine if user has write authorization for ALG and PRS level...
|
||||
// JGL:-->Wordt dit niet ook al gedaan door de include van autlevel.inc??
|
||||
@@ -83,11 +86,9 @@ if( func_enabled[ "WEB_RESFOF"] || func_enabled[ "WEB_RESFO2"] || (func_enabled[
|
||||
} else {
|
||||
readwrite = 2;
|
||||
}
|
||||
}
|
||||
|
||||
__Log('readwrite : '+readwrite);
|
||||
|
||||
if (readwrite > 0) { // we need read authorization at least...
|
||||
|
||||
var showall = getQParam("showall", "0")=="1";
|
||||
|
||||
@@ -108,10 +109,10 @@ var nr_days = 1+(date_to.midnight() - date_from.midnight())/24/60/60/1000;
|
||||
var nr_hours = nr_days*(res_t2-res_t1);
|
||||
var targethour_px = (width_px-250)/nr_hours;
|
||||
var hour_px = 48;
|
||||
//if (targethour_px < 48) hour_px = 24;
|
||||
//if (targethour_px < 24) hour_px = 16;
|
||||
//if (targethour_px < 16) hour_px = 8;
|
||||
//if (targethour_px < 8) hour_px = 4;
|
||||
if (targethour_px < 48) hour_px = 24;
|
||||
if (targethour_px < 24) hour_px = 16;
|
||||
if (targethour_px < 16) hour_px = 8;
|
||||
if (targethour_px < 8) hour_px = 4;
|
||||
|
||||
if ( l_exel == 1) {
|
||||
Response.ContentType = "application/vnd.ms-excel";
|
||||
@@ -165,7 +166,7 @@ if (l_print_table == 1 || l_exel == 1) {
|
||||
parseInt(elm.css('borderLeftWidth')))/<%=hour_px%>;
|
||||
var duur = (elm.width()-1)/<%=hour_px%>;
|
||||
start += <%=res_t1%>;
|
||||
$.post("res_update.asp",
|
||||
$.post("res_update_room.asp",
|
||||
{ rsv_ruimte_key: elm[0].rsv_key,
|
||||
rsv_van: start,
|
||||
rsv_tot: (start+duur)
|
||||
@@ -183,7 +184,7 @@ if (l_print_table == 1 || l_exel == 1) {
|
||||
//this.parentElement.parentElement.style.height = 48;
|
||||
});
|
||||
|
||||
FcltMgr.setHeaderExtraTitle($("#palette").html());
|
||||
//FcltMgr.setHeaderExtraTitle($("#palette").html());
|
||||
});
|
||||
function res_print()
|
||||
{
|
||||
@@ -222,7 +223,7 @@ IFRAMER_HEADER(lcl_res_frame_voorziening, buttons);
|
||||
<div id="list">
|
||||
<%
|
||||
}
|
||||
CreateRoomScheduleMulti({id:"tab_room_sched",
|
||||
make_plan_room({id:"tab_room_sched",
|
||||
res_van: date_from,
|
||||
res_tot:date_to,
|
||||
readwrite:readwrite,
|
||||
@@ -230,10 +231,7 @@ IFRAMER_HEADER(lcl_res_frame_voorziening, buttons);
|
||||
res_ruimte_key: res_ruimte_key, vis: vis, autfunction:autfunction,
|
||||
showall: showall, host: host,
|
||||
hour_px: hour_px });
|
||||
} else { %>
|
||||
<body>
|
||||
<p><%=lcl_no_auth%></p>
|
||||
<% } %>
|
||||
%>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -11,18 +11,17 @@
|
||||
Context: Met knop uit res_edit_rsv_ruimte.asp
|
||||
Note:
|
||||
*/ %>
|
||||
<% Response.Expires = -1; %>
|
||||
|
||||
<!--#include file="../../cust/install.inc"-->
|
||||
<!--#include file="../res/res.inc"-->
|
||||
|
||||
<!--#include file="../Shared/escape.inc"-->
|
||||
<!--#include file="../Shared/date_sql.inc" -->
|
||||
<!-- #include file="room_schedule.inc" -->
|
||||
<!--#include file="../Shared/datetime.inc" -->
|
||||
<!-- #include file="res_plan_room.inc" -->
|
||||
|
||||
<%
|
||||
FCLTHeader.Requires({plugins: ["jQuery"],
|
||||
js: ["FcltMgr.js"]})
|
||||
FCLTHeader.Requires({plugins: ["jQuery"]})
|
||||
|
||||
// Required parameters
|
||||
var urole = getQParam("urole");
|
||||
@@ -34,24 +33,37 @@ var res_ruimte_key = getQParamInt("res_ruimte_key", -1); // Filter default verga
|
||||
|
||||
var date_from = getQParamDate("date_from");
|
||||
//var restype = getQParam("restype", "R");
|
||||
ruimtecat = getQParam("s_ruimtecat", -1);
|
||||
opstel = getQParam("opstel", -1);
|
||||
vis = getQParam("vis", null);
|
||||
var ruimtecat = getQParam("s_ruimtecat", -1);
|
||||
var opstel = getQParam("opstel", -1);
|
||||
var vis = getQParam("vis", null);
|
||||
|
||||
var ora_date1 = date_from.toSQL(true);
|
||||
var ora_date2 = date_from.endToSQL(true);
|
||||
var autfunction = urole=="fe"?"WEB_RESUSE":"WEB_RESFOF";
|
||||
|
||||
hour_px=48; // TODO altijd vast?, toch maar <20><>n dag?
|
||||
%>
|
||||
<html>
|
||||
<head>
|
||||
<% FCLTHeader.Generate() %>
|
||||
<style>
|
||||
table.planbord div.sizer { width:<%=hour_px*(res_t2-res_t1)-1%>px;};
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<%
|
||||
CreateRoomScheduleMulti({id:"tab_room_sched", date1: date_from,date2:date_from,readwrite:3 /*TODO*/,
|
||||
loc:locatie_key, bld:-1, opstel:opstel, ruimtecat:ruimtecat,
|
||||
res_ruimte_key: res_ruimte_key, vis: vis, activiteit_key: activiteit_key,
|
||||
showall: true, autfunction:autfunction});
|
||||
make_plan_room({id:"tab_room_sched",
|
||||
res_van: date_from,
|
||||
res_tot:date_from,
|
||||
readwrite:3 /*TODO*/,
|
||||
loc:locatie_key, bld:-1,
|
||||
opstel:opstel,
|
||||
ruimtecat:ruimtecat,
|
||||
res_ruimte_key: res_ruimte_key,
|
||||
rsv_ruimte_key: rsv_ruimte_key,
|
||||
vis: vis,
|
||||
activiteit_key: activiteit_key,
|
||||
showall: true,
|
||||
autfunction:autfunction,
|
||||
hour_px: hour_px });
|
||||
%>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,7 +1,7 @@
|
||||
<%@ language = "JavaScript" %>
|
||||
<% /*
|
||||
$Revision: 1 $
|
||||
$Modtime: 29-09-09 0:10 $
|
||||
$Revision: 2 $
|
||||
$Modtime: 2-11-09 13:03 $
|
||||
|
||||
File: res_show_objcat.asp (oude rsv_voorziening_view.inc)
|
||||
Status: 90%
|
||||
@@ -19,13 +19,13 @@
|
||||
|
||||
*/
|
||||
%>
|
||||
<% Response.Expires = -1;%>
|
||||
<!--#include file="../../cust/install.inc"-->
|
||||
<!--#include file="../Shared/iface.inc"-->
|
||||
<!--#include file="../Shared/resultset_table_v2.inc" -->
|
||||
<!--#include file="./res.inc"-->
|
||||
<%
|
||||
FCLTHeader.Requires({js: ["FCLTMgr.js"]});
|
||||
FCLTHeader.Requires({js: []});
|
||||
|
||||
var urole = getQParam("urole");
|
||||
var rsv_ruimte_key = getQParam("rsv_ruimte_key");
|
||||
var resdeleted = getQParam("showdelete", false);
|
||||
@@ -79,11 +79,20 @@ if ( rsv_ruimte_key > 0 ) {
|
||||
return "<span class='outofbounds'>" + toTimeString(new Date(oRs("res_rsv_artikel_levering").value)) + "</span>";
|
||||
}
|
||||
|
||||
function fnRowClass(oRs)
|
||||
{
|
||||
if (oRs("res_rsv_deel_dirtlevel").Value & (res.dirtlevel.deel.notavailable | res.dirtlevel.deel.notallowed))
|
||||
return "res_fatal";
|
||||
else
|
||||
return "xx";
|
||||
}
|
||||
|
||||
var sql = "SELECT id.ins_deel_omschrijving"
|
||||
+ ", rd.res_rsv_deel_key"
|
||||
+ ", rd.res_rsv_deel_aantal"
|
||||
+ ", rd.res_rsv_deel_van"
|
||||
+ ", rd.res_rsv_deel_tot"
|
||||
+ ", rd.res_rsv_deel_dirtlevel"
|
||||
+ ", rd.res_rsv_deel_verwijder ddVerwijder,"
|
||||
+ " CASE "
|
||||
+ " WHEN (rd.res_rsv_deel_van BETWEEN res_rsv_ruimte_van "
|
||||
@@ -115,6 +124,7 @@ if ( rsv_ruimte_key > 0 ) {
|
||||
keyColumn: "res_rsv_deel_key",
|
||||
ID: "resvtable"+(embedded?"tiny":""),
|
||||
noPrint:true,
|
||||
rowClass: fnRowClass,
|
||||
summaryShow: function () {},
|
||||
emptySetString : lcl_no_objects,
|
||||
title: lcl_res_frame_voorziening,
|
||||
|
||||
@@ -11,27 +11,20 @@
|
||||
Note:
|
||||
*/
|
||||
%>
|
||||
<% Response.Expires = -1; %>
|
||||
|
||||
<!--#include file="../../cust/install.inc"-->
|
||||
<!--#include file="../res/res.inc"-->
|
||||
<!-- #include file="res_flexkenmerk.inc" -->
|
||||
|
||||
<!--#include file="../Shared/escape.inc"-->
|
||||
<!--#include file="../Shared/loader.inc"-->
|
||||
<!--#include file="../Shared/CommonDialogs.inc"-->
|
||||
<!--#include file="../Shared/iface.inc"-->
|
||||
<!--#include file="../Shared/my_place.inc" -->
|
||||
<!--#include file="../Shared/datetime.inc"-->
|
||||
<!--#include file="../Shared/calendar.inc"-->
|
||||
<!--#include file="../Shared/date_sql.inc"-->
|
||||
<!--#include file="../Shared/selector.inc"-->
|
||||
<!--#include file="../Shared/plaatsselector.inc"-->
|
||||
<!--#include file="../Shared/persoonselector.inc" -->
|
||||
<!--#include file="../Shared/kostenplaatsselector.inc" -->
|
||||
<!-- #include file="../Shared/json2.js" -->
|
||||
<%
|
||||
FCLTHeader.Requires({plugins: ["jQuery", "datepicker"],
|
||||
js: ["expand_frame.js", "date.js"]})
|
||||
FCLTHeader.Requires({plugins: ["jQuery"]})
|
||||
%>
|
||||
|
||||
<html>
|
||||
@@ -40,35 +33,15 @@
|
||||
<%
|
||||
// Required parameters
|
||||
var urole = getQParam("urole");
|
||||
var rsv_ruimte_key = getQParam("rsv_ruimte_key",-1);
|
||||
var embedded = getQParam("embedded","0")=="1";
|
||||
var rsv_ruimte_key = getQParamInt("rsv_ruimte_key");
|
||||
|
||||
// Optional parameters
|
||||
if (rsv_ruimte_key==-1)
|
||||
var restype = getQParam("restype", "R");
|
||||
var this_res = res.func_enabled(rsv_ruimte_key); // Wat heb ik zoal aan rechten op deze specifieke reservering
|
||||
user.auth_required_or_abort(this_res.canReadAny);
|
||||
|
||||
var autfunction = {fo: "WEB_RESFOF", bo: "WEB_RESBOF", fe: "WEB_RESUSE"}[urole];
|
||||
|
||||
var fronto = urole=="fo"; // DEPRECATED
|
||||
var backo = urole=="bo";
|
||||
var rbu = Request.QueryString("rbu").Count>0;
|
||||
var reado = Request.QueryString("reado").Count>0;
|
||||
var statusinfo = Request.QueryString("statusinfo").Count>0;
|
||||
var reminder = Request.QueryString("reminder").Count>0;
|
||||
var kostenplaats_key = Request.QueryString("account").Count>0;
|
||||
var bezoeker = "";
|
||||
var searchstring = "";
|
||||
gast_login_key = -1; // Heeft iets met PACTA te maken?
|
||||
var portal_alg_ruimte_key = -1;
|
||||
|
||||
if (statusinfo) reado = true;
|
||||
|
||||
if (Request.QueryString("next_rsv_ruimte_key").Count > 0)
|
||||
rsv_ruimte_key = parseInt( Request.QueryString("next_rsv_ruimte_key"), 10 );
|
||||
|
||||
// TODO: Dit waren globals. Wat nu?
|
||||
serie=false; // TODO: Hoe te doen?
|
||||
var reado_reservering=false;
|
||||
var portal_alg_ruimte_key = -1;
|
||||
// end TODO
|
||||
|
||||
// rrr is een belangrijke globale: hij bevat 'allerlei' info uit het res_rsv_ruimte record
|
||||
// en eventueel wat daar 1-op-1 uit afgeleid kan worden
|
||||
@@ -97,6 +70,7 @@ var portal_alg_ruimte_key = -1;
|
||||
+ " rr.RES_RESERVERING_USER_KEY,"
|
||||
+ " rrr.RES_RSV_RUIMTE_CONTACT_KEY,"
|
||||
+ " rrr.RES_RSV_RUIMTE_HOST_KEY,"
|
||||
+ prs_pers_string + " res_user_naam,"
|
||||
+ " rrr.RES_RSV_RUIMTE_OMSCHRIJVING,"
|
||||
+ " rrr.RES_RSV_RUIMTE_ORDERNR,"
|
||||
+ " rrr.res_status_fo_key,"
|
||||
@@ -110,9 +84,11 @@ var portal_alg_ruimte_key = -1;
|
||||
+ " from res_rsv_ruimte rrr, "
|
||||
+ " res_activiteit ra, "
|
||||
+ " res_reservering rr,"
|
||||
+ " PRS_KOSTENPLAATS kp"
|
||||
+ " PRS_KOSTENPLAATS kp,"
|
||||
+ " prs_perslid p"
|
||||
+ " where res_rsv_ruimte_key = " + rsv_ruimte_key
|
||||
+ " and rrr.res_reservering_key = rr.res_reservering_key"
|
||||
+ " AND p.prs_perslid_key = rr.RES_RESERVERING_USER_KEY"
|
||||
+ " and rrr.res_activiteit_key = ra.res_activiteit_key"
|
||||
+ " AND rrr.PRS_KOSTENPLAATS_KEY = kp.PRS_KOSTENPLAATS_KEY(+)";
|
||||
|
||||
@@ -121,9 +97,9 @@ var portal_alg_ruimte_key = -1;
|
||||
var rrr = { rsv_ruimte_key : rsv_ruimte_key,
|
||||
reservering_key : oRs("res_reservering_key").value,
|
||||
rsv_ruimte_verwijder: oRs("res_rsv_ruimte_verwijder").value,
|
||||
verwijder_user: oRs("verwijder_user").value,
|
||||
verwijder_user : oRs("verwijder_user").value,
|
||||
status_fo_key : oRs("res_status_fo_key").value,
|
||||
status_bo_key : oRs("res_status_bo_key").value||2, // default 2, ingevoerd
|
||||
status_bo_key : oRs("res_status_bo_key").value, // default 2, ingevoerd. TODO: bij CV is deze NULL
|
||||
activiteit_key : oRs("res_activiteit_key").value,
|
||||
rsv_ruimte_van : new Date(oRs("res_rsv_ruimte_van").value),
|
||||
rsv_ruimte_tot : new Date(oRs("res_rsv_ruimte_tot").value),
|
||||
@@ -138,13 +114,15 @@ var portal_alg_ruimte_key = -1;
|
||||
// TODO: variabele namen volgens conventie
|
||||
contact_key : oRs("RES_RSV_RUIMTE_CONTACT_KEY").Value,
|
||||
host_key : oRs("RES_RSV_RUIMTE_HOST_KEY").Value,
|
||||
resusertxt : oRs("RES_USER_NAAM").Value,
|
||||
// TODO en defaults maken
|
||||
rsv_ruimte_opmerking : oRs("RES_RSV_RUIMTE_OPMERKING").Value,
|
||||
res_user_key : oRs("RES_RESERVERING_USER_KEY").Value,
|
||||
descript : oRs("RES_RSV_RUIMTE_OMSCHRIJVING").Value,
|
||||
res_ordernr : oRs("RES_RSV_RUIMTE_ORDERNR").Value,
|
||||
kosten_klant : oRs("RES_RSV_RUIMTE_KOSTEN_KLANT").Value == 1,
|
||||
kostenplaats_key : oRs("PRS_KOSTENPLAATS_KEY").Value
|
||||
kostenplaats_key : oRs("PRS_KOSTENPLAATS_KEY").Value,
|
||||
resnrtxt : String(oRs("res_reservering_key").value) + "/"+ oRs("res_rsv_ruimte_volgnr").value
|
||||
}
|
||||
|
||||
// Afgeleide informatie
|
||||
@@ -155,8 +133,6 @@ var portal_alg_ruimte_key = -1;
|
||||
case 1: restype = "CV"
|
||||
}
|
||||
|
||||
resdeleted = (rrr.rsv_ruimte_verwijder != null);
|
||||
|
||||
if (restype == "R") // zal rrr.ruimte_opstel_key gevuld zijn
|
||||
{
|
||||
|
||||
@@ -173,64 +149,18 @@ if (restype == "R") // zal rrr.ruimte_opstel_key gevuld zijn
|
||||
rrr.alg_locatie_key = oRs("alg_locatie_key").value;
|
||||
oRs.close();
|
||||
|
||||
var dVan = rrr.rsv_ruimte_van;
|
||||
var dTot = rrr.rsv_ruimte_tot;
|
||||
res_date = dVan.getDate();
|
||||
res_month = dVan.getMonth()+1;
|
||||
res_year = dVan.getFullYear();
|
||||
res_hour1 = dVan.getHours();
|
||||
res_min1 = dVan.getMinutes();
|
||||
res_hour2 = dTot.getHours();
|
||||
res_min2 = dTot.getMinutes();
|
||||
|
||||
if (rrr.rsv_ruimte_verwijder != null) {
|
||||
reado_rsv_ruimte = reado_reservering = true;
|
||||
}
|
||||
|
||||
|
||||
pastt0 = (rrr.res_ruimte_van <= res.tNow());
|
||||
pasttexpire = (rrr.res_ruimte_van <= res.tExpire()); // FE: reservation is readonly
|
||||
pasttcancel = (rrr.res_ruimte_van <= res.tCancel()); // FE: no longer show button 'Cancel/Delete'
|
||||
pasttconfirm = (rrr.res_ruimte_van <= res.tConfirm()); // FE: show button 'Make final'
|
||||
|
||||
// Could we have entered this reservation ourselves?
|
||||
if (!reado_rsv_ruimte)
|
||||
{
|
||||
sql = "SELECT r.res_ruimte_key"
|
||||
+ " FROM res_v_res_ruimte_gegevens r "
|
||||
+ " WHERE r.res_discipline_key IN ("
|
||||
+ " SELECT ins_discipline_key"
|
||||
+ " FROM fac_v_webgebruiker g, fac_functie f"
|
||||
+ " WHERE g.fac_functie_key = f.fac_functie_key"
|
||||
+ " AND g.prs_perslid_key = " + user_key
|
||||
+ " AND g.fac_gebruiker_prs_level_write <9"
|
||||
+ " AND g.fac_gebruiker_alg_level_write <9"
|
||||
+ " AND f.fac_functie_code = '" + autfunction + "')"
|
||||
+ " AND res_ruimte_key = " + rsv_ruimte_key ;
|
||||
|
||||
oRs = Oracle.Execute( sql);
|
||||
if (oRs.eof)
|
||||
{
|
||||
reado_rsv_ruimte = true;
|
||||
readoReason = lcl_res_notroom
|
||||
}
|
||||
oRs.Close();
|
||||
}
|
||||
|
||||
if (res_fe_edit_option_only==1 // Setting: Alleen opties mogen bewerkt
|
||||
&&!reado_rsv_ruimte && !fronto && !backo && rrr.status_fo_key!=1)
|
||||
{
|
||||
reado_rsv_ruimte = true;
|
||||
if ( fronto ) {
|
||||
readoReason = lcl_res_fe_edit_option_only;
|
||||
} else {
|
||||
readoReason = lcl_res_fo_edit_option_only;
|
||||
}
|
||||
}
|
||||
|
||||
} else { // CV
|
||||
// Voor CV geldt de rsv_ruimte bo-status niet en nemen we de max van de onderdelen
|
||||
|
||||
rrr.status_bo_key = 2; // ingevoerd? TODO: was max_bo_key; // Voor CV geldt de rsv_ruimte bo-status niet
|
||||
if (this_res.max_bo)
|
||||
rrr.status_bo_key = this_res.max_bo;
|
||||
else
|
||||
rrr.status_bo_key = -1; // Geen enkele catering/voorziening over of nog geen enkele aangemaakt
|
||||
|
||||
sql = "SELECT rg.alg_ruimte_aanduiding,"
|
||||
+ " rg.alg_locatie_key,"
|
||||
@@ -238,7 +168,7 @@ if (restype == "R") // zal rrr.ruimte_opstel_key gevuld zijn
|
||||
+ " rg.alg_verdieping_key,"
|
||||
+ " rg.alg_ruimte_key"
|
||||
+ " FROM alg_v_ruimte_gegevens rg"
|
||||
+ " WHERE rg.alg_ruimte_key = " + rrr.alg_ruimte_key
|
||||
+ " WHERE rg.alg_ruimte_key = " + rrr.alg_ruimte_key
|
||||
|
||||
oRs = Oracle.Execute(sql);
|
||||
|
||||
@@ -248,34 +178,8 @@ if (restype == "R") // zal rrr.ruimte_opstel_key gevuld zijn
|
||||
rrr.alg_ruimte_key = oRs("alg_ruimte_key").Value;
|
||||
}
|
||||
|
||||
// Kijk of FE een vervanger is
|
||||
sql_collegas = "SELECT prs_perslid_key"
|
||||
+ " FROM prs_collega"
|
||||
+ " WHERE prs_perslid_key_alt = " + user_key;
|
||||
oRs2 = Oracle.Execute(sql_collegas);
|
||||
userIsCollega = false;
|
||||
while (!oRs2.eof) {
|
||||
if (oRs2(0).value == rrr.res_user_key)
|
||||
userIsCollega = true;
|
||||
oRs2.moveNext();
|
||||
}
|
||||
oRs2.close();
|
||||
|
||||
// Not added by Front End user-->Reado
|
||||
if (urole=='fe' && rrr.res_user_key != user_key && !userIsCollega)
|
||||
{
|
||||
reado_reservering = true;
|
||||
readoReason = lcl_res_notself
|
||||
}
|
||||
}
|
||||
|
||||
if (urole=="fo")
|
||||
var autfunction = "WEB_RESFOF";
|
||||
else if (urole=="bo")
|
||||
var autfunction = "WEB_RESBOF";
|
||||
else // fe
|
||||
var autfunction = "WEB_RESUSE";
|
||||
|
||||
var authparams = user.checkAutorisation(autfunction);
|
||||
%>
|
||||
|
||||
@@ -288,12 +192,19 @@ else // fe
|
||||
function res_change()
|
||||
{
|
||||
if (FcltMgr.startEdit(window))
|
||||
window.location.href = "res_edit_rsv_ruimte.asp?urole=<%=urole%>&rsv_ruimte_key=<%=rsv_ruimte_key%>&embedded=1"
|
||||
window.location.href = "res_edit_rsv_ruimte.asp?urole=<%=urole%>&rsv_ruimte_key=<%=rsv_ruimte_key%>"
|
||||
}
|
||||
|
||||
function res_delete()
|
||||
{
|
||||
if (confirm("<%=lcl_res_del_txt_current%>"))
|
||||
$.post("res_delete.asp?rsv_ruimte_key=<%=rsv_ruimte_key%>", {}, FcltCallback, "json");
|
||||
}
|
||||
|
||||
function res_print()
|
||||
{
|
||||
window.open('../res/res_xml.asp?res_key=<%=rrr.reservering_key%>&print_rsv_ruimte_key=<%=rsv_ruimte_key%>').focus();
|
||||
//window.print(); //TODO
|
||||
}
|
||||
function res_mail()
|
||||
{
|
||||
@@ -305,8 +216,8 @@ else // fe
|
||||
oRs = Oracle.Execute( sql);
|
||||
defemail_key = oRs("res_rsv_ruimte_contact_key").value;
|
||||
%>
|
||||
var subject = "&subject=" + escape("<%=lcl_reservation + ' ' + rrr.reservering_key%>");
|
||||
var url="../shared/queuemail.asp?pcode=RESMAI&defemail_key=<%=defemail_key%>&key=<%=rrr.reservering_key%>" + escape(subject);
|
||||
var subject = "<%=lcl_reservation + ' ' + rrr.reservering_key%>";
|
||||
var url="../shared/queuemail.asp?pcode=RESMAI&defemail_key=<%=defemail_key%>&key=<%=rrr.reservering_key%>&subject=" + escape(subject);
|
||||
FcltMgr.openModalDetail(url, subject);
|
||||
}
|
||||
|
||||
@@ -314,85 +225,32 @@ else // fe
|
||||
|
||||
</head>
|
||||
|
||||
<body id="showbody" onLoad="processLoadSequence();">
|
||||
<body id="showbody">
|
||||
<%
|
||||
// TODO: juiste condities toevoegen,
|
||||
var buttons = [ {title: lcl_change, icon: "wijzigen.png", action:"res_change()", id:"bchange_res_rsv_ruimte" }
|
||||
];
|
||||
buttons.push({ icon: "print.png", title: lcl_print, action: 'res_print()' });
|
||||
buttons.push({ icon: "email.png", title: lcl_noti_res_email, action: 'res_mail()' });
|
||||
var buttons = [];
|
||||
if (rrr.rsv_ruimte_verwijder==null) // Daar mag je niets mee
|
||||
{
|
||||
if (this_res.canChange)
|
||||
buttons.push( {title: lcl_change, icon: "wijzigen.png", action:"res_change()"});
|
||||
if (this_res.canDelete)
|
||||
buttons.push( {title: lcl_delete, icon: "delete.png", action:"res_delete()"});
|
||||
|
||||
buttons.push({ icon: "print.png", title: lcl_print, action: 'res_print()' });
|
||||
buttons.push({ icon: "email.png", title: lcl_noti_res_email, action: 'res_mail()' });
|
||||
}
|
||||
|
||||
//if (rsv_ruimte_key>0)
|
||||
// buttons.push({title: lcl_delete, action:"alert('Deze deelreservering verwijderen')" });
|
||||
IFRAMER_HEADER(lcl_res_frame_algemeen, buttons);
|
||||
%><div id="show"><%
|
||||
if (rrr.rsv_ruimte_dirtlevel & res.dirtlevel.ruimte.notavailable)
|
||||
{
|
||||
%><div class="fatal">TODO_lcl_Pas op: de ruimte is niet beschikbaar. Kies een andere zaal!</div><%
|
||||
%><div class="fatal"><%=lcl_res_dirtyroom%></div><%
|
||||
}
|
||||
|
||||
var reado_reservering = false;
|
||||
var partres_reado = false;
|
||||
if (authparams.PRSwritelevel==9 || authparams.ALGwritelevel==9|| reado) { // Very limited frontend user
|
||||
reado_reservering = true ;
|
||||
}
|
||||
|
||||
__Log('reado_reservering = ' + reado_reservering);
|
||||
var readoReason = "" // No need to explain this yet to enduser
|
||||
var reado_rsv_ruimte = false; // || statusinfo; Wordt later meegenomen via reado_reservering
|
||||
%>
|
||||
|
||||
<script type="text/javascript">
|
||||
function res_edit_deelLoaded()
|
||||
{
|
||||
|
||||
<%if (urole=="fe") { // frontend %>
|
||||
var frm = window.document.all.item("u2");
|
||||
if (frm.ordernr) {
|
||||
<% if (show_ordernr==2) { %>
|
||||
frm.ordernr.disabled = true;
|
||||
frm.ordernr.className='disabled';
|
||||
<% } %>
|
||||
}
|
||||
<%} else {%>
|
||||
var frm = window.document.all.item("u2");
|
||||
prop = window.document.all.item("costclient");
|
||||
if (prop) {
|
||||
if (prop.checked){
|
||||
<% if (show_ordernr==2) { %>
|
||||
frm.ordernr.disabled = true;
|
||||
frm.ordernr.className='disabled';
|
||||
<% } %>
|
||||
}
|
||||
else {
|
||||
<% if (show_ordernr==1) { %>
|
||||
frm.ordernr.disabled = true;
|
||||
frm.ordernr.className='disabled';
|
||||
<% } %>
|
||||
}
|
||||
}
|
||||
<%} %>
|
||||
|
||||
// === Oude reserv_Loaded() ===
|
||||
|
||||
}
|
||||
appendLoadSequence(res_edit_deelLoaded);
|
||||
</script>
|
||||
|
||||
<!-- Form -->
|
||||
<form name="u2" action="res_edit_rsv_ruimte.asp?submit=1&urole=<%=urole%>&rsv_ruimte_key=<%=rsv_ruimte_key%>" method="post">
|
||||
<form name="u2">
|
||||
<%
|
||||
// ==========
|
||||
// ========== Next follows information for the room to make a reservation for
|
||||
// ==========
|
||||
%>
|
||||
|
||||
<script type="text/javascript">
|
||||
sel_room = {RoomConfigs: []}; // Hierin houden we clientside informatie over onze gekozen ruimte bij
|
||||
</script>
|
||||
<%
|
||||
reado_rsv_ruimte = true;
|
||||
|
||||
if (fronto) rrr.status_fo_key = res_default_fo_status_key;
|
||||
|
||||
{ // restype = "CV"
|
||||
@@ -404,13 +262,15 @@ appendLoadSequence(res_edit_deelLoaded);
|
||||
dVan = rrr.rsv_ruimte_van;
|
||||
dTot = rrr.rsv_ruimte_tot;
|
||||
|
||||
partres_reado = true;
|
||||
|
||||
} // restype = "CV"
|
||||
|
||||
%>
|
||||
<script type="text/javascript">
|
||||
|
||||
|
||||
// TODO: Moet het volgende ook weer werken en in het bijzonder ook voor CV?
|
||||
<% pasttconfirm=false; // dan maar even %>
|
||||
|
||||
// When front end user presses 'Confirm' button
|
||||
function ConfirmRes(fronto)
|
||||
{
|
||||
@@ -425,199 +285,87 @@ function ConfirmRes(fronto)
|
||||
return;
|
||||
|
||||
/// SetFOStatus(2); // Definitief, beetje overbodig PF: zeker in showvariant
|
||||
// TODO: Via ajax?
|
||||
document.all.hidFrame.src = "../res/confirm.asp?rsv_ruimte_key=<%=rsv_ruimte_key%>"
|
||||
<% } %>
|
||||
}
|
||||
|
||||
function obsolete_SetFOStatus(newStat)
|
||||
{
|
||||
for (i=0; i< document.u2.status_fo.options.length; i++)
|
||||
{
|
||||
if (document.u2.status_fo.options[i].value==newStat)
|
||||
document.u2.status_fo.selectedIndex = i;
|
||||
}
|
||||
document.u2.ostatus_fo.value = newStat;
|
||||
|
||||
}
|
||||
|
||||
// Room choice has changed
|
||||
// Show different little schedule and update room description/picture
|
||||
/* params
|
||||
res_ruimte_key: res_ruimte_key
|
||||
res_ruimte_oms: ruimte omschrijving
|
||||
def_conf: default configuratie key
|
||||
unchange_minmax ??
|
||||
*/
|
||||
|
||||
<% if (restype == "R") { %>
|
||||
// Process de data die van de Ajax terugkomt.
|
||||
function process_res_ruimte_info(data)
|
||||
{
|
||||
sel_room.RoomConfigs = data.RoomConfigs;
|
||||
sel_room.res_ruimte_key = data.res_ruimte_key;
|
||||
sel_room.aantalreq = data.aantalreq;
|
||||
sel_room.kosten = data.kosten;
|
||||
sel_room.kpnverplicht = data.kpnverplicht;
|
||||
sel_room.starttime_room = data.begintijd;
|
||||
sel_room.endtime_room = data.endtijd;
|
||||
|
||||
for( i=0; i<sel_room.RoomConfigs.length; i++ )
|
||||
{
|
||||
if (sel_room.RoomConfigs[i].ruimte_opstel_key == <%=rrr.ruimte_opstel_key%>)
|
||||
$("#ruimte_opstel").val(sel_room.RoomConfigs[i].opstelling_omschrijving + " (" + sel_room.RoomConfigs[i].bezoekers + " pers)");
|
||||
}
|
||||
|
||||
$("#sel_room").val(data.ruimte_nr);
|
||||
};
|
||||
<% } %>
|
||||
|
||||
// PAS OP: ook aangeroepen bij sluiten van planbord popup!
|
||||
function SelRoomChanged(params)
|
||||
{
|
||||
if (params.res_ruimte_key)
|
||||
{
|
||||
sel_room.res_ruimte_key = params.res_ruimte_key;
|
||||
$.getJSON("get_res_info_ajax.asp?req_info=res_ruimte&res_ruimte_key=" + sel_room.res_ruimte_key,process_res_ruimte_info);
|
||||
|
||||
$("#res_ruimte_key").val(sel_room.res_ruimte_key);
|
||||
}
|
||||
|
||||
if (window.parent.RoomPhotoFrame)
|
||||
window.parent.RoomPhotoFrame.navigate("../res/photo.asp?room=" +
|
||||
sel_room.res_ruimte_key);
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<!-- Form fields -->
|
||||
<%
|
||||
// PF: dit blok includen omdat deze voor zowel SHOW als EDIT identiek zijn?
|
||||
BLOCK_START("resInfo", lcl_res_admingegevens);
|
||||
var resnrtxt = lcl_new;
|
||||
var resusertxt = user.naam();
|
||||
if (rrr.reservering_key>0)
|
||||
{
|
||||
resnrtxt = String(rrr.reservering_key) + "/"+ rrr.rsv_ruimte_volgnr;
|
||||
sql = "select prs_perslid_naam_full"
|
||||
+ " from prs_v_perslid_fullnames_all WHERE prs_perslid_key = " + rrr.res_user_key;
|
||||
// PF: TODO dit blok includen omdat deze voor zowel SHOW als EDIT identiek zijn?
|
||||
BLOCK_START("resInfo", lcl_reservation + " " + rrr.resnrtxt);
|
||||
|
||||
if (this_res.readoReason) {
|
||||
%><tr><td colspan="2"><%=this_res.readoReason%></td></tr><%
|
||||
}
|
||||
|
||||
if (rrr.rsv_ruimte_verwijder!=null) {
|
||||
ROFIELDTR("fld", lcl_deleted, toDateString(rrr.rsv_ruimte_verwijder, true) + " ("+rrr.verwijder_user+")")
|
||||
}
|
||||
sql = "SELECT res_status_bo_omschrijving"
|
||||
+ " FROM res_status_bo WHERE res_status_bo_key = " + rrr.status_bo_key;
|
||||
oRs = Oracle.Execute(sql)
|
||||
resusertxt = oRs("prs_perslid_naam_full");
|
||||
}
|
||||
if (!oRs.eof) {
|
||||
ROFIELDTR("fldresstatus", lcl_status_BO, oRs("res_status_bo_omschrijving").value,
|
||||
{ infoPointer: { Url: "appl/shared/status_info.asp?rsv_ruimte_key="+rsv_ruimte_key,
|
||||
Title: lcl_status_details + " " + rsv_ruimte_key
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
ROFIELDTR("fldresnum", lcl_reservation, resnrtxt);
|
||||
%>
|
||||
<tr><td class="label"><label><%=lcl_status_BO %>:</label></td>
|
||||
<%
|
||||
sql = "select RES_STATUS_BO_OMSCHRIJVING"
|
||||
+ " from res_status_bo WHERE res_status_bo_key = " + rrr.status_bo_key;
|
||||
oRs = Oracle.Execute(sql)
|
||||
%>
|
||||
<td><input class="fldresstatus" type="text" readonly value="<%=oRs("RES_STATUS_BO_OMSCHRIJVING")%>" />
|
||||
|
||||
<% InfoPointer("appl/shared/status_info.asp?rsv_ruimte_key="+rsv_ruimte_key, lcl_status_details + " " + rsv_ruimte_key); %>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="label"><label><%=lcl_res_inf_inputter%>:</label></td>
|
||||
<td><input class="fldpers" name="createuser" readonly value="<%=resusertxt%>" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="label"><label><%=lcl_res_inf_input_on%>:</label></td>
|
||||
<td><input class="flddatetime" name="createdate" readonly value="<%=toDateTimeString(rrr.reservering_aanmaak)%>" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="label"><label><%=lcl_res_inf_changed_on%>:</label></td>
|
||||
<td><input class="flddatetime" name="changedate" readonly value="<%=toDateTimeString(rrr.rsv_ruimte_mutatie)%>" /></td>
|
||||
</tr>
|
||||
|
||||
<tr><td colspan="2">
|
||||
<%=serie?"":reado_rsv_ruimte?readoReason:pastt0?lcl_res_warnlate:pasttexpire&&!backo?lcl_res_warnBO:""%>
|
||||
</td></tr>
|
||||
<%
|
||||
ROFIELDTR("fldpers",lcl_res_inf_inputter, rrr.resusertxt);
|
||||
ROFIELDTR("flddatetime",lcl_res_inf_input_on, toDateTimeString(rrr.reservering_aanmaak));
|
||||
ROFIELDTR("flddatetime",lcl_res_inf_changed_on, toDateTimeString(rrr.rsv_ruimte_mutatie));
|
||||
BLOCK_END();
|
||||
|
||||
if (restype == "CV")
|
||||
{
|
||||
%>
|
||||
BLOCK_START("resPlaats" , lcl_res_plaats);
|
||||
|
||||
<script type="text/javascript">
|
||||
var reado_reservering = <%=reado_reservering?1:0%>;
|
||||
|
||||
</script>
|
||||
|
||||
<tr><td colspan="2">
|
||||
<%=reado_rsv_ruimte?readoReason:pastt0?lcl_res_warnlate:pasttexpire&&!backo?lcl_res_warnBO:""%>
|
||||
</td></tr>
|
||||
<%
|
||||
}
|
||||
%>
|
||||
|
||||
<% BLOCK_START("resPlaats" , lcl_res_plaats); %>
|
||||
|
||||
<% if (rrr.rsv_ruimte_verwijder) { %>
|
||||
<tr>
|
||||
<td class="label"><label><%=lcl_deleted%>:</label></td>
|
||||
<td><%=toDateString(rrr.rsv_ruimte_verwijder, true)%> <label>door</label> <%=rrr.verwijder_user%></td>
|
||||
</tr>
|
||||
<% }
|
||||
ROFIELDTR("fld", lcl_from, toDateTimeString(rrr.rsv_ruimte_van));
|
||||
ROFIELDTR("fld", lcl_from, toDateTimeString(rrr.rsv_ruimte_van));
|
||||
|
||||
var sql = "SELECT a.res_activiteit_omschrijving"
|
||||
+ " FROM res_activiteit a"
|
||||
+ " WHERE res_activiteit_key = " + rrr.activiteit_key
|
||||
oRs = Oracle.Execute(sql);
|
||||
ROFIELDTR("fld", lcl_activity, oRs("res_activiteit_omschrijving").value);
|
||||
ROFIELDTR("fld", lcl_activity, oRs("res_activiteit_omschrijving").value);
|
||||
|
||||
ROFIELDTR("fld", lcl_to, toDateTimeString(rrr.rsv_ruimte_tot));
|
||||
ROFIELDTR("fld", lcl_visitors, rrr.rsv_ruimte_bezoekers);
|
||||
|
||||
ROFIELDTR("fld", lcl_to, toDateTimeString(rrr.rsv_ruimte_tot));
|
||||
ROFIELDTR("fld", lcl_visitors, rrr.rsv_ruimte_bezoekers);
|
||||
if (restype == "R") {
|
||||
//======= FIELD 'Ruimte' =======
|
||||
// Vullen client-side sel_room variabele en invullen configurations
|
||||
// TODO: liever niet doen in readmode, direct inplakken!
|
||||
%>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function()
|
||||
{
|
||||
var JSONdata = '(<%=JSON.stringify(res.res_ruimte_info(rrr.res_ruimte_key)).replace(/\'/g,"\\'")%>)';
|
||||
process_res_ruimte_info(eval('(' + JSONdata + ')'));
|
||||
});
|
||||
</script>
|
||||
<%
|
||||
res_ruimte_data = res.res_ruimte_info(rrr.res_ruimte_key);
|
||||
|
||||
FCLTplaatsselector(authparams.ALGreadlevel, { locatiekey: rrr.alg_locatie_key,
|
||||
startlevel: 2,/*locatie*/
|
||||
eindlevel: 2,/*locatie*/
|
||||
readonly: true,
|
||||
no_table: true
|
||||
FCLTplaatsselector(null, { locatiekey: rrr.alg_locatie_key,
|
||||
startlevel: 2,/*locatie*/
|
||||
eindlevel: 2,/*locatie*/
|
||||
readonly: true,
|
||||
no_table: true
|
||||
});
|
||||
%>
|
||||
<!-- Ruimte -->
|
||||
<tr><td class="label"><label for='sel_room'><%=lcl_room%>:</label></td>
|
||||
<td><input id="sel_room" class="fldresroom" readonly value="<%=lcl_select_fl%>" /></td>
|
||||
</tr>
|
||||
%>
|
||||
<!-- Ruimte -->
|
||||
<% ROFIELDTR("fldresroom", lcl_room, res_ruimte_data.ruimte_nr)
|
||||
|
||||
<!-- Opstelling -->
|
||||
<%
|
||||
// @@ TODO: select naar readonly input omzetten
|
||||
%>
|
||||
<tr><td class="label"><label for='ruimte_opstel'><%= lcl_config %>:</label></td>
|
||||
<td><input class="fldopstel" readonly id='ruimte_opstel'>
|
||||
<% // Will be filled automatically %>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<% } else { //restype == "CV")
|
||||
// Opstelling
|
||||
for( i=0; i<res_ruimte_data.RoomConfigs.length; i++ )
|
||||
{
|
||||
if (res_ruimte_data.RoomConfigs[i].ruimte_opstel_key == rrr.ruimte_opstel_key)
|
||||
ROFIELDTR("fldopstel", lcl_config, res_ruimte_data.RoomConfigs[i].opstelling_omschrijving + " (" + res_ruimte_data.RoomConfigs[i].bezoekers + " pers)");
|
||||
}
|
||||
|
||||
FCLTplaatsselector(authparams.ALGreadlevel, { locatiekey: rrr.alg_locatie_key,
|
||||
gebouwkey: rrr.alg_gebouw_key,
|
||||
verdiepingkey: rrr.alg_verdieping_key,
|
||||
ruimtekey: rrr.alg_ruimte_key,
|
||||
startlevel: 2,/*locatie*/
|
||||
eindlevel: 5,/*ruimte*/
|
||||
readonly: true,
|
||||
no_table: true
|
||||
});
|
||||
|
||||
} else { //restype == "CV")
|
||||
|
||||
FCLTplaatsselector(null, { locatiekey: rrr.alg_locatie_key,
|
||||
gebouwkey: rrr.alg_gebouw_key,
|
||||
verdiepingkey: rrr.alg_verdieping_key,
|
||||
ruimtekey: rrr.alg_ruimte_key,
|
||||
startlevel: 2,/*locatie*/
|
||||
eindlevel: 5,/*ruimte*/
|
||||
readonly: true,
|
||||
no_table: true
|
||||
});
|
||||
|
||||
}
|
||||
//======= FIELD 'Status' ======= @@todo kan in 1 keer (of hebben we em al?)
|
||||
@@ -630,64 +378,36 @@ ROFIELDTR("fld", lcl_visitors, rrr.rsv_ruimte_bezoekers);
|
||||
if (!oRs.eof) {
|
||||
fostatomsch = oRs("res_status_fo_omschrijving").value;
|
||||
}
|
||||
%>
|
||||
<tr><td class="label"><label for='status_fo'><%=lcl_status_FO%>:</label></td>
|
||||
<td><input id="status_fo" class="fldresstatus" readonly value="<%=fostatomsch%>" /></td>
|
||||
</tr>
|
||||
<% if (rrr.rsv_ruimte_noshow) { %>
|
||||
<tr>
|
||||
<td></td><td class="noshow"><%=lcl_res_no_show%></td>
|
||||
</tr>
|
||||
<% }
|
||||
ROFIELDTR("fldresstatus", lcl_status_FO, fostatomsch);
|
||||
|
||||
sql = "SELECT a.bez_afspraak_key"
|
||||
+ " FROM bez_afspraak a"
|
||||
+ " WHERE a.res_rsv_ruimte_key = " + rsv_ruimte_key;
|
||||
oRs = Oracle.Execute(sql);
|
||||
if (rrr.rsv_ruimte_noshow)
|
||||
ROFIELDTR("noshow", "", lcl_res_no_show);
|
||||
|
||||
if (!oRs.eof) { // needed for reserv_common_js.asp - function CommitAndContinue, variable hasVisitor%>
|
||||
<input type='hidden' id='afspr_key' name='afspr_key' value='<%=oRs(0).value%>'>
|
||||
<% } %>
|
||||
|
||||
<% // end of </form> fields %>
|
||||
|
||||
|
||||
<iframe src="../Shared/empty.html" frameborder="0" name="hidFrameKenmerk" style="display:none"></iframe>
|
||||
<iframe src="../Shared/empty.html" name="roomFrame" id="roomFrame" style="display:none"></iframe>
|
||||
|
||||
<iframe src="../shared/empty.html" frameborder="0" name="hidFrame" id="hidFrame" style="display:none"></iframe>
|
||||
<%
|
||||
BLOCK_END()
|
||||
|
||||
BLOCK_START("resFlex", lcl_res_flexblok);
|
||||
%>
|
||||
<!-- theText indicates flexkenmerken will follow on the next row -->
|
||||
<tr id=theText><td colspan="2"></td></tr>
|
||||
<%
|
||||
%><tr><td><%
|
||||
generateFlexKenmerkCode ({
|
||||
urole: urole,
|
||||
res_key : rrr.reservering_key,
|
||||
act_key : rrr.activiteit_key,
|
||||
rsv_ruimte_key : rrr.rsv_ruimte_key,
|
||||
reado: true
|
||||
});
|
||||
%>
|
||||
<% BLOCK_END();
|
||||
});
|
||||
%></td></tr><%
|
||||
BLOCK_END();
|
||||
|
||||
// ============================================================================================================
|
||||
|
||||
BLOCK_START("resUser",lcl_res_info);
|
||||
|
||||
%>
|
||||
<table>
|
||||
<tr>
|
||||
<%
|
||||
//======= FIELD 'Aanvrager/contact' =======
|
||||
FCLTpersoonselector( "person", "sgPerson", {
|
||||
label: lcl_name,
|
||||
perslidKey: rrr.contact_key,
|
||||
onChange: "changeName", moreinfo: urole!='fe',
|
||||
autlevel: authparams.PRSwritelevel,
|
||||
moreinfo: urole!='fe',
|
||||
readonly: true})
|
||||
%>
|
||||
</tr>
|
||||
@@ -697,7 +417,6 @@ BLOCK_START("resUser",lcl_res_info);
|
||||
FCLTpersoonselector( "personH", "sgHost", {
|
||||
label: lcl_host,
|
||||
perslidKey: rrr.host_key,
|
||||
autlevel: authparams.PRSwritelevel,
|
||||
moreinfo: urole!='fe',
|
||||
readonly: true})
|
||||
|
||||
@@ -713,40 +432,19 @@ BLOCK_START("resUser",lcl_res_info);
|
||||
readonly: true });
|
||||
%>
|
||||
</tr>
|
||||
<% if (show_ordernr!=0) { %>
|
||||
<tr>
|
||||
<td class="label"><label><%=lcl_mld_inf_Ordernr%>:</label></td>
|
||||
<td><input name="ordernr"
|
||||
id="ordernr"
|
||||
type="text"
|
||||
class= "fldordernum"
|
||||
value="<%=rrr.res_ordernr%>"
|
||||
readonly>
|
||||
</td>
|
||||
</tr>
|
||||
<% } %>
|
||||
|
||||
<tr>
|
||||
<td class="label"><label><%=lcl_descr%>:</label></td>
|
||||
<td><input class="fldresdesc" name="descript" readonly
|
||||
maxlength="60" value="<%=escape2(rrr.descript)%>">
|
||||
</td>
|
||||
</tr>
|
||||
<% if (show_ordernr!=0)
|
||||
ROFIELDTR("fldordernum", lcl_mld_inf_Ordernr, rrr.res_ordernr);
|
||||
|
||||
ROFIELDTR("fldresdesc", lcl_descr, rrr.descript);
|
||||
|
||||
%>
|
||||
|
||||
<tr>
|
||||
<td class="label"><label><%=lcl_remark%>: </label></td>
|
||||
<td colspan=3><textarea class="fldomschr" rows="1" readonly
|
||||
name="opmerk" style="width:100%"><%=escape2(rrr.rsv_ruimte_opmerking)%></textarea></td>
|
||||
</tr>
|
||||
<% //BLOCK_END(); %>
|
||||
</table>
|
||||
<%
|
||||
// if (rrr.rsv_ruimte_dirtlevel>0)
|
||||
// {
|
||||
// Response.Write("<br/>Dirtlevel: 0b" + (rrr.rsv_ruimte_dirtlevel).toString(2));
|
||||
// }
|
||||
|
||||
%>
|
||||
|
||||
<% BLOCK_END(); %>
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<% /*
|
||||
$Revision: 1 $
|
||||
$Modtime: 3-09-09 13:43 $
|
||||
$Revision: 2 $
|
||||
$Modtime: 1-11-09 15:00 $
|
||||
|
||||
File: shared.inc
|
||||
Description: Generieke functies die door elke pagina gebruikt worden.
|
||||
@@ -18,27 +18,27 @@
|
||||
var user_key=Session("user_key");
|
||||
if (typeof user_key == "undefined")
|
||||
{
|
||||
// TODO: Is dit *de* plek om te proberen de user_key uit een cookie te halen?
|
||||
// TODO: Is dit *de* plek om te proberen de user_key uit een cookie te halen? Vooralsnog default.inc
|
||||
user_key = -1;
|
||||
user = null;
|
||||
}
|
||||
else
|
||||
user = new Perslid(user_key);
|
||||
|
||||
|
||||
// Voor FO gezet in shared/SetCaller.asp
|
||||
var gCaller = null;
|
||||
if (typeof Session("caller") == "object")
|
||||
{
|
||||
gCaller = Session("caller");
|
||||
}
|
||||
|
||||
// Check for parameter pName and return the value
|
||||
// If not specified return defVal
|
||||
// If defVal not specified pName a required parameter
|
||||
function getQParam(pName, defVal)
|
||||
{
|
||||
var rq = Request.Querystring(pName);
|
||||
return _get_Param(Request.Querystring, pName, defVal)
|
||||
}
|
||||
function getFParam(pName, defVal)
|
||||
{
|
||||
return _get_Param(Request.Form, pName, defVal)
|
||||
}
|
||||
function _get_Param(pColl, pName, defVal)
|
||||
{
|
||||
var rq = pColl(pName);
|
||||
if (rq.count > 0)
|
||||
return rq(1);
|
||||
else
|
||||
@@ -46,7 +46,7 @@ function getQParam(pName, defVal)
|
||||
if (typeof defVal != 'undefined')
|
||||
return defVal;
|
||||
else // Error message will get to client and/or IIS logfiles
|
||||
eval("INTERNAL_ERROR_QPARAMETER_" + pName + "_IS_MISSING"); // A required parameter was not supplied
|
||||
eval("INTERNAL_ERROR_PARAMETER_" + pName + "_IS_MISSING"); // A required parameter was not supplied
|
||||
}
|
||||
}
|
||||
|
||||
@@ -56,7 +56,16 @@ function getQParam(pName, defVal)
|
||||
// If relaxed==true then return defVal on invalid number
|
||||
function getQParamInt(pName, defVal, relaxed)
|
||||
{
|
||||
var strval = getQParam(pName, defVal);
|
||||
return _get_ParamInt(Request.Querystring, pName, defVal, relaxed)
|
||||
}
|
||||
|
||||
function getFParamInt(pName, defVal, relaxed)
|
||||
{
|
||||
return _get_ParamInt(Request.Form, pName, defVal, relaxed)
|
||||
}
|
||||
function _get_ParamInt(pColl, pName, defVal, relaxed)
|
||||
{
|
||||
var strval = _get_Param(pColl, pName, defVal);
|
||||
if (strval == "") return defVal;
|
||||
var val = parseInt(strval, 10);
|
||||
if (isNaN(val))
|
||||
@@ -65,7 +74,7 @@ function getQParamInt(pName, defVal, relaxed)
|
||||
return defVal;
|
||||
else
|
||||
// Error message will get to client and/or IIS logfiles
|
||||
eval("INTERNAL_ERROR_QPARAMETER_" + pName + "_IS_NOT_INTEGER"); // A required parameter was not supplied
|
||||
eval("INTERNAL_ERROR_PARAMETER_" + pName + "_IS_NOT_INTEGER"); // A required parameter was not supplied
|
||||
}
|
||||
else
|
||||
return val;
|
||||
@@ -77,7 +86,15 @@ function getQParamInt(pName, defVal, relaxed)
|
||||
// defVal can be a date object or null
|
||||
function getQParamDate(pName, defVal)
|
||||
{
|
||||
var val = getQParamInt(pName, -1);
|
||||
return _get_ParamDate(Request.Querystring, pName, defVal)
|
||||
}
|
||||
function getFParamDate(pName, defVal)
|
||||
{
|
||||
return _get_ParamDate(Request.Form, pName, defVal)
|
||||
}
|
||||
function _get_ParamDate(pColl, pName, defVal)
|
||||
{
|
||||
var val = _get_ParamInt(pColl, pName, -1);
|
||||
if (val>0)
|
||||
return new Date(val);
|
||||
|
||||
@@ -85,94 +102,27 @@ function getQParamDate(pName, defVal)
|
||||
{
|
||||
return defVal;
|
||||
}
|
||||
if (defVal == null)
|
||||
if (defVal === null) // bewust triple===
|
||||
{
|
||||
return null
|
||||
return null;
|
||||
}
|
||||
// Error message will get to client and/or IIS logfiles
|
||||
eval("INTERNAL_ERROR_QPARAMETER_" + pName + "_IS_NOT_DATE"); // A required parameter was not supplied
|
||||
eval("INTERNAL_ERROR_PARAMETER_" + pName + "_IS_NOT_DATE"); // A required parameter was not supplied
|
||||
}
|
||||
|
||||
// Check for parameter pName and return all values
|
||||
// Levert een string(!) op, eventueel gescheiden door komma's op
|
||||
function getQMultiParam(pName, defVal)
|
||||
{
|
||||
var rq = Request.Querystring(pName);
|
||||
if (rq.count > 0)
|
||||
return String(rq);
|
||||
else
|
||||
{
|
||||
if (typeof defVal != 'undefined')
|
||||
return defVal;
|
||||
else // Error message will get to client and/or IIS logfiles
|
||||
eval("INTERNAL_ERROR_QMULTIPARAM_" + pName + "_IS_MISSING"); // A required parameter was not supplied
|
||||
}
|
||||
return _get_MultiParam(Request.Querystring, pName, defVal)
|
||||
}
|
||||
|
||||
// Check for parameter pName and return the value
|
||||
// If not specified or empty return defVal
|
||||
// If defVal not specified pName is required
|
||||
function getFParam(pName, defVal)
|
||||
{
|
||||
var rf = Request.Form(pName);
|
||||
if (rf.count > 0 && rf(1)!="")
|
||||
return rf(1);
|
||||
else
|
||||
{
|
||||
if (typeof defVal != 'undefined')
|
||||
return defVal;
|
||||
else // Error message will get to client and/or IIS logfiles
|
||||
eval("INTERNAL_ERROR_FPARAMETER_" + pName + "_IS_MISSING"); // A required parameter was not supplied
|
||||
}
|
||||
}
|
||||
|
||||
// Check for parameter pName and return the Integer value
|
||||
// If not specified return defVal
|
||||
// If defVal not specified pName is a required parameter
|
||||
function getFParamInt(pName, defVal, relaxed)
|
||||
{
|
||||
var strval = getFParam(pName, defVal);
|
||||
if (strval == "") return defVal;
|
||||
var val = parseInt(strval, 10);
|
||||
if (isNaN(val))
|
||||
{
|
||||
if (relaxed)
|
||||
return defVal;
|
||||
else
|
||||
// Error message will get to client and/or IIS logfiles
|
||||
eval("INTERNAL_ERROR_FPARAMETER_" + pName + "_IS_NOT_INTEGER"); // A required parameter was not supplied
|
||||
}
|
||||
else
|
||||
return val;
|
||||
}
|
||||
|
||||
// Check for parameter pName and return the Date value
|
||||
// If not specified return defVal
|
||||
// If defVal not specified pName is a required parameter
|
||||
// defVal can be a date object or null
|
||||
function getFParamDate(pName, defVal)
|
||||
{
|
||||
var val = getFParamInt(pName, -1);
|
||||
if (val>0)
|
||||
return new Date(val);
|
||||
|
||||
if (defVal instanceof Date)
|
||||
{
|
||||
return defVal
|
||||
}
|
||||
if (defVal == null)
|
||||
{
|
||||
return null
|
||||
}
|
||||
// Error message will get to client and/or IIS logfiles
|
||||
eval("INTERNAL_ERROR_FPARAMETER_" + pName + "_IS_NOT_DATE"); // A required parameter was not supplied
|
||||
}
|
||||
|
||||
// Check for parameter pName and return all values
|
||||
// Levert een string(!) op, eventueel gescheiden door komma's op
|
||||
function getFMultiParam(pName, defVal)
|
||||
{
|
||||
var rf = Request.Form(pName);
|
||||
return _get_MultiParam(Request.Form, pName, defVal)
|
||||
}
|
||||
function _get_MultiParam(pColl, pName, defVal)
|
||||
{
|
||||
var rf = pColl(pName);
|
||||
if (rf.count > 0)
|
||||
return String(rf);
|
||||
else
|
||||
@@ -180,10 +130,11 @@ function getFMultiParam(pName, defVal)
|
||||
if (typeof defVal != 'undefined')
|
||||
return defVal;
|
||||
else // Error message will get to client and/or IIS logfiles
|
||||
eval("INTERNAL_ERROR_FULTIPARAM_" + pName + "_IS_MISSING"); // A required parameter was not supplied
|
||||
eval("INTERNAL_ERROR_MULTIPARAM_" + pName + "_IS_MISSING"); // A required parameter was not supplied
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// lijst is een array van parameter namen ["loc_key", "geb_key"]
|
||||
// params is optioneel een hash { loc_key: 345, geb_key: 34 }
|
||||
// (zonder params wordt QueryString genomen)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<% /*
|
||||
$Revision: 1 $
|
||||
$Modtime: 24-09-09 19:11 $
|
||||
$Revision: 2 $
|
||||
$Modtime: 3-11-09 15:20 $
|
||||
|
||||
File: shared/PRSFunctions.asp
|
||||
Description: Generieke serverside PRS functies
|
||||
@@ -26,17 +26,22 @@ Perslid.prototype._require_prs_perslid = function()
|
||||
if (this._prs_afdeling_key == null)
|
||||
{
|
||||
var sql = "SELECT p.prs_perslid_key, "
|
||||
+ prs_pers_string + " naam, "
|
||||
// + prs_pers_string + " naam, "
|
||||
+ " pf.prs_perslid_naam_full naam, "
|
||||
+ " p.prs_afdeling_key,"
|
||||
+ " p.fac_profiel_key,"
|
||||
+ " prs_perslid_telefoonnr,"
|
||||
+ " prs_perslid_mobiel,"
|
||||
+ " p.prs_perslid_telefoonnr,"
|
||||
+ " p.prs_perslid_mobiel,"
|
||||
+ " p.prs_perslid_email,"
|
||||
+ " p.mld_adres_key,"
|
||||
+ " sp.prs_srtperslid_omschrijving"
|
||||
+ " FROM prs_perslid p, prs_srtperslid sp"
|
||||
+ " sp.prs_srtperslid_omschrijving,"
|
||||
+ " p.prs_perslid_login,"
|
||||
+ " p.prs_perslid_oslogin,"
|
||||
+ " p.prs_perslid_oslogin2"
|
||||
+ " FROM prs_perslid p, prs_srtperslid sp, prs_v_perslid_fullnames_all pf"
|
||||
+ " WHERE p.prs_srtperslid_key = sp.prs_srtperslid_key"
|
||||
+ " AND prs_perslid_key = " + this._prs_perslid_key
|
||||
+ " AND pf.prs_perslid_key = p.prs_perslid_key"
|
||||
+ " AND p.prs_perslid_key = " + this._prs_perslid_key
|
||||
var oRs = Oracle.Execute(sql);
|
||||
if (!oRs.eof)
|
||||
{
|
||||
@@ -50,6 +55,9 @@ Perslid.prototype._require_prs_perslid = function()
|
||||
this._prs_srtperslid = oRs("prs_srtperslid_omschrijving").value;
|
||||
this._objAfdeling = null;
|
||||
this._mld_adres_key = oRs("mld_adres_key").Value;
|
||||
this._prs_perslid_login = oRs("prs_perslid_login").value; // last login
|
||||
this._prs_perslid_oslogin = oRs("prs_perslid_oslogin").value;
|
||||
this._prs_perslid_oslogin2 = oRs("prs_perslid_oslogin2").value;
|
||||
}
|
||||
oRs.close();
|
||||
}
|
||||
@@ -61,10 +69,11 @@ Perslid.prototype._require_prs_perslid_plaats = function()
|
||||
if (!this._werkplekken)
|
||||
{
|
||||
this._werkplekken = [];
|
||||
var sql = "SELECT prs_werkplek_key"
|
||||
+ " FROM prs_v_aanwezigperslidwerkplek w"
|
||||
+ " WHERE prs_perslid_key = " + this._prs_perslid_key
|
||||
+ " ORDER BY w.prs_perslidwerkplek_bezetting DESC"; // Hoogste bezetting vooraan TODO: en dan op plaatsaanduiding
|
||||
var sql = "SELECT w.prs_werkplek_key"
|
||||
+ " FROM prs_v_aanwezigperslidwerkplek w, prs_v_werkplek_gegevens wg"
|
||||
+ " WHERE w.prs_werkplek_key = wg.prs_werkplek_key"
|
||||
+ " AND w.prs_perslid_key = " + this._prs_perslid_key
|
||||
+ " ORDER BY w.prs_perslidwerkplek_bezetting DESC, wg.prs_werkplek_aanduiding"; // Hoogste bezetting vooraan en dan op plaatsaanduiding
|
||||
var oRs = Oracle.Execute(sql);
|
||||
while (!oRs.eof)
|
||||
{
|
||||
@@ -135,25 +144,52 @@ Perslid.prototype.mld_adres_key = function()
|
||||
return this._mld_adres_key;
|
||||
}
|
||||
|
||||
Perslid.prototype.kpn_string = function()
|
||||
Perslid.prototype.login = function()
|
||||
{
|
||||
this._require_prs_perslid();
|
||||
return this._prs_perslid_login;
|
||||
}
|
||||
Perslid.prototype.oslogin = function()
|
||||
{
|
||||
this._require_prs_perslid();
|
||||
return this._prs_perslid_oslogin;
|
||||
}
|
||||
Perslid.prototype.oslogin2 = function()
|
||||
{
|
||||
this._require_prs_perslid();
|
||||
return this._prs_perslid_oslogin2;
|
||||
}
|
||||
|
||||
Perslid.prototype._require_kpn_string = function()
|
||||
{
|
||||
if (!this._kpn_string)
|
||||
{
|
||||
this._require_prs_perslid();
|
||||
this.kpn_string ="-";
|
||||
this._kpn_string ="-";
|
||||
this._kpn_budgethouderkey = -1;
|
||||
if (this.afdeling().prs_kostenplaats_key())
|
||||
{
|
||||
var oRs = Oracle.Execute("SELECT " + prs_kpn_string +", prs_perslid_naam_full"
|
||||
+ " FROM prs_kostenplaats k, prs_v_perslid_fullnames pf"
|
||||
+ " WHERE k.prs_perslid_key = pf.prs_perslid_key"
|
||||
+ " AND k.prs_kostenplaats_key = " + this.afdeling().prs_kostenplaats_key());
|
||||
var oRs = Oracle.Execute("SELECT " + prs_kpn_string +", k.prs_perslid_key"
|
||||
+ " FROM prs_kostenplaats k"
|
||||
+ " WHERE k.prs_kostenplaats_key = " + this.afdeling().prs_kostenplaats_key());
|
||||
if (!oRs.eof)
|
||||
this._kpn_string = '' + oRs(0).value;
|
||||
this._kpn_budgethouder = '' + oRs(1).value; // TODO: Jos, hoe lever ik deze nou netjes op? kpn toch object?
|
||||
this._kpn_budgethouderkey = oRs(1).value;
|
||||
oRs.close();
|
||||
}
|
||||
}
|
||||
return this._kpn_string;
|
||||
}
|
||||
|
||||
Perslid.prototype.kpn_string = function()
|
||||
{
|
||||
this._require_kpn_string();
|
||||
return this._kpn_string;
|
||||
}
|
||||
// Meer info kun je krijgen door een user object met deze key te maken.
|
||||
Perslid.prototype.kpn_budgethouderkey = function()
|
||||
{
|
||||
this._require_kpn_string();
|
||||
return this._kpn_budgethouderkey;
|
||||
}
|
||||
|
||||
// De volgende 5 functies zijn een beetje gemakzucht, ze pakken de locatie_key etc van de eerste werkplek of geven -1
|
||||
@@ -262,7 +298,7 @@ Perslid.prototype.werkplek = function()
|
||||
// @param ins_discipline_key
|
||||
// result:
|
||||
// null als helemaal geen rechten (alles level 9) maar wel isOptional
|
||||
// meldig 'U bent niet geauthoriseerd' als helemaal geen rechten en niet isOptional
|
||||
// melding 'U bent niet geauthoriseerd' als helemaal geen rechten en niet isOptional
|
||||
// anders: { PRSreadlevel: 0, PRSwritelevel: 1, ALGreadlevel: 0, ALGwritelevel: 1, autfunctionkey: 64 }
|
||||
Perslid.prototype.checkAutorisation = function checkAutorisation(autfunction, isOptional, ins_discipline_key)
|
||||
{
|
||||
@@ -283,20 +319,20 @@ Perslid.prototype.checkAutorisation = function checkAutorisation(autfunction, is
|
||||
var autfunctionkey = -1; // Kan heel handig zijn.
|
||||
|
||||
// MIN om te kijken over alle mogelijke disciplines heen
|
||||
oRs = Oracle.Execute("SELECT f.fac_functie_key"
|
||||
+ " FROM fac_functie f "
|
||||
+ " WHERE f.fac_functie_code = '" + autfunction + "'")
|
||||
var oRs = Oracle.Execute("SELECT f.fac_functie_key"
|
||||
+ " FROM fac_functie f "
|
||||
+ " WHERE f.fac_functie_code = '" + autfunction + "'")
|
||||
if (!oRs.Eof)
|
||||
{
|
||||
autfunctionkey = oRs(0).value;
|
||||
var autfunctionkey = oRs(0).value;
|
||||
|
||||
sql = "SELECT COALESCE(MIN(FAC_GEBRUIKER_PRS_LEVEL_READ), 9)"
|
||||
+ ", COALESCE(MIN(FAC_GEBRUIKER_PRS_LEVEL_WRITE), 9)"
|
||||
+ ", COALESCE(MIN(FAC_GEBRUIKER_ALG_LEVEL_READ), 9)"
|
||||
+ ", COALESCE(MIN(FAC_GEBRUIKER_ALG_LEVEL_WRITE), 9)"
|
||||
+ " FROM fac_v_webgebruiker w"
|
||||
+ " WHERE w.prs_perslid_key = " + this._prs_perslid_key
|
||||
+ " AND w.fac_functie_key = " + autfunctionkey;
|
||||
var sql = "SELECT COALESCE(MIN(FAC_GEBRUIKER_PRS_LEVEL_READ), 9)"
|
||||
+ ", COALESCE(MIN(FAC_GEBRUIKER_PRS_LEVEL_WRITE), 9)"
|
||||
+ ", COALESCE(MIN(FAC_GEBRUIKER_ALG_LEVEL_READ), 9)"
|
||||
+ ", COALESCE(MIN(FAC_GEBRUIKER_ALG_LEVEL_WRITE), 9)"
|
||||
+ " FROM fac_v_webgebruiker w"
|
||||
+ " WHERE w.prs_perslid_key = " + this._prs_perslid_key
|
||||
+ " AND w.fac_functie_key = " + autfunctionkey;
|
||||
if (typeof ins_discipline_key != 'undefined')
|
||||
sql += " AND ins_discipline_key = " + ins_discipline_key
|
||||
|
||||
@@ -334,15 +370,31 @@ Perslid.prototype.checkAutorisation = function checkAutorisation(autfunction, is
|
||||
oRs.close();
|
||||
}
|
||||
|
||||
// Deze functie aan te roepen als ontdekt wordt dat de autorisatie ongeldig is.
|
||||
// Alleen te gebruiken in onvoorziene situaties ('de gebruiker had hier niet mogen/kunnen komen')
|
||||
Perslid.prototype.auth_required_or_abort = function(hasAuth, badbody)
|
||||
{
|
||||
if (!hasAuth)
|
||||
{
|
||||
Response.Clear();
|
||||
Response.Write(badbody||"<html><head></head><body><p>" + lcl_no_auth + "</p></body></html>");
|
||||
Response.End;
|
||||
};
|
||||
}
|
||||
|
||||
// func_enabled
|
||||
// Controleert *voor een bestaande entiteit*, *gegeven allerlei keys*
|
||||
// welke functies (van een bepaalde module) lees en/of schrijfrechten hebben.
|
||||
// result:
|
||||
// null als helemaal geen rechten (alles level 9) maar wel isOptional
|
||||
// meldig 'U bent niet geauthoriseerd' als helemaal geen rechten en niet isOptional
|
||||
// anders ["MLDBOF"].true , ["MLDBO2"].false bijvoorbeeld voor resp. wel en geen schrijfrechten
|
||||
// Als autfunction meegegeven dan moeten er ook minstens schrijf(!) rechten zijn volgens autfunction
|
||||
Perslid.prototype.func_enabled = function _func_enabled(module, ins_discipline_key, alg_key, prs_key, autfunction)
|
||||
// meldig 'U bent niet geauthoriseerd' als helemaal geen (lees)rechten
|
||||
// anders worden twee functies opgeleverd: canRead("WEB_MLDFOF") en canWrite("WEB_MLDFOF")
|
||||
//
|
||||
// ins_discipline_key mag ook een string van discipline_keys gescheiden door komma's zijn!
|
||||
// dan controleren we dat *pessimistich*: je moet de rechten voor alle disciplines hebben!
|
||||
Perslid.prototype.func_enabled = function _func_enabled(module, ins_discipline_key, alg_key, prs_key)
|
||||
{
|
||||
var sql;
|
||||
var multidisc = String(ins_discipline_key).indexOf(",")>0;
|
||||
|
||||
var PRSLevel = -1; // Default heeel ver weg
|
||||
// TODO: Bedrijf niveau ondersteunen?
|
||||
@@ -352,10 +404,11 @@ Perslid.prototype.func_enabled = function _func_enabled(module, ins_discipline_k
|
||||
PRSLevel = 8;
|
||||
else
|
||||
{
|
||||
// optimalisatie: haal de andere afd_key met een losse query op.
|
||||
var afd_key = new Perslid(prs_key).prs_afdeling_key();
|
||||
var sql = "SELECT MAX (a.niveau) niveau"
|
||||
+ " FROM prs_v_afdeling_familie a, prs_perslid p, prs_v_afdeling_familie aa"
|
||||
+ " WHERE p.prs_afdeling_key = a.prs_afdeling_key"
|
||||
+ " AND p.prs_perslid_key = " + prs_key // -- de ander
|
||||
+ " FROM prs_v_afdeling_familie a, prs_v_afdeling_familie aa"
|
||||
+ " WHERE a.prs_afdeling_key = " + afd_key // -- de ander
|
||||
+ " AND a.prs_afdeling_elder_key = aa.prs_afdeling_elder_key"
|
||||
+ " AND aa.prs_afdeling_key = " + this.prs_afdeling_key(); // zelf
|
||||
var oRs = Oracle.Execute(sql);
|
||||
@@ -374,43 +427,49 @@ Perslid.prototype.func_enabled = function _func_enabled(module, ins_discipline_k
|
||||
+ " FROM alg_v_allonroerendgoed g"
|
||||
+ " WHERE g.alg_onroerendgoed_keys(+)="+alg_key
|
||||
var oRs = Oracle.Execute(sql);
|
||||
var loc = oRs("alg_locatie_key").Value;
|
||||
var bld = oRs("alg_gebouw_key").Value;
|
||||
var flo = oRs("alg_verdieping_key").Value;
|
||||
var room = oRs("alg_ruimte_key").Value;
|
||||
if (room != -1) {
|
||||
// kijk of room binnen de scope valt
|
||||
sql = "SELECT max(niveau)"
|
||||
+ " FROM fac_v_my_rooms"
|
||||
+ " WHERE prs_perslid_key = " + user_key
|
||||
+ " AND alg_ruimte_key = " + room;
|
||||
}
|
||||
else if (flo != -1) {
|
||||
// kijk of flo binnen de scope valt
|
||||
sql = "SELECT max(niveau)"
|
||||
+ " FROM fac_v_my_floors"
|
||||
+ " WHERE prs_perslid_key = " + user_key
|
||||
+ " AND alg_verdieping_key = " + flo;
|
||||
}
|
||||
else if (bld != -1) {
|
||||
// kijk of bld binnen de scope valt
|
||||
sql = "SELECT max(niveau)"
|
||||
+ " FROM fac_v_my_buildings"
|
||||
+ " WHERE prs_perslid_key = " + user_key
|
||||
+ " AND alg_gebouw_key = " + bld;
|
||||
}
|
||||
else if (loc != -1) {
|
||||
// kijk of loc binnen de scope valt
|
||||
sql = "SELECT max(niveau)"
|
||||
+ " FROM fac_v_my_locations"
|
||||
+ " WHERE prs_perslid_key = " + user_key
|
||||
+ " AND alg_locatie_key = " + loc;
|
||||
if (!oRs.eof) {
|
||||
var loc = oRs("alg_locatie_key").Value;
|
||||
var bld = oRs("alg_gebouw_key").Value;
|
||||
var flo = oRs("alg_verdieping_key").Value;
|
||||
var room = oRs("alg_ruimte_key").Value;
|
||||
if (room != -1) {
|
||||
// kijk of room binnen de scope valt
|
||||
sql = "SELECT max(niveau)"
|
||||
+ " FROM fac_v_my_rooms"
|
||||
+ " WHERE prs_perslid_key = " + user_key
|
||||
+ " AND alg_ruimte_key = " + room;
|
||||
}
|
||||
else if (flo != -1) {
|
||||
// kijk of flo binnen de scope valt
|
||||
sql = "SELECT max(niveau)"
|
||||
+ " FROM fac_v_my_floors"
|
||||
+ " WHERE prs_perslid_key = " + user_key
|
||||
+ " AND alg_verdieping_key = " + flo;
|
||||
}
|
||||
else if (bld != -1) {
|
||||
// kijk of bld binnen de scope valt
|
||||
sql = "SELECT max(niveau)"
|
||||
+ " FROM fac_v_my_buildings"
|
||||
+ " WHERE prs_perslid_key = " + user_key
|
||||
+ " AND alg_gebouw_key = " + bld;
|
||||
}
|
||||
else if (loc != -1) {
|
||||
// kijk of loc binnen de scope valt
|
||||
sql = "SELECT max(niveau)"
|
||||
+ " FROM fac_v_my_locations"
|
||||
+ " WHERE prs_perslid_key = " + user_key
|
||||
+ " AND alg_locatie_key = " + loc;
|
||||
}
|
||||
oRs = Oracle.Execute(sql);
|
||||
ALGLevel = oRs(0).Value||-1;
|
||||
} else {
|
||||
__Log ('ATTENTIE: Waarom is deze key onbekend!?!');
|
||||
ALGLevel = -1;
|
||||
}
|
||||
oRs = Oracle.Execute(sql);
|
||||
ALGLevel = oRs(0).Value||-1;
|
||||
}
|
||||
|
||||
var sql = "SELECT f.fac_functie_code, fac_functie_min_level"
|
||||
// JGL: Is de MIN in deze SQL wel nodig eigenlijk?
|
||||
var sql = "SELECT f.fac_functie_code, fac_functie_min_level, ins_discipline_key"
|
||||
+ ", COALESCE(MIN(FAC_GEBRUIKER_PRS_LEVEL_READ ), 9) FAC_GEBRUIKER_PRS_LEVEL_READ"
|
||||
+ ", COALESCE(MIN(FAC_GEBRUIKER_PRS_LEVEL_WRITE), 9) FAC_GEBRUIKER_PRS_LEVEL_WRITE"
|
||||
+ ", COALESCE(MIN(FAC_GEBRUIKER_ALG_LEVEL_READ ), 9) FAC_GEBRUIKER_ALG_LEVEL_READ"
|
||||
@@ -418,9 +477,21 @@ Perslid.prototype.func_enabled = function _func_enabled(module, ins_discipline_k
|
||||
+ " FROM fac_v_webgebruiker w, fac_functie f"
|
||||
+ " WHERE w.prs_perslid_key = " + this._prs_perslid_key
|
||||
+ " AND w.fac_functie_key = f.fac_functie_key"
|
||||
+ " AND ins_discipline_key = " + ins_discipline_key
|
||||
+ " GROUP BY f.fac_functie_code, fac_functie_min_level"
|
||||
+ (multidisc||!ins_discipline_key?"":" AND ins_discipline_key = " + ins_discipline_key)
|
||||
+ (module != "*" ? " AND fac_functie_module ='"+module+"'" : "")
|
||||
+ " GROUP BY f.fac_functie_code, fac_functie_min_level, ins_discipline_key"
|
||||
|
||||
// TODO: voor leesrechten willen we misschien *optimistisch* controleren?
|
||||
// Dan moeten we hieronder ook afzonderlijk de MIN bepalen per discipline
|
||||
if (multidisc)
|
||||
sql = "SELECT fac_functie_code, fac_functie_min_level"
|
||||
+ ", MAX(FAC_GEBRUIKER_PRS_LEVEL_READ ) FAC_GEBRUIKER_PRS_LEVEL_READ"
|
||||
+ ", MAX(FAC_GEBRUIKER_PRS_LEVEL_WRITE) FAC_GEBRUIKER_PRS_LEVEL_WRITE"
|
||||
+ ", MAX(FAC_GEBRUIKER_ALG_LEVEL_READ ) FAC_GEBRUIKER_ALG_LEVEL_READ"
|
||||
+ ", MAX(FAC_GEBRUIKER_ALG_LEVEL_WRITE) FAC_GEBRUIKER_ALG_LEVEL_WRITE"
|
||||
+ " FROM (" + sql + ")"
|
||||
+ " WHERE ins_discipline_key IN (" + ins_discipline_key + ") "
|
||||
+ " GROUP BY fac_functie_code, fac_functie_min_level"
|
||||
|
||||
var func_enabled = { _funcodes: [],
|
||||
canWrite : function (funcode)
|
||||
@@ -459,13 +530,7 @@ Perslid.prototype.func_enabled = function _func_enabled(module, ins_discipline_k
|
||||
oRs.MoveNext();
|
||||
}
|
||||
oRs.close();
|
||||
if (anyfound)
|
||||
{
|
||||
if (typeof autfunction != "undefined") // Dan ook schrijfrechten controleren
|
||||
{
|
||||
anyfound = func_enabled.canWrite(autfunction);
|
||||
}
|
||||
}
|
||||
|
||||
if (!anyfound)
|
||||
{
|
||||
__Log('NOT Authorized for ' + module +
|
||||
@@ -473,10 +538,10 @@ Perslid.prototype.func_enabled = function _func_enabled(module, ins_discipline_k
|
||||
" ALGLevel: " + ALGLevel +
|
||||
" alg: " + alg_key +
|
||||
" prs: " + prs_key +
|
||||
" PRSLevel: " + PRSLevel +
|
||||
" autfunction: " + autfunction);
|
||||
" PRSLevel: " + PRSLevel);
|
||||
{
|
||||
Response.Write("<body><p>" + lcl_no_auth + "</p></body>");
|
||||
Response.Clear();
|
||||
Response.Write("<html><head></head><body><p>" + lcl_no_auth + "</p></body></html>");
|
||||
Response.End;
|
||||
}
|
||||
};
|
||||
@@ -484,6 +549,23 @@ Perslid.prototype.func_enabled = function _func_enabled(module, ins_discipline_k
|
||||
return func_enabled;
|
||||
}
|
||||
|
||||
// heeft persoon prs_key *mij* gedefinieerd als collega
|
||||
Perslid.prototype.isCollega = function (prs_key)
|
||||
{
|
||||
var sql = "SELECT prs_perslid_key"
|
||||
+ " FROM prs_collega"
|
||||
+ " WHERE prs_perslid_key_alt = " + user_key
|
||||
+ " AND prs_perslid_key = " + prs_key;
|
||||
var oRs = Oracle.Execute(sql);
|
||||
if (oRs.Eof)
|
||||
result = false;
|
||||
else
|
||||
result = true;
|
||||
|
||||
oRs.Close();
|
||||
return result;
|
||||
}
|
||||
|
||||
Perslid.prototype.canWritePerslid = function _canWritePerslid(prs_key, autlevel)
|
||||
{
|
||||
var sql = "select prs_perslid_key, prs_perslid_verwijder"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<% /*
|
||||
$Revision: 1 $
|
||||
$Modtime: 30-09-09 7:15 $
|
||||
$Revision: 2 $
|
||||
$Modtime: 3-11-09 15:00 $
|
||||
|
||||
File: Calendar.inc
|
||||
Description: generic interface function for selecting a 'date' and/or time
|
||||
@@ -27,82 +27,7 @@ function _initVrijedagen()
|
||||
<script type="text/javascript">
|
||||
var mld_vrije_dagen = [<%=mld_vrije_dagen%>];
|
||||
var calArray = new Array();
|
||||
function calendar(id, volgnr)
|
||||
{
|
||||
this.id = id;
|
||||
this.volgnr = volgnr;
|
||||
}
|
||||
|
||||
function checkVolgnr(fieldId, volgnr, timeField)
|
||||
{
|
||||
// Aangeroepen door de onChange van elke kalender om de volgorde in tijd van de kalenders te controleren
|
||||
// Alleen kalenders die een volgnummer hebben gekregen moeten worden gecontroleerd
|
||||
|
||||
// Controleer of kalender Kx niet na kalender Kx+1, Kx+2... komt. Toch het geval dan Kx+1, Kx+2... = Kx.
|
||||
// Controleer of kalender Kx niet voor kalender Kx-1, Kx-2... komt. Toch het geval dan Kx-1, Kx-2... = Kx.
|
||||
for (var i = 0; i < calArray.length; i++)
|
||||
{
|
||||
// Kalender Kx vooruit gezet
|
||||
if (calArray[i].id != fieldId && calArray[i].volgnr > volgnr && parseInt($("#" + calArray[i].id).val()) < parseInt($("#" + fieldId).val()))
|
||||
{ // Veld aanpassen
|
||||
// Maak Kx+1, Kx+2... gelijk aan Kx
|
||||
$("#show_" + calArray[i].id).DatePickerSetDate(new Date(parseInt($("#" + fieldId).val())));
|
||||
$("#show_" + calArray[i].id).val($("#show_" + fieldId).val());
|
||||
|
||||
if (timeField)
|
||||
{
|
||||
// Als de tijd van tx > tijd van tx+1, tx+2..., maak dan de tijden gelijk: tijd van tx+1, tx+2... = tijd van tx.
|
||||
if ($("#time_from_" + fieldId).timePickerGetTime().getTime() > $("#time_from_" + calArray[i].id).timePickerGetTime().getTime())
|
||||
{ // Datum + tijd overnemen
|
||||
// Dezelfde datum overnemen
|
||||
$("#" + calArray[i].id).val(new Date(parseInt($("#" + fieldId).val())).midnight().getTime() + $("#time_from_" + fieldId).timePickerGetTime().getTime());
|
||||
// Dezelfde tijd overnemen
|
||||
//$("#time_from_" + calArray[i].id).timePickerSetTime($("#time_from_" + fieldId).timePickerGetTime().getTime());
|
||||
$("#time_from_" + calArray[i].id).val($("#time_from_" + fieldId).val());
|
||||
}
|
||||
else
|
||||
{ // Dezelfde datum en de oude eigen tijd behouden
|
||||
$("#" + calArray[i].id).val(new Date(parseInt($("#" + fieldId).val())).midnight().getTime() + $("#time_from_" + calArray[i].id).timePickerGetTime().getTime());
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#" + calArray[i].id).val(new Date(parseInt($("#" + fieldId).val())).midnight().getTime());
|
||||
}
|
||||
}
|
||||
|
||||
// Kalender Kx achteruit gezet
|
||||
if (calArray[i].id != fieldId && calArray[i].volgnr < volgnr && $("#" + calArray[i].id).val() > $("#" + fieldId).val())
|
||||
{ // Veld aanpassen
|
||||
// Maak Kx-1, Kx-2... gelijk aan Kx
|
||||
$("#show_" + calArray[i].id).DatePickerSetDate(new Date(parseInt($("#" + fieldId).val())));
|
||||
$("#show_" + calArray[i].id).val($("#show_" + fieldId).val());
|
||||
|
||||
if (timeField)
|
||||
{
|
||||
// Als de tijd van tx < tijd van tx-1, tx-2..., maak dan de tijden gelijk: tijd van tx-1, tx-2... = tijd van tx.
|
||||
if ($("#time_from_" + fieldId).timePickerGetTime().getTime() < $("#time_from_" + calArray[i].id).timePickerGetTime().getTime())
|
||||
{ // Datum + tijd overnemen
|
||||
// Dezelfde datum overnemen
|
||||
$("#" + calArray[i].id).val(new Date(parseInt($("#" + fieldId).val())).midnight().getTime() + $("#time_from_" + fieldId).timePickerGetTime().getTime());
|
||||
// Dezelfde tijd overnemen
|
||||
//$("#time_from_" + calArray[i].id).timePickerSetTime($("#time_from_" + fieldId).timePickerGetTime().getTime());
|
||||
$("#time_from_" + calArray[i].id).val($("#time_from_" + fieldId).val());
|
||||
}
|
||||
else
|
||||
{ // Dezelfde datum en de oude eigen tijd behouden
|
||||
$("#" + calArray[i].id).val(new Date(parseInt($("#" + fieldId).val())).midnight().getTime() + $("#time_from_" + calArray[i].id).timePickerGetTime().getTime());
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$("#" + calArray[i].id).val(new Date(parseInt($("#" + fieldId).val())).midnight().getTime());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
</script>
|
||||
</script>
|
||||
<%
|
||||
}
|
||||
// TODO met params.mode kan evt beperkingen worden meegegeven, vgl. suggest filtcode
|
||||
@@ -140,10 +65,10 @@ function FCLTcalendar (fieldID, params)
|
||||
var readotag = params.readonly? " readonly" : "";
|
||||
if (params.label)
|
||||
{ %>
|
||||
<td class="label"><label for="show_<%=fieldID%>"><%=params.label%>:</label></td>
|
||||
<td class="label"><label for="show_<%=fieldID%>"><nobr><%=params.label%>:</nobr></label></td>
|
||||
<td>
|
||||
<% } %>
|
||||
<input class="flddate" type="text" <%=readotag%> id="show_<%=fieldID%>" value="<%=iniDate%>">
|
||||
<input class="flddate<%=params.required?" required":""%>" type="text" <%=readotag%> id="show_<%=fieldID%>" value="<%=iniDate%>">
|
||||
<%
|
||||
if (params.timeField)
|
||||
{ %>
|
||||
@@ -165,26 +90,26 @@ function FCLTcalendar (fieldID, params)
|
||||
// Indien er niveau's zijn in tijd tussen meerdere kalenders
|
||||
<% if (params.volgnr)
|
||||
{ %>
|
||||
calArray.push(new calendar("<%=fieldID%>", <%=params.volgnr%>));
|
||||
calArray.push({ id: "<%=fieldID%>", volgnr: <%=params.volgnr%>});
|
||||
<% } %>
|
||||
var nrCals = <%=params.calendars || 1%>;
|
||||
var nextmonth = new Date();
|
||||
nextmonth.setMonth(nextmonth.getMonth()+Math.floor(nrCals/2));
|
||||
$("#show_<%=fieldID%>").DatePicker(
|
||||
{ date: [],//new Date(<%=initDate.valueOf()%>),
|
||||
{ date: [],
|
||||
format: 'd-m-Y',
|
||||
calendars: nrCals,
|
||||
current: nextmonth,
|
||||
locale: LCL.shared.calendar_names,
|
||||
onBeforeShow: function()
|
||||
{
|
||||
if ($('#show_<%=fieldID%>').val())
|
||||
{
|
||||
$('#show_<%=fieldID%>').DatePickerSetDate($('#show_<%=fieldID%>').val(), true);
|
||||
$('#show_<%=fieldID%>').DatePickerSetDate($('#show_<%=fieldID%>').val(), false);
|
||||
}
|
||||
},
|
||||
onChange: function(formatted, dates)
|
||||
{
|
||||
//debugger;
|
||||
$('#show_<%=fieldID%>').val(formatted);
|
||||
|
||||
<% if (params.timeField) { %>
|
||||
@@ -211,7 +136,7 @@ function FCLTcalendar (fieldID, params)
|
||||
<% } %>
|
||||
<% if (params.volgnr)
|
||||
{ %>
|
||||
checkVolgnr("<%=fieldID%>", <%=params.volgnr%>, <%=params.timeField? 1 : 0%> == 1);
|
||||
cal_checkVolgnr("<%=fieldID%>", <%=params.volgnr%>, <%=params.timeField? 1 : 0%> == 1);
|
||||
<% } %>
|
||||
},
|
||||
onRender: function(datum)
|
||||
@@ -259,7 +184,7 @@ function FCLTcalendar (fieldID, params)
|
||||
}
|
||||
%>
|
||||
$("#time_from_<%=fieldID%>").timePicker(
|
||||
{ step: <%=(params.timeStep||15)%>,
|
||||
{ step: <%=(params.timeStep || 15)%>,
|
||||
startTime : "<%=params.startTime%>", // TODO
|
||||
endTime : "<%=params.endTime%>", // TODO
|
||||
onChange: function (newVal)
|
||||
@@ -268,7 +193,7 @@ function FCLTcalendar (fieldID, params)
|
||||
+ $("#time_from_<%=fieldID%>").timePickerGetTime().getTime())
|
||||
<% if (params.volgnr)
|
||||
{ %>
|
||||
checkVolgnr("<%=fieldID%>", <%=params.volgnr%>, <%=params.timeField? 1 : 0%> == 1);
|
||||
cal_checkVolgnr("<%=fieldID%>", <%=params.volgnr%>, <%=params.timeField? 1 : 0%> == 1);
|
||||
<% } %>
|
||||
}
|
||||
});
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* $Revision: 1 $
|
||||
* $Modtime: 30-09-09 17:47 $
|
||||
* $Revision: 2 $
|
||||
* $Modtime: 3-11-09 14:51 $
|
||||
*/
|
||||
|
||||
|
||||
@@ -8,11 +8,14 @@
|
||||
html {
|
||||
overflow: auto;
|
||||
background-color: white;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
body {
|
||||
text-align: left;
|
||||
font-family: Tahoma, Verdana, Geneva, Arial, Helvetica, sans-serif;
|
||||
xfont-family: Tahoma, Verdana, Geneva, Arial, Helvetica, sans-serif;
|
||||
font-family: lucida grande,tahoma,verdana,arial,sans-serif;
|
||||
font-size: 8pt;
|
||||
margin: 0;
|
||||
padding:0;
|
||||
@@ -28,17 +31,17 @@ div { border: 0; }
|
||||
background-color: #DBE0DB;
|
||||
margin: 0;
|
||||
}
|
||||
/* logintable fits into modal login frame,
|
||||
matches secur_frame (minus 30 for title) */
|
||||
#logintable {
|
||||
border: 1px #000000 solid;
|
||||
width: 300px;
|
||||
margin: 0;
|
||||
height: 150px;
|
||||
|
||||
#ifl_f #buttons {
|
||||
margin-top: 10px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
#secur_frame {
|
||||
padding: 0;
|
||||
#logintable {
|
||||
border: 0px solid red;
|
||||
width: 290px;
|
||||
margin: 20px;
|
||||
}
|
||||
#mobbutton {
|
||||
padding-left: 2px;
|
||||
}
|
||||
#mainbody {
|
||||
width: 100%;
|
||||
@@ -50,13 +53,12 @@ div { border: 0; }
|
||||
}
|
||||
|
||||
#showbody {
|
||||
/* opacity:0.4;
|
||||
filter:alpha(opacity=40); */
|
||||
background-color: #DDDDDD;
|
||||
xbackground-image:url(../Pictures/bodybgrnd.jpg );
|
||||
xbackground-image:url(../Pictures/bodybgrnd.jpg );
|
||||
}
|
||||
#editbody, #rejectbody {
|
||||
background-color: #F3F3F3;
|
||||
xbackground-color: #F3F3F3;
|
||||
background-color: #BBBBBB;
|
||||
}
|
||||
|
||||
#searchbody {
|
||||
@@ -66,24 +68,29 @@ div { border: 0; }
|
||||
/* generic tag styles */
|
||||
input, textarea, select, td, th {
|
||||
font-size: 8pt;
|
||||
padding: 1px 0 1px 2px;
|
||||
padding: 0px 0 1px 2px;
|
||||
margin:0;
|
||||
border:0;
|
||||
}
|
||||
input[type=text], select, textarea, select {
|
||||
input[type=text], textarea, select {
|
||||
border:1px solid #999999;
|
||||
}
|
||||
input[type=text]:hover, select:hover, textarea:hover, select:hover {
|
||||
input[type=text]:hover, textarea:hover, select:hover {
|
||||
background-color:#FEFEFE;
|
||||
}
|
||||
|
||||
input[type=checkbox]{
|
||||
background-color:transparent;
|
||||
}
|
||||
|
||||
input[type=submit]{
|
||||
/* display:none;*/
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
select {
|
||||
background-color: #FAFAFA;
|
||||
}
|
||||
|
||||
input[readonly], select[readonly], textarea[readonly], input[readonly]:hover, select[readonly]:hover, textarea[readonly]:hover {
|
||||
background-color: transparent;
|
||||
border: 1px solid #EEEEEE;
|
||||
@@ -103,6 +110,10 @@ h3 {
|
||||
text-align:left;
|
||||
}
|
||||
|
||||
a[href^="mailto:"] {
|
||||
text-decoration: none;
|
||||
color: #333;
|
||||
}
|
||||
a:hover {
|
||||
text-decoration: underline;
|
||||
cursor: pointer;
|
||||
@@ -124,6 +135,14 @@ th {
|
||||
cursor: pointer;
|
||||
font-weight: bold;
|
||||
}
|
||||
.tabcloseall {
|
||||
color: #B0B0B0;
|
||||
cursor: pointer;
|
||||
font-weight: bold;
|
||||
font-size: 2em;
|
||||
float: right;
|
||||
padding: 0px 5px 5px 3px;
|
||||
}
|
||||
.hot {
|
||||
color: red;
|
||||
}
|
||||
@@ -144,6 +163,7 @@ div#PersFAC, div#ProfFAC, div#MgtFAC {
|
||||
|
||||
/* headerstyles */
|
||||
#headerblok {
|
||||
width:100%;
|
||||
float: right;
|
||||
}
|
||||
#headersuggest {
|
||||
@@ -158,12 +178,21 @@ div#PersFAC, div#ProfFAC, div#MgtFAC {
|
||||
width:250px;
|
||||
}
|
||||
#headerdate {
|
||||
font-style: smallcaps;
|
||||
font-weight: bold;
|
||||
text-align: right;
|
||||
border: 0;
|
||||
padding-right: 20px;
|
||||
}
|
||||
#headerprefix {
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
border: 0;
|
||||
color: red;
|
||||
position: absolute;
|
||||
padding-left: 400px;
|
||||
padding-top: 10px;
|
||||
font-size: 3.0em;
|
||||
}
|
||||
#headerfunctions {
|
||||
float: right;
|
||||
margin-top: 2px;
|
||||
@@ -180,6 +209,14 @@ div#PersFAC, div#ProfFAC, div#MgtFAC {
|
||||
text-align: right;
|
||||
padding-right: 5px
|
||||
}
|
||||
#headerlogout:hover, #headerhelp:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
#loggedinuser {
|
||||
display: inline;
|
||||
text-align: right;
|
||||
padding-right: 180px
|
||||
}
|
||||
|
||||
/* VOOR REGELS IN EEN OVERZICHT */
|
||||
div.ias {
|
||||
@@ -194,6 +231,14 @@ div.ias span{}
|
||||
color: blue;
|
||||
}
|
||||
.dirty td { color: #808080 }
|
||||
.inlinedetails { padding-left: 20px;
|
||||
background-repeat:no-repeat!important;
|
||||
background-image:url(../Pictures/tree_min.gif)!important;
|
||||
cursor: pointer;
|
||||
}
|
||||
.inlinedetails.closed { background-image:url(../Pictures/tree_plus.gif)!important;}
|
||||
|
||||
|
||||
|
||||
/* blockstyles */
|
||||
|
||||
@@ -243,7 +288,7 @@ div.fcltframeheader {
|
||||
/* Een kader om velden in een view-editscherm */
|
||||
.fcltblock {
|
||||
margin:2px;
|
||||
padding:6px;
|
||||
padding:0px;
|
||||
text-align:left;
|
||||
}
|
||||
#editbody .fcltblock {
|
||||
@@ -256,19 +301,31 @@ div.fcltframeheader {
|
||||
border:5px solid #D3D3D3;
|
||||
}
|
||||
|
||||
|
||||
.fcltblocktab {
|
||||
border: 0;
|
||||
margin-top: 0px;
|
||||
padding: 0;
|
||||
border-collapse: collapse;
|
||||
border-spacing:0;
|
||||
}
|
||||
.fcltblockhead {
|
||||
background-color:#D3D3D3;
|
||||
font-weight: bold;
|
||||
font-size: 1.5em;
|
||||
font-size: 1.2em;
|
||||
padding-bottom: 5px;
|
||||
}
|
||||
.fcltblocktab {}
|
||||
|
||||
#editbody .fcltblockhead {
|
||||
background-color:#B3B3B3;
|
||||
}
|
||||
#showbody .fcltblockhead {
|
||||
background-color:#D3D3D3;
|
||||
color: #111111;
|
||||
}
|
||||
.fcltblock .inside {
|
||||
margin: 5px;
|
||||
}
|
||||
|
||||
|
||||
.inside {
|
||||
margin:0;
|
||||
@@ -277,8 +334,8 @@ div.fcltframeheader {
|
||||
|
||||
/* For my personalized homepage*/
|
||||
#mywelcome , #mymessages, #myactions{
|
||||
background-image: url(../Pictures/portalbg.jpg);
|
||||
background-color: #E73535;
|
||||
xbackground-image: url(../Pictures/portalbg.jpg);
|
||||
background-color: #a0a0a0;
|
||||
color: white;
|
||||
padding-bottom: 2px;
|
||||
height: 70%;
|
||||
@@ -328,7 +385,6 @@ div.fcltframeheader {
|
||||
}
|
||||
#search div.fcltblock {
|
||||
margin:0px;
|
||||
padding:6px;
|
||||
background-color:#F0F0F0;
|
||||
border:5px solid #DFDFD3;
|
||||
text-align:left;
|
||||
@@ -337,6 +393,10 @@ div.fcltframeheader {
|
||||
color: #68698E;
|
||||
}
|
||||
|
||||
#search div.fcltblockhead {
|
||||
background-color: #DFDFD3;
|
||||
}
|
||||
|
||||
.searchkolom1, .searchkolom2 {
|
||||
vertical-align:top;
|
||||
width:50%;
|
||||
@@ -384,6 +444,7 @@ div.fcltframeheader {
|
||||
margin-top: 0.1em;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
/* een button */
|
||||
#buttons ul li, #buttons ul li a {
|
||||
background-color: #E9E9E9;
|
||||
@@ -397,6 +458,7 @@ div.fcltframeheader {
|
||||
padding: 2px 5px 2px 5px;
|
||||
margin: 1px;
|
||||
text-align: center;
|
||||
background-color:transparent;
|
||||
}
|
||||
|
||||
#buttons ul li.vertical {
|
||||
@@ -434,13 +496,27 @@ div#buttons.dialog img {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
img.details, span.details, tr.details {
|
||||
img.details, span.details, tr.details, div.ref {
|
||||
border: 0;
|
||||
cursor: pointer;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
/* moreinfo als link ipv icon */
|
||||
input.details {
|
||||
cursor: pointer;
|
||||
color: #2222CC;
|
||||
}
|
||||
input.details:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
.mover {
|
||||
width: 30px;
|
||||
cursor: pointer;
|
||||
text-align: center;
|
||||
font-weight: normal;
|
||||
font-size: 2em;
|
||||
}
|
||||
|
||||
div#result {
|
||||
width: 100%;
|
||||
@@ -463,6 +539,10 @@ div#edit {
|
||||
/*
|
||||
* OVERZICHTEN. Alle lijsten hebben class rstable
|
||||
*/
|
||||
#rstable {
|
||||
border-spacing: 0;
|
||||
}
|
||||
|
||||
.rstable
|
||||
{
|
||||
clear: both;
|
||||
@@ -521,17 +601,20 @@ div#edit {
|
||||
margin-left:10px;
|
||||
vertical-align: bottom;
|
||||
}
|
||||
/*.rstable tr:hover td {filter:alpha(opacity=66);-moz-opacity:0.66;opacity:0.66;} */
|
||||
.rstable tr:hover .ias {visibility:visible;}
|
||||
.greenBack td { background-color: #66FF66;} /* fin.: functioneel noemen */
|
||||
.redBack td { background-color: #FF6666;} /* fin.: functioneel noemen */
|
||||
|
||||
/* Voor fin facturen */
|
||||
.withinmargin td { background-color: #66FF66;}
|
||||
.outsidemargin td { background-color: #FF6666;}
|
||||
|
||||
.nowrap { white-space: nowrap;}
|
||||
|
||||
/* all resulttables can be overruled by their id, like #algtable {} here */
|
||||
#resvtabletiny, #resctabletiny, #beztabletiny {
|
||||
#resvtabletiny, #resctabletiny {
|
||||
width: 55%;
|
||||
}
|
||||
|
||||
#beztabletiny { width: 100%}
|
||||
#cntscopetable {width: 60%;}
|
||||
#faqtable { padding: 0; margin:0; width: 850px;}
|
||||
#faqtable thead { display: none;}
|
||||
#faqtable tr {}
|
||||
@@ -564,34 +647,6 @@ div#edit {
|
||||
.unsolved td {
|
||||
background-color: #A3B1E3;
|
||||
}
|
||||
.deleted {
|
||||
text-decoration: line-through;
|
||||
}
|
||||
.outofbounds {
|
||||
color: red;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.fatal {
|
||||
background-color: red;
|
||||
color: yellow;
|
||||
padding: 5px;
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.noshow {
|
||||
color: yellow;
|
||||
font-weight: bold;
|
||||
background-color: red;
|
||||
}
|
||||
.rsSummary {
|
||||
float: left;
|
||||
background-color: #808080;
|
||||
color: #FFFFFF;
|
||||
padding: 0px; /* moet 0, anders zie je nog iets als-ie hidden is */
|
||||
}
|
||||
|
||||
|
||||
#rsMaxHistoryB, #rsMaxHistoryE {
|
||||
clear: both;
|
||||
@@ -646,13 +701,32 @@ div#edit {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#phonebookteaser {
|
||||
font-size: 0.7em;
|
||||
padding-left: 78px;
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.required {
|
||||
.JGLrequired {
|
||||
background-image:url(../Pictures/required.gif);
|
||||
background-repeat:no-repeat;
|
||||
background-position:right;
|
||||
}
|
||||
|
||||
/* pas op: option's css kent alleen background-color by IE */
|
||||
input[type=text].required, select.required, option.required, textarea.required, select.required, .required {
|
||||
xbackground-color:#ffe0e0;
|
||||
border-left:1px dotted red;
|
||||
}
|
||||
|
||||
.required.missing {
|
||||
background-color:#ffB0B0;
|
||||
}
|
||||
|
||||
.number.bad, .float.bad, .currency.bad {
|
||||
background-color:#ffB0B0;
|
||||
}
|
||||
|
||||
/* TODO: Ander plaatje? */
|
||||
.calvrij {background-image:url(../Pictures/no_photo.gif);
|
||||
background-position:center;
|
||||
@@ -686,41 +760,6 @@ div#statusboxes {
|
||||
float:right;
|
||||
}
|
||||
|
||||
#resselector option {
|
||||
background-color: #94F6C4;
|
||||
}
|
||||
|
||||
#resselector .fatal {
|
||||
background-color: red;
|
||||
color: yellow;
|
||||
}
|
||||
|
||||
#selectedDates{
|
||||
float: right;
|
||||
}
|
||||
/* RES planboard noot: res kan per id, obj gaat via class */
|
||||
#tab_room_sched tr, .tab_obj_sched tr {background-color: #ddd;}
|
||||
#tab_room_sched tr:hover, .tab_obj_sched tr:hover {background-color: #CCC;}
|
||||
#tab_room_sched tr.selected, .tab_obj_sched tr.selected { font-weight: bold; }
|
||||
|
||||
/* voor de tr-s, lijkt me niet zo goed icm bovenstaande */
|
||||
.planbord {
|
||||
background-color: white;
|
||||
}
|
||||
.planbordlegenda td {
|
||||
background-color: white;
|
||||
}
|
||||
#planbordlegenda {
|
||||
width: 100%;
|
||||
}
|
||||
#planbordlegenda tr td {
|
||||
border: 0;
|
||||
}
|
||||
#tab_room_sched td, .tab_obj_sched td {
|
||||
border-bottom: 1px solid black;
|
||||
border-right: 1px solid white;
|
||||
}
|
||||
|
||||
/* all other pages */
|
||||
|
||||
|
||||
@@ -729,10 +768,13 @@ div#statusboxes {
|
||||
*/
|
||||
#algInfo,
|
||||
#algLoc1,
|
||||
#kpnMan,
|
||||
#prsPerslid,
|
||||
#prsAfd,
|
||||
#besHeader,
|
||||
#besItemSel,
|
||||
#bezAfspraak,
|
||||
#cntInfo,
|
||||
#cntFlex,
|
||||
#msgPrs,
|
||||
#opdrOpdracht,
|
||||
#resPlaats,
|
||||
@@ -741,15 +783,19 @@ div#statusboxes {
|
||||
#mldBes,
|
||||
#mldMelding,
|
||||
#opdrKosten,
|
||||
#bedrNaw,
|
||||
#bedrSrt,
|
||||
#bedrTechn,
|
||||
#prsNaw,
|
||||
#prsUsrFlex,
|
||||
#resUser {
|
||||
clear: left;
|
||||
float:left;
|
||||
width: 47%;
|
||||
width: 48%;
|
||||
}
|
||||
|
||||
#algFlex,
|
||||
#algLoc2,
|
||||
#bezBezoekers,
|
||||
#prsPerslid2,
|
||||
#cntData,
|
||||
#cntFindata,
|
||||
#cntBedrijf,
|
||||
@@ -762,13 +808,23 @@ div#statusboxes {
|
||||
#resInfo,
|
||||
#mldFlex,
|
||||
#opdrFlex,
|
||||
#prsFin,
|
||||
#prsSubst,
|
||||
#prsAut,
|
||||
#prsIns,
|
||||
#bedrContact,
|
||||
#bedrRelatie,
|
||||
#resFlex {
|
||||
clear: right;
|
||||
float:right;
|
||||
width: 46%;
|
||||
}
|
||||
|
||||
#cntFlex,
|
||||
#wpInfo,
|
||||
#algFlex,
|
||||
#prsFlex,
|
||||
#bezAfspraak,
|
||||
#bezBezoekers,
|
||||
#mldOmschrijving,
|
||||
#mldBehandel,
|
||||
#msgMessage {
|
||||
@@ -794,15 +850,24 @@ div#statusboxes {
|
||||
}
|
||||
|
||||
/* functional field classes */
|
||||
.fldreg, .flddis, .fldloc, .fldbld, .fldflr, .fldroom, .fldwpl, .fldpers, .fldsrch, .flddisc, .flddiscmulti, .fldstdmmulti, .flddep, .fldsrtdisc, .fldkp, .fldstdm,
|
||||
.fldreg, .flddis, .fldloc, .fldbld, .fldflr, .fldroom, .fldwpl, .fldpers, .fldcontactpers, .flduitvoerende,
|
||||
.fldsrch, .flddisc, .flddiscmulti, .fldstdmmulti, .flddep, .fldsrtdisc, .fldkp, .fldstdm,
|
||||
.fldopdrnr, .fldhandler, .fldopdrtype, .fldcontract, .fldcntnr, .fldorderby, .fldgroupby, .fldname,
|
||||
.fldroomcatmulti, .fldobjcatmulti, .fldartcatmulti, .fldartmulti, .fldartgroup, .fldoms, .fldremark,
|
||||
.fldsrtgroup, .fldsrtdeel, .fldsrtdeelmulti, .flditem, .fldsupplier, .fldgroupbysec, .fldrfonum, .fldrfostatus, .fldordernum, .fldorderstatus,
|
||||
.fldgastheer, .fldcntnum, .flddiscript, .fldmantel, .fldresroom, .fldopstel, .fldsel_activity, .fldresdesc,
|
||||
.fldobjsort, .fldmsgurl, .fldmsgsubj, .fldmsggroup, .fldmelder, .fldflex, .fldprio, .fld, .fldsrt,
|
||||
.fldnewvalue, .fldmldobjs, .fldfinnum, .flddebtor, .fldfintype, .fldfinnum, .fldfinstatus, .fldusrfilter {
|
||||
.fldnewvalue, .fldmldobjs, .fldfinnum, .flddebtor, .fldfintype, .fldfinnum, .fldfinstatus, .fldusrfilter,
|
||||
.flddienst, .fldmld_adres, .fldbld_srtkey, .fldter_srkey, .fldroom_srt, .flddel_address,
|
||||
.fldcntmeldkey, .fldsrttype, .fldbdr_key, .fldordernr, .flddept, .fldmld_adrkey, .fldfac_prkey, .fldprs_srtkey, .fldselect, .fldbudgeth, .fldkstplgr
|
||||
{
|
||||
width: 250px;
|
||||
}
|
||||
/* ouderwetse listboxes */
|
||||
.fldbedrijf, .fldfunc, .fldroomcat
|
||||
{
|
||||
width: 254px;
|
||||
}
|
||||
|
||||
.flddate, .fldtime {
|
||||
width: 70px;
|
||||
@@ -813,6 +878,7 @@ div#statusboxes {
|
||||
.flddatetime, .fldresstatus, #existingDates, #newDates, .fldmsgprio, .fldafspnum {
|
||||
width: 124px;
|
||||
}
|
||||
|
||||
.fldmldnum, .fldresnum, .flddeel {
|
||||
width: 124px;
|
||||
color: black;
|
||||
@@ -825,18 +891,25 @@ div#statusboxes {
|
||||
height: 200px;
|
||||
}
|
||||
|
||||
.fldbezcnt {
|
||||
.flduren, .flduurtarief, .fldmatkosten, .fldcorrkosten, .fldtotkosten, .fldbeslimiet {
|
||||
width: 100px;
|
||||
text-align:right;
|
||||
padding-right:2px;
|
||||
}
|
||||
|
||||
.fldbezcnt, .fldflrnum, .fldnrper {
|
||||
width: 26px;
|
||||
text-align:right;
|
||||
padding-right:2px;
|
||||
}
|
||||
|
||||
.fldresroomedit { text-decoration: underline; cursor: pointer; background-color: transparent; }
|
||||
|
||||
.fldtxt {width: 100%;}
|
||||
.fldtxt, .fldomschr {width: 100%;}
|
||||
|
||||
#fldobjPossible, #fldobjExist {width: 200px;}
|
||||
/* functional checkbox fields classes */
|
||||
.fldmldnew, .fldmldbusy, .fldmldrej, .fldmlddone, .fldmldself, .fldmldafm, .fldmldver,
|
||||
.fldcheck, .fldmldnew, .fldmldbusy, .fldmldrej, .fldmlddone, .fldmldself, .fldmldafm, .fldmldver, fldmldfiat
|
||||
.fldopdrnew, .fldopdrbusy,.fldopdrrej, .fldopdrafm, .fldopdrver,
|
||||
.fldresopen, .fldresclosed, .fldroomcat, .fldobjcat, .fldartcat, .fldresactual, .fldresdeleted,
|
||||
.fldrfonew, .fldrfoopen, .fldrfodelivered, .fldrfoclosed, .fldopdrrej, .fldopdropen, .fldopdrdelivered, .fldopdrclosed,
|
||||
@@ -844,7 +917,6 @@ div#statusboxes {
|
||||
.fldcntact, .fldcntrap, .fldcntopz, .fldcntverl, .fldinsobjincl, .fldalgbez {
|
||||
}
|
||||
|
||||
|
||||
.flexlabel {
|
||||
background-color: #C8E4C8;
|
||||
text-align: left;
|
||||
@@ -865,8 +937,19 @@ tr.unauthorized {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/* Graphics ; te overleggen met JGL */
|
||||
img#Eview, #mapCell {
|
||||
border: 1px solid #333333;
|
||||
}
|
||||
td.selectable {
|
||||
padding: 0; cursor:pointer;
|
||||
}
|
||||
#docBody {margin:0; padding:0;}
|
||||
|
||||
|
||||
#theTabs {
|
||||
height:100%;
|
||||
padding-top:1px;
|
||||
}
|
||||
|
||||
/* menu styles */
|
||||
li.menu ul li a {
|
||||
@@ -947,4 +1030,57 @@ div#MgtFAC ul li span.menukop {
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
.deleted {
|
||||
text-decoration: line-through;
|
||||
}
|
||||
.outofbounds {
|
||||
color: red;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
input.activeinterval {
|
||||
font-weight: bold;
|
||||
color: red;
|
||||
}
|
||||
|
||||
.fatal {
|
||||
background-color: red;
|
||||
color: yellow;
|
||||
padding: 5px;
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.noshow {
|
||||
color: yellow;
|
||||
font-weight: bold;
|
||||
background-color: red;
|
||||
}
|
||||
.rsSummary {
|
||||
float: left;
|
||||
background-color: #808080;
|
||||
color: #FFFFFF;
|
||||
padding: 0px; /* moet 0, anders zie je nog iets als-ie hidden is */
|
||||
}
|
||||
|
||||
/* FG tr legenda classes*/
|
||||
.openFG, .closedFG {
|
||||
background-repeat:no-repeat;
|
||||
background-position: 2px 2px;
|
||||
font-weight: bold;
|
||||
color: white;
|
||||
cursor: pointer;
|
||||
}
|
||||
.openFG {
|
||||
background-image:url(../Pictures/tree_min.gif);
|
||||
background-color: #808080;
|
||||
}
|
||||
.closedFG {
|
||||
background-image:url(../Pictures/tree_plus.gif);
|
||||
background-color: #A0A0A0;
|
||||
}
|
||||
|
||||
|
||||
.openFG td, .closedFG td {
|
||||
padding-left: 25px;
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
<% /*
|
||||
$Revision: 1 $
|
||||
$Modtime: 3-09-09 14:16 $
|
||||
$Revision: 2 $
|
||||
$Modtime: 27-10-09 12:27 $
|
||||
*/ %>
|
||||
|
||||
<%
|
||||
@@ -95,7 +95,7 @@ function discxalg3d (
|
||||
+ " AND wg.ins_discipline_key = i.ins_discipline_key"
|
||||
+ " AND i.ins_discipline_verwijder is NULL";
|
||||
if( pdisc != '') {
|
||||
sqlD += " AND ins_discipline_key IN (" + pdisc + ")";
|
||||
sqlD += " AND i.ins_discipline_key IN (" + pdisc + ")";
|
||||
}
|
||||
sqlD += " ORDER BY 2,1"; // we need this
|
||||
|
||||
|
||||
@@ -1,107 +1,199 @@
|
||||
<%
|
||||
/*
|
||||
json2.js
|
||||
2007-12-02
|
||||
http://www.JSON.org/json2.js
|
||||
2009-09-29
|
||||
|
||||
Public Domain
|
||||
Public Domain.
|
||||
|
||||
No warranty expressed or implied. Use at your own risk.
|
||||
NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.
|
||||
|
||||
See http://www.JSON.org/js.html
|
||||
|
||||
This file creates a global JSON object containing two methods:
|
||||
This file creates a global JSON object containing two methods: stringify
|
||||
and parse.
|
||||
|
||||
JSON.stringify(value, whitelist)
|
||||
JSON.stringify(value, replacer, space)
|
||||
value any JavaScript value, usually an object or array.
|
||||
|
||||
whitelist an optional array prameter that determines how object
|
||||
values are stringified.
|
||||
replacer an optional parameter that determines how object
|
||||
values are stringified for objects. It can be a
|
||||
function or an array of strings.
|
||||
|
||||
space an optional parameter that specifies the indentation
|
||||
of nested structures. If it is omitted, the text will
|
||||
be packed without extra whitespace. If it is a number,
|
||||
it will specify the number of spaces to indent at each
|
||||
level. If it is a string (such as '\t' or ' '),
|
||||
it contains the characters used to indent at each level.
|
||||
|
||||
This method produces a JSON text from a JavaScript value.
|
||||
There are three possible ways to stringify an object, depending
|
||||
on the optional whitelist parameter.
|
||||
|
||||
If an object has a toJSON method, then the toJSON() method will be
|
||||
called. The value returned from the toJSON method will be
|
||||
When an object value is found, if the object contains a toJSON
|
||||
method, its toJSON method will be called and the result will be
|
||||
stringified. A toJSON method does not serialize: it returns the
|
||||
value represented by the name/value pair that should be serialized,
|
||||
or undefined if nothing should be serialized. The toJSON method
|
||||
will be passed the key associated with the value, and this will be
|
||||
bound to the value
|
||||
|
||||
For example, this would serialize Dates as ISO strings.
|
||||
|
||||
Date.prototype.toJSON = function (key) {
|
||||
function f(n) {
|
||||
// Format integers to have at least two digits.
|
||||
return n < 10 ? '0' + n : n;
|
||||
}
|
||||
|
||||
return this.getUTCFullYear() + '-' +
|
||||
f(this.getUTCMonth() + 1) + '-' +
|
||||
f(this.getUTCDate()) + 'T' +
|
||||
f(this.getUTCHours()) + ':' +
|
||||
f(this.getUTCMinutes()) + ':' +
|
||||
f(this.getUTCSeconds()) + 'Z';
|
||||
};
|
||||
|
||||
You can provide an optional replacer method. It will be passed the
|
||||
key and value of each member, with this bound to the containing
|
||||
object. The value that is returned from your method will be
|
||||
serialized. If your method returns undefined, then the member will
|
||||
be excluded from the serialization.
|
||||
|
||||
If the replacer parameter is an array of strings, then it will be
|
||||
used to select the members to be serialized. It filters the results
|
||||
such that only members with keys listed in the replacer array are
|
||||
stringified.
|
||||
|
||||
Otherwise, if the optional whitelist parameter is an array, then
|
||||
the elements of the array will be used to select members of the
|
||||
object for stringification.
|
||||
|
||||
Otherwise, if there is no whitelist parameter, then all of the
|
||||
members of the object will be stringified.
|
||||
|
||||
Values that do not have JSON representaions, such as undefined or
|
||||
Values that do not have JSON representations, such as undefined or
|
||||
functions, will not be serialized. Such values in objects will be
|
||||
dropped; in arrays will be replaced with null.
|
||||
JSON.stringify(undefined) returns undefined. Dates will be
|
||||
stringified as quoted ISO dates.
|
||||
dropped; in arrays they will be replaced with null. You can use
|
||||
a replacer function to replace those with JSON values.
|
||||
JSON.stringify(undefined) returns undefined.
|
||||
|
||||
The optional space parameter produces a stringification of the
|
||||
value that is filled with line breaks and indentation to make it
|
||||
easier to read.
|
||||
|
||||
If the space parameter is a non-empty string, then that string will
|
||||
be used for indentation. If the space parameter is a number, then
|
||||
the indentation will be that many spaces.
|
||||
|
||||
Example:
|
||||
|
||||
var text = JSON.stringify(['e', {pluribus: 'unum'}]);
|
||||
text = JSON.stringify(['e', {pluribus: 'unum'}]);
|
||||
// text is '["e",{"pluribus":"unum"}]'
|
||||
|
||||
JSON.parse(text, filter)
|
||||
This method parses a JSON text to produce an object or
|
||||
array. It can throw a SyntaxError exception.
|
||||
|
||||
The optional filter parameter is a function that can filter and
|
||||
transform the results. It receives each of the keys and values, and
|
||||
its return value is used instead of the original value. If it
|
||||
returns what it received, then structure is not modified. If it
|
||||
returns undefined then the member is deleted.
|
||||
text = JSON.stringify(['e', {pluribus: 'unum'}], null, '\t');
|
||||
// text is '[\n\t"e",\n\t{\n\t\t"pluribus": "unum"\n\t}\n]'
|
||||
|
||||
text = JSON.stringify([new Date()], function (key, value) {
|
||||
return this[key] instanceof Date ?
|
||||
'Date(' + this[key] + ')' : value;
|
||||
});
|
||||
// text is '["Date(---current time---)"]'
|
||||
|
||||
|
||||
JSON.parse(text, reviver)
|
||||
This method parses a JSON text to produce an object or array.
|
||||
It can throw a SyntaxError exception.
|
||||
|
||||
The optional reviver parameter is a function that can filter and
|
||||
transform the results. It receives each of the keys and values,
|
||||
and its return value is used instead of the original value.
|
||||
If it returns what it received, then the structure is not modified.
|
||||
If it returns undefined then the member is deleted.
|
||||
|
||||
Example:
|
||||
|
||||
// Parse the text. If a key contains the string 'date' then
|
||||
// convert the value to a date.
|
||||
// Parse the text. Values that look like ISO date strings will
|
||||
// be converted to Date objects.
|
||||
|
||||
myData = JSON.parse(text, function (key, value) {
|
||||
return key.indexOf('date') >= 0 ? new Date(value) : value;
|
||||
var a;
|
||||
if (typeof value === 'string') {
|
||||
a =
|
||||
/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/.exec(value);
|
||||
if (a) {
|
||||
return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4],
|
||||
+a[5], +a[6]));
|
||||
}
|
||||
}
|
||||
return value;
|
||||
});
|
||||
|
||||
myData = JSON.parse('["Date(09/09/2001)"]', function (key, value) {
|
||||
var d;
|
||||
if (typeof value === 'string' &&
|
||||
value.slice(0, 5) === 'Date(' &&
|
||||
value.slice(-1) === ')') {
|
||||
d = new Date(value.slice(5, -1));
|
||||
if (d) {
|
||||
return d;
|
||||
}
|
||||
}
|
||||
return value;
|
||||
});
|
||||
|
||||
|
||||
This is a reference implementation. You are free to copy, modify, or
|
||||
redistribute.
|
||||
|
||||
Use your own copy. It is extremely unwise to load third party
|
||||
code into your pages.
|
||||
This code should be minified before deployment.
|
||||
See http://javascript.crockford.com/jsmin.html
|
||||
|
||||
USE YOUR OWN COPY. IT IS EXTREMELY UNWISE TO LOAD CODE FROM SERVERS YOU DO
|
||||
NOT CONTROL.
|
||||
*/
|
||||
|
||||
/*jslint evil: true */
|
||||
/*jslint evil: true, strict: false */
|
||||
|
||||
/*global JSON */
|
||||
|
||||
/*members "\b", "\t", "\n", "\f", "\r", "\"", JSON, "\\", apply,
|
||||
charCodeAt, floor, getUTCDate, getUTCFullYear, getUTCHours,
|
||||
getUTCMinutes, getUTCMonth, getUTCSeconds, hasOwnProperty, join, length,
|
||||
parse, propertyIsEnumerable, prototype, push, replace, stringify, test,
|
||||
toJSON, toString
|
||||
/*members "", "\b", "\t", "\n", "\f", "\r", "\"", JSON, "\\", apply,
|
||||
call, charCodeAt, getUTCDate, getUTCFullYear, getUTCHours,
|
||||
getUTCMinutes, getUTCMonth, getUTCSeconds, hasOwnProperty, join,
|
||||
lastIndex, length, parse, prototype, push, replace, slice, stringify,
|
||||
test, toJSON, toString, valueOf
|
||||
*/
|
||||
|
||||
|
||||
// Create a JSON object only if one does not already exist. We create the
|
||||
// methods in a closure to avoid creating global variables.
|
||||
|
||||
if (!this.JSON) {
|
||||
JSON = {};
|
||||
}
|
||||
|
||||
JSON = function () {
|
||||
(function () {
|
||||
|
||||
function f(n) { // Format integers to have at least two digits.
|
||||
return n < 10 ? '0' + n : n;
|
||||
}
|
||||
function f(n) {
|
||||
// Format integers to have at least two digits.
|
||||
return n < 10 ? '0' + n : n;
|
||||
}
|
||||
|
||||
Date.prototype.toJSON = function () {
|
||||
if (typeof Date.prototype.toJSON !== 'function') {
|
||||
|
||||
// Eventually, this method will be based on the date.toISOString method.
|
||||
Date.prototype.toJSON = function (key) {
|
||||
|
||||
return this.getUTCFullYear() + '-' +
|
||||
return isFinite(this.valueOf()) ?
|
||||
this.getUTCFullYear() + '-' +
|
||||
f(this.getUTCMonth() + 1) + '-' +
|
||||
f(this.getUTCDate()) + 'T' +
|
||||
f(this.getUTCHours()) + ':' +
|
||||
f(this.getUTCMinutes()) + ':' +
|
||||
f(this.getUTCSeconds()) + 'Z';
|
||||
f(this.getUTCSeconds()) + 'Z' : null;
|
||||
};
|
||||
|
||||
String.prototype.toJSON =
|
||||
Number.prototype.toJSON =
|
||||
Boolean.prototype.toJSON = function (key) {
|
||||
return this.valueOf();
|
||||
};
|
||||
}
|
||||
|
||||
var m = { // table of character substitutions
|
||||
var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
|
||||
escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
|
||||
gap,
|
||||
indent,
|
||||
meta = { // table of character substitutions
|
||||
'\b': '\\b',
|
||||
'\t': '\\t',
|
||||
'\n': '\\n',
|
||||
@@ -109,167 +201,281 @@ if (!this.JSON) {
|
||||
'\r': '\\r',
|
||||
'"' : '\\"',
|
||||
'\\': '\\\\'
|
||||
};
|
||||
},
|
||||
rep;
|
||||
|
||||
function stringify(value, whitelist) {
|
||||
var a, // The array holding the partial texts.
|
||||
i, // The loop counter.
|
||||
k, // The member key.
|
||||
l, // Length.
|
||||
r = /["\\\x00-\x1f\x7f-\x9f]/g,
|
||||
v; // The member value.
|
||||
|
||||
switch (typeof value) {
|
||||
case 'string':
|
||||
function quote(string) {
|
||||
|
||||
// If the string contains no control characters, no quote characters, and no
|
||||
// backslash characters, then we can safely slap some quotes around it.
|
||||
// Otherwise we must also replace the offending characters with safe sequences.
|
||||
// Otherwise we must also replace the offending characters with safe escape
|
||||
// sequences.
|
||||
|
||||
return r.test(value) ?
|
||||
'"' + value.replace(r, function (a) {
|
||||
var c = m[a];
|
||||
if (c) {
|
||||
return c;
|
||||
}
|
||||
c = a.charCodeAt();
|
||||
return '\\u00' + Math.floor(c / 16).toString(16) +
|
||||
(c % 16).toString(16);
|
||||
}) + '"' :
|
||||
'"' + value + '"';
|
||||
escapable.lastIndex = 0;
|
||||
return escapable.test(string) ?
|
||||
'"' + string.replace(escapable, function (a) {
|
||||
var c = meta[a];
|
||||
return typeof c === 'string' ? c :
|
||||
'\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
|
||||
}) + '"' :
|
||||
'"' + string + '"';
|
||||
}
|
||||
|
||||
case 'number':
|
||||
|
||||
function str(key, holder) {
|
||||
|
||||
// Produce a string from holder[key].
|
||||
|
||||
var i, // The loop counter.
|
||||
k, // The member key.
|
||||
v, // The member value.
|
||||
length,
|
||||
mind = gap,
|
||||
partial,
|
||||
value = holder[key];
|
||||
|
||||
// If the value has a toJSON method, call it to obtain a replacement value.
|
||||
|
||||
if (value && typeof value === 'object' &&
|
||||
typeof value.toJSON === 'function') {
|
||||
value = value.toJSON(key);
|
||||
}
|
||||
|
||||
// If we were called with a replacer function, then call the replacer to
|
||||
// obtain a replacement value.
|
||||
|
||||
if (typeof rep === 'function') {
|
||||
value = rep.call(holder, key, value);
|
||||
}
|
||||
|
||||
// What happens next depends on the value's type.
|
||||
|
||||
switch (typeof value) {
|
||||
case 'string':
|
||||
return quote(value);
|
||||
|
||||
case 'number':
|
||||
|
||||
// JSON numbers must be finite. Encode non-finite numbers as null.
|
||||
|
||||
return isFinite(value) ? String(value) : 'null';
|
||||
return isFinite(value) ? String(value) : 'null';
|
||||
|
||||
case 'boolean':
|
||||
case 'null':
|
||||
return String(value);
|
||||
case 'boolean':
|
||||
case 'null':
|
||||
|
||||
case 'object':
|
||||
// If the value is a boolean or null, convert it to a string. Note:
|
||||
// typeof null does not produce 'null'. The case is included here in
|
||||
// the remote chance that this gets fixed someday.
|
||||
|
||||
// Due to a specification blunder in ECMAScript,
|
||||
// typeof null is 'object', so watch out for that case.
|
||||
return String(value);
|
||||
|
||||
if (!value) {
|
||||
return 'null';
|
||||
}
|
||||
// If the type is 'object', we might be dealing with an object or an array or
|
||||
// null.
|
||||
|
||||
// If the object has a toJSON method, call it, and stringify the result.
|
||||
case 'object':
|
||||
|
||||
if (typeof value.toJSON === 'function') {
|
||||
return stringify(value.toJSON());
|
||||
}
|
||||
a = [];
|
||||
if (typeof value.length === 'number' &&
|
||||
!(value.propertyIsEnumerable('length'))) {
|
||||
// Due to a specification blunder in ECMAScript, typeof null is 'object',
|
||||
// so watch out for that case.
|
||||
|
||||
// The object is an array. Stringify every element. Use null as a placeholder
|
||||
if (!value) {
|
||||
return 'null';
|
||||
}
|
||||
|
||||
// Make an array to hold the partial results of stringifying this object value.
|
||||
|
||||
gap += indent;
|
||||
partial = [];
|
||||
|
||||
// Is the value an array?
|
||||
|
||||
if (Object.prototype.toString.apply(value) === '[object Array]') {
|
||||
|
||||
// The value is an array. Stringify every element. Use null as a placeholder
|
||||
// for non-JSON values.
|
||||
|
||||
l = value.length;
|
||||
for (i = 0; i < l; i += 1) {
|
||||
a.push(stringify(value[i], whitelist) || 'null');
|
||||
}
|
||||
|
||||
// Join all of the elements together and wrap them in brackets.
|
||||
|
||||
return '[' + a.join(',') + ']';
|
||||
length = value.length;
|
||||
for (i = 0; i < length; i += 1) {
|
||||
partial[i] = str(i, value) || 'null';
|
||||
}
|
||||
if (whitelist) {
|
||||
|
||||
// If a whitelist (array of keys) is provided, use it to select the components
|
||||
// of the object.
|
||||
// Join all of the elements together, separated with commas, and wrap them in
|
||||
// brackets.
|
||||
|
||||
l = whitelist.length;
|
||||
for (i = 0; i < l; i += 1) {
|
||||
k = whitelist[i];
|
||||
if (typeof k === 'string') {
|
||||
v = stringify(value[k], whitelist);
|
||||
if (v) {
|
||||
a.push(stringify(k) + ':' + v);
|
||||
}
|
||||
v = partial.length === 0 ? '[]' :
|
||||
gap ? '[\n' + gap +
|
||||
partial.join(',\n' + gap) + '\n' +
|
||||
mind + ']' :
|
||||
'[' + partial.join(',') + ']';
|
||||
gap = mind;
|
||||
return v;
|
||||
}
|
||||
|
||||
// If the replacer is an array, use it to select the members to be stringified.
|
||||
|
||||
if (rep && typeof rep === 'object') {
|
||||
length = rep.length;
|
||||
for (i = 0; i < length; i += 1) {
|
||||
k = rep[i];
|
||||
if (typeof k === 'string') {
|
||||
v = str(k, value);
|
||||
if (v) {
|
||||
partial.push(quote(k) + (gap ? ': ' : ':') + v);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
}
|
||||
} else {
|
||||
|
||||
// Otherwise, iterate through all of the keys in the object.
|
||||
|
||||
for (k in value) {
|
||||
if (typeof k === 'string') {
|
||||
v = stringify(value[k], whitelist);
|
||||
if (v) {
|
||||
a.push(stringify(k) + ':' + v);
|
||||
}
|
||||
for (k in value) {
|
||||
if (Object.hasOwnProperty.call(value, k)) {
|
||||
v = str(k, value);
|
||||
if (v) {
|
||||
partial.push(quote(k) + (gap ? ': ' : ':') + v);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Join all of the member texts together and wrap them in braces.
|
||||
|
||||
return '{' + a.join(',') + '}';
|
||||
}
|
||||
|
||||
// Join all of the member texts together, separated with commas,
|
||||
// and wrap them in braces.
|
||||
|
||||
v = partial.length === 0 ? '{}' :
|
||||
gap ? '{\n' + gap + partial.join(',\n' + gap) + '\n' +
|
||||
mind + '}' : '{' + partial.join(',') + '}';
|
||||
gap = mind;
|
||||
return v;
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
stringify: stringify,
|
||||
parse: function (text, filter) {
|
||||
var j;
|
||||
// If the JSON object does not yet have a stringify method, give it one.
|
||||
|
||||
function walk(k, v) {
|
||||
var i, n;
|
||||
if (v && typeof v === 'object') {
|
||||
for (i in v) {
|
||||
if (Object.prototype.hasOwnProperty.apply(v, [i])) {
|
||||
n = walk(i, v[i]);
|
||||
if (n !== undefined) {
|
||||
v[i] = n;
|
||||
}
|
||||
if (typeof JSON.stringify !== 'function') {
|
||||
JSON.stringify = function (value, replacer, space) {
|
||||
|
||||
// The stringify method takes a value and an optional replacer, and an optional
|
||||
// space parameter, and returns a JSON text. The replacer can be a function
|
||||
// that can replace values, or an array of strings that will select the keys.
|
||||
// A default replacer method can be provided. Use of the space parameter can
|
||||
// produce text that is more easily readable.
|
||||
|
||||
var i;
|
||||
gap = '';
|
||||
indent = '';
|
||||
|
||||
// If the space parameter is a number, make an indent string containing that
|
||||
// many spaces.
|
||||
|
||||
if (typeof space === 'number') {
|
||||
for (i = 0; i < space; i += 1) {
|
||||
indent += ' ';
|
||||
}
|
||||
|
||||
// If the space parameter is a string, it will be used as the indent string.
|
||||
|
||||
} else if (typeof space === 'string') {
|
||||
indent = space;
|
||||
}
|
||||
|
||||
// If there is a replacer, it must be a function or an array.
|
||||
// Otherwise, throw an error.
|
||||
|
||||
rep = replacer;
|
||||
if (replacer && typeof replacer !== 'function' &&
|
||||
(typeof replacer !== 'object' ||
|
||||
typeof replacer.length !== 'number')) {
|
||||
throw new Error('JSON.stringify');
|
||||
}
|
||||
|
||||
// Make a fake root object containing our value under the key of ''.
|
||||
// Return the result of stringifying the value.
|
||||
|
||||
return str('', {'': value});
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
// If the JSON object does not yet have a parse method, give it one.
|
||||
|
||||
if (typeof JSON.parse !== 'function') {
|
||||
JSON.parse = function (text, reviver) {
|
||||
|
||||
// The parse method takes a text and an optional reviver function, and returns
|
||||
// a JavaScript value if the text is a valid JSON text.
|
||||
|
||||
var j;
|
||||
|
||||
function walk(holder, key) {
|
||||
|
||||
// The walk method is used to recursively walk the resulting structure so
|
||||
// that modifications can be made.
|
||||
|
||||
var k, v, value = holder[key];
|
||||
if (value && typeof value === 'object') {
|
||||
for (k in value) {
|
||||
if (Object.hasOwnProperty.call(value, k)) {
|
||||
v = walk(value, k);
|
||||
if (v !== undefined) {
|
||||
value[k] = v;
|
||||
} else {
|
||||
delete value[k];
|
||||
}
|
||||
}
|
||||
}
|
||||
return filter(k, v);
|
||||
}
|
||||
return reviver.call(holder, key, value);
|
||||
}
|
||||
|
||||
|
||||
// Parsing happens in three stages. In the first stage, we run the text against
|
||||
// regular expressions that look for non-JSON patterns. We are especially
|
||||
// concerned with '()' and 'new' because they can cause invocation, and '='
|
||||
// because it can cause mutation. But just to be safe, we want to reject all
|
||||
// unexpected forms.
|
||||
// Parsing happens in four stages. In the first stage, we replace certain
|
||||
// Unicode characters with escape sequences. JavaScript handles many characters
|
||||
// incorrectly, either silently deleting them, or treating them as line endings.
|
||||
|
||||
// We split the first stage into 4 regexp operations in order to work around
|
||||
cx.lastIndex = 0;
|
||||
if (cx.test(text)) {
|
||||
text = text.replace(cx, function (a) {
|
||||
return '\\u' +
|
||||
('0000' + a.charCodeAt(0).toString(16)).slice(-4);
|
||||
});
|
||||
}
|
||||
|
||||
// In the second stage, we run the text against regular expressions that look
|
||||
// for non-JSON patterns. We are especially concerned with '()' and 'new'
|
||||
// because they can cause invocation, and '=' because it can cause mutation.
|
||||
// But just to be safe, we want to reject all unexpected forms.
|
||||
|
||||
// We split the second stage into 4 regexp operations in order to work around
|
||||
// crippling inefficiencies in IE's and Safari's regexp engines. First we
|
||||
// replace all backslash pairs with '@' (a non-JSON character). Second, we
|
||||
// replace the JSON backslash pairs with '@' (a non-JSON character). Second, we
|
||||
// replace all simple value tokens with ']' characters. Third, we delete all
|
||||
// open brackets that follow a colon or comma or that begin the text. Finally,
|
||||
// we look to see that the remaining characters are only whitespace or ']' or
|
||||
// ',' or ':' or '{' or '}'. If that is so, then the text is safe for eval.
|
||||
|
||||
if (/^[\],:{}\s]*$/.test(text.replace(/\\./g, '@').
|
||||
replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(:?[eE][+\-]?\d+)?/g, ']').
|
||||
if (/^[\],:{}\s]*$/.
|
||||
test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@').
|
||||
replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']').
|
||||
replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) {
|
||||
|
||||
// In the second stage we use the eval function to compile the text into a
|
||||
// In the third stage we use the eval function to compile the text into a
|
||||
// JavaScript structure. The '{' operator is subject to a syntactic ambiguity
|
||||
// in JavaScript: it can begin a block or an object literal. We wrap the text
|
||||
// in parens to eliminate the ambiguity.
|
||||
|
||||
j = eval('(' + text + ')');
|
||||
j = eval('(' + text + ')');
|
||||
|
||||
// In the optional third stage, we recursively walk the new structure, passing
|
||||
// each name/value pair to a filter function for possible transformation.
|
||||
// In the optional fourth stage, we recursively walk the new structure, passing
|
||||
// each name/value pair to a reviver function for possible transformation.
|
||||
|
||||
return typeof filter === 'function' ? walk('', j) : j;
|
||||
}
|
||||
return typeof reviver === 'function' ?
|
||||
walk({'': j}, '') : j;
|
||||
}
|
||||
|
||||
// If the text is not JSON parseable, then a SyntaxError is thrown.
|
||||
|
||||
throw new SyntaxError('parseJSON');
|
||||
}
|
||||
throw new SyntaxError('JSON.parse');
|
||||
};
|
||||
}();
|
||||
}
|
||||
}
|
||||
}());
|
||||
%>
|
||||
@@ -1,6 +1,6 @@
|
||||
<% /*
|
||||
$Revision: 1 $
|
||||
$Modtime: 30-09-09 16:01 $
|
||||
$Revision: 2 $
|
||||
$Modtime: 3-11-09 16:31 $
|
||||
|
||||
Status: 90%
|
||||
|
||||
@@ -286,54 +286,7 @@ function __rsProcessResultset()
|
||||
{
|
||||
%>
|
||||
<script type="text/javascript">
|
||||
function resizeWhenInIFrame()
|
||||
{
|
||||
if (parent.ExpandFrame) parent.ExpandFrame(window.name);
|
||||
}
|
||||
|
||||
function hideInlineDetails(thisTR)
|
||||
{
|
||||
//thisTD.innerText = '<%=lcl_plusje%>';
|
||||
//var thisTR = thisTD.parentNode;
|
||||
$(thisTR).find("td.ia:contains('<%=lcl_minje%>')").text('<%=lcl_plusje%>');
|
||||
var thisTABLE = thisTR.parentNode;
|
||||
thisTABLE.deleteRow(thisTR.rowIndex);
|
||||
thisTR.inlineVisible = false;
|
||||
return false;
|
||||
}
|
||||
|
||||
function hideAllInlineDetails(ID)
|
||||
{
|
||||
$("#"+ID).find("tr[inlineVisible=true]").each(function (i) { hideInlineDetails(this) });
|
||||
resizeWhenInIFrame();
|
||||
}
|
||||
|
||||
function showInlineDetails(thisTD, strfnURL)
|
||||
{
|
||||
window.event.cancelBubble = true; // Voorkom highlight regel
|
||||
|
||||
var thisTR = thisTD.parentNode;
|
||||
if (thisTR.inlineVisible)
|
||||
return hideInlineDetails(thisTR);
|
||||
thisTD.innerText = '<%=lcl_minje%>';
|
||||
|
||||
thisTR.inlineVisible = true;
|
||||
var thisTABLE = thisTR.parentNode;
|
||||
var newRow = thisTABLE.insertRow(thisTR.rowIndex);
|
||||
newRow.insertCell(0);
|
||||
|
||||
var theCell = newRow.insertCell(1);
|
||||
theCell.innerHTML = '<%=lcl_loading%>';
|
||||
theCell.colSpan=thisTR.children.length-2;
|
||||
newRow.insertCell();
|
||||
|
||||
var url = eval(strfnURL).call(null, thisTR);
|
||||
$.ajaxSetup({ cache: true });
|
||||
$(theCell).load(url, resizeWhenInIFrame);
|
||||
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
function doOutput(poutputmode)
|
||||
{
|
||||
@@ -369,118 +322,6 @@ function __rsProcessResultset()
|
||||
}
|
||||
|
||||
|
||||
function doDefault(theAction, multiOnce)
|
||||
{
|
||||
// Bij header en footer doDefault actie niet uitvoeren (tr header en footer heeft geen id)
|
||||
if ($(event.srcElement).closest('tr')[0].id == "")
|
||||
return;
|
||||
|
||||
if (multiOnce)
|
||||
{
|
||||
var rowArray = new Array();
|
||||
rowArray[0] = $(event.srcElement).closest('tr')[0];
|
||||
eval(theAction).call(null, rowArray);
|
||||
}
|
||||
else {
|
||||
var row = $(event.srcElement).closest('tr')[0];
|
||||
if (row && row.ROWKEY)
|
||||
eval(theAction).call(null, row);
|
||||
}
|
||||
}
|
||||
|
||||
function doA(thisSPAN, theAction)
|
||||
{
|
||||
//$(thisSPAN).css('visibility', 'hidden'); // Verwijder de actie direct zodat dubbelklikken geen tweede aanroep kan veroorzaken.
|
||||
window.event.cancelBubble = true; // This prevents the event from bubbling up to the onclick event handler for the line.
|
||||
|
||||
var actionSelect = document.getElementById("multiaction");
|
||||
var multiOnce = false;
|
||||
if (actionSelect)
|
||||
{
|
||||
for (var i = 0; i < actionSelect.length; i++)
|
||||
{
|
||||
if (actionSelect[i].value == theAction && actionSelect[i].multiOnce)
|
||||
multiOnce = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (multiOnce)
|
||||
{
|
||||
var rowArray = new Array();
|
||||
rowArray[0] = $(thisSPAN).parents('tr')[0];
|
||||
eval(theAction).call(null, rowArray);
|
||||
}
|
||||
else {
|
||||
var row = $(thisSPAN).parents('tr')[0];
|
||||
eval(theAction).call(null, row);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function getKeyString(rowArray)
|
||||
{
|
||||
var key;
|
||||
var keyString = "";
|
||||
for (var i = 0; i < rowArray.length; i++)
|
||||
{
|
||||
$(rowArray[i]).addClass('dirty');
|
||||
key = rowArray[i].ROWKEY;
|
||||
keyString += ((keyString == "") ? "" : ",") + key;
|
||||
}
|
||||
return keyString;
|
||||
}
|
||||
|
||||
function doMulti(thisID)
|
||||
{
|
||||
var actionSelect = document.getElementById("multiaction");
|
||||
if (actionSelect[actionSelect.selectedIndex].value == '') return;
|
||||
var regels = $("#" + thisID + " .multiselect:checked");
|
||||
if (regels.length > 0 && confirm(actionSelect[actionSelect.selectedIndex].text + " " + regels.length + " "+ '<%=lcl_lines%>' + "?"))
|
||||
{
|
||||
// Als multiOnce is gedefinieerd dan wordt de actie <20><>n keer aangeroepen waarbij een string met keys wordt meegegeven aan de actiefunctie
|
||||
// anders wordt voor elke aangevinkte regel de actie aangeroepen waarbij elke keer <20><>n key wordt meegegeven aan de actiefunctie
|
||||
var multiOnce = false;
|
||||
var multiOnceArray = new Array();
|
||||
var teller = 0;
|
||||
$("#"+thisID+" .multiselect:checked").each(function()
|
||||
{
|
||||
teller++;
|
||||
var rowData = eval('(' + this.parentElement.parentElement.ROWDATA + ')');
|
||||
multiOnce = actionSelect[actionSelect.selectedIndex].multiOnce
|
||||
if (multiOnce)
|
||||
multiOnceArray.push(this.parentElement.parentElement);
|
||||
else
|
||||
eval(actionSelect[actionSelect.selectedIndex].value).call(null, this.parentElement.parentElement, true); // true voor noconfirm i.g.v. multi actie
|
||||
});
|
||||
if (multiOnce)
|
||||
eval(actionSelect[actionSelect.selectedIndex].value).call(null, multiOnceArray, true); // true voor noconfirm i.g.v. multi actie
|
||||
}
|
||||
}
|
||||
|
||||
function ha(row) //HideActions, korte naam omdat deze bij elke tr wordt opgenomen
|
||||
{
|
||||
$(row).find(".ias").css('visibility', 'hidden');
|
||||
}
|
||||
|
||||
function sa(row) //ShowActions, korte naam omdat deze bij elke tr wordt opgenomen
|
||||
{
|
||||
//if ($(row)[0].className.indexOf("dirty") == -1) // Als de regel dirty is dan de acties niet meer tonen
|
||||
$(row).find(".ias").css('visibility', 'visible');
|
||||
}
|
||||
|
||||
function checkAll(thisID, zelf)
|
||||
{
|
||||
$("#"+thisID+" .multiselect").each(function()
|
||||
{
|
||||
this.checked = zelf.checked;
|
||||
});
|
||||
}
|
||||
function RSdefaultAction(thisID, defaultAction)
|
||||
{
|
||||
var row = $("#"+thisID)[0].getFirstSelectedRow();
|
||||
$("#"+thisID)[0].clearSelection();
|
||||
eval(defaultAction).call(null, row);
|
||||
}
|
||||
</script>
|
||||
|
||||
<%
|
||||
@@ -622,7 +463,7 @@ function __rsProcessResultset()
|
||||
// Dus eerst wijzigingen doorvoeren en dan pas opslaan (submit).
|
||||
//appender += "<input type='submit' value='" + lcl_domulti + "' onclick='doMulti(\"" + this.ID + "\")'></label></div>";
|
||||
//appender += "<input type='text' value='" + lcl_domulti + "' onclick='doMulti(\"" + this.ID + "\")'></label></div>";
|
||||
appender += "<img onClick='javascript:doMulti(\"" + this.ID + "\");window.event.cancelBubble = true;' class='details' title='" + lcl_domulti + "' src='../pictures/go_button.jpg'></div>";
|
||||
appender += "<img onClick='javascript:doMulti(\"" + this.ID + "\");window.event.cancelBubble = true;' class='details' title='" + lcl_domulti + "' src='../pictures/go_button.jpg'></div>";
|
||||
htmlFoot += "<tr><td colspan=" + columns.length + (!isPrinting && !isExcel && anyMultiActions? 1 : 0) + ">" + appender + "</td></tr>";
|
||||
}
|
||||
|
||||
@@ -705,8 +546,8 @@ function __rsStartTable()
|
||||
{
|
||||
with (this)
|
||||
{
|
||||
var html = "<DIV id='rsTable'>";
|
||||
html += "<TABLE CELLSPACING='0' CELLPADDING='0' BORDER='1' "; // @TODO: geen harde styling?
|
||||
var html = "<DIV id='rstable'>";
|
||||
html += "<TABLE CELLSPACING='0' CELLPADDING='0' ";
|
||||
|
||||
if (isPrinting == true) {
|
||||
html += " isPrinting='TRUE' ";
|
||||
@@ -725,15 +566,16 @@ function __rsStartTable()
|
||||
// PF vervangen: html += " CLASS='" + tableClassName + (this.actions.length? "" : " sortable") + "' ";
|
||||
// MGE sortable wordt later gezet als ook bekend is of alle regels zijn getoond.
|
||||
html += " CLASS='" + tableClassName + "' ";
|
||||
for (var i = 0; i < actions.length; i++)
|
||||
{
|
||||
if (actions[i].isDefault)
|
||||
if (!isPrinting && !isExcel) {
|
||||
for (var i = 0; i < actions.length; i++)
|
||||
{
|
||||
html += "style='cursor:pointer' onclick='doDefault(\"" + actions[i].action + "\", " + actions[i].multiOnce + ")' ";
|
||||
break;
|
||||
if (actions[i].isDefault)
|
||||
{
|
||||
html += "style='cursor:pointer' onclick='doDefault(\"" + actions[i].action + "\", " + actions[i].multiOnce + ")' ";
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
html += ">";
|
||||
//html = html_filter + html;
|
||||
|
||||
@@ -755,7 +597,7 @@ function __rsMakeTableHeader(oRs, oRsFlex, anyMultiActions)
|
||||
// == zijn er multi ACTIONS?
|
||||
if (anyMultiActions)
|
||||
{
|
||||
html += "<th><input type=checkbox onclick='checkAll(\"" + ID + "\", this)'></th>";
|
||||
html += "<th class='sorttable_nosort'><input type=checkbox onclick='checkAll(\"" + ID + "\", this)'></th>";
|
||||
}
|
||||
if (inlineDetails)
|
||||
{
|
||||
@@ -887,7 +729,7 @@ function __rsMakeTableRow(oRs, oRsFlex, cnt, anyMultiActions, noFlexResult)
|
||||
ttl = " title ='" + escape2(ttl) + "'"
|
||||
else
|
||||
ttl = "";
|
||||
appender += "<td class='ia' onclick='return showInlineDetails(this, \"" + inlineDetails+"\")'" + ttl + ">"+lcl_plusje+"</td>";
|
||||
appender += "<td class='inlinedetails closed' onclick='return showInlineDetails(this, \"" + inlineDetails+"\")'" + ttl + "> </td>";
|
||||
}
|
||||
else
|
||||
appender += "<td> </td>";
|
||||
@@ -901,8 +743,15 @@ function __rsMakeTableRow(oRs, oRsFlex, cnt, anyMultiActions, noFlexResult)
|
||||
|
||||
if (rowActionEnabler)
|
||||
var validator = rowActionEnabler(oRs);
|
||||
else
|
||||
var validator = null;
|
||||
for (var i = 0; i < actions.length; i++)
|
||||
{
|
||||
if (actions[i].isDefault)
|
||||
continue; // niet ook nog inline
|
||||
if (actions[i].enabler && validator && !validator[actions[i].enabler])
|
||||
continue; // niet enabled
|
||||
|
||||
var val = "";
|
||||
var valsep = ""; // of een image waarop de jook kan klikken, of een separator
|
||||
if (actions[i].image)
|
||||
@@ -912,17 +761,16 @@ function __rsMakeTableRow(oRs, oRsFlex, cnt, anyMultiActions, noFlexResult)
|
||||
val = imgval + "> ";
|
||||
valsep = "";
|
||||
} else {
|
||||
if (i > 0)
|
||||
if (actionsDiv != "")
|
||||
{
|
||||
valsep = " | ";
|
||||
val = "";
|
||||
}
|
||||
}
|
||||
if (!actions[i].enabler || (rowActionEnabler && validator[actions[i].enabler]))
|
||||
{
|
||||
val = valsep +"<span class='ia' onclick='doA(this, \"" + actions[i].action + "\")'>" + val;
|
||||
actionsDiv += val + actions[i].caption + "</span>";
|
||||
}
|
||||
|
||||
val = valsep +"<span class='ia' onclick='doA(this, \"" + actions[i].action + "\")'>" + val;
|
||||
actionsDiv += val + actions[i].caption + "</span>";
|
||||
|
||||
}
|
||||
}
|
||||
for (i = 0; i < columns.length; i++)
|
||||
@@ -950,6 +798,7 @@ function __rsMakeTableRow(oRs, oRsFlex, cnt, anyMultiActions, noFlexResult)
|
||||
if (columns[i].action)
|
||||
val = '<span style="cursor:pointer" onclick="' + action + '">' + val + '</span>';
|
||||
if (val == null) val = ' ';
|
||||
val = String(val).replace(/\n/g,'<br>');
|
||||
|
||||
// Tooltip voor de kolom
|
||||
var tooltip = columns[i].tooltip == null ? null : columns[i].tooltip(oRs);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<% /*
|
||||
$Revision: 1 $
|
||||
$Modtime: 17-09-09 15:16 $
|
||||
$Revision: 2 $
|
||||
$Modtime: 3-11-09 11:06 $
|
||||
|
||||
File: save2db.inc
|
||||
Description: functions to save records to database
|
||||
@@ -8,7 +8,6 @@
|
||||
Note:
|
||||
*/
|
||||
%>
|
||||
<% Response.Expires = 0; %>
|
||||
<!-- #include file="../Shared/datetime.inc" -->
|
||||
<%
|
||||
|
||||
@@ -21,14 +20,16 @@
|
||||
datetime, Inclusief tijd
|
||||
number,
|
||||
varchar Quotes worden escaped
|
||||
bool "on" wordt 1, "" wordt "null"
|
||||
check "on" wordt 1, "" wordt "null". Let op: moet aangemaakt zijn met iface.inc/CHECKBOX
|
||||
time millisecs sinds middernacht
|
||||
sql voorgedefinieerd, wordt ongewijzigd gebruikt
|
||||
(TODO: "time" die alleen tijddeel bijwerkt, "float" die komma goed doet etc)
|
||||
len: varchar wordt hier op afgekapt
|
||||
-- een van de volgende drie (verplicht) --
|
||||
frm: Request.Form veld. Als niet meegesubmit dan ook niet opgeslagen!
|
||||
qrs: (nog niet ondersteund!) vergelijk frm maar dan voor QueryString
|
||||
val: kant en klare waarde, zelf berekend
|
||||
len: varchar wordt hier op afgekapt
|
||||
|
||||
params: optioneel. noWhere plakt er niet het woord WHERE achter
|
||||
result: een sqlstatement met alvast het woord WHERE er achter (opdat het het niet vergeten)
|
||||
(eventueel params.noWhere)
|
||||
@@ -92,9 +93,20 @@ function _buildFields(fields, params)
|
||||
var val = field.val;
|
||||
if (field.frm)
|
||||
{
|
||||
if (Request.Form(field.frm).count==0)
|
||||
continue;
|
||||
var val = Request.Form(field.frm)(1);
|
||||
if (field.typ=="check")
|
||||
{
|
||||
// Zie iface.inc/CHECKBOX: we hebben een hidden
|
||||
// field has_xxxx toegevoegd
|
||||
if (Request.Form("has_" + field.frm).count==0)
|
||||
continue;
|
||||
var val = (Request.Form(field.frm).count==1);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (Request.Form(field.frm).count==0)
|
||||
continue;
|
||||
var val = Request.Form(field.frm)(1);
|
||||
}
|
||||
}
|
||||
if (field.seq)
|
||||
{
|
||||
@@ -157,6 +169,14 @@ function _buildFields(fields, params)
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "check":
|
||||
{
|
||||
if (val)
|
||||
tupel.sql = " 1"
|
||||
else
|
||||
tupel.sql = " NULL"
|
||||
break;
|
||||
}
|
||||
case "date":
|
||||
case "datetime":
|
||||
{
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<% /*
|
||||
$Revision: 1 $
|
||||
$Modtime: 28-09-09 22:45 $
|
||||
$Revision: 2 $
|
||||
$Modtime: 3-11-09 15:01 $
|
||||
|
||||
File: selector.inc
|
||||
Status: 90%
|
||||
@@ -24,9 +24,10 @@
|
||||
emptyOption: De tekst voor een lege waarde bovenaan in de lijst
|
||||
?Bij 'multi' doet hij dat alleen bij een lege listbox
|
||||
initEmpty Moet de lege waarde altijd geselecteerd zijn (meestal voor filters) of kies een single optie altijd gelijk
|
||||
required Voegt de class 'required' toe aan het veld
|
||||
Note: de combinatie van readonly en multi is (nog) niet ondersteund
|
||||
*/ %>
|
||||
|
||||
<!-- #include file ="../shared/escape.inc" -->
|
||||
<%
|
||||
FCLTHeader.Requires({ plugins: ["jQuery"], js: [] });
|
||||
|
||||
@@ -63,15 +64,19 @@ function FCLTselector(fieldName, sql, params)
|
||||
} %>
|
||||
<nobr>
|
||||
<% if (!params.readonly) {
|
||||
|
||||
// TODO: class van fld overnemen voor de width is niet helemaal jofel
|
||||
if (params.required) { %><div id='req_<%=fieldName%>' class='fld<%=fieldName%> required'><% }
|
||||
%>
|
||||
<select class="fld<%=fieldName%><%=params.readonly? " disabled" : ""%>"
|
||||
<select class="fld<%=fieldName%><%=params.required? " required" : ""%><%=params.readonly? " disabled" : ""%>"
|
||||
name="<%=fieldName%><%=params.readonly? "_ro" : ""%>"
|
||||
|
||||
id="<%=params.id%><%=params.readonly? "_ro" : ""%>"
|
||||
<%=params.multi? " multiple" : ""%>
|
||||
<%=params.size? " size="+params.size : ""%>
|
||||
<%=params.onChange? " onchange='" + escape2(params.onChange) + "'" : "" /* LET OP DAT HTML-HAAKJE HIERACHTER */ %>>
|
||||
<% // Indien geen initi<74>le waarde is meegegeven, dan wordt standaard -1 genomen.
|
||||
if (!params.initKey)
|
||||
if (typeof params.initKey == "undefined") // pas op: activiteit_key is wel eens 0
|
||||
params.initKey = -1;
|
||||
|
||||
// Indien multi dan kan initKey een string van waarden bevatten
|
||||
@@ -92,14 +97,15 @@ function FCLTselector(fieldName, sql, params)
|
||||
oRs.MoveFirst();
|
||||
}
|
||||
|
||||
// TODO: als required en initKey dan hoeft emptyoption er natuurlijk niet bij zou ik zeggen
|
||||
if (((params.emptyOption || params.emptyOption == "") && !justone) || params.initEmpty)
|
||||
{
|
||||
%><option value="-1" <%=valueInArray(params.initKey, -1, params.multi)? "selected" : ""%>><%=params.emptyOption? params.emptyOption : ""%></option><%
|
||||
%><option value="-1" <%=params.required?" class='required'":""%> <%=valueInArray(params.initKey, -1, params.multi)? " selected" : ""%>><%=params.emptyOption? params.emptyOption : ""%></option><%
|
||||
}
|
||||
|
||||
while (!oRs.eof)
|
||||
{
|
||||
%><option value="<%=escape2(oRs(0).Value)%>" <%=valueInArray(params.initKey, oRs(0).Value, params.multi) || (justone && !params.initEmpty)? "selected" : ""%><%
|
||||
%><option value="<%=escape2(oRs(0).Value)%>" <%=valueInArray(params.initKey, oRs(0).Value, params.multi) || (justone && !params.initEmpty)? " selected " : ""%><%
|
||||
if (params.extraParamValue)
|
||||
{
|
||||
var extraPV = params.extraParamValue.split(",");
|
||||
@@ -115,7 +121,9 @@ function FCLTselector(fieldName, sql, params)
|
||||
}
|
||||
%>
|
||||
</select>
|
||||
<% } else {
|
||||
<%
|
||||
if (params.required) { %></div><% }
|
||||
} else {
|
||||
// we moeten hier wat ingewikkeld doen omdat we wel de key hebben van de te tonen waarde, maar niet de waarde zelf
|
||||
// NB: in het geval van een readonly/multi listbox toont-ie maar 1 waarde.
|
||||
var initstr = "";
|
||||
@@ -137,26 +145,12 @@ function FCLTselector(fieldName, sql, params)
|
||||
<%
|
||||
}
|
||||
%>
|
||||
<%=params.moreinfo ? "<img class='details' src='" + rooturl + "/appl/Pictures/listdetail.gif' onclick='selectdetails_" + fieldName + "()'>" : ""%>
|
||||
<%=params.moreinfo && params.moreinfo != ""? "<img class='details' src='" + rooturl + "/appl/Pictures/detail.png' onclick='" + params.moreinfo + "'>" : ""%>
|
||||
</nobr>
|
||||
<%
|
||||
if (params.label)
|
||||
{ %>
|
||||
</td>
|
||||
<%
|
||||
}
|
||||
if (params.moreinfo)
|
||||
{ %>
|
||||
<script type="text/javascript">
|
||||
function selectdetails_<%=fieldName%> ()
|
||||
{
|
||||
if ($('#<%=fieldName%>')[0].value != -1) {
|
||||
FcltMgr.openDetail("<%=rooturl%>/appl/fac/fac_list.asp?key=" + $('#<%=fieldName%>')[0].value, $('#<%=fieldName%>')[0].value);
|
||||
} else {
|
||||
alert("Wat wil je nou?");
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<%
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<% /*
|
||||
$Revision: 1 $
|
||||
$Modtime: 22-07-09 14:40 $
|
||||
$Revision: 2 $
|
||||
$Modtime: 29-10-09 13:26 $
|
||||
*/ %>
|
||||
<!-- #include file="../Shared/escape.inc"-->
|
||||
<%
|
||||
@@ -140,7 +140,7 @@ function STR2Stream(xmlstr, xslfile, Stream, mode)
|
||||
xslproc = xslt.createProcessor();
|
||||
xslproc.input = xmldoc;
|
||||
xslproc.addParameter("mode", mode);
|
||||
Response.Charset = "iso-8859-15";
|
||||
Response.Charset = "iso-8859-15"; // Want zo staat het in de default.xsl?
|
||||
xslproc.output = Stream;
|
||||
xslproc.transform();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user