FSN#35297 Simpeler/minder filteren na wat voorkennischecks (deels ook RLI)

svn path=/Website/trunk/; revision=28778
This commit is contained in:
Peter Feij
2016-04-06 13:04:05 +00:00
parent 6f48c22988
commit 6dff8eff76

View File

@@ -188,20 +188,36 @@ else
autfunction = "WEB_MLDUSE";
var authparams = user.checkAutorisation(autfunction);
// ------------------------------------------------
// Some analysis to check relevance of some filters
//
// Fast check to see if we have anything to do with orders
// If not, we can suppress a few filters.
sql= "SELECT 1 FROM mld_opdr WHERE ROWNUM = 1";
oRs = Oracle.Execute(sql);
var anyorders = !oRs.eof;
oRs.close();
// Fast check to see if we have anything to do with geographics
// If not, we can suppress a few filters.
sql= "SELECT 1 FROM ins_srtdiscipline WHERE (ins_srtdiscipline_alg=1 OR ins_srtdiscipline_ins=1 OR ins_srtdiscipline_bes=1) AND ROWNUM = 1";
oRs = Oracle.Execute(sql);
var anygeo = !oRs.eof;
oRs.close();
// Fast check to see if we have anything to do with objects
sql= "SELECT 1 FROM ins_srtdiscipline WHERE (ins_srtdiscipline_ins=1) AND ROWNUM = 1";
oRs = Oracle.Execute(sql);
var anyobj = !oRs.eof;
oRs.close();
// Fast check to see if we have anything to do with orders
// If not, we can suppress a few filters.
sql= "SELECT 1 FROM mld_stdmeldinggroep WHERE ROWNUM = 1";
oRs = Oracle.Execute(sql);
var anymldgroup = !oRs.eof;
oRs.close();
// VALIDATE AND PREPARE
%>
@@ -428,7 +444,8 @@ oRs.close();
<% }
if (!frontend)
{
if (srtdisc == -1) { // TODO netjes afmaken: als het readonly is want meegegeven, dan hoef ik het niet te tonen ook
//<!-- Soort melding -->
// Als een srtdisc meegegeven dan geen lege optie
// en dan is hidden field srtdisc van hiervoor effectief
@@ -448,23 +465,45 @@ oRs.close();
+ " AND m1.ins_srtdiscipline_key = sd.ins_srtdiscipline_key"
+ " AND md.ins_discipline_key = m1.ins_discipline_key"
+ ") "
+ (srtdisc != -1
? " AND ins_srtdiscipline_key = " + srtdisc
: " ")
+ " ORDER BY 2"
FCLTselector("srtdisc",
sql,
{ initKey: srtdisc,
label: L("lcl_vakgroup_type"),
trclass:"primsearch noxd",
onChange: 'updateDisc("' + urole + '", "' + autfunction + '");',
emptyOption: (srtdisc == -1? L("lcl_all") : null), // Als een srtdisc is meegegeven dan geen lege optie,
readonly: srtdisc > -1 || disc_key_arr.length != 0
})
// <!-- Productgroep -->
+ " ORDER BY 2";
var sqlcnt = "SELECT COUNT ( * ) nrsrtdisc"
+ " FROM (" + sql + ")";
var oRs2 = Oracle.Execute(sqlcnt);
if (oRs2("nrsrtdisc").Value == 1)
{
var oRs = Oracle.Execute(sql);
srtdisc = oRs("ins_srtdiscipline_key").Value;
oRs.close();
}
oRs2.close();
if (srtdisc == -1)
{
FCLTselector("srtdisc",
sql,
{ initKey: srtdisc,
label: L("lcl_vakgroup_type"),
trclass:"primsearch noxd",
onChange: 'updateDisc("' + urole + '", "' + autfunction + '");',
emptyOption: (srtdisc == -1? L("lcl_all") : null), // Als een srtdisc is meegegeven dan geen lege optie,
readonly: srtdisc > -1 || disc_key_arr.length != 0
})
}
}
if (!frontend && srtdisc > -1)
{
%><input type='hidden' id='srtdisc' name='srtdisc' value='<%=srtdisc%>'><%
}
// <!-- Productgroep -->
// LET OP!!
// De options van deze selector wordt on-change dynamisch vervangen door ../shared/loadDisc.asp!
// Wat hier staat is dus alleen de initiele situatue.
// Wat hier staat is dus alleen de initiele situatie.
// TODO: als er maar 1 waarde is dan die kiezen; het is zinloos dan Alle/De ene keuze als selectie te bieden, fixed De ene keuze is dan beter (ruimte!)
// SQL-queries uit loadDisc:
var discsql_aut = "SELECT ins_discipline_key"
+ " FROM fac_v_webgebruiker g"
@@ -563,7 +602,8 @@ oRs.close();
}
// Meldinggroep
// Laat alle meldinggroepen zien die voorkomen onder de disciplines die ik mag zien.
// Laat alle meldinggroepen zien die voorkomen onder de disciplines die ik mag zien.
if (anymldgroup) {
var grpsql_aut = "SELECT ins_discipline_key"
+ " FROM fac_v_webgebruiker g"
+ ", fac_functie f"
@@ -598,7 +638,7 @@ oRs.close();
trclass: "secsearch noxd",
emptyOption: ""
});
}
// Behandelgroep-filter (indien die er zijn)
var behsql = "SELECT mld_behandelgroep_key,"
+ lcl.xsqla('mld_behandelgroep_naam', 'mld_behandelgroep_key')+", "
@@ -752,7 +792,7 @@ oRs.close();
<% // Vlag0 heeft dezelfde betekenis als 'geen vlag' en krijgt geen vinkje
for (flagkey=1; flagkey < S('mld_melding_flags'); flagkey++)
{
%><label for="flag<%=flagkey%>" title='<%=safe.htmlattr(L("lcl_mld_flag"+flagkey))%>'><input type="checkbox" name="flag<%=flagkey%>"><img src='../Pictures/mldflag<%=flagkey%>.png'></label>
%><label for="flag<%=flagkey%>"><input type="checkbox" name="flag<%=flagkey%>"><img src='../Pictures/mldflag<%=flagkey%>.png'>&nbsp;<%=safe.html(L("lcl_mld_flag"+flagkey))%></label><br>
<%
} %>
</td>
@@ -1030,7 +1070,7 @@ oRs.close();
initEmpty: true // Altijd lege waarde tonen, ook als er maar 1 waarde is.
})
}
if (anyobj) {
if (minfo)
{
//<!-- Objectdiscipline -->
@@ -1082,9 +1122,10 @@ oRs.close();
updateInsSrtGroup("<%=autfunction%>", "<%=insgroup_key%>", "<%=objsrt_key_arr%>");
});
</script>
<% }
<% } // minfo
// Object omschrijving
RWFIELDTR("objectoms", "fld wildcard", L("lcl_mld_object_oms"), safe.htmlattr(omschr), { trclass: "secsearch", datatype: "text" });
RWFIELDTR("objectoms", "fld wildcard", L("lcl_mld_object_oms"), safe.htmlattr(omschr), { trclass: "secsearch", datatype: "text" });
} // anyobj
} // if (!justClose) 2
} // if (!frontend)
%>