GDFS#26662 Date selectie lijkt niet altijd te wissen

svn path=/Website/trunk/; revision=18651
This commit is contained in:
Erik Groener
2013-08-08 09:28:16 +00:00
parent aea47ffcaa
commit 08803e6678
6 changed files with 135 additions and 121 deletions

View File

@@ -14,6 +14,7 @@
<!-- #include file="../Shared/kostensoortselector.inc" -->
<%
FCLTHeader.Requires({ plugins: ["suggest", "jQuery"],
js: ["date.js", "./sel_items_tab.js", "num2curr.js", "../FIN/fin_edit_factuur.js"]
});
@@ -280,8 +281,8 @@ var fin_btwtabel_key = oRs("fin_btwtabel_key").value; // Standaard btw tabel key
);
// Verdeelperiode
events = 'onKeyPress="kenmerkDividePeriodKey();"'
+ ' onPropertyChange="kenmerkDividePeriodChange();"'
events = ' onKeyPress="kenmerkDividePeriodKey(event);"'
+ ' onPropertyChange="kenmerkDividePeriodChange(event);"'
+ ' onChange="devidePeriodChanged();"'
+ ' onBlur="checkDP(true);"';

View File

@@ -359,3 +359,55 @@ function updateLocation()
}
}
function checkDividePeriod(value)
{
if (value == "") return true;
var valid = true;
var arr = /^(\d{4})[-](\d{1,2})$/.exec(value);
if (arr)
{
var dt = new Date( arr[1], arr[2] -1, 1 );
if ((arr[2] != dt.getMonth() + 1) ||
(arr[1] != dt.getYear() && arr[1] != dt.getFullYear()) ) {
valid = false;
}
}
else valid = false;
return(valid);
}
function kenmerkDividePeriodKey(evt)
{
var e = evt || event;
var kc = e.which || e.keyCode;
if (kc >= 48 && kc <= 57) return;
if (String.fromCharCode(kc) == '<%=L("lcl_date_separator")%>' ||
String.fromCharCode(kc) == '-') return;
e.returnValue = false;
}
function kenmerkDividePeriodChange(evt)
{
var e = evt || event;
if( e.propertyName != 'value' ) return;
var el = e.srcElement || e.target;
var newT = el.value;
var nm = el.name;
var oldT = dateInputs[nm]; if (oldT == null) oldT = '';
var valid = false;
if (newT == '') valid = true; else
if (/^\d{4}$/.test(newT))
{
el.value += '<%=L("lcl_date_separator")%>';
valid = true;
}
else if (/^\d{1,4}(|[-](|\d{1,2}))$/.test(newT))
{
valid = true;
}
if (valid) dateInputs[nm] = el.value; else
if (el.value != oldT) el.value = oldT;
}

View File

@@ -7,9 +7,79 @@
*/ %>
<!-- #include file="../Shared/common.inc" -->
<%
re1 = '[' + (L("lcl_date_separator") == '-'
? L("lcl_date_separator")
: '-' + L("lcl_date_separator")) + ']';
empty = "__" + re1 + "__" + re1 + "____";
%>
<html>
<head>
<LINK href="<%=custpath%>/cust.css" rel="stylesheet" type="text/css">
<script>
function owcheckDate(value)
{
if (/^<%=empty%>$/.test(value)) return true;
var valid = true;
var arr = /^(\d{1,2})<%=re1%>(\d{1,2})<%=re1%>(\d{1,4})$/.exec(value);
if (arr)
{
var dt = new Date( arr[3], arr[2] -1, arr[1] );
if ((arr[1] != dt.getDate()) ||
(arr[2] != dt.getMonth() + 1) ||
(arr[3] != dt.getYear() && arr[3] != dt.getFullYear())) {
valid = false;
}
}
else valid = false;
return(valid);
}
function owkenmerkDateChange()
{
if (event.propertyName != 'value') return;
var el = event.srcElement || event.target;
var newT = el.value;
var nm = el.name;
var oldT = dateInputs[nm];
if (oldT == null)
oldT = '';
var valid = false;
if (newT == '')
valid = true;
else
if (/^\d{2}$/.test(newT) || /^\d+[/-]\d{2}$/.test(newT))
{
el.value += '<%=L("lcl_date_separator")%>';
valid = true;
}
else if (/^\d{1,2}(|<%=re1%>(|\d{1,2}(|<%=re1%>(|\d{1,4}))))$/.test(newT))
{
valid = true;
}
if (valid)
{
dateInputs[nm] = el.value;
}
else if (el.value != oldT)
el.value = oldT;
}
function owkenmerkDateKey()
{
// Alleen cijfers, datumseperator of - toegestaan !
var kc = event.keyCode;
if (kc >= 48 && kc <= 57) return;
if (String.fromCharCode(kc) == '<%=L("lcl_date_separator")%>' ||
String.fromCharCode(kc) == '-') return;
event.returnValue = false;
}
</script>
</head>
<%
var sort = getQParamInt("sort");
@@ -190,7 +260,7 @@ if( txt ) rowIndex = txt.rowIndex;
var kv = reado ? (ktype == 'X' ? (val? '<a href=\\"'+ S("image_path_virtual") +val1+'\\">'+val1+'</a>' :'') : ("<input type=text style='width:200px' value='"+ safe.htmlattr(val)+"' readonly "+"maxlength="+(ktype=='N'&&kdec?klen+1:klen)+">"))
: ("<input type='"+(ktype == 'X' &&!val ? 'file' : 'text')+"' onChange=frames.hidFrameKenmerk" + serienr + ".checkK" + i + serienr + "(false) onBlur=frames.hidFrameKenmerk" + serienr + ".checkK" + i + serienr + "(true) name='k" + i + "val" + serienr + "'" + (val? " value='" + safe.htmlattr(val) + "'" : '')
+ " maxlength="+(ktype=='N'&&kdec?klen+1:klen)
+ (ktype=='D'?' onKeyPress=kenmerkDateKey() onPropertyChange=kenmerkDateChange()':'')
+ (ktype=='D'?' onKeyPress=owkenmerkDateKey() onPropertyChange=owkenmerkDateChange()':'')
+ " style='width:" + (klen > 28? (klen > 40? "360" : "" + (klen * 100 / 14 + 10)) : "200") + "px'>")
+ ((val && ktype == 'X') ? "<input type=button class=mbutton style='width:20px;height:20px;background-image:url(../Pictures/fileopen.gif)' onClick='openDoc(\\\""+ safe.jsstring(S("image_path_virtual")) + val1 + "\\\");'>" : "");
@@ -303,7 +373,7 @@ function checkK<%=i%><%=serienr%>(show){
if( value != '' ) {
<% if( ktype == 'D' ) { %>
valid = parent.checkDate( value );
valid = parent.owcheckDate( value );
if( ! valid ) err = "<%=L("lcl_mld_kenmerk_out_range")%>";
<% } else if( (ktype == 'C') || (ktype == 'L') || (ktype == 'Q')) { %>
if( value.length > <%=klen%> ) valid = false;
@@ -339,6 +409,7 @@ function checkK<%=i%><%=serienr%>(show){
%>
window.parent.changeButtons();
</script>
</form>
<%

View File

@@ -326,7 +326,8 @@ function cal_show_onChange(e)
pDay = parseInt(possdate[1], 10);
dt = new Date(pYear, pMonth, pDay);
$(this).datepicker('setDate', dt);
$(this)[0].onSelect.apply();
if ($(this)[0].onSelect)
$(this)[0].onSelect.apply();
}
else
{

View File

@@ -23,7 +23,8 @@
// "jquery-ui.js" en "date.js" zijn alleen nodig als er een datumkenmerk is.
// meestal is die er toch al wel in het hoofdscherm dus voor het gemak doen
// we het hier ook maar voor overige schermen.
FCLTHeader.Requires({plugins:["jQuery", "kenmerk"], js: ["jquery-ui.js", "date.js"]})
if (!this.JSON_Result)
FCLTHeader.Requires({plugins:["jQuery", "kenmerk"], js: ["jquery-ui.js", "date.js"]})
var requiredGroupUsed = new Array(); // Array zorgt voor eenmalige initiele aanroep van checkRequiredGroup(groep) per groep
@@ -941,7 +942,6 @@ function listKenmerk(sql, module, key, props)
+ "'"
+ (required ? " required='required' " : "")
+ " value='" + safe.htmlattr(val) + "'"
+ (!readonlyfield ? ' onKeyPress=kenmerkDateKey() onPropertyChange=kenmerkDateChange()' : "")
+ ">";
anyDate |= !readonlyfield;
}
@@ -1160,7 +1160,7 @@ function listKenmerk(sql, module, key, props)
if (makeCheckbox && props.mobile) // Zie commentaar iets verderop
props.label_colspan = 2;
kenmerk_write('<td class="label ' + (ktype == 'L' || ktype == 'l'? 'flexlabel' : '') + '"'
kenmerk_write('<td class="label' + (ktype == 'L' || ktype == 'l'? ' flexlabel' : '')+ (kenmerk_search? ' flexsearch' : '') + '"'
+ (props.label_colspan? ' colspan=' + props.label_colspan : '')
+ '><label for="' + nameprefix + idCounter + 'val">'
+ '<span title="' + safe.htmlattr(hint) + '">'

View File

@@ -14,11 +14,11 @@ var FCLTEXPIRES = 8*60; // geen database interactie tenslotte
<%
Response.ContentType = "text/javascript";
re1 = '[' + (L("lcl_date_separator") == '-'
? L("lcl_date_separator")
: '-' + L("lcl_date_separator")) + ']';
empty = "__" + re1 + "__" + re1 + "____";
%>
var empty='<%=empty%>';
@@ -85,8 +85,7 @@ function checkKenmerk(field, show, ktype, klen, kdec, kmin, kmax)
{
if (ktype == 'D')
{
valid = checkDate(value);
if (!valid) err = "<%=L("lcl_mld_kenmerk_out_range")%>";
$(field).change(cal_show_onChange);
}
else if (ktype == 'C' || ktype == 'L' || ktype == 'Q')
{
@@ -138,116 +137,6 @@ function checkKenmerk(field, show, ktype, klen, kdec, kmin, kmax)
return valid;
}
function checkDate(value)
{
if (/^<%=empty%>$/.test(value)) return true;
var valid = true;
var arr = /^(\d{1,2})<%=re1%>(\d{1,2})<%=re1%>(\d{1,4})$/.exec(value);
if (arr)
{
var dt = new Date( arr[3], arr[2] -1, arr[1] );
if ((arr[1] != dt.getDate()) ||
(arr[2] != dt.getMonth() + 1) ||
(arr[3] != dt.getYear() && arr[3] != dt.getFullYear())) {
valid = false;
}
}
else valid = false;
return(valid);
}
function checkDividePeriod(value)
{
if (/^<%=empty%>$/.test(value)) return true;
var valid = true;
var arr = /^(\d{4})<%=re1%>(\d{1,2})$/.exec(value);
if (arr)
{
//var dt = new Date( arr[3], arr[2] -1, arr[1] );
var dt = new Date( arr[1], arr[2] -1, 1 );
if ((arr[2] != dt.getMonth() + 1) ||
(arr[1] != dt.getYear() && arr[1] != dt.getFullYear()) ) {
valid = false;
}
}
else valid = false;
return(valid);
}
function kenmerkDateChange()
{
if (event.propertyName != 'value') return;
var el = event.srcElement || event.target;
var newT = el.value;
var nm = el.name;
var oldT = dateInputs[nm];
if (oldT == null)
oldT = '';
var valid = false;
if (newT == '')
valid = true;
else
if (/^\d{2}$/.test(newT) || /^\d+[/-]\d{2}$/.test(newT))
{
el.value += '<%=L("lcl_date_separator")%>';
valid = true;
}
else if (/^\d{1,2}(|<%=re1%>(|\d{1,2}(|<%=re1%>(|\d{1,4}))))$/.test(newT))
{
valid = true;
}
if (valid)
{
dateInputs[nm] = el.value;
}
else if (el.value != oldT)
el.value = oldT;
}
function kenmerkDateKey()
{
var kc = event.keyCode;
if (kc >= 48 && kc <= 57) return;
if (String.fromCharCode(kc) == '<%=L("lcl_date_separator")%>' ||
String.fromCharCode(kc) == '-') return;
event.returnValue = false;
}
function kenmerkDividePeriodChange()
{
if( event.propertyName != 'value' ) return;
var el = event.srcElement || event.target;
var newT = el.value;
var nm = el.name;
var oldT = dateInputs[nm]; if (oldT == null) oldT = '';
var valid = false;
if (newT == '') valid = true; else
if (/^\d{4}$/.test(newT))
{
el.value += '<%=L("lcl_date_separator")%>';
valid = true;
}
else if (/^\d{1,4}(|<%=re1%>(|\d{1,2}))$/.test(newT))
{
valid = true;
}
if (valid) dateInputs[nm] = el.value; else
if (el.value != oldT) el.value = oldT;
}
function kenmerkDividePeriodKey()
{
var kc = event.keyCode;
if (kc >= 48 && kc <= 57) return;
if (String.fromCharCode(kc) == '<%=L("lcl_date_separator")%>' ||
String.fromCharCode(kc) == '-') return;
event.returnValue = false;
}
// Op een generieke manier documenten openen
// DWF bestanden worden eventueel met de SLNKDWF viewer geopend
// Poweruser feature: Ctrl ingedrukt opent DWF bestanden toch 'gewoon'